refactor: 将 payapi 移到子目录下
authorTang Cheng <cheng.tang@supwisdom.com>
Mon, 8 Jul 2019 08:27:33 +0000 (16:27 +0800)
committerTang Cheng <cheng.tang@supwisdom.com>
Wed, 10 Jul 2019 02:23:23 +0000 (10:23 +0800)
484 files changed:
build.gradle
payapi/build.gradle [new file with mode: 0644]
payapi/src/main/java/com/supwisdom/dlpay/AppPreparedEvent.java [moved from src/main/java/com/supwisdom/dlpay/AppPreparedEvent.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/ServletInitializer.kt [moved from src/main/java/com/supwisdom/dlpay/ServletInitializer.kt with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/bean/BaseResp.java [moved from src/main/java/com/supwisdom/dlpay/api/bean/BaseResp.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/bean/DlpayReq.java [moved from src/main/java/com/supwisdom/dlpay/api/bean/DlpayReq.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/bean/JsonResult.java [moved from src/main/java/com/supwisdom/dlpay/api/bean/JsonResult.java with 95% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/bean/ReqParam.java [moved from src/main/java/com/supwisdom/dlpay/api/bean/ReqParam.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/bean/SupStatusRevResp.java [moved from src/main/java/com/supwisdom/dlpay/api/bean/SupStatusRevResp.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/bean/SupYktResp.java [moved from src/main/java/com/supwisdom/dlpay/api/bean/SupYktResp.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/bean/WechatReqResp.java [moved from src/main/java/com/supwisdom/dlpay/api/bean/WechatReqResp.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/controller/TestAction.java [moved from src/main/java/com/supwisdom/dlpay/api/controller/TestAction.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/dao/AccountDao.java [moved from src/main/java/com/supwisdom/dlpay/api/dao/AccountDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/dao/DebitCreditDtlDao.java [moved from src/main/java/com/supwisdom/dlpay/api/dao/DebitCreditDtlDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/dao/PaytypeConfigDao.java [moved from src/main/java/com/supwisdom/dlpay/api/dao/PaytypeConfigDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/dao/PersonDao.java [moved from src/main/java/com/supwisdom/dlpay/api/dao/PersonDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/dao/PersonIdentityDao.java [moved from src/main/java/com/supwisdom/dlpay/api/dao/PersonIdentityDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/dao/PersondtlDao.java [moved from src/main/java/com/supwisdom/dlpay/api/dao/PersondtlDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/dao/PointsAccountDao.java [moved from src/main/java/com/supwisdom/dlpay/api/dao/PointsAccountDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/dao/PointsTransdtlDao.java [moved from src/main/java/com/supwisdom/dlpay/api/dao/PointsTransdtlDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/dao/ShopPaytypeConfigDao.java [moved from src/main/java/com/supwisdom/dlpay/api/dao/ShopPaytypeConfigDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/dao/ShopPaytypeDao.java [moved from src/main/java/com/supwisdom/dlpay/api/dao/ShopPaytypeDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/dao/ShopdtlDao.java [moved from src/main/java/com/supwisdom/dlpay/api/dao/ShopdtlDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/dao/SourceTypeDao.java [moved from src/main/java/com/supwisdom/dlpay/api/dao/SourceTypeDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/dao/SubjectdtlDao.java [moved from src/main/java/com/supwisdom/dlpay/api/dao/SubjectdtlDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/dao/TransactionMainDao.java [moved from src/main/java/com/supwisdom/dlpay/api/dao/TransactionMainDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/domain/TAccount.java [moved from src/main/java/com/supwisdom/dlpay/api/domain/TAccount.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/domain/TAccountDayBal.java [moved from src/main/java/com/supwisdom/dlpay/api/domain/TAccountDayBal.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/domain/TAccountDayBalPk.java [moved from src/main/java/com/supwisdom/dlpay/api/domain/TAccountDayBalPk.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/domain/TDebitCreditDtl.java [moved from src/main/java/com/supwisdom/dlpay/api/domain/TDebitCreditDtl.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/domain/TDebitCreditDtlPK.java [moved from src/main/java/com/supwisdom/dlpay/api/domain/TDebitCreditDtlPK.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/domain/TPaytypeConfig.java [moved from src/main/java/com/supwisdom/dlpay/api/domain/TPaytypeConfig.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/domain/TPaytypeConfigPK.java [moved from src/main/java/com/supwisdom/dlpay/api/domain/TPaytypeConfigPK.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/domain/TPerson.java [moved from src/main/java/com/supwisdom/dlpay/api/domain/TPerson.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/domain/TPersonIdentity.java [moved from src/main/java/com/supwisdom/dlpay/api/domain/TPersonIdentity.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/domain/TPersondtl.java [moved from src/main/java/com/supwisdom/dlpay/api/domain/TPersondtl.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/domain/TPointsAccount.java [moved from src/main/java/com/supwisdom/dlpay/api/domain/TPointsAccount.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/domain/TPointsTransdtl.java [moved from src/main/java/com/supwisdom/dlpay/api/domain/TPointsTransdtl.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/domain/TShopPaytype.java [moved from src/main/java/com/supwisdom/dlpay/api/domain/TShopPaytype.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/domain/TShopPaytypeConfig.java [moved from src/main/java/com/supwisdom/dlpay/api/domain/TShopPaytypeConfig.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/domain/TShopPaytypePK.java [moved from src/main/java/com/supwisdom/dlpay/api/domain/TShopPaytypePK.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/domain/TShopdtl.java [moved from src/main/java/com/supwisdom/dlpay/api/domain/TShopdtl.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/domain/TSourceType.java [moved from src/main/java/com/supwisdom/dlpay/api/domain/TSourceType.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/domain/TSubjectdtl.java [moved from src/main/java/com/supwisdom/dlpay/api/domain/TSubjectdtl.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/domain/TTransactionMain.java [moved from src/main/java/com/supwisdom/dlpay/api/domain/TTransactionMain.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/repositories/AccountService.java [moved from src/main/java/com/supwisdom/dlpay/api/repositories/AccountService.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/repositories/ShopaccService.java [moved from src/main/java/com/supwisdom/dlpay/api/repositories/ShopaccService.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/service/SourceTypeService.java [moved from src/main/java/com/supwisdom/dlpay/api/service/SourceTypeService.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/api/service/impl/SourceTypeServiceImpl.java [moved from src/main/java/com/supwisdom/dlpay/api/service/impl/SourceTypeServiceImpl.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/exception/TransactionCheckException.java [moved from src/main/java/com/supwisdom/dlpay/exception/TransactionCheckException.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/exception/TransactionException.java [moved from src/main/java/com/supwisdom/dlpay/exception/TransactionException.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/exception/TransactionProcessException.java [moved from src/main/java/com/supwisdom/dlpay/exception/TransactionProcessException.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/exception/ValidateCodeException.java [moved from src/main/java/com/supwisdom/dlpay/exception/ValidateCodeException.java with 94% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/KaptchaConfig.java [moved from src/main/java/com/supwisdom/dlpay/framework/KaptchaConfig.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/core/DatabaseConfig.java [moved from src/main/java/com/supwisdom/dlpay/framework/core/DatabaseConfig.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/core/DayendSettleTask.java [moved from src/main/java/com/supwisdom/dlpay/framework/core/DayendSettleTask.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/core/JwtConfig.java [moved from src/main/java/com/supwisdom/dlpay/framework/core/JwtConfig.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/core/JwtToken.java [moved from src/main/java/com/supwisdom/dlpay/framework/core/JwtToken.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/core/JwtTokenUtil.java [moved from src/main/java/com/supwisdom/dlpay/framework/core/JwtTokenUtil.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/core/PasswordBCryptConfig.java [moved from src/main/java/com/supwisdom/dlpay/framework/core/PasswordBCryptConfig.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/dao/ApiClientDao.java [moved from src/main/java/com/supwisdom/dlpay/framework/dao/ApiClientDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/dao/BusinessparaDao.java [moved from src/main/java/com/supwisdom/dlpay/framework/dao/BusinessparaDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/dao/DictionaryDao.java [moved from src/main/java/com/supwisdom/dlpay/framework/dao/DictionaryDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/dao/FeetypeConfigDao.java [moved from src/main/java/com/supwisdom/dlpay/framework/dao/FeetypeConfigDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/dao/FunctionDao.java [moved from src/main/java/com/supwisdom/dlpay/framework/dao/FunctionDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/dao/OperLogDao.java [moved from src/main/java/com/supwisdom/dlpay/framework/dao/OperLogDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/dao/OperRoleDao.java [moved from src/main/java/com/supwisdom/dlpay/framework/dao/OperRoleDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/dao/OperatorDao.java [moved from src/main/java/com/supwisdom/dlpay/framework/dao/OperatorDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/dao/PeriodDao.java [moved from src/main/java/com/supwisdom/dlpay/framework/dao/PeriodDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/dao/PermissionDao.java [moved from src/main/java/com/supwisdom/dlpay/framework/dao/PermissionDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/dao/ResourceDao.java [moved from src/main/java/com/supwisdom/dlpay/framework/dao/ResourceDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/dao/RoleDao.java [moved from src/main/java/com/supwisdom/dlpay/framework/dao/RoleDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/dao/RoleFunctionDao.java [moved from src/main/java/com/supwisdom/dlpay/framework/dao/RoleFunctionDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/dao/SettleCtlDao.java [moved from src/main/java/com/supwisdom/dlpay/framework/dao/SettleCtlDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/dao/SettleLogDao.java [moved from src/main/java/com/supwisdom/dlpay/framework/dao/SettleLogDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/dao/ShopDao.java [moved from src/main/java/com/supwisdom/dlpay/framework/dao/ShopDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/dao/ShopaccDao.java [moved from src/main/java/com/supwisdom/dlpay/framework/dao/ShopaccDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/dao/ShopaccdayDao.java [moved from src/main/java/com/supwisdom/dlpay/framework/dao/ShopaccdayDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/dao/SubjectDao.java [moved from src/main/java/com/supwisdom/dlpay/framework/dao/SubjectDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/dao/SubjectbalDao.java [moved from src/main/java/com/supwisdom/dlpay/framework/dao/SubjectbalDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/dao/SubjectdayDao.java [moved from src/main/java/com/supwisdom/dlpay/framework/dao/SubjectdayDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/dao/SysparaDao.java [moved from src/main/java/com/supwisdom/dlpay/framework/dao/SysparaDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/dao/TaskLockDao.java [moved from src/main/java/com/supwisdom/dlpay/framework/dao/TaskLockDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/dao/TenantConfigDao.java [moved from src/main/java/com/supwisdom/dlpay/framework/dao/TenantConfigDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/dao/TranscodeDao.java [moved from src/main/java/com/supwisdom/dlpay/framework/dao/TranscodeDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/dao/TranstypeDao.java [moved from src/main/java/com/supwisdom/dlpay/framework/dao/TranstypeDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/dao/VoucherDao.java [moved from src/main/java/com/supwisdom/dlpay/framework/dao/VoucherDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/dao/VoucherEntryDao.java [moved from src/main/java/com/supwisdom/dlpay/framework/dao/VoucherEntryDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/dao/VouchernoCtlDao.java [moved from src/main/java/com/supwisdom/dlpay/framework/dao/VouchernoCtlDao.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/data/ExistBean.java [moved from src/main/java/com/supwisdom/dlpay/framework/data/ExistBean.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/data/FSubjectInfoBean.java [moved from src/main/java/com/supwisdom/dlpay/framework/data/FSubjectInfoBean.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/data/MerchBean.java [moved from src/main/java/com/supwisdom/dlpay/framework/data/MerchBean.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/data/NodeData.java [moved from src/main/java/com/supwisdom/dlpay/framework/data/NodeData.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/data/SubjectInfoBean.java [moved from src/main/java/com/supwisdom/dlpay/framework/data/SubjectInfoBean.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/data/SystemDateTime.java [moved from src/main/java/com/supwisdom/dlpay/framework/data/SystemDateTime.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/data/VoucherTemp.java [moved from src/main/java/com/supwisdom/dlpay/framework/data/VoucherTemp.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/ApiClientRedis.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/ApiClientRedis.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/DictionaryTable.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/DictionaryTable.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/JwtRedis.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/JwtRedis.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/PersonRedis.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/PersonRedis.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TApiClient.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/TApiClient.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TBusinesspara.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/TBusinesspara.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TDictionary.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/TDictionary.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TDictionaryPK.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/TDictionaryPK.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TFeetypeConfig.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/TFeetypeConfig.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TFeetypeConfigPK.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/TFeetypeConfigPK.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TFunction.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/TFunction.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TOperLog.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/TOperLog.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TOperRole.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/TOperRole.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TOperator.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/TOperator.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TPeriod.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/TPeriod.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TPeriodPK.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/TPeriodPK.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TPermission.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/TPermission.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TResource.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/TResource.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TRole.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/TRole.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TRoleFunction.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/TRoleFunction.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TSettleLog.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/TSettleLog.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TSettlectl.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/TSettlectl.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TShop.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/TShop.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TShopacc.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/TShopacc.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TShopaccday.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/TShopaccday.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TShopaccdayPK.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/TShopaccdayPK.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TSubject.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/TSubject.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TSubjectbal.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/TSubjectbal.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TSubjectday.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/TSubjectday.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TSubjectdayPK.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/TSubjectdayPK.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TSyspara.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/TSyspara.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TTaskLock.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/TTaskLock.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TTenantConfig.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/TTenantConfig.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TTranscode.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/TTranscode.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TTranstype.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/TTranstype.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TVoucher.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/TVoucher.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TVoucherEntry.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/TVoucherEntry.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TVoucherEntryPK.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/TVoucherEntryPK.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TVouchernoCtl.java [moved from src/main/java/com/supwisdom/dlpay/framework/domain/TVouchernoCtl.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/filter/ValidateCodeFilter.java [moved from src/main/java/com/supwisdom/dlpay/framework/filter/ValidateCodeFilter.java with 97% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/redisrepo/ApiClientRepository.java [moved from src/main/java/com/supwisdom/dlpay/framework/redisrepo/ApiClientRepository.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/redisrepo/ApiJwtRepository.java [moved from src/main/java/com/supwisdom/dlpay/framework/redisrepo/ApiJwtRepository.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/redisrepo/PersonRepository.java [moved from src/main/java/com/supwisdom/dlpay/framework/redisrepo/PersonRepository.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/security/CodeUtil.java [moved from src/main/java/com/supwisdom/dlpay/framework/security/CodeUtil.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/security/MyAuthenticationFailureHandler.java [moved from src/main/java/com/supwisdom/dlpay/framework/security/MyAuthenticationFailureHandler.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/security/MyAuthenticationSuccessHandler.java [moved from src/main/java/com/supwisdom/dlpay/framework/security/MyAuthenticationSuccessHandler.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/security/MyInvalidSessionStrategy.java [moved from src/main/java/com/supwisdom/dlpay/framework/security/MyInvalidSessionStrategy.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/security/MyPermissionEvaluator.java [moved from src/main/java/com/supwisdom/dlpay/framework/security/MyPermissionEvaluator.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/security/OperUtil.java [moved from src/main/java/com/supwisdom/dlpay/framework/security/OperUtil.java with 96% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/security/ValidateCodeSecurityConfig.java [moved from src/main/java/com/supwisdom/dlpay/framework/security/ValidateCodeSecurityConfig.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/security/validate/ImageCode.java [moved from src/main/java/com/supwisdom/dlpay/framework/security/validate/ImageCode.java with 95% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/security/validate/ImageCodeUtil.java [moved from src/main/java/com/supwisdom/dlpay/framework/security/validate/ImageCodeUtil.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/security/validate/ValidateCode.java [moved from src/main/java/com/supwisdom/dlpay/framework/security/validate/ValidateCode.java with 94% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/security/validate/VerifyCode.java [moved from src/main/java/com/supwisdom/dlpay/framework/security/validate/VerifyCode.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/service/DayendSettleService.java [moved from src/main/java/com/supwisdom/dlpay/framework/service/DayendSettleService.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/service/DayendStatisticsService.java [moved from src/main/java/com/supwisdom/dlpay/framework/service/DayendStatisticsService.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/service/OperatorDetailService.java [moved from src/main/java/com/supwisdom/dlpay/framework/service/OperatorDetailService.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/service/SystemUtilService.java [moved from src/main/java/com/supwisdom/dlpay/framework/service/SystemUtilService.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/service/impl/DayendSettleServiceImpl.java [moved from src/main/java/com/supwisdom/dlpay/framework/service/impl/DayendSettleServiceImpl.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/service/impl/DayendStatisticsServiceImpl.java [moved from src/main/java/com/supwisdom/dlpay/framework/service/impl/DayendStatisticsServiceImpl.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/service/impl/OperatorDetailServiceImpl.java [moved from src/main/java/com/supwisdom/dlpay/framework/service/impl/OperatorDetailServiceImpl.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/service/impl/SystemUtilServiceImpl.java [moved from src/main/java/com/supwisdom/dlpay/framework/service/impl/SystemUtilServiceImpl.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/tenant/HibernateConfig.java [moved from src/main/java/com/supwisdom/dlpay/framework/tenant/HibernateConfig.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/tenant/MultiTenantConnectionProviderImpl.java [moved from src/main/java/com/supwisdom/dlpay/framework/tenant/MultiTenantConnectionProviderImpl.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/tenant/MultiTenantIdentifierResolver.java [moved from src/main/java/com/supwisdom/dlpay/framework/tenant/MultiTenantIdentifierResolver.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/tenant/TenantContext.java [moved from src/main/java/com/supwisdom/dlpay/framework/tenant/TenantContext.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/tenant/TenantInterceptor.java [moved from src/main/java/com/supwisdom/dlpay/framework/tenant/TenantInterceptor.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/util/Constants.java [moved from src/main/java/com/supwisdom/dlpay/framework/util/Constants.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/util/DateUtil.java [moved from src/main/java/com/supwisdom/dlpay/framework/util/DateUtil.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/util/Dictionary.java [moved from src/main/java/com/supwisdom/dlpay/framework/util/Dictionary.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/util/HmacUtil.java [moved from src/main/java/com/supwisdom/dlpay/framework/util/HmacUtil.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/util/MD5.java [moved from src/main/java/com/supwisdom/dlpay/framework/util/MD5.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/util/MoneyUtil.java [moved from src/main/java/com/supwisdom/dlpay/framework/util/MoneyUtil.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/util/NumberUtil.java [moved from src/main/java/com/supwisdom/dlpay/framework/util/NumberUtil.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/util/PageResult.java [moved from src/main/java/com/supwisdom/dlpay/framework/util/PageResult.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/util/PermissionConstants.java [moved from src/main/java/com/supwisdom/dlpay/framework/util/PermissionConstants.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/util/RandomUtils.java [moved from src/main/java/com/supwisdom/dlpay/framework/util/RandomUtils.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/util/Sign.java [moved from src/main/java/com/supwisdom/dlpay/framework/util/Sign.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/util/StringUtil.java [moved from src/main/java/com/supwisdom/dlpay/framework/util/StringUtil.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/util/Subject.java [moved from src/main/java/com/supwisdom/dlpay/framework/util/Subject.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/util/SysparaUtil.java [moved from src/main/java/com/supwisdom/dlpay/framework/util/SysparaUtil.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/util/TradeCode.java [moved from src/main/java/com/supwisdom/dlpay/framework/util/TradeCode.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/util/TradeDict.java [moved from src/main/java/com/supwisdom/dlpay/framework/util/TradeDict.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/util/TradeErrorCode.java [moved from src/main/java/com/supwisdom/dlpay/framework/util/TradeErrorCode.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/util/TradeSummary.java [moved from src/main/java/com/supwisdom/dlpay/framework/util/TradeSummary.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/util/Tradetype.java [moved from src/main/java/com/supwisdom/dlpay/framework/util/Tradetype.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/util/TranstypeCode.java [moved from src/main/java/com/supwisdom/dlpay/framework/util/TranstypeCode.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/util/WebConstant.java [moved from src/main/java/com/supwisdom/dlpay/framework/util/WebConstant.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/framework/util/XmlUtils.java [moved from src/main/java/com/supwisdom/dlpay/framework/util/XmlUtils.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/bean/AccountPerson.java [moved from src/main/java/com/supwisdom/dlpay/system/bean/AccountPerson.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/bean/FunctionSearchBean.java [moved from src/main/java/com/supwisdom/dlpay/system/bean/FunctionSearchBean.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/bean/IdTypeBean.java [moved from src/main/java/com/supwisdom/dlpay/system/bean/IdTypeBean.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/bean/LogBean.java [moved from src/main/java/com/supwisdom/dlpay/system/bean/LogBean.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/bean/OperatorSearchBean.java [moved from src/main/java/com/supwisdom/dlpay/system/bean/OperatorSearchBean.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/bean/PageBean.java [moved from src/main/java/com/supwisdom/dlpay/system/bean/PageBean.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/bean/PersonParamBean.java [moved from src/main/java/com/supwisdom/dlpay/system/bean/PersonParamBean.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/bean/ShopBusinessInfo.java [moved from src/main/java/com/supwisdom/dlpay/system/bean/ShopBusinessInfo.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/bean/ShopBusinessShowBean.java [moved from src/main/java/com/supwisdom/dlpay/system/bean/ShopBusinessShowBean.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/bean/ShopConfigBean.java [moved from src/main/java/com/supwisdom/dlpay/system/bean/ShopConfigBean.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/bean/ShopdtlSearchBean.java [moved from src/main/java/com/supwisdom/dlpay/system/bean/ShopdtlSearchBean.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/bean/SubjectDayInfo.java [moved from src/main/java/com/supwisdom/dlpay/system/bean/SubjectDayInfo.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/bean/SubjectDayShowBean.java [moved from src/main/java/com/supwisdom/dlpay/system/bean/SubjectDayShowBean.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/bean/SubjectDetailShowBean.java [moved from src/main/java/com/supwisdom/dlpay/system/bean/SubjectDetailShowBean.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/bean/TreeSelectNode.java [moved from src/main/java/com/supwisdom/dlpay/system/bean/TreeSelectNode.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/bean/UserdtlSearchBean.java [moved from src/main/java/com/supwisdom/dlpay/system/bean/UserdtlSearchBean.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/bean/ZTreeNode.java [moved from src/main/java/com/supwisdom/dlpay/system/bean/ZTreeNode.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/controller/DictPoolAction.java [moved from src/main/java/com/supwisdom/dlpay/system/controller/DictPoolAction.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/controller/DtlController.java [moved from src/main/java/com/supwisdom/dlpay/system/controller/DtlController.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/controller/FunctionController.java [moved from src/main/java/com/supwisdom/dlpay/system/controller/FunctionController.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/controller/OperatorController.java [moved from src/main/java/com/supwisdom/dlpay/system/controller/OperatorController.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/controller/ParamController.java [moved from src/main/java/com/supwisdom/dlpay/system/controller/ParamController.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/controller/RoleController.java [moved from src/main/java/com/supwisdom/dlpay/system/controller/RoleController.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/controller/SettleReportController.java [moved from src/main/java/com/supwisdom/dlpay/system/controller/SettleReportController.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/controller/ShopController.java [moved from src/main/java/com/supwisdom/dlpay/system/controller/ShopController.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/controller/UserController.java [moved from src/main/java/com/supwisdom/dlpay/system/controller/UserController.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/service/DictionaryDataService.java [moved from src/main/java/com/supwisdom/dlpay/system/service/DictionaryDataService.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/service/DictionaryProxy.java [moved from src/main/java/com/supwisdom/dlpay/system/service/DictionaryProxy.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/service/DtlDataService.java [moved from src/main/java/com/supwisdom/dlpay/system/service/DtlDataService.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/service/FunctionService.java [moved from src/main/java/com/supwisdom/dlpay/system/service/FunctionService.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/service/OperatorService.java [moved from src/main/java/com/supwisdom/dlpay/system/service/OperatorService.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/service/ParamService.java [moved from src/main/java/com/supwisdom/dlpay/system/service/ParamService.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/service/RoleService.java [moved from src/main/java/com/supwisdom/dlpay/system/service/RoleService.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/service/SettleReportService.java [moved from src/main/java/com/supwisdom/dlpay/system/service/SettleReportService.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/service/ShopDataService.java [moved from src/main/java/com/supwisdom/dlpay/system/service/ShopDataService.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/service/UserDataService.java [moved from src/main/java/com/supwisdom/dlpay/system/service/UserDataService.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/DictionaryDataServiceImpl.java [moved from src/main/java/com/supwisdom/dlpay/system/service/impl/DictionaryDataServiceImpl.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/DtlDataServiceImpl.java [moved from src/main/java/com/supwisdom/dlpay/system/service/impl/DtlDataServiceImpl.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/FunctionServiceImpl.java [moved from src/main/java/com/supwisdom/dlpay/system/service/impl/FunctionServiceImpl.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/OperatorServiceImpl.java [moved from src/main/java/com/supwisdom/dlpay/system/service/impl/OperatorServiceImpl.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/ParamServiceImpl.java [moved from src/main/java/com/supwisdom/dlpay/system/service/impl/ParamServiceImpl.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/RoleServiceImpl.java [moved from src/main/java/com/supwisdom/dlpay/system/service/impl/RoleServiceImpl.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/SettleReportServiceImpl.java [moved from src/main/java/com/supwisdom/dlpay/system/service/impl/SettleReportServiceImpl.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/ShopDataServiceImpl.java [moved from src/main/java/com/supwisdom/dlpay/system/service/impl/ShopDataServiceImpl.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/UserDataServiceImpl.java [moved from src/main/java/com/supwisdom/dlpay/system/service/impl/UserDataServiceImpl.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/util/Code.java [moved from src/main/java/com/supwisdom/dlpay/util/Code.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/util/ConstantUtil.java [moved from src/main/java/com/supwisdom/dlpay/util/ConstantUtil.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/util/DESedeUtil.java [moved from src/main/java/com/supwisdom/dlpay/util/DESedeUtil.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/util/DlpayUtil.java [moved from src/main/java/com/supwisdom/dlpay/util/DlpayUtil.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/util/PaytypeUtil.java [moved from src/main/java/com/supwisdom/dlpay/util/PaytypeUtil.java with 100% similarity]
payapi/src/main/java/com/supwisdom/dlpay/util/WebCheckException.java [moved from src/main/java/com/supwisdom/dlpay/util/WebCheckException.java with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/PayApiApplication.kt [moved from src/main/kotlin/com/supwisdom/dlpay/PayApiApplication.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/api/ThirdPayCall.kt [moved from src/main/kotlin/com/supwisdom/dlpay/api/ThirdPayCall.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/api/advices.kt [moved from src/main/kotlin/com/supwisdom/dlpay/api/advices.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/api/async_tasks.kt [moved from src/main/kotlin/com/supwisdom/dlpay/api/async_tasks.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/api/bean/api_request_param.kt [moved from src/main/kotlin/com/supwisdom/dlpay/api/bean/api_request_param.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/charge_api_controller.kt [moved from src/main/kotlin/com/supwisdom/dlpay/api/controller/charge_api_controller.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_api_controller.kt [moved from src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_api_controller.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/dali_datasync_api_controller.kt [moved from src/main/kotlin/com/supwisdom/dlpay/api/controller/dali_datasync_api_controller.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/notify_api_controller.kt [moved from src/main/kotlin/com/supwisdom/dlpay/api/controller/notify_api_controller.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/shop_api_controller.kt [moved from src/main/kotlin/com/supwisdom/dlpay/api/controller/shop_api_controller.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/user_api_controller.kt [moved from src/main/kotlin/com/supwisdom/dlpay/api/controller/user_api_controller.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/api/scheduler_task.kt [moved from src/main/kotlin/com/supwisdom/dlpay/api/scheduler_task.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/charge_api_service.kt [moved from src/main/kotlin/com/supwisdom/dlpay/api/service/charge_api_service.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/consume_pay_service.kt [moved from src/main/kotlin/com/supwisdom/dlpay/api/service/consume_pay_service.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/account_service_impl.kt [moved from src/main/kotlin/com/supwisdom/dlpay/api/service/impl/account_service_impl.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/charge_api_service_impl.kt [moved from src/main/kotlin/com/supwisdom/dlpay/api/service/impl/charge_api_service_impl.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/consume_pay_service_impl.kt [moved from src/main/kotlin/com/supwisdom/dlpay/api/service/impl/consume_pay_service_impl.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/pay_service_impl.kt [moved from src/main/kotlin/com/supwisdom/dlpay/api/service/impl/pay_service_impl.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/shop_service_impl.kt [moved from src/main/kotlin/com/supwisdom/dlpay/api/service/impl/shop_service_impl.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/transaction_service_impl.kt [moved from src/main/kotlin/com/supwisdom/dlpay/api/service/impl/transaction_service_impl.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/user_service_impl.kt [moved from src/main/kotlin/com/supwisdom/dlpay/api/service/impl/user_service_impl.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/pay_service.kt [moved from src/main/kotlin/com/supwisdom/dlpay/api/service/pay_service.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/shop_service.kt [moved from src/main/kotlin/com/supwisdom/dlpay/api/service/shop_service.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/transaction_service.kt [moved from src/main/kotlin/com/supwisdom/dlpay/api/service/transaction_service.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/user_service.kt [moved from src/main/kotlin/com/supwisdom/dlpay/api/service/user_service.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/api/transaction_builder.kt [moved from src/main/kotlin/com/supwisdom/dlpay/api/transaction_builder.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/app/bean/app_request_param.kt [moved from src/main/kotlin/com/supwisdom/dlpay/app/bean/app_request_param.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/framework/controller/framework_controller.kt [moved from src/main/kotlin/com/supwisdom/dlpay/framework/controller/framework_controller.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/framework/controller/security_controller.kt [moved from src/main/kotlin/com/supwisdom/dlpay/framework/controller/security_controller.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/framework/framework_util.kt [moved from src/main/kotlin/com/supwisdom/dlpay/framework/framework_util.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/framework/service/framework_service.kt [moved from src/main/kotlin/com/supwisdom/dlpay/framework/service/framework_service.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/framework/service/impl/framework_service_impl.kt [moved from src/main/kotlin/com/supwisdom/dlpay/framework/service/impl/framework_service_impl.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/framework/tenant.kt [moved from src/main/kotlin/com/supwisdom/dlpay/framework/tenant.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/AuthLoginHandler.kt [moved from src/main/kotlin/com/supwisdom/dlpay/mobile/AuthLoginHandler.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/MobileApi.kt [moved from src/main/kotlin/com/supwisdom/dlpay/mobile/MobileApi.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/dao/MobileUserDao.kt [moved from src/main/kotlin/com/supwisdom/dlpay/mobile/dao/MobileUserDao.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/domain/TBMobileUser.kt [moved from src/main/kotlin/com/supwisdom/dlpay/mobile/domain/TBMobileUser.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/exception/UserLoginFailException.kt [moved from src/main/kotlin/com/supwisdom/dlpay/mobile/exception/UserLoginFailException.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/service/MobileApiService.kt [moved from src/main/kotlin/com/supwisdom/dlpay/mobile/service/MobileApiService.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/service/MobileUserService.kt [moved from src/main/kotlin/com/supwisdom/dlpay/mobile/service/MobileUserService.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/service/impl/MobileApiServiceImpl.kt [moved from src/main/kotlin/com/supwisdom/dlpay/mobile/service/impl/MobileApiServiceImpl.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/service/impl/MobileUserServiceImpl.kt [moved from src/main/kotlin/com/supwisdom/dlpay/mobile/service/impl/MobileUserServiceImpl.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/oauth.kt [moved from src/main/kotlin/com/supwisdom/dlpay/oauth.kt with 100% similarity]
payapi/src/main/kotlin/com/supwisdom/dlpay/security.kt [moved from src/main/kotlin/com/supwisdom/dlpay/security.kt with 100% similarity]
payapi/src/main/resources/application.properties [moved from src/main/resources/application.properties with 100% similarity]
payapi/src/main/resources/data-postgresql.sql [moved from src/main/resources/data-postgresql.sql with 100% similarity]
payapi/src/main/resources/data.sql [moved from src/main/resources/data.sql with 100% similarity]
payapi/src/main/resources/static/custom/css/admin.css [moved from src/main/resources/static/custom/css/admin.css with 100% similarity]
payapi/src/main/resources/static/custom/css/console.css [moved from src/main/resources/static/custom/css/console.css with 100% similarity]
payapi/src/main/resources/static/custom/css/login.css [moved from src/main/resources/static/custom/css/login.css with 100% similarity]
payapi/src/main/resources/static/custom/css/theme-blue.css [moved from src/main/resources/static/custom/css/theme-blue.css with 100% similarity]
payapi/src/main/resources/static/custom/images/bg_login.png [moved from src/main/resources/static/custom/images/bg_login.png with 100% similarity]
payapi/src/main/resources/static/custom/images/head.png [moved from src/main/resources/static/custom/images/head.png with 100% similarity]
payapi/src/main/resources/static/custom/images/logo.png [moved from src/main/resources/static/custom/images/logo.png with 100% similarity]
payapi/src/main/resources/static/custom/module/admin.js [moved from src/main/resources/static/custom/module/admin.js with 97% similarity]
payapi/src/main/resources/static/custom/module/formSelects/formSelects-v4.all.js [moved from src/main/resources/static/custom/module/formSelects/formSelects-v4.all.js with 100% similarity]
payapi/src/main/resources/static/custom/module/formSelects/formSelects-v4.css [moved from src/main/resources/static/custom/module/formSelects/formSelects-v4.css with 100% similarity]
payapi/src/main/resources/static/custom/module/formSelects/formSelects-v4.js [moved from src/main/resources/static/custom/module/formSelects/formSelects-v4.js with 100% similarity]
payapi/src/main/resources/static/custom/module/index.js [moved from src/main/resources/static/custom/module/index.js with 100% similarity]
payapi/src/main/resources/static/custom/module/treeSelect/treeSelect.js [moved from src/main/resources/static/custom/module/treeSelect/treeSelect.js with 100% similarity]
payapi/src/main/resources/static/custom/module/treetable-lay/treetable.css [moved from src/main/resources/static/custom/module/treetable-lay/treetable.css with 100% similarity]
payapi/src/main/resources/static/custom/module/treetable-lay/treetable.js [moved from src/main/resources/static/custom/module/treetable-lay/treetable.js with 100% similarity]
payapi/src/main/resources/static/libs/custom.js [moved from src/main/resources/static/libs/custom.js with 100% similarity]
payapi/src/main/resources/static/libs/jquery/jquery-3.2.1.min.js [moved from src/main/resources/static/libs/jquery/jquery-3.2.1.min.js with 100% similarity]
payapi/src/main/resources/static/libs/layui/css/layui.css [moved from src/main/resources/static/libs/layui/css/layui.css with 100% similarity]
payapi/src/main/resources/static/libs/layui/css/layui.mobile.css [moved from src/main/resources/static/libs/layui/css/layui.mobile.css with 100% similarity]
payapi/src/main/resources/static/libs/layui/css/modules/code.css [moved from src/main/resources/static/libs/layui/css/modules/code.css with 100% similarity]
payapi/src/main/resources/static/libs/layui/css/modules/laydate/default/laydate.css [moved from src/main/resources/static/libs/layui/css/modules/laydate/default/laydate.css with 100% similarity]
payapi/src/main/resources/static/libs/layui/css/modules/layer/default/icon-ext.png [moved from src/main/resources/static/libs/layui/css/modules/layer/default/icon-ext.png with 100% similarity]
payapi/src/main/resources/static/libs/layui/css/modules/layer/default/icon.png [moved from src/main/resources/static/libs/layui/css/modules/layer/default/icon.png with 100% similarity]
payapi/src/main/resources/static/libs/layui/css/modules/layer/default/layer.css [moved from src/main/resources/static/libs/layui/css/modules/layer/default/layer.css with 100% similarity]
payapi/src/main/resources/static/libs/layui/css/modules/layer/default/loading-0.gif [moved from src/main/resources/static/libs/layui/css/modules/layer/default/loading-0.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/css/modules/layer/default/loading-1.gif [moved from src/main/resources/static/libs/layui/css/modules/layer/default/loading-1.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/css/modules/layer/default/loading-2.gif [moved from src/main/resources/static/libs/layui/css/modules/layer/default/loading-2.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/font/iconfont.eot [moved from src/main/resources/static/libs/layui/font/iconfont.eot with 100% similarity]
payapi/src/main/resources/static/libs/layui/font/iconfont.svg [moved from src/main/resources/static/libs/layui/font/iconfont.svg with 100% similarity]
payapi/src/main/resources/static/libs/layui/font/iconfont.ttf [moved from src/main/resources/static/libs/layui/font/iconfont.ttf with 100% similarity]
payapi/src/main/resources/static/libs/layui/font/iconfont.woff [moved from src/main/resources/static/libs/layui/font/iconfont.woff with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/0.gif [moved from src/main/resources/static/libs/layui/images/face/0.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/1.gif [moved from src/main/resources/static/libs/layui/images/face/1.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/10.gif [moved from src/main/resources/static/libs/layui/images/face/10.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/11.gif [moved from src/main/resources/static/libs/layui/images/face/11.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/12.gif [moved from src/main/resources/static/libs/layui/images/face/12.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/13.gif [moved from src/main/resources/static/libs/layui/images/face/13.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/14.gif [moved from src/main/resources/static/libs/layui/images/face/14.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/15.gif [moved from src/main/resources/static/libs/layui/images/face/15.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/16.gif [moved from src/main/resources/static/libs/layui/images/face/16.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/17.gif [moved from src/main/resources/static/libs/layui/images/face/17.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/18.gif [moved from src/main/resources/static/libs/layui/images/face/18.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/19.gif [moved from src/main/resources/static/libs/layui/images/face/19.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/2.gif [moved from src/main/resources/static/libs/layui/images/face/2.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/20.gif [moved from src/main/resources/static/libs/layui/images/face/20.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/21.gif [moved from src/main/resources/static/libs/layui/images/face/21.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/22.gif [moved from src/main/resources/static/libs/layui/images/face/22.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/23.gif [moved from src/main/resources/static/libs/layui/images/face/23.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/24.gif [moved from src/main/resources/static/libs/layui/images/face/24.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/25.gif [moved from src/main/resources/static/libs/layui/images/face/25.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/26.gif [moved from src/main/resources/static/libs/layui/images/face/26.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/27.gif [moved from src/main/resources/static/libs/layui/images/face/27.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/28.gif [moved from src/main/resources/static/libs/layui/images/face/28.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/29.gif [moved from src/main/resources/static/libs/layui/images/face/29.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/3.gif [moved from src/main/resources/static/libs/layui/images/face/3.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/30.gif [moved from src/main/resources/static/libs/layui/images/face/30.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/31.gif [moved from src/main/resources/static/libs/layui/images/face/31.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/32.gif [moved from src/main/resources/static/libs/layui/images/face/32.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/33.gif [moved from src/main/resources/static/libs/layui/images/face/33.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/34.gif [moved from src/main/resources/static/libs/layui/images/face/34.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/35.gif [moved from src/main/resources/static/libs/layui/images/face/35.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/36.gif [moved from src/main/resources/static/libs/layui/images/face/36.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/37.gif [moved from src/main/resources/static/libs/layui/images/face/37.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/38.gif [moved from src/main/resources/static/libs/layui/images/face/38.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/39.gif [moved from src/main/resources/static/libs/layui/images/face/39.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/4.gif [moved from src/main/resources/static/libs/layui/images/face/4.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/40.gif [moved from src/main/resources/static/libs/layui/images/face/40.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/41.gif [moved from src/main/resources/static/libs/layui/images/face/41.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/42.gif [moved from src/main/resources/static/libs/layui/images/face/42.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/43.gif [moved from src/main/resources/static/libs/layui/images/face/43.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/44.gif [moved from src/main/resources/static/libs/layui/images/face/44.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/45.gif [moved from src/main/resources/static/libs/layui/images/face/45.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/46.gif [moved from src/main/resources/static/libs/layui/images/face/46.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/47.gif [moved from src/main/resources/static/libs/layui/images/face/47.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/48.gif [moved from src/main/resources/static/libs/layui/images/face/48.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/49.gif [moved from src/main/resources/static/libs/layui/images/face/49.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/5.gif [moved from src/main/resources/static/libs/layui/images/face/5.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/50.gif [moved from src/main/resources/static/libs/layui/images/face/50.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/51.gif [moved from src/main/resources/static/libs/layui/images/face/51.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/52.gif [moved from src/main/resources/static/libs/layui/images/face/52.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/53.gif [moved from src/main/resources/static/libs/layui/images/face/53.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/54.gif [moved from src/main/resources/static/libs/layui/images/face/54.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/55.gif [moved from src/main/resources/static/libs/layui/images/face/55.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/56.gif [moved from src/main/resources/static/libs/layui/images/face/56.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/57.gif [moved from src/main/resources/static/libs/layui/images/face/57.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/58.gif [moved from src/main/resources/static/libs/layui/images/face/58.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/59.gif [moved from src/main/resources/static/libs/layui/images/face/59.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/6.gif [moved from src/main/resources/static/libs/layui/images/face/6.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/60.gif [moved from src/main/resources/static/libs/layui/images/face/60.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/61.gif [moved from src/main/resources/static/libs/layui/images/face/61.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/62.gif [moved from src/main/resources/static/libs/layui/images/face/62.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/63.gif [moved from src/main/resources/static/libs/layui/images/face/63.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/64.gif [moved from src/main/resources/static/libs/layui/images/face/64.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/65.gif [moved from src/main/resources/static/libs/layui/images/face/65.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/66.gif [moved from src/main/resources/static/libs/layui/images/face/66.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/67.gif [moved from src/main/resources/static/libs/layui/images/face/67.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/68.gif [moved from src/main/resources/static/libs/layui/images/face/68.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/69.gif [moved from src/main/resources/static/libs/layui/images/face/69.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/7.gif [moved from src/main/resources/static/libs/layui/images/face/7.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/70.gif [moved from src/main/resources/static/libs/layui/images/face/70.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/71.gif [moved from src/main/resources/static/libs/layui/images/face/71.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/8.gif [moved from src/main/resources/static/libs/layui/images/face/8.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/images/face/9.gif [moved from src/main/resources/static/libs/layui/images/face/9.gif with 100% similarity]
payapi/src/main/resources/static/libs/layui/lay/modules/carousel.js [moved from src/main/resources/static/libs/layui/lay/modules/carousel.js with 100% similarity]
payapi/src/main/resources/static/libs/layui/lay/modules/code.js [moved from src/main/resources/static/libs/layui/lay/modules/code.js with 100% similarity]
payapi/src/main/resources/static/libs/layui/lay/modules/colorpicker.js [moved from src/main/resources/static/libs/layui/lay/modules/colorpicker.js with 100% similarity]
payapi/src/main/resources/static/libs/layui/lay/modules/element.js [moved from src/main/resources/static/libs/layui/lay/modules/element.js with 100% similarity]
payapi/src/main/resources/static/libs/layui/lay/modules/flow.js [moved from src/main/resources/static/libs/layui/lay/modules/flow.js with 100% similarity]
payapi/src/main/resources/static/libs/layui/lay/modules/form.js [moved from src/main/resources/static/libs/layui/lay/modules/form.js with 100% similarity]
payapi/src/main/resources/static/libs/layui/lay/modules/jquery.js [moved from src/main/resources/static/libs/layui/lay/modules/jquery.js with 100% similarity]
payapi/src/main/resources/static/libs/layui/lay/modules/laydate.js [moved from src/main/resources/static/libs/layui/lay/modules/laydate.js with 100% similarity]
payapi/src/main/resources/static/libs/layui/lay/modules/layedit.js [moved from src/main/resources/static/libs/layui/lay/modules/layedit.js with 100% similarity]
payapi/src/main/resources/static/libs/layui/lay/modules/layer.js [moved from src/main/resources/static/libs/layui/lay/modules/layer.js with 100% similarity]
payapi/src/main/resources/static/libs/layui/lay/modules/laypage.js [moved from src/main/resources/static/libs/layui/lay/modules/laypage.js with 100% similarity]
payapi/src/main/resources/static/libs/layui/lay/modules/laytpl.js [moved from src/main/resources/static/libs/layui/lay/modules/laytpl.js with 100% similarity]
payapi/src/main/resources/static/libs/layui/lay/modules/mobile.js [moved from src/main/resources/static/libs/layui/lay/modules/mobile.js with 100% similarity]
payapi/src/main/resources/static/libs/layui/lay/modules/rate.js [moved from src/main/resources/static/libs/layui/lay/modules/rate.js with 100% similarity]
payapi/src/main/resources/static/libs/layui/lay/modules/slider.js [moved from src/main/resources/static/libs/layui/lay/modules/slider.js with 100% similarity]
payapi/src/main/resources/static/libs/layui/lay/modules/table.js [moved from src/main/resources/static/libs/layui/lay/modules/table.js with 100% similarity]
payapi/src/main/resources/static/libs/layui/lay/modules/tree.js [moved from src/main/resources/static/libs/layui/lay/modules/tree.js with 100% similarity]
payapi/src/main/resources/static/libs/layui/lay/modules/upload.js [moved from src/main/resources/static/libs/layui/lay/modules/upload.js with 100% similarity]
payapi/src/main/resources/static/libs/layui/lay/modules/util.js [moved from src/main/resources/static/libs/layui/lay/modules/util.js with 100% similarity]
payapi/src/main/resources/static/libs/layui/layui.all.js [moved from src/main/resources/static/libs/layui/layui.all.js with 100% similarity]
payapi/src/main/resources/static/libs/layui/layui.js [moved from src/main/resources/static/libs/layui/layui.js with 100% similarity]
payapi/src/main/resources/static/libs/q.js [moved from src/main/resources/static/libs/q.js with 100% similarity]
payapi/src/main/resources/static/libs/zTree/css/metroStyle/img/line_conn.png [moved from src/main/resources/static/libs/zTree/css/metroStyle/img/line_conn.png with 100% similarity]
payapi/src/main/resources/static/libs/zTree/css/metroStyle/img/loading.gif [moved from src/main/resources/static/libs/zTree/css/metroStyle/img/loading.gif with 100% similarity]
payapi/src/main/resources/static/libs/zTree/css/metroStyle/img/metro.gif [moved from src/main/resources/static/libs/zTree/css/metroStyle/img/metro.gif with 100% similarity]
payapi/src/main/resources/static/libs/zTree/css/metroStyle/img/metro.png [moved from src/main/resources/static/libs/zTree/css/metroStyle/img/metro.png with 100% similarity]
payapi/src/main/resources/static/libs/zTree/css/metroStyle/metroStyle.css [moved from src/main/resources/static/libs/zTree/css/metroStyle/metroStyle.css with 100% similarity]
payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/1_close.png [moved from src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/1_close.png with 100% similarity]
payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/1_open.png [moved from src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/1_open.png with 100% similarity]
payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/2.png [moved from src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/2.png with 100% similarity]
payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/3.png [moved from src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/3.png with 100% similarity]
payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/4.png [moved from src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/4.png with 100% similarity]
payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/5.png [moved from src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/5.png with 100% similarity]
payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/6.png [moved from src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/6.png with 100% similarity]
payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/7.png [moved from src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/7.png with 100% similarity]
payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/8.png [moved from src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/8.png with 100% similarity]
payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/9.png [moved from src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/9.png with 100% similarity]
payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/line_conn.gif [moved from src/main/resources/static/libs/zTree/css/zTreeStyle/img/line_conn.gif with 100% similarity]
payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/loading.gif [moved from src/main/resources/static/libs/zTree/css/zTreeStyle/img/loading.gif with 100% similarity]
payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/zTreeStandard.gif [moved from src/main/resources/static/libs/zTree/css/zTreeStyle/img/zTreeStandard.gif with 100% similarity]
payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/zTreeStandard.png [moved from src/main/resources/static/libs/zTree/css/zTreeStyle/img/zTreeStandard.png with 100% similarity]
payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/zTreeStyle.css [moved from src/main/resources/static/libs/zTree/css/zTreeStyle/zTreeStyle.css with 100% similarity]
payapi/src/main/resources/static/libs/zTree/js/jquery.ztree.all-3.5.min.js [moved from src/main/resources/static/libs/zTree/js/jquery.ztree.all-3.5.min.js with 100% similarity]
payapi/src/main/resources/templates/error/403.html [moved from src/main/resources/templates/error/403.html with 96% similarity]
payapi/src/main/resources/templates/error/404.html [moved from src/main/resources/templates/error/404.html with 96% similarity]
payapi/src/main/resources/templates/error/500.html [moved from src/main/resources/templates/error/500.html with 96% similarity]
payapi/src/main/resources/templates/home/console.html [moved from src/main/resources/templates/home/console.html with 95% similarity]
payapi/src/main/resources/templates/home/message.html [moved from src/main/resources/templates/home/message.html with 100% similarity]
payapi/src/main/resources/templates/home/password.html [moved from src/main/resources/templates/home/password.html with 97% similarity]
payapi/src/main/resources/templates/home/theme.html [moved from src/main/resources/templates/home/theme.html with 96% similarity]
payapi/src/main/resources/templates/index.html [moved from src/main/resources/templates/index.html with 97% similarity]
payapi/src/main/resources/templates/login.html [moved from src/main/resources/templates/login.html with 100% similarity]
payapi/src/main/resources/templates/ologin.html [moved from src/main/resources/templates/ologin.html with 100% similarity]
payapi/src/main/resources/templates/system/dtl/shopdtl.html [moved from src/main/resources/templates/system/dtl/shopdtl.html with 100% similarity]
payapi/src/main/resources/templates/system/dtl/userdtl.html [moved from src/main/resources/templates/system/dtl/userdtl.html with 100% similarity]
payapi/src/main/resources/templates/system/function/form.html [moved from src/main/resources/templates/system/function/form.html with 97% similarity]
payapi/src/main/resources/templates/system/function/index.html [moved from src/main/resources/templates/system/function/index.html with 97% similarity]
payapi/src/main/resources/templates/system/function/resform.html [moved from src/main/resources/templates/system/function/resform.html with 97% similarity]
payapi/src/main/resources/templates/system/function/reslist.html [moved from src/main/resources/templates/system/function/reslist.html with 97% similarity]
payapi/src/main/resources/templates/system/function/subform.html [moved from src/main/resources/templates/system/function/subform.html with 97% similarity]
payapi/src/main/resources/templates/system/operator/index.html [moved from src/main/resources/templates/system/operator/index.html with 100% similarity]
payapi/src/main/resources/templates/system/operator/logs.html [moved from src/main/resources/templates/system/operator/logs.html with 100% similarity]
payapi/src/main/resources/templates/system/operator/operator.html [moved from src/main/resources/templates/system/operator/operator.html with 100% similarity]
payapi/src/main/resources/templates/system/operator/setpwd.html [moved from src/main/resources/templates/system/operator/setpwd.html with 100% similarity]
payapi/src/main/resources/templates/system/operator/userinfor.html [moved from src/main/resources/templates/system/operator/userinfor.html with 100% similarity]
payapi/src/main/resources/templates/system/param/apiclientform.html [moved from src/main/resources/templates/system/param/apiclientform.html with 100% similarity]
payapi/src/main/resources/templates/system/param/apiclientpara.html [moved from src/main/resources/templates/system/param/apiclientpara.html with 100% similarity]
payapi/src/main/resources/templates/system/param/businesspara.html [moved from src/main/resources/templates/system/param/businesspara.html with 100% similarity]
payapi/src/main/resources/templates/system/param/busparaform.html [moved from src/main/resources/templates/system/param/busparaform.html with 100% similarity]
payapi/src/main/resources/templates/system/param/paytype.html [moved from src/main/resources/templates/system/param/paytype.html with 100% similarity]
payapi/src/main/resources/templates/system/param/paytypeconfig.html [moved from src/main/resources/templates/system/param/paytypeconfig.html with 100% similarity]
payapi/src/main/resources/templates/system/param/paytypeform.html [moved from src/main/resources/templates/system/param/paytypeform.html with 100% similarity]
payapi/src/main/resources/templates/system/param/syspara.html [moved from src/main/resources/templates/system/param/syspara.html with 100% similarity]
payapi/src/main/resources/templates/system/report/shopbusiness.html [moved from src/main/resources/templates/system/report/shopbusiness.html with 100% similarity]
payapi/src/main/resources/templates/system/report/subjectday.html [moved from src/main/resources/templates/system/report/subjectday.html with 100% similarity]
payapi/src/main/resources/templates/system/report/subjectdetail.html [moved from src/main/resources/templates/system/report/subjectdetail.html with 100% similarity]
payapi/src/main/resources/templates/system/role/form.html [moved from src/main/resources/templates/system/role/form.html with 97% similarity]
payapi/src/main/resources/templates/system/role/func.html [moved from src/main/resources/templates/system/role/func.html with 97% similarity]
payapi/src/main/resources/templates/system/role/index.html [moved from src/main/resources/templates/system/role/index.html with 100% similarity]
payapi/src/main/resources/templates/system/shop/config.html [moved from src/main/resources/templates/system/shop/config.html with 100% similarity]
payapi/src/main/resources/templates/system/shop/configform.html [moved from src/main/resources/templates/system/shop/configform.html with 100% similarity]
payapi/src/main/resources/templates/system/shop/configpara.html [moved from src/main/resources/templates/system/shop/configpara.html with 100% similarity]
payapi/src/main/resources/templates/system/shop/index.html [moved from src/main/resources/templates/system/shop/index.html with 100% similarity]
payapi/src/main/resources/templates/system/user/account.html [moved from src/main/resources/templates/system/user/account.html with 100% similarity]
payapi/src/main/resources/templates/system/user/add.html [moved from src/main/resources/templates/system/user/add.html with 97% similarity]
payapi/src/main/resources/templates/system/user/bind.html [moved from src/main/resources/templates/system/user/bind.html with 97% similarity]
payapi/src/main/resources/templates/system/user/index.html [moved from src/main/resources/templates/system/user/index.html with 100% similarity]
payapi/src/main/resources/templates/system/user/point.html [moved from src/main/resources/templates/system/user/point.html with 100% similarity]
payapi/src/main/resources/templates/system/user/pointdtl.html [moved from src/main/resources/templates/system/user/pointdtl.html with 100% similarity]
payapi/src/main/webapp/WEB-INF/web.xml [moved from src/main/webapp/WEB-INF/web.xml with 100% similarity]
payapi/src/test/kotlin/com/supwisdom/dlpay/DlpayApplicationTests.kt [moved from src/test/kotlin/com/supwisdom/dlpay/DlpayApplicationTests.kt with 100% similarity]
payapi/src/test/kotlin/com/supwisdom/dlpay/MvcBaseTest.kt [moved from src/test/kotlin/com/supwisdom/dlpay/MvcBaseTest.kt with 100% similarity]
payapi/src/test/kotlin/com/supwisdom/dlpay/controller/ApiControllerTest.kt [moved from src/test/kotlin/com/supwisdom/dlpay/controller/ApiControllerTest.kt with 100% similarity]
payapi/src/test/kotlin/com/supwisdom/dlpay/controller/ShopControllerTest.kt [moved from src/test/kotlin/com/supwisdom/dlpay/controller/ShopControllerTest.kt with 100% similarity]
payapi/src/test/kotlin/com/supwisdom/dlpay/controller/UserControllerTest.kt [moved from src/test/kotlin/com/supwisdom/dlpay/controller/UserControllerTest.kt with 100% similarity]
payapi/src/test/kotlin/com/supwisdom/dlpay/controller/security_controller_test.kt [moved from src/test/kotlin/com/supwisdom/dlpay/controller/security_controller_test.kt with 100% similarity]
payapi/src/test/kotlin/com/supwisdom/dlpay/password_test.kt [moved from src/test/kotlin/com/supwisdom/dlpay/password_test.kt with 100% similarity]
settings.gradle

index 9d339e7..d3f7c74 100644 (file)
@@ -1,24 +1,3 @@
-plugins {
-    id 'java'
-    id 'org.springframework.boot' version '2.1.6.RELEASE'
-    id 'org.jetbrains.kotlin.jvm' version '1.3.31'
-    id 'org.jetbrains.kotlin.plugin.jpa' version '1.3.31'
-    id 'org.jetbrains.kotlin.plugin.spring' version '1.3.31'
-    id "com.palantir.git-version" version "0.12.0-rc2"
-    id 'com.palantir.docker' version '0.22.1'
-}
-
-apply plugin: 'java'
-apply plugin: 'io.spring.dependency-management'
-
-payapiVersion = gitVersion()
-
-group = 'com.supwisdom'
-version = '1'
-sourceCompatibility = jdkVersion
-def startClass = 'com.supwisdom.dlpay.PayApiApplicationKt'
-
-println("Build version: $payapiVersion")
 allprojects {
     repositories {
         jcenter()
@@ -30,78 +9,6 @@ subprojects {
     version = '1.0'
 }
 
-bootJar {
-    mainClassName = startClass
-    manifest {
-        attributes('Payapi-Version': payapiVersion)
-    }
-}
-
-jar {
-    baseName = 'payapi'
-}
-
-docker {
-    name 'harbor.supwisdom.com/dali/payapi:' + version
-    println(jar.archivePath)
-    files jar.archivePath
-}
-
-docker.dependsOn(jar)
-
-dependencies {
-    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
-    implementation 'org.springframework.boot:spring-boot-starter-data-redis'
-    implementation 'org.springframework.boot:spring-boot-starter-web'
-    implementation 'org.springframework.boot:spring-boot-starter-security'
-    implementation 'org.springframework.boot:spring-boot-starter-cache'
-    implementation 'org.springframework.boot:spring-boot-autoconfigure'
-    implementation 'org.springframework.security:spring-security-oauth2-jose'
-    implementation 'org.springframework.security:spring-security-oauth2-client'
-    implementation 'org.springframework.security:spring-security-oauth2-jose'
-    implementation 'org.springframework.security.oauth.boot:spring-security-oauth2-autoconfigure:2.1.5.RELEASE'
-    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
-    implementation 'org.springframework.session:spring-session-data-redis'
-    implementation 'org.springframework.boot:spring-boot-starter-cache'
-    implementation 'org.springframework.social:spring-social-web:1.1.6.RELEASE'
-    implementation 'org.jetbrains.kotlin:kotlin-reflect'
-    implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8'
-    implementation 'commons-codec:commons-codec:1.12'
-
-    implementation 'org.springframework.cloud:spring-cloud-starter-consul-discovery:2.1.2.RELEASE'
-
-    implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5'
-
-    runtime("org.springframework.boot:spring-boot-devtools")
-
-    implementation 'org.postgresql:postgresql:42.2.5'
-    implementation 'com.fasterxml.jackson.module:jackson-module-kotlin'
-    implementation 'com.jcabi:jcabi-manifests:1.1'
-    implementation 'org.bitbucket.b_c:jose4j:0.6.3'
-    implementation 'io.github.microutils:kotlin-logging:1.6.26'
-    implementation 'org.slf4j:slf4j-parent:1.7.26'
-    implementation 'com.github.penggle:kaptcha:2.3.2'
-    implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.5'
-    implementation group: 'com.sun.jersey', name: 'jersey-client', version: '1.19'
-    implementation group: 'javax.servlet', name: 'jstl', version: '1.2'
-    implementation group: 'taglibs', name: 'standard', version: '1.1.2'
-    implementation group: 'commons-codec', name: 'commons-codec', version: '1.6'
-    implementation files('libs/ojdbc6.jar')
-    implementation 'commons-dbcp:commons-dbcp:1.4'
-
-    implementation project(':common')
-
-    annotationProcessor "org.springframework.boot:spring-boot-configuration-processor"
-    annotationProcessor 'org.projectlombok:lombok:1.18.8'
-    compileOnly 'org.projectlombok:lombok:1.18.8'
-
-//    providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
-    testImplementation 'org.springframework.boot:spring-boot-starter-test'
-    testImplementation 'io.rest-assured:rest-assured:3.3.0'
-    testImplementation 'io.rest-assured:spring-mock-mvc:3.3.0'
-    testImplementation 'org.hamcrest:hamcrest:2.1'
-}
-
 compileKotlin {
     kotlinOptions {
         freeCompilerArgs = ['-Xjsr305=strict']
diff --git a/payapi/build.gradle b/payapi/build.gradle
new file mode 100644 (file)
index 0000000..9d339e7
--- /dev/null
@@ -0,0 +1,117 @@
+plugins {
+    id 'java'
+    id 'org.springframework.boot' version '2.1.6.RELEASE'
+    id 'org.jetbrains.kotlin.jvm' version '1.3.31'
+    id 'org.jetbrains.kotlin.plugin.jpa' version '1.3.31'
+    id 'org.jetbrains.kotlin.plugin.spring' version '1.3.31'
+    id "com.palantir.git-version" version "0.12.0-rc2"
+    id 'com.palantir.docker' version '0.22.1'
+}
+
+apply plugin: 'java'
+apply plugin: 'io.spring.dependency-management'
+
+payapiVersion = gitVersion()
+
+group = 'com.supwisdom'
+version = '1'
+sourceCompatibility = jdkVersion
+def startClass = 'com.supwisdom.dlpay.PayApiApplicationKt'
+
+println("Build version: $payapiVersion")
+allprojects {
+    repositories {
+        jcenter()
+        mavenCentral()
+    }
+}
+
+subprojects {
+    version = '1.0'
+}
+
+bootJar {
+    mainClassName = startClass
+    manifest {
+        attributes('Payapi-Version': payapiVersion)
+    }
+}
+
+jar {
+    baseName = 'payapi'
+}
+
+docker {
+    name 'harbor.supwisdom.com/dali/payapi:' + version
+    println(jar.archivePath)
+    files jar.archivePath
+}
+
+docker.dependsOn(jar)
+
+dependencies {
+    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
+    implementation 'org.springframework.boot:spring-boot-starter-data-redis'
+    implementation 'org.springframework.boot:spring-boot-starter-web'
+    implementation 'org.springframework.boot:spring-boot-starter-security'
+    implementation 'org.springframework.boot:spring-boot-starter-cache'
+    implementation 'org.springframework.boot:spring-boot-autoconfigure'
+    implementation 'org.springframework.security:spring-security-oauth2-jose'
+    implementation 'org.springframework.security:spring-security-oauth2-client'
+    implementation 'org.springframework.security:spring-security-oauth2-jose'
+    implementation 'org.springframework.security.oauth.boot:spring-security-oauth2-autoconfigure:2.1.5.RELEASE'
+    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
+    implementation 'org.springframework.session:spring-session-data-redis'
+    implementation 'org.springframework.boot:spring-boot-starter-cache'
+    implementation 'org.springframework.social:spring-social-web:1.1.6.RELEASE'
+    implementation 'org.jetbrains.kotlin:kotlin-reflect'
+    implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8'
+    implementation 'commons-codec:commons-codec:1.12'
+
+    implementation 'org.springframework.cloud:spring-cloud-starter-consul-discovery:2.1.2.RELEASE'
+
+    implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5'
+
+    runtime("org.springframework.boot:spring-boot-devtools")
+
+    implementation 'org.postgresql:postgresql:42.2.5'
+    implementation 'com.fasterxml.jackson.module:jackson-module-kotlin'
+    implementation 'com.jcabi:jcabi-manifests:1.1'
+    implementation 'org.bitbucket.b_c:jose4j:0.6.3'
+    implementation 'io.github.microutils:kotlin-logging:1.6.26'
+    implementation 'org.slf4j:slf4j-parent:1.7.26'
+    implementation 'com.github.penggle:kaptcha:2.3.2'
+    implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.5'
+    implementation group: 'com.sun.jersey', name: 'jersey-client', version: '1.19'
+    implementation group: 'javax.servlet', name: 'jstl', version: '1.2'
+    implementation group: 'taglibs', name: 'standard', version: '1.1.2'
+    implementation group: 'commons-codec', name: 'commons-codec', version: '1.6'
+    implementation files('libs/ojdbc6.jar')
+    implementation 'commons-dbcp:commons-dbcp:1.4'
+
+    implementation project(':common')
+
+    annotationProcessor "org.springframework.boot:spring-boot-configuration-processor"
+    annotationProcessor 'org.projectlombok:lombok:1.18.8'
+    compileOnly 'org.projectlombok:lombok:1.18.8'
+
+//    providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
+    testImplementation 'org.springframework.boot:spring-boot-starter-test'
+    testImplementation 'io.rest-assured:rest-assured:3.3.0'
+    testImplementation 'io.rest-assured:spring-mock-mvc:3.3.0'
+    testImplementation 'org.hamcrest:hamcrest:2.1'
+}
+
+compileKotlin {
+    kotlinOptions {
+        freeCompilerArgs = ['-Xjsr305=strict']
+        jvmTarget = jdkVersion
+    }
+}
+
+compileTestKotlin {
+    kotlinOptions {
+        freeCompilerArgs = ['-Xjsr305=strict']
+        jvmTarget = jdkVersion
+    }
+}
@@ -1,78 +1,78 @@
-package com.supwisdom.dlpay.api.bean;\r
-\r
-import java.util.HashMap;\r
-\r
-public class JsonResult extends HashMap<String, Object> {\r
-    public JsonResult() {\r
-    }\r
-\r
-    /**\r
-     * 返回成功\r
-     */\r
-    public static JsonResult ok() {\r
-        return ok("操作成功");\r
-    }\r
-\r
-    /**\r
-     * 返回成功\r
-     */\r
-    public static JsonResult ok(String message) {\r
-        return ok(200, message);\r
-    }\r
-\r
-    /**\r
-     * 返回成功\r
-     */\r
-    public static JsonResult ok(int code, String message) {\r
-        JsonResult jsonResult = new JsonResult();\r
-        jsonResult.put("code", code);\r
-        jsonResult.put("msg", message);\r
-        return jsonResult;\r
-    }\r
-\r
-    /**\r
-     * 返回失败\r
-     */\r
-    public static JsonResult error() {\r
-        return error("操作失败");\r
-    }\r
-\r
-    /**\r
-     * 返回失败\r
-     */\r
-    public static JsonResult error(String messag) {\r
-        return error(500, messag);\r
-    }\r
-\r
-    /**\r
-     * 返回失败\r
-     */\r
-    public static JsonResult error(int code, String message) {\r
-        return ok(code, message);\r
-    }\r
-\r
-    /**\r
-     * 设置code\r
-     */\r
-    public JsonResult setCode(int code) {\r
-        super.put("code", code);\r
-        return this;\r
-    }\r
-\r
-    /**\r
-     * 设置message\r
-     */\r
-    public JsonResult setMessage(String message) {\r
-        super.put("msg", message);\r
-        return this;\r
-    }\r
-\r
-    /**\r
-     * 放入object\r
-     */\r
-    @Override\r
-    public JsonResult put(String key, Object object) {\r
-        super.put(key, object);\r
-        return this;\r
-    }\r
+package com.supwisdom.dlpay.api.bean;
+
+import java.util.HashMap;
+
+public class JsonResult extends HashMap<String, Object> {
+    public JsonResult() {
+    }
+
+    /**
+     * 返回成功
+     */
+    public static JsonResult ok() {
+        return ok("操作成功");
+    }
+
+    /**
+     * 返回成功
+     */
+    public static JsonResult ok(String message) {
+        return ok(200, message);
+    }
+
+    /**
+     * 返回成功
+     */
+    public static JsonResult ok(int code, String message) {
+        JsonResult jsonResult = new JsonResult();
+        jsonResult.put("code", code);
+        jsonResult.put("msg", message);
+        return jsonResult;
+    }
+
+    /**
+     * 返回失败
+     */
+    public static JsonResult error() {
+        return error("操作失败");
+    }
+
+    /**
+     * 返回失败
+     */
+    public static JsonResult error(String messag) {
+        return error(500, messag);
+    }
+
+    /**
+     * 返回失败
+     */
+    public static JsonResult error(int code, String message) {
+        return ok(code, message);
+    }
+
+    /**
+     * 设置code
+     */
+    public JsonResult setCode(int code) {
+        super.put("code", code);
+        return this;
+    }
+
+    /**
+     * 设置message
+     */
+    public JsonResult setMessage(String message) {
+        super.put("msg", message);
+        return this;
+    }
+
+    /**
+     * 放入object
+     */
+    @Override
+    public JsonResult put(String key, Object object) {
+        super.put(key, object);
+        return this;
+    }
 }
\ No newline at end of file
@@ -1,23 +1,23 @@
-/**\r
- * \r
- */\r
-package com.supwisdom.dlpay.exception;\r
-\r
-import org.springframework.security.core.AuthenticationException;\r
-\r
-/**\r
- * @author lenovo\r
- *\r
- */\r
-public class ValidateCodeException extends AuthenticationException {\r
-\r
-       /**\r
-        * \r
-        */\r
-       private static final long serialVersionUID = 1170189980006964105L;\r
-\r
-       \r
-       public ValidateCodeException(String msg) {\r
-               super(msg);\r
-       }\r
-}\r
+/**
+ * 
+ */
+package com.supwisdom.dlpay.exception;
+
+import org.springframework.security.core.AuthenticationException;
+
+/**
+ * @author lenovo
+ *
+ */
+public class ValidateCodeException extends AuthenticationException {
+
+       /**
+        * 
+        */
+       private static final long serialVersionUID = 1170189980006964105L;
+
+       
+       public ValidateCodeException(String msg) {
+               super(msg);
+       }
+}
@@ -1,92 +1,92 @@
-package com.supwisdom.dlpay.framework.filter;\r
-\r
-\r
-import com.supwisdom.dlpay.exception.ValidateCodeException;\r
-import com.supwisdom.dlpay.framework.security.CodeUtil;\r
-import com.supwisdom.dlpay.framework.security.MyAuthenticationFailureHandler;\r
-import com.supwisdom.dlpay.framework.security.validate.ImageCodeUtil;\r
-import com.supwisdom.dlpay.framework.security.validate.VerifyCode;\r
-import com.supwisdom.dlpay.framework.util.StringUtil;\r
-import org.springframework.beans.factory.annotation.Autowired;\r
-import org.springframework.stereotype.Component;\r
-import org.springframework.web.filter.OncePerRequestFilter;\r
-\r
-import javax.servlet.FilterChain;\r
-import javax.servlet.ServletException;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-import java.io.IOException;\r
-\r
-\r
-@Component("validateCodeFilter")\r
-public class ValidateCodeFilter extends OncePerRequestFilter {\r
-\r
-  /**\r
-   * 校验失败处理器\r
-   */\r
-  @Autowired\r
-  private MyAuthenticationFailureHandler myAuthenticationFailureHandler;\r
-\r
-\r
-  @Override\r
-  protected void doFilterInternal(HttpServletRequest request,\r
-                                  HttpServletResponse response, FilterChain filterChain)\r
-      throws ServletException, IOException {\r
-    String context = request.getContextPath();\r
-    if (context == null || "" == context.trim()) {\r
-      context = "/";\r
-    }\r
-    if (request.getRequestURI().isEmpty()) {\r
-      filterChain.doFilter(request, response);\r
-      return;\r
-    }\r
-    String url = request.getRequestURI();\r
-    if (!"/".equals(context)) {\r
-      url = url.replace(context, "");\r
-    }\r
-    if (StringUtil.equals("/login/form", url)\r
-        && StringUtil.equalsIgnoreCase(request.getMethod(), "post")) {\r
-      try {\r
-        validate(request);\r
-      } catch (ValidateCodeException e) {\r
-        //response.setStatus(HttpStatus.OK.value());\r
-        //response.setContentType("application/json;charset=UTF-8");\r
-        //response.getWriter().write(objectMapper.writeValueAsString(JsonResult.error(400, e.getMessage())));\r
-        //response.sendError(HttpStatus.UNAUTHORIZED.value(),e.getMessage());\r
-        myAuthenticationFailureHandler.onAuthenticationFailure(request, response, e);\r
-        return;\r
-      }\r
-    }\r
-    filterChain.doFilter(request, response);\r
-  }\r
-\r
-  private void validate(HttpServletRequest request) throws ValidateCodeException {\r
-    if (!CodeUtil.checkVerifyCode(request)) {\r
-      throw new ValidateCodeException("验证码不匹配");\r
-    } else {\r
-      request.getSession().removeAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY);\r
-    }\r
-//    VerifyCode imageCode = (VerifyCode) request.getSession().getAttribute(ImageCodeUtil.LOGIN_IMAGECODE_SESSIONKEY);\r
-//    String inputCode;\r
-//    try {\r
-//      inputCode = request.getParameter("imageCode");\r
-//    } catch (Exception e) {\r
-//      throw new ValidateCodeException("获取验证码的值失败");\r
-//    }\r
-//    if (StringUtil.isEmpty(inputCode)) {\r
-//      throw new ValidateCodeException("验证码不能为空");\r
-//    }\r
-//    if (null == imageCode) {\r
-//      throw new ValidateCodeException("验证码不存在");\r
-//    }\r
-//    if (imageCode.isExpired()) {\r
-//      request.getSession().removeAttribute(ImageCodeUtil.LOGIN_IMAGECODE_SESSIONKEY);\r
-//      throw new ValidateCodeException("验证码已过期");\r
-//    }\r
-//    if (!StringUtil.equalsIgnoreCase(imageCode.getText(), inputCode)) {\r
-//      throw new ValidateCodeException("验证码不匹配");\r
-//    }\r
-//    request.getSession().removeAttribute(ImageCodeUtil.LOGIN_IMAGECODE_SESSIONKEY);\r
-  }\r
-\r
-}\r
+package com.supwisdom.dlpay.framework.filter;
+
+
+import com.supwisdom.dlpay.exception.ValidateCodeException;
+import com.supwisdom.dlpay.framework.security.CodeUtil;
+import com.supwisdom.dlpay.framework.security.MyAuthenticationFailureHandler;
+import com.supwisdom.dlpay.framework.security.validate.ImageCodeUtil;
+import com.supwisdom.dlpay.framework.security.validate.VerifyCode;
+import com.supwisdom.dlpay.framework.util.StringUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.web.filter.OncePerRequestFilter;
+
+import javax.servlet.FilterChain;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+
+@Component("validateCodeFilter")
+public class ValidateCodeFilter extends OncePerRequestFilter {
+
+  /**
+   * 校验失败处理器
+   */
+  @Autowired
+  private MyAuthenticationFailureHandler myAuthenticationFailureHandler;
+
+
+  @Override
+  protected void doFilterInternal(HttpServletRequest request,
+                                  HttpServletResponse response, FilterChain filterChain)
+      throws ServletException, IOException {
+    String context = request.getContextPath();
+    if (context == null || "" == context.trim()) {
+      context = "/";
+    }
+    if (request.getRequestURI().isEmpty()) {
+      filterChain.doFilter(request, response);
+      return;
+    }
+    String url = request.getRequestURI();
+    if (!"/".equals(context)) {
+      url = url.replace(context, "");
+    }
+    if (StringUtil.equals("/login/form", url)
+        && StringUtil.equalsIgnoreCase(request.getMethod(), "post")) {
+      try {
+        validate(request);
+      } catch (ValidateCodeException e) {
+        //response.setStatus(HttpStatus.OK.value());
+        //response.setContentType("application/json;charset=UTF-8");
+        //response.getWriter().write(objectMapper.writeValueAsString(JsonResult.error(400, e.getMessage())));
+        //response.sendError(HttpStatus.UNAUTHORIZED.value(),e.getMessage());
+        myAuthenticationFailureHandler.onAuthenticationFailure(request, response, e);
+        return;
+      }
+    }
+    filterChain.doFilter(request, response);
+  }
+
+  private void validate(HttpServletRequest request) throws ValidateCodeException {
+    if (!CodeUtil.checkVerifyCode(request)) {
+      throw new ValidateCodeException("验证码不匹配");
+    } else {
+      request.getSession().removeAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY);
+    }
+//    VerifyCode imageCode = (VerifyCode) request.getSession().getAttribute(ImageCodeUtil.LOGIN_IMAGECODE_SESSIONKEY);
+//    String inputCode;
+//    try {
+//      inputCode = request.getParameter("imageCode");
+//    } catch (Exception e) {
+//      throw new ValidateCodeException("获取验证码的值失败");
+//    }
+//    if (StringUtil.isEmpty(inputCode)) {
+//      throw new ValidateCodeException("验证码不能为空");
+//    }
+//    if (null == imageCode) {
+//      throw new ValidateCodeException("验证码不存在");
+//    }
+//    if (imageCode.isExpired()) {
+//      request.getSession().removeAttribute(ImageCodeUtil.LOGIN_IMAGECODE_SESSIONKEY);
+//      throw new ValidateCodeException("验证码已过期");
+//    }
+//    if (!StringUtil.equalsIgnoreCase(imageCode.getText(), inputCode)) {
+//      throw new ValidateCodeException("验证码不匹配");
+//    }
+//    request.getSession().removeAttribute(ImageCodeUtil.LOGIN_IMAGECODE_SESSIONKEY);
+  }
+
+}
@@ -1,68 +1,68 @@
-package com.supwisdom.dlpay.framework.security;\r
-\r
-import com.supwisdom.dlpay.framework.domain.TOperator;\r
-import org.springframework.security.core.Authentication;\r
-import org.springframework.security.core.GrantedAuthority;\r
-import org.springframework.security.core.context.SecurityContextHolder;\r
-\r
-import java.util.Collection;\r
-\r
-public class OperUtil {\r
-\r
-  public static TOperator getCurrentOper() {\r
-    Authentication au = SecurityContextHolder.getContext()\r
-        .getAuthentication();\r
-    if (au == null)\r
-      return null;\r
-    if (au.getPrincipal() == null)\r
-      return null;\r
-    if (au != null && au.getPrincipal() instanceof TOperator) {\r
-      return (TOperator) au.getPrincipal();\r
-    } else {\r
-      TOperator oper = new TOperator();\r
-      oper.setOpername(au.getPrincipal().toString());\r
-      oper.setOperpwd(au.getCredentials() == null ? null : au\r
-          .getCredentials().toString());\r
-      return oper;\r
-    }\r
-  }\r
-\r
-  public static String getCurrentOperid() {\r
-    TOperator oper = getCurrentOper();\r
-    if (oper == null)\r
-      return null;\r
-    return oper.getOperid() == null ? oper.getOpercode() : oper.getOperid();\r
-  }\r
-\r
-  public static boolean isLogined() {\r
-    Authentication au = SecurityContextHolder.getContext()\r
-        .getAuthentication();\r
-    if (au == null)\r
-      return false;\r
-    if (au.getPrincipal() == null)\r
-      return false;\r
-    if (au.getPrincipal() instanceof TOperator)\r
-      return true;\r
-    return false;\r
-  }\r
-\r
-  public static boolean isAdmin() {\r
-    TOperator loginOper = OperUtil.getCurrentOper();\r
-    if (loginOper != null) {\r
-      Collection<? extends GrantedAuthority> gas = loginOper.getAuthorities();\r
-      if (gas == null) {\r
-        return false;\r
-      }\r
-      boolean flag = false;\r
-      for (GrantedAuthority grantedAuthority : gas) {\r
-        if ("ROLE_ADMIN".equals(grantedAuthority.getAuthority())) {\r
-          flag = true;\r
-        }\r
-      }\r
-      return flag;\r
-    } else {\r
-      return false;\r
-    }\r
-  }\r
-\r
-}\r
+package com.supwisdom.dlpay.framework.security;
+
+import com.supwisdom.dlpay.framework.domain.TOperator;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.GrantedAuthority;
+import org.springframework.security.core.context.SecurityContextHolder;
+
+import java.util.Collection;
+
+public class OperUtil {
+
+  public static TOperator getCurrentOper() {
+    Authentication au = SecurityContextHolder.getContext()
+        .getAuthentication();
+    if (au == null)
+      return null;
+    if (au.getPrincipal() == null)
+      return null;
+    if (au != null && au.getPrincipal() instanceof TOperator) {
+      return (TOperator) au.getPrincipal();
+    } else {
+      TOperator oper = new TOperator();
+      oper.setOpername(au.getPrincipal().toString());
+      oper.setOperpwd(au.getCredentials() == null ? null : au
+          .getCredentials().toString());
+      return oper;
+    }
+  }
+
+  public static String getCurrentOperid() {
+    TOperator oper = getCurrentOper();
+    if (oper == null)
+      return null;
+    return oper.getOperid() == null ? oper.getOpercode() : oper.getOperid();
+  }
+
+  public static boolean isLogined() {
+    Authentication au = SecurityContextHolder.getContext()
+        .getAuthentication();
+    if (au == null)
+      return false;
+    if (au.getPrincipal() == null)
+      return false;
+    if (au.getPrincipal() instanceof TOperator)
+      return true;
+    return false;
+  }
+
+  public static boolean isAdmin() {
+    TOperator loginOper = OperUtil.getCurrentOper();
+    if (loginOper != null) {
+      Collection<? extends GrantedAuthority> gas = loginOper.getAuthorities();
+      if (gas == null) {
+        return false;
+      }
+      boolean flag = false;
+      for (GrantedAuthority grantedAuthority : gas) {
+        if ("ROLE_ADMIN".equals(grantedAuthority.getAuthority())) {
+          flag = true;
+        }
+      }
+      return flag;
+    } else {
+      return false;
+    }
+  }
+
+}
@@ -1,21 +1,21 @@
-package com.supwisdom.dlpay.framework.security.validate;\r
-\r
-import java.awt.image.BufferedImage;\r
-\r
-public class ImageCode extends ValidateCode {\r
-       private BufferedImage image;\r
-\r
-       public ImageCode(BufferedImage image, String code, int expireTime) {\r
-               super(code, expireTime);\r
-               this.image = image;\r
-       }\r
-\r
-       public BufferedImage getImage() {\r
-               return image;\r
-       }\r
-\r
-       public void setImage(BufferedImage image) {\r
-               this.image = image;\r
-       }\r
-\r
-}\r
+package com.supwisdom.dlpay.framework.security.validate;
+
+import java.awt.image.BufferedImage;
+
+public class ImageCode extends ValidateCode {
+       private BufferedImage image;
+
+       public ImageCode(BufferedImage image, String code, int expireTime) {
+               super(code, expireTime);
+               this.image = image;
+       }
+
+       public BufferedImage getImage() {
+               return image;
+       }
+
+       public void setImage(BufferedImage image) {
+               this.image = image;
+       }
+
+}
@@ -1,55 +1,55 @@
-package com.supwisdom.dlpay.framework.security.validate;\r
-\r
-import com.fasterxml.jackson.annotation.JsonIgnore;\r
-import com.supwisdom.dlpay.framework.util.DateUtil;\r
-import java.util.Date;\r
-\r
-\r
-public class ValidateCode{\r
-\r
-       private String code;\r
-       \r
-       private Date expireTime;\r
-\r
-       public ValidateCode() {\r
-               super();\r
-       }\r
-\r
-       public ValidateCode(String code, Date expireTime) {\r
-               super();\r
-               this.code = code;\r
-               this.expireTime = expireTime;\r
-       }\r
-\r
-       public ValidateCode(String code, int expireTime) {\r
-               super();\r
-               this.code = code;\r
-               this.expireTime = DateUtil.setMinutes(new Date(), expireTime);\r
-       }\r
-\r
-       public String getCode() {\r
-               return code;\r
-       }\r
-\r
-       public void setCode(String code) {\r
-               this.code = code;\r
-       }\r
-\r
-       public Date getExpireTime() {\r
-               return expireTime;\r
-       }\r
-\r
-       public void setExpireTime(Date expireTime) {\r
-               this.expireTime = expireTime;\r
-       }\r
-\r
-       @JsonIgnore\r
-       public boolean isExpired() {\r
-               return new Date().compareTo(expireTime) > 0;\r
-       }\r
-\r
-       @Override\r
-       public String toString() {\r
-               return "ValidateCode [code=" + code + ", expireTime=" + expireTime + "]";\r
-       }\r
-}\r
+package com.supwisdom.dlpay.framework.security.validate;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.supwisdom.dlpay.framework.util.DateUtil;
+import java.util.Date;
+
+
+public class ValidateCode{
+
+       private String code;
+       
+       private Date expireTime;
+
+       public ValidateCode() {
+               super();
+       }
+
+       public ValidateCode(String code, Date expireTime) {
+               super();
+               this.code = code;
+               this.expireTime = expireTime;
+       }
+
+       public ValidateCode(String code, int expireTime) {
+               super();
+               this.code = code;
+               this.expireTime = DateUtil.setMinutes(new Date(), expireTime);
+       }
+
+       public String getCode() {
+               return code;
+       }
+
+       public void setCode(String code) {
+               this.code = code;
+       }
+
+       public Date getExpireTime() {
+               return expireTime;
+       }
+
+       public void setExpireTime(Date expireTime) {
+               this.expireTime = expireTime;
+       }
+
+       @JsonIgnore
+       public boolean isExpired() {
+               return new Date().compareTo(expireTime) > 0;
+       }
+
+       @Override
+       public String toString() {
+               return "ValidateCode [code=" + code + ", expireTime=" + expireTime + "]";
+       }
+}
-layui.define(['layer'], function (exports) {\r
-    var layer = layui.layer;\r
-    var popupRightIndex, popupCenterIndex, popupCenterParam;\r
-    var baseUrl = window.location.pathname;\r
-\r
-    var admin = {\r
-        isRefresh: false,\r
-        // 设置侧栏折叠\r
-        flexible: function (expand) {\r
-            var isExapnd = $('.layui-layout-admin').hasClass('admin-nav-mini');\r
-            if (isExapnd == !expand) {\r
-                return;\r
-            }\r
-            if (expand) {\r
-                $('.layui-layout-admin').removeClass('admin-nav-mini');\r
-            } else {\r
-                $('.layui-layout-admin').addClass('admin-nav-mini');\r
-            }\r
-        },\r
-        // 设置导航栏选中\r
-        activeNav: function (url) {\r
-            $('.layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-nav-child dd').removeClass('layui-this');\r
-            $('.layui-layout-admin .layui-side .layui-nav .layui-nav-item').removeClass('layui-this');\r
-            if (url && url != '') {\r
-                $('.layui-layout-admin .layui-side .layui-nav .layui-nav-item').removeClass('layui-nav-itemed');\r
-                var $a = $('.layui-layout-admin .layui-side .layui-nav a[href="#!' + url + '"]');\r
-                $a.parent('li').addClass('layui-this');\r
-                $a.parent('dd').addClass('layui-this');\r
-                $a.parent('dd').parent('.layui-nav-child').parent('.layui-nav-item').addClass('layui-nav-itemed');\r
-            }\r
-        },\r
-        // 右侧弹出\r
-        popupRight: function (path) {\r
-            var param = new Object();\r
-            param.path = path;\r
-            param.id = 'adminPopupR';\r
-            param.title = false;\r
-            param.anim = 2;\r
-            param.isOutAnim = false;\r
-            param.closeBtn = false;\r
-            param.offset = 'r';\r
-            param.shadeClose = true;\r
-            param.area = '336px';\r
-            param.skin = 'layui-layer-adminRight';\r
-            param.end = function () {\r
-                layer.closeAll('tips');\r
-            };\r
-            popupRightIndex = admin.open(param);\r
-            return popupRightIndex;\r
-        },\r
-        // 关闭右侧弹出\r
-        closePopupRight: function () {\r
-            layer.close(popupRightIndex);\r
-        },\r
-        // 中间弹出\r
-        popupCenter: function (param) {\r
-            param.id = 'adminPopupC';\r
-            popupCenterParam = param;\r
-            popupCenterIndex = admin.open(param);\r
-            return popupCenterIndex;\r
-        },\r
-        // 关闭中间弹出并且触发finish回调\r
-        finishPopupCenter: function () {\r
-            layer.close(popupCenterIndex);\r
-            popupCenterParam.finish ? popupCenterParam.finish() : '';\r
-        },\r
-        // 关闭中间弹出\r
-        closePopupCenter: function () {\r
-            layer.close(popupCenterIndex);\r
-        },\r
-        // 封装layer.open\r
-        open: function (param) {\r
-            var sCallBack = param.success;\r
-            param.type = 1;\r
-            param.area = param.area ? param.area : '450px';\r
-            param.offset = param.offset ? param.offset : '120px';\r
-            param.resize ? param.resize : false;\r
-            param.shade ? param.shade : .2;\r
-            param.success = function (layero, index) {\r
-                sCallBack ? sCallBack(layero, index) : '';\r
-                admin.ajax({\r
-                    url: param.path,\r
-                    type: 'GET',\r
-                    dataType: 'html',\r
-                    success: function (result, status, xhr) {\r
-                        $(layero).children('.layui-layer-content').html(result);\r
-                    }\r
-                });\r
-            };\r
-            return layer.open(param);\r
-        },\r
-        \r
-        go:function(url,data,success,error){\r
-                 $.ajax({\r
-                         url: url,\r
-                         data: data,\r
-                         async: false,\r
-                         dataType: 'json',\r
-                         type: 'post',\r
-                         success: success,\r
-                  error:error\r
-                 })\r
-        },\r
-        dgo:function(url,data,success,error){\r
-         $.ajax({\r
-                 url: url,\r
-                 data: data,\r
-                 async: false,\r
-                 dataType: 'json',\r
-                 type: 'get',\r
-                 success: success,\r
-              error:error\r
-         })\r
-      },\r
-        // 封装ajax请求,返回数据类型为json\r
-        req: function (url, data, success, method) {\r
-            admin.ajax({\r
-                url: url,\r
-                data: data,\r
-                async: false,\r
-                type: method,\r
-                dataType: 'json',\r
-                success: success\r
-            });\r
-        },\r
-        // 封装ajax请求\r
-        ajax: function (param) {\r
-               console.log(param);\r
-            var successCallback = param.success;\r
-            param.success = function (result, status, xhr) {\r
-                // 判断登录过期和没有权限\r
-                var jsonRs;\r
-                if ('json' == param.dataType.toLowerCase()) {\r
-                    jsonRs = result;\r
-                } else if ('html' == param.dataType.toLowerCase() || 'text' == param.dataType.toLowerCase()) {\r
-                    jsonRs = admin.parseJSON(result);\r
-                }\r
-                if (jsonRs) {\r
-                    if (jsonRs.code == 401) {\r
-                        layer.msg(jsonRs.msg, {icon: 2, time: 1500}, function () {\r
-                            location.replace('/login');\r
-                        }, 1000);\r
-                        return;\r
-                    } else if ('html' == param.dataType.toLowerCase() && jsonRs.code == 403) {\r
-                        layer.msg(jsonRs.msg, {icon: 2});\r
-                    }\r
-                }\r
-                successCallback(result, status, xhr);\r
-            };\r
-            param.error = function (xhr) {\r
-                //{code: xhr.status, msg: xhr.statusText}\r
-                param.success(xhr.responseText,xhr.status,xhr);\r
-            };\r
-            $.ajax(param);\r
-        },\r
-        // 显示加载动画\r
-        showLoading: function (element) {\r
-            $(element).append('<i class="layui-icon layui-icon-loading layui-anim layui-anim-rotate layui-anim-loop admin-loading"></i>');\r
-        },\r
-        // 移除加载动画\r
-        removeLoading: function (element) {\r
-            $(element + '>.admin-loading').remove();\r
-        },\r
-        // 缓存临时数据\r
-        putTempData: function (key, value) {\r
-            if (value) {\r
-                layui.sessionData('tempData', {key: key, value: value});\r
-            } else {\r
-                layui.sessionData('tempData', {key: key, remove: true});\r
-            }\r
-        },\r
-        // 获取缓存临时数据\r
-        getTempData: function (key) {\r
-            return layui.sessionData('tempData')[key];\r
-        },\r
-        // 滑动选项卡\r
-        rollPage: function (d) {\r
-            var $tabTitle = $('.layui-layout-admin .layui-body .layui-tab .layui-tab-title');\r
-            var left = $tabTitle.scrollLeft();\r
-            if ('left' === d) {\r
-                $tabTitle.scrollLeft(left - 120);\r
-            } else if ('auto' === d) {\r
-                var autoLeft = 0;\r
-                $tabTitle.children("li").each(function () {\r
-                    if ($(this).hasClass('layui-this')) {\r
-                        return false;\r
-                    } else {\r
-                        autoLeft += $(this).outerWidth();\r
-                    }\r
-                });\r
-                $tabTitle.scrollLeft(autoLeft - 47);\r
-            } else {\r
-                $tabTitle.scrollLeft(left + 120);\r
-            }\r
-        },\r
-        // 刷新主题部分\r
-        refresh: function () {\r
-            admin.isRefresh = true;\r
-            Q.refresh();\r
-        },\r
-        // 判断是否为json\r
-        parseJSON: function (str) {\r
-            if (typeof str == 'string') {\r
-                try {\r
-                    var obj = JSON.parse(str);\r
-                    if (typeof obj == 'object' && obj) {\r
-                        return obj;\r
-                    }\r
-                } catch (e) {\r
-                }\r
-            }\r
-        },\r
-        formatDate:function (str) {\r
-            if (str == null || str == "") {\r
-                return;\r
-            }\r
-            switch (str.length) {\r
-                case 8:\r
-                    str = str.substring(0, 4) + "-" + str.substring(4, 6) + "-" + str.substring(6, 8);\r
-                    return str;\r
-                case 12:\r
-                    str = str.substring(0, 4) + "-" + str.substring(4, 6) + "-" + str.substring(6, 8) + " " + str.substring(8, 10)\r
-                        + ":" + str.substring(10, 12);\r
-                    return str;\r
-                case 14:\r
-                    str = str.substring(0, 4) + "-" + str.substring(4, 6) + "-" + str.substring(6, 8) + " " + str.substring(8, 10)\r
-                        + ":" + str.substring(10, 12) + ":" + str.substring(12, 14);\r
-                    return str;\r
-                default:\r
-                    return str;\r
-            }\r
-        },\r
-        errorBack: function (err) {\r
-            layer.closeAll('loading');\r
-            if (403 == err.status) {\r
-                layer.msg("无资源权限!", {icon: 2, time: 1500});\r
-                return;\r
-            }\r
-            if (200 == err.status) {\r
-                layer.msg("请求异常,请刷新页面重新操作", {icon: 2, time: 1500});\r
-                return;\r
-            } else {\r
-                layer.msg("请求服务器失败!", {icon: 2});\r
-            }\r
-        }\r
-    };\r
-\r
-    // ewAdmin提供的事件\r
-    admin.events = {\r
-        // 折叠侧导航\r
-        flexible: function (e) {\r
-            var expand = $('.layui-layout-admin').hasClass('admin-nav-mini');\r
-            admin.flexible(expand);\r
-        },\r
-        // 刷新主体部分\r
-        refresh: function () {\r
-            admin.refresh();\r
-        },\r
-        //后退\r
-        back: function () {\r
-            history.back();\r
-        },\r
-        // 设置主题\r
-        theme: function () {\r
-            admin.popupRight(baseUrl+'home/theme');\r
-        },\r
-        // 全屏\r
-        fullScreen: function (e) {\r
-            var ac = 'layui-icon-screen-full', ic = 'layui-icon-screen-restore';\r
-            var ti = $(this).find('i');\r
-\r
-            var isFullscreen = document.fullscreenElement || document.msFullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || false;\r
-            if (isFullscreen) {\r
-                var efs = document.exitFullscreen || document.webkitExitFullscreen || document.mozCancelFullScreen || document.msExitFullscreen;\r
-                if (efs) {\r
-                    efs.call(document);\r
-                } else if (window.ActiveXObject) {\r
-                    var ws = new ActiveXObject('WScript.Shell');\r
-                    ws && ws.SendKeys('{F11}');\r
-                }\r
-                ti.addClass(ac).removeClass(ic);\r
-            } else {\r
-                var el = document.documentElement;\r
-                var rfs = el.requestFullscreen || el.webkitRequestFullscreen || el.mozRequestFullScreen || el.msRequestFullscreen;\r
-                if (rfs) {\r
-                    rfs.call(el);\r
-                } else if (window.ActiveXObject) {\r
-                    var ws = new ActiveXObject('WScript.Shell');\r
-                    ws && ws.SendKeys('{F11}');\r
-                }\r
-                ti.addClass(ic).removeClass(ac);\r
-            }\r
-        },\r
-        // 左滑动tab\r
-        leftPage: function () {\r
-            admin.rollPage("left");\r
-        },\r
-        // 右滑动tab\r
-        rightPage: function () {\r
-            admin.rollPage();\r
-        },\r
-        // 关闭当前选项卡\r
-        closeThisTabs: function () {\r
-            var $title = $('.layui-layout-admin .layui-body .layui-tab .layui-tab-title');\r
-            if ($title.find('li').first().hasClass('layui-this')) {\r
-                return;\r
-            }\r
-            $title.find('li.layui-this').find(".layui-tab-close").trigger("click");\r
-        },\r
-        // 关闭其他选项卡\r
-        closeOtherTabs: function () {\r
-            $('.layui-layout-admin .layui-body .layui-tab .layui-tab-title li:gt(0):not(.layui-this)').find('.layui-tab-close').trigger('click');\r
-        },\r
-        // 关闭所有选项卡\r
-        closeAllTabs: function () {\r
-            $('.layui-layout-admin .layui-body .layui-tab .layui-tab-title li:gt(0)').find('.layui-tab-close').trigger('click');\r
-        },\r
-        // 关闭所有弹窗\r
-        closeDialog: function () {\r
-            layer.closeAll('page');\r
-        },\r
-        //刷新字典\r
-        refreshDict: function (){\r
-            layer.confirm('确定要刷新数据字典吗?', {\r
-                    btn: ['确定', '取消']\r
-                }, function (index, layero) {\r
-                    layer.closeAll('dialog');  //加入这个信息点击确定 会关闭这个消息框\r
-                    admin.dgo(baseUrl+"dictrefresh", {}, function (data) {\r
-                        if (data.code == 200) {\r
-                            layer.msg("刷新数据字典成功!", {icon: 1, time: 1000});\r
-                            DictPoolToolkit().initAll(baseUrl+"dictpool");\r
-                        } else if (data.code == 401) {\r
-                            layer.msg(data.msg, {icon: 2, time: 1500}, function () {\r
-                                location.replace('/login');\r
-                            }, 1000);\r
-                            return;\r
-                        } else {\r
-                            layer.msg(data.msg, {icon: 2, time: 1500});\r
-                        }\r
-                    }, function () {\r
-                        layer.msg("数据字典刷新失败,访问服务器失败!", {icon: 2, time: 1500});\r
-                    });\r
-                });\r
-        }\r
-    };\r
-\r
-    // 所有ew-event\r
-    $('body').on('click', '*[ew-event]', function () {\r
-        var event = $(this).attr('ew-event');\r
-        var te = admin.events[event];\r
-        te && te.call(this, $(this));\r
-    });\r
-\r
-    // 移动设备遮罩层点击事件\r
-    $('.site-mobile-shade').click(function () {\r
-        admin.flexible(true);\r
-    });\r
-\r
-    // 侧导航折叠状态下鼠标经过显示提示\r
-    $('body').on('mouseenter', '.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item>a', function () {\r
-        var tipText = $(this).find('cite').text();\r
-        if (document.body.clientWidth > 750) {\r
-            layer.tips(tipText, this);\r
-        }\r
-    }).on('mouseleave', '.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item>a', function () {\r
-        layer.closeAll('tips');\r
-    });\r
-\r
-    // 侧导航折叠状态下点击展开\r
-    $('body').on('click', '.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item>a', function () {\r
-        if (document.body.clientWidth > 750) {\r
-            layer.closeAll('tips');\r
-            admin.flexible(true);\r
-        }\r
-    });\r
-\r
-    // 所有lay-tips处理\r
-    $('body').on('mouseenter', '*[lay-tips]', function () {\r
-        var tipText = $(this).attr('lay-tips');\r
-        var dt = $(this).attr('lay-direction');\r
-        layer.tips(tipText, this, {tips: dt || 1, time: -1});\r
-    }).on('mouseleave', '*[lay-tips]', function () {\r
-        layer.closeAll('tips');\r
-    });\r
-\r
-    exports('admin', admin);\r
-});\r
+layui.define(['layer'], function (exports) {
+    var layer = layui.layer;
+    var popupRightIndex, popupCenterIndex, popupCenterParam;
+    var baseUrl = window.location.pathname;
+
+    var admin = {
+        isRefresh: false,
+        // 设置侧栏折叠
+        flexible: function (expand) {
+            var isExapnd = $('.layui-layout-admin').hasClass('admin-nav-mini');
+            if (isExapnd == !expand) {
+                return;
+            }
+            if (expand) {
+                $('.layui-layout-admin').removeClass('admin-nav-mini');
+            } else {
+                $('.layui-layout-admin').addClass('admin-nav-mini');
+            }
+        },
+        // 设置导航栏选中
+        activeNav: function (url) {
+            $('.layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-nav-child dd').removeClass('layui-this');
+            $('.layui-layout-admin .layui-side .layui-nav .layui-nav-item').removeClass('layui-this');
+            if (url && url != '') {
+                $('.layui-layout-admin .layui-side .layui-nav .layui-nav-item').removeClass('layui-nav-itemed');
+                var $a = $('.layui-layout-admin .layui-side .layui-nav a[href="#!' + url + '"]');
+                $a.parent('li').addClass('layui-this');
+                $a.parent('dd').addClass('layui-this');
+                $a.parent('dd').parent('.layui-nav-child').parent('.layui-nav-item').addClass('layui-nav-itemed');
+            }
+        },
+        // 右侧弹出
+        popupRight: function (path) {
+            var param = new Object();
+            param.path = path;
+            param.id = 'adminPopupR';
+            param.title = false;
+            param.anim = 2;
+            param.isOutAnim = false;
+            param.closeBtn = false;
+            param.offset = 'r';
+            param.shadeClose = true;
+            param.area = '336px';
+            param.skin = 'layui-layer-adminRight';
+            param.end = function () {
+                layer.closeAll('tips');
+            };
+            popupRightIndex = admin.open(param);
+            return popupRightIndex;
+        },
+        // 关闭右侧弹出
+        closePopupRight: function () {
+            layer.close(popupRightIndex);
+        },
+        // 中间弹出
+        popupCenter: function (param) {
+            param.id = 'adminPopupC';
+            popupCenterParam = param;
+            popupCenterIndex = admin.open(param);
+            return popupCenterIndex;
+        },
+        // 关闭中间弹出并且触发finish回调
+        finishPopupCenter: function () {
+            layer.close(popupCenterIndex);
+            popupCenterParam.finish ? popupCenterParam.finish() : '';
+        },
+        // 关闭中间弹出
+        closePopupCenter: function () {
+            layer.close(popupCenterIndex);
+        },
+        // 封装layer.open
+        open: function (param) {
+            var sCallBack = param.success;
+            param.type = 1;
+            param.area = param.area ? param.area : '450px';
+            param.offset = param.offset ? param.offset : '120px';
+            param.resize ? param.resize : false;
+            param.shade ? param.shade : .2;
+            param.success = function (layero, index) {
+                sCallBack ? sCallBack(layero, index) : '';
+                admin.ajax({
+                    url: param.path,
+                    type: 'GET',
+                    dataType: 'html',
+                    success: function (result, status, xhr) {
+                        $(layero).children('.layui-layer-content').html(result);
+                    }
+                });
+            };
+            return layer.open(param);
+        },
+        
+        go:function(url,data,success,error){
+                 $.ajax({
+                         url: url,
+                         data: data,
+                         async: false,
+                         dataType: 'json',
+                         type: 'post',
+                         success: success,
+                  error:error
+                 })
+        },
+        dgo:function(url,data,success,error){
+         $.ajax({
+                 url: url,
+                 data: data,
+                 async: false,
+                 dataType: 'json',
+                 type: 'get',
+                 success: success,
+              error:error
+         })
+      },
+        // 封装ajax请求,返回数据类型为json
+        req: function (url, data, success, method) {
+            admin.ajax({
+                url: url,
+                data: data,
+                async: false,
+                type: method,
+                dataType: 'json',
+                success: success
+            });
+        },
+        // 封装ajax请求
+        ajax: function (param) {
+               console.log(param);
+            var successCallback = param.success;
+            param.success = function (result, status, xhr) {
+                // 判断登录过期和没有权限
+                var jsonRs;
+                if ('json' == param.dataType.toLowerCase()) {
+                    jsonRs = result;
+                } else if ('html' == param.dataType.toLowerCase() || 'text' == param.dataType.toLowerCase()) {
+                    jsonRs = admin.parseJSON(result);
+                }
+                if (jsonRs) {
+                    if (jsonRs.code == 401) {
+                        layer.msg(jsonRs.msg, {icon: 2, time: 1500}, function () {
+                            location.replace('/login');
+                        }, 1000);
+                        return;
+                    } else if ('html' == param.dataType.toLowerCase() && jsonRs.code == 403) {
+                        layer.msg(jsonRs.msg, {icon: 2});
+                    }
+                }
+                successCallback(result, status, xhr);
+            };
+            param.error = function (xhr) {
+                //{code: xhr.status, msg: xhr.statusText}
+                param.success(xhr.responseText,xhr.status,xhr);
+            };
+            $.ajax(param);
+        },
+        // 显示加载动画
+        showLoading: function (element) {
+            $(element).append('<i class="layui-icon layui-icon-loading layui-anim layui-anim-rotate layui-anim-loop admin-loading"></i>');
+        },
+        // 移除加载动画
+        removeLoading: function (element) {
+            $(element + '>.admin-loading').remove();
+        },
+        // 缓存临时数据
+        putTempData: function (key, value) {
+            if (value) {
+                layui.sessionData('tempData', {key: key, value: value});
+            } else {
+                layui.sessionData('tempData', {key: key, remove: true});
+            }
+        },
+        // 获取缓存临时数据
+        getTempData: function (key) {
+            return layui.sessionData('tempData')[key];
+        },
+        // 滑动选项卡
+        rollPage: function (d) {
+            var $tabTitle = $('.layui-layout-admin .layui-body .layui-tab .layui-tab-title');
+            var left = $tabTitle.scrollLeft();
+            if ('left' === d) {
+                $tabTitle.scrollLeft(left - 120);
+            } else if ('auto' === d) {
+                var autoLeft = 0;
+                $tabTitle.children("li").each(function () {
+                    if ($(this).hasClass('layui-this')) {
+                        return false;
+                    } else {
+                        autoLeft += $(this).outerWidth();
+                    }
+                });
+                $tabTitle.scrollLeft(autoLeft - 47);
+            } else {
+                $tabTitle.scrollLeft(left + 120);
+            }
+        },
+        // 刷新主题部分
+        refresh: function () {
+            admin.isRefresh = true;
+            Q.refresh();
+        },
+        // 判断是否为json
+        parseJSON: function (str) {
+            if (typeof str == 'string') {
+                try {
+                    var obj = JSON.parse(str);
+                    if (typeof obj == 'object' && obj) {
+                        return obj;
+                    }
+                } catch (e) {
+                }
+            }
+        },
+        formatDate:function (str) {
+            if (str == null || str == "") {
+                return;
+            }
+            switch (str.length) {
+                case 8:
+                    str = str.substring(0, 4) + "-" + str.substring(4, 6) + "-" + str.substring(6, 8);
+                    return str;
+                case 12:
+                    str = str.substring(0, 4) + "-" + str.substring(4, 6) + "-" + str.substring(6, 8) + " " + str.substring(8, 10)
+                        + ":" + str.substring(10, 12);
+                    return str;
+                case 14:
+                    str = str.substring(0, 4) + "-" + str.substring(4, 6) + "-" + str.substring(6, 8) + " " + str.substring(8, 10)
+                        + ":" + str.substring(10, 12) + ":" + str.substring(12, 14);
+                    return str;
+                default:
+                    return str;
+            }
+        },
+        errorBack: function (err) {
+            layer.closeAll('loading');
+            if (403 == err.status) {
+                layer.msg("无资源权限!", {icon: 2, time: 1500});
+                return;
+            }
+            if (200 == err.status) {
+                layer.msg("请求异常,请刷新页面重新操作", {icon: 2, time: 1500});
+                return;
+            } else {
+                layer.msg("请求服务器失败!", {icon: 2});
+            }
+        }
+    };
+
+    // ewAdmin提供的事件
+    admin.events = {
+        // 折叠侧导航
+        flexible: function (e) {
+            var expand = $('.layui-layout-admin').hasClass('admin-nav-mini');
+            admin.flexible(expand);
+        },
+        // 刷新主体部分
+        refresh: function () {
+            admin.refresh();
+        },
+        //后退
+        back: function () {
+            history.back();
+        },
+        // 设置主题
+        theme: function () {
+            admin.popupRight(baseUrl+'home/theme');
+        },
+        // 全屏
+        fullScreen: function (e) {
+            var ac = 'layui-icon-screen-full', ic = 'layui-icon-screen-restore';
+            var ti = $(this).find('i');
+
+            var isFullscreen = document.fullscreenElement || document.msFullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || false;
+            if (isFullscreen) {
+                var efs = document.exitFullscreen || document.webkitExitFullscreen || document.mozCancelFullScreen || document.msExitFullscreen;
+                if (efs) {
+                    efs.call(document);
+                } else if (window.ActiveXObject) {
+                    var ws = new ActiveXObject('WScript.Shell');
+                    ws && ws.SendKeys('{F11}');
+                }
+                ti.addClass(ac).removeClass(ic);
+            } else {
+                var el = document.documentElement;
+                var rfs = el.requestFullscreen || el.webkitRequestFullscreen || el.mozRequestFullScreen || el.msRequestFullscreen;
+                if (rfs) {
+                    rfs.call(el);
+                } else if (window.ActiveXObject) {
+                    var ws = new ActiveXObject('WScript.Shell');
+                    ws && ws.SendKeys('{F11}');
+                }
+                ti.addClass(ic).removeClass(ac);
+            }
+        },
+        // 左滑动tab
+        leftPage: function () {
+            admin.rollPage("left");
+        },
+        // 右滑动tab
+        rightPage: function () {
+            admin.rollPage();
+        },
+        // 关闭当前选项卡
+        closeThisTabs: function () {
+            var $title = $('.layui-layout-admin .layui-body .layui-tab .layui-tab-title');
+            if ($title.find('li').first().hasClass('layui-this')) {
+                return;
+            }
+            $title.find('li.layui-this').find(".layui-tab-close").trigger("click");
+        },
+        // 关闭其他选项卡
+        closeOtherTabs: function () {
+            $('.layui-layout-admin .layui-body .layui-tab .layui-tab-title li:gt(0):not(.layui-this)').find('.layui-tab-close').trigger('click');
+        },
+        // 关闭所有选项卡
+        closeAllTabs: function () {
+            $('.layui-layout-admin .layui-body .layui-tab .layui-tab-title li:gt(0)').find('.layui-tab-close').trigger('click');
+        },
+        // 关闭所有弹窗
+        closeDialog: function () {
+            layer.closeAll('page');
+        },
+        //刷新字典
+        refreshDict: function (){
+            layer.confirm('确定要刷新数据字典吗?', {
+                    btn: ['确定', '取消']
+                }, function (index, layero) {
+                    layer.closeAll('dialog');  //加入这个信息点击确定 会关闭这个消息框
+                    admin.dgo(baseUrl+"dictrefresh", {}, function (data) {
+                        if (data.code == 200) {
+                            layer.msg("刷新数据字典成功!", {icon: 1, time: 1000});
+                            DictPoolToolkit().initAll(baseUrl+"dictpool");
+                        } else if (data.code == 401) {
+                            layer.msg(data.msg, {icon: 2, time: 1500}, function () {
+                                location.replace('/login');
+                            }, 1000);
+                            return;
+                        } else {
+                            layer.msg(data.msg, {icon: 2, time: 1500});
+                        }
+                    }, function () {
+                        layer.msg("数据字典刷新失败,访问服务器失败!", {icon: 2, time: 1500});
+                    });
+                });
+        }
+    };
+
+    // 所有ew-event
+    $('body').on('click', '*[ew-event]', function () {
+        var event = $(this).attr('ew-event');
+        var te = admin.events[event];
+        te && te.call(this, $(this));
+    });
+
+    // 移动设备遮罩层点击事件
+    $('.site-mobile-shade').click(function () {
+        admin.flexible(true);
+    });
+
+    // 侧导航折叠状态下鼠标经过显示提示
+    $('body').on('mouseenter', '.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item>a', function () {
+        var tipText = $(this).find('cite').text();
+        if (document.body.clientWidth > 750) {
+            layer.tips(tipText, this);
+        }
+    }).on('mouseleave', '.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item>a', function () {
+        layer.closeAll('tips');
+    });
+
+    // 侧导航折叠状态下点击展开
+    $('body').on('click', '.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item>a', function () {
+        if (document.body.clientWidth > 750) {
+            layer.closeAll('tips');
+            admin.flexible(true);
+        }
+    });
+
+    // 所有lay-tips处理
+    $('body').on('mouseenter', '*[lay-tips]', function () {
+        var tipText = $(this).attr('lay-tips');
+        var dt = $(this).attr('lay-direction');
+        layer.tips(tipText, this, {tips: dt || 1, time: -1});
+    }).on('mouseleave', '*[lay-tips]', function () {
+        layer.closeAll('tips');
+    });
+
+    exports('admin', admin);
+});
similarity index 96%
rename from src/main/resources/templates/error/403.html
rename to payapi/src/main/resources/templates/error/403.html
index 155f35a..a3843f7 100755 (executable)
@@ -1,27 +1,27 @@
-<!DOCTYPE html>\r
-<html xmlns:th="http://www.thymeleaf.org" >\r
-<head>\r
-  <meta charset="utf-8">\r
-  <title>403 无权限</title>\r
-  <meta name="renderer" content="webkit">\r
-  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">\r
-  <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">\r
-  <link rel="stylesheet" th:href="@{/static/libs/layui/css/layui.css}" media="all"/>\r
-  <link rel="stylesheet" th:href="@{/static/custom/css/admin.css}" media="all"/>\r
-</head>\r
-<body>\r
-<div class="layui-fluid">\r
-  <div class="layadmin-tips">\r
-    <i class="layui-icon" face>&#xe664;</i>\r
-    <div class="layui-text">\r
-      <p>没有权限</p>\r
-      <h1>\r
-        <span class="layui-anim layui-anim-loop layui-anim-">4</span> \r
-        <span class="layui-anim layui-anim-loop layui-anim-rotate">0</span> \r
-        <span class="layui-anim layui-anim-loop layui-anim-">3</span>\r
-      </h1>\r
-    </div>\r
-  </div>\r
-</div>\r
-</body>\r
+<!DOCTYPE html>
+<html xmlns:th="http://www.thymeleaf.org" >
+<head>
+  <meta charset="utf-8">
+  <title>403 无权限</title>
+  <meta name="renderer" content="webkit">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+  <link rel="stylesheet" th:href="@{/static/libs/layui/css/layui.css}" media="all"/>
+  <link rel="stylesheet" th:href="@{/static/custom/css/admin.css}" media="all"/>
+</head>
+<body>
+<div class="layui-fluid">
+  <div class="layadmin-tips">
+    <i class="layui-icon" face>&#xe664;</i>
+    <div class="layui-text">
+      <p>没有权限</p>
+      <h1>
+        <span class="layui-anim layui-anim-loop layui-anim-">4</span> 
+        <span class="layui-anim layui-anim-loop layui-anim-rotate">0</span> 
+        <span class="layui-anim layui-anim-loop layui-anim-">3</span>
+      </h1>
+    </div>
+  </div>
+</div>
+</body>
 </html>
\ No newline at end of file
similarity index 96%
rename from src/main/resources/templates/error/404.html
rename to payapi/src/main/resources/templates/error/404.html
index 89144f5..b818658 100755 (executable)
@@ -1,28 +1,28 @@
-<!DOCTYPE html>\r
-<html xmlns:th="http://www.thymeleaf.org" >\r
-<head>\r
-  <meta charset="utf-8">\r
-  <title>404 页面不存在</title>\r
-  <meta name="renderer" content="webkit">\r
-  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">\r
-  <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">\r
-  <link rel="stylesheet" th:href="@{/static/libs/layui/css/layui.css}" media="all"/>\r
-  <link rel="stylesheet" th:href="@{/static/custom/css/admin.css}" media="all"/>\r
-</head>\r
-<body>\r
-\r
-<div class="layui-fluid">\r
-  <div class="layadmin-tips">\r
-    <i class="layui-icon" face>&#xe664;</i>\r
-    <div class="layui-text">\r
-      <p>页面不存在</p>\r
-      <h1>\r
-        <span class="layui-anim layui-anim-loop layui-anim-">4</span> \r
-        <span class="layui-anim layui-anim-loop layui-anim-rotate">0</span> \r
-        <span class="layui-anim layui-anim-loop layui-anim-">4</span>\r
-      </h1>\r
-    </div>\r
-  </div>\r
-</div>\r
-</body>\r
+<!DOCTYPE html>
+<html xmlns:th="http://www.thymeleaf.org" >
+<head>
+  <meta charset="utf-8">
+  <title>404 页面不存在</title>
+  <meta name="renderer" content="webkit">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+  <link rel="stylesheet" th:href="@{/static/libs/layui/css/layui.css}" media="all"/>
+  <link rel="stylesheet" th:href="@{/static/custom/css/admin.css}" media="all"/>
+</head>
+<body>
+
+<div class="layui-fluid">
+  <div class="layadmin-tips">
+    <i class="layui-icon" face>&#xe664;</i>
+    <div class="layui-text">
+      <p>页面不存在</p>
+      <h1>
+        <span class="layui-anim layui-anim-loop layui-anim-">4</span> 
+        <span class="layui-anim layui-anim-loop layui-anim-rotate">0</span> 
+        <span class="layui-anim layui-anim-loop layui-anim-">4</span>
+      </h1>
+    </div>
+  </div>
+</div>
+</body>
 </html>
\ No newline at end of file
similarity index 96%
rename from src/main/resources/templates/error/500.html
rename to payapi/src/main/resources/templates/error/500.html
index c46acd2..fc442c7 100755 (executable)
@@ -1,28 +1,28 @@
-<!DOCTYPE html>\r
-<html xmlns:th="http://www.thymeleaf.org" >\r
-<head>\r
-  <meta charset="utf-8">\r
-  <title>500 服务出错</title>\r
-  <meta name="renderer" content="webkit">\r
-  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">\r
-  <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">\r
-  <link rel="stylesheet" th:href="@{/static/libs/layui/css/layui.css}" media="all"/>\r
-  <link rel="stylesheet" th:href="@{/static/custom/css/admin.css}" media="all"/>\r
-</head>\r
-<body>\r
-\r
-<div class="layui-fluid">\r
-  <div class="layadmin-tips">\r
-    <i class="layui-icon" face>&#xe664;</i>\r
-    <div class="layui-text">\r
-      <p>服务器出错了</p>\r
-      <h1>\r
-        <span class="layui-anim layui-anim-loop layui-anim-">5</span>\r
-        <span class="layui-anim layui-anim-loop layui-anim-rotate">0</span> \r
-        <span class="layui-anim layui-anim-loop layui-anim-">0</span>\r
-      </h1>\r
-    </div>\r
-  </div>\r
-</div>\r
-</body>\r
+<!DOCTYPE html>
+<html xmlns:th="http://www.thymeleaf.org" >
+<head>
+  <meta charset="utf-8">
+  <title>500 服务出错</title>
+  <meta name="renderer" content="webkit">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+  <link rel="stylesheet" th:href="@{/static/libs/layui/css/layui.css}" media="all"/>
+  <link rel="stylesheet" th:href="@{/static/custom/css/admin.css}" media="all"/>
+</head>
+<body>
+
+<div class="layui-fluid">
+  <div class="layadmin-tips">
+    <i class="layui-icon" face>&#xe664;</i>
+    <div class="layui-text">
+      <p>服务器出错了</p>
+      <h1>
+        <span class="layui-anim layui-anim-loop layui-anim-">5</span>
+        <span class="layui-anim layui-anim-loop layui-anim-rotate">0</span> 
+        <span class="layui-anim layui-anim-loop layui-anim-">0</span>
+      </h1>
+    </div>
+  </div>
+</div>
+</body>
 </html>
\ No newline at end of file
@@ -1,28 +1,28 @@
-<div class="layui-row layui-col-space15">\r
-\r
-</div>\r
-\r
-\r
-\r
-    \r
-\r
-<script>\r
-    layui.use(['carousel', 'element'], function () {\r
-        var carousel = layui.carousel;\r
-        var element = layui.element;\r
-        var device = layui.device;\r
-\r
-        layui.link('[[@{/static/custom/css/console.css}]]');\r
-\r
-        // 渲染轮播\r
-        carousel.render({\r
-            elem: '.layui-carousel',\r
-            width: '100%',\r
-            height: '60px',\r
-            arrow: 'none',\r
-            autoplay: true,\r
-            trigger: device.ios || device.android ? 'click' : 'hover',\r
-            anim: 'fade'\r
-        });\r
-    });\r
-</script>\r
+<div class="layui-row layui-col-space15">
+
+</div>
+
+
+
+    
+
+<script>
+    layui.use(['carousel', 'element'], function () {
+        var carousel = layui.carousel;
+        var element = layui.element;
+        var device = layui.device;
+
+        layui.link('[[@{/static/custom/css/console.css}]]');
+
+        // 渲染轮播
+        carousel.render({
+            elem: '.layui-carousel',
+            width: '100%',
+            height: '60px',
+            arrow: 'none',
+            autoplay: true,
+            trigger: device.ios || device.android ? 'click' : 'hover',
+            anim: 'fade'
+        });
+    });
+</script>
@@ -1,58 +1,58 @@
-<div class="layui-card-header">\r
-    <h2 class="header-title">修改密码</h2>\r
-</div>\r
-<div class="layui-card-body" style="padding: 30px;">\r
-    <form class="layui-form" id="form-psw">\r
-        <div class="layui-form-item">\r
-            <input type="password" name="oldPsw" required lay-verify="required" class="layui-input"\r
-                   placeholder="请输入原密码" lay-verType="tips">\r
-        </div>\r
-        <div class="layui-form-item">\r
-            <input type="password" name="newPsw" required lay-verify="required|psw" class="layui-input"\r
-                   placeholder="请输入新密码" lay-verType="tips">\r
-        </div>\r
-        <div class="layui-form-item">\r
-            <input type="password" name="rePsw" required lay-verify="required|repsw" class="layui-input"\r
-                   placeholder="再次输入新密码" lay-verType="tips">\r
-        </div>\r
-        <div class="layui-form-item">\r
-            <button class="layui-btn layui-btn-fluid" lay-submit lay-filter="submit-psw">确认修改</button>\r
-        </div>\r
-    </form>\r
-</div>\r
-\r
-<script>\r
-    layui.use(['form', 'admin', 'layer'], function () {\r
-        var form = layui.form;\r
-        var admin = layui.admin;\r
-        var layer = layui.layer;\r
-\r
-        // 监听提交\r
-        form.on('submit(submit-psw)', function (data) {\r
-            layer.load(2);\r
-            $.post('[[@{/system/user/updatePsw}]]', data.field, function (data) {\r
-                if (data.code == 200) {\r
-                    layer.closeAll('loading');\r
-                    admin.closePopupRight();\r
-                    layer.msg(data.msg, {icon: 1, time: 1000}, function () {\r
-                        location.replace('logout');\r
-                    });\r
-                } else {\r
-                    layer.closeAll('loading');\r
-                    layer.msg(data.msg, {icon: 2});\r
-                }\r
-            });\r
-            return false;\r
-        });\r
-\r
-        // 添加表单验证方法\r
-        form.verify({\r
-            psw: [/^[\S]{5,12}$/, '密码必须5到12位,且不能出现空格'],\r
-            repsw: function (t) {\r
-                if (t !== $('#form-psw input[name=newPsw]').val()) {\r
-                    return '两次密码输入不一致';\r
-                }\r
-            }\r
-        });\r
-    });\r
+<div class="layui-card-header">
+    <h2 class="header-title">修改密码</h2>
+</div>
+<div class="layui-card-body" style="padding: 30px;">
+    <form class="layui-form" id="form-psw">
+        <div class="layui-form-item">
+            <input type="password" name="oldPsw" required lay-verify="required" class="layui-input"
+                   placeholder="请输入原密码" lay-verType="tips">
+        </div>
+        <div class="layui-form-item">
+            <input type="password" name="newPsw" required lay-verify="required|psw" class="layui-input"
+                   placeholder="请输入新密码" lay-verType="tips">
+        </div>
+        <div class="layui-form-item">
+            <input type="password" name="rePsw" required lay-verify="required|repsw" class="layui-input"
+                   placeholder="再次输入新密码" lay-verType="tips">
+        </div>
+        <div class="layui-form-item">
+            <button class="layui-btn layui-btn-fluid" lay-submit lay-filter="submit-psw">确认修改</button>
+        </div>
+    </form>
+</div>
+
+<script>
+    layui.use(['form', 'admin', 'layer'], function () {
+        var form = layui.form;
+        var admin = layui.admin;
+        var layer = layui.layer;
+
+        // 监听提交
+        form.on('submit(submit-psw)', function (data) {
+            layer.load(2);
+            $.post('[[@{/system/user/updatePsw}]]', data.field, function (data) {
+                if (data.code == 200) {
+                    layer.closeAll('loading');
+                    admin.closePopupRight();
+                    layer.msg(data.msg, {icon: 1, time: 1000}, function () {
+                        location.replace('logout');
+                    });
+                } else {
+                    layer.closeAll('loading');
+                    layer.msg(data.msg, {icon: 2});
+                }
+            });
+            return false;
+        });
+
+        // 添加表单验证方法
+        form.verify({
+            psw: [/^[\S]{5,12}$/, '密码必须5到12位,且不能出现空格'],
+            repsw: function (t) {
+                if (t !== $('#form-psw input[name=newPsw]').val()) {
+                    return '两次密码输入不一致';
+                }
+            }
+        });
+    });
 </script>
\ No newline at end of file
similarity index 96%
rename from src/main/resources/templates/home/theme.html
rename to payapi/src/main/resources/templates/home/theme.html
index 392a02a..71700a0 100755 (executable)
@@ -1,37 +1,37 @@
-<div class="layui-card-header">\r
-    <h2 class="header-title">多标签:</h2>\r
-    <div class="pull-right layui-form">\r
-        <input type="checkbox" lay-skin="switch" lay-text="ON|OFF" id="set-tab" lay-filter="set-tab" checked/>\r
-    </div>\r
-</div>\r
-\r
-<div class="layui-card-header"><h2 class="header-title">设置主题:</h2></div>\r
-<div class="layui-card-body layui-text">\r
-    <a th:href="@{/home/setTheme}" class="layui-btn" style="background-color: #009688;">默认主题</a>\r
-    <a th:href="@{/home/setTheme?themeName=blue}" class="layui-btn layui-btn-normal">蓝色主题</a>\r
-    <br><br><br>\r
-  \r
-</div>\r
-\r
-<script>\r
-    layui.use(['form', 'index', 'admin'], function () {\r
-        var form = layui.form;\r
-        var index = layui.index;\r
-        var admin = layui.admin;\r
-\r
-        $('#set-tab').prop('checked', index.pageTabs);\r
-        form.render('checkbox');\r
-\r
-        form.on('switch(set-tab)', function (data) {\r
-            if (data.elem.checked) {\r
-                location.reload();\r
-            } else {\r
-                index.pageTabs = false;\r
-                index.checkPageTabs();\r
-                admin.refresh();\r
-                admin.closePopupRight();\r
-            }\r
-        });\r
-\r
-    });\r
+<div class="layui-card-header">
+    <h2 class="header-title">多标签:</h2>
+    <div class="pull-right layui-form">
+        <input type="checkbox" lay-skin="switch" lay-text="ON|OFF" id="set-tab" lay-filter="set-tab" checked/>
+    </div>
+</div>
+
+<div class="layui-card-header"><h2 class="header-title">设置主题:</h2></div>
+<div class="layui-card-body layui-text">
+    <a th:href="@{/home/setTheme}" class="layui-btn" style="background-color: #009688;">默认主题</a>
+    <a th:href="@{/home/setTheme?themeName=blue}" class="layui-btn layui-btn-normal">蓝色主题</a>
+    <br><br><br>
+  
+</div>
+
+<script>
+    layui.use(['form', 'index', 'admin'], function () {
+        var form = layui.form;
+        var index = layui.index;
+        var admin = layui.admin;
+
+        $('#set-tab').prop('checked', index.pageTabs);
+        form.render('checkbox');
+
+        form.on('switch(set-tab)', function (data) {
+            if (data.elem.checked) {
+                location.reload();
+            } else {
+                index.pageTabs = false;
+                index.checkPageTabs();
+                admin.refresh();
+                admin.closePopupRight();
+            }
+        });
+
+    });
 </script>
\ No newline at end of file
similarity index 97%
rename from src/main/resources/templates/index.html
rename to payapi/src/main/resources/templates/index.html
index 1fb326d..bfea46b 100755 (executable)
-<!DOCTYPE html>\r
-<html xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4">\r
-\r
-<head>\r
-    <title>首页</title>\r
-    <meta name="_csrf_header" th:content="${_csrf.headerName}" />\r
-    <meta name="_csrf_token" th:content="${_csrf.parameterName}" th:value="${_csrf.token}" />\r
-    <meta charset="utf-8"/>\r
-    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">\r
-    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">\r
-    <link rel="stylesheet" th:href="@{/static/libs/layui/css/layui.css}"/>\r
-    <link rel="stylesheet" th:href="@{/static/libs/zTree/css/zTreeStyle/zTreeStyle.css}"/>\r
-    <link rel="stylesheet" th:href="@{/static/custom/module/formSelects/formSelects-v4.css}"/>\r
-    <link rel="stylesheet" th:href="@{/static/custom/css/admin.css}"/>\r
-    <link th:if="${session.theme != null}" rel="stylesheet" th:href="@{/static/custom/css/theme-blue.css}"/>\r
-</head>\r
-\r
-<body class="layui-layout-body">\r
-<div class="layui-layout layui-layout-admin">\r
-    <!-- 头部 -->\r
-    <div class="layui-header">\r
-        <div class="layui-logo">\r
-            <img th:src="@{/static/custom/images/logo.png}"/>\r
-            <cite>支付中心</cite>\r
-        </div>\r
-        <ul class="layui-nav layui-layout-left">\r
-            <li class="layui-nav-item" lay-unselect>\r
-                <a ew-event="flexible" title="侧边伸缩"><i class="layui-icon layui-icon-shrink-right"></i></a>\r
-            </li>\r
-            <li class="layui-nav-item" lay-unselect>\r
-                <a ew-event="refresh" title="刷新"><i class="layui-icon layui-icon-refresh-3"></i></a>\r
-            </li>\r
-        </ul>\r
-        <ul class="layui-nav layui-layout-right">\r
-            <li class="layui-nav-item" lay-unselect>\r
-                <a ew-event="refreshDict" title="刷新字典"><i class="layui-icon layui-icon-read"></i></a>\r
-            </li>\r
-            <!--<li class="layui-nav-item" lay-unselect>-->\r
-                <!--<a id="btnMessage" title="消息"><i class="layui-icon layui-icon-notice"></i></a>-->\r
-            <!--</li>-->\r
-            <li class="layui-nav-item layui-hide-xs" lay-unselect>\r
-                <a ew-event="fullScreen" title="全屏"><i class="layui-icon layui-icon-screen-full"></i></a>\r
-            </li>\r
-            <li class="layui-nav-item" lay-unselect>\r
-                <a href="javascript:;">\r
-                    <img th:src="@{/static/custom/images/head.png}" class="layui-nav-img">\r
-                    <cite>[[${loginOper.opername}]]</cite>\r
-                </a>\r
-                <dl class="layui-nav-child">\r
-                    <dd ay-unselect><a lay-href="/operator/userinfor">基本资料</a></dd>\r
-                    <dd ay-unselect><a lay-href="/operator/setpwd">修改密码</a></dd>\r
-                    <hr>\r
-                    <dd layadmin-event="logout" style="text-align: center;" ><a th:href="@{/logout}">退出</a></dd>\r
-                </dl>\r
-            </li>\r
-            <li class="layui-nav-item" lay-unselect>\r
-                <a ew-event="theme" title="主题"><i class="layui-icon layui-icon-more-vertical"></i></a>\r
-            </li>\r
-        </ul>\r
-    </div>\r
-\r
-    <!-- 侧边栏 -->\r
-    <div class="layui-side">\r
-        <div class="layui-side-scroll">\r
-            <ul class="layui-nav layui-nav-tree" style="margin-top: 15px;">\r
-\r
-                <li class="layui-nav-item" th:each="menu : ${menus}">\r
-                    <a th:lay-href="${menu.menuUrl}"><i th:class="'layui-icon '+${menu.menuIcon}"></i>&emsp;<cite>[[${menu.menuName}]]</cite></a>\r
-                    <dl class="layui-nav-child" th:if="${menu.subMenus.size()} > 0">\r
-                        <dd th:each="subMenu : ${menu.subMenus}">\r
-                            <a th:lay-href="${subMenu.menuUrl}">[[${subMenu.menuName}]]</a>\r
-                            <dl class="layui-nav-child" th:if="${subMenu.subMenus.size()} > 0">\r
-                                <dd th:each="temp : ${subMenu.subMenus}"><a th:lay-href="${temp.menuUrl}">\r
-                                    <i th:class="'layui-icon '+${temp.menuIcon}"></i>\r
-                                    [[${temp.menuName}]]\r
-                                  </a>\r
-                                </dd>\r
-                            </dl>\r
-                        </dd>\r
-                    </dl>\r
-                </li>\r
-\r
-                <!--<li class="layui-nav-item">-->\r
-                    <!--<a href="javascript:;"><i class="layui-icon layui-icon-unlink"></i>&emsp;<cite>多级菜单</cite></a>-->\r
-                    <!--<dl class="layui-nav-child">-->\r
-                        <!--<dd>-->\r
-                            <!--<a href="javascript:;">二级菜单</a>-->\r
-                            <!--<dl class="layui-nav-child">-->\r
-                                <!--<dd><a href="javascript:;">三级菜单</a></dd>-->\r
-                                <!--<dd><a href="javascript:;">三级菜单</a></dd>-->\r
-                            <!--</dl>-->\r
-                        <!--</dd>-->\r
-                    <!--</dl>-->\r
-                <!--</li>-->\r
-            </ul>\r
-        </div>\r
-    </div>\r
-\r
-\r
-    <!-- 主体部分 -->\r
-    <div class="layui-body">\r
-        <div class="layui-tab" lay-allowClose="true" lay-filter="admin-pagetabs">\r
-            <ul class="layui-tab-title">\r
-            </ul>\r
-            <div class="layui-tab-content">\r
-            </div>\r
-        </div>\r
-        <div class="layui-icon admin-tabs-control layui-icon-prev" ew-event="leftPage"></div>\r
-        <div class="layui-icon admin-tabs-control layui-icon-next" ew-event="rightPage"></div>\r
-        <div class="layui-icon admin-tabs-control layui-icon-down">\r
-            <ul class="layui-nav admin-tabs-select" lay-filter="admin-pagetabs-nav">\r
-                <li class="layui-nav-item" lay-unselect>\r
-                    <a href="javascript:;"></a>\r
-                    <dl class="layui-nav-child layui-anim-fadein">\r
-                        <dd ew-event="closeThisTabs" lay-unselect><a href="javascript:;">关闭当前标签页</a></dd>\r
-                        <dd ew-event="closeOtherTabs" lay-unselect><a href="javascript:;">关闭其它标签页</a></dd>\r
-                        <dd ew-event="closeAllTabs" lay-unselect><a href="javascript:;">关闭全部标签页</a></dd>\r
-                    </dl>\r
-                </li>\r
-            </ul>\r
-        </div>\r
-    </div>\r
-\r
-    <!-- 底部 -->\r
-    <div class="layui-footer">Copyright © 2018 supwisdom All rights reserved. <span class="pull-right" th:text="${payapiVersion}">Version 1.0</span>\r
-    </div>\r
-\r
-    <!-- 手机屏幕遮罩层 -->\r
-    <div class="site-mobile-shade"></div>\r
-</div>\r
-\r
-<script type="text/javascript" th:src="@{/static/libs/jquery/jquery-3.2.1.min.js}"></script>\r
-<script type="text/javascript" th:src="@{/static/libs/q.js}"></script>\r
-<script type="text/javascript" th:src="@{/static/libs/layui/layui.js}"></script>\r
-<script type="text/javascript" th:src="@{/static/libs/zTree/js/jquery.ztree.all-3.5.min.js}"></script>\r
-<script type="text/javascript" th:src="@{/static/libs/custom.js}"></script>\r
-\r
-<script>\r
-    layui.config({\r
-        base: 'static/custom/module/'\r
-    }).extend({\r
-        formSelects: 'formSelects/formSelects-v4',\r
-        treetable: 'treetable-lay/treetable',\r
-        treeSelect: 'treeSelect/treeSelect'\r
-    }).use(['admin'], function () {\r
-        var admin = layui.admin;\r
-    });\r
-</script>\r
-\r
-<script>\r
-    layui.use(['index'], function () {\r
-        var index = layui.index;\r
-        index.checkPageTabs(true);  // 检查多标签是否开启\r
-        index.initRouter();  // 导航栏和tab联动\r
-        index.bindEvent();  // 绑定事件\r
-\r
-        var dictpool = DictPoolToolkit();\r
-        dictpool.initAll("[[@{/dictpool}]]"); //加载字典\r
-    });\r
-</script>\r
-</body>\r
-\r
+<!DOCTYPE html>
+<html xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4">
+
+<head>
+    <title>首页</title>
+    <meta name="_csrf_header" th:content="${_csrf.headerName}" />
+    <meta name="_csrf_token" th:content="${_csrf.parameterName}" th:value="${_csrf.token}" />
+    <meta charset="utf-8"/>
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+    <link rel="stylesheet" th:href="@{/static/libs/layui/css/layui.css}"/>
+    <link rel="stylesheet" th:href="@{/static/libs/zTree/css/zTreeStyle/zTreeStyle.css}"/>
+    <link rel="stylesheet" th:href="@{/static/custom/module/formSelects/formSelects-v4.css}"/>
+    <link rel="stylesheet" th:href="@{/static/custom/css/admin.css}"/>
+    <link th:if="${session.theme != null}" rel="stylesheet" th:href="@{/static/custom/css/theme-blue.css}"/>
+</head>
+
+<body class="layui-layout-body">
+<div class="layui-layout layui-layout-admin">
+    <!-- 头部 -->
+    <div class="layui-header">
+        <div class="layui-logo">
+            <img th:src="@{/static/custom/images/logo.png}"/>
+            <cite>支付中心</cite>
+        </div>
+        <ul class="layui-nav layui-layout-left">
+            <li class="layui-nav-item" lay-unselect>
+                <a ew-event="flexible" title="侧边伸缩"><i class="layui-icon layui-icon-shrink-right"></i></a>
+            </li>
+            <li class="layui-nav-item" lay-unselect>
+                <a ew-event="refresh" title="刷新"><i class="layui-icon layui-icon-refresh-3"></i></a>
+            </li>
+        </ul>
+        <ul class="layui-nav layui-layout-right">
+            <li class="layui-nav-item" lay-unselect>
+                <a ew-event="refreshDict" title="刷新字典"><i class="layui-icon layui-icon-read"></i></a>
+            </li>
+            <!--<li class="layui-nav-item" lay-unselect>-->
+                <!--<a id="btnMessage" title="消息"><i class="layui-icon layui-icon-notice"></i></a>-->
+            <!--</li>-->
+            <li class="layui-nav-item layui-hide-xs" lay-unselect>
+                <a ew-event="fullScreen" title="全屏"><i class="layui-icon layui-icon-screen-full"></i></a>
+            </li>
+            <li class="layui-nav-item" lay-unselect>
+                <a href="javascript:;">
+                    <img th:src="@{/static/custom/images/head.png}" class="layui-nav-img">
+                    <cite>[[${loginOper.opername}]]</cite>
+                </a>
+                <dl class="layui-nav-child">
+                    <dd ay-unselect><a lay-href="/operator/userinfor">基本资料</a></dd>
+                    <dd ay-unselect><a lay-href="/operator/setpwd">修改密码</a></dd>
+                    <hr>
+                    <dd layadmin-event="logout" style="text-align: center;" ><a th:href="@{/logout}">退出</a></dd>
+                </dl>
+            </li>
+            <li class="layui-nav-item" lay-unselect>
+                <a ew-event="theme" title="主题"><i class="layui-icon layui-icon-more-vertical"></i></a>
+            </li>
+        </ul>
+    </div>
+
+    <!-- 侧边栏 -->
+    <div class="layui-side">
+        <div class="layui-side-scroll">
+            <ul class="layui-nav layui-nav-tree" style="margin-top: 15px;">
+
+                <li class="layui-nav-item" th:each="menu : ${menus}">
+                    <a th:lay-href="${menu.menuUrl}"><i th:class="'layui-icon '+${menu.menuIcon}"></i>&emsp;<cite>[[${menu.menuName}]]</cite></a>
+                    <dl class="layui-nav-child" th:if="${menu.subMenus.size()} > 0">
+                        <dd th:each="subMenu : ${menu.subMenus}">
+                            <a th:lay-href="${subMenu.menuUrl}">[[${subMenu.menuName}]]</a>
+                            <dl class="layui-nav-child" th:if="${subMenu.subMenus.size()} > 0">
+                                <dd th:each="temp : ${subMenu.subMenus}"><a th:lay-href="${temp.menuUrl}">
+                                    <i th:class="'layui-icon '+${temp.menuIcon}"></i>
+                                    [[${temp.menuName}]]
+                                  </a>
+                                </dd>
+                            </dl>
+                        </dd>
+                    </dl>
+                </li>
+
+                <!--<li class="layui-nav-item">-->
+                    <!--<a href="javascript:;"><i class="layui-icon layui-icon-unlink"></i>&emsp;<cite>多级菜单</cite></a>-->
+                    <!--<dl class="layui-nav-child">-->
+                        <!--<dd>-->
+                            <!--<a href="javascript:;">二级菜单</a>-->
+                            <!--<dl class="layui-nav-child">-->
+                                <!--<dd><a href="javascript:;">三级菜单</a></dd>-->
+                                <!--<dd><a href="javascript:;">三级菜单</a></dd>-->
+                            <!--</dl>-->
+                        <!--</dd>-->
+                    <!--</dl>-->
+                <!--</li>-->
+            </ul>
+        </div>
+    </div>
+
+
+    <!-- 主体部分 -->
+    <div class="layui-body">
+        <div class="layui-tab" lay-allowClose="true" lay-filter="admin-pagetabs">
+            <ul class="layui-tab-title">
+            </ul>
+            <div class="layui-tab-content">
+            </div>
+        </div>
+        <div class="layui-icon admin-tabs-control layui-icon-prev" ew-event="leftPage"></div>
+        <div class="layui-icon admin-tabs-control layui-icon-next" ew-event="rightPage"></div>
+        <div class="layui-icon admin-tabs-control layui-icon-down">
+            <ul class="layui-nav admin-tabs-select" lay-filter="admin-pagetabs-nav">
+                <li class="layui-nav-item" lay-unselect>
+                    <a href="javascript:;"></a>
+                    <dl class="layui-nav-child layui-anim-fadein">
+                        <dd ew-event="closeThisTabs" lay-unselect><a href="javascript:;">关闭当前标签页</a></dd>
+                        <dd ew-event="closeOtherTabs" lay-unselect><a href="javascript:;">关闭其它标签页</a></dd>
+                        <dd ew-event="closeAllTabs" lay-unselect><a href="javascript:;">关闭全部标签页</a></dd>
+                    </dl>
+                </li>
+            </ul>
+        </div>
+    </div>
+
+    <!-- 底部 -->
+    <div class="layui-footer">Copyright © 2018 supwisdom All rights reserved. <span class="pull-right" th:text="${payapiVersion}">Version 1.0</span>
+    </div>
+
+    <!-- 手机屏幕遮罩层 -->
+    <div class="site-mobile-shade"></div>
+</div>
+
+<script type="text/javascript" th:src="@{/static/libs/jquery/jquery-3.2.1.min.js}"></script>
+<script type="text/javascript" th:src="@{/static/libs/q.js}"></script>
+<script type="text/javascript" th:src="@{/static/libs/layui/layui.js}"></script>
+<script type="text/javascript" th:src="@{/static/libs/zTree/js/jquery.ztree.all-3.5.min.js}"></script>
+<script type="text/javascript" th:src="@{/static/libs/custom.js}"></script>
+
+<script>
+    layui.config({
+        base: 'static/custom/module/'
+    }).extend({
+        formSelects: 'formSelects/formSelects-v4',
+        treetable: 'treetable-lay/treetable',
+        treeSelect: 'treeSelect/treeSelect'
+    }).use(['admin'], function () {
+        var admin = layui.admin;
+    });
+</script>
+
+<script>
+    layui.use(['index'], function () {
+        var index = layui.index;
+        index.checkPageTabs(true);  // 检查多标签是否开启
+        index.initRouter();  // 导航栏和tab联动
+        index.bindEvent();  // 绑定事件
+
+        var dictpool = DictPoolToolkit();
+        dictpool.initAll("[[@{/dictpool}]]"); //加载字典
+    });
+</script>
+</body>
+
 </html>
\ No newline at end of file
-<!-- operator表单弹窗 -->\r
-<form id="form" lay-filter="form" class="layui-form model-form">\r
-    <input name="id" id="id" type="hidden"/>\r
-    <div class="layui-form-item">\r
-        <label class="layui-form-label">功能名称</label>\r
-        <div class="layui-input-block">\r
-            <input name="name" placeholder="请输入功能名称" type="text" class="layui-input" maxlength="20"\r
-                   lay-verify="required|name" required/>\r
-        </div>\r
-    </div>\r
-    <div class="layui-form-item">\r
-        <label class="layui-form-label">路径</label>\r
-        <div class="layui-input-block">\r
-            <input name="menuUrl" placeholder="请输入路径,父节点默认为 # " type="text" class="layui-input" maxlength="60" value="#" lay-verify="required" required/>\r
-        </div>\r
-    </div>\r
-    <div class="layui-form-item">\r
-        <label class="layui-form-label">节点</label>\r
-        <div class="layui-input-block">\r
-            <input type="radio" name="isLeaf" value="0" title="父" checked/>\r
-        </div>\r
-    </div>\r
-    <div class="layui-form-item">\r
-        <label class="layui-form-label">序号</label>\r
-        <div class="layui-input-block">\r
-            <input name="orderNum" placeholder="请输入序号" type="text" class="layui-input" />\r
-        </div>\r
-    </div>\r
-    <div class="layui-form-item">\r
-        <label class="layui-form-label">图标</label>\r
-        <div class="layui-input-block">\r
-            <input name="menuIcon" placeholder="请输入图标 例:layui-icon-xx " type="text" class="layui-input" />\r
-        </div>\r
-    </div>\r
-\r
-    <div class="layui-form-item model-form-footer">\r
-        <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>\r
-        <button class="layui-btn" lay-filter="form-submit" lay-submit  id="submitbtn">保存</button>\r
-    </div>\r
-</form>\r
-\r
-<script>\r
-    layui.use(['layer', 'admin', 'form', 'formSelects'], function () {\r
-        var layer = layui.layer;\r
-        var admin = layui.admin;\r
-        var form = layui.form;\r
-        var formSelects = layui.formSelects;\r
-        form.render('radio');\r
-        form.verify({\r
-            "name": function (e) {\r
-                var msg = "";\r
-                $.ajax({\r
-                    type: "GET",\r
-                    url: '[[@{/function/checkname}]]',\r
-                    async: false,\r
-                    data: {\r
-                        name: e,\r
-                        id: $("#id").val()\r
-                    },\r
-                    success: function (result) {\r
-                        if (result.code != 200) {\r
-                            msg = result.msg;\r
-                        }\r
-                    },\r
-                    error: function (error) {\r
-                        msg = "请求服务器校验账号失败";\r
-                    }\r
-                });\r
-            }\r
-        });\r
-\r
-        var url = '[[@{/function/add}]]';\r
-        // 回显user数据\r
-        var func = admin.getTempData('t_func');\r
-        if (func) {\r
-            $('input[name="id"]').attr('readonly', 'readonly');\r
-            form.val('form', func);\r
-        }\r
-        // 表单提交事件\r
-        form.on('submit(form-submit)', function (data) {\r
-            layer.load(2);\r
-            let token = $("meta[name='_csrf_token']").attr("value");\r
-            debugger\r
-            $.ajax({\r
-                type : "POST",\r
-                dataType : "json",\r
-                url : url,\r
-                headers: {\r
-                    'Accept': 'application/json',\r
-                    'Content-Type': 'application/json',\r
-                    'X-CSRF-TOKEN':token,\r
-                },\r
-                data : JSON.stringify(data.field),\r
-                success : function(result) {\r
-                    layer.closeAll('loading');\r
-                    if (result.code == 200) {\r
-                        layer.msg(result.msg, {icon: 1});\r
-                        admin.finishPopupCenter();\r
-                    } else if (result.code == 401) {\r
-                        layer.msg(result.msg, {icon: 2, time: 1500}, function () {\r
-                            location.replace('[[@{/login}]]');\r
-                        }, 1000);\r
-                        return;\r
-                    } else {\r
-                        console.log('err:' + result.code);\r
-                        layer.msg(result.msg, {icon: 2});\r
-                    }\r
-                },\r
-                error : function() {\r
-                    layer.closeAll('loading');\r
-                    layer.msg("请求服务器失败!", {icon: 2});\r
-                }\r
-            });\r
-            return false;\r
-        });\r
-    });\r
+<!-- operator表单弹窗 -->
+<form id="form" lay-filter="form" class="layui-form model-form">
+    <input name="id" id="id" type="hidden"/>
+    <div class="layui-form-item">
+        <label class="layui-form-label">功能名称</label>
+        <div class="layui-input-block">
+            <input name="name" placeholder="请输入功能名称" type="text" class="layui-input" maxlength="20"
+                   lay-verify="required|name" required/>
+        </div>
+    </div>
+    <div class="layui-form-item">
+        <label class="layui-form-label">路径</label>
+        <div class="layui-input-block">
+            <input name="menuUrl" placeholder="请输入路径,父节点默认为 # " type="text" class="layui-input" maxlength="60" value="#" lay-verify="required" required/>
+        </div>
+    </div>
+    <div class="layui-form-item">
+        <label class="layui-form-label">节点</label>
+        <div class="layui-input-block">
+            <input type="radio" name="isLeaf" value="0" title="父" checked/>
+        </div>
+    </div>
+    <div class="layui-form-item">
+        <label class="layui-form-label">序号</label>
+        <div class="layui-input-block">
+            <input name="orderNum" placeholder="请输入序号" type="text" class="layui-input" />
+        </div>
+    </div>
+    <div class="layui-form-item">
+        <label class="layui-form-label">图标</label>
+        <div class="layui-input-block">
+            <input name="menuIcon" placeholder="请输入图标 例:layui-icon-xx " type="text" class="layui-input" />
+        </div>
+    </div>
+
+    <div class="layui-form-item model-form-footer">
+        <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
+        <button class="layui-btn" lay-filter="form-submit" lay-submit  id="submitbtn">保存</button>
+    </div>
+</form>
+
+<script>
+    layui.use(['layer', 'admin', 'form', 'formSelects'], function () {
+        var layer = layui.layer;
+        var admin = layui.admin;
+        var form = layui.form;
+        var formSelects = layui.formSelects;
+        form.render('radio');
+        form.verify({
+            "name": function (e) {
+                var msg = "";
+                $.ajax({
+                    type: "GET",
+                    url: '[[@{/function/checkname}]]',
+                    async: false,
+                    data: {
+                        name: e,
+                        id: $("#id").val()
+                    },
+                    success: function (result) {
+                        if (result.code != 200) {
+                            msg = result.msg;
+                        }
+                    },
+                    error: function (error) {
+                        msg = "请求服务器校验账号失败";
+                    }
+                });
+            }
+        });
+
+        var url = '[[@{/function/add}]]';
+        // 回显user数据
+        var func = admin.getTempData('t_func');
+        if (func) {
+            $('input[name="id"]').attr('readonly', 'readonly');
+            form.val('form', func);
+        }
+        // 表单提交事件
+        form.on('submit(form-submit)', function (data) {
+            layer.load(2);
+            let token = $("meta[name='_csrf_token']").attr("value");
+            debugger
+            $.ajax({
+                type : "POST",
+                dataType : "json",
+                url : url,
+                headers: {
+                    'Accept': 'application/json',
+                    'Content-Type': 'application/json',
+                    'X-CSRF-TOKEN':token,
+                },
+                data : JSON.stringify(data.field),
+                success : function(result) {
+                    layer.closeAll('loading');
+                    if (result.code == 200) {
+                        layer.msg(result.msg, {icon: 1});
+                        admin.finishPopupCenter();
+                    } else if (result.code == 401) {
+                        layer.msg(result.msg, {icon: 2, time: 1500}, function () {
+                            location.replace('[[@{/login}]]');
+                        }, 1000);
+                        return;
+                    } else {
+                        console.log('err:' + result.code);
+                        layer.msg(result.msg, {icon: 2});
+                    }
+                },
+                error : function() {
+                    layer.closeAll('loading');
+                    layer.msg("请求服务器失败!", {icon: 2});
+                }
+            });
+            return false;
+        });
+    });
 </script>
\ No newline at end of file
-<div class="layui-card">\r
-    <div class="layui-card-header">\r
-        <h2 class="header-title">功能维护</h2>\r
-        <span class="layui-breadcrumb pull-right">\r
-          <a href="#">系统中心</a>\r
-          <a><cite>功能维护</cite></a>\r
-        </span>\r
-    </div>\r
-    <div class="layui-card-body">\r
-        <div class="layui-form toolbar">\r
-            搜索:\r
-            <input id="search-value" class="layui-input search-input" type="text" placeholder="输入功能名称"/>&emsp;\r
-            <button id="btn-search-func" class="layui-btn icon-btn" data-type="search"><i class="layui-icon">&#xe615;</i>搜索\r
-            </button>\r
-            <button id="btn-add-func" class="layui-btn icon-btn" data-type="add"><i class="layui-icon"></i>添加父功能</button>\r
-        </div>\r
-        <table class="layui-table" id="table" lay-filter="table"></table>\r
-    </div>\r
-</div>\r
-\r
-<script>\r
-    layui.use(['form', 'table', 'layer', 'admin', 'element'], function () {\r
-        let form = layui.form;\r
-        let table = layui.table;\r
-        let admin = layui.admin;\r
-\r
-        form.render('select');\r
-\r
-        // 渲染表格\r
-        table.render({\r
-            elem: '#table',\r
-            url: '[[@{/function/list}]]',\r
-            page: true,\r
-            cols: [\r
-                [\r
-                    {field: 'id', title: '功能ID', width: 80,fixed: 'left', sort: true},\r
-                    {field: 'name', title: '功能名称', sort: true},\r
-                    {\r
-                        field: 'isLeaf', title: '节点', sort: true, width: 80, align: 'center', templet: function (item) {\r
-                            if (item.isLeaf == 0) {\r
-                                return '<span class="layui-badge ">父</span>'\r
-                            } else if (item.isLeaf == 1) {\r
-                                return '<span class="layui-badge layui-bg-green">子</span>'\r
-                            } else {\r
-                                return ''\r
-                            }\r
-                        }\r
-                    },\r
-                    {field: 'menuUrl', title: '路径'},\r
-                    {field: 'orderNum', sort: true, width: 80,title: '序号'},\r
-                    {\r
-                        field: 'menuIcon', title: '图标', width: 80,align: 'center', templet: function (item) {\r
-                            return '<i class="layui-icon ' + item.menuIcon + '"></i> '\r
-                        }\r
-                    },\r
-                    {\r
-                        field: 'id', align: 'center', title: '操作', fixed: 'right', width:350, templet: function (item) {\r
-                            if (item.isLeaf == 0) {\r
-                                return ' <a class="layui-btn  layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a> ' +\r
-                                    ' <a class="layui-btn layui-btn-normal  layui-btn-xs" lay-event="addsub"><i class="layui-icon layui-icon-set-sm"></i>添加子功能</a> ' +\r
-                                    ' <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>'\r
-                            } else {\r
-                                return ' <a class="layui-btn  layui-btn-xs" lay-event="editsub"><i class="layui-icon layui-icon-edit"></i>编辑</a> ' +\r
-                                    ' <a class="layui-btn layui-btn-warm layui-btn-xs" lay-event="addres"><i class="layui-icon layui-icon-set-sm"></i>添加资源</a> ' +\r
-                                    ' <a class="layui-btn layui-btn-warm layui-btn-xs" lay-event="listres"><i class="layui-icon layui-icon-set-sm"></i>维护资源</a> ' +\r
-                                    ' <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>'\r
-                            }\r
-                        }\r
-                    }\r
-                ]\r
-            ]\r
-        });\r
-        // 搜索按钮点击事件\r
-        $('#btn-search-func').click(function () {\r
-            let key = $('#search-value').val();\r
-            table.reload('table', {where: {searchkey: key}, page: {curr: 1}});\r
-        });\r
-        $('#btn-add-func').click(function () {\r
-            showModel();\r
-        });\r
-        let showModel = function (data) {\r
-            let title = data ? '编辑父功能' : '添加父功能';\r
-            admin.putTempData('t_func', data);\r
-            admin.popupCenter({\r
-                title: title,\r
-                path: '[[@{/function/loadadd}]]',\r
-                finish: function () {\r
-                    table.reload('table', {});\r
-                }\r
-            });\r
-        };\r
-        let showModelSub = function (data,parentid) {\r
-            let title = data ? '编辑子功能' : '添加子功能';\r
-            admin.putTempData('parentId', parentid);\r
-            admin.putTempData('t_func', data);\r
-            admin.popupCenter({\r
-                title: title,\r
-                path: '[[@{/function/loadsubadd}]]',\r
-                finish: function () {\r
-                    table.reload('table', {});\r
-                }\r
-            });\r
-        };\r
-\r
-        let showResModel = function (functionid) {\r
-            let title = '维护资源';\r
-            admin.putTempData('functionid', functionid);\r
-            admin.popupCenter({\r
-                title: title,\r
-                area:'70%',\r
-                path: '[[@{/function/loadres}]]?functionid='+functionid\r
-            });\r
-        };\r
-        let showAddResModelSub = function (functionid) {\r
-            let title = '添加资源';\r
-            admin.putTempData('functionid', functionid);\r
-            admin.popupCenter({\r
-                title: title,\r
-                path: '[[@{/function/loadresadd}]]',\r
-                finish: function () {\r
-                    table.reload('table', {});\r
-                }\r
-            });\r
-        };\r
-        // 工具条点击事件\r
-        table.on('tool(table)', function (obj) {\r
-            let data = obj.data;\r
-            let layEvent = obj.event;\r
-            console.log(data);\r
-            if (layEvent === 'edit') {\r
-                showModel(data);\r
-            } else if (layEvent === 'addsub') {\r
-                showModelSub(null,data.id);\r
-            } else if (layEvent === 'editsub') {\r
-                showModelSub(data,data.parentId);\r
-            } else if (layEvent === 'del') {\r
-                showDelete(data);\r
-            } else if(layEvent === 'listres'){\r
-                showResModel(data.id);\r
-            } else if(layEvent === 'addres'){\r
-                showAddResModelSub(data.id);\r
-            }\r
-        });\r
-        let showDelete = function (data) {\r
-            layer.confirm('确定删除吗,该功能下的子功能、资源、角色分配的该功能都将被删除?', function (i) {\r
-                layer.close(i);\r
-                layer.load(2);\r
-                let token = $("meta[name='_csrf_token']").attr("value");\r
-                admin.go('[[@{/function/delfunc}]]', {\r
-                    funcid: data.id,\r
-                    _csrf:token\r
-                }, function (data) {\r
-                    console.log(data.code);\r
-                    layer.closeAll('loading');\r
-                    if (data.code == 200) {\r
-                        layer.msg(data.msg, {icon: 1});\r
-                    } else if (data.code == 401) {\r
-                        layer.msg(data.msg, {icon: 2, time: 1500}, function () {\r
-                            location.replace('[[@{/login}]]');\r
-                        }, 1000);\r
-                        return;\r
-                    }\r
-                    else {\r
-                        layer.msg(data.msg, {icon: 2});\r
-                    }\r
-                    table.reload('table', {});\r
-                },function(ret){\r
-                    console.log(ret);\r
-                    layer.closeAll('loading');\r
-                    layer.msg('请求失败了,请稍后再试', {icon: 2});\r
-                });\r
-            });\r
-        }\r
-    });\r
-</script>\r
+<div class="layui-card">
+    <div class="layui-card-header">
+        <h2 class="header-title">功能维护</h2>
+        <span class="layui-breadcrumb pull-right">
+          <a href="#">系统中心</a>
+          <a><cite>功能维护</cite></a>
+        </span>
+    </div>
+    <div class="layui-card-body">
+        <div class="layui-form toolbar">
+            搜索:
+            <input id="search-value" class="layui-input search-input" type="text" placeholder="输入功能名称"/>&emsp;
+            <button id="btn-search-func" class="layui-btn icon-btn" data-type="search"><i class="layui-icon">&#xe615;</i>搜索
+            </button>
+            <button id="btn-add-func" class="layui-btn icon-btn" data-type="add"><i class="layui-icon"></i>添加父功能</button>
+        </div>
+        <table class="layui-table" id="table" lay-filter="table"></table>
+    </div>
+</div>
+
+<script>
+    layui.use(['form', 'table', 'layer', 'admin', 'element'], function () {
+        let form = layui.form;
+        let table = layui.table;
+        let admin = layui.admin;
+
+        form.render('select');
+
+        // 渲染表格
+        table.render({
+            elem: '#table',
+            url: '[[@{/function/list}]]',
+            page: true,
+            cols: [
+                [
+                    {field: 'id', title: '功能ID', width: 80,fixed: 'left', sort: true},
+                    {field: 'name', title: '功能名称', sort: true},
+                    {
+                        field: 'isLeaf', title: '节点', sort: true, width: 80, align: 'center', templet: function (item) {
+                            if (item.isLeaf == 0) {
+                                return '<span class="layui-badge ">父</span>'
+                            } else if (item.isLeaf == 1) {
+                                return '<span class="layui-badge layui-bg-green">子</span>'
+                            } else {
+                                return ''
+                            }
+                        }
+                    },
+                    {field: 'menuUrl', title: '路径'},
+                    {field: 'orderNum', sort: true, width: 80,title: '序号'},
+                    {
+                        field: 'menuIcon', title: '图标', width: 80,align: 'center', templet: function (item) {
+                            return '<i class="layui-icon ' + item.menuIcon + '"></i> '
+                        }
+                    },
+                    {
+                        field: 'id', align: 'center', title: '操作', fixed: 'right', width:350, templet: function (item) {
+                            if (item.isLeaf == 0) {
+                                return ' <a class="layui-btn  layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a> ' +
+                                    ' <a class="layui-btn layui-btn-normal  layui-btn-xs" lay-event="addsub"><i class="layui-icon layui-icon-set-sm"></i>添加子功能</a> ' +
+                                    ' <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>'
+                            } else {
+                                return ' <a class="layui-btn  layui-btn-xs" lay-event="editsub"><i class="layui-icon layui-icon-edit"></i>编辑</a> ' +
+                                    ' <a class="layui-btn layui-btn-warm layui-btn-xs" lay-event="addres"><i class="layui-icon layui-icon-set-sm"></i>添加资源</a> ' +
+                                    ' <a class="layui-btn layui-btn-warm layui-btn-xs" lay-event="listres"><i class="layui-icon layui-icon-set-sm"></i>维护资源</a> ' +
+                                    ' <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>'
+                            }
+                        }
+                    }
+                ]
+            ]
+        });
+        // 搜索按钮点击事件
+        $('#btn-search-func').click(function () {
+            let key = $('#search-value').val();
+            table.reload('table', {where: {searchkey: key}, page: {curr: 1}});
+        });
+        $('#btn-add-func').click(function () {
+            showModel();
+        });
+        let showModel = function (data) {
+            let title = data ? '编辑父功能' : '添加父功能';
+            admin.putTempData('t_func', data);
+            admin.popupCenter({
+                title: title,
+                path: '[[@{/function/loadadd}]]',
+                finish: function () {
+                    table.reload('table', {});
+                }
+            });
+        };
+        let showModelSub = function (data,parentid) {
+            let title = data ? '编辑子功能' : '添加子功能';
+            admin.putTempData('parentId', parentid);
+            admin.putTempData('t_func', data);
+            admin.popupCenter({
+                title: title,
+                path: '[[@{/function/loadsubadd}]]',
+                finish: function () {
+                    table.reload('table', {});
+                }
+            });
+        };
+
+        let showResModel = function (functionid) {
+            let title = '维护资源';
+            admin.putTempData('functionid', functionid);
+            admin.popupCenter({
+                title: title,
+                area:'70%',
+                path: '[[@{/function/loadres}]]?functionid='+functionid
+            });
+        };
+        let showAddResModelSub = function (functionid) {
+            let title = '添加资源';
+            admin.putTempData('functionid', functionid);
+            admin.popupCenter({
+                title: title,
+                path: '[[@{/function/loadresadd}]]',
+                finish: function () {
+                    table.reload('table', {});
+                }
+            });
+        };
+        // 工具条点击事件
+        table.on('tool(table)', function (obj) {
+            let data = obj.data;
+            let layEvent = obj.event;
+            console.log(data);
+            if (layEvent === 'edit') {
+                showModel(data);
+            } else if (layEvent === 'addsub') {
+                showModelSub(null,data.id);
+            } else if (layEvent === 'editsub') {
+                showModelSub(data,data.parentId);
+            } else if (layEvent === 'del') {
+                showDelete(data);
+            } else if(layEvent === 'listres'){
+                showResModel(data.id);
+            } else if(layEvent === 'addres'){
+                showAddResModelSub(data.id);
+            }
+        });
+        let showDelete = function (data) {
+            layer.confirm('确定删除吗,该功能下的子功能、资源、角色分配的该功能都将被删除?', function (i) {
+                layer.close(i);
+                layer.load(2);
+                let token = $("meta[name='_csrf_token']").attr("value");
+                admin.go('[[@{/function/delfunc}]]', {
+                    funcid: data.id,
+                    _csrf:token
+                }, function (data) {
+                    console.log(data.code);
+                    layer.closeAll('loading');
+                    if (data.code == 200) {
+                        layer.msg(data.msg, {icon: 1});
+                    } else if (data.code == 401) {
+                        layer.msg(data.msg, {icon: 2, time: 1500}, function () {
+                            location.replace('[[@{/login}]]');
+                        }, 1000);
+                        return;
+                    }
+                    else {
+                        layer.msg(data.msg, {icon: 2});
+                    }
+                    table.reload('table', {});
+                },function(ret){
+                    console.log(ret);
+                    layer.closeAll('loading');
+                    layer.msg('请求失败了,请稍后再试', {icon: 2});
+                });
+            });
+        }
+    });
+</script>
@@ -1,94 +1,94 @@
-<!-- operator表单弹窗 -->\r
-<form id="resform" lay-filter="resform" class="layui-form model-form">\r
-    <input name="id" id="id" type="hidden"/>\r
-    <div class="layui-form-item">\r
-        <label class="layui-form-label">资源名称</label>\r
-        <div class="layui-input-block">\r
-            <input name="name" placeholder="请输入资源名称" type="text" class="layui-input" maxlength="60"\r
-                   lay-verify="required|name" required/>\r
-        </div>\r
-    </div>\r
-    <div class="layui-form-item">\r
-        <label class="layui-form-label">路径</label>\r
-        <div class="layui-input-block">\r
-            <input name="uri" placeholder="请输入资源路径 " type="text" class="layui-input" maxlength="100"\r
-                   lay-verify="required" required/>\r
-        </div>\r
-    </div>\r
-    <div class="layui-form-item">\r
-        <label class="layui-form-label">所属功能</label>\r
-        <div class="layui-input-block">\r
-            <select name="functionId" id="functionId" lay-verify="required">\r
-                <option th:each="func : ${list}" th:value="${func.id}">[[${func.name}]]</option>\r
-            </select>\r
-        </div>\r
-    </div>\r
-    <div class="layui-form-item">\r
-        <label class="layui-form-label">代码</label>\r
-        <div class="layui-input-block">\r
-            <input name="code" placeholder="请输入代码" type="text" class="layui-input"/>\r
-        </div>\r
-    </div>\r
-    <div class="layui-form-item model-form-footer">\r
-        <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>\r
-        <button class="layui-btn" lay-filter="resform-submit" lay-submit id="submitbtn">保存</button>\r
-    </div>\r
-</form>\r
-\r
-<script>\r
-    layui.use(['layer', 'admin', 'form', 'formSelects'], function () {\r
-        var layer = layui.layer;\r
-        var admin = layui.admin;\r
-        var form = layui.form;\r
-        form.render('select');\r
-        form.render('radio');\r
-        var url = '[[@{/function/addres}]]';\r
-        // 回显user数据\r
-        var func = admin.getTempData('t_res');\r
-        if (func) {\r
-            $('input[name="id"]').attr('readonly', 'readonly');\r
-            form.val('resform', func);\r
-        }\r
-        let functionid = admin.getTempData("functionid");\r
-        if (functionid) {\r
-            form.val('resform', {"functionId": functionid});\r
-        }\r
-        // 表单提交事件\r
-        form.on('submit(resform-submit)', function (data) {\r
-            layer.load(2);\r
-            let token = $("meta[name='_csrf_token']").attr("value");\r
-            debugger\r
-            $.ajax({\r
-                type: "POST",\r
-                dataType: "json",\r
-                url: url,\r
-                headers: {\r
-                    'Accept': 'application/json',\r
-                    'Content-Type': 'application/json',\r
-                    'X-CSRF-TOKEN': token,\r
-                },\r
-                data: JSON.stringify(data.field),\r
-                success: function (result) {\r
-                    layer.closeAll('loading');\r
-                    if (result.code == 200) {\r
-                        layer.msg(result.msg, {icon: 1});\r
-                        admin.finishPopupCenter();\r
-                    } else if (result.code == 401) {\r
-                        layer.msg(result.msg, {icon: 2, time: 1500}, function () {\r
-                            location.replace('[[@{/login}]]');\r
-                        }, 1000);\r
-                        return;\r
-                    } else {\r
-                        console.log('err:' + result.code);\r
-                        layer.msg(result.msg, {icon: 2});\r
-                    }\r
-                },\r
-                error: function () {\r
-                    layer.closeAll('loading');\r
-                    layer.msg("请求服务器失败!", {icon: 2});\r
-                }\r
-            });\r
-            return false;\r
-        });\r
-    });\r
+<!-- operator表单弹窗 -->
+<form id="resform" lay-filter="resform" class="layui-form model-form">
+    <input name="id" id="id" type="hidden"/>
+    <div class="layui-form-item">
+        <label class="layui-form-label">资源名称</label>
+        <div class="layui-input-block">
+            <input name="name" placeholder="请输入资源名称" type="text" class="layui-input" maxlength="60"
+                   lay-verify="required|name" required/>
+        </div>
+    </div>
+    <div class="layui-form-item">
+        <label class="layui-form-label">路径</label>
+        <div class="layui-input-block">
+            <input name="uri" placeholder="请输入资源路径 " type="text" class="layui-input" maxlength="100"
+                   lay-verify="required" required/>
+        </div>
+    </div>
+    <div class="layui-form-item">
+        <label class="layui-form-label">所属功能</label>
+        <div class="layui-input-block">
+            <select name="functionId" id="functionId" lay-verify="required">
+                <option th:each="func : ${list}" th:value="${func.id}">[[${func.name}]]</option>
+            </select>
+        </div>
+    </div>
+    <div class="layui-form-item">
+        <label class="layui-form-label">代码</label>
+        <div class="layui-input-block">
+            <input name="code" placeholder="请输入代码" type="text" class="layui-input"/>
+        </div>
+    </div>
+    <div class="layui-form-item model-form-footer">
+        <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
+        <button class="layui-btn" lay-filter="resform-submit" lay-submit id="submitbtn">保存</button>
+    </div>
+</form>
+
+<script>
+    layui.use(['layer', 'admin', 'form', 'formSelects'], function () {
+        var layer = layui.layer;
+        var admin = layui.admin;
+        var form = layui.form;
+        form.render('select');
+        form.render('radio');
+        var url = '[[@{/function/addres}]]';
+        // 回显user数据
+        var func = admin.getTempData('t_res');
+        if (func) {
+            $('input[name="id"]').attr('readonly', 'readonly');
+            form.val('resform', func);
+        }
+        let functionid = admin.getTempData("functionid");
+        if (functionid) {
+            form.val('resform', {"functionId": functionid});
+        }
+        // 表单提交事件
+        form.on('submit(resform-submit)', function (data) {
+            layer.load(2);
+            let token = $("meta[name='_csrf_token']").attr("value");
+            debugger
+            $.ajax({
+                type: "POST",
+                dataType: "json",
+                url: url,
+                headers: {
+                    'Accept': 'application/json',
+                    'Content-Type': 'application/json',
+                    'X-CSRF-TOKEN': token,
+                },
+                data: JSON.stringify(data.field),
+                success: function (result) {
+                    layer.closeAll('loading');
+                    if (result.code == 200) {
+                        layer.msg(result.msg, {icon: 1});
+                        admin.finishPopupCenter();
+                    } else if (result.code == 401) {
+                        layer.msg(result.msg, {icon: 2, time: 1500}, function () {
+                            location.replace('[[@{/login}]]');
+                        }, 1000);
+                        return;
+                    } else {
+                        console.log('err:' + result.code);
+                        layer.msg(result.msg, {icon: 2});
+                    }
+                },
+                error: function () {
+                    layer.closeAll('loading');
+                    layer.msg("请求服务器失败!", {icon: 2});
+                }
+            });
+            return false;
+        });
+    });
 </script>
\ No newline at end of file
@@ -1,90 +1,90 @@
-<div style="padding:20px;">\r
-    <table class="layui-table" id="restable" lay-filter="restable">\r
-    </table>\r
-    <input type="hidden" id="functionid" th:value="${function.id}">\r
-    <input type="hidden" id="functionname" th:value="${function.name}">\r
-</div>\r
-<script>\r
-    layui.use(['form', 'table', 'layer', 'admin', 'element'], function () {\r
-        let form = layui.form;\r
-        let admin = layui.admin;\r
-        form.render('select');\r
-        let table = layui.table;\r
-        let func = admin.getTempData('functionid');\r
-        table.render({\r
-            elem: '#restable',\r
-            url: '[[@{/function/reslist}]]?functionid=' + func,\r
-            cols: [\r
-                [\r
-                    {field: 'id', title: '资源ID', width: 80, fixed: 'left', sort: true},\r
-                    {field: 'name', title: '资源名称', sort: true},\r
-                    {\r
-                        field: 'functionId', title: '所属功能', sort: true, align: 'center', templet: function (item) {\r
-                            return $("#functionname").val();\r
-                        }\r
-                    },\r
-                    {field: 'uri', title: '路径'},\r
-                    {field: 'code', sort: true, width: 80, title: '代码'},\r
-                    {\r
-                        field: 'id', align: 'center', title: '操作',  templet: function (item) {\r
-                            return '<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>'\r
-                        }\r
-                    }\r
-                ]\r
-            ]\r
-        });\r
-        // 工具条点击事件\r
-        table.on('tool(restable)', function (obj) {\r
-            let data = obj.data;\r
-            let layEvent = obj.event;\r
-            console.log(data);\r
-            if (layEvent === 'edit') {\r
-                showAddResModelSub(data);\r
-            } else if (layEvent === 'del') {\r
-                showDelete(data);\r
-            }\r
-        });\r
-        let showAddResModelSub = function (data) {\r
-            let title = '编辑资源';\r
-            admin.putTempData('functionid', $("#functionid").val());\r
-            admin.putTempData('t_data',data);\r
-            admin.popupCenter({\r
-                title: title,\r
-                path: '[[@{/function/loadresadd}]]',\r
-                finish: function () {\r
-                    table.reload('table', {});\r
-                }\r
-            });\r
-        };\r
-        let showDelete = function (data) {\r
-            layer.confirm('确定删除吗?', function (i) {\r
-                layer.close(i);\r
-                layer.load(2);\r
-                let token = $("meta[name='_csrf_token']").attr("value");\r
-                admin.go('[[@{/function/delres}]]', {\r
-                    resid: data.id,\r
-                    _csrf:token\r
-                }, function (data) {\r
-                    console.log(data.code);\r
-                    layer.closeAll('loading');\r
-                    if (data.code == 200) {\r
-                        layer.msg(data.msg, {icon: 1});\r
-                    } else if (data.code == 401) {\r
-                        layer.msg(data.msg, {icon: 2, time: 1500}, function () {\r
-                            location.replace('[[@{/login}]]');\r
-                        }, 1000);\r
-                        return;\r
-                    }\r
-                    else {\r
-                        layer.msg(data.msg, {icon: 2});\r
-                    }\r
-                    table.reload('restable', {});\r
-                },function(ret){\r
-                    console.log(ret);\r
-                    layer.closeAll('loading');\r
-                    layer.msg('请求失败了,请稍后再试', {icon: 2});\r
-                });\r
-            });\r
-        }\r
-    });\r
-</script>\r
+<div style="padding:20px;">
+    <table class="layui-table" id="restable" lay-filter="restable">
+    </table>
+    <input type="hidden" id="functionid" th:value="${function.id}">
+    <input type="hidden" id="functionname" th:value="${function.name}">
+</div>
+<script>
+    layui.use(['form', 'table', 'layer', 'admin', 'element'], function () {
+        let form = layui.form;
+        let admin = layui.admin;
+        form.render('select');
+        let table = layui.table;
+        let func = admin.getTempData('functionid');
+        table.render({
+            elem: '#restable',
+            url: '[[@{/function/reslist}]]?functionid=' + func,
+            cols: [
+                [
+                    {field: 'id', title: '资源ID', width: 80, fixed: 'left', sort: true},
+                    {field: 'name', title: '资源名称', sort: true},
+                    {
+                        field: 'functionId', title: '所属功能', sort: true, align: 'center', templet: function (item) {
+                            return $("#functionname").val();
+                        }
+                    },
+                    {field: 'uri', title: '路径'},
+                    {field: 'code', sort: true, width: 80, title: '代码'},
+                    {
+                        field: 'id', align: 'center', title: '操作',  templet: function (item) {
+                            return '<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>'
+                        }
+                    }
+                ]
+            ]
+        });
+        // 工具条点击事件
+        table.on('tool(restable)', function (obj) {
+            let data = obj.data;
+            let layEvent = obj.event;
+            console.log(data);
+            if (layEvent === 'edit') {
+                showAddResModelSub(data);
+            } else if (layEvent === 'del') {
+                showDelete(data);
+            }
+        });
+        let showAddResModelSub = function (data) {
+            let title = '编辑资源';
+            admin.putTempData('functionid', $("#functionid").val());
+            admin.putTempData('t_data',data);
+            admin.popupCenter({
+                title: title,
+                path: '[[@{/function/loadresadd}]]',
+                finish: function () {
+                    table.reload('table', {});
+                }
+            });
+        };
+        let showDelete = function (data) {
+            layer.confirm('确定删除吗?', function (i) {
+                layer.close(i);
+                layer.load(2);
+                let token = $("meta[name='_csrf_token']").attr("value");
+                admin.go('[[@{/function/delres}]]', {
+                    resid: data.id,
+                    _csrf:token
+                }, function (data) {
+                    console.log(data.code);
+                    layer.closeAll('loading');
+                    if (data.code == 200) {
+                        layer.msg(data.msg, {icon: 1});
+                    } else if (data.code == 401) {
+                        layer.msg(data.msg, {icon: 2, time: 1500}, function () {
+                            location.replace('[[@{/login}]]');
+                        }, 1000);
+                        return;
+                    }
+                    else {
+                        layer.msg(data.msg, {icon: 2});
+                    }
+                    table.reload('restable', {});
+                },function(ret){
+                    console.log(ret);
+                    layer.closeAll('loading');
+                    layer.msg('请求失败了,请稍后再试', {icon: 2});
+                });
+            });
+        }
+    });
+</script>
-<!-- operator表单弹窗 -->\r
-<form id="form" lay-filter="subform" class="layui-form model-form">\r
-    <input name="id" id="id" type="hidden"/>\r
-    <div class="layui-form-item">\r
-        <label class="layui-form-label">功能名称</label>\r
-        <div class="layui-input-block">\r
-            <input name="name" placeholder="请输入功能名称" type="text" class="layui-input" maxlength="20"\r
-                   lay-verify="required|name" required/>\r
-        </div>\r
-    </div>\r
-    <div class="layui-form-item">\r
-        <label class="layui-form-label">路径</label>\r
-        <div class="layui-input-block">\r
-            <input name="menuUrl" placeholder="请输入路径,父节点默认为 # " type="text" class="layui-input" maxlength="60" lay-verify="required" required/>\r
-        </div>\r
-    </div>\r
-    <div class="layui-form-item">\r
-        <label class="layui-form-label">父功能</label>\r
-        <div class="layui-input-block">\r
-            <select name="parentId" id="parentId" lay-verify="required">\r
-                <option th:each="func : ${list}" th:value="${func.id}">[[${func.name}]]</option>\r
-            </select>\r
-        </div>\r
-    </div>\r
-    <div class="layui-form-item">\r
-        <label class="layui-form-label">节点</label>\r
-        <div class="layui-input-block">\r
-            <input type="radio" name="isLeaf" value="1" title="子" checked/>\r
-        </div>\r
-    </div>\r
-    <div class="layui-form-item">\r
-        <label class="layui-form-label">序号</label>\r
-        <div class="layui-input-block">\r
-            <input name="orderNum" placeholder="请输入序号" type="text" class="layui-input" />\r
-        </div>\r
-    </div>\r
-    <div class="layui-form-item">\r
-        <label class="layui-form-label">图标</label>\r
-        <div class="layui-input-block">\r
-            <input name="menuIcon" placeholder="请输入图标 例:layui-icon-xx " type="text" class="layui-input" />\r
-        </div>\r
-    </div>\r
-\r
-    <div class="layui-form-item model-form-footer">\r
-        <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>\r
-        <button class="layui-btn" lay-filter="subform-submit" lay-submit  id="submitbtn">保存</button>\r
-    </div>\r
-</form>\r
-\r
-<script>\r
-    layui.use(['layer', 'admin', 'form', 'formSelects'], function () {\r
-        var layer = layui.layer;\r
-        var admin = layui.admin;\r
-        var form = layui.form;\r
-        form.render('select');\r
-        form.render('radio');\r
-        var url = '[[@{/function/add}]]';\r
-        // 回显user数据\r
-        var func = admin.getTempData('t_func');\r
-        if (func) {\r
-            $('input[name="id"]').attr('readonly', 'readonly');\r
-            form.val('subform', func);\r
-        }\r
-        let parentId = admin.getTempData("parentId");\r
-        if(parentId){\r
-            form.val('subform', {"parentId":parentId});\r
-        }\r
-        // 表单提交事件\r
-        form.on('submit(subform-submit)', function (data) {\r
-            layer.load(2);\r
-            let token = $("meta[name='_csrf_token']").attr("value");\r
-            debugger\r
-            $.ajax({\r
-                type : "POST",\r
-                dataType : "json",\r
-                url : url,\r
-                headers: {\r
-                    'Accept': 'application/json',\r
-                    'Content-Type': 'application/json',\r
-                    'X-CSRF-TOKEN':token,\r
-                },\r
-                data : JSON.stringify(data.field),\r
-                success : function(result) {\r
-                    layer.closeAll('loading');\r
-                    if (result.code == 200) {\r
-                        layer.msg(result.msg, {icon: 1});\r
-                        admin.finishPopupCenter();\r
-                    } else if (result.code == 401) {\r
-                        layer.msg(result.msg, {icon: 2, time: 1500}, function () {\r
-                            location.replace('[[@{/login}]]');\r
-                        }, 1000);\r
-                        return;\r
-                    } else {\r
-                        console.log('err:' + result.code);\r
-                        layer.msg(result.msg, {icon: 2});\r
-                    }\r
-                },\r
-                error : function() {\r
-                    layer.closeAll('loading');\r
-                    layer.msg("请求服务器失败!", {icon: 2});\r
-                }\r
-            });\r
-            return false;\r
-        });\r
-    });\r
+<!-- operator表单弹窗 -->
+<form id="form" lay-filter="subform" class="layui-form model-form">
+    <input name="id" id="id" type="hidden"/>
+    <div class="layui-form-item">
+        <label class="layui-form-label">功能名称</label>
+        <div class="layui-input-block">
+            <input name="name" placeholder="请输入功能名称" type="text" class="layui-input" maxlength="20"
+                   lay-verify="required|name" required/>
+        </div>
+    </div>
+    <div class="layui-form-item">
+        <label class="layui-form-label">路径</label>
+        <div class="layui-input-block">
+            <input name="menuUrl" placeholder="请输入路径,父节点默认为 # " type="text" class="layui-input" maxlength="60" lay-verify="required" required/>
+        </div>
+    </div>
+    <div class="layui-form-item">
+        <label class="layui-form-label">父功能</label>
+        <div class="layui-input-block">
+            <select name="parentId" id="parentId" lay-verify="required">
+                <option th:each="func : ${list}" th:value="${func.id}">[[${func.name}]]</option>
+            </select>
+        </div>
+    </div>
+    <div class="layui-form-item">
+        <label class="layui-form-label">节点</label>
+        <div class="layui-input-block">
+            <input type="radio" name="isLeaf" value="1" title="子" checked/>
+        </div>
+    </div>
+    <div class="layui-form-item">
+        <label class="layui-form-label">序号</label>
+        <div class="layui-input-block">
+            <input name="orderNum" placeholder="请输入序号" type="text" class="layui-input" />
+        </div>
+    </div>
+    <div class="layui-form-item">
+        <label class="layui-form-label">图标</label>
+        <div class="layui-input-block">
+            <input name="menuIcon" placeholder="请输入图标 例:layui-icon-xx " type="text" class="layui-input" />
+        </div>
+    </div>
+
+    <div class="layui-form-item model-form-footer">
+        <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
+        <button class="layui-btn" lay-filter="subform-submit" lay-submit  id="submitbtn">保存</button>
+    </div>
+</form>
+
+<script>
+    layui.use(['layer', 'admin', 'form', 'formSelects'], function () {
+        var layer = layui.layer;
+        var admin = layui.admin;
+        var form = layui.form;
+        form.render('select');
+        form.render('radio');
+        var url = '[[@{/function/add}]]';
+        // 回显user数据
+        var func = admin.getTempData('t_func');
+        if (func) {
+            $('input[name="id"]').attr('readonly', 'readonly');
+            form.val('subform', func);
+        }
+        let parentId = admin.getTempData("parentId");
+        if(parentId){
+            form.val('subform', {"parentId":parentId});
+        }
+        // 表单提交事件
+        form.on('submit(subform-submit)', function (data) {
+            layer.load(2);
+            let token = $("meta[name='_csrf_token']").attr("value");
+            debugger
+            $.ajax({
+                type : "POST",
+                dataType : "json",
+                url : url,
+                headers: {
+                    'Accept': 'application/json',
+                    'Content-Type': 'application/json',
+                    'X-CSRF-TOKEN':token,
+                },
+                data : JSON.stringify(data.field),
+                success : function(result) {
+                    layer.closeAll('loading');
+                    if (result.code == 200) {
+                        layer.msg(result.msg, {icon: 1});
+                        admin.finishPopupCenter();
+                    } else if (result.code == 401) {
+                        layer.msg(result.msg, {icon: 2, time: 1500}, function () {
+                            location.replace('[[@{/login}]]');
+                        }, 1000);
+                        return;
+                    } else {
+                        console.log('err:' + result.code);
+                        layer.msg(result.msg, {icon: 2});
+                    }
+                },
+                error : function() {
+                    layer.closeAll('loading');
+                    layer.msg("请求服务器失败!", {icon: 2});
+                }
+            });
+            return false;
+        });
+    });
 </script>
\ No newline at end of file
@@ -1,73 +1,73 @@
-<!-- operator表单弹窗 -->\r
-<form id="form" lay-filter="form" class="layui-form model-form">\r
-    <input name="roleId" id="roleId" type="hidden"/>\r
-    <div class="layui-form-item">\r
-        <label class="layui-form-label">角色名称</label>\r
-        <div class="layui-input-block">\r
-            <input name="roleName" placeholder="请输入角色名称" type="text" class="layui-input" maxlength="20"\r
-                   lay-verify="required|roleName" required/>\r
-        </div>\r
-    </div>\r
-    <div class="layui-form-item">\r
-        <label class="layui-form-label">角色描述</label>\r
-        <div class="layui-input-block">\r
-            <textarea name="roleDesc" placeholder="请输入描述" class="layui-textarea"></textarea>\r
-        </div>\r
-    </div>\r
-\r
-    <div class="layui-form-item model-form-footer">\r
-        <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>\r
-        <button class="layui-btn" lay-filter="form-submit" lay-submit  id="submitbtn">保存</button>\r
-    </div>\r
-</form>\r
-\r
-<script>\r
-    layui.use(['layer', 'admin', 'form', 'formSelects'], function () {\r
-        var layer = layui.layer;\r
-        var admin = layui.admin;\r
-        var form = layui.form;\r
-        var url = '[[@{/role/add}]]';\r
-        // 回显user数据\r
-        var func = admin.getTempData('t_func');\r
-        if (func) {\r
-            $('input[name="roleId"]').attr('readonly', 'readonly');\r
-            form.val('form', func);\r
-        }\r
-        // 表单提交事件\r
-        form.on('submit(form-submit)', function (data) {\r
-            layer.load(2);\r
-            let token = $("meta[name='_csrf_token']").attr("value");\r
-            $.ajax({\r
-                type : "POST",\r
-                dataType : "json",\r
-                url : url,\r
-                headers: {\r
-                    'Accept': 'application/json',\r
-                    'Content-Type': 'application/json',\r
-                    'X-CSRF-TOKEN':token,\r
-                },\r
-                data : JSON.stringify(data.field),\r
-                success : function(result) {\r
-                    layer.closeAll('loading');\r
-                    if (result.code == 200) {\r
-                        layer.msg(result.msg, {icon: 1});\r
-                        admin.finishPopupCenter();\r
-                    } else if (result.code == 401) {\r
-                        layer.msg(result.msg, {icon: 2, time: 1500}, function () {\r
-                            location.replace('[[@{/login}]]');\r
-                        }, 1000);\r
-                        return;\r
-                    } else {\r
-                        console.log('err:' + result.code);\r
-                        layer.msg(result.msg, {icon: 2});\r
-                    }\r
-                },\r
-                error : function() {\r
-                    layer.closeAll('loading');\r
-                    layer.msg("请求服务器失败!", {icon: 2});\r
-                }\r
-            });\r
-            return false;\r
-        });\r
-    });\r
+<!-- operator表单弹窗 -->
+<form id="form" lay-filter="form" class="layui-form model-form">
+    <input name="roleId" id="roleId" type="hidden"/>
+    <div class="layui-form-item">
+        <label class="layui-form-label">角色名称</label>
+        <div class="layui-input-block">
+            <input name="roleName" placeholder="请输入角色名称" type="text" class="layui-input" maxlength="20"
+                   lay-verify="required|roleName" required/>
+        </div>
+    </div>
+    <div class="layui-form-item">
+        <label class="layui-form-label">角色描述</label>
+        <div class="layui-input-block">
+            <textarea name="roleDesc" placeholder="请输入描述" class="layui-textarea"></textarea>
+        </div>
+    </div>
+
+    <div class="layui-form-item model-form-footer">
+        <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
+        <button class="layui-btn" lay-filter="form-submit" lay-submit  id="submitbtn">保存</button>
+    </div>
+</form>
+
+<script>
+    layui.use(['layer', 'admin', 'form', 'formSelects'], function () {
+        var layer = layui.layer;
+        var admin = layui.admin;
+        var form = layui.form;
+        var url = '[[@{/role/add}]]';
+        // 回显user数据
+        var func = admin.getTempData('t_func');
+        if (func) {
+            $('input[name="roleId"]').attr('readonly', 'readonly');
+            form.val('form', func);
+        }
+        // 表单提交事件
+        form.on('submit(form-submit)', function (data) {
+            layer.load(2);
+            let token = $("meta[name='_csrf_token']").attr("value");
+            $.ajax({
+                type : "POST",
+                dataType : "json",
+                url : url,
+                headers: {
+                    'Accept': 'application/json',
+                    'Content-Type': 'application/json',
+                    'X-CSRF-TOKEN':token,
+                },
+                data : JSON.stringify(data.field),
+                success : function(result) {
+                    layer.closeAll('loading');
+                    if (result.code == 200) {
+                        layer.msg(result.msg, {icon: 1});
+                        admin.finishPopupCenter();
+                    } else if (result.code == 401) {
+                        layer.msg(result.msg, {icon: 2, time: 1500}, function () {
+                            location.replace('[[@{/login}]]');
+                        }, 1000);
+                        return;
+                    } else {
+                        console.log('err:' + result.code);
+                        layer.msg(result.msg, {icon: 2});
+                    }
+                },
+                error : function() {
+                    layer.closeAll('loading');
+                    layer.msg("请求服务器失败!", {icon: 2});
+                }
+            });
+            return false;
+        });
+    });
 </script>
\ No newline at end of file
@@ -1,89 +1,89 @@
-<div style="padding: 0 20px">\r
-    <div class="layui-form-item" style="max-height: 490px;overflow: auto;">\r
-        <ul id="funclist" class="ztree"></ul>\r
-    </div>\r
-    <div class="layui-form-item model-form-footer">\r
-        <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>\r
-        <button class="layui-btn" lay-filter="form-submit" id="submitbtn">保存</button>\r
-    </div>\r
-</div>\r
-<script>\r
-    layui.use(['layer', 'admin', 'form', 'formSelects'], function () {\r
-        var layer = layui.layer;\r
-        var admin = layui.admin;\r
-        var form = layui.form;\r
-        var func = admin.getTempData('roleId');\r
-        let initTree = function (nodes) {\r
-            let menuSetting = {\r
-                view: {\r
-                    dblClickExpand: true,\r
-                    showLine: true,\r
-                    showIcon: false\r
-                },\r
-                check: {\r
-                    enable: true,\r
-                },\r
-                data: {\r
-                    simpleData: {\r
-                        enable: true\r
-                    }\r
-                }\r
-            };\r
-            $.fn.zTree.init($("#funclist"), menuSetting, nodes);\r
-        }\r
-        admin.dgo('[[@{/role/func}]]', {\r
-            roleId: func,\r
-        }, function (data) {\r
-            layer.closeAll('loading');\r
-            if (data.code == 200) {\r
-                initTree(data.node);\r
-            } else if (data.code == 401) {\r
-                layer.msg(data.msg, {icon: 2, time: 1500}, function () {\r
-                    location.replace('[[@{/login}]]');\r
-                }, 1000);\r
-                return;\r
-            } else {\r
-                layer.msg(data.msg, {icon: 2});\r
-            }\r
-        }, function (ret) {\r
-            layer.closeAll('loading');\r
-            layer.msg('请求失败了,请稍后再试', {icon: 2});\r
-        });\r
-        $("#submitbtn").on('click', function (e) {\r
-            let ids = [];\r
-            let treeObj = $.fn.zTree.getZTreeObj("funclist");\r
-            let nodes = treeObj.getCheckedNodes(true);\r
-            for (let i = 0; i < nodes.length; i++) {\r
-\r
-                ids.push(nodes[i].id);//存功能ID\r
-            }\r
-            if (ids.length < 1) {\r
-                return;\r
-            }\r
-            let idStr = ids.toString();\r
-            let token = $("meta[name='_csrf_token']").attr("value");\r
-            admin.go('[[@{/role/addfunc}]]', {\r
-                roleId: func,\r
-                funcs: idStr,\r
-                _csrf: token,\r
-            }, function (data) {\r
-                layer.closeAll('loading');\r
-                if (data.code == 200) {\r
-                    layer.msg(data.msg, {icon: 1});\r
-                    admin.finishPopupCenter();\r
-                } else if (data.code == 401) {\r
-                    layer.msg(data.msg, {icon: 2, time: 1500}, function () {\r
-                        location.replace('[[@{/login}]]');\r
-                    }, 1000);\r
-                    return;\r
-                } else {\r
-                    layer.msg(data.msg, {icon: 2});\r
-                }\r
-            }, function (ret) {\r
-                console.log(ret);\r
-                layer.closeAll('loading');\r
-                layer.msg('请求失败了,请稍后再试', {icon: 2});\r
-            });\r
-        })\r
-    });\r
+<div style="padding: 0 20px">
+    <div class="layui-form-item" style="max-height: 490px;overflow: auto;">
+        <ul id="funclist" class="ztree"></ul>
+    </div>
+    <div class="layui-form-item model-form-footer">
+        <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
+        <button class="layui-btn" lay-filter="form-submit" id="submitbtn">保存</button>
+    </div>
+</div>
+<script>
+    layui.use(['layer', 'admin', 'form', 'formSelects'], function () {
+        var layer = layui.layer;
+        var admin = layui.admin;
+        var form = layui.form;
+        var func = admin.getTempData('roleId');
+        let initTree = function (nodes) {
+            let menuSetting = {
+                view: {
+                    dblClickExpand: true,
+                    showLine: true,
+                    showIcon: false
+                },
+                check: {
+                    enable: true,
+                },
+                data: {
+                    simpleData: {
+                        enable: true
+                    }
+                }
+            };
+            $.fn.zTree.init($("#funclist"), menuSetting, nodes);
+        }
+        admin.dgo('[[@{/role/func}]]', {
+            roleId: func,
+        }, function (data) {
+            layer.closeAll('loading');
+            if (data.code == 200) {
+                initTree(data.node);
+            } else if (data.code == 401) {
+                layer.msg(data.msg, {icon: 2, time: 1500}, function () {
+                    location.replace('[[@{/login}]]');
+                }, 1000);
+                return;
+            } else {
+                layer.msg(data.msg, {icon: 2});
+            }
+        }, function (ret) {
+            layer.closeAll('loading');
+            layer.msg('请求失败了,请稍后再试', {icon: 2});
+        });
+        $("#submitbtn").on('click', function (e) {
+            let ids = [];
+            let treeObj = $.fn.zTree.getZTreeObj("funclist");
+            let nodes = treeObj.getCheckedNodes(true);
+            for (let i = 0; i < nodes.length; i++) {
+
+                ids.push(nodes[i].id);//存功能ID
+            }
+            if (ids.length < 1) {
+                return;
+            }
+            let idStr = ids.toString();
+            let token = $("meta[name='_csrf_token']").attr("value");
+            admin.go('[[@{/role/addfunc}]]', {
+                roleId: func,
+                funcs: idStr,
+                _csrf: token,
+            }, function (data) {
+                layer.closeAll('loading');
+                if (data.code == 200) {
+                    layer.msg(data.msg, {icon: 1});
+                    admin.finishPopupCenter();
+                } else if (data.code == 401) {
+                    layer.msg(data.msg, {icon: 2, time: 1500}, function () {
+                        location.replace('[[@{/login}]]');
+                    }, 1000);
+                    return;
+                } else {
+                    layer.msg(data.msg, {icon: 2});
+                }
+            }, function (ret) {
+                console.log(ret);
+                layer.closeAll('loading');
+                layer.msg('请求失败了,请稍后再试', {icon: 2});
+            });
+        })
+    });
 </script>
\ No newline at end of file
-<!-- operator表单弹窗 -->\r
-<form id="user-form" lay-filter="user-form" class="layui-form model-form">\r
-    <input name="userid" id="userid" type="hidden"/>\r
-    <div class="layui-form-item">\r
-        <label class="layui-form-label">姓名*</label>\r
-        <div class="layui-input-block">\r
-            <input name="name" placeholder="请输入名称" type="text" class="layui-input" maxlength="100"\r
-                   lay-verify="required" required/>\r
-        </div>\r
-    </div>\r
-    <div class="layui-form-item">\r
-        <label class="layui-form-label">性别</label>\r
-        <div class="layui-input-block">\r
-            <input type="radio" name="sex" value="male" title="男" checked/>\r
-            <input type="radio" name="sex" value="female" title="女"/>\r
-        </div>\r
-    </div>\r
-    <div class="layui-form-item">\r
-        <label class="layui-form-label">证件类型*</label>\r
-        <div class="layui-input-block">\r
-            <select name="idtype" id="idtype" lay-verify="required">\r
-                <option th:each="bean : ${idtypeList}" th:value="${bean.dictval}">[[${bean.dictcaption}]]</option>\r
-            </select>\r
-        </div>\r
-    </div>\r
-    <div class="layui-form-item">\r
-        <label class="layui-form-label">证件号*</label>\r
-        <div class="layui-input-block">\r
-            <input name="idno" placeholder="请输入证件号" type="text" class="layui-input" maxlength="100"\r
-                   lay-verify="required" required/>\r
-        </div>\r
-    </div>\r
-\r
-    <div class="layui-form-item">\r
-        <label class="layui-form-label">手机号*</label>\r
-        <div class="layui-input-block">\r
-            <input name="mobile" placeholder="请输入手机号" type="text" class="layui-input" maxlength="11"\r
-                   lay-verify="required" required/>\r
-        </div>\r
-    </div>\r
-    <div class="layui-form-item">\r
-        <label class="layui-form-label">邮箱</label>\r
-        <div class="layui-input-block">\r
-            <input name="email" placeholder="请输入邮箱" type="text" class="layui-input" maxlength="100" />\r
-        </div>\r
-    </div>\r
-    <div class="layui-form-item">\r
-        <label class="layui-form-label">地址</label>\r
-        <div class="layui-input-block">\r
-            <input name="addr" placeholder="请输入地址" type="text" class="layui-input" maxlength="300" />\r
-        </div>\r
-    </div>\r
-\r
-    <div class="layui-form-item model-form-footer">\r
-        <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>\r
-        <button class="layui-btn" lay-filter="user-form-submit" lay-submit  id="submitbtn">保存</button>\r
-    </div>\r
-</form>\r
-\r
-<script>\r
-    layui.use(['layer', 'admin', 'form', 'formSelects'], function () {\r
-        var layer = layui.layer;\r
-        var admin = layui.admin;\r
-        var form = layui.form;\r
-        var url = '[[@{/user/add}]]';\r
-        form.render('radio');\r
-        form.render('select');\r
-        // 回显user数据\r
-        var bean = admin.getTempData('t_bean');\r
-        if (bean) {\r
-            form.val('user-form', bean);\r
-        }\r
-        // 表单提交事件\r
-        form.on('submit(user-form-submit)', function (data) {\r
-            layer.load(2);\r
-            let token = $("meta[name='_csrf_token']").attr("value");\r
-            $.ajax({\r
-                type : "POST",\r
-                dataType : "json",\r
-                url : url,\r
-                headers: {\r
-                    'Accept': 'application/json',\r
-                    'Content-Type': 'application/json',\r
-                    'X-CSRF-TOKEN':token,\r
-                },\r
-                data : JSON.stringify(data.field),\r
-                success : function(result) {\r
-                    layer.closeAll('loading');\r
-                    if (result.code == 200) {\r
-                        layer.msg(result.msg, {icon: 1});\r
-                        admin.finishPopupCenter();\r
-                    } else if (result.code == 401) {\r
-                        layer.msg(result.msg, {icon: 2, time: 1500}, function () {\r
-                            location.replace('[[@{/login}]]');\r
-                        }, 1000);\r
-                        return;\r
-                    } else {\r
-                        console.log('err:' + result.code);\r
-                        layer.msg(result.msg, {icon: 2});\r
-                    }\r
-                },\r
-                error : function() {\r
-                    layer.closeAll('loading');\r
-                    layer.msg("请求服务器失败!", {icon: 2});\r
-                }\r
-            });\r
-            return false;\r
-        });\r
-    });\r
+<!-- operator表单弹窗 -->
+<form id="user-form" lay-filter="user-form" class="layui-form model-form">
+    <input name="userid" id="userid" type="hidden"/>
+    <div class="layui-form-item">
+        <label class="layui-form-label">姓名*</label>
+        <div class="layui-input-block">
+            <input name="name" placeholder="请输入名称" type="text" class="layui-input" maxlength="100"
+                   lay-verify="required" required/>
+        </div>
+    </div>
+    <div class="layui-form-item">
+        <label class="layui-form-label">性别</label>
+        <div class="layui-input-block">
+            <input type="radio" name="sex" value="male" title="男" checked/>
+            <input type="radio" name="sex" value="female" title="女"/>
+        </div>
+    </div>
+    <div class="layui-form-item">
+        <label class="layui-form-label">证件类型*</label>
+        <div class="layui-input-block">
+            <select name="idtype" id="idtype" lay-verify="required">
+                <option th:each="bean : ${idtypeList}" th:value="${bean.dictval}">[[${bean.dictcaption}]]</option>
+            </select>
+        </div>
+    </div>
+    <div class="layui-form-item">
+        <label class="layui-form-label">证件号*</label>
+        <div class="layui-input-block">
+            <input name="idno" placeholder="请输入证件号" type="text" class="layui-input" maxlength="100"
+                   lay-verify="required" required/>
+        </div>
+    </div>
+
+    <div class="layui-form-item">
+        <label class="layui-form-label">手机号*</label>
+        <div class="layui-input-block">
+            <input name="mobile" placeholder="请输入手机号" type="text" class="layui-input" maxlength="11"
+                   lay-verify="required" required/>
+        </div>
+    </div>
+    <div class="layui-form-item">
+        <label class="layui-form-label">邮箱</label>
+        <div class="layui-input-block">
+            <input name="email" placeholder="请输入邮箱" type="text" class="layui-input" maxlength="100" />
+        </div>
+    </div>
+    <div class="layui-form-item">
+        <label class="layui-form-label">地址</label>
+        <div class="layui-input-block">
+            <input name="addr" placeholder="请输入地址" type="text" class="layui-input" maxlength="300" />
+        </div>
+    </div>
+
+    <div class="layui-form-item model-form-footer">
+        <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
+        <button class="layui-btn" lay-filter="user-form-submit" lay-submit  id="submitbtn">保存</button>
+    </div>
+</form>
+
+<script>
+    layui.use(['layer', 'admin', 'form', 'formSelects'], function () {
+        var layer = layui.layer;
+        var admin = layui.admin;
+        var form = layui.form;
+        var url = '[[@{/user/add}]]';
+        form.render('radio');
+        form.render('select');
+        // 回显user数据
+        var bean = admin.getTempData('t_bean');
+        if (bean) {
+            form.val('user-form', bean);
+        }
+        // 表单提交事件
+        form.on('submit(user-form-submit)', function (data) {
+            layer.load(2);
+            let token = $("meta[name='_csrf_token']").attr("value");
+            $.ajax({
+                type : "POST",
+                dataType : "json",
+                url : url,
+                headers: {
+                    'Accept': 'application/json',
+                    'Content-Type': 'application/json',
+                    'X-CSRF-TOKEN':token,
+                },
+                data : JSON.stringify(data.field),
+                success : function(result) {
+                    layer.closeAll('loading');
+                    if (result.code == 200) {
+                        layer.msg(result.msg, {icon: 1});
+                        admin.finishPopupCenter();
+                    } else if (result.code == 401) {
+                        layer.msg(result.msg, {icon: 2, time: 1500}, function () {
+                            location.replace('[[@{/login}]]');
+                        }, 1000);
+                        return;
+                    } else {
+                        console.log('err:' + result.code);
+                        layer.msg(result.msg, {icon: 2});
+                    }
+                },
+                error : function() {
+                    layer.closeAll('loading');
+                    layer.msg("请求服务器失败!", {icon: 2});
+                }
+            });
+            return false;
+        });
+    });
 </script>
\ No newline at end of file
@@ -1,76 +1,76 @@
-<div style="padding:20px;">\r
-    <table class="layui-table" id="userbindtable" lay-filter="userbindtable">\r
-    </table>\r
-    <input type="hidden" id="userid" th:value="${userid}">\r
-</div>\r
-<script>\r
-    layui.use(['form', 'table', 'layer', 'admin', 'element'], function () {\r
-        let form = layui.form;\r
-        let admin = layui.admin;\r
-        form.render('select');\r
-        let table = layui.table;\r
-        let userid = admin.getTempData('userid');\r
-        table.render({\r
-            elem: '#userbindtable',\r
-            url: '[[@{/user/bind}]]?userid=' + userid,\r
-            cols: [\r
-                [\r
-                    {field: 'id', title: '资源ID', width: 80, fixed: 'left', sort: true},\r
-                    {field: 'name', title: '资源名称', sort: true},\r
-                    {\r
-                        field: 'functionId', title: '所属功能', sort: true, align: 'center', templet: function (item) {\r
-                            return $("#functionname").val();\r
-                        }\r
-                    },\r
-                    {field: 'uri', title: '路径'},\r
-                    {field: 'code', sort: true, width: 80, title: '代码'},\r
-                    {\r
-                        field: 'id', align: 'center', title: '操作',  templet: function (item) {\r
-                            return '<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>'\r
-                        }\r
-                    }\r
-                ]\r
-            ]\r
-        });\r
-        // 工具条点击事件\r
-        table.on('tool(userbindtable)', function (obj) {\r
-            let data = obj.data;\r
-            let layEvent = obj.event;\r
-            console.log(data);\r
-            if (layEvent === 'del') {\r
-                showDelete(data);\r
-            }\r
-        });\r
-\r
-        let showDelete = function (data) {\r
-            layer.confirm('确定删除吗?', function (i) {\r
-                layer.close(i);\r
-                layer.load(2);\r
-                let token = $("meta[name='_csrf_token']").attr("value");\r
-                admin.go('[[@{/user/delbind}]]', {\r
-                    resid: data.id,\r
-                    _csrf:token\r
-                }, function (data) {\r
-                    console.log(data.code);\r
-                    layer.closeAll('loading');\r
-                    if (data.code == 200) {\r
-                        layer.msg(data.msg, {icon: 1});\r
-                    } else if (data.code == 401) {\r
-                        layer.msg(data.msg, {icon: 2, time: 1500}, function () {\r
-                            location.replace('[[@{/login}]]');\r
-                        }, 1000);\r
-                        return;\r
-                    }\r
-                    else {\r
-                        layer.msg(data.msg, {icon: 2});\r
-                    }\r
-                    table.reload('restable', {});\r
-                },function(ret){\r
-                    console.log(ret);\r
-                    layer.closeAll('loading');\r
-                    layer.msg('请求失败了,请稍后再试', {icon: 2});\r
-                });\r
-            });\r
-        }\r
-    });\r
-</script>\r
+<div style="padding:20px;">
+    <table class="layui-table" id="userbindtable" lay-filter="userbindtable">
+    </table>
+    <input type="hidden" id="userid" th:value="${userid}">
+</div>
+<script>
+    layui.use(['form', 'table', 'layer', 'admin', 'element'], function () {
+        let form = layui.form;
+        let admin = layui.admin;
+        form.render('select');
+        let table = layui.table;
+        let userid = admin.getTempData('userid');
+        table.render({
+            elem: '#userbindtable',
+            url: '[[@{/user/bind}]]?userid=' + userid,
+            cols: [
+                [
+                    {field: 'id', title: '资源ID', width: 80, fixed: 'left', sort: true},
+                    {field: 'name', title: '资源名称', sort: true},
+                    {
+                        field: 'functionId', title: '所属功能', sort: true, align: 'center', templet: function (item) {
+                            return $("#functionname").val();
+                        }
+                    },
+                    {field: 'uri', title: '路径'},
+                    {field: 'code', sort: true, width: 80, title: '代码'},
+                    {
+                        field: 'id', align: 'center', title: '操作',  templet: function (item) {
+                            return '<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>'
+                        }
+                    }
+                ]
+            ]
+        });
+        // 工具条点击事件
+        table.on('tool(userbindtable)', function (obj) {
+            let data = obj.data;
+            let layEvent = obj.event;
+            console.log(data);
+            if (layEvent === 'del') {
+                showDelete(data);
+            }
+        });
+
+        let showDelete = function (data) {
+            layer.confirm('确定删除吗?', function (i) {
+                layer.close(i);
+                layer.load(2);
+                let token = $("meta[name='_csrf_token']").attr("value");
+                admin.go('[[@{/user/delbind}]]', {
+                    resid: data.id,
+                    _csrf:token
+                }, function (data) {
+                    console.log(data.code);
+                    layer.closeAll('loading');
+                    if (data.code == 200) {
+                        layer.msg(data.msg, {icon: 1});
+                    } else if (data.code == 401) {
+                        layer.msg(data.msg, {icon: 2, time: 1500}, function () {
+                            location.replace('[[@{/login}]]');
+                        }, 1000);
+                        return;
+                    }
+                    else {
+                        layer.msg(data.msg, {icon: 2});
+                    }
+                    table.reload('restable', {});
+                },function(ret){
+                    console.log(ret);
+                    layer.closeAll('loading');
+                    layer.msg('请求失败了,请稍后再试', {icon: 2});
+                });
+            });
+        }
+    });
+</script>
index 60cb130..4a2e583 100644 (file)
@@ -1,2 +1,2 @@
 rootProject.name = 'payapi'
-include 'payapi-sdk', 'common'
+include 'payapi', 'payapi-sdk', 'common'