├── .gitignore ├── LICENSE ├── README.md ├── doc └── images │ ├── yeee-memo-qq.jpg │ ├── yeee_wp.jpg │ └── yeee_wx.jpg ├── learn-example ├── algorithm │ ├── coding │ │ ├── CMakeLists.txt │ │ ├── DataStructureExample │ │ │ ├── LinkedList │ │ │ │ ├── problem-1.cpp │ │ │ │ ├── problem-2.cpp │ │ │ │ ├── problem-3.cpp │ │ │ │ ├── problem-4.cpp │ │ │ │ ├── problem-5.cpp │ │ │ │ └── problem-6.cpp │ │ │ ├── Queue │ │ │ │ └── problem-1.cpp │ │ │ └── Statck │ │ │ │ ├── problem-1.cpp │ │ │ │ └── problem-2.cpp │ │ ├── GreedyExample │ │ │ ├── day0619-3.cpp │ │ │ ├── problem-1.cpp │ │ │ ├── problem-2.cpp │ │ │ ├── problem-3.cpp │ │ │ ├── problem-4.cpp │ │ │ ├── problem-5.cpp │ │ │ ├── problem-6.cpp │ │ │ ├── problem-7.cpp │ │ │ ├── problem-8.cpp │ │ │ └── problem-9.cpp │ │ ├── HashExample │ │ │ ├── A1025.cpp │ │ │ ├── day0611-1.cpp │ │ │ ├── day0611-2.cpp │ │ │ ├── day0614-1.cpp │ │ │ └── day0614-2.cpp │ │ ├── MathProblemExample │ │ │ ├── BigNumber │ │ │ │ ├── problem-1.cpp │ │ │ │ ├── problem-2.cpp │ │ │ │ ├── problem-3.cpp │ │ │ │ ├── problem-4.cpp │ │ │ │ ├── problem-5.cpp │ │ │ │ └── problem-6.cpp │ │ │ ├── CombinatorialNumber │ │ │ │ ├── problem-1.cpp │ │ │ │ └── problem-2.cpp │ │ │ ├── CommonMultipleProblem │ │ │ │ └── problem-1.cpp │ │ │ ├── ExtendedEuclidAlgorithm │ │ │ │ └── problem-1.cpp │ │ │ ├── FractionalOperationProblem │ │ │ │ └── problem-1.cpp │ │ │ ├── PrimeFactorization │ │ │ │ ├── problem-1.cpp │ │ │ │ ├── problem-2.cpp │ │ │ │ ├── problem-3.cpp │ │ │ │ ├── problem-4.cpp │ │ │ │ └── problem-5.cpp │ │ │ ├── PrimeNumberProblem │ │ │ │ ├── problem-1.cpp │ │ │ │ ├── problem-2.cpp │ │ │ │ └── problem-3.cpp │ │ │ └── SimpleMathProblem │ │ │ │ ├── problem-1.cpp │ │ │ │ ├── problem-10.cpp │ │ │ │ ├── problem-11.cpp │ │ │ │ ├── problem-12.cpp │ │ │ │ ├── problem-13.cpp │ │ │ │ ├── problem-14.cpp │ │ │ │ ├── problem-2.cpp │ │ │ │ ├── problem-3.cpp │ │ │ │ ├── problem-4.cpp │ │ │ │ ├── problem-5.cpp │ │ │ │ ├── problem-6.cpp │ │ │ │ ├── problem-7.cpp │ │ │ │ ├── problem-8.cpp │ │ │ │ └── problem-9.cpp │ │ ├── OtherExample │ │ │ └── problem-1.cpp │ │ ├── PAT │ │ │ ├── 1001.cpp │ │ │ ├── 1002.cpp │ │ │ ├── 1003.cpp │ │ │ ├── 1004.cpp │ │ │ ├── 1005.cpp │ │ │ ├── 1006.cpp │ │ │ ├── 1007.cpp │ │ │ ├── 1020.cpp │ │ │ ├── 1032.cpp │ │ │ ├── 1036.cpp │ │ │ ├── 1043.cpp │ │ │ ├── 1052.cpp │ │ │ ├── 1053.cpp │ │ │ ├── 1076.cpp │ │ │ ├── 1143.cpp │ │ │ ├── 1146.cpp │ │ │ └── 1147.cpp │ │ ├── RecursionExample │ │ │ ├── day0618-1.cpp │ │ │ ├── day0619-1.cpp │ │ │ ├── day0619-2.cpp │ │ │ ├── day0619-4.cpp │ │ │ ├── day0718-1.cpp │ │ │ ├── day0718-2.cpp │ │ │ └── day0720-1.cpp │ │ ├── STLApplyExample │ │ │ ├── Algorithm │ │ │ │ ├── problem-1.cpp │ │ │ │ ├── problem-2.cpp │ │ │ │ └── problem-3.cpp │ │ │ ├── Map │ │ │ │ └── problem-1.cpp │ │ │ ├── Pair │ │ │ │ └── problem-1.cpp │ │ │ ├── PriorityQueue │ │ │ │ └── problem-1.cpp │ │ │ ├── Queue │ │ │ │ └── problem-1.cpp │ │ │ ├── Set │ │ │ │ └── problem-1.cpp │ │ │ ├── Stack │ │ │ │ ├── problem-1.cpp │ │ │ │ └── problem-2.cpp │ │ │ ├── String │ │ │ │ └── problem-1.cpp │ │ │ └── Vector │ │ │ │ ├── problem-2.cpp │ │ │ │ └── problem.cpp │ │ ├── SortExample │ │ │ ├── day0614-3.cpp │ │ │ ├── day0614-4.cpp │ │ │ ├── day0615-1.cpp │ │ │ ├── day0615-2.cpp │ │ │ ├── day0615-3.cpp │ │ │ ├── day0615-4.cpp │ │ │ ├── day0615-5.cpp │ │ │ └── day0615-6.cpp │ │ ├── TwoPointSearchExample │ │ │ ├── problem-1.cpp │ │ │ ├── problem-2.cpp │ │ │ ├── problem-3.cpp │ │ │ └── problem-4.cpp │ │ ├── TwoPointersExample │ │ │ ├── problem-1.cpp │ │ │ ├── problem-2.cpp │ │ │ ├── problem-3.cpp │ │ │ └── problem-4.cpp │ │ ├── blankfile │ │ ├── helloword.cpp │ │ ├── program201903 │ │ │ ├── 1001.cpp │ │ │ ├── 1002.cpp │ │ │ ├── 1003.cpp │ │ │ └── 1004.cpp │ │ ├── tempCopy │ │ ├── 动态规划 │ │ │ ├── 数塔问题.cpp │ │ │ ├── 最大连续子序列和.cpp │ │ │ └── 最长不下降子序列(LIS).cpp │ │ ├── 图 │ │ │ ├── 关键路径 │ │ │ │ ├── AOV&AOE.cpp │ │ │ │ ├── 关键路径.cpp │ │ │ │ └── 最长路径.cpp │ │ │ ├── 图的遍历 │ │ │ │ └── DFS&BFS.cpp │ │ │ ├── 拓扑排序 │ │ │ │ ├── DAG.cpp │ │ │ │ └── topoSort.cpp │ │ │ ├── 最小生成树 │ │ │ │ ├── kruskal.cpp │ │ │ │ └── prim.cpp │ │ │ └── 最短路径 │ │ │ │ ├── Bellman-Ford.cpp │ │ │ │ ├── Dijkstra.cpp │ │ │ │ ├── Floyd.cpp │ │ │ │ └── SPFA.cpp │ │ ├── 搜索专题 │ │ │ ├── BFS │ │ │ │ └── 1.cpp │ │ │ └── DFS │ │ │ │ └── 1.cpp │ │ ├── 数学问题 │ │ │ └── 大整数运算.cpp │ │ ├── 数据结构 │ │ │ ├── 栈 │ │ │ │ └── 计算器.cpp │ │ │ ├── 链表 │ │ │ │ └── 增删改查.cpp │ │ │ └── 静态实现 │ │ │ │ └── 1.cpp │ │ └── 树 │ │ │ ├── 二叉查找树 │ │ │ └── basicOpera.cpp │ │ │ ├── 二叉树的遍历 │ │ │ ├── Traversal.cpp │ │ │ └── 二叉树的静态实现 │ │ │ │ └── 1.cpp │ │ │ ├── 哈夫曼树 │ │ │ └── 1.cpp │ │ │ ├── 堆 │ │ │ └── basicOpera.cpp │ │ │ ├── 平衡二叉树 │ │ │ └── basicOpera.cpp │ │ │ ├── 并查集 │ │ │ ├── 1.cpp │ │ │ └── basicOpera.cpp │ │ │ └── 树的遍历 │ │ │ └── 1.cpp │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── vip │ │ └── yeee │ │ └── memo │ │ └── demo │ │ └── algorithm │ │ ├── AlgorithmApplication.java │ │ └── loadbalance │ │ └── weight │ │ └── WeightRandomExample.java ├── design-pattern │ ├── README.md │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── vip │ │ │ └── yeee │ │ │ └── memo │ │ │ └── demo │ │ │ └── design │ │ │ ├── DesignPatternApplication.java │ │ │ ├── pattern │ │ │ ├── behavior │ │ │ │ ├── ObserverPattern.java │ │ │ │ └── StrategyPattern.java │ │ │ └── create │ │ │ │ ├── BuilderPattern.java │ │ │ │ ├── PrototypePattern.java │ │ │ │ ├── SingletonPattern.java │ │ │ │ └── factory │ │ │ │ ├── AbstractFactoryPattern.java │ │ │ │ ├── FactoryMethodPattern.java │ │ │ │ └── SimpleFactoryPattern.java │ │ │ └── practice │ │ │ └── statics │ │ │ ├── ad │ │ │ ├── AbstractAdStaticHandler.java │ │ │ ├── AdAdvertStaticHandler.java │ │ │ ├── AdDefaultStaticHandler.java │ │ │ ├── AdLaunchStaticHandler.java │ │ │ └── AdSpaceStaticHandler.java │ │ │ ├── base │ │ │ ├── AbstractStaticHandler.java │ │ │ ├── StaticContext.java │ │ │ └── StaticHandler.java │ │ │ ├── temp │ │ │ └── TempService.java │ │ │ └── vo │ │ │ ├── RLock.java │ │ │ ├── StaticAdVo.java │ │ │ ├── StaticBo.java │ │ │ ├── StaticDataVo.java │ │ │ ├── StaticException.java │ │ │ └── TCmsSite.java │ │ └── test │ │ └── java │ │ └── vip │ │ └── yeee │ │ └── memo │ │ └── demo │ │ └── design │ │ └── pattern │ │ ├── behavior │ │ ├── ObserverPatternTests.java │ │ └── StrategyPatternTests.java │ │ └── create │ │ ├── BuilderPatternTests.java │ │ ├── PrototypePatternTests.java │ │ ├── SingletonPatternTests.java │ │ └── factory │ │ └── FactoryPatternTests.java ├── jdk-example │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── vip │ │ └── yeee │ │ └── memo │ │ └── demo │ │ └── jdk │ │ └── base │ │ ├── atomic │ │ └── AtomicTest.java │ │ ├── basicType │ │ └── Base8DataType.java │ │ ├── collection │ │ └── ForEachTest.java │ │ ├── execSort │ │ └── TestClassExecSort.java │ │ ├── io │ │ ├── nio │ │ │ ├── aio │ │ │ │ ├── file │ │ │ │ │ └── FileAsyncChannelExample.java │ │ │ │ └── net │ │ │ │ │ ├── HeartbeatClient.java │ │ │ │ │ └── HeartbeatServer.java │ │ │ ├── file │ │ │ │ └── FileChannelExample.java │ │ │ ├── net │ │ │ │ ├── HeartbeatClient.java │ │ │ │ └── HeartbeatServer.java │ │ │ └── pipe │ │ │ │ └── TestPipe.java │ │ └── oio │ │ │ ├── file │ │ │ └── FileStreamExample.java │ │ │ └── net │ │ │ ├── HeartbeatClient.java │ │ │ └── HeartbeatServer.java │ │ ├── jvm │ │ └── JvmRunDetailExample.java │ │ ├── locks │ │ ├── CyclicBarrierTest.java │ │ ├── ReadWriteLockTest.java │ │ └── SemaphoreTest.java │ │ ├── problem │ │ ├── CpuOverTest.java │ │ ├── DeadLockTest.java │ │ ├── HashMapResizeExample.java │ │ └── OutOfMemoryTest.java │ │ ├── proxy │ │ ├── CglibDynamicProxyTest.java │ │ └── JdkDynamicProxyTest.java │ │ ├── stream │ │ └── StreamExample.java │ │ └── threadPool │ │ ├── CompletableFutureTest.java │ │ └── ThreadPoolTest.java ├── pom.xml ├── some-note │ ├── md │ │ ├── crowdfunding.md │ │ └── yeeee_crowdfunding.md │ ├── pom.xml │ └── 谷歌浏览器跨域.txt ├── spring-boot-example │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── vip │ │ │ │ └── yeee │ │ │ │ └── memo │ │ │ │ └── demo │ │ │ │ └── springboot │ │ │ │ ├── SpringbootExampleApplication.java │ │ │ │ ├── config │ │ │ │ ├── MysqlMyBatisConfig.java │ │ │ │ └── SqlServerMyBatisConfig.java │ │ │ │ ├── domain │ │ │ │ ├── mysql │ │ │ │ │ ├── entity │ │ │ │ │ │ ├── SysUser.java │ │ │ │ │ │ └── TempTest1.java │ │ │ │ │ └── mapper │ │ │ │ │ │ ├── SysUserMapper.java │ │ │ │ │ │ └── TempTest1Mapper.java │ │ │ │ └── sqlserver │ │ │ │ │ ├── entity │ │ │ │ │ └── SqlServerTestA.java │ │ │ │ │ └── mapper │ │ │ │ │ └── SqlServerTestAMapper.java │ │ │ │ ├── extpoint │ │ │ │ ├── Ext01ApplicationContextInitializer.java │ │ │ │ ├── Ext02BeanDefinitionRegistryPostProcessor.java │ │ │ │ ├── Ext03BeanFactoryPostProcessor.java │ │ │ │ ├── Ext04BeanPostProcessor.java │ │ │ │ ├── Ext05InstantiationAwareBeanPostProcessor.java │ │ │ │ ├── Ext06SmartInstantiationAwareBeanPostProcessor.java │ │ │ │ ├── Ext07ApplicationContextAwareProcessor.java │ │ │ │ ├── Ext08AnnoPostConstruct.java │ │ │ │ ├── Ext09InitializingBean.java │ │ │ │ ├── Ext10SmartInitializingSingleton.java │ │ │ │ ├── Ext11FactoryBean.java │ │ │ │ ├── Ext12Runner.java │ │ │ │ ├── Ext13DisposableBean.java │ │ │ │ └── bean │ │ │ │ │ ├── TestBean01.java │ │ │ │ │ ├── TestBean02.java │ │ │ │ │ ├── TestBean03.java │ │ │ │ │ ├── TestBean04.java │ │ │ │ │ └── TestConfigBean.java │ │ │ │ ├── start │ │ │ │ └── SpringBootWebTest.java │ │ │ │ ├── task │ │ │ │ └── TaskRunExample.java │ │ │ │ └── transaction │ │ │ │ └── TransactionExample.java │ │ └── resources │ │ │ ├── application.yml │ │ │ └── script │ │ │ ├── example.lua │ │ │ └── updateobject.lua │ │ └── test │ │ └── java │ │ └── vip │ │ └── yeee │ │ └── memo │ │ └── demo │ │ └── springboot │ │ ├── PageHelperTests.java │ │ ├── TransactionTests.java │ │ ├── deadlock │ │ └── TransactionalDeadLockTests.java │ │ └── redis │ │ ├── CustomRedisTests.java │ │ ├── RedisGeoTests.java │ │ └── RedisStreamTests.java └── spring-example │ ├── pom.xml │ └── src │ └── main │ └── resources │ ├── application.yml │ └── spring-application.xml ├── memo-parent ├── memo-base │ ├── base-config │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── vip │ │ │ │ └── yeee │ │ │ │ └── memo │ │ │ │ └── base │ │ │ │ └── config │ │ │ │ ├── CommonConfigAutoConfigure.java │ │ │ │ └── properties │ │ │ │ └── YeeeCommonProperties.java │ │ │ └── resources │ │ │ └── META-INF │ │ │ └── spring.factories │ ├── base-jdbc │ │ ├── base-mybatis-plus │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── vip │ │ │ │ │ └── yeee │ │ │ │ │ └── memo │ │ │ │ │ └── base │ │ │ │ │ └── mybatisplus │ │ │ │ │ ├── MybatisPlusAutoConfigure.java │ │ │ │ │ ├── base │ │ │ │ │ └── BaseEntity.java │ │ │ │ │ ├── config │ │ │ │ │ ├── MybatisPlusConfiguration.java │ │ │ │ │ └── MybatisPlusMetaObjectHandler.java │ │ │ │ │ ├── plugins │ │ │ │ │ └── PigPaginationInnerInterceptor.java │ │ │ │ │ └── warpper │ │ │ │ │ ├── MyPageWrapper.java │ │ │ │ │ ├── OrderClause.java │ │ │ │ │ ├── PageClause.java │ │ │ │ │ ├── QueryClause.java │ │ │ │ │ ├── SqlCompareMode.java │ │ │ │ │ └── WhereClause.java │ │ │ │ └── resources │ │ │ │ └── META-INF │ │ │ │ └── spring.factories │ │ ├── base-mybatis │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── vip │ │ │ │ │ └── yeee │ │ │ │ │ └── example │ │ │ │ │ └── oracle │ │ │ │ │ └── CallProc.java │ │ │ │ └── resources │ │ │ │ └── application.yml.example │ │ ├── base-tk-mapper │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── vip │ │ │ │ │ └── yeee │ │ │ │ │ └── memo │ │ │ │ │ └── base │ │ │ │ │ └── tkmapper │ │ │ │ │ ├── TkMapperAutoConfigure.java │ │ │ │ │ └── service │ │ │ │ │ └── BaseService.java │ │ │ │ └── resources │ │ │ │ └── META-INF │ │ │ │ └── spring.factories │ │ └── pom.xml │ ├── base-model │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── vip │ │ │ └── yeee │ │ │ └── memo │ │ │ └── base │ │ │ └── model │ │ │ ├── annotation │ │ │ └── AnonymousAccess.java │ │ │ ├── constant │ │ │ └── TokenConstants.java │ │ │ ├── exception │ │ │ └── BizException.java │ │ │ ├── rest │ │ │ ├── CommonResult.java │ │ │ ├── IErrorCode.java │ │ │ └── ResultCode.java │ │ │ └── vo │ │ │ ├── PageReqVO.java │ │ │ └── PageVO.java │ ├── base-redis │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── vip │ │ │ │ └── yeee │ │ │ │ └── memo │ │ │ │ └── base │ │ │ │ └── redis │ │ │ │ ├── BaseRedisAutoConfigure.java │ │ │ │ ├── config │ │ │ │ └── CustomRedisConfig.java │ │ │ │ ├── constant │ │ │ │ └── RedisConstant.java │ │ │ │ ├── kit │ │ │ │ └── CheckRepeatKit.java │ │ │ │ ├── properties │ │ │ │ └── CustomRedisProperty.java │ │ │ │ └── utils │ │ │ │ └── RedisUtil.java │ │ │ └── resources │ │ │ ├── META-INF │ │ │ └── spring.factories │ │ │ └── example.yml │ ├── base-security-oauth2 │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── vip │ │ │ │ └── yeee │ │ │ │ └── memo │ │ │ │ └── base │ │ │ │ └── websecurityoauth2 │ │ │ │ ├── BaseWebSecurityAutoConfigure.java │ │ │ │ ├── configure │ │ │ │ ├── Md5PasswordEncoder.java │ │ │ │ └── WebSecurityOauthConfig.java │ │ │ │ ├── constant │ │ │ │ ├── AuthConstant.java │ │ │ │ ├── MessageConstant.java │ │ │ │ └── SecurityUserTypeEnum.java │ │ │ │ ├── context │ │ │ │ └── SecurityContext.java │ │ │ │ └── model │ │ │ │ ├── AuthUser.java │ │ │ │ ├── AuthedUser.java │ │ │ │ ├── Oauth2TokenVo.java │ │ │ │ ├── SecurityUser.java │ │ │ │ ├── SysRole.java │ │ │ │ └── UserInfo.java │ │ │ └── resources │ │ │ └── META-INF │ │ │ └── spring.factories │ ├── base-swagger │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── vip │ │ │ │ └── yeee │ │ │ │ └── memo │ │ │ │ └── base │ │ │ │ └── swagger │ │ │ │ ├── SwaggerAutoConfigure.java │ │ │ │ └── config │ │ │ │ ├── BaseSwaggerConfig.java │ │ │ │ ├── SwaggerConfig.java │ │ │ │ └── SwaggerProperties.java │ │ │ └── resources │ │ │ ├── META-INF │ │ │ └── spring.factories │ │ │ └── example.yml │ ├── base-util │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── vip │ │ │ └── yeee │ │ │ └── memo │ │ │ └── base │ │ │ └── util │ │ │ ├── CalcuDiffUtils.java │ │ │ ├── CodeImgUtil.java │ │ │ ├── IpAddressUtil.java │ │ │ ├── JacksonUtils.java │ │ │ ├── LogUtils.java │ │ │ └── TextUtils.java │ ├── base-web │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── vip │ │ │ │ └── yeee │ │ │ │ └── memo │ │ │ │ └── base │ │ │ │ └── web │ │ │ │ ├── BaseWebAutoConfigure.java │ │ │ │ ├── config │ │ │ │ └── BaseWebMvcConfigurer.java │ │ │ │ ├── handle │ │ │ │ ├── GlobalExceptionHandler.java │ │ │ │ └── LogSensitiveMessageConverter.java │ │ │ │ ├── properties │ │ │ │ └── BaseWebProperty.java │ │ │ │ └── utils │ │ │ │ ├── HttpRequestUtils.java │ │ │ │ ├── SpringContextUtils.java │ │ │ │ └── ValidatorUtils.java │ │ │ └── resources │ │ │ └── META-INF │ │ │ └── spring.factories │ └── pom.xml ├── memo-common │ ├── common-auth │ │ ├── common-app-auth-client │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── vip │ │ │ │ │ └── yeee │ │ │ │ │ └── memo │ │ │ │ │ └── common │ │ │ │ │ └── appauth │ │ │ │ │ └── client │ │ │ │ │ ├── AppAuthClientAutoConfigure.java │ │ │ │ │ ├── configure │ │ │ │ │ ├── JwsClientConfig.java │ │ │ │ │ └── WebMvcApiAuthConfig.java │ │ │ │ │ ├── constant │ │ │ │ │ └── ApiAuthConstant.java │ │ │ │ │ ├── context │ │ │ │ │ └── ApiSecurityContext.java │ │ │ │ │ ├── exception │ │ │ │ │ ├── JwtExpireException.java │ │ │ │ │ └── JwtInvalidException.java │ │ │ │ │ ├── interceptor │ │ │ │ │ └── JwtAuthCheckInterceptor.java │ │ │ │ │ ├── kit │ │ │ │ │ ├── JwsClientKit.java │ │ │ │ │ └── JwtClientKit.java │ │ │ │ │ ├── model │ │ │ │ │ ├── ApiAuthedUser.java │ │ │ │ │ └── dto │ │ │ │ │ │ └── PayloadDto.java │ │ │ │ │ └── properties │ │ │ │ │ └── ApiAuthClientProperties.java │ │ │ │ └── resources │ │ │ │ ├── META-INF │ │ │ │ └── spring.factories │ │ │ │ └── example.yml │ │ ├── common-app-auth-server │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── vip │ │ │ │ │ └── yeee │ │ │ │ │ └── memo │ │ │ │ │ └── common │ │ │ │ │ └── appauth │ │ │ │ │ └── server │ │ │ │ │ ├── AppAuthServerAutoConfigure.java │ │ │ │ │ ├── configure │ │ │ │ │ └── JwsServerConfig.java │ │ │ │ │ ├── kit │ │ │ │ │ ├── JwsServerKit.java │ │ │ │ │ └── JwtServerKit.java │ │ │ │ │ ├── model │ │ │ │ │ ├── dto │ │ │ │ │ │ └── PayloadDto.java │ │ │ │ │ └── vo │ │ │ │ │ │ └── JTokenVo.java │ │ │ │ │ └── properties │ │ │ │ │ └── ApiAuthServerProperties.java │ │ │ │ └── resources │ │ │ │ ├── META-INF │ │ │ │ └── spring.factories │ │ │ │ ├── example.yml │ │ │ │ └── jwt.jks │ │ ├── common-platform-auth-client │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── vip │ │ │ │ │ └── yeee │ │ │ │ │ └── memo │ │ │ │ │ └── common │ │ │ │ │ └── platformauth │ │ │ │ │ └── client │ │ │ │ │ ├── PlatformAuthClientAutoConfigure.java │ │ │ │ │ ├── configure │ │ │ │ │ ├── OAuth2ClientConfig.java │ │ │ │ │ ├── ResourceServerConfig.java │ │ │ │ │ └── ResourceServerWebMvcInterceptorConfig.java │ │ │ │ │ ├── handle │ │ │ │ │ ├── CustomAccessDeniedHandler.java │ │ │ │ │ └── CustomAuthenticationEntryPoint.java │ │ │ │ │ ├── interceptor │ │ │ │ │ └── SecurityTokenInterceptor.java │ │ │ │ │ ├── properties │ │ │ │ │ └── AuthClientProperties.java │ │ │ │ │ ├── service │ │ │ │ │ └── WebAuthClientService.java │ │ │ │ │ └── utils │ │ │ │ │ └── HttpResponseUtils.java │ │ │ │ └── resources │ │ │ │ ├── META-INF │ │ │ │ └── spring.factories │ │ │ │ └── example.yml │ │ ├── common-platform-auth-server │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── vip │ │ │ │ │ └── yeee │ │ │ │ │ └── memo │ │ │ │ │ └── common │ │ │ │ │ └── platformauth │ │ │ │ │ └── server │ │ │ │ │ ├── PlatformAuthServerAutoConfigure.java │ │ │ │ │ ├── configure │ │ │ │ │ ├── AuthorizationServerConfig.java │ │ │ │ │ ├── CustomTokenService.java │ │ │ │ │ ├── TokenStoreConfig.java │ │ │ │ │ └── UserAuthenticationProvider.java │ │ │ │ │ ├── constant │ │ │ │ │ └── SecurityConstants.java │ │ │ │ │ ├── properties │ │ │ │ │ └── AuthTokenStoreProperties.java │ │ │ │ │ └── service │ │ │ │ │ └── AbstractCustomUserDetailsService.java │ │ │ │ └── resources │ │ │ │ ├── META-INF │ │ │ │ └── spring.factories │ │ │ │ └── example.yml │ │ └── pom.xml │ ├── common-dingtalk │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── vip │ │ │ │ └── yeee │ │ │ │ └── memo │ │ │ │ └── common │ │ │ │ └── dingtalk │ │ │ │ ├── CommonDingtalkAutoConfigure.java │ │ │ │ ├── component │ │ │ │ ├── CachedDingtalkService.java │ │ │ │ └── DingtalkService.java │ │ │ │ └── properties │ │ │ │ └── DingtalkProperty.java │ │ │ └── resources │ │ │ ├── META-INF │ │ │ └── spring.factories │ │ │ └── example.yml │ ├── common-domain │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── vip │ │ │ │ └── yeee │ │ │ │ └── memo │ │ │ │ └── common │ │ │ │ └── domain │ │ │ │ ├── CommonServiceAutoConfigure.java │ │ │ │ ├── entity │ │ │ │ ├── BaseEntity.java │ │ │ │ ├── api │ │ │ │ │ └── ApiUserIdentity.java │ │ │ │ ├── front │ │ │ │ │ └── User.java │ │ │ │ └── sys │ │ │ │ │ ├── SysRole.java │ │ │ │ │ ├── SysUser.java │ │ │ │ │ └── SysUserRole.java │ │ │ │ ├── mapper │ │ │ │ ├── api │ │ │ │ │ └── ApiUserIdentityMapper.java │ │ │ │ ├── front │ │ │ │ │ └── UserMapper.java │ │ │ │ └── sys │ │ │ │ │ ├── SysRoleMapper.java │ │ │ │ │ ├── SysUserMapper.java │ │ │ │ │ └── SysUserRoleMapper.java │ │ │ │ └── service │ │ │ │ └── api │ │ │ │ └── ApiUserIdentityService.java │ │ │ └── resources │ │ │ ├── META-INF │ │ │ └── spring.factories │ │ │ ├── mapper │ │ │ └── ApiUserIdentityMapper.xml │ │ │ └── sql │ │ │ └── common-domain.sql │ ├── common-httpclient │ │ ├── common-httpclient-okhttp │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── vip │ │ │ │ │ └── yeee │ │ │ │ │ └── memo │ │ │ │ │ └── common │ │ │ │ │ └── httpclient │ │ │ │ │ └── okhttp │ │ │ │ │ ├── CommonOkhttpClientAutoConfigure.java │ │ │ │ │ ├── configure │ │ │ │ │ └── OkhttpConfig.java │ │ │ │ │ ├── kit │ │ │ │ │ └── OkHttp3Kit.java │ │ │ │ │ └── property │ │ │ │ │ └── OkhttpProperties.java │ │ │ │ └── resources │ │ │ │ └── META-INF │ │ │ │ └── spring.factories │ │ └── pom.xml │ ├── common-kit │ │ ├── common-doc-kit │ │ │ ├── pom.xml │ │ │ ├── src │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── vip │ │ │ │ │ └── yeee │ │ │ │ │ └── memo │ │ │ │ │ └── common │ │ │ │ │ └── doc │ │ │ │ │ └── kit │ │ │ │ │ ├── TemplatePdfBuilderKit.java │ │ │ │ │ └── TemplateWordBuilderKit.java │ │ │ └── template │ │ │ │ ├── example.doc │ │ │ │ └── example.pdf │ │ ├── common-excel-kit │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── vip │ │ │ │ └── yeee │ │ │ │ └── memo │ │ │ │ └── common │ │ │ │ └── excel │ │ │ │ ├── CommonExcelKitAutoConfigure.java │ │ │ │ └── kit │ │ │ │ └── EasyExcelKit.java │ │ ├── common-redisson-kit │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── vip │ │ │ │ │ └── yeee │ │ │ │ │ └── memo │ │ │ │ │ └── common │ │ │ │ │ └── redisson │ │ │ │ │ ├── CommonRedissonKitAutoConfigure.java │ │ │ │ │ ├── kit │ │ │ │ │ ├── BloomFilterKit.java │ │ │ │ │ ├── CacheModelKit.java │ │ │ │ │ ├── CustomRedissonClientFactory.java │ │ │ │ │ ├── DelayQueueKit.java │ │ │ │ │ └── RateLimiterKit.java │ │ │ │ │ └── util │ │ │ │ │ └── Md5Util.java │ │ │ │ └── resources │ │ │ │ └── META-INF │ │ │ │ └── spring.factories │ │ └── pom.xml │ ├── common-mybatis-encrypt │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── vip │ │ │ │ └── yeee │ │ │ │ └── memo │ │ │ │ └── common │ │ │ │ └── encrypt │ │ │ │ └── mybatis │ │ │ │ ├── CommonMybatisEncryptAutoConfigure.java │ │ │ │ ├── Encrypt.java │ │ │ │ ├── annotation │ │ │ │ ├── EncryptField.java │ │ │ │ ├── SensitiveBind.java │ │ │ │ ├── SensitiveEncryptEnabled.java │ │ │ │ ├── SensitiveField.java │ │ │ │ ├── SensitiveJSONField.java │ │ │ │ └── SensitiveJSONFieldKey.java │ │ │ │ ├── config │ │ │ │ └── EncryptPluginConfig.java │ │ │ │ ├── encrypt │ │ │ │ └── AesSupport.java │ │ │ │ ├── interceptor │ │ │ │ ├── DecryptReadInterceptor.java │ │ │ │ └── SensitiveAndEncryptWriteInterceptor.java │ │ │ │ ├── properties │ │ │ │ └── MybatisEncryptProperty.java │ │ │ │ ├── type │ │ │ │ ├── SensitiveType.java │ │ │ │ ├── SensitiveTypeHandler.java │ │ │ │ ├── SensitiveTypeRegistry.java │ │ │ │ └── handler │ │ │ │ │ ├── AddressSensitiveHandler.java │ │ │ │ │ ├── BandCardSensitiveHandler.java │ │ │ │ │ ├── CnapsSensitiveHandler.java │ │ │ │ │ ├── DefaultSensitiveHandler.java │ │ │ │ │ ├── EmailSensitiveHandler.java │ │ │ │ │ ├── FixedPhoneSensitiveHandler.java │ │ │ │ │ ├── IDCardSensitiveHandler.java │ │ │ │ │ ├── MobilePhoneSensitiveHandler.java │ │ │ │ │ ├── NameSensitiveHandler.java │ │ │ │ │ ├── NoneSensitiveHandler.java │ │ │ │ │ └── PaySignNoSensitiveHandler.java │ │ │ │ └── utils │ │ │ │ ├── JsonUtils.java │ │ │ │ └── PluginUtils.java │ │ │ └── resources │ │ │ ├── META-INF │ │ │ └── spring.factories │ │ │ └── example.yml │ ├── common-oss │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── vip │ │ │ │ └── yeee │ │ │ │ └── memo │ │ │ │ └── common │ │ │ │ └── oss │ │ │ │ ├── CommonOssAutoConfigure.java │ │ │ │ ├── constant │ │ │ │ └── OssConstant.java │ │ │ │ ├── kit │ │ │ │ ├── AliOssKit.java │ │ │ │ ├── OssKit.java │ │ │ │ └── QiniuOssKit.java │ │ │ │ ├── model │ │ │ │ └── StsAuthInfo.java │ │ │ │ └── properties │ │ │ │ ├── AliOssProperties.java │ │ │ │ └── QiniuOssProperties.java │ │ │ └── resources │ │ │ ├── META-INF │ │ │ └── spring.factories │ │ │ └── example.yml │ ├── common-springcloud │ │ ├── common-springcloud-dependencies │ │ │ └── pom.xml │ │ ├── common-springcloud-gray │ │ │ ├── common-springcloud-gray-common │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── vip │ │ │ │ │ └── yeee │ │ │ │ │ └── memo │ │ │ │ │ └── common │ │ │ │ │ └── scloud │ │ │ │ │ └── gray │ │ │ │ │ └── common │ │ │ │ │ ├── constant │ │ │ │ │ └── CloudGrayConstant.java │ │ │ │ │ └── handle │ │ │ │ │ └── GrayLoadBalancer.java │ │ │ ├── common-springcloud-gray-gateway │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ ├── java │ │ │ │ │ └── vip │ │ │ │ │ │ └── yeee │ │ │ │ │ │ └── memo │ │ │ │ │ │ └── common │ │ │ │ │ │ └── scloud │ │ │ │ │ │ └── gray │ │ │ │ │ │ └── gateway │ │ │ │ │ │ ├── CommonSpringCloudGrayGatewayAutoConfigure.java │ │ │ │ │ │ ├── configure │ │ │ │ │ │ └── GrayGatewayLoadBalancerConfig.java │ │ │ │ │ │ ├── context │ │ │ │ │ │ └── GrayRequestContextHolder.java │ │ │ │ │ │ └── handle │ │ │ │ │ │ └── GlobalGrayFilter.java │ │ │ │ │ └── resources │ │ │ │ │ ├── META-INF │ │ │ │ │ └── spring.factories │ │ │ │ │ └── example.yml │ │ │ ├── common-springcloud-gray-inner │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ ├── java │ │ │ │ │ └── vip │ │ │ │ │ │ └── yeee │ │ │ │ │ │ └── memo │ │ │ │ │ │ └── common │ │ │ │ │ │ └── scloud │ │ │ │ │ │ └── gray │ │ │ │ │ │ └── inner │ │ │ │ │ │ ├── CommonSpringCloudGrayInnerAutoConfigure.java │ │ │ │ │ │ ├── configure │ │ │ │ │ │ └── GrayInnerLoadBalancerConfig.java │ │ │ │ │ │ └── handle │ │ │ │ │ │ ├── FeignRequestInterceptor.java │ │ │ │ │ │ └── GrayLoadBalancer.java │ │ │ │ │ └── resources │ │ │ │ │ ├── META-INF │ │ │ │ │ └── spring.factories │ │ │ │ │ └── example.yml │ │ │ └── pom.xml │ │ ├── common-springcloud-openfeign │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── vip │ │ │ │ │ └── yeee │ │ │ │ │ └── memo │ │ │ │ │ └── common │ │ │ │ │ └── scloud │ │ │ │ │ └── openfeign │ │ │ │ │ └── CommonSpringCloudOpenfeignAutoConfigure.java │ │ │ │ └── resources │ │ │ │ ├── META-INF │ │ │ │ └── spring.factories │ │ │ │ └── application.yml │ │ └── pom.xml │ ├── common-sso │ │ ├── common-sso-inner-app │ │ │ ├── pom.xml │ │ │ └── readme.md │ │ ├── common-sso-third-app │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── vip │ │ │ │ │ └── yeee │ │ │ │ │ └── memo │ │ │ │ │ └── common │ │ │ │ │ └── sso │ │ │ │ │ └── thirdapp │ │ │ │ │ ├── ThirdAppSsoApplication.java │ │ │ │ │ ├── controller │ │ │ │ │ └── ThirdAppSsoController.java │ │ │ │ │ ├── model │ │ │ │ │ ├── dto │ │ │ │ │ │ ├── AuthUserDto.java │ │ │ │ │ │ ├── ThirdAppDto.java │ │ │ │ │ │ └── ThirdUserDto.java │ │ │ │ │ ├── request │ │ │ │ │ │ └── ThirdAppSsoRequest.java │ │ │ │ │ └── vo │ │ │ │ │ │ └── ThirdAppVo.java │ │ │ │ │ └── service │ │ │ │ │ └── ThirdAppSsoService.java │ │ │ │ └── resources │ │ │ │ └── application.yml │ │ └── pom.xml │ ├── common-tokenizing │ │ ├── common-jcseg │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── vip │ │ │ │ │ └── yeee │ │ │ │ │ └── memo │ │ │ │ │ └── common │ │ │ │ │ └── tokenizing │ │ │ │ │ └── jcseg │ │ │ │ │ ├── CommonTokenizingJcsegAutoConfigure.java │ │ │ │ │ ├── config │ │ │ │ │ └── CommonTokenizingJcsegConfig.java │ │ │ │ │ └── customize │ │ │ │ │ ├── ADictionaryExtra.java │ │ │ │ │ └── CusNLPSeg.java │ │ │ │ └── resources │ │ │ │ └── META-INF │ │ │ │ └── spring.factories │ │ └── pom.xml │ ├── common-web │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── vip │ │ │ │ └── yeee │ │ │ │ └── memo │ │ │ │ └── common │ │ │ │ └── web │ │ │ │ ├── CommonWebApplication.java │ │ │ │ ├── CommonWebAutoConfigure.java │ │ │ │ ├── config │ │ │ │ └── WebMvcResourcesConfig.java │ │ │ │ ├── controller │ │ │ │ ├── FileController.java │ │ │ │ └── TestController.java │ │ │ │ ├── filter │ │ │ │ ├── FilterDemo.java │ │ │ │ └── ParamsHandleFilter.java │ │ │ │ ├── interceptor │ │ │ │ └── InterceptorDemo.java │ │ │ │ └── utils │ │ │ │ ├── HttpRequestUtils.java │ │ │ │ └── HttpResponseUtils.java │ │ │ └── resources │ │ │ ├── META-INF │ │ │ └── spring.factories │ │ │ └── logback.xml.example │ ├── common-websocket │ │ ├── common-netty-websocket │ │ │ ├── README_zh.md │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── vip │ │ │ │ │ └── yeee │ │ │ │ │ └── memo │ │ │ │ │ └── common │ │ │ │ │ └── websocket │ │ │ │ │ └── netty │ │ │ │ │ ├── CommonNettyWebSocketAutoConfigure.java │ │ │ │ │ ├── annotation │ │ │ │ │ ├── BeforeHandshake.java │ │ │ │ │ ├── EnableWebSocket.java │ │ │ │ │ ├── OnBinary.java │ │ │ │ │ ├── OnClose.java │ │ │ │ │ ├── OnError.java │ │ │ │ │ ├── OnEvent.java │ │ │ │ │ ├── OnMessage.java │ │ │ │ │ ├── OnOpen.java │ │ │ │ │ ├── PathParam.java │ │ │ │ │ ├── RequestParam.java │ │ │ │ │ └── ServerEndpoint.java │ │ │ │ │ ├── bootstrap │ │ │ │ │ ├── EndPointMethodMapping.java │ │ │ │ │ ├── ServerEndpointBootstrap.java │ │ │ │ │ ├── Session.java │ │ │ │ │ └── WsEndpointDispatcher.java │ │ │ │ │ ├── config │ │ │ │ │ ├── NettyWebSocketConfiguration.java │ │ │ │ │ └── ServerEndpointConfig.java │ │ │ │ │ ├── exception │ │ │ │ │ └── DeploymentException.java │ │ │ │ │ ├── handler │ │ │ │ │ ├── HttpServerHandler.java │ │ │ │ │ ├── WebSocketServerHandler.java │ │ │ │ │ └── WebsocketServer.java │ │ │ │ │ ├── support │ │ │ │ │ ├── AntPathMatcherWrapper.java │ │ │ │ │ ├── DefaultPathMatcher.java │ │ │ │ │ ├── WsPathMatcher.java │ │ │ │ │ └── argument │ │ │ │ │ │ ├── ByteMethodArgumentResolver.java │ │ │ │ │ │ ├── EventMethodArgumentResolver.java │ │ │ │ │ │ ├── HttpHeadersMethodArgumentResolver.java │ │ │ │ │ │ ├── MethodArgumentResolver.java │ │ │ │ │ │ ├── PathParamMapMethodArgumentResolver.java │ │ │ │ │ │ ├── PathParamMethodArgumentResolver.java │ │ │ │ │ │ ├── RequestParamMapMethodArgumentResolver.java │ │ │ │ │ │ ├── RequestParamMethodArgumentResolver.java │ │ │ │ │ │ ├── SessionMethodArgumentResolver.java │ │ │ │ │ │ ├── TextMethodArgumentResolver.java │ │ │ │ │ │ └── ThrowableMethodArgumentResolver.java │ │ │ │ │ └── util │ │ │ │ │ └── SslUtils.java │ │ │ │ └── resources │ │ │ │ └── META-INF │ │ │ │ └── spring.factories │ │ ├── common-spring-websocket │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── vip │ │ │ │ │ └── yeee │ │ │ │ │ └── memo │ │ │ │ │ └── common │ │ │ │ │ └── websocket │ │ │ │ │ └── spring │ │ │ │ │ ├── CommonSpringWebSocketAutoConfigure.java │ │ │ │ │ ├── config │ │ │ │ │ └── WebSocketConfig.java │ │ │ │ │ └── ws │ │ │ │ │ └── Websocket.java │ │ │ │ └── resources │ │ │ │ └── META-INF │ │ │ │ └── spring.factories │ │ └── pom.xml │ ├── common-websse │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── vip │ │ │ │ └── yeee │ │ │ │ └── memo │ │ │ │ └── common │ │ │ │ └── web │ │ │ │ └── sse │ │ │ │ ├── CommonWebSseAutoConfigure.java │ │ │ │ └── util │ │ │ │ └── SseEmitterUtil.java │ │ │ └── resources │ │ │ └── META-INF │ │ │ └── spring.factories │ ├── common-workflow │ │ ├── common-activiti7 │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── vip │ │ │ │ │ └── yeee │ │ │ │ │ └── memo │ │ │ │ │ └── common │ │ │ │ │ └── activiti7 │ │ │ │ │ ├── CommonActiviti7AutoConfigure.java │ │ │ │ │ ├── config │ │ │ │ │ └── CustomAuthenticationPrincipalIdentityProvider.java │ │ │ │ │ ├── controller │ │ │ │ │ └── CommonActiviti7Controller.java │ │ │ │ │ ├── listener │ │ │ │ │ └── TestTaskListener.java │ │ │ │ │ ├── mapper │ │ │ │ │ └── ActivitiMapper.java │ │ │ │ │ ├── model │ │ │ │ │ ├── request │ │ │ │ │ │ ├── DefDeleteReq.java │ │ │ │ │ │ ├── InsDeleteReq.java │ │ │ │ │ │ ├── InstCreateReq.java │ │ │ │ │ │ └── TaskCompleteReq.java │ │ │ │ │ └── vo │ │ │ │ │ │ ├── DefinitionVo.java │ │ │ │ │ │ ├── HistoryInstanceVo.java │ │ │ │ │ │ ├── InstanceVo.java │ │ │ │ │ │ ├── TaskHighlightVo.java │ │ │ │ │ │ └── TaskVo.java │ │ │ │ │ └── service │ │ │ │ │ └── CommonActiviti7Service.java │ │ │ │ └── resources │ │ │ │ ├── META-INF │ │ │ │ └── spring.factories │ │ │ │ └── example.yml │ │ ├── common-flowable │ │ │ └── pom.xml │ │ └── pom.xml │ ├── common-wxsdk │ │ ├── common-wx-ma │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── vip │ │ │ │ │ └── yeee │ │ │ │ │ └── memo │ │ │ │ │ └── common │ │ │ │ │ └── wxsdk │ │ │ │ │ └── ma │ │ │ │ │ ├── WeiXinMaAutoConfigure.java │ │ │ │ │ ├── config │ │ │ │ │ └── WxMaConfigure.java │ │ │ │ │ ├── controller │ │ │ │ │ └── WeiXinWaPortalController.java │ │ │ │ │ ├── properties │ │ │ │ │ └── WxMaProperties.java │ │ │ │ │ └── service │ │ │ │ │ └── IWxMaConfigService.java │ │ │ │ └── resources │ │ │ │ ├── META-INF │ │ │ │ └── spring.factories │ │ │ │ └── example.yml │ │ ├── common-wx-mp │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── vip │ │ │ │ │ └── yeee │ │ │ │ │ └── memo │ │ │ │ │ └── common │ │ │ │ │ └── wxsdk │ │ │ │ │ └── mp │ │ │ │ │ ├── WeiXinMpAutoConfigure.java │ │ │ │ │ ├── config │ │ │ │ │ └── WxMpConfig.java │ │ │ │ │ ├── controller │ │ │ │ │ └── WeiXinWpPortalController.java │ │ │ │ │ ├── properties │ │ │ │ │ └── WxMpProperties.java │ │ │ │ │ └── service │ │ │ │ │ └── IWxMpConfigService.java │ │ │ │ └── resources │ │ │ │ ├── META-INF │ │ │ │ └── spring.factories │ │ │ │ └── example.yml │ │ └── pom.xml │ └── pom.xml ├── memo-dependencies │ └── pom.xml └── pom.xml ├── middle-ware ├── canal │ ├── README.md │ ├── canal-client │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── vip │ │ │ └── yeee │ │ │ └── memo │ │ │ └── demo │ │ │ └── canal │ │ │ └── client │ │ │ ├── DirectConnectionCanal.java │ │ │ └── KafkaCanalMessageConsumer.java │ ├── canal-server │ │ ├── pom.xml │ │ └── start.txt │ └── pom.xml ├── elasticsearch │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── vip │ │ │ │ └── yeee │ │ │ │ └── memo │ │ │ │ └── demo │ │ │ │ └── elasticsearch │ │ │ │ ├── ElasticsearchApplication.java │ │ │ │ ├── config │ │ │ │ └── ElasticsearchConfig.java │ │ │ │ ├── constant │ │ │ │ ├── EsIndex.java │ │ │ │ └── TProjectIndexField.java │ │ │ │ ├── domain │ │ │ │ ├── es │ │ │ │ │ ├── entity │ │ │ │ │ │ ├── BaseIndex.java │ │ │ │ │ │ └── TProjectIndex.java │ │ │ │ │ └── repository │ │ │ │ │ │ ├── EsRestClientRepository.java │ │ │ │ │ │ ├── EsRestTemplateRepository.java │ │ │ │ │ │ └── TProjectIndexRepository.java │ │ │ │ └── mysql │ │ │ │ │ ├── entity │ │ │ │ │ └── TProject.java │ │ │ │ │ └── mapper │ │ │ │ │ └── TProjectMapper.java │ │ │ │ ├── service │ │ │ │ ├── ITProjectService.java │ │ │ │ └── impl │ │ │ │ │ └── TProjectServiceImpl.java │ │ │ │ └── vo │ │ │ │ └── PageVO.java │ │ └── resources │ │ │ ├── application.yml │ │ │ └── mapper │ │ │ └── TProjectMapper.xml │ │ └── test │ │ └── java │ │ └── vip │ │ └── yeee │ │ └── memo │ │ └── demo │ │ └── elasticsearch │ │ ├── ElasticsearchRepositoryTests.java │ │ ├── EsRestClientRepositoryTest.java │ │ └── EsRestTemplateRepositoryTests.java ├── flink │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── vip │ │ │ └── yeee │ │ │ └── memo │ │ │ └── demo │ │ │ └── flink │ │ │ ├── constant │ │ │ └── OperateEventEnum.java │ │ │ ├── convert │ │ │ └── LogDataConvert.java │ │ │ ├── job │ │ │ ├── DemoComputeJob.java │ │ │ └── NginxLogComputeJob.java │ │ │ ├── model │ │ │ ├── AccessLogBO.java │ │ │ ├── AccessStatsVO.java │ │ │ └── NginxAccessLog.java │ │ │ ├── process │ │ │ └── AccessEventProcessWindowFunction.java │ │ │ └── sink │ │ │ ├── DemoSink.java │ │ │ └── NginxLogComputeSink.java │ │ └── resources │ │ └── log4j.properties ├── mongodb │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── vip │ │ │ └── yeee │ │ │ └── memo │ │ │ └── demo │ │ │ └── mongodb │ │ │ ├── MongodbApplication.java │ │ │ ├── domain │ │ │ ├── entity │ │ │ │ └── YeeeTestDoc.java │ │ │ └── repository │ │ │ │ └── YeeeTestDocRepository.java │ │ │ └── utils │ │ │ └── BusinessUtils.java │ │ └── resources │ │ └── application.yml ├── mq │ ├── kafka │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── vip │ │ │ │ │ └── yeee │ │ │ │ │ └── memo │ │ │ │ │ └── demo │ │ │ │ │ └── kafka │ │ │ │ │ ├── KafkaDemoApplication.java │ │ │ │ │ ├── consumer │ │ │ │ │ ├── KafkaConsumer.java │ │ │ │ │ └── KafkaOrderConsumer.java │ │ │ │ │ ├── handler │ │ │ │ │ ├── ConsumerListenerErrorHandler.java │ │ │ │ │ └── KafkaSendResultHandler.java │ │ │ │ │ ├── model │ │ │ │ │ └── qo │ │ │ │ │ │ └── OrderQo.java │ │ │ │ │ └── producer │ │ │ │ │ └── KafkaProducer.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ └── java │ │ │ └── vip │ │ │ └── yeee │ │ │ └── memo │ │ │ └── demo │ │ │ └── kafka │ │ │ └── KafkaTests.java │ ├── pom.xml │ ├── rabbitmq │ │ └── pom.xml │ └── rocketmq │ │ ├── consumer-demo │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── vip │ │ │ │ └── yeee │ │ │ │ └── memo │ │ │ │ └── demo │ │ │ │ └── mq │ │ │ │ └── rocketmq │ │ │ │ └── consumer │ │ │ │ ├── ConsumerDemoApplication.java │ │ │ │ ├── v1 │ │ │ │ ├── annotation │ │ │ │ │ └── RocketMQMessageListener.java │ │ │ │ ├── config │ │ │ │ │ ├── MQConsumerAutoConfiguration.java │ │ │ │ │ └── MqConfig.java │ │ │ │ ├── listener │ │ │ │ │ └── DemoMessageListener.java │ │ │ │ └── model │ │ │ │ │ ├── ConsumeMode.java │ │ │ │ │ ├── MQConstant.java │ │ │ │ │ └── MessageType.java │ │ │ │ └── v2 │ │ │ │ ├── config │ │ │ │ └── RocketConfiguration.java │ │ │ │ └── listener │ │ │ │ ├── CommonMessageListener.java │ │ │ │ └── OrderMessageListener.java │ │ │ └── resources │ │ │ └── application.yml │ │ ├── pom.xml │ │ └── producer-demo │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── vip │ │ │ └── yeee │ │ │ └── memo │ │ │ └── demo │ │ │ └── mq │ │ │ └── rocketmq │ │ │ └── producer │ │ │ ├── ProducerDemoApplication.java │ │ │ ├── component │ │ │ ├── RocketMqOrderProducerKit.java │ │ │ ├── RocketMqProducerKit.java │ │ │ └── RocketMqTransProducerKit.java │ │ │ ├── config │ │ │ └── MqConfig.java │ │ │ ├── model │ │ │ └── MQConstant.java │ │ │ ├── service │ │ │ └── IBusinessService.java │ │ │ └── task │ │ │ └── SendMQMessageTask.java │ │ └── resources │ │ └── application.yml └── pom.xml ├── pom.xml ├── simple-tools ├── export │ ├── easyexcel │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ └── vip │ │ │ │ └── yeee │ │ │ │ └── memo │ │ │ │ └── demo │ │ │ │ └── stools │ │ │ │ └── export │ │ │ │ └── easyexcel │ │ │ │ ├── EasyexcelDemoApplication.java │ │ │ │ ├── biz │ │ │ │ └── DemoBiz.java │ │ │ │ ├── controller │ │ │ │ └── DemoController.java │ │ │ │ └── model │ │ │ │ └── vo │ │ │ │ ├── BaseExportDataVo.java │ │ │ │ ├── ExportDataVo.java │ │ │ │ └── ImportDataVo.java │ │ │ └── test │ │ │ └── java │ │ │ └── vip │ │ │ └── yeee │ │ │ └── memo │ │ │ └── demo │ │ │ └── stools │ │ │ └── export │ │ │ └── easyexcel │ │ │ ├── EasyexcelTests.java │ │ │ └── model │ │ │ └── TestVo.java │ └── pom.xml ├── generator │ ├── generate-custom │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── vip │ │ │ │ └── yeee │ │ │ │ └── memo │ │ │ │ └── demo │ │ │ │ └── custom │ │ │ │ └── generate │ │ │ │ ├── YeeeGeneratorExecutor.java │ │ │ │ └── core │ │ │ │ ├── FalseMethodPlugin.java │ │ │ │ ├── MapperCommentGenerator.java │ │ │ │ ├── MapperPlugin.java │ │ │ │ ├── TemplateFilePlugin.java │ │ │ │ ├── file │ │ │ │ ├── GenerateByListTemplateFile.java │ │ │ │ └── GenerateByTemplateFile.java │ │ │ │ ├── formatter │ │ │ │ ├── FreemarkerTemplateFormatter.java │ │ │ │ ├── ListTemplateFormatter.java │ │ │ │ └── TemplateFormatter.java │ │ │ │ └── model │ │ │ │ ├── ColumnField.java │ │ │ │ ├── TableClass.java │ │ │ │ └── TableColumnBuilder.java │ │ │ └── resources │ │ │ ├── generator-config.xml │ │ │ ├── generator.properties │ │ │ └── template │ │ │ ├── common │ │ │ ├── Biz.ftl │ │ │ ├── Controller.ftl │ │ │ ├── MapperXml.ftl │ │ │ └── model │ │ │ │ ├── AddRequest.ftl │ │ │ │ ├── IdRequest.ftl │ │ │ │ ├── InfoVo.ftl │ │ │ │ ├── ListRequest.ftl │ │ │ │ ├── ListVo.ftl │ │ │ │ └── UpdRequest.ftl │ │ │ ├── mp │ │ │ ├── Mapper.ftl │ │ │ └── Service.ftl │ │ │ ├── pages │ │ │ ├── edit.ftl │ │ │ ├── info.ftl │ │ │ ├── list.ftl │ │ │ └── menu_sql.ftl │ │ │ ├── test │ │ │ ├── test-all.ftl │ │ │ └── test-one.ftl │ │ │ └── tk │ │ │ ├── Mapper.ftl │ │ │ └── Service.ftl │ └── pom.xml ├── jasypt │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── vip │ │ │ │ └── yeee │ │ │ │ └── memo │ │ │ │ └── demo │ │ │ │ └── jasypt │ │ │ │ └── JasyptApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── vip │ │ └── yeee │ │ └── memo │ │ └── demo │ │ └── jasypt │ │ └── JasyptTest.java ├── pom.xml ├── simple-kit │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── vip │ │ │ │ └── yeee │ │ │ │ └── memo │ │ │ │ └── demo │ │ │ │ └── stools │ │ │ │ └── kit │ │ │ │ ├── SimpleKitsApplication.java │ │ │ │ ├── controller │ │ │ │ └── SimpleToolsController.java │ │ │ │ ├── example │ │ │ │ ├── DelayQueueExample.java │ │ │ │ └── TemplateDocBuilderExample.java │ │ │ │ ├── kit │ │ │ │ ├── RateLimiterKit.java │ │ │ │ └── filewatch │ │ │ │ │ ├── FileWatchKit1.java │ │ │ │ │ └── FileWatchKit2.java │ │ │ │ ├── service │ │ │ │ └── DelayQueueService.java │ │ │ │ └── xmlmapper │ │ │ │ ├── TestXmlFieldConverter.java │ │ │ │ └── TestXmlObject.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── vip │ │ └── yeee │ │ └── memo │ │ └── demo │ │ └── stools │ │ └── kit │ │ ├── BloomFilterKitTests.java │ │ ├── CacheModelKitTests.java │ │ ├── OkHttp3Tests.java │ │ ├── RateLimiterKitTests.java │ │ └── RedissionDelayQueueTests.java ├── simple-tools-execLinuxSSH │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── vip │ │ │ └── yeee │ │ │ └── memo │ │ │ └── demo │ │ │ └── simpletool │ │ │ └── execlinux │ │ │ ├── AbstractJobDefinition.java │ │ │ ├── SpringbootApp.java │ │ │ └── sh │ │ │ ├── ExecShController.java │ │ │ ├── ExecShJob.java │ │ │ ├── ShConfiguration.java │ │ │ └── TestExecRemoteCommand.java │ │ └── resources │ │ ├── application.yml │ │ ├── log4j.properties │ │ └── schema.sql └── simple-tools-my │ ├── pom.xml │ └── src │ └── main │ └── java │ └── vip │ └── yeee │ └── memo │ └── demo │ └── simpletool │ └── my │ ├── OnlineInterviewBizException.java │ ├── SpringmvcServiceForward.java │ ├── WxMiniAppTools.java │ └── temp │ ├── StringDataConvert.java │ ├── TempHandle.java │ ├── TempHandle22.java │ └── TextFileHandle.java ├── solution-problem ├── distribute-lock │ ├── distribute-lock-jedis │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── vip │ │ │ │ │ └── yeee │ │ │ │ │ └── memo │ │ │ │ │ └── demo │ │ │ │ │ └── distribute │ │ │ │ │ └── lock │ │ │ │ │ └── jedis │ │ │ │ │ ├── JedisRepository.java │ │ │ │ │ ├── lua │ │ │ │ │ ├── impl_juc_lock │ │ │ │ │ │ └── JedisLock.java │ │ │ │ │ └── simp │ │ │ │ │ │ └── JedisLock.java │ │ │ │ │ ├── multiSeglock │ │ │ │ │ └── JedisMultiSegmentLock.java │ │ │ │ │ └── simple │ │ │ │ │ └── JedisCommandLock.java │ │ │ └── resources │ │ │ │ ├── log4j.properties │ │ │ │ └── script │ │ │ │ ├── lock.lua │ │ │ │ └── unlock.lua │ │ │ └── test │ │ │ └── java │ │ │ └── vip │ │ │ └── yeee │ │ │ └── memo │ │ │ └── demo │ │ │ └── distribute │ │ │ └── lock │ │ │ └── jedis │ │ │ └── lua │ │ │ └── impl_juc_lock │ │ │ ├── JedisLockTest.java │ │ │ └── JedisMultiSegmentLockTest.java │ ├── distribute-lock-redisson │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── vip │ │ │ │ │ └── yeee │ │ │ │ │ └── memo │ │ │ │ │ └── demo │ │ │ │ │ └── distribute │ │ │ │ │ └── lock │ │ │ │ │ └── redisson │ │ │ │ │ ├── TestRedissonApplication.java │ │ │ │ │ ├── codec │ │ │ │ │ └── FastjsonCodec.java │ │ │ │ │ ├── config │ │ │ │ │ └── RedissonConfig.java │ │ │ │ │ └── example │ │ │ │ │ ├── AllTypeLockUseExample.java │ │ │ │ │ └── package-info.java │ │ │ └── resources │ │ │ │ └── application.properties │ │ │ └── test │ │ │ └── java │ │ │ └── vip │ │ │ └── yeee │ │ │ └── memo │ │ │ └── demo │ │ │ └── distribute │ │ │ └── lock │ │ │ └── redisson │ │ │ └── RedissonTest.java │ ├── distribute-lock-zookeeper │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ └── vip │ │ │ │ └── yeee │ │ │ │ └── memo │ │ │ │ └── demo │ │ │ │ └── distribute │ │ │ │ └── lock │ │ │ │ └── zookeeper │ │ │ │ ├── factory │ │ │ │ └── ZkClientFactory.java │ │ │ │ ├── lock │ │ │ │ ├── curator │ │ │ │ │ └── InterProcessMutexLock.java │ │ │ │ └── simple │ │ │ │ │ ├── Lock.java │ │ │ │ │ └── ZkLock.java │ │ │ │ └── zkClientApi │ │ │ │ └── ZkClientApiDemo.java │ │ │ └── test │ │ │ └── java │ │ │ └── vip │ │ │ └── yeee │ │ │ └── memo │ │ │ └── demo │ │ │ └── distribute │ │ │ └── lock │ │ │ └── zookeeper │ │ │ └── ZkLockTest.java │ └── pom.xml ├── jetcache │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── vip │ │ │ │ └── yeee │ │ │ │ └── memo │ │ │ │ └── demo │ │ │ │ └── cache │ │ │ │ └── jetcache │ │ │ │ ├── JetcacheToolApplication.java │ │ │ │ ├── cache │ │ │ │ └── CacheBizService.java │ │ │ │ └── controller │ │ │ │ └── TestJetcacheController.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── vip │ │ └── yeee │ │ └── memo │ │ └── demo │ │ └── cache │ │ └── jetcache │ │ └── StringRedisTemplateTest.java ├── mybatis-encrypt │ ├── README.md │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── vip │ │ │ │ └── yeee │ │ │ │ └── memo │ │ │ │ └── demo │ │ │ │ └── mybatisencrypt │ │ │ │ ├── MybatisEncryptApplication.java │ │ │ │ ├── dto │ │ │ │ └── UserDTO.java │ │ │ │ ├── mapper │ │ │ │ ├── UserMapper.java │ │ │ │ └── UserMapper.xml │ │ │ │ └── testcase │ │ │ │ └── MapperTestCase.java │ │ └── resources │ │ │ ├── application.yml │ │ │ └── t_mep_user.sql │ │ └── test │ │ └── java │ │ └── vip │ │ └── yeee │ │ └── memo │ │ └── demo │ │ └── mybatisencrypt │ │ ├── encrypt │ │ └── AesEncryptTest.java │ │ └── sensitive │ │ └── SensitiveHandlerTest.java ├── netty │ ├── heart-check │ │ ├── netty-client │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── vip │ │ │ │ │ └── yeee │ │ │ │ │ └── memo │ │ │ │ │ └── demo │ │ │ │ │ └── netty │ │ │ │ │ └── heartcheck │ │ │ │ │ └── client │ │ │ │ │ ├── HeartCheckClientApplication.java │ │ │ │ │ ├── handler │ │ │ │ │ ├── AuthHandler.java │ │ │ │ │ └── HeartHandler.java │ │ │ │ │ ├── heart │ │ │ │ │ └── NettyClient.java │ │ │ │ │ └── initializer │ │ │ │ │ └── ClientStart.java │ │ │ │ └── resources │ │ │ │ └── application.properties │ │ ├── netty-common │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── vip │ │ │ │ └── yeee │ │ │ │ └── memo │ │ │ │ └── demo │ │ │ │ └── netty │ │ │ │ └── heartcheck │ │ │ │ └── common │ │ │ │ ├── entity │ │ │ │ └── MonitorVo.java │ │ │ │ └── protobuf │ │ │ │ ├── Command.java │ │ │ │ ├── Command.proto │ │ │ │ ├── Message.java │ │ │ │ └── Message.proto │ │ ├── netty-server │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── vip │ │ │ │ │ └── yeee │ │ │ │ │ └── memo │ │ │ │ │ └── demo │ │ │ │ │ └── netty │ │ │ │ │ └── heartcheck │ │ │ │ │ └── server │ │ │ │ │ ├── HeartCheckServerApplication.java │ │ │ │ │ ├── channelInitializer │ │ │ │ │ └── ServerChannelInitializer.java │ │ │ │ │ ├── components │ │ │ │ │ └── ChannelRepository.java │ │ │ │ │ ├── config │ │ │ │ │ └── ServerConfigs.java │ │ │ │ │ ├── handler │ │ │ │ │ ├── OtherServerHandler.java │ │ │ │ │ └── ServerHeartHandler.java │ │ │ │ │ ├── typeServer │ │ │ │ │ └── TCPServer.java │ │ │ │ │ └── web │ │ │ │ │ └── MonitorController.java │ │ │ │ └── resources │ │ │ │ ├── application-dev.properties │ │ │ │ ├── application-pro.properties │ │ │ │ ├── application.properties │ │ │ │ ├── static │ │ │ │ └── js │ │ │ │ │ ├── echarts.min.js │ │ │ │ │ └── jquery.min.js │ │ │ │ └── templates │ │ │ │ └── monitor.html │ │ └── pom.xml │ ├── pom.xml │ ├── simple-example │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── vip │ │ │ │ └── yeee │ │ │ │ └── memo │ │ │ │ └── demo │ │ │ │ └── netty │ │ │ │ └── simple │ │ │ │ ├── chat │ │ │ │ ├── ChatClient.java │ │ │ │ ├── ChatServer.java │ │ │ │ └── handler │ │ │ │ │ ├── ChatClientHandler.java │ │ │ │ │ └── ChatServerHandler.java │ │ │ │ ├── httpserver │ │ │ │ ├── HttpHandler.java │ │ │ │ ├── HttpServer.java │ │ │ │ └── ssl │ │ │ │ │ └── SSLChannelInitializer.java │ │ │ │ └── longConnection │ │ │ │ ├── LongConnClient.java │ │ │ │ ├── LongConnServer.java │ │ │ │ ├── decoder │ │ │ │ ├── LiveDecoder.java │ │ │ │ ├── ToIntegerDecoder.java │ │ │ │ └── ToIntegerDecoder2.java │ │ │ │ ├── encoder │ │ │ │ ├── ShortToByteEncoder.java │ │ │ │ └── StringToByteEncoder.java │ │ │ │ ├── handler │ │ │ │ └── LiveHandler.java │ │ │ │ ├── kit │ │ │ │ └── LiveChannelCache.java │ │ │ │ └── model │ │ │ │ └── LiveMessage.java │ │ │ └── resources │ │ │ └── log4j.properties │ └── webserver │ │ ├── pom.xml │ │ └── src │ │ ├── main │ │ └── java │ │ │ └── vip │ │ │ └── yeee │ │ │ └── memo │ │ │ └── demo │ │ │ └── netty │ │ │ └── webserver │ │ │ ├── LoServer.java │ │ │ ├── ServerSetting.java │ │ │ ├── action │ │ │ ├── Action.java │ │ │ ├── DefaultIndexAction.java │ │ │ ├── ErrorAction.java │ │ │ └── FileAction.java │ │ │ ├── annotation │ │ │ └── Route.java │ │ │ ├── exception │ │ │ └── ServerSettingException.java │ │ │ ├── filter │ │ │ └── Filter.java │ │ │ ├── handler │ │ │ ├── ActionHandler.java │ │ │ ├── HttpChunkContentCompressor.java │ │ │ ├── Request.java │ │ │ └── Response.java │ │ │ └── listener │ │ │ └── FileProgressiveFutureListener.java │ │ └── test │ │ ├── java │ │ └── vip │ │ │ └── yeee │ │ │ └── memo │ │ │ └── demo │ │ │ └── netty │ │ │ └── webserver │ │ │ └── ExampleAction.java │ │ └── resources │ │ └── logback.xml ├── pom.xml ├── sub-database-table │ ├── apache-shardingsphere │ │ ├── pom.xml │ │ ├── sharding-database │ │ │ └── pom.xml │ │ └── sharding-tables │ │ │ ├── pom.xml │ │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── vip │ │ │ │ │ └── yeee │ │ │ │ │ └── memo │ │ │ │ │ └── demo │ │ │ │ │ └── subdt │ │ │ │ │ └── apachesharding │ │ │ │ │ ├── ShardingTablesApplication.java │ │ │ │ │ ├── entity │ │ │ │ │ └── Test.java │ │ │ │ │ ├── mapper │ │ │ │ │ └── TestMapper.java │ │ │ │ │ └── service │ │ │ │ │ ├── TestService.java │ │ │ │ │ └── TestServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ └── java │ │ │ └── vip │ │ │ └── yeee │ │ │ └── memo │ │ │ └── demo │ │ │ └── subdt │ │ │ └── apachesharding │ │ │ └── ShardingTablesTest.java │ └── pom.xml ├── tokenizing │ ├── ik-analyzer │ │ └── pom.xml │ ├── lionsoul-jcseg │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── vip │ │ │ │ └── yeee │ │ │ │ └── memo │ │ │ │ └── demo │ │ │ │ └── tokenizing │ │ │ │ └── jcseg │ │ │ │ ├── LionsoulJcsegApplication.java │ │ │ │ └── example │ │ │ │ └── JcsegExample.java │ │ │ └── resources │ │ │ └── jcseg.properties │ └── pom.xml ├── webservice-example │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── vip │ │ └── yeee │ │ └── memo │ │ └── demo │ │ └── webservice │ │ ├── client │ │ └── CxfClient.java │ │ ├── config │ │ └── CxfConfig.java │ │ ├── entity │ │ └── User.java │ │ └── service │ │ ├── UserService.java │ │ └── impl │ │ └── UserServiceImpl.java └── websocket-example │ ├── README.md │ ├── pom.xml │ ├── src │ └── main │ │ ├── java │ │ └── vip │ │ │ └── yeee │ │ │ └── memo │ │ │ └── demo │ │ │ └── websocket │ │ │ ├── WebsocketDemoApplication.java │ │ │ ├── controller │ │ │ ├── ChatController.java │ │ │ └── LoginController.java │ │ │ ├── mapper │ │ │ └── LoginMapper.java │ │ │ ├── po │ │ │ ├── MSG.java │ │ │ ├── Message.java │ │ │ ├── Staff.java │ │ │ └── User.java │ │ │ ├── service │ │ │ ├── LoginService.java │ │ │ └── impl │ │ │ │ └── LoginServiceImpl.java │ │ │ └── websocket │ │ │ └── WebSocketServer.java │ │ └── resources │ │ ├── application.yml │ │ ├── logback.xml │ │ ├── mapper │ │ └── LoginMapper.xml │ │ ├── static │ │ ├── css │ │ │ ├── bootstrap-datetimepicker.min.css │ │ │ └── jquery.bootgrid.min.css │ │ └── js │ │ │ ├── bootstrap-datetimepicker.min.js │ │ │ ├── jquery-1.12.3.min.js │ │ │ └── jquery.bootgrid.min.js │ │ └── templates │ │ ├── chatroom.html │ │ ├── fail.html │ │ └── login.html │ └── staff.sql ├── spring-cloud ├── auth-sso │ ├── api-auth-server │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── vip │ │ │ │ └── yeee │ │ │ │ └── memo │ │ │ │ └── demo │ │ │ │ └── springcloud │ │ │ │ └── apiauth │ │ │ │ └── server │ │ │ │ ├── CloudApiAuthServerApplication.java │ │ │ │ ├── biz │ │ │ │ └── ApiAuthBiz.java │ │ │ │ ├── controller │ │ │ │ └── ApiAuthController.java │ │ │ │ └── model │ │ │ │ └── request │ │ │ │ └── UserLoginRequest.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ └── logback.xml │ ├── pom.xml │ ├── web-auth-server │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── vip │ │ │ │ └── yeee │ │ │ │ └── memo │ │ │ │ └── demo │ │ │ │ └── springcloud │ │ │ │ └── webauth │ │ │ │ └── server │ │ │ │ ├── CloudWebauthServerApplication.java │ │ │ │ ├── biz │ │ │ │ └── UserAuthBiz.java │ │ │ │ ├── controller │ │ │ │ └── UserAuthController.java │ │ │ │ ├── model │ │ │ │ ├── bo │ │ │ │ │ ├── FrontUserBo.java │ │ │ │ │ └── SystemUserBo.java │ │ │ │ ├── request │ │ │ │ │ └── UserAuthRequest.java │ │ │ │ └── vo │ │ │ │ │ └── UserAuthVo.java │ │ │ │ └── service │ │ │ │ └── CustomUserDetailsService.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ ├── logback.xml │ │ │ └── sql │ │ │ └── oauth2.sql │ ├── web-resource-server1 │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── vip │ │ │ │ └── yeee │ │ │ │ └── memo │ │ │ │ └── demo │ │ │ │ └── springcloud │ │ │ │ └── webresource │ │ │ │ └── server1 │ │ │ │ ├── CloudWebResourceServer1Application.java │ │ │ │ ├── biz │ │ │ │ └── WebResourcesServer1Biz.java │ │ │ │ ├── controller │ │ │ │ └── WebResourcesServer1Controller.java │ │ │ │ └── model │ │ │ │ ├── request │ │ │ │ └── UserAuthRequest.java │ │ │ │ └── vo │ │ │ │ └── UserAuthVo.java │ │ │ └── resources │ │ │ └── application.yml │ └── web-resource-server2 │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── vip │ │ │ └── yeee │ │ │ └── memo │ │ │ └── demo │ │ │ └── springcloud │ │ │ └── webresource │ │ │ └── server2 │ │ │ ├── CloudWebResourceServer2Application.java │ │ │ ├── biz │ │ │ └── WebResourcesServer2Biz.java │ │ │ └── controller │ │ │ └── WebResourcesServer2Controller.java │ │ └── resources │ │ └── application.yml ├── config │ ├── nacos2 │ │ └── pom.xml │ └── pom.xml ├── gateway │ ├── pom.xml │ └── springcloud-gateway │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── vip │ │ │ └── yeee │ │ │ └── memo │ │ │ └── demo │ │ │ └── springcloud │ │ │ └── gateway │ │ │ └── cloudgateway │ │ │ ├── SpringCloudGatewayApplication.java │ │ │ ├── component │ │ │ └── TestBiz.java │ │ │ ├── configure │ │ │ ├── GlobalCorsConfig.java │ │ │ ├── RateLimiterConfig.java │ │ │ └── swagger │ │ │ │ ├── GatewaySwaggerConfig.java │ │ │ │ ├── GatewaySwaggerHandler.java │ │ │ │ └── GatewaySwaggerProvider.java │ │ │ ├── controller │ │ │ └── TestGatewayController.java │ │ │ ├── filter │ │ │ ├── AuthFilter.java │ │ │ └── XssFilter.java │ │ │ ├── handle │ │ │ └── GatewayExceptionHandler.java │ │ │ ├── properties │ │ │ └── XssProperties.java │ │ │ └── utils │ │ │ └── WebFluxResponseUtil.java │ │ └── resources │ │ ├── application.yml │ │ ├── bootstrap.yml │ │ ├── logback.xml │ │ ├── sentinel-rule │ │ ├── degraderule.json │ │ └── flowrule.json │ │ ├── yeee-gateway.yml │ │ └── yeee-sentinel.yml ├── pom.xml ├── protect │ ├── pom.xml │ └── sentinel │ │ ├── help.txt │ │ └── pom.xml ├── reactive-programming │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── vip │ │ │ │ └── yeee │ │ │ │ └── memo │ │ │ │ └── demo │ │ │ │ └── reactive │ │ │ │ └── prog │ │ │ │ ├── ReactiveSpringTutorialApplication.java │ │ │ │ ├── domain │ │ │ │ ├── Book.java │ │ │ │ ├── BookQuery.java │ │ │ │ └── InMemoryDataSource.java │ │ │ │ ├── s01ReactiveProgramming │ │ │ │ ├── C01FunctionalProgramming101.java │ │ │ │ └── C02ReactiveProgramming101.java │ │ │ │ ├── s02ReactorAPIs │ │ │ │ └── C01ReactorAPIs.java │ │ │ │ ├── s03WebfluxAnnotationOrRouter │ │ │ │ ├── C01AnnotationBased.java │ │ │ │ ├── C02ControllerAdviceExceptionHandler.java │ │ │ │ ├── C03RouterBased.java │ │ │ │ ├── C04ReactiveControllerHelper.java │ │ │ │ └── C05GlobalErrorWebExceptionHandler.java │ │ │ │ ├── s04WebFluxWebClient │ │ │ │ └── C01WebClientShowcases.java │ │ │ │ ├── s05ReactiveDataAccesWithR2dbc │ │ │ │ ├── C01BookRepository.java │ │ │ │ ├── C02BookControllerWithR2dbc.java │ │ │ │ ├── C03R2dbcConfiguration.java │ │ │ │ └── C04WebClientR2dbc.java │ │ │ │ ├── s06ReactiveWebSecurity │ │ │ │ └── C01SecurityConfigurer.java │ │ │ │ ├── s07ReactiveLoadBalancer │ │ │ │ └── C01ReactiveLoadBalancer.java │ │ │ │ ├── s08ReactiveCircuitBreaker │ │ │ │ └── C01ReactiveCircuitBreaker.java │ │ │ │ ├── s09CloudGateway │ │ │ │ └── C01CloudGateway.java │ │ │ │ ├── s10ReactiveTesting │ │ │ │ └── package-info.java │ │ │ │ └── s11ThreadModel │ │ │ │ └── C01ThreadModel.java │ │ └── resources │ │ │ ├── application.yml │ │ │ └── schema.sql │ │ └── test │ │ ├── java │ │ └── vip │ │ │ └── yeee │ │ │ └── memo │ │ │ └── demo │ │ │ └── reactive │ │ │ └── prog │ │ │ ├── ReactiveSpringTutorialApplicationTests.java │ │ │ ├── s10ReactiveTesting │ │ │ ├── C01SimpleReactiveTesting.java │ │ │ ├── C02R2dbcTesting.java │ │ │ ├── C03WebFluxTesting.java │ │ │ └── C04SpringBootTesting.java │ │ │ └── test │ │ │ └── ReactorSomeApisTest.java │ │ └── resources │ │ └── grafana_dashboard.json ├── register │ ├── eureka │ │ ├── eureka-client-app1 │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── vip │ │ │ │ │ └── yeee │ │ │ │ │ └── memo │ │ │ │ │ └── demo │ │ │ │ │ └── springcloud │ │ │ │ │ └── register │ │ │ │ │ └── eureka │ │ │ │ │ └── client │ │ │ │ │ └── DemoClientApplication.java │ │ │ │ └── resources │ │ │ │ └── application.yml │ │ ├── eureka-server │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── vip │ │ │ │ │ └── yeee │ │ │ │ │ └── memo │ │ │ │ │ └── demo │ │ │ │ │ └── springcloud │ │ │ │ │ └── register │ │ │ │ │ └── eureka │ │ │ │ │ └── server │ │ │ │ │ └── EurekaServerApplication.java │ │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ └── banner.txt │ │ └── pom.xml │ ├── nacos │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── resources │ │ │ └── nacos-version.txt │ └── pom.xml ├── rpc │ ├── grpc │ │ ├── README.md │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── vip │ │ │ │ └── yeee │ │ │ │ └── memo │ │ │ │ └── demo │ │ │ │ └── grpc │ │ │ │ ├── GrpcDemoApplication.java │ │ │ │ ├── client │ │ │ │ └── HelloWorldClient.java │ │ │ │ └── server │ │ │ │ └── HelloWorldServer.java │ │ │ └── proto │ │ │ └── helloword.proto │ ├── openfeign │ │ ├── feign-client-01 │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── vip │ │ │ │ │ └── yeee │ │ │ │ │ └── memo │ │ │ │ │ └── demo │ │ │ │ │ └── scloud │ │ │ │ │ └── rpc │ │ │ │ │ └── feign01 │ │ │ │ │ ├── FeignClient01Application.java │ │ │ │ │ └── controller │ │ │ │ │ └── Feign01Controller.java │ │ │ │ └── resources │ │ │ │ └── bootstrap.yml │ │ ├── feign-client-02 │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── vip │ │ │ │ │ └── yeee │ │ │ │ │ └── memo │ │ │ │ │ └── demo │ │ │ │ │ └── scloud │ │ │ │ │ └── rpc │ │ │ │ │ └── feign02 │ │ │ │ │ ├── FeignClient02Application.java │ │ │ │ │ ├── controller │ │ │ │ │ └── Feign02Controller.java │ │ │ │ │ ├── feign │ │ │ │ │ ├── BookService.java │ │ │ │ │ ├── FeignConfiguration.java │ │ │ │ │ └── FeignResultDecoder.java │ │ │ │ │ └── model │ │ │ │ │ ├── Book.java │ │ │ │ │ ├── Error.java │ │ │ │ │ └── Response.java │ │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ └── bootstrap.yml │ │ ├── feign-client-03 │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── vip │ │ │ │ │ └── yeee │ │ │ │ │ └── memo │ │ │ │ │ └── demo │ │ │ │ │ └── scloud │ │ │ │ │ └── rpc │ │ │ │ │ └── feign03 │ │ │ │ │ ├── FeignClient03Application.java │ │ │ │ │ ├── biz │ │ │ │ │ └── Feign03Biz.java │ │ │ │ │ ├── controller │ │ │ │ │ └── Feign03Controller.java │ │ │ │ │ └── feign │ │ │ │ │ ├── Feign01FeignClient.java │ │ │ │ │ ├── Feign02FeignClient.java │ │ │ │ │ ├── TestFeignService.java │ │ │ │ │ └── fallback │ │ │ │ │ └── TestFeignFallback.java │ │ │ │ └── resources │ │ │ │ └── application.yml │ │ └── pom.xml │ ├── pom.xml │ └── thrift │ │ └── pom.xml └── transaction │ ├── pom.xml │ └── seata │ ├── pom.xml │ ├── seata-client-01 │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── vip │ │ │ └── yeee │ │ │ └── memo │ │ │ └── demo │ │ │ └── scloud │ │ │ └── tac │ │ │ └── seata01 │ │ │ ├── SeataClient01Application.java │ │ │ ├── biz │ │ │ └── SeataClient01Biz.java │ │ │ ├── controller │ │ │ └── SeataClient01Controller.java │ │ │ └── domain │ │ │ └── mysql │ │ │ ├── entity │ │ │ └── TestEntity.java │ │ │ ├── mapper │ │ │ └── TestEntityMapper.java │ │ │ └── service │ │ │ └── TestEntityService.java │ │ └── resources │ │ └── bootstrap.yml │ ├── seata-client-02 │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── vip │ │ │ └── yeee │ │ │ └── memo │ │ │ └── demo │ │ │ └── scloud │ │ │ └── tac │ │ │ └── seata02 │ │ │ ├── SeataClient02Application.java │ │ │ ├── biz │ │ │ └── SeataClient02Biz.java │ │ │ ├── controller │ │ │ └── SeataClient02Controller.java │ │ │ └── domain │ │ │ └── mysql │ │ │ ├── entity │ │ │ └── TestEntity.java │ │ │ ├── mapper │ │ │ └── TestEntityMapper.java │ │ │ └── service │ │ │ └── TestEntityService.java │ │ └── resources │ │ └── bootstrap.yml │ ├── seata-client-03 │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── vip │ │ │ └── yeee │ │ │ └── memo │ │ │ └── demo │ │ │ └── scloud │ │ │ └── tac │ │ │ └── seata03 │ │ │ ├── SeataClient03Application.java │ │ │ ├── biz │ │ │ └── SeataClient03Biz.java │ │ │ ├── controller │ │ │ └── SeataClient03Controller.java │ │ │ └── feign │ │ │ ├── SeataClient01FeignClient.java │ │ │ ├── SeataClient02FeignClient.java │ │ │ └── SeataClientPgSQLFeignClient.java │ │ └── resources │ │ └── bootstrap.yml │ ├── seata-client-postgresql │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── vip │ │ │ └── yeee │ │ │ └── memo │ │ │ └── demo │ │ │ └── scloud │ │ │ └── tac │ │ │ └── seatapgsql │ │ │ ├── SeataClientPgsqlApplication.java │ │ │ ├── biz │ │ │ └── SeataPgSQLBiz.java │ │ │ ├── controller │ │ │ └── SeataPgSQLController.java │ │ │ ├── domain │ │ │ └── pgsql │ │ │ │ ├── entity │ │ │ │ └── Test1.java │ │ │ │ ├── mapper │ │ │ │ └── Test1Mapper.java │ │ │ │ └── service │ │ │ │ └── Test1Service.java │ │ │ └── typehandler │ │ │ ├── GeometryModule.java │ │ │ ├── JTsGeometryTypeHandler.java │ │ │ └── JacksonConfig.java │ │ └── resources │ │ └── bootstrap.yml │ └── seata-server │ ├── pom.xml │ └── start.txt ├── test-tool ├── gatling-scripts │ ├── pom.xml │ └── src │ │ └── test │ │ └── java │ │ └── gatling │ │ └── script │ │ └── LoadSimulation.scala ├── jMeter │ ├── example │ │ └── note.txt │ └── pom.xml └── pom.xml └── third-sdk ├── aliyun-sdk ├── ali-nls │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── vip │ │ │ │ └── yeee │ │ │ │ └── memo │ │ │ │ └── demo │ │ │ │ └── thirdsdk │ │ │ │ └── aliyun │ │ │ │ ├── AliNlsApplication.java │ │ │ │ └── nls │ │ │ │ ├── bo │ │ │ │ └── AudioGenBo.java │ │ │ │ ├── kit │ │ │ │ ├── AliyunNlsHelper.java │ │ │ │ └── AliyunNlsKit.java │ │ │ │ └── properties │ │ │ │ ├── AliyunNlsProperties.java │ │ │ │ └── GenNewsAudioConfig.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── vip │ │ └── yeee │ │ └── memo │ │ └── demo │ │ └── thirdsdk │ │ └── aliyun │ │ └── nls │ │ └── TestNls.java ├── ali-oss │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── vip │ │ │ │ └── yeee │ │ │ │ └── memo │ │ │ │ └── demo │ │ │ │ └── thirdsdk │ │ │ │ └── aliyun │ │ │ │ └── oss │ │ │ │ └── AliyunOssApplication.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── vip │ │ └── yeee │ │ └── memo │ │ └── demo │ │ └── thirdsdk │ │ └── aliyun │ │ └── oss │ │ └── AliOssTest.java ├── ali-pnp │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── vip │ │ └── yeee │ │ └── memo │ │ └── demo │ │ └── thirdsdk │ │ └── aliyun │ │ └── pnp │ │ └── PhoneProtectService.java ├── ali-sms │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── vip │ │ └── yeee │ │ └── memo │ │ └── demo │ │ └── thirdsdk │ │ └── aliyun │ │ ├── AliSmsApplication.java │ │ └── sms │ │ └── kit │ │ └── CloudSmsUtil.java └── pom.xml ├── blockchain ├── antchain │ ├── ac-call-smart-contract-demo │ │ ├── README.md │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── vip │ │ │ │ └── yeee │ │ │ │ └── memo │ │ │ │ └── demo │ │ │ │ └── blockchain │ │ │ │ └── ac │ │ │ │ └── call │ │ │ │ ├── AcCallSmartContractDemo.java │ │ │ │ └── sample │ │ │ │ └── DemoSample.java │ │ │ └── resources │ │ │ ├── client.crt │ │ │ ├── client.key │ │ │ ├── trustCa │ │ │ └── user.key │ ├── ac-smart-contract-demo │ │ ├── demo.sol │ │ └── pom.xml │ └── pom.xml ├── hyperchain │ ├── hc-call-smart-contract-demo │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── vip │ │ │ │ └── yeee │ │ │ │ └── memo │ │ │ │ └── demo │ │ │ │ └── blockchain │ │ │ │ └── hyperchain │ │ │ │ └── biz │ │ │ │ ├── CallSmartContractDemoApplication.java │ │ │ │ ├── bo │ │ │ │ ├── BlockchainAccountBO.java │ │ │ │ ├── NFTPropertyMetaDataBO.java │ │ │ │ └── NftIssueBO.java │ │ │ │ ├── config │ │ │ │ └── ChainProperties.java │ │ │ │ └── service │ │ │ │ ├── NFTPropertyService.java │ │ │ │ └── NFTPropertyServiceImpl.java │ │ │ └── resources │ │ │ └── application.yml │ ├── hc-smart-contract-demo │ │ ├── README.md │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ └── vip │ │ │ │ └── yeee │ │ │ │ └── memo │ │ │ │ └── demo │ │ │ │ └── blockchain │ │ │ │ └── hyperchain │ │ │ │ └── contract │ │ │ │ ├── MetaInfo.java │ │ │ │ ├── NFTPropertyContract.java │ │ │ │ └── NFTPropertyService.java │ │ │ └── test │ │ │ └── java │ │ │ └── vip │ │ │ └── yeee │ │ │ └── memo │ │ │ └── demo │ │ │ └── blockchain │ │ │ └── hyperchain │ │ │ └── contract │ │ │ └── NFTPropertyTest.java │ └── pom.xml └── pom.xml ├── pom.xml ├── third-pay ├── README.md ├── pom.xml ├── sql │ └── pay.sql └── src │ └── main │ ├── java │ └── vip │ │ └── yeee │ │ └── memo │ │ └── demo │ │ └── thirdsdk │ │ └── pay │ │ ├── ThirdPayApplication.java │ │ ├── biz │ │ └── OrderBiz.java │ │ ├── constant │ │ ├── OrderEnum.java │ │ └── PayConstant.java │ │ ├── controller │ │ ├── InnerServerController.java │ │ └── OrderBizController.java │ │ ├── domain │ │ └── mysql │ │ │ ├── entity │ │ │ ├── PayOrder.java │ │ │ └── RefundOrder.java │ │ │ └── mapper │ │ │ ├── PayOrderMapper.java │ │ │ └── RefundOrderMapper.java │ │ ├── model │ │ ├── bo │ │ │ ├── AliAppUnifiedOrderRespBO.java │ │ │ ├── AliPayConfigBO.java │ │ │ ├── AlipayUnifiedOrderReqBO.java │ │ │ ├── ChannelRetMsgBO.java │ │ │ ├── CloseOrderReqBO.java │ │ │ ├── CommonUnifiedOrderRespBO.java │ │ │ ├── QueryOrderReqBO.java │ │ │ ├── RefundOrderReqBO.java │ │ │ ├── TransferReqBO.java │ │ │ ├── UnifiedOrderReqBO.java │ │ │ ├── UnifiedOrderRespBO.java │ │ │ ├── WxAppUnifiedOrderRespBO.java │ │ │ ├── WxJsapiUnifiedOrderRespBO.java │ │ │ ├── WxPayConfigBO.java │ │ │ ├── WxV3PayUnifiedOrderRespBO.java │ │ │ ├── WxpayUnifiedOrderReqBO.java │ │ │ └── WxpayUnifiedOrderRespBO.java │ │ └── vo │ │ │ ├── req │ │ │ ├── OrderPayReqVO.java │ │ │ ├── OrderQueryReqVO.java │ │ │ ├── OrderRefundReqVO.java │ │ │ ├── SubmitOrderReqVO.java │ │ │ ├── UnifiedOrderQueryReqVO.java │ │ │ ├── UnifiedOrderRefundReqVO.java │ │ │ └── UnifiedOrderReqVO.java │ │ │ └── resp │ │ │ ├── CheckPayStateResVO.java │ │ │ ├── SubmitOrderRespVO.java │ │ │ └── UnifiedOrderRespVO.java │ │ ├── paykit │ │ ├── PayContext.java │ │ ├── PayKit.java │ │ ├── alipay │ │ │ ├── AliAppPayKit.java │ │ │ ├── AliBarPayKit.java │ │ │ ├── AliPcPayKit.java │ │ │ ├── AliQrPayKit.java │ │ │ ├── AliWapPayKit.java │ │ │ └── BaseAliPayKit.java │ │ └── wxpay │ │ │ ├── v2 │ │ │ ├── BaseWxPayKit.java │ │ │ ├── WxAppPayKit.java │ │ │ ├── WxBarPayKit.java │ │ │ ├── WxH5PayKit.java │ │ │ ├── WxJsapiPayKit.java │ │ │ └── WxNativePayKit.java │ │ │ └── v3 │ │ │ ├── BaseWxV3PayKit.java │ │ │ ├── WxAppV3PayKit.java │ │ │ ├── WxBarV3PayKit.java │ │ │ ├── WxH5V3PayKit.java │ │ │ ├── WxMiniV3PayKit.java │ │ │ ├── WxNativeV3PayKit.java │ │ │ ├── WxV3PayKit.java │ │ │ ├── WxWpV3PayKit.java │ │ │ └── partner │ │ │ ├── WxAppPartnerV3PayKit.java │ │ │ ├── WxH5PartnerV3PayKit.java │ │ │ ├── WxMiniPartnerV3PayKit.java │ │ │ ├── WxPartnerV3PayKit.java │ │ │ ├── WxWpPartnerV3PayKit.java │ │ │ └── request │ │ │ └── WxPayUnifiedOrderV3PartnerRequest.java │ │ ├── properties │ │ ├── AliPayConfig.java │ │ ├── PayProperties.java │ │ └── WxPayConfig.java │ │ ├── service │ │ ├── PayChannelConfigService.java │ │ └── UnifiedPayOrderService.java │ │ └── utils │ │ ├── AmountUtil.java │ │ └── SeqUtil.java │ └── resources │ └── application.yml └── weixin-sdk ├── pom.xml ├── wx-ma ├── pom.xml └── src │ └── main │ ├── java │ └── vip │ │ └── yeee │ │ └── memo │ │ └── demo │ │ └── thirdsdk │ │ └── weixin │ │ └── ma │ │ ├── WeiXinMaApplication.java │ │ ├── handler │ │ └── TextWxMaMessageHandler.java │ │ └── service │ │ └── WxMaConfigService.java │ └── resources │ └── application.yml └── wx-mp ├── pom.xml └── src └── main ├── java └── vip │ └── yeee │ └── memo │ └── demo │ └── thirdsdk │ └── weixin │ └── mp │ ├── WeiXinMpApplication.java │ ├── handler │ └── WxMpEventHandler.java │ └── service │ └── WxMpConfigService.java └── resources └── application.yml /.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | logs 3 | out 4 | .idea 5 | *.iml 6 | /simple-tools/code-generate-mp/ 7 | -------------------------------------------------------------------------------- /doc/images/yeee-memo-qq.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeeevip/yeee-memo/c5a120071613f0c30d3a3491bd6b5fbfbf7b3bfa/doc/images/yeee-memo-qq.jpg -------------------------------------------------------------------------------- /doc/images/yeee_wp.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeeevip/yeee-memo/c5a120071613f0c30d3a3491bd6b5fbfbf7b3bfa/doc/images/yeee_wp.jpg -------------------------------------------------------------------------------- /doc/images/yeee_wx.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeeevip/yeee-memo/c5a120071613f0c30d3a3491bd6b5fbfbf7b3bfa/doc/images/yeee_wx.jpg -------------------------------------------------------------------------------- /learn-example/algorithm/coding/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.10) 2 | project(PreparePAT) 3 | 4 | set(CMAKE_CXX_STANDARD 11) 5 | 6 | #[[add_executable(PreparePAT 7 | HashExample/A1025.cpp) 8 | add_executable(PreparePAT 9 | HashExample/day0611-1.cpp)]] 10 | add_executable(PreparePAT 11 | program201903/1002.cpp) 12 | -------------------------------------------------------------------------------- /learn-example/algorithm/coding/DataStructureExample/LinkedList/problem-1.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * 链表排序 3 | * 4 | * 题目描述 5 | 已有a、b两个链表,每个链表中的结点包括学号、成绩。要求把两个链表合并,按学号升序排列。 6 | 7 | 输入 8 | 第一行,a、b两个链表元素的数量N、M,用空格隔开。 接下来N行是a的数据 然后M行是b的数据 每行数据由学号和成绩两部分组成 9 | 10 | 输出 11 | 按照学号升序排列的数据 12 | 13 | 样例输入 14 | 2 3 15 | 5 100 16 | 6 89 17 | 3 82 18 | 4 95 19 | 2 10 20 | 样例输出 21 | 2 10 22 | 3 82 23 | 4 95 24 | 5 100 25 | 6 89 26 | * 27 | * */ 28 | -------------------------------------------------------------------------------- /learn-example/algorithm/coding/DataStructureExample/LinkedList/problem-2.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * 最快合并链表(线性表) 3 | * 4 | * 题目描述 5 | 知L1、L2分别为两循环单链表的头结点指针,m,n分别为L1、L2表中数据结点个数。要求设计一算法,用最快速度将两表合并成一个带头结点的循环单链表。 6 | 输入 7 | m=5 8 | 9 | 3 6 1 3 5 10 | 11 | n=4. 12 | 13 | 7 10 8 4 14 | 15 | 输出 16 | 3 6 1 3 5 7 10 8 4 17 | 18 | 样例输入 19 | 7 20 | 3 5 1 3 4 6 0 21 | 5 22 | 5 4 8 9 5 23 | 样例输出 24 | 3 5 1 3 4 6 0 5 4 8 9 5 25 | * 26 | * */ 27 | -------------------------------------------------------------------------------- /learn-example/algorithm/coding/DataStructureExample/LinkedList/problem-3.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * 链表查找(线性表) 3 | * 4 | * 题目描述 5 | 线性表(a1,a2,a3,…,an)中元素递增有序且按顺序存储于计算机内。要求设计一算法完成: 6 | (1) 用最少时间在表中查找数值为x的元素。 7 | (2) 若找到将其与后继元素位置相交换。 8 | (3) 若找不到将其插入表中并使表中元素仍递增有序。 9 | 输入 10 | 输入:x=3 11 | 12 | 输入长度:9 13 | 14 | 输入数据:2 3 5 7 12 15 17 23 45 15 | 16 | 输出 17 | 相同元素为:3 18 | 19 | 交换后的链表为:2 5 3 7 12 15 17 23 45 20 | 21 | 样例输入 22 | 4 23 | 9 24 | 2 3 5 7 12 15 17 23 45 25 | 样例输出 26 | no 27 | 2 3 4 5 7 12 15 17 23 45 28 | * 29 | * */ -------------------------------------------------------------------------------- /learn-example/algorithm/coding/DataStructureExample/LinkedList/problem-4.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * 单链表反转 3 | * 4 | * 题目描述 5 | 根据一个整数序列构造一个单链表,然后将其反转。 6 | 7 | 例如:原单链表为 2 3 4 5 ,反转之后为5 4 3 2 8 | 9 | 输入 10 | 输入包括多组测试数据,每组测试数据占一行,第一个为大于等于0的整数n,表示该单链表的长度,后面跟着n个整数,表示链表的每一个元素。整数之间用空格隔开 11 | 输出 12 | 针对每组测试数据,输出包括两行,分别是反转前和反转后的链表元素,用空格隔开 13 | 14 | 如果链表为空,则只输出一行,list is empty 15 | 16 | 样例输入 17 | 5 1 2 3 4 5 18 | 0 19 | 样例输出 20 | 1 2 3 4 5 21 | 5 4 3 2 1 22 | list is empty 23 | * 24 | * 25 | * */ -------------------------------------------------------------------------------- /learn-example/algorithm/coding/DataStructureExample/LinkedList/problem-6.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | *算法2-25 有序单链表删除重复元素 3 | * 4 | * 题目描述 5 | 根据一个递增的整数序列构造有序单链表,删除其中的重复元素 6 | 输入 7 | 输入包括多组测试数据,每组测试数据占一行,第一个为大于等于0的整数n,表示该单链表的长度,后面跟着n个整数,表示链表的每一个元素。整数之间用空格隔开 8 | 输出 9 | 针对每组测试数据,输出包括两行,分别是删除前和删除后的链表元素,用空格隔开 10 | 11 | 如果链表为空,则只输出一行,list is empty 12 | 13 | 样例输入 14 | 5 1 2 3 4 5 15 | 5 1 1 2 2 3 16 | 0 17 | 样例输出 18 | 1 2 3 4 5 19 | 1 2 3 4 5 20 | 1 1 2 2 3 21 | 1 2 3 22 | list is empty 23 | * 24 | * */ -------------------------------------------------------------------------------- /learn-example/algorithm/coding/DataStructureExample/Queue/problem-1.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | *C语言-数字交换 3 | * 4 | * 题目描述 5 | 输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写三个函数; ①输入10个数;②进行处理;③输出10个数。 6 | 7 | 输入 8 | 10个整数 9 | 10 | 输出 11 | 整理后的十个数,每个数后跟一个空格(注意最后一个数后也有空格) 12 | 13 | 样例输入 14 | 2 1 3 4 5 6 7 8 10 9 15 | 样例输出 16 | 1 2 3 4 5 6 7 8 9 10 17 | * */ -------------------------------------------------------------------------------- /learn-example/algorithm/coding/DataStructureExample/Statck/problem-1.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * 简单计算器 3 | * 4 | * 题目描述 5 | 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。 6 | 7 | 输入 8 | 测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。 9 | 10 | 输出 11 | 对每个测试用例输出1行,即该表达式的值,精确到小数点后2位。 12 | 13 | 样例输入 14 | 30 / 90 - 26 + 97 - 5 - 6 - 13 / 88 * 6 + 51 / 29 + 79 * 87 + 57 * 92 15 | 0 16 | 样例输出 17 | 12178.21 18 | * */ -------------------------------------------------------------------------------- /learn-example/algorithm/coding/DataStructureExample/Statck/problem-2.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | *Problem E 3 | * 4 | * 题目描述 5 | 请写一个程序,判断给定表达式中的括号是否匹配,表达式中的合法括号为”(“, “)”, “[", "]“, “{“, ”}”,这三个括号可以按照任意的次序嵌套使用。 6 | 7 | 输入 8 | 有多个表达式,输入数据的第一行是表达式的数目,每个表达式占一行。 9 | 10 | 输出 11 | 对每个表达式,若其中的括号是匹配的,则输出”yes”,否则输出”no”。 12 | 样例输入 13 | 4 14 | [(d+f)*{}] 15 | [(2+3)) 16 | ()} 17 | [4(6]7)9 18 | 样例输出 19 | yes 20 | no 21 | no 22 | no 23 | * 24 | * */ -------------------------------------------------------------------------------- /learn-example/algorithm/coding/MathProblemExample/BigNumber/problem-1.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * a+b 3 | * 4 | * 题目描述 5 | 实现一个加法器,使其能够输出a+b的值。 6 | 7 | 输入 8 | 输入包括两个数a和b,其中a和b的位数不超过1000位。 9 | 10 | 输出 11 | 可能有多组测试数据,对于每组数据, 12 | 输出a+b的值。 13 | 14 | 样例输入 15 | 6 8 16 | 2000000000 30000000000000000000 17 | 样例输出 18 | 14 19 | 30000000002000000000 20 | * */ -------------------------------------------------------------------------------- /learn-example/algorithm/coding/MathProblemExample/BigNumber/problem-2.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * N的阶乘 3 | * 4 | * 题目描述 5 | 输入一个正整数N,输出N的阶乘。 6 | 7 | 输入 8 | 正整数N(0<=N<=1000) 9 | 10 | 输出 11 | 输入可能包括多组数据,对于每一组输入数据,输出N的阶乘 12 | 13 | 样例输入 14 | 0 15 | 4 16 | 7 17 | 样例输出 18 | 1 19 | 24 20 | 5040 21 | * 22 | * 23 | * */ -------------------------------------------------------------------------------- /learn-example/algorithm/coding/MathProblemExample/BigNumber/problem-3.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * 浮点数加法 3 | * 4 | * 题目描述 5 | 求2个浮点数相加的和 6 | 题目中输入输出中出现浮点数都有如下的形式: 7 | P1P2...Pi.Q1Q2...Qj 8 | 对于整数部分,P1P2...Pi是一个非负整数 9 | 对于小数部分,Qj不等于0 10 | 11 | 输入 12 | 对于每组案例,第1行是测试数据的组数n,每组测试数据占2行,分别是两个加数。 13 | 每组测试数据之间有一个空行,每行数据不超过100个字符 14 | 15 | 输出 16 | 每组案例是n行,每组测试数据有一行输出是相应的和。 17 | 输出保证一定是一个小数部分不为0的浮点数 18 | 19 | 样例输入 20 | 2 21 | 3.756 22 | 90.564 23 | 24 | 4543.5435 25 | 43.25 26 | 27 | 样例输出 28 | 94.32 29 | 4586.7935 30 | * 31 | * 32 | * */ 33 | -------------------------------------------------------------------------------- /learn-example/algorithm/coding/MathProblemExample/BigNumber/problem-4.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * 进制转换 3 | * 4 | * 题目描述 5 | 将M进制的数X转换为N进制的数输出。 6 | 7 | 输入 8 | 输入的第一行包括两个整数:M和N(2<=M,N<=36)。 9 | 下面的一行输入一个数X,X是M进制的数,现在要求你将M进制的数X转换成N进制的数输出。 10 | 11 | 输出 12 | 输出X的N进制表示的数。 13 | 14 | 样例输入 15 | 10 2 16 | 11 17 | 样例输出 18 | 1011 19 | 提示 20 | 注意输入时如有字母,则字母为大写,输出时如有字母,则字母为小写。 21 | * 22 | * */ -------------------------------------------------------------------------------- /learn-example/algorithm/coding/MathProblemExample/BigNumber/problem-5.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * 大整数排序 3 | * 4 | * 5 | * 题目描述 6 | 对N个长度最长可达到1000的数进行排序。 7 | 8 | 输入 9 | 输入第一行为一个整数N,(1<=N<=100)。 10 | 接下来的N行每行有一个数,数的长度范围为1<=len<=1000。 11 | 每个数都是一个正数,并且保证不包含前缀零。 12 | 13 | 输出 14 | 可能有多组测试数据,对于每组数据,将给出的N个数从小到大进行排序,输出排序后的结果,每个数占一行。 15 | 16 | 样例输入 17 | 4 18 | 123 19 | 1234 20 | 12345 21 | 2345 22 | 样例输出 23 | 123 24 | 1234 25 | 2345 26 | 12345 27 | * 28 | * */ -------------------------------------------------------------------------------- /learn-example/algorithm/coding/MathProblemExample/BigNumber/problem-6.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * 10进制 VS 2进制 3 | * 4 | * 5 | * 题目描述 6 | 对于一个十进制数A,将A转换为二进制数,然后按位逆序排列,再转换为十进制数B,我们称B为A的二进制逆序数。 7 | 例如对于十进制数173,它的二进制形式为10101101,逆序排列得到10110101,其十进制数为181,181即为173的二进制逆序数。 8 | 9 | 输入 10 | 一个1000位(即10^999)以内的十进制数。 11 | 12 | 输出 13 | 输入的十进制数的二进制逆序数。 14 | 15 | 样例输入 16 | 985 17 | 样例输出 18 | 623 19 | * 20 | * 21 | * 22 | * */ -------------------------------------------------------------------------------- /learn-example/algorithm/coding/MathProblemExample/CombinatorialNumber/problem-1.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | *计算组合数 3 | * 4 | * 题目描述 5 | 编制程序,输入m,n(M>=n>=0)后,计算下列表达式的值并输出: 6 | 7 | m! / n! (m-n)! 8 | 9 | 要求将计算阶乘运算的函数写为fact(n),函数返回值的类型为float 10 | 11 | 输入 12 | m n 13 | 14 | 输出 15 | 对应表达式的值 16 | 17 | 样例输入 18 | 2 1 19 | 样例输出 20 | 2 21 | * 22 | * */ -------------------------------------------------------------------------------- /learn-example/algorithm/coding/MathProblemExample/CombinatorialNumber/problem-2.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * 求组合数 3 | * 4 | * 题目描述 5 | 组合数的计算虽说简单但也不乏有些陷阱,这主要是因为语言中的数据类型在表示范围上是有限的。更何况还有中间结果溢出的现象,所以千万要小心。 6 | 7 | 输入 8 | 求组合数的数据都是成对(M与N)出现的,每对整数M和N满足0<m, n≤20,以EOF结束。 9 | 10 | 输出 11 | 输出该组合数。每个组合数换行。 12 | 13 | 样例输入 14 | 5 2 15 | 18 13 16 | 样例输出 17 | 10 18 | 8568 19 | * 20 | * */ -------------------------------------------------------------------------------- /learn-example/algorithm/coding/MathProblemExample/ExtendedEuclidAlgorithm/problem-1.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | *同余方程-NOIP2012TGD2T1 3 | * 4 | * 5 | * 题目描述 6 | 题目描述 7 | 求关于x的同余方程ax≡1(mod b)的最小正整数解。 8 | 9 | 10 | 输入格式 11 | 每组输入数据只有一行,包含两个正整数a, b,用一个空格隔开。 12 | 13 | 14 | 数据规模: 15 | 16 | 对于40%的数据,2≤b≤1,000; 17 | 18 | 对于60%的数据,2≤b≤50,000,000; 19 | 20 | 对于100%的数据,2≤a, b≤2,000,000,000。 21 | 22 | 23 | 输出 24 | 每组输出只有一行,包含一个正整数x0,即最小正整数解。输入数据保证一定有解。 25 | 26 | 27 | 样例输入 28 | 3 10 29 | 30 | 样例输出 31 | 7 32 | * 33 | * */ -------------------------------------------------------------------------------- /learn-example/algorithm/coding/MathProblemExample/FractionalOperationProblem/problem-1.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * 分数的四则运算 3 | * 4 | * 分数矩阵 5 | * 6 | * 题目描述 7 | 我们定义如下矩阵: 8 | 1/1 1/2 1/3 9 | 1/2 1/1 1/2 10 | 1/3 1/2 1/1 11 | 矩阵对角线上的元素始终是1/1,对角线两边分数的分母逐个递增。 12 | 请求出这个矩阵的总和。 13 | 输入 14 | 输入包含多组测试数据。每行给定整数N(N<50000),表示矩阵为N*N。当N=0时,输入结束。 15 | 输出 16 | 输出答案,结果保留2位小数。 17 | 样例输入 18 | 1 19 | 2 20 | 3 21 | 4 22 | 0 23 | 样例输出 24 | 1.00 25 | 3.00 26 | 5.67 27 | 8.83 28 | * 29 | * 30 | * */ -------------------------------------------------------------------------------- /learn-example/algorithm/coding/MathProblemExample/PrimeFactorization/problem-1.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * 质因数的个数 3 | * 4 | * 题目描述 5 | 求正整数N(N>1)的质因数的个数。 6 | 相同的质因数需要重复计算。如120=2*2*2*3*5,共有5个质因数。 7 | 输入 8 | 可能有多组测试数据,每组测试数据的输入是一个正整数N,(1 10 | void move(char getone,char putone){ 11 | printf("%c-->%c\n",getone,putone); 12 | } 13 | void hanoit(int n,char a,char b, char c){ 14 | if(n==1){ 15 | move(a,c); 16 | }else{ 17 | hanoit(n-1,a,c,b); 18 | move(a,c); 19 | hanoit(n-1,b,a,c); 20 | } 21 | } 22 | 23 | int main(){ 24 | 25 | hanoit(3,'A','B','C'); 26 | return 0; 27 | } -------------------------------------------------------------------------------- /learn-example/algorithm/coding/STLApplyExample/Algorithm/problem-1.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * 全排列 3 | * 4 | * 题目描述 5 | 给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列。 6 | 我们假设对于小写字母有'a' < 'b' < ... < 'y' < 'z',而且给定的字符串中的字母已经按照从小到大的顺序排列。 7 | 8 | 输入 9 | 输入只有一行,是一个由不同的小写字母组成的字符串,已知字符串的长度在1到6之间。 10 | 11 | 输出 12 | 输出这个字符串的所有排列方式,每行一个排列。要求字母序比较小的排列在前面。字母序如下定义: 13 | 已知S = s1s2...sk , T = t1t2...tk,则S < T 等价于,存在p (1 <= p <= k),使得 14 | s1 = t1, s2 = t2, ..., sp - 1 = tp - 1, sp < tp成立。 15 | 16 | 注意每组样例输出结束后接一个空行。 17 | 18 | 样例输入 19 | xyz 20 | 样例输出 21 | xyz 22 | xzy 23 | yxz 24 | yzx 25 | zxy 26 | zyx 27 | 提示 28 | 用STL中的next_permutation会非常简洁。 29 | * 30 | * 31 | * */ 32 | -------------------------------------------------------------------------------- /learn-example/algorithm/coding/STLApplyExample/Algorithm/problem-2.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * 数组逆序 3 | * 4 | * 题目描述 5 | 输入一个字符串,长度小于等于200,然后将数组逆置输出。 6 | 7 | 输入 8 | 测试数据有多组,每组输入一个字符串。 9 | 10 | 输出 11 | 对于每组输入,请输出逆置后的结果。 12 | 13 | 样例输入 14 | tianqin 15 | 样例输出 16 | niqnait 17 | 提示 18 | 注意输入的字符串可能会有空格。 19 | * 20 | * */ -------------------------------------------------------------------------------- /learn-example/algorithm/coding/STLApplyExample/Algorithm/problem-3.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | *求最大最小数 3 | * 4 | * 题目描述 5 | 先输入N,表示数的个数,然后输入N个数,求这N个数的最大值和最小值。N<=10000,输入的数的绝对值不大于10^6 6 | 7 | 样例输入 8 | 4 9 | 2 0 1 2 10 | 样例输出 11 | 2 0 12 | * 13 | * 14 | * */ -------------------------------------------------------------------------------- /learn-example/algorithm/coding/STLApplyExample/Pair/problem-1.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * 重心在哪里 3 | * 4 | * 题目描述 5 | 每个人都知道牛顿发现万有引力的故事。自从牛顿发现万有引力后,人们用万有引力理论解决了非常多的问题。不仅如此,我们也知道了每个物体都有自己的重心。 6 | 现在,给你三角形三个顶点的坐标,你能计算出三角形的重心吗? 7 | 输入 8 | 题目包含多组测试数据。第一行输入一个正整数n,表示测试数据的个数,当n=0时,输入结束。 9 | 接下来n行,每行包含6个数字x1,y1,x2,y2,x3,y3,表示三角形三个顶点的坐标。 10 | 输出 11 | 对于每组输入,输出重心的坐标,结果保留1位小数。 12 | 样例输入 13 | 2 14 | 1.0 2.0 3.0 4.0 5.0 2.0 15 | 1.0 1.0 4.0 1.0 1.0 5.0 16 | 0 17 | 样例输出 18 | 3.0 2.7 19 | 2.0 2.3 20 | * 21 | * */ -------------------------------------------------------------------------------- /learn-example/algorithm/coding/STLApplyExample/PriorityQueue/problem-1.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | *任务调度 3 | * 4 | * 题目描述 5 | 读入任务调度序列,输出n个任务适合的一种调度方式。 6 | 7 | 输入 8 | 输入包含多组测试数据。 9 | 10 | 每组第一行输入一个整数n(n<100000),表示有n个任务。 11 | 12 | 接下来n行,每行第一个表示前序任务,括号中的任务为若干个后序任务,表示只有在前序任务完成的情况下,后序任务才能开始。若后序为NULL则表示无后继任务。 13 | 14 | 输出 15 | 输出调度方式,输出如果有多种适合的调度方式,请输出字典序最小的一种。 16 | 样例输入 17 | 4 18 | Task0(Task1,Task2) 19 | Task1(Task3) 20 | Task2(NULL) 21 | Task3(NULL) 22 | 样例输出 23 | Task0 Task1 Task2 Task3 24 | * 25 | * 26 | * */ -------------------------------------------------------------------------------- /learn-example/algorithm/coding/STLApplyExample/Queue/problem-1.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | *C语言-数字交换 3 | * 4 | * 题目描述 5 | 输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写三个函数; ①输入10个数;②进行处理;③输出10个数。 6 | 7 | 输入 8 | 10个整数 9 | 10 | 输出 11 | 整理后的十个数,每个数后跟一个空格(注意最后一个数后也有空格) 12 | 13 | 样例输入 14 | 2 1 3 4 5 6 7 8 10 9 15 | 样例输出 16 | 1 2 3 4 5 6 7 8 9 10 17 | * 18 | * */ -------------------------------------------------------------------------------- /learn-example/algorithm/coding/STLApplyExample/Stack/problem-1.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * 简单计算器 3 | * 4 | * 题目描述 5 | 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。 6 | 7 | 输入 8 | 测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。 9 | 10 | 输出 11 | 对每个测试用例输出1行,即该表达式的值,精确到小数点后2位。 12 | 13 | 样例输入 14 | 30 / 90 - 26 + 97 - 5 - 6 - 13 / 88 * 6 + 51 / 29 + 79 * 87 + 57 * 92 15 | 0 16 | 样例输出 17 | 12178.21 18 | * 19 | * */ -------------------------------------------------------------------------------- /learn-example/algorithm/coding/STLApplyExample/Stack/problem-2.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | *Problem E 3 | * 4 | * 题目描述 5 | 请写一个程序,判断给定表达式中的括号是否匹配,表达式中的合法括号为”(“, “)”, “[", "]“, “{“, ”}”,这三个括号可以按照任意的次序嵌套使用。 6 | 7 | 输入 8 | 有多个表达式,输入数据的第一行是表达式的数目,每个表达式占一行。 9 | 10 | 输出 11 | 对每个表达式,若其中的括号是匹配的,则输出”yes”,否则输出”no”。 12 | 样例输入 13 | 4 14 | [(d+f)*{}] 15 | [(2+3)) 16 | ()} 17 | [4(6]7)9 18 | 样例输出 19 | yes 20 | no 21 | no 22 | no 23 | * 24 | * */ -------------------------------------------------------------------------------- /learn-example/algorithm/coding/STLApplyExample/String/problem-1.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | *字符串处理 3 | * 4 | * 题目描述 5 | 读入两个字符串,字符串除了数字还可能包括 '—'、'E'、'e'、'.',相加之后输出结果,如果是浮点型,要求用科学计数法表示(最多包含10个有效数字)。 6 | 输入 7 | 输入包含多组测试数据。 8 | 9 | 每组输入占两行,每行一个字符串,测试数据保证字符串的构成严格按照题目中的描述。 10 | 11 | 输出 12 | 输出两个数字相加的结果,每组输出占一行。 13 | 样例输入 14 | 34.56 15 | 2.45e2 16 | 样例输出 17 | 2.7956e2 18 | * 19 | * */ -------------------------------------------------------------------------------- /learn-example/algorithm/coding/SortExample/day0615-1.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 题目描述 3 | 输入一个字符串,长度小于等于200,然后将输出按字符顺序升序排序后的字符串。 4 | 5 | 输入 6 | 测试数据有多组,输入字符串。 7 | 8 | 输出 9 | 对于每组输入,输出处理后的结果。 10 | 11 | 样例输入 12 | tianqin 13 | 样例输出 14 | aiinnqt 15 | 提示 16 | 注意输入的字符串中可能有空格。 17 | */ 18 | 19 | #include 20 | #include 21 | #include 22 | using namespace std; 23 | const int maxn=210; 24 | int main(){ 25 | char s[maxn]; 26 | int len = -1; 27 | gets(s); 28 | len = strlen(s); 29 | sort(s,s+len); 30 | puts(s); 31 | return 0; 32 | } -------------------------------------------------------------------------------- /learn-example/algorithm/coding/TwoPointSearchExample/problem-1.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * 找x 3 | * 4 | * 5 | * 题目描述 6 | 输入一个数n,然后输入n个数值各不相同,再输入一个值x,输出这个值在这个数组中的下标(从0开始,若不在数组中则输出-1)。 7 | 8 | 输入 9 | 测试数据有多组,输入n(1<=n<=200),接着输入n个数,然后输入x。 10 | 11 | 输出 12 | 对于每组输入,请输出结果。 13 | 14 | 样例输入 15 | 4 16 | 1 2 3 4 17 | 3 18 | 样例输出 19 | 2 20 | * 21 | * */ -------------------------------------------------------------------------------- /learn-example/algorithm/coding/TwoPointSearchExample/problem-2.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * 打印极值点下标 3 | * 4 | * 题目描述 5 | 在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。 6 | 7 | 输入 8 | 每个案例的输入如下: 9 | 10 | 有2×n+1行输入:第一行是要处理的数组的个数n; 11 | 对其余2×n行,第一行是此数组的元素个数k(4 6 | 7 | int main(){ 8 | printf("Hello World !!!"); 9 | return 0; 10 | } -------------------------------------------------------------------------------- /learn-example/algorithm/coding/动态规划/数塔问题.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | using namespace std; 4 | const int maxn=1000; 5 | int f[maxn][maxn],dp[maxn][maxn]; 6 | int main(){ 7 | int n; 8 | scanf("%d",&n); 9 | for(int i=1;i<=n;i++){ 10 | for(int j=1;j<=i;j++){ 11 | scanf("%d",&f[i][j]); 12 | } 13 | } 14 | //边界 15 | for(int j=1;j<=n;j++){ 16 | dp[n][j]=f[n][j]; 17 | } 18 | //从第n-1层不断往上计算出dp[i][j] 19 | for(int i=n-1;i>=1;i--){ 20 | for(int j=1;j<=i;j++){ 21 | //状态转移方程 22 | dp[i][j]=max(dp[i+1][j],dp[i+1][j+1])+f[i][j]; 23 | } 24 | } 25 | printf("%d\n",dp[1][1]); 26 | return 0; 27 | } -------------------------------------------------------------------------------- /learn-example/algorithm/coding/动态规划/最大连续子序列和.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | using namespace std; 4 | const int maxn=10000; 5 | int A[maxn],dp[maxn];//A[i]序列,dp[i是存放以A[i]结尾的连续序列的最大和 6 | int main(){ 7 | int n; 8 | scanf("%d",&n); 9 | for(int i=0;idp[k]){ 22 | k=i; 23 | } 24 | } 25 | printf("%d\n",dp[k]); 26 | return 0; 27 | } -------------------------------------------------------------------------------- /learn-example/algorithm/coding/动态规划/最长不下降子序列(LIS).cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | using namespace std; 4 | const int N=100; 5 | int A[N],dp[N]; 6 | int main(){ 7 | int n; 8 | scanf("%d",&n); 9 | for(int i=1;i<=n;i++){ 10 | scanf("%d",&A[i]); 11 | } 12 | int ans=-1;//记录最大的dp[i] 13 | for(int i=1;i<=n;i++){//按顺序计算出dp[i]的值 14 | dp[i]=1;//边界初始条件(先假定每个元素自成一个子序列) 15 | for(int j=1;j=A[j]&&(dp[j]+1>dp[i])){ 17 | dp[i]=dp[j]+1;//状态转移方程,用以更新dp[i] 18 | } 19 | } 20 | ans=max(ans,dp[i]); 21 | } 22 | printf("%d\n",ans); 23 | 24 | return 0; 25 | } -------------------------------------------------------------------------------- /learn-example/algorithm/coding/图/关键路径/AOV&AOE.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeeevip/yeee-memo/c5a120071613f0c30d3a3491bd6b5fbfbf7b3bfa/learn-example/algorithm/coding/图/关键路径/AOV&AOE.cpp -------------------------------------------------------------------------------- /learn-example/algorithm/coding/图/关键路径/最长路径.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeeevip/yeee-memo/c5a120071613f0c30d3a3491bd6b5fbfbf7b3bfa/learn-example/algorithm/coding/图/关键路径/最长路径.cpp -------------------------------------------------------------------------------- /learn-example/algorithm/coding/图/拓扑排序/DAG.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeeevip/yeee-memo/c5a120071613f0c30d3a3491bd6b5fbfbf7b3bfa/learn-example/algorithm/coding/图/拓扑排序/DAG.cpp -------------------------------------------------------------------------------- /learn-example/algorithm/coding/树/哈夫曼树/1.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | using namespace std; 4 | 5 | //代表小顶堆的优先队列 6 | priority_queue,greater > q; 7 | 8 | int main(){ 9 | int n; 10 | long long temp,x,y,ans=0; 11 | scanf("%d",&n); 12 | for(int i=0;i1){//只要优先队列中至少有两个元素 17 | x=q.top(); 18 | q.pop(); 19 | y=q.top(); 20 | q.pop(); 21 | q.push(x+y); 22 | ans+=x+y; 23 | } 24 | printf("%lld\n",ans); 25 | return 0; 26 | } -------------------------------------------------------------------------------- /learn-example/algorithm/coding/树/并查集/basicOpera.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | const int N=100; 4 | 5 | int father[N]; 6 | 7 | void init(){ 8 | for(int i=1;i<=N;i++){ 9 | father[i]=i; 10 | } 11 | } 12 | 13 | int findFather(int x){ 14 | int a=x; 15 | while(x!=father[x]){ 16 | x=father[x]; 17 | } 18 | while(a!=father[a]){ 19 | int z=a; 20 | a=father[a]; 21 | father[z]=x; 22 | } 23 | return x; 24 | } 25 | 26 | void Union(int a,int b){ 27 | int faA=findFather(a); 28 | int faB=findFather(b); 29 | if(faA!=faB){ 30 | father[faA]=faB; 31 | } 32 | } 33 | 34 | int main(){ 35 | return 0; 36 | } -------------------------------------------------------------------------------- /learn-example/algorithm/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | 8 | memo-parent 9 | vip.yeee.memo 10 | 3.2.2-SNAPSHOT 11 | 12 | 13 | 14 | algorithm 15 | pom 16 | 17 | -------------------------------------------------------------------------------- /learn-example/algorithm/src/main/java/vip/yeee/memo/demo/algorithm/AlgorithmApplication.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.algorithm; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2023/6/1 17:21 11 | */ 12 | @SpringBootApplication 13 | public class AlgorithmApplication { 14 | public static void main(String[] args) { 15 | SpringApplication.run(AlgorithmApplication.class, args); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /learn-example/design-pattern/src/main/java/vip/yeee/memo/demo/design/DesignPatternApplication.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.design; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2022/7/21 10:39 11 | */ 12 | @SpringBootApplication 13 | public class DesignPatternApplication { 14 | 15 | public static void main(String[] args) { 16 | SpringApplication.run(DesignPatternApplication.class, args); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /learn-example/design-pattern/src/main/java/vip/yeee/memo/demo/design/pattern/create/PrototypePattern.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.design.pattern.create; 2 | 3 | /** 4 | * 原型模式 5 | * 6 | * @author https://www.yeee.vip 7 | * @since 2022/7/21 18:04 8 | */ 9 | public class PrototypePattern { 10 | } 11 | 12 | class ConcreteInstance implements Cloneable { 13 | 14 | public ConcreteInstance clone() throws CloneNotSupportedException { 15 | return (ConcreteInstance) super.clone(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /learn-example/design-pattern/src/main/java/vip/yeee/memo/demo/design/practice/statics/base/StaticHandler.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.design.practice.statics.base; 2 | 3 | import vip.yeee.memo.demo.design.practice.statics.vo.StaticBo; 4 | 5 | /** 6 | * 获取方式:{@code AdStaticContext.getAdvertHandler()、AdStaticContext.getLaunchHandler()} 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2023/1/3 16:54 10 | */ 11 | public interface StaticHandler { 12 | 13 | void handle(StaticBo bo); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /learn-example/design-pattern/src/main/java/vip/yeee/memo/demo/design/practice/statics/vo/RLock.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.design.practice.statics.vo; 2 | 3 | /** 4 | * description...... 5 | * 6 | * @author https://www.yeee.vip 7 | * @since 2023/1/29 11:47 8 | */ 9 | public class RLock { 10 | public void lock() { 11 | 12 | } 13 | 14 | public void unlock() { 15 | 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /learn-example/design-pattern/src/main/java/vip/yeee/memo/demo/design/practice/statics/vo/StaticDataVo.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.design.practice.statics.vo; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2023/1/3 13:40 10 | */ 11 | @Data 12 | public class StaticDataVo { 13 | 14 | private String timeStamp; 15 | 16 | private String siteName; 17 | 18 | private T data; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /learn-example/design-pattern/src/main/java/vip/yeee/memo/demo/design/practice/statics/vo/StaticException.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.design.practice.statics.vo; 2 | 3 | /** 4 | * description...... 5 | * 6 | * @author https://www.yeee.vip 7 | * @since 2023/1/29 11:50 8 | */ 9 | public class StaticException extends RuntimeException { 10 | public StaticException(String message) { 11 | super(message); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /learn-example/design-pattern/src/main/java/vip/yeee/memo/demo/design/practice/statics/vo/TCmsSite.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.design.practice.statics.vo; 2 | 3 | /** 4 | * description...... 5 | * 6 | * @author https://www.yeee.vip 7 | * @since 2023/1/29 11:47 8 | */ 9 | public class TCmsSite { 10 | public Object getId() { 11 | return null; 12 | } 13 | 14 | public String getName() { 15 | return null; 16 | } 17 | 18 | public Object getPath() { 19 | return null; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /learn-example/jdk-example/src/main/java/vip/yeee/memo/demo/jdk/base/problem/CpuOverTest.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.jdk.base.problem; 2 | 3 | /** 4 | * description...... 5 | * 6 | * @author https://www.yeee.vip 7 | * @since 2022/10/20 14:27 8 | */ 9 | public class CpuOverTest { 10 | 11 | public static void main(String[] args) { 12 | while (true) { 13 | System.out.println(1); 14 | } 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /learn-example/some-note/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | 8 | memo-parent 9 | vip.yeee.memo 10 | 3.2.2-SNAPSHOT 11 | 12 | 13 | 14 | some-note 15 | pom 16 | 17 | -------------------------------------------------------------------------------- /learn-example/some-note/谷歌浏览器跨域.txt: -------------------------------------------------------------------------------- 1 | 2 | 1.chrome://flags/#block-insecure-private-network-requests 3 | 4 | 输入:insecure 5 | 2.找到 Block insecure private network requests. 并且禁用 6 | 7 | 3.重启 -------------------------------------------------------------------------------- /learn-example/spring-boot-example/src/main/java/vip/yeee/memo/demo/springboot/domain/mysql/entity/SysUser.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.springboot.domain.mysql.entity; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2024/1/2 14:42 10 | */ 11 | @Data 12 | public class SysUser { 13 | 14 | private Long id; 15 | private String username; 16 | private String password; 17 | } 18 | -------------------------------------------------------------------------------- /learn-example/spring-boot-example/src/main/java/vip/yeee/memo/demo/springboot/domain/mysql/entity/TempTest1.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.springboot.domain.mysql.entity; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | 6 | import javax.persistence.Table; 7 | 8 | /** 9 | * description...... 10 | * 11 | * @author https://www.yeee.vip 12 | * @since 2024/2/22 17:27 13 | */ 14 | @AllArgsConstructor 15 | @Data 16 | @Table(name = "t_temp_test1") 17 | public class TempTest1 { 18 | 19 | private String id; 20 | private Integer count; 21 | private String parentId; 22 | } 23 | -------------------------------------------------------------------------------- /learn-example/spring-boot-example/src/main/java/vip/yeee/memo/demo/springboot/domain/mysql/mapper/SysUserMapper.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.springboot.domain.mysql.mapper; 2 | 3 | import tk.mybatis.mapper.common.BaseMapper; 4 | import vip.yeee.memo.demo.springboot.domain.mysql.entity.SysUser; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2024/1/2 14:43 11 | */ 12 | public interface SysUserMapper extends BaseMapper { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /learn-example/spring-boot-example/src/main/java/vip/yeee/memo/demo/springboot/domain/mysql/mapper/TempTest1Mapper.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.springboot.domain.mysql.mapper; 2 | 3 | import tk.mybatis.mapper.common.Mapper; 4 | import vip.yeee.memo.demo.springboot.domain.mysql.entity.TempTest1; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2024/2/22 17:29 11 | */ 12 | public interface TempTest1Mapper extends Mapper { 13 | } 14 | -------------------------------------------------------------------------------- /learn-example/spring-boot-example/src/main/java/vip/yeee/memo/demo/springboot/domain/sqlserver/entity/SqlServerTestA.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.springboot.domain.sqlserver.entity; 2 | 3 | import lombok.Data; 4 | 5 | import javax.persistence.Table; 6 | 7 | /** 8 | * description...... 9 | * 10 | * @author https://www.yeee.vip 11 | * @since 2024/1/2 14:37 12 | */ 13 | @Data 14 | @Table(name = "t_test_a") 15 | public class SqlServerTestA { 16 | 17 | private String id; 18 | private String name; 19 | private String value; 20 | } 21 | -------------------------------------------------------------------------------- /learn-example/spring-boot-example/src/main/java/vip/yeee/memo/demo/springboot/domain/sqlserver/mapper/SqlServerTestAMapper.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.springboot.domain.sqlserver.mapper; 2 | 3 | import tk.mybatis.mapper.common.BaseMapper; 4 | import vip.yeee.memo.demo.springboot.domain.sqlserver.entity.SqlServerTestA; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2024/1/2 14:38 11 | */ 12 | public interface SqlServerTestAMapper extends BaseMapper { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /learn-example/spring-boot-example/src/main/java/vip/yeee/memo/demo/springboot/extpoint/bean/TestBean01.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.springboot.extpoint.bean; 2 | 3 | import lombok.Data; 4 | import lombok.extern.slf4j.Slf4j; 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.stereotype.Component; 7 | 8 | /** 9 | * description...... 10 | * 11 | * @author https://www.yeee.vip 12 | * @since 2023/8/14 9:51 13 | */ 14 | @Slf4j 15 | @Component 16 | @Data 17 | public class TestBean01 { 18 | 19 | @Autowired 20 | private TestBean03 testBean03; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /learn-example/spring-boot-example/src/main/java/vip/yeee/memo/demo/springboot/extpoint/bean/TestBean02.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.springboot.extpoint.bean; 2 | 3 | import lombok.Data; 4 | import org.springframework.stereotype.Component; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2023/8/14 9:51 11 | */ 12 | @Data 13 | public class TestBean02 { 14 | 15 | private String field1; 16 | 17 | private String field2; 18 | } 19 | -------------------------------------------------------------------------------- /learn-example/spring-boot-example/src/main/java/vip/yeee/memo/demo/springboot/extpoint/bean/TestBean04.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.springboot.extpoint.bean; 2 | 3 | import lombok.Data; 4 | import org.springframework.beans.factory.annotation.Autowired; 5 | import org.springframework.stereotype.Component; 6 | 7 | /** 8 | * description...... 9 | * 10 | * @author https://www.yeee.vip 11 | * @since 2023/8/14 9:51 12 | */ 13 | @Component 14 | @Data 15 | public class TestBean04 { 16 | 17 | private String field1; 18 | 19 | private String field2; 20 | 21 | // @Autowired 22 | // private TestBean03 testBean03; 23 | } 24 | -------------------------------------------------------------------------------- /learn-example/spring-boot-example/src/main/java/vip/yeee/memo/demo/springboot/extpoint/bean/TestConfigBean.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.springboot.extpoint.bean; 2 | 3 | import lombok.Data; 4 | import org.springframework.context.annotation.Bean; 5 | import org.springframework.context.annotation.Configuration; 6 | 7 | /** 8 | * description...... 9 | * 10 | * @author https://www.yeee.vip 11 | * @since 2023/8/14 9:51 12 | */ 13 | @Configuration 14 | @Data 15 | public class TestConfigBean { 16 | 17 | @Bean(initMethod = "init") 18 | public TestBean03 testBean03() { 19 | return new TestBean03(); 20 | } 21 | } -------------------------------------------------------------------------------- /learn-example/spring-example/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | logging: 2 | level: -------------------------------------------------------------------------------- /memo-parent/memo-base/base-config/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | memo-base 7 | vip.yeee.memo 8 | 3.2.2-SNAPSHOT 9 | 10 | 11 | 4.0.0 12 | 13 | base-config 14 | 15 | -------------------------------------------------------------------------------- /memo-parent/memo-base/base-config/src/main/java/vip/yeee/memo/base/config/CommonConfigAutoConfigure.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.base.config; 2 | 3 | import org.springframework.context.annotation.ComponentScan; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2022/7/14 15:49 10 | */ 11 | @ComponentScan("vip.yeee.memo.base.config.properties") 12 | public class CommonConfigAutoConfigure { 13 | } 14 | -------------------------------------------------------------------------------- /memo-parent/memo-base/base-config/src/main/java/vip/yeee/memo/base/config/properties/YeeeCommonProperties.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.base.config.properties; 2 | 3 | import lombok.Data; 4 | import org.springframework.boot.context.properties.ConfigurationProperties; 5 | import org.springframework.stereotype.Component; 6 | 7 | /** 8 | * description...... 9 | * 10 | * @author https://www.yeee.vip 11 | * @since 2022/7/14 15:47 12 | */ 13 | @Data 14 | @Component 15 | @ConfigurationProperties(prefix = "yeee.common") 16 | public class YeeeCommonProperties { 17 | 18 | private String name; 19 | 20 | private String version; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /memo-parent/memo-base/base-config/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | vip.yeee.memo.base.config.CommonConfigAutoConfigure -------------------------------------------------------------------------------- /memo-parent/memo-base/base-jdbc/base-mybatis-plus/src/main/java/vip/yeee/memo/base/mybatisplus/MybatisPlusAutoConfigure.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.base.mybatisplus; 2 | 3 | import org.springframework.context.annotation.ComponentScan; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2022/7/15 13:45 10 | */ 11 | @ComponentScan("vip.yeee.memo.base.mybatisplus") 12 | public class MybatisPlusAutoConfigure { 13 | } 14 | -------------------------------------------------------------------------------- /memo-parent/memo-base/base-jdbc/base-mybatis-plus/src/main/java/vip/yeee/memo/base/mybatisplus/warpper/OrderClause.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.base.mybatisplus.warpper; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | /** 8 | * @author yeee丶一页 (https://www.yeee.vip) 9 | */ 10 | @Data 11 | public class OrderClause implements Serializable { 12 | private static final long serialVersionUID = -7864088519623641693L; 13 | 14 | private String k; //key 15 | private String t; //type 16 | 17 | } 18 | -------------------------------------------------------------------------------- /memo-parent/memo-base/base-jdbc/base-mybatis-plus/src/main/java/vip/yeee/memo/base/mybatisplus/warpper/QueryClause.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.base.mybatisplus.warpper; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | import java.util.List; 7 | 8 | /** 9 | * @author yeee丶一页 (https://www.yeee.vip) 10 | */ 11 | @Data 12 | public class QueryClause implements Serializable { 13 | private static final long serialVersionUID = -6014076206210293128L; 14 | 15 | private List w; 16 | private List o; 17 | private PageClause p; 18 | 19 | } 20 | -------------------------------------------------------------------------------- /memo-parent/memo-base/base-jdbc/base-mybatis-plus/src/main/java/vip/yeee/memo/base/mybatisplus/warpper/WhereClause.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.base.mybatisplus.warpper; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | /** 8 | * @author yeee丶一页 (https://www.yeee.vip) 9 | */ 10 | @Data 11 | public class WhereClause implements Serializable { 12 | private static final long serialVersionUID = 5312268117297358992L; 13 | 14 | private String k; //key 15 | private Object v; //val 16 | private String m; //model 17 | 18 | } 19 | -------------------------------------------------------------------------------- /memo-parent/memo-base/base-jdbc/base-mybatis-plus/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | vip.yeee.memo.base.mybatisplus.MybatisPlusAutoConfigure -------------------------------------------------------------------------------- /memo-parent/memo-base/base-jdbc/base-mybatis/src/main/resources/application.yml.example: -------------------------------------------------------------------------------- 1 | spring: 2 | datasource: 3 | driver-class-name: com.mysql.cj.jdbc.Driver 4 | url: jdbc:mysql://localhost:3306/java_memo?characterEncoding=UTF-8&useUnicode=true&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true 5 | username: root 6 | password: root 7 | mybatis: 8 | mapper-locations: classpath:mapper/*.xml 9 | 10 | -------------------------------------------------------------------------------- /memo-parent/memo-base/base-jdbc/base-tk-mapper/src/main/java/vip/yeee/memo/base/tkmapper/TkMapperAutoConfigure.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.base.tkmapper; 2 | 3 | import org.springframework.context.annotation.ComponentScan; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2022/7/15 13:45 10 | */ 11 | @ComponentScan("vip.yeee.memo.base.tkmapper") 12 | public class TkMapperAutoConfigure { 13 | } 14 | -------------------------------------------------------------------------------- /memo-parent/memo-base/base-jdbc/base-tk-mapper/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | vip.yeee.memo.base.tkmapper.TkMapperAutoConfigure -------------------------------------------------------------------------------- /memo-parent/memo-base/base-model/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | 8 | memo-base 9 | vip.yeee.memo 10 | 3.2.2-SNAPSHOT 11 | 12 | 13 | 14 | base-model 15 | 16 | -------------------------------------------------------------------------------- /memo-parent/memo-base/base-model/src/main/java/vip/yeee/memo/base/model/constant/TokenConstants.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.base.model.constant; 2 | 3 | /** 4 | * Token的Key常量 5 | */ 6 | public class TokenConstants { 7 | /** 8 | * 令牌自定义标识 9 | */ 10 | public static final String AUTHENTICATION = "Authorization"; 11 | 12 | /** 13 | * 令牌前缀 14 | */ 15 | public static final String PREFIX = "Bearer "; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /memo-parent/memo-base/base-model/src/main/java/vip/yeee/memo/base/model/rest/IErrorCode.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.base.model.rest; 2 | 3 | import java.io.Serializable; 4 | 5 | /** 6 | * 封装API的错误码 7 | */ 8 | public interface IErrorCode extends Serializable { 9 | 10 | /** 11 | * 错误码 12 | * @return 13 | */ 14 | long getCode(); 15 | 16 | /** 17 | * 错误信息 18 | * @return 19 | */ 20 | String getMessage(); 21 | } 22 | -------------------------------------------------------------------------------- /memo-parent/memo-base/base-model/src/main/java/vip/yeee/memo/base/model/vo/PageReqVO.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.base.model.vo; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2022/4/30 12:54 10 | */ 11 | @Data 12 | public class PageReqVO { 13 | 14 | private Integer pageNum = 1; 15 | 16 | private Integer pageSize = 20; 17 | 18 | private T query; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /memo-parent/memo-base/base-redis/src/main/java/vip/yeee/memo/base/redis/BaseRedisAutoConfigure.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.base.redis; 2 | 3 | import org.springframework.context.annotation.ComponentScan; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2023/7/10 17:02 10 | */ 11 | @ComponentScan("vip.yeee.memo.base.redis") 12 | public class BaseRedisAutoConfigure { 13 | } 14 | -------------------------------------------------------------------------------- /memo-parent/memo-base/base-redis/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | vip.yeee.memo.base.redis.BaseRedisAutoConfigure -------------------------------------------------------------------------------- /memo-parent/memo-base/base-redis/src/main/resources/example.yml: -------------------------------------------------------------------------------- 1 | yeee: 2 | custom: 3 | redis: 4 | enabled: true 5 | instance: 6 | - beanName: customeRedisTemplate01 7 | host: 127.0.0.1 8 | port: 6379 9 | password: yeah 10 | database: 1 11 | - beanName: customeRedisTemplate02 12 | host: 127.0.0.1 13 | port: 6379 14 | password: yeah 15 | database: 2 16 | - beanName: customeRedisTemplate03 17 | host: 127.0.0.1 18 | port: 6379 19 | password: yeah 20 | database: 3 -------------------------------------------------------------------------------- /memo-parent/memo-base/base-security-oauth2/src/main/java/vip/yeee/memo/base/websecurityoauth2/BaseWebSecurityAutoConfigure.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.base.websecurityoauth2; 2 | 3 | import org.springframework.context.annotation.ComponentScan; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2022/7/12 14:21 10 | */ 11 | @ComponentScan("vip.yeee.memo.base.websecurityoauth2") 12 | public class BaseWebSecurityAutoConfigure { 13 | } 14 | -------------------------------------------------------------------------------- /memo-parent/memo-base/base-security-oauth2/src/main/java/vip/yeee/memo/base/websecurityoauth2/model/AuthUser.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.base.websecurityoauth2.model; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | import java.util.Set; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class AuthUser { 13 | private String userId; 14 | private String username; 15 | private String password; 16 | private Integer state; 17 | private Set permissions; 18 | private Set roles; 19 | private Set groups; 20 | private Integer superAdmin; 21 | } 22 | -------------------------------------------------------------------------------- /memo-parent/memo-base/base-security-oauth2/src/main/java/vip/yeee/memo/base/websecurityoauth2/model/Oauth2TokenVo.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.base.websecurityoauth2.model; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * Oauth2获取Token返回信息封装 7 | */ 8 | @Data 9 | public class Oauth2TokenVo { 10 | 11 | private String token; 12 | 13 | private String refreshToken; 14 | 15 | private String tokenHead; 16 | 17 | private int expiresIn; 18 | } 19 | -------------------------------------------------------------------------------- /memo-parent/memo-base/base-security-oauth2/src/main/java/vip/yeee/memo/base/websecurityoauth2/model/SysRole.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.base.websecurityoauth2.model; 2 | 3 | import lombok.Data; 4 | import org.springframework.security.core.GrantedAuthority; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2022/4/28 16:02 11 | */ 12 | @Data 13 | public class SysRole implements GrantedAuthority { 14 | 15 | private Integer id; 16 | private String code; 17 | private String name; 18 | 19 | @Override 20 | public String getAuthority() { 21 | return code; 22 | } 23 | } 24 | 25 | -------------------------------------------------------------------------------- /memo-parent/memo-base/base-security-oauth2/src/main/java/vip/yeee/memo/base/websecurityoauth2/model/UserInfo.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.base.websecurityoauth2.model; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2023/10/12 17:29 10 | */ 11 | @Data 12 | public class UserInfo { 13 | 14 | /** 15 | * ID 16 | */ 17 | private String id; 18 | private String userType; 19 | /** 20 | * 用户名 21 | */ 22 | private String username; 23 | } 24 | -------------------------------------------------------------------------------- /memo-parent/memo-base/base-security-oauth2/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | vip.yeee.memo.base.websecurityoauth2.BaseWebSecurityAutoConfigure -------------------------------------------------------------------------------- /memo-parent/memo-base/base-swagger/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | vip.yeee.memo.base.swagger.SwaggerAutoConfigure -------------------------------------------------------------------------------- /memo-parent/memo-base/base-swagger/src/main/resources/example.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | mvc: 3 | pathmatch: 4 | matching-strategy: ant_path_matcher 5 | yeee: 6 | swagger: 7 | enable: true 8 | title: 认证授权中心 9 | description: 认证授权中心 10 | contact-name: yeee 11 | version: 1.0 -------------------------------------------------------------------------------- /memo-parent/memo-base/base-util/src/main/java/vip/yeee/memo/base/util/LogUtils.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.base.util; 2 | 3 | import org.slf4j.Logger; 4 | import org.slf4j.LoggerFactory; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2023/2/17 14:59 11 | */ 12 | public class LogUtils { 13 | 14 | public static Logger commonAuthLog() { 15 | return LoggerFactory.getLogger("YEEE-COMMON-AUTH"); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /memo-parent/memo-base/base-util/src/main/java/vip/yeee/memo/base/util/TextUtils.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.base.util; 2 | 3 | import cn.hutool.core.util.StrUtil; 4 | import cn.hutool.http.HtmlUtil; 5 | 6 | public class TextUtils { 7 | 8 | public static String cleanHtmlTag(String text) { 9 | if (text == null) { 10 | return null; 11 | } 12 | return StrUtil.cleanBlank(HtmlUtil.cleanHtmlTag(text)) 13 | .replaceAll(" ", ""); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /memo-parent/memo-base/base-web/src/main/java/vip/yeee/memo/base/web/BaseWebAutoConfigure.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.base.web; 2 | 3 | import org.springframework.context.annotation.ComponentScan; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2022/7/12 14:21 10 | */ 11 | @ComponentScan("vip.yeee.memo.base.web") 12 | public class BaseWebAutoConfigure { 13 | } 14 | -------------------------------------------------------------------------------- /memo-parent/memo-base/base-web/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | vip.yeee.memo.base.web.BaseWebAutoConfigure -------------------------------------------------------------------------------- /memo-parent/memo-common/common-auth/common-app-auth-client/src/main/java/vip/yeee/memo/common/appauth/client/AppAuthClientAutoConfigure.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.appauth.client; 2 | 3 | import org.springframework.context.annotation.ComponentScan; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2022/7/12 14:21 10 | */ 11 | @ComponentScan("vip.yeee.memo.common.appauth.client") 12 | public class AppAuthClientAutoConfigure { 13 | } 14 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-auth/common-app-auth-client/src/main/java/vip/yeee/memo/common/appauth/client/exception/JwtExpireException.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.appauth.client.exception; 2 | 3 | /** 4 | * description...... 5 | * 6 | * @author https://www.yeee.vip 7 | * @since 2022/11/30 11:15 8 | */ 9 | public class JwtExpireException extends RuntimeException { 10 | public JwtExpireException(String message) { 11 | super(message); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-auth/common-app-auth-client/src/main/java/vip/yeee/memo/common/appauth/client/exception/JwtInvalidException.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.appauth.client.exception; 2 | 3 | /** 4 | * description...... 5 | * 6 | * @author https://www.yeee.vip 7 | * @since 2022/11/30 11:14 8 | */ 9 | public class JwtInvalidException extends RuntimeException { 10 | public JwtInvalidException(String message) { 11 | super(message); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-auth/common-app-auth-client/src/main/java/vip/yeee/memo/common/appauth/client/model/ApiAuthedUser.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.appauth.client.model; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2022/11/28 15:34 10 | */ 11 | @Data 12 | public class ApiAuthedUser { 13 | /** 14 | * ID 15 | */ 16 | private String id; 17 | 18 | private String uid; 19 | 20 | private String openid; 21 | /** 22 | * 用户名 23 | */ 24 | private String username; 25 | 26 | private String source; 27 | } 28 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-auth/common-app-auth-client/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | vip.yeee.memo.common.appauth.client.AppAuthClientAutoConfigure -------------------------------------------------------------------------------- /memo-parent/memo-common/common-auth/common-app-auth-client/src/main/resources/example.yml: -------------------------------------------------------------------------------- 1 | yeee: 2 | apiauth: 3 | jwt: 4 | secret: 123456 5 | # secret-url: http://api-auth-server/apiauth-server/jwt/secret -------------------------------------------------------------------------------- /memo-parent/memo-common/common-auth/common-app-auth-server/src/main/java/vip/yeee/memo/common/appauth/server/AppAuthServerAutoConfigure.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.appauth.server; 2 | 3 | import org.springframework.context.annotation.ComponentScan; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2022/7/12 14:21 10 | */ 11 | @ComponentScan("vip.yeee.memo.common.appauth.server") 12 | public class AppAuthServerAutoConfigure { 13 | } 14 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-auth/common-app-auth-server/src/main/java/vip/yeee/memo/common/appauth/server/model/vo/JTokenVo.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.appauth.server.model.vo; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2022/11/28 17:06 10 | */ 11 | @Data 12 | public class JTokenVo { 13 | 14 | private String accessToken; 15 | private Long expireIn; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-auth/common-app-auth-server/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | vip.yeee.memo.common.appauth.server.AppAuthServerAutoConfigure -------------------------------------------------------------------------------- /memo-parent/memo-common/common-auth/common-app-auth-server/src/main/resources/example.yml: -------------------------------------------------------------------------------- 1 | yeee: 2 | apiauth: 3 | jwt: 4 | secret: 123456 -------------------------------------------------------------------------------- /memo-parent/memo-common/common-auth/common-app-auth-server/src/main/resources/jwt.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeeevip/yeee-memo/c5a120071613f0c30d3a3491bd6b5fbfbf7b3bfa/memo-parent/memo-common/common-auth/common-app-auth-server/src/main/resources/jwt.jks -------------------------------------------------------------------------------- /memo-parent/memo-common/common-auth/common-platform-auth-client/src/main/java/vip/yeee/memo/common/platformauth/client/PlatformAuthClientAutoConfigure.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.platformauth.client; 2 | 3 | import org.springframework.context.annotation.ComponentScan; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2022/7/12 14:21 10 | */ 11 | @ComponentScan("vip.yeee.memo.common.platformauth.client") 12 | public class PlatformAuthClientAutoConfigure { 13 | } 14 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-auth/common-platform-auth-client/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | vip.yeee.memo.common.platformauth.client.PlatformAuthClientAutoConfigure -------------------------------------------------------------------------------- /memo-parent/memo-common/common-auth/common-platform-auth-client/src/main/resources/example.yml: -------------------------------------------------------------------------------- 1 | security: 2 | oauth2: 3 | resource: 4 | token-info-uri: http://cloud-web-auth-server/auth-server/oauth/check_token 5 | client: 6 | client-id: ${spring.application.name} 7 | client-secret: 123456 8 | # access-token-uri: http://cloud-web-auth-server/auth-server/oauth/token 9 | yeee: 10 | webauth: 11 | resource: 12 | exclude: 13 | - /front/register 14 | - /system/register 15 | - /front/login 16 | - /system/login 17 | - /anonymous/limit/api -------------------------------------------------------------------------------- /memo-parent/memo-common/common-auth/common-platform-auth-server/src/main/java/vip/yeee/memo/common/platformauth/server/PlatformAuthServerAutoConfigure.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.platformauth.server; 2 | 3 | import org.springframework.context.annotation.ComponentScan; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2022/7/12 14:21 10 | */ 11 | @ComponentScan("vip.yeee.memo.common.platformauth.server") 12 | public class PlatformAuthServerAutoConfigure { 13 | } 14 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-auth/common-platform-auth-server/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | vip.yeee.memo.common.platformauth.server.PlatformAuthServerAutoConfigure -------------------------------------------------------------------------------- /memo-parent/memo-common/common-auth/common-platform-auth-server/src/main/resources/example.yml: -------------------------------------------------------------------------------- 1 | security: 2 | oauth2: 3 | client: 4 | client-id: ${spring.application.name} 5 | client-secret: 123456 6 | yeee: 7 | webauth: 8 | token-store: 9 | jwt-secret: 123456 10 | jwt: 11 | enabled: true -------------------------------------------------------------------------------- /memo-parent/memo-common/common-dingtalk/src/main/java/vip/yeee/memo/common/dingtalk/CommonDingtalkAutoConfigure.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.dingtalk; 2 | 3 | import lombok.extern.slf4j.Slf4j; 4 | import org.springframework.context.annotation.ComponentScan; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2023/06/20 15:04 11 | */ 12 | @Slf4j 13 | @ComponentScan("vip.yeee.memo.common.dingtalk") 14 | public class CommonDingtalkAutoConfigure { 15 | } 16 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-dingtalk/src/main/java/vip/yeee/memo/common/dingtalk/properties/DingtalkProperty.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.dingtalk.properties; 2 | 3 | import lombok.Data; 4 | import org.springframework.boot.context.properties.ConfigurationProperties; 5 | import org.springframework.context.annotation.Configuration; 6 | 7 | import java.util.Map; 8 | 9 | /** 10 | * description...... 11 | * 12 | * @author https://www.yeee.vip 13 | * @since 2023/6/20 17:33 14 | */ 15 | @ConfigurationProperties(prefix = "yeee.dingtalk") 16 | @Configuration 17 | @Data 18 | public class DingtalkProperty { 19 | 20 | private Map chatGroup; 21 | } 22 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-dingtalk/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | vip.yeee.memo.common.dingtalk.CommonDingtalkAutoConfigure -------------------------------------------------------------------------------- /memo-parent/memo-common/common-dingtalk/src/main/resources/example.yml: -------------------------------------------------------------------------------- 1 | 2 | yeee: 3 | dingtalk: 4 | chat-group: 5 | group1: XXXXXXXXXXXXXXXX 6 | group2: XXXXXXXXXXXXXXXX -------------------------------------------------------------------------------- /memo-parent/memo-common/common-domain/src/main/java/vip/yeee/memo/common/domain/CommonServiceAutoConfigure.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.domain; 2 | 3 | import org.mybatis.spring.annotation.MapperScan; 4 | import org.springframework.context.annotation.ComponentScan; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2022/7/12 11:49 11 | */ 12 | @ComponentScan("vip.yeee.memo.common.domain") 13 | @MapperScan("vip.yeee.memo.common.domain.mapper") 14 | public class CommonServiceAutoConfigure { 15 | } 16 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-domain/src/main/java/vip/yeee/memo/common/domain/entity/BaseEntity.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.domain.entity; 2 | 3 | /** 4 | * description...... 5 | * 6 | * @author https://www.yeee.vip 7 | * @since 2022/7/12 11:07 8 | */ 9 | public class BaseEntity { 10 | } 11 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-domain/src/main/java/vip/yeee/memo/common/domain/mapper/api/ApiUserIdentityMapper.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.domain.mapper.api; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import vip.yeee.memo.common.domain.entity.api.ApiUserIdentity; 5 | 6 | /** 7 | *

8 | * 三方开放平台用户 Mapper 接口 9 | *

10 | * 11 | * @author https://www.yeee.vip 12 | * @since 2022-02-22 13 | */ 14 | public interface ApiUserIdentityMapper extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-domain/src/main/java/vip/yeee/memo/common/domain/mapper/front/UserMapper.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.domain.mapper.front; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import vip.yeee.memo.common.domain.entity.front.User; 5 | 6 | /** 7 | * create by yeee.一页 2022/04/29 15:33:05 8 | */ 9 | public interface UserMapper extends BaseMapper { 10 | } 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-domain/src/main/java/vip/yeee/memo/common/domain/mapper/sys/SysRoleMapper.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.domain.mapper.sys; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import vip.yeee.memo.common.domain.entity.sys.SysRole; 5 | 6 | /** 7 | * create by yeee.一页 2022/04/29 14:10:14 8 | */ 9 | public interface SysRoleMapper extends BaseMapper { 10 | } 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-domain/src/main/java/vip/yeee/memo/common/domain/mapper/sys/SysUserMapper.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.domain.mapper.sys; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import vip.yeee.memo.common.domain.entity.sys.SysUser; 5 | 6 | /** 7 | * create by yeee.一页 2022/04/29 13:52:01 8 | */ 9 | public interface SysUserMapper extends BaseMapper { 10 | } 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-domain/src/main/java/vip/yeee/memo/common/domain/mapper/sys/SysUserRoleMapper.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.domain.mapper.sys; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import vip.yeee.memo.common.domain.entity.sys.SysUserRole; 5 | 6 | /** 7 | * create by yeee.一页 2022/04/29 14:13:33 8 | */ 9 | public interface SysUserRoleMapper extends BaseMapper { 10 | } 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-domain/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | vip.yeee.memo.common.domain.CommonServiceAutoConfigure -------------------------------------------------------------------------------- /memo-parent/memo-common/common-httpclient/common-httpclient-okhttp/src/main/java/vip/yeee/memo/common/httpclient/okhttp/CommonOkhttpClientAutoConfigure.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.httpclient.okhttp; 2 | 3 | import lombok.extern.slf4j.Slf4j; 4 | import org.springframework.context.annotation.ComponentScan; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2022/12/6 15:04 11 | */ 12 | @Slf4j 13 | @ComponentScan("vip.yeee.memo.common.httpclient.okhttp") 14 | public class CommonOkhttpClientAutoConfigure { 15 | } 16 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-httpclient/common-httpclient-okhttp/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | vip.yeee.memo.common.httpclient.okhttp.CommonOkhttpClientAutoConfigure -------------------------------------------------------------------------------- /memo-parent/memo-common/common-kit/common-doc-kit/template/example.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeeevip/yeee-memo/c5a120071613f0c30d3a3491bd6b5fbfbf7b3bfa/memo-parent/memo-common/common-kit/common-doc-kit/template/example.doc -------------------------------------------------------------------------------- /memo-parent/memo-common/common-kit/common-doc-kit/template/example.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeeevip/yeee-memo/c5a120071613f0c30d3a3491bd6b5fbfbf7b3bfa/memo-parent/memo-common/common-kit/common-doc-kit/template/example.pdf -------------------------------------------------------------------------------- /memo-parent/memo-common/common-kit/common-excel-kit/src/main/java/vip/yeee/memo/common/excel/CommonExcelKitAutoConfigure.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.excel; 2 | 3 | /** 4 | * description...... 5 | * 6 | * @author https://www.yeee.vip 7 | * @since 2023/7/10 14:57 8 | */ 9 | public class CommonExcelKitAutoConfigure { 10 | } 11 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-kit/common-redisson-kit/src/main/java/vip/yeee/memo/common/redisson/CommonRedissonKitAutoConfigure.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.redisson; 2 | 3 | import org.springframework.context.annotation.ComponentScan; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2023/7/10 14:58 10 | */ 11 | @ComponentScan("vip.yeee.memo.common.redisson") 12 | public class CommonRedissonKitAutoConfigure { 13 | } 14 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-kit/common-redisson-kit/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | vip.yeee.memo.common.redisson.CommonRedissonKitAutoConfigure -------------------------------------------------------------------------------- /memo-parent/memo-common/common-mybatis-encrypt/src/main/java/vip/yeee/memo/common/encrypt/mybatis/CommonMybatisEncryptAutoConfigure.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.encrypt.mybatis; 2 | 3 | import lombok.extern.slf4j.Slf4j; 4 | import org.springframework.context.annotation.ComponentScan; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2022/12/6 15:04 11 | */ 12 | @Slf4j 13 | @ComponentScan("vip.yeee.memo.common.encrypt.mybatis") 14 | public class CommonMybatisEncryptAutoConfigure { 15 | } 16 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-mybatis-encrypt/src/main/java/vip/yeee/memo/common/encrypt/mybatis/Encrypt.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.encrypt.mybatis; 2 | 3 | /** 4 | * 加解密接口 5 | */ 6 | public interface Encrypt { 7 | /** 8 | * 对字符串进行加密存储 9 | * @param src 源 10 | * @return 返回加密后的密文 11 | * @throws RuntimeException 算法异常 12 | */ 13 | String encrypt(String src); 14 | 15 | /** 16 | * 对加密后的字符串进行解密 17 | * @param encrypt 加密后的字符串 18 | * @return 返回解密后的原文 19 | * @throws RuntimeException 算法异常 20 | */ 21 | String decrypt(String encrypt); 22 | } 23 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-mybatis-encrypt/src/main/java/vip/yeee/memo/common/encrypt/mybatis/annotation/EncryptField.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.encrypt.mybatis.annotation; 2 | 3 | import java.lang.annotation.*; 4 | 5 | /** 6 | * 标记了注解的字段会在写请求时对数据进行加密,在写请求时进行解密 7 | */ 8 | @Target({ElementType.FIELD,ElementType.METHOD}) 9 | @Retention(RetentionPolicy.RUNTIME) 10 | @Inherited 11 | @Documented 12 | public @interface EncryptField { 13 | } 14 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-mybatis-encrypt/src/main/java/vip/yeee/memo/common/encrypt/mybatis/annotation/SensitiveEncryptEnabled.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.encrypt.mybatis.annotation; 2 | 3 | import java.lang.annotation.*; 4 | 5 | /** 6 | * 标记在DTO类上,用于说明是否支持加解密 7 | */ 8 | @Target({ElementType.TYPE}) 9 | @Retention(RetentionPolicy.RUNTIME) 10 | @Inherited 11 | @Documented 12 | public @interface SensitiveEncryptEnabled { 13 | /** 14 | * 是否开启加解密和脱敏模式 15 | * @return SensitiveEncryptEnabled 16 | */ 17 | boolean value() default true; 18 | } 19 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-mybatis-encrypt/src/main/java/vip/yeee/memo/common/encrypt/mybatis/annotation/SensitiveJSONField.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.encrypt.mybatis.annotation; 2 | 3 | import java.lang.annotation.*; 4 | 5 | /** 6 | * 对json内的key_value进行脱敏 7 | */ 8 | @Target({ElementType.FIELD,ElementType.METHOD}) 9 | @Retention(RetentionPolicy.RUNTIME) 10 | @Inherited 11 | @Documented 12 | public @interface SensitiveJSONField { 13 | /** 14 | * 需要脱敏的字段的数组 15 | * @return 返回结果 16 | */ 17 | SensitiveJSONFieldKey[] fieldKeyList(); 18 | } 19 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-mybatis-encrypt/src/main/java/vip/yeee/memo/common/encrypt/mybatis/properties/MybatisEncryptProperty.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.encrypt.mybatis.properties; 2 | 3 | import lombok.Data; 4 | import org.springframework.boot.context.properties.ConfigurationProperties; 5 | import org.springframework.stereotype.Component; 6 | 7 | /** 8 | * description...... 9 | * 10 | * @author https://www.yeee.vip 11 | * @since 2023/10/24 10:25 12 | */ 13 | @Data 14 | @Component 15 | @ConfigurationProperties(prefix = "yeee.mybatis.encrypt") 16 | public class MybatisEncryptProperty { 17 | 18 | private String password; 19 | } 20 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-mybatis-encrypt/src/main/java/vip/yeee/memo/common/encrypt/mybatis/type/SensitiveTypeHandler.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.encrypt.mybatis.type; 2 | 3 | /** 4 | * 脱敏处理类 5 | */ 6 | public interface SensitiveTypeHandler { 7 | /** 8 | * 获取脱敏的类型枚举 9 | * @return ; 10 | */ 11 | SensitiveType getSensitiveType(); 12 | /** 13 | * 对数据的值进行脱敏处理 14 | * @param src src 15 | * @return 脱敏后的数据 16 | */ 17 | String handle(Object src); 18 | } 19 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-mybatis-encrypt/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | vip.yeee.memo.common.encrypt.mybatis.CommonMybatisEncryptAutoConfigure -------------------------------------------------------------------------------- /memo-parent/memo-common/common-mybatis-encrypt/src/main/resources/example.yml: -------------------------------------------------------------------------------- 1 | 2 | yeee: 3 | mybatis: 4 | encrypt: 5 | password: 1870577f29b17d6787782f35998c4a79 -------------------------------------------------------------------------------- /memo-parent/memo-common/common-oss/src/main/java/vip/yeee/memo/common/oss/CommonOssAutoConfigure.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.oss; 2 | 3 | import lombok.extern.slf4j.Slf4j; 4 | import org.springframework.context.annotation.ComponentScan; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2022/12/6 15:04 11 | */ 12 | @Slf4j 13 | @ComponentScan("vip.yeee.memo.common.oss") 14 | public class CommonOssAutoConfigure { 15 | } 16 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-oss/src/main/java/vip/yeee/memo/common/oss/constant/OssConstant.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.oss.constant; 2 | 3 | /** 4 | * description...... 5 | * 6 | * @author https://www.yeee.vip 7 | * @since 2023/6/12 10:14 8 | */ 9 | public class OssConstant { 10 | 11 | public interface Channel { 12 | String ALI = "ali"; 13 | String QINIU = "qiniu"; 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-oss/src/main/java/vip/yeee/memo/common/oss/model/StsAuthInfo.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.oss.model; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2023/6/12 11:44 10 | */ 11 | @Data 12 | public class StsAuthInfo { 13 | 14 | private String channel; 15 | 16 | private Object info; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-oss/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | vip.yeee.memo.common.oss.CommonOssAutoConfigure -------------------------------------------------------------------------------- /memo-parent/memo-common/common-oss/src/main/resources/example.yml: -------------------------------------------------------------------------------- 1 | 2 | yeee: 3 | oss: 4 | ali: 5 | access-key: XXXXXXXXXXXXXXXX 6 | secret-key: XXXXXXXXXXXXXXXX 7 | endpoint: https://oss-cn-hangzhou.aliyuncs.com 8 | default-bucket: www-yeee-vip -------------------------------------------------------------------------------- /memo-parent/memo-common/common-springcloud/common-springcloud-gray/common-springcloud-gray-common/src/main/java/vip/yeee/memo/common/scloud/gray/common/constant/CloudGrayConstant.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.scloud.gray.common.constant; 2 | 3 | /** 4 | * description...... 5 | * 6 | * @author https://www.yeee.vip 7 | * @since 2022/12/6 16:25 8 | */ 9 | public interface CloudGrayConstant { 10 | String API_VERSION_HEADER = "api-version"; 11 | } 12 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-springcloud/common-springcloud-gray/common-springcloud-gray-gateway/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | vip.yeee.memo.common.scloud.gray.gateway.CommonSpringCloudGrayGatewayAutoConfigure -------------------------------------------------------------------------------- /memo-parent/memo-common/common-springcloud/common-springcloud-gray/common-springcloud-gray-gateway/src/main/resources/example.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | gateway: 4 | discovery: 5 | locator: 6 | enabled: true 7 | lowerCaseServiceId: true 8 | routes: 9 | - id: cloud-web-auth-server-2.0 10 | uri: lb://cloud-web-auth-server 11 | predicates: 12 | - Path=/v20/auth-server/** 13 | filters: 14 | - StripPrefix=1 15 | - AddRequestHeader=api-version,2.0 -------------------------------------------------------------------------------- /memo-parent/memo-common/common-springcloud/common-springcloud-gray/common-springcloud-gray-inner/src/main/java/vip/yeee/memo/common/scloud/gray/inner/CommonSpringCloudGrayInnerAutoConfigure.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.scloud.gray.inner; 2 | 3 | import org.springframework.context.annotation.ComponentScan; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2022/12/6 15:04 10 | */ 11 | @ComponentScan("vip.yeee.memo.common.scloud.gray.inner") 12 | public class CommonSpringCloudGrayInnerAutoConfigure { 13 | } 14 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-springcloud/common-springcloud-gray/common-springcloud-gray-inner/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | vip.yeee.memo.common.scloud.gray.inner.CommonSpringCloudGrayInnerAutoConfigure -------------------------------------------------------------------------------- /memo-parent/memo-common/common-springcloud/common-springcloud-gray/common-springcloud-gray-inner/src/main/resources/example.yml: -------------------------------------------------------------------------------- 1 | yeee: 2 | api-version: 2.0 3 | spring: 4 | cloud: 5 | nacos: 6 | discovery: 7 | metadata: 8 | api-version: ${yeee.api-version} -------------------------------------------------------------------------------- /memo-parent/memo-common/common-springcloud/common-springcloud-openfeign/src/main/java/vip/yeee/memo/common/scloud/openfeign/CommonSpringCloudOpenfeignAutoConfigure.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.scloud.openfeign; 2 | 3 | import org.springframework.context.annotation.ComponentScan; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2023/2/20 17:44 10 | */ 11 | @ComponentScan("vip.yeee.memo.common.scloud.openfeign") 12 | public class CommonSpringCloudOpenfeignAutoConfigure { 13 | } 14 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-springcloud/common-springcloud-openfeign/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | vip.yeee.memo.common.scloud.openfeign.CommonSpringCloudOpenfeignAutoConfigure -------------------------------------------------------------------------------- /memo-parent/memo-common/common-springcloud/common-springcloud-openfeign/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | #feign: 2 | # sentinel: 3 | # enabled: true 4 | # okhttp: 5 | # enabled: true 6 | # httpclient: 7 | # enabled: false 8 | # client: 9 | # config: 10 | # default: 11 | # ## 针对每个服务设置超时时间,这个配置可以覆盖掉ribbon的超时时间 12 | # connect-timeout: 2000 13 | # read-timeout: 60000 14 | # compression: 15 | # request: 16 | # enabled: true 17 | # response: 18 | # enabled: true -------------------------------------------------------------------------------- /memo-parent/memo-common/common-sso/common-sso-inner-app/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | common-sso 7 | vip.yeee.memo 8 | 3.2.2-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | common-sso-inner-app 13 | pom 14 | 15 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-sso/common-sso-inner-app/readme.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 一、后台 4 | 使用spring-security+oauth2实现 资源服务器1登录后可以在访问其他服务允许的资源(仅一次登录SSO) 5 | 6 | spring-cloud 7 | - auth-sso 8 | - web-auth-server 认证服务器 9 | - web-resource-server1 资源服务器1 10 | - web-resource-server2 资源服务器2 11 | 12 | 二、C端应用 13 | 基于JWT实现 14 | 15 | common-auth 16 | - common-app-auth-client 17 | - common-app-auth-server -------------------------------------------------------------------------------- /memo-parent/memo-common/common-sso/common-sso-third-app/src/main/java/vip/yeee/memo/common/sso/thirdapp/ThirdAppSsoApplication.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.sso.thirdapp; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2023/3/20 18:42 11 | */ 12 | @SpringBootApplication 13 | public class ThirdAppSsoApplication { 14 | 15 | public static void main(String[] args) { 16 | SpringApplication.run(ThirdAppSsoApplication.class, args); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-sso/common-sso-third-app/src/main/java/vip/yeee/memo/common/sso/thirdapp/model/dto/AuthUserDto.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.sso.thirdapp.model.dto; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2023/3/20 20:29 10 | */ 11 | @Data 12 | public class AuthUserDto { 13 | 14 | private String username; 15 | private String password; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-sso/common-sso-third-app/src/main/java/vip/yeee/memo/common/sso/thirdapp/model/dto/ThirdAppDto.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.sso.thirdapp.model.dto; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2023/3/20 18:49 10 | */ 11 | @Data 12 | public class ThirdAppDto { 13 | 14 | private String id; 15 | 16 | private String appKey; 17 | 18 | private String appSecret; 19 | 20 | //合作方名称 21 | private String appName; 22 | 23 | // 获取ticket用户信息url 24 | private String ticketUrl; 25 | 26 | //启用状态 0启用 1关闭 27 | private Integer status; 28 | 29 | } 30 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-sso/common-sso-third-app/src/main/java/vip/yeee/memo/common/sso/thirdapp/model/dto/ThirdUserDto.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.sso.thirdapp.model.dto; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2023/3/20 20:29 10 | */ 11 | @Data 12 | public class ThirdUserDto { 13 | private String phone; 14 | private String username; 15 | } 16 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-sso/common-sso-third-app/src/main/java/vip/yeee/memo/common/sso/thirdapp/model/request/ThirdAppSsoRequest.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.sso.thirdapp.model.request; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2023/3/20 18:49 10 | */ 11 | @Data 12 | public class ThirdAppSsoRequest { 13 | 14 | // 三方应用 15 | private String appKey; 16 | // 三方当前登录用户标识 17 | private String ticket; 18 | private String timestamp; 19 | private String authFailUrl; 20 | private String authSuccessUrl; 21 | private String signature; 22 | 23 | } 24 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-sso/common-sso-third-app/src/main/java/vip/yeee/memo/common/sso/thirdapp/model/vo/ThirdAppVo.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.sso.thirdapp.model.vo; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2023/3/20 18:49 10 | */ 11 | @Data 12 | public class ThirdAppVo { 13 | } 14 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-sso/common-sso-third-app/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | #security: 2 | # oauth2: 3 | # resource: 4 | # token-info-uri: http://cloud-web-auth-server/auth-server/oauth/check_token 5 | # client: 6 | # client-id: ${spring.application.name} 7 | # client-secret: 123456 8 | # # grant-type: password 9 | # access-token-uri: http://cloud-web-auth-server/auth-server/oauth/token -------------------------------------------------------------------------------- /memo-parent/memo-common/common-tokenizing/common-jcseg/src/main/java/vip/yeee/memo/common/tokenizing/jcseg/CommonTokenizingJcsegAutoConfigure.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.tokenizing.jcseg; 2 | 3 | import lombok.extern.slf4j.Slf4j; 4 | import org.springframework.context.annotation.ComponentScan; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2024/01/06 15:04 11 | */ 12 | @Slf4j 13 | @ComponentScan("vip.yeee.memo.common.tokenizing.jcseg") 14 | public class CommonTokenizingJcsegAutoConfigure { 15 | } 16 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-tokenizing/common-jcseg/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | vip.yeee.memo.common.tokenizing.jcseg.CommonTokenizingJcsegAutoConfigure -------------------------------------------------------------------------------- /memo-parent/memo-common/common-web/src/main/java/vip/yeee/memo/common/web/CommonWebApplication.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.web; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2022/7/12 14:13 11 | */ 12 | @SpringBootApplication 13 | public class CommonWebApplication { 14 | 15 | public static void main(String[] args) { 16 | SpringApplication.run(CommonWebApplication.class, args); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-web/src/main/java/vip/yeee/memo/common/web/CommonWebAutoConfigure.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.web; 2 | 3 | import org.springframework.context.annotation.ComponentScan; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2022/7/12 14:21 10 | */ 11 | @ComponentScan("vip.yeee.memo.common.web") 12 | public class CommonWebAutoConfigure { 13 | } 14 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-web/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | vip.yeee.memo.common.web.CommonWebAutoConfigure -------------------------------------------------------------------------------- /memo-parent/memo-common/common-websocket/common-netty-websocket/src/main/java/vip/yeee/memo/common/websocket/netty/CommonNettyWebSocketAutoConfigure.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.websocket.netty; 2 | 3 | import vip.yeee.memo.common.websocket.netty.annotation.EnableWebSocket; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2023/4/8 16:33 10 | */ 11 | @EnableWebSocket 12 | public class CommonNettyWebSocketAutoConfigure { 13 | } 14 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-websocket/common-netty-websocket/src/main/java/vip/yeee/memo/common/websocket/netty/annotation/BeforeHandshake.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.websocket.netty.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Retention(RetentionPolicy.RUNTIME) 9 | @Target(ElementType.METHOD) 10 | public @interface BeforeHandshake { 11 | } 12 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-websocket/common-netty-websocket/src/main/java/vip/yeee/memo/common/websocket/netty/annotation/OnBinary.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.websocket.netty.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Retention(RetentionPolicy.RUNTIME) 9 | @Target(ElementType.METHOD) 10 | public @interface OnBinary { 11 | } -------------------------------------------------------------------------------- /memo-parent/memo-common/common-websocket/common-netty-websocket/src/main/java/vip/yeee/memo/common/websocket/netty/annotation/OnClose.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.websocket.netty.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Retention(RetentionPolicy.RUNTIME) 9 | @Target(ElementType.METHOD) 10 | public @interface OnClose { 11 | } -------------------------------------------------------------------------------- /memo-parent/memo-common/common-websocket/common-netty-websocket/src/main/java/vip/yeee/memo/common/websocket/netty/annotation/OnError.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.websocket.netty.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Retention(RetentionPolicy.RUNTIME) 9 | @Target(ElementType.METHOD) 10 | public @interface OnError { 11 | } -------------------------------------------------------------------------------- /memo-parent/memo-common/common-websocket/common-netty-websocket/src/main/java/vip/yeee/memo/common/websocket/netty/annotation/OnEvent.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.websocket.netty.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Retention(RetentionPolicy.RUNTIME) 9 | @Target(ElementType.METHOD) 10 | public @interface OnEvent { 11 | } -------------------------------------------------------------------------------- /memo-parent/memo-common/common-websocket/common-netty-websocket/src/main/java/vip/yeee/memo/common/websocket/netty/annotation/OnMessage.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.websocket.netty.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Retention(RetentionPolicy.RUNTIME) 9 | @Target(ElementType.METHOD) 10 | public @interface OnMessage { 11 | } -------------------------------------------------------------------------------- /memo-parent/memo-common/common-websocket/common-netty-websocket/src/main/java/vip/yeee/memo/common/websocket/netty/annotation/OnOpen.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.websocket.netty.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Retention(RetentionPolicy.RUNTIME) 9 | @Target(ElementType.METHOD) 10 | public @interface OnOpen { 11 | } -------------------------------------------------------------------------------- /memo-parent/memo-common/common-websocket/common-netty-websocket/src/main/java/vip/yeee/memo/common/websocket/netty/exception/DeploymentException.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.websocket.netty.exception; 2 | 3 | public class DeploymentException extends Exception { 4 | 5 | private static final long serialVersionUID = 1L; 6 | 7 | public DeploymentException(String message) { 8 | super(message); 9 | } 10 | 11 | public DeploymentException(String message, Throwable cause) { 12 | super(message, cause); 13 | } 14 | } -------------------------------------------------------------------------------- /memo-parent/memo-common/common-websocket/common-netty-websocket/src/main/java/vip/yeee/memo/common/websocket/netty/support/WsPathMatcher.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.websocket.netty.support; 2 | 3 | import io.netty.channel.Channel; 4 | import io.netty.handler.codec.http.QueryStringDecoder; 5 | 6 | 7 | public interface WsPathMatcher { 8 | 9 | String getPattern(); 10 | 11 | boolean matchAndExtract(QueryStringDecoder decoder, Channel channel); 12 | } 13 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-websocket/common-netty-websocket/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | vip.yeee.memo.common.websocket.netty.CommonNettyWebSocketAutoConfigure -------------------------------------------------------------------------------- /memo-parent/memo-common/common-websocket/common-spring-websocket/src/main/java/vip/yeee/memo/common/websocket/spring/CommonSpringWebSocketAutoConfigure.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.websocket.spring; 2 | 3 | import org.springframework.context.annotation.ComponentScan; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2023/4/8 16:33 10 | */ 11 | @ComponentScan("vip.yeee.memo.common.websocket.spring") 12 | public class CommonSpringWebSocketAutoConfigure { 13 | } 14 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-websocket/common-spring-websocket/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | vip.yeee.memo.common.websocket.spring.CommonSpringWebSocketAutoConfigure -------------------------------------------------------------------------------- /memo-parent/memo-common/common-websse/src/main/java/vip/yeee/memo/common/web/sse/CommonWebSseAutoConfigure.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.web.sse; 2 | 3 | import org.springframework.context.annotation.ComponentScan; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2023/4/8 16:33 10 | */ 11 | @ComponentScan("vip.yeee.memo.common.web.sse") 12 | public class CommonWebSseAutoConfigure { 13 | } 14 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-websse/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | vip.yeee.memo.common.web.sse.CommonWebSseAutoConfigure -------------------------------------------------------------------------------- /memo-parent/memo-common/common-workflow/common-activiti7/src/main/java/vip/yeee/memo/common/activiti7/CommonActiviti7AutoConfigure.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.activiti7; 2 | 3 | import org.springframework.context.annotation.ComponentScan; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2022/7/12 14:21 10 | */ 11 | @ComponentScan("vip.yeee.memo.common.activiti7") 12 | public class CommonActiviti7AutoConfigure { 13 | } 14 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-workflow/common-activiti7/src/main/java/vip/yeee/memo/common/activiti7/mapper/ActivitiMapper.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.activiti7.mapper; 2 | 3 | import org.apache.ibatis.annotations.Mapper; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2023/12/18 14:36 10 | */ 11 | @Mapper 12 | public interface ActivitiMapper { 13 | 14 | 15 | } 16 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-workflow/common-activiti7/src/main/java/vip/yeee/memo/common/activiti7/model/request/DefDeleteReq.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.activiti7.model.request; 2 | 3 | import lombok.Data; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * description...... 9 | * 10 | * @author https://www.yeee.vip 11 | * @since 2023/12/18 17:21 12 | */ 13 | @Data 14 | public class DefDeleteReq { 15 | 16 | private List ids; 17 | } 18 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-workflow/common-activiti7/src/main/java/vip/yeee/memo/common/activiti7/model/request/InsDeleteReq.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.activiti7.model.request; 2 | 3 | import lombok.Data; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * description...... 9 | * 10 | * @author https://www.yeee.vip 11 | * @since 2023/12/18 17:21 12 | */ 13 | @Data 14 | public class InsDeleteReq { 15 | 16 | private List ids; 17 | } 18 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-workflow/common-activiti7/src/main/java/vip/yeee/memo/common/activiti7/model/request/InstCreateReq.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.activiti7.model.request; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2023/12/18 17:28 10 | */ 11 | @Data 12 | public class InstCreateReq { 13 | 14 | private String pdId; 15 | 16 | private String instanceName; 17 | 18 | private String instanceDesc; 19 | } 20 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-workflow/common-activiti7/src/main/java/vip/yeee/memo/common/activiti7/model/request/TaskCompleteReq.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.activiti7.model.request; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2024/1/27 17:01 10 | */ 11 | @Data 12 | public class TaskCompleteReq { 13 | 14 | private String taskId; 15 | 16 | private Integer isPass; 17 | 18 | private String remark; 19 | } 20 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-workflow/common-activiti7/src/main/java/vip/yeee/memo/common/activiti7/model/vo/DefinitionVo.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.activiti7.model.vo; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2023/12/15 17:45 10 | */ 11 | @Data 12 | public class DefinitionVo { 13 | 14 | private String processDefinitionID; 15 | 16 | private String name; 17 | 18 | private String key; 19 | 20 | private String resourceName; 21 | 22 | private String deploymentID; 23 | 24 | private Integer version; 25 | } 26 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-workflow/common-activiti7/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | vip.yeee.memo.common.activiti7.CommonActiviti7AutoConfigure -------------------------------------------------------------------------------- /memo-parent/memo-common/common-workflow/common-activiti7/src/main/resources/example.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | datasource: 3 | driver-class-name: com.mysql.cj.jdbc.Driver 4 | # Table 'ACT_GE_PROPERTY' doesn't exist -> &nullCatalogMeansCurrent=true 5 | url: jdbc:mysql://127.0.0.1:3306/yeee_activity7?characterEncoding=UTF-8&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true 6 | username: root 7 | password: root 8 | # spring-activity 9 | activiti: 10 | history-level: full 11 | db-history-used: true 12 | # 自动部署验证设置:true-开启(默认)、false-关闭 13 | check-process-definitions: false -------------------------------------------------------------------------------- /memo-parent/memo-common/common-workflow/common-flowable/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | common-workflow 7 | vip.yeee.memo 8 | 3.2.2-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | common-flowable 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-wxsdk/common-wx-ma/src/main/java/vip/yeee/memo/common/wxsdk/ma/WeiXinMaAutoConfigure.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.wxsdk.ma; 2 | 3 | import org.springframework.context.annotation.ComponentScan; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2023/4/8 14:03 10 | */ 11 | @ComponentScan("vip.yeee.memo.common.wxsdk.ma") 12 | public class WeiXinMaAutoConfigure { 13 | } 14 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-wxsdk/common-wx-ma/src/main/java/vip/yeee/memo/common/wxsdk/ma/service/IWxMaConfigService.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.wxsdk.ma.service; 2 | 3 | import vip.yeee.memo.common.wxsdk.ma.properties.WxMaProperties; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2023/4/8 14:29 10 | */ 11 | public interface IWxMaConfigService { 12 | 13 | WxMaProperties.MaConfig findMaConfigByAppId(String appId); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-wxsdk/common-wx-ma/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | vip.yeee.memo.common.wxsdk.ma.WeiXinMaAutoConfigure -------------------------------------------------------------------------------- /memo-parent/memo-common/common-wxsdk/common-wx-ma/src/main/resources/example.yml: -------------------------------------------------------------------------------- 1 | #wx: 2 | # mp: 3 | # use-redis: true 4 | # redis-config: 5 | # host: ${spring.redis.host} 6 | # port: ${spring.redis.port} 7 | # password: ${spring.redis.password} 8 | # timeout: 10000 -------------------------------------------------------------------------------- /memo-parent/memo-common/common-wxsdk/common-wx-mp/src/main/java/vip/yeee/memo/common/wxsdk/mp/WeiXinMpAutoConfigure.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.wxsdk.mp; 2 | 3 | import org.springframework.context.annotation.ComponentScan; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2023/4/8 14:03 10 | */ 11 | @ComponentScan("vip.yeee.memo.common.wxsdk.mp") 12 | public class WeiXinMpAutoConfigure { 13 | } 14 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-wxsdk/common-wx-mp/src/main/java/vip/yeee/memo/common/wxsdk/mp/service/IWxMpConfigService.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.common.wxsdk.mp.service; 2 | 3 | import vip.yeee.memo.common.wxsdk.mp.properties.WxMpProperties; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2023/4/8 14:29 10 | */ 11 | public interface IWxMpConfigService { 12 | 13 | WxMpProperties.MpConfig findMpConfigByAppId(String appId); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /memo-parent/memo-common/common-wxsdk/common-wx-mp/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | vip.yeee.memo.common.wxsdk.mp.WeiXinMpAutoConfigure -------------------------------------------------------------------------------- /memo-parent/memo-common/common-wxsdk/common-wx-mp/src/main/resources/example.yml: -------------------------------------------------------------------------------- 1 | yeee: 2 | wx: 3 | mp: 4 | use-redis: true 5 | redis-config: 6 | host: ${spring.redis.host} 7 | port: ${spring.redis.port} 8 | password: ${spring.redis.password} 9 | timeout: 10000 -------------------------------------------------------------------------------- /middle-ware/canal/README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Canal是阿里MySQL数据库Binlog的增量订阅&消费组件 。基于数据库Binlog可以监控数据库数据的变化进而用于数据同步等业务。 -------------------------------------------------------------------------------- /middle-ware/canal/canal-client/src/main/java/vip/yeee/memo/demo/canal/client/KafkaCanalMessageConsumer.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.canal.client; 2 | 3 | /** 4 | * canal可以配置将消息发送到kafka供消费者消费;防止丢失 5 | * 6 | * @author https://www.yeee.vip 7 | * @since 2022/8/12 18:07 8 | */ 9 | public class KafkaCanalMessageConsumer { 10 | } 11 | -------------------------------------------------------------------------------- /middle-ware/canal/canal-server/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | 8 | canal 9 | vip.yeee.memo 10 | 3.2.2-SNAPSHOT 11 | 12 | 13 | canal-server 14 | pom 15 | 16 | -------------------------------------------------------------------------------- /middle-ware/elasticsearch/src/main/java/vip/yeee/memo/demo/elasticsearch/constant/EsIndex.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.elasticsearch.constant; 2 | 3 | /** 4 | * description...... 5 | * 6 | * @author https://www.yeee.vip 7 | * @since 2022/8/22 14:27 8 | */ 9 | public interface EsIndex { 10 | String T_PROJECT1_INDEX = "cf_project_1"; 11 | String T_PROJECT2_INDEX = "cf_project_2"; 12 | } 13 | -------------------------------------------------------------------------------- /middle-ware/elasticsearch/src/main/java/vip/yeee/memo/demo/elasticsearch/constant/TProjectIndexField.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.elasticsearch.constant; 2 | 3 | /** 4 | * description...... 5 | * 6 | * @author https://www.yeee.vip 7 | * @since 2022/4/25 23:05 8 | */ 9 | public interface TProjectIndexField { 10 | 11 | String ID = "id"; 12 | String CATEGORY_ID = "categoryId"; 13 | String TITLE = "title"; 14 | String CONTENT = "content"; 15 | String CREATE_TIME = "createTime"; 16 | } 17 | -------------------------------------------------------------------------------- /middle-ware/elasticsearch/src/main/java/vip/yeee/memo/demo/elasticsearch/domain/es/entity/BaseIndex.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.elasticsearch.domain.es.entity; 2 | 3 | import lombok.Data; 4 | import org.springframework.data.annotation.Id; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2022/4/26 16:01 11 | */ 12 | @Data 13 | public class BaseIndex { 14 | @Id 15 | private Integer id; 16 | } 17 | -------------------------------------------------------------------------------- /middle-ware/elasticsearch/src/main/java/vip/yeee/memo/demo/elasticsearch/domain/mysql/mapper/TProjectMapper.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.elasticsearch.domain.mysql.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import vip.yeee.memo.demo.elasticsearch.domain.mysql.entity.TProject; 5 | 6 | /** 7 | *

8 | * 众筹项目表 Mapper 接口 9 | *

10 | * 11 | * @author https://www.yeee.vip 12 | * @since 2022-05-17 13 | */ 14 | public interface TProjectMapper extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /middle-ware/elasticsearch/src/main/java/vip/yeee/memo/demo/elasticsearch/service/ITProjectService.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.elasticsearch.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import vip.yeee.memo.demo.elasticsearch.domain.mysql.entity.TProject; 5 | 6 | /** 7 | *

8 | * 众筹项目表 服务类 9 | *

10 | * 11 | * @author https://www.yeee.vip 12 | * @since 2022-05-17 13 | */ 14 | public interface ITProjectService extends IService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /middle-ware/elasticsearch/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 10013 3 | spring: 4 | profiles: 5 | active: test 6 | datasource: 7 | driver-class-name: com.mysql.cj.jdbc.Driver 8 | url: jdbc:mysql://localhost:3306/yeeee_crowdfunding?characterEncoding=UTF-8&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai 9 | username: root 10 | password: root 11 | elasticsearch: 12 | uris: http://127.0.0.1:9200 13 | username: admin 14 | password: admin -------------------------------------------------------------------------------- /middle-ware/flink/src/main/java/vip/yeee/memo/demo/flink/constant/OperateEventEnum.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.flink.constant; 2 | 3 | import lombok.Getter; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2022/8/6 16:16 10 | */ 11 | @Getter 12 | public enum OperateEventEnum { 13 | 14 | VIEW_INDEX("访问首页"), 15 | VIEW_LIST("访问列表"), 16 | VIEW_DETAIL("访问详情"), 17 | 18 | ; 19 | 20 | private final String evnet; 21 | 22 | OperateEventEnum(String evnet) { 23 | this.evnet = evnet; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /middle-ware/flink/src/main/java/vip/yeee/memo/demo/flink/model/AccessLogBO.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.flink.model; 2 | 3 | import lombok.Data; 4 | import vip.yeee.memo.demo.flink.constant.OperateEventEnum; 5 | 6 | import java.util.Date; 7 | 8 | @Data 9 | public class AccessLogBO { 10 | 11 | /** 12 | * @see OperateEventEnum 13 | */ 14 | private String event; 15 | private Long subjectId; 16 | private Date timestamp; 17 | private String ip; 18 | private String domain; 19 | private Integer status; 20 | private Float responseTime; 21 | private String device; 22 | 23 | } 24 | -------------------------------------------------------------------------------- /middle-ware/flink/src/main/java/vip/yeee/memo/demo/flink/model/NginxAccessLog.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.flink.model; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class NginxAccessLog { 7 | 8 | private String timestamp; 9 | private String clientIp; 10 | private String requestMethod; 11 | private String domain; 12 | private String referer; 13 | private String requestUrl; 14 | private String requestArgs; 15 | private String status; 16 | private String responseTime; 17 | private String userAgent; 18 | private String httpCookie; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /middle-ware/flink/src/main/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | ### ??### 2 | log4j.rootLogger = info,stdout 3 | 4 | ### ???????? ### 5 | log4j.appender.stdout = org.apache.log4j.ConsoleAppender 6 | log4j.appender.stdout.layout = org.apache.log4j.PatternLayout 7 | log4j.appender.stdout.layout.ConversionPattern = %-4r [%t] %-5p %c %x -%m%n 8 | 9 | -------------------------------------------------------------------------------- /middle-ware/mongodb/src/main/java/vip/yeee/memo/demo/mongodb/MongodbApplication.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.mongodb; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2023/10/16 15:01 11 | */ 12 | @SpringBootApplication 13 | public class MongodbApplication { 14 | 15 | public static void main(String[] args) { 16 | SpringApplication.run(MongodbApplication.class, args); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /middle-ware/mongodb/src/main/java/vip/yeee/memo/demo/mongodb/domain/entity/YeeeTestDoc.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.mongodb.domain.entity; 2 | 3 | import lombok.Data; 4 | import org.springframework.data.annotation.Id; 5 | import org.springframework.data.mongodb.core.mapping.Document; 6 | 7 | import java.util.Date; 8 | 9 | @Document("yeee_test_doc") 10 | @Data 11 | public class YeeeTestDoc { 12 | 13 | @Id 14 | private String id; 15 | 16 | private String content; 17 | 18 | private Date createTime; 19 | 20 | private Date updateTime; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /middle-ware/mongodb/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | 2 | 3 | spring: 4 | data: 5 | mongodb: 6 | uri: mongodb://yeee_user:*****@localhost:27017 7 | -------------------------------------------------------------------------------- /middle-ware/mq/kafka/src/main/java/vip/yeee/memo/demo/kafka/KafkaDemoApplication.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.kafka; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2022/8/13 15:08 11 | */ 12 | @SpringBootApplication 13 | public class KafkaDemoApplication { 14 | 15 | public static void main(String[] args) { 16 | SpringApplication.run(KafkaDemoApplication.class, args); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /middle-ware/mq/kafka/src/main/java/vip/yeee/memo/demo/kafka/model/qo/OrderQo.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.kafka.model.qo; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2022/11/7 13:23 10 | */ 11 | @Data 12 | public class OrderQo { 13 | 14 | private Integer id; 15 | 16 | private Integer status; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /middle-ware/mq/kafka/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | kafka: 3 | bootstrap-servers: yeee.vip.host:21661 4 | consumer: 5 | group-id: GID_yeee-memo 6 | enable-auto-commit: false # 需要ack.acknowledge() 7 | isolation-level: read_committed 8 | producer: 9 | retries: 3 10 | acks: 1 11 | transaction-id-prefix: tx_ 12 | listener: 13 | ack-mode: manual -------------------------------------------------------------------------------- /middle-ware/mq/rabbitmq/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | mq 7 | vip.yeee.memo 8 | 3.2.2-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | rabbitmq 13 | pom 14 | 15 | -------------------------------------------------------------------------------- /middle-ware/mq/rocketmq/consumer-demo/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | 8 | rocketmq 9 | vip.yeee.memo 10 | 3.2.2-SNAPSHOT 11 | 12 | 13 | consumer-demo 14 | 15 | -------------------------------------------------------------------------------- /middle-ware/mq/rocketmq/consumer-demo/src/main/java/vip/yeee/memo/demo/mq/rocketmq/consumer/ConsumerDemoApplication.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.mq.rocketmq.consumer; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2022/4/25 15:17 11 | */ 12 | @SpringBootApplication 13 | public class ConsumerDemoApplication { 14 | 15 | public static void main(String[] args) { 16 | new SpringApplication(ConsumerDemoApplication.class).run(args); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /middle-ware/mq/rocketmq/consumer-demo/src/main/java/vip/yeee/memo/demo/mq/rocketmq/consumer/v1/model/ConsumeMode.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.mq.rocketmq.consumer.v1.model; 2 | 3 | /** 4 | * 消息模式 5 | */ 6 | public enum ConsumeMode { 7 | 8 | /** 9 | * 集群消费模式 10 | */ 11 | CLUSTERING, 12 | 13 | /** 14 | * 广播消费模式 15 | */ 16 | BROADCASTING; 17 | } 18 | -------------------------------------------------------------------------------- /middle-ware/mq/rocketmq/consumer-demo/src/main/java/vip/yeee/memo/demo/mq/rocketmq/consumer/v1/model/MessageType.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.mq.rocketmq.consumer.v1.model; 2 | 3 | /** 4 | * 消息类型 5 | */ 6 | public enum MessageType { 7 | 8 | /** 9 | * 普通消息 10 | */ 11 | NORMAL, 12 | 13 | /** 14 | * 批量消息 15 | */ 16 | BATCH, 17 | 18 | /** 19 | * 顺序消息 20 | */ 21 | ORDER; 22 | 23 | } 24 | -------------------------------------------------------------------------------- /middle-ware/mq/rocketmq/consumer-demo/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 10011 3 | rocketmq: 4 | nameSrvAddr: http://127.0.0.1:9876 5 | accessKey: RocketMQ 6 | secretKey: 12345678 7 | consumer: 8 | enabled: true 9 | group-id: GID_demo1 10 | consume-thread-nums: 20 11 | topic: 12 | demo-topic1: demoTopic1 13 | demo-topic2: demoTopic2 -------------------------------------------------------------------------------- /middle-ware/mq/rocketmq/producer-demo/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | 8 | rocketmq 9 | vip.yeee.memo 10 | 3.2.2-SNAPSHOT 11 | 12 | 13 | producer-demo 14 | 15 | -------------------------------------------------------------------------------- /middle-ware/mq/rocketmq/producer-demo/src/main/java/vip/yeee/memo/demo/mq/rocketmq/producer/ProducerDemoApplication.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.mq.rocketmq.producer; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2022/4/25 15:23 11 | */ 12 | @SpringBootApplication 13 | public class ProducerDemoApplication { 14 | 15 | public static void main(String[] args) { 16 | new SpringApplication(ProducerDemoApplication.class).run(args); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /middle-ware/mq/rocketmq/producer-demo/src/main/java/vip/yeee/memo/demo/mq/rocketmq/producer/service/IBusinessService.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.mq.rocketmq.producer.service; 2 | 3 | import com.aliyun.openservices.ons.api.Message; 4 | 5 | public interface IBusinessService { 6 | boolean executeService(final Message msg); 7 | boolean checkService(final Message msg); 8 | } 9 | -------------------------------------------------------------------------------- /middle-ware/mq/rocketmq/producer-demo/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 10012 3 | 4 | 5 | rocketmq: 6 | accessKey: RocketMQ 7 | secretKey: 12345678 8 | nameSrvAddr: http://127.0.0.1:9876 -------------------------------------------------------------------------------- /simple-tools/export/easyexcel/src/main/java/vip/yeee/memo/demo/stools/export/easyexcel/EasyexcelDemoApplication.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.stools.export.easyexcel; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class EasyexcelDemoApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(EasyexcelDemoApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /simple-tools/export/easyexcel/src/main/java/vip/yeee/memo/demo/stools/export/easyexcel/model/vo/BaseExportDataVo.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.stools.export.easyexcel.model.vo; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class BaseExportDataVo { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /simple-tools/export/easyexcel/src/main/java/vip/yeee/memo/demo/stools/export/easyexcel/model/vo/ImportDataVo.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.stools.export.easyexcel.model.vo; 2 | 3 | import com.alibaba.excel.annotation.ExcelProperty; 4 | import lombok.Data; 5 | 6 | @Data 7 | public class ImportDataVo { 8 | 9 | @ExcelProperty(value = "用户名", index = 0) 10 | private String username; 11 | 12 | @ExcelProperty(value = "问题答案", index = 1) 13 | private String nameAnswer; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /simple-tools/generator/generate-custom/src/main/java/vip/yeee/memo/demo/custom/generate/core/formatter/ListTemplateFormatter.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.custom.generate.core.formatter; 2 | 3 | 4 | import vip.yeee.memo.demo.custom.generate.core.model.TableClass; 5 | 6 | import java.util.Properties; 7 | import java.util.Set; 8 | 9 | /** 10 | * @since 3.4.5 11 | */ 12 | public interface ListTemplateFormatter { 13 | 14 | /** 15 | * 获取根据模板生成的数据 16 | */ 17 | String getFormattedContent(Set tableClassSet, Properties properties, String targetPackage, String templateContent); 18 | } 19 | -------------------------------------------------------------------------------- /simple-tools/generator/generate-custom/src/main/java/vip/yeee/memo/demo/custom/generate/core/formatter/TemplateFormatter.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.custom.generate.core.formatter; 2 | 3 | import vip.yeee.memo.demo.custom.generate.core.model.TableClass; 4 | 5 | import java.util.Properties; 6 | 7 | /** 8 | * @since 3.4.5 9 | */ 10 | public interface TemplateFormatter { 11 | 12 | /** 13 | * 获取根据模板生成的数据 14 | */ 15 | String getFormattedContent(TableClass tableClass, Properties properties, String targetPackage, String templateContent); 16 | } 17 | -------------------------------------------------------------------------------- /simple-tools/generator/generate-custom/src/main/resources/template/common/model/IdRequest.ftl: -------------------------------------------------------------------------------- 1 | package ${package}; 2 | 3 | import io.swagger.annotations.ApiModelProperty; 4 | import lombok.Data; 5 | 6 | import javax.validation.constraints.NotEmpty; 7 | import javax.validation.constraints.NotNull; 8 | import java.util.List; 9 | 10 | /** 11 | * Generated by Yeeee.一页 12 | * @since ${generateDate} 13 | */ 14 | @Data 15 | public class IdRequest { 16 | 17 | @ApiModelProperty("ID") 18 | @NotNull(message = "ID不能为空") 19 | private Long id; 20 | 21 | @ApiModelProperty("IDS") 22 | @NotEmpty(message = "IDS不能为空") 23 | private List ids; 24 | 25 | } -------------------------------------------------------------------------------- /simple-tools/generator/generate-custom/src/main/resources/template/common/model/ListRequest.ftl: -------------------------------------------------------------------------------- 1 | package ${package}; 2 | 3 | import io.swagger.annotations.ApiModelProperty; 4 | import lombok.Data; 5 | 6 | import javax.validation.constraints.NotNull; 7 | 8 | /** 9 | * Generated by Yeeee.一页 10 | * @since ${generateDate} 11 | */ 12 | @Data 13 | public class ${tableClass.shortClassName}ListRequest { 14 | 15 | @ApiModelProperty("当前页码") 16 | @NotNull(message = "当前页码不能为空") 17 | private Integer pageNum; 18 | 19 | @ApiModelProperty("分页大小") 20 | @NotNull(message = "分页大小不能为空") 21 | private Integer pageSize; 22 | 23 | } -------------------------------------------------------------------------------- /simple-tools/jasypt/src/main/java/vip/yeee/memo/demo/jasypt/JasyptApplication.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.jasypt; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2022/8/30 9:48 11 | */ 12 | @SpringBootApplication 13 | public class JasyptApplication { 14 | 15 | public static void main(String[] args) { 16 | SpringApplication.run(JasyptApplication.class, args); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /simple-tools/jasypt/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | jasypt: 2 | encryptor: 3 | password: yeee -------------------------------------------------------------------------------- /simple-tools/simple-kit/src/main/java/vip/yeee/memo/demo/stools/kit/SimpleKitsApplication.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.stools.kit; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2022/12/6 11:08 11 | */ 12 | @SpringBootApplication 13 | public class SimpleKitsApplication { 14 | 15 | public static void main(String[] args) { 16 | SpringApplication.run(SimpleKitsApplication.class); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /simple-tools/simple-kit/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | redis: 3 | host: 127.0.0.1 4 | port: 6379 5 | database: 1 6 | password: yeah -------------------------------------------------------------------------------- /simple-tools/simple-tools-execLinuxSSH/src/main/java/vip/yeee/memo/demo/simpletool/execlinux/SpringbootApp.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.simpletool.execlinux; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | * description ... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2021/12/27 14:19 11 | */ 12 | @SpringBootApplication 13 | public class SpringbootApp { 14 | public static void main(String[] args) { 15 | SpringApplication.run(SpringbootApp.class); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /simple-tools/simple-tools-execLinuxSSH/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port:8081 3 | 4 | 5 | spring: 6 | quartz: 7 | job-store-type: memory 8 | # jdbc: 9 | # initialize-schema: always -------------------------------------------------------------------------------- /simple-tools/simple-tools-execLinuxSSH/src/main/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | # Global logging configuration 开发时候建议使用 debug 2 | log4j.rootLogger=DEBUG, stdout 3 | # Console output... 4 | log4j.appender.stdout=org.apache.log4j.ConsoleAppender 5 | log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 6 | log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n -------------------------------------------------------------------------------- /solution-problem/distribute-lock/distribute-lock-jedis/src/main/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | # Global logging configuration 开发时候建议使用 debug 2 | log4j.rootLogger=DEBUG, stdout 3 | # Console output... 4 | log4j.appender.stdout=org.apache.log4j.ConsoleAppender 5 | log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 6 | log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n -------------------------------------------------------------------------------- /solution-problem/distribute-lock/distribute-lock-jedis/src/main/resources/script/lock.lua: -------------------------------------------------------------------------------- 1 | --- -1 failed 2 | --- 1 success 3 | --- 4 | local key = KEYS[1] 5 | local requestId = KEYS[2] 6 | local ttl = tonumber(KEYS[3]) 7 | local result = redis.call('setnx', key, requestId) 8 | if result == 1 then 9 | -- PEXPIRE:以毫秒的形式指定过期时间 10 | redis.call('pexpire', key, ttl) 11 | else 12 | result = -1 13 | -- 如果value相同,则认为是同一个线程的请求,则认为重入锁 14 | local value = redis.call('get', key) 15 | if (value == requestId) then 16 | result = 1 17 | redis.call('pexpire', key, ttl) 18 | end 19 | end 20 | -- 如果获取锁成功,则返回1 21 | return result -------------------------------------------------------------------------------- /solution-problem/distribute-lock/distribute-lock-jedis/src/main/resources/script/unlock.lua: -------------------------------------------------------------------------------- 1 | --- -1 failed 2 | --- 1 success 3 | 4 | -- unlock key 5 | local key = KEYS[1] 6 | local requestId = KEYS[2] 7 | local value = redis.call('get', key) 8 | if value == requestId then 9 | redis.call('del', key) 10 | return 1 11 | end 12 | return -1 -------------------------------------------------------------------------------- /solution-problem/distribute-lock/distribute-lock-redisson/src/main/java/vip/yeee/memo/demo/distribute/lock/redisson/TestRedissonApplication.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.distribute.lock.redisson; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2022/7/15 10:37 11 | */ 12 | @SpringBootApplication 13 | public class TestRedissonApplication { 14 | 15 | public static void main(String[] args) { 16 | SpringApplication.run(TestRedissonApplication.class, args); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /solution-problem/distribute-lock/distribute-lock-redisson/src/main/java/vip/yeee/memo/demo/distribute/lock/redisson/example/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Please check out the test src folder 3 | */ 4 | package vip.yeee.memo.demo.distribute.lock.redisson.example; -------------------------------------------------------------------------------- /solution-problem/distribute-lock/distribute-lock-redisson/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring:redis.host=127.0.0.1 2 | spring.redis.port=6379 3 | spring.redis.password=yeah 4 | spring.redis.database=15 5 | spring.redis.timeout=5000 -------------------------------------------------------------------------------- /solution-problem/distribute-lock/distribute-lock-zookeeper/src/main/java/vip/yeee/memo/demo/distribute/lock/zookeeper/lock/simple/Lock.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.distribute.lock.zookeeper.lock.simple; 2 | 3 | /** 4 | * description ... 5 | * 6 | * @author https://www.yeee.vip 7 | * @since 2021/12/29 18:24 8 | */ 9 | public interface Lock { 10 | 11 | boolean lock() throws Exception; 12 | 13 | boolean unlock(); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /solution-problem/mybatis-encrypt/src/main/java/vip/yeee/memo/demo/mybatisencrypt/MybatisEncryptApplication.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.mybatisencrypt; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2023/10/24 10:13 11 | */ 12 | @SpringBootApplication 13 | public class MybatisEncryptApplication { 14 | 15 | public static void main(String[] args) { 16 | SpringApplication.run(MybatisEncryptApplication.class, args); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /solution-problem/mybatis-encrypt/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | datasource: 3 | driver-class-name: com.mysql.cj.jdbc.Driver 4 | url: jdbc:mysql://localhost:3306/java_memo?characterEncoding=UTF-8&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai 5 | password: root 6 | username: root 7 | yeee: 8 | mybatis: 9 | encrypt: 10 | password: 1870577f29b17d6787782f35998c4a79 -------------------------------------------------------------------------------- /solution-problem/netty/heart-check/netty-client/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | spring.redis.host=127.0.0.1 3 | spring.redis.database=0 4 | spring.redis.port=6379 5 | spring.redis.password=yeah 6 | 7 | spring.netty.clientId=test -------------------------------------------------------------------------------- /solution-problem/netty/heart-check/netty-common/src/main/java/vip/yeee/memo/demo/netty/heartcheck/common/protobuf/Message.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto2"; 2 | 3 | option java_package="cvip.yeee.memo.demo.netty.heartcheck.common.protobuf"; 4 | option java_outer_classname = "Message"; 5 | import "vip/yeee/memo/demo/netty/heartcheck/common/protobuf/Command.proto"; 6 | 7 | message MessageBase { 8 | required string clientId = 1; 9 | required CommandType cmd = 2; 10 | optional string data = 3; 11 | } -------------------------------------------------------------------------------- /solution-problem/netty/heart-check/netty-server/src/main/resources/application-dev.properties: -------------------------------------------------------------------------------- 1 | 2 | 3 | tcp.host=127.0.0.1 4 | tcp.port=19999 5 | boss.thread.count=2 6 | worker.thread.count=20 7 | so.keepalive=true 8 | so.backlog=100 9 | 10 | spring.redis.host=127.0.0.1 11 | spring.redis.database=0 12 | spring.redis.port=6379 13 | spring.redis.password=yeah 14 | 15 | 16 | 17 | server.READER_IDLE_TIME_SECONDS=10 18 | server.WRITER_IDLE_TIME_SECONDS=0 19 | server.ALL_IDLE_TIME_SECONDS=0 20 | 21 | 22 | -------------------------------------------------------------------------------- /solution-problem/netty/heart-check/netty-server/src/main/resources/application-pro.properties: -------------------------------------------------------------------------------- 1 | tcp.host=127.0.0.1 2 | tcp.port=19999 3 | boss.thread.count=2 4 | worker.thread.count=20 5 | so.keepalive=true 6 | so.backlog=100 7 | 8 | spring.redis.host= 9 | spring.redis.database=0 10 | spring.redis.port=6379 11 | spring.redis.password= 12 | 13 | server.READER_IDLE_TIME_SECONDS=10 14 | server.WRITER_IDLE_TIME_SECONDS=0 15 | server.ALL_IDLE_TIME_SECONDS=0 16 | 17 | -------------------------------------------------------------------------------- /solution-problem/netty/heart-check/netty-server/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.profiles.active=dev 2 | 3 | server.port=10003 4 | 5 | spring.thymeleaf.prefix=classpath:/templates/ 6 | spring.thymeleaf.encoding=UTF-8 7 | spring.thymeleaf.mode=HTML 8 | spring.thymeleaf.suffix=.html 9 | spring.thymeleaf.cache=false -------------------------------------------------------------------------------- /solution-problem/netty/simple-example/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | 8 | netty 9 | vip.yeee.memo 10 | 3.2.2-SNAPSHOT 11 | 12 | 13 | simple-example 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /solution-problem/netty/simple-example/src/main/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | # Global logging configuration 开发时候建议使用 debug 2 | log4j.rootLogger=DEBUG, stdout 3 | # Console output... 4 | log4j.appender.stdout=org.apache.log4j.ConsoleAppender 5 | log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 6 | log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n -------------------------------------------------------------------------------- /solution-problem/netty/webserver/src/main/java/vip/yeee/memo/demo/netty/webserver/action/Action.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.netty.webserver.action; 2 | 3 | import vip.yeee.memo.demo.netty.webserver.handler.Request; 4 | import vip.yeee.memo.demo.netty.webserver.handler.Response; 5 | 6 | /** 7 | * 请求处理接口
8 | * 当用户请求某个Path,则调用相应Action的doAction方法 9 | * @author Looly 10 | * 11 | */ 12 | public interface Action { 13 | public void doAction(Request request, Response response); 14 | } 15 | -------------------------------------------------------------------------------- /solution-problem/netty/webserver/src/main/java/vip/yeee/memo/demo/netty/webserver/action/DefaultIndexAction.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.netty.webserver.action; 2 | 3 | import vip.yeee.memo.demo.netty.webserver.handler.Request; 4 | import vip.yeee.memo.demo.netty.webserver.handler.Response; 5 | 6 | /** 7 | * 默认的主页Action,当访问主页且没有定义主页Action时,调用此Action 8 | * @author Looly 9 | * 10 | */ 11 | public class DefaultIndexAction implements Action{ 12 | 13 | @Override 14 | public void doAction(Request request, Response response) { 15 | response.setContent("Welcome to LoServer."); 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /solution-problem/netty/webserver/src/main/java/vip/yeee/memo/demo/netty/webserver/annotation/Route.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.netty.webserver.annotation; 2 | 3 | import java.lang.annotation.Inherited; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | 7 | /** 8 | * 注解,用于自定义访问的URL路径
9 | * 值可以是一个请求路径,如果需要指定HTTP方法,在前面加方法名用":"分隔既可
10 | * @author loolly 11 | * 12 | */ 13 | @Retention(RetentionPolicy.RUNTIME)/*保留的时间长短*/ 14 | @Inherited/*只用于class,可被子类继承*/ 15 | public @interface Route { 16 | String value(); 17 | } 18 | -------------------------------------------------------------------------------- /solution-problem/netty/webserver/src/main/java/vip/yeee/memo/demo/netty/webserver/filter/Filter.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.netty.webserver.filter; 2 | 3 | import vip.yeee.memo.demo.netty.webserver.handler.Request; 4 | import vip.yeee.memo.demo.netty.webserver.handler.Response; 5 | 6 | /** 7 | * 过滤器接口
8 | * @author Looly 9 | * 10 | */ 11 | public interface Filter { 12 | 13 | /** 14 | * 执行过滤 15 | * @param request 请求对象 16 | * @param response 响应对象 17 | * @return 如果返回true,则继续执行下一步内容,否则中断 18 | */ 19 | public boolean doFilter(Request request, Response response); 20 | } 21 | -------------------------------------------------------------------------------- /solution-problem/netty/webserver/src/test/resources/logback.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ${format} 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /solution-problem/sub-database-table/apache-shardingsphere/sharding-database/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | 8 | apache-shardingsphere 9 | vip.yeee.memo 10 | 3.2.2-SNAPSHOT 11 | 12 | 13 | sharding-database 14 | 15 | -------------------------------------------------------------------------------- /solution-problem/sub-database-table/apache-shardingsphere/sharding-tables/src/main/java/vip/yeee/memo/demo/subdt/apachesharding/entity/Test.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.subdt.apachesharding.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.TableName; 4 | import lombok.Data; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2022/6/22 17:20 11 | */ 12 | @TableName("t_test") 13 | @Data 14 | public class Test { 15 | 16 | private Long id; 17 | 18 | private Integer type; 19 | 20 | private String field1; 21 | 22 | private String field2; 23 | 24 | } 25 | -------------------------------------------------------------------------------- /solution-problem/sub-database-table/apache-shardingsphere/sharding-tables/src/main/java/vip/yeee/memo/demo/subdt/apachesharding/mapper/TestMapper.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.subdt.apachesharding.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import vip.yeee.memo.demo.subdt.apachesharding.entity.Test; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2022/6/22 17:20 11 | */ 12 | public interface TestMapper extends BaseMapper { 13 | } 14 | -------------------------------------------------------------------------------- /solution-problem/sub-database-table/apache-shardingsphere/sharding-tables/src/main/java/vip/yeee/memo/demo/subdt/apachesharding/service/TestService.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.subdt.apachesharding.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import vip.yeee.memo.demo.subdt.apachesharding.entity.Test; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2022/6/22 17:45 11 | */ 12 | public interface TestService extends IService { 13 | } 14 | -------------------------------------------------------------------------------- /solution-problem/tokenizing/ik-analyzer/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | tokenizing 7 | vip.yeee.memo 8 | 3.2.2-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | ik-analyzer 13 | pom 14 | 15 | -------------------------------------------------------------------------------- /solution-problem/tokenizing/lionsoul-jcseg/src/main/java/vip/yeee/memo/demo/tokenizing/jcseg/LionsoulJcsegApplication.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.tokenizing.jcseg; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2023/4/25 16:28 11 | */ 12 | @SpringBootApplication 13 | public class LionsoulJcsegApplication { 14 | 15 | public static void main(String[] args) { 16 | SpringApplication.run(LionsoulJcsegApplication.class, args); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /solution-problem/websocket-example/src/main/java/vip/yeee/memo/demo/websocket/WebsocketDemoApplication.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.websocket; 2 | 3 | import org.mybatis.spring.annotation.MapperScan; 4 | import org.springframework.boot.SpringApplication; 5 | import org.springframework.boot.autoconfigure.SpringBootApplication; 6 | 7 | @MapperScan("vip.yeee.memo.demo.websocket.mapper") 8 | @SpringBootApplication 9 | public class WebsocketDemoApplication { 10 | 11 | public static void main(String[] args) { 12 | SpringApplication.run(WebsocketDemoApplication.class, args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /solution-problem/websocket-example/src/main/java/vip/yeee/memo/demo/websocket/mapper/LoginMapper.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.websocket.mapper; 2 | 3 | import vip.yeee.memo.demo.websocket.po.Staff; 4 | 5 | public interface LoginMapper { 6 | Staff getpwdbyname(String name); 7 | Staff getnamebyid(long id); 8 | } 9 | -------------------------------------------------------------------------------- /solution-problem/websocket-example/src/main/java/vip/yeee/memo/demo/websocket/po/MSG.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.websocket.po; 2 | 3 | public class MSG { 4 | String msg; 5 | 6 | public MSG(String msg) { 7 | super(); 8 | this.msg = msg; 9 | } 10 | 11 | public String getMsg() { 12 | return msg; 13 | } 14 | 15 | public void setMsg(String msg) { 16 | this.msg = msg; 17 | } 18 | 19 | 20 | 21 | } 22 | -------------------------------------------------------------------------------- /solution-problem/websocket-example/src/main/java/vip/yeee/memo/demo/websocket/po/User.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.websocket.po; 2 | 3 | public class User { 4 | Long uid; 5 | 6 | String name; 7 | 8 | public User() { 9 | super(); 10 | } 11 | 12 | public User(Long uid, String name) { 13 | super(); 14 | this.uid = uid; 15 | this.name = name; 16 | } 17 | 18 | public Long getUid() { 19 | return uid; 20 | } 21 | 22 | public void setUid(Long uid) { 23 | this.uid = uid; 24 | } 25 | 26 | public String getName() { 27 | return name; 28 | } 29 | 30 | public void setName(String name) { 31 | this.name = name; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /solution-problem/websocket-example/src/main/java/vip/yeee/memo/demo/websocket/service/LoginService.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.websocket.service; 2 | 3 | 4 | public interface LoginService { 5 | String getpwdbyname(String name); 6 | Long getUidbyname(String name); 7 | String getnamebyid(long id); 8 | } 9 | -------------------------------------------------------------------------------- /solution-problem/websocket-example/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | 4 | spring: 5 | profiles: 6 | active: dev 7 | datasource: 8 | driver-class-name: com.mysql.cj.jdbc.Driver 9 | url: jdbc:mysql://localhost:3306/java_memo?serverTimezone=GMT%2B8&useSSL=false 10 | username: root 11 | password: root 12 | mybatis: 13 | mapper-locations: classpath:mapper/*.xml 14 | 15 | -------------------------------------------------------------------------------- /solution-problem/websocket-example/src/main/resources/templates/fail.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /spring-cloud/auth-sso/api-auth-server/src/main/java/vip/yeee/memo/demo/springcloud/apiauth/server/CloudApiAuthServerApplication.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.springcloud.apiauth.server; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2022/11/21 11:33 11 | */ 12 | @SpringBootApplication 13 | public class CloudApiAuthServerApplication { 14 | 15 | public static void main(String[] args) { 16 | SpringApplication.run(CloudApiAuthServerApplication.class, args); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /spring-cloud/auth-sso/api-auth-server/src/main/java/vip/yeee/memo/demo/springcloud/apiauth/server/model/request/UserLoginRequest.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.springcloud.apiauth.server.model.request; 2 | 3 | import lombok.Data; 4 | 5 | import javax.validation.constraints.NotBlank; 6 | 7 | /** 8 | * description...... 9 | * 10 | * @author https://www.yeee.vip 11 | * @since 2022/11/28 16:34 12 | */ 13 | @Data 14 | public class UserLoginRequest { 15 | 16 | @NotBlank(message = "用户名不能空") 17 | private String username; 18 | @NotBlank(message = "密码不能空") 19 | private String password; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /spring-cloud/auth-sso/web-auth-server/src/main/java/vip/yeee/memo/demo/springcloud/webauth/server/CloudWebauthServerApplication.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.springcloud.webauth.server; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2022/11/16 17:29 11 | */ 12 | @SpringBootApplication 13 | public class CloudWebauthServerApplication { 14 | 15 | public static void main(String[] args) { 16 | SpringApplication.run(CloudWebauthServerApplication.class, args); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /spring-cloud/auth-sso/web-auth-server/src/main/java/vip/yeee/memo/demo/springcloud/webauth/server/model/bo/FrontUserBo.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.springcloud.webauth.server.model.bo; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | import vip.yeee.memo.base.websecurityoauth2.model.AuthUser; 6 | 7 | /** 8 | * description...... 9 | * 10 | * @author https://www.yeee.vip 11 | * @since 2022/11/16 17:37 12 | */ 13 | @EqualsAndHashCode(callSuper = true) 14 | @Data 15 | public class FrontUserBo extends AuthUser { 16 | } 17 | -------------------------------------------------------------------------------- /spring-cloud/auth-sso/web-auth-server/src/main/java/vip/yeee/memo/demo/springcloud/webauth/server/model/bo/SystemUserBo.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.springcloud.webauth.server.model.bo; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | import vip.yeee.memo.base.websecurityoauth2.model.AuthUser; 6 | 7 | /** 8 | * description...... 9 | * 10 | * @author https://www.yeee.vip 11 | * @since 2022/11/16 17:37 12 | */ 13 | @EqualsAndHashCode(callSuper = true) 14 | @Data 15 | public class SystemUserBo extends AuthUser { 16 | } 17 | -------------------------------------------------------------------------------- /spring-cloud/auth-sso/web-auth-server/src/main/java/vip/yeee/memo/demo/springcloud/webauth/server/model/request/UserAuthRequest.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.springcloud.webauth.server.model.request; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2022/11/17 13:22 10 | */ 11 | @Data 12 | public class UserAuthRequest { 13 | 14 | private String username; 15 | private String password; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /spring-cloud/auth-sso/web-auth-server/src/main/java/vip/yeee/memo/demo/springcloud/webauth/server/model/vo/UserAuthVo.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.springcloud.webauth.server.model.vo; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2022/11/17 13:22 10 | */ 11 | @Data 12 | public class UserAuthVo { 13 | 14 | private String token; 15 | 16 | private String tokenHead; 17 | } 18 | -------------------------------------------------------------------------------- /spring-cloud/auth-sso/web-resource-server1/src/main/java/vip/yeee/memo/demo/springcloud/webresource/server1/model/request/UserAuthRequest.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.springcloud.webresource.server1.model.request; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2022/11/17 13:22 10 | */ 11 | @Data 12 | public class UserAuthRequest { 13 | 14 | private String username; 15 | private String password; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /spring-cloud/auth-sso/web-resource-server1/src/main/java/vip/yeee/memo/demo/springcloud/webresource/server1/model/vo/UserAuthVo.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.springcloud.webresource.server1.model.vo; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2022/11/17 13:22 10 | */ 11 | @Data 12 | public class UserAuthVo { 13 | 14 | private String token; 15 | 16 | private String tokenHead; 17 | } 18 | -------------------------------------------------------------------------------- /spring-cloud/config/nacos2/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | 8 | memo-parent 9 | vip.yeee.memo 10 | 3.2.2-SNAPSHOT 11 | 12 | 13 | 14 | nacos2 15 | pom 16 | 17 | -------------------------------------------------------------------------------- /spring-cloud/gateway/springcloud-gateway/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | yeee: 2 | common: 3 | name: 一页 4 | version: 1.0.1.0 5 | ahas: 6 | namespace: default 7 | license: 0d698089f716486c8ae8d30de102a03e 8 | project: 9 | name: ${spring.application.name} -------------------------------------------------------------------------------- /spring-cloud/gateway/springcloud-gateway/src/main/resources/sentinel-rule/degraderule.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "resource": "GET:http://zmg-gds/goods/getGoodsById", 4 | "count": 1, 5 | "grade": 2, 6 | "timeWindow": 5 7 | } 8 | ] 9 | -------------------------------------------------------------------------------- /spring-cloud/gateway/springcloud-gateway/src/main/resources/sentinel-rule/flowrule.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "resource": "GET:http://zmg-gds/goods/getGoodsById", 4 | "count": 1, 5 | "grade": 2, 6 | "timeWindow": 5 7 | } 8 | ] 9 | -------------------------------------------------------------------------------- /spring-cloud/protect/sentinel/help.txt: -------------------------------------------------------------------------------- 1 | https://sentinelguard.io/zh-cn/ -------------------------------------------------------------------------------- /spring-cloud/protect/sentinel/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | 8 | memo-parent 9 | vip.yeee.memo 10 | 3.2.2-SNAPSHOT 11 | 12 | 13 | 14 | sentinel 15 | pom 16 | 17 | -------------------------------------------------------------------------------- /spring-cloud/reactive-programming/src/main/java/vip/yeee/memo/demo/reactive/prog/ReactiveSpringTutorialApplication.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.reactive.prog; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class ReactiveSpringTutorialApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(ReactiveSpringTutorialApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-cloud/reactive-programming/src/main/java/vip/yeee/memo/demo/reactive/prog/domain/BookQuery.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.reactive.prog.domain; 2 | 3 | import lombok.Data; 4 | 5 | import javax.validation.constraints.Max; 6 | import javax.validation.constraints.Min; 7 | import java.math.BigDecimal; 8 | 9 | @Data 10 | public class BookQuery { 11 | private String title; 12 | private BigDecimal minPrice; 13 | private BigDecimal maxPrice; 14 | 15 | @Min(1) 16 | private int page = 1; 17 | 18 | @Min(0) 19 | @Max(500) 20 | private int size = 10; 21 | } 22 | -------------------------------------------------------------------------------- /spring-cloud/reactive-programming/src/main/java/vip/yeee/memo/demo/reactive/prog/s10ReactiveTesting/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Please check out the test src folder 3 | */ 4 | package vip.yeee.memo.demo.reactive.prog.s10ReactiveTesting; -------------------------------------------------------------------------------- /spring-cloud/reactive-programming/src/main/resources/schema.sql: -------------------------------------------------------------------------------- 1 | create table book ( 2 | isbn varchar(20) primary key, 3 | title varchar(500) not null, 4 | price decimal(10,2) not null, 5 | category varchar(50) not null 6 | ); -------------------------------------------------------------------------------- /spring-cloud/reactive-programming/src/test/java/vip/yeee/memo/demo/reactive/prog/ReactiveSpringTutorialApplicationTests.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.reactive.prog; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class ReactiveSpringTutorialApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-cloud/register/eureka/eureka-client-app1/src/main/java/vip/yeee/memo/demo/springcloud/register/eureka/client/DemoClientApplication.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.springcloud.register.eureka.client; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2021/12/3 18:24 10 | */ 11 | @SpringBootApplication 12 | //@EnableDiscoveryClient 13 | public class DemoClientApplication { 14 | 15 | public static void main(String[] args) { 16 | SpringApplication.run(DemoClientApplication.class); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /spring-cloud/register/eureka/eureka-client-app1/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8081 3 | spring: 4 | application: 5 | name: demo-client 6 | -------------------------------------------------------------------------------- /spring-cloud/register/eureka/eureka-server/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8761 3 | eureka: 4 | instance: 5 | # Eureka服务端的实例名称 6 | hostname: localhost 7 | client: 8 | # fetch-registry为false,则表示自己为注册中心 9 | register-with-eureka: false 10 | # 表示是否向Eureka注册中心注册自己 11 | fetch-registry: false 12 | service-url: 13 | # 监控页面 14 | defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ -------------------------------------------------------------------------------- /spring-cloud/register/nacos/src/main/resources/nacos-version.txt: -------------------------------------------------------------------------------- 1 | version=2.1.0 2 | -------------------------------------------------------------------------------- /spring-cloud/rpc/grpc/README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | maven - plugins - protobuf 4 | 5 | 6 | protobuf:compile-custom -------------------------------------------------------------------------------- /spring-cloud/rpc/grpc/src/main/java/vip/yeee/memo/demo/grpc/GrpcDemoApplication.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.grpc; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class GrpcDemoApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(GrpcDemoApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-cloud/rpc/grpc/src/main/proto/helloword.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | 3 | option java_multiple_files = true; 4 | option java_package = "io.grpc.examples.helloworld"; 5 | option java_outer_classname = "HelloWorldProto"; 6 | option objc_class_prefix = "HLW"; 7 | 8 | package helloworld; 9 | 10 | // The greeting service definition. 11 | service Greeter { 12 | // Sends a greeting 13 | rpc SayHello (HelloRequest) returns (HelloReply) {} 14 | } 15 | 16 | // The request message containing the user's name. 17 | message HelloRequest { 18 | string name = 1; 19 | } 20 | 21 | // The response message containing the greetings 22 | message HelloReply { 23 | string message = 1; 24 | } -------------------------------------------------------------------------------- /spring-cloud/rpc/openfeign/feign-client-01/src/main/java/vip/yeee/memo/demo/scloud/rpc/feign01/FeignClient01Application.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.scloud.rpc.feign01; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class FeignClient01Application { 10 | 11 | public static void main(String[] args) { 12 | SpringApplication.run(FeignClient01Application.class, args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /spring-cloud/rpc/openfeign/feign-client-01/src/main/java/vip/yeee/memo/demo/scloud/rpc/feign01/controller/Feign01Controller.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.scloud.rpc.feign01.controller; 2 | 3 | import org.springframework.web.bind.annotation.*; 4 | import vip.yeee.memo.base.model.rest.CommonResult; 5 | 6 | @RestController 7 | public class Feign01Controller { 8 | 9 | @GetMapping("call/get-data") 10 | public CommonResult getData() { 11 | return CommonResult.success("Hello"); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /spring-cloud/rpc/openfeign/feign-client-01/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8801 3 | servlet: 4 | context-path: /feign01 5 | spring: 6 | application: 7 | name: feign-client-01 8 | profiles: 9 | active: test 10 | cloud: 11 | nacos: 12 | server-addr: 127.0.0.1:8848 13 | discovery: 14 | namespace: e69ceae8-160c-4d52-b512-ad0e919ad86b 15 | group: ${spring.profiles.active} -------------------------------------------------------------------------------- /spring-cloud/rpc/openfeign/feign-client-02/src/main/java/vip/yeee/memo/demo/scloud/rpc/feign02/controller/Feign02Controller.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.scloud.rpc.feign02.controller; 2 | 3 | import org.springframework.web.bind.annotation.*; 4 | import vip.yeee.memo.base.model.rest.CommonResult; 5 | 6 | @RestController 7 | public class Feign02Controller { 8 | 9 | @GetMapping("call/get-data") 10 | public CommonResult getData() { 11 | return CommonResult.success(" Yeee !!!"); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /spring-cloud/rpc/openfeign/feign-client-02/src/main/java/vip/yeee/memo/demo/scloud/rpc/feign02/model/Book.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.scloud.rpc.feign02.model; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnore; 4 | import lombok.Data; 5 | 6 | import java.math.BigDecimal; 7 | import java.time.LocalDate; 8 | 9 | @Data 10 | public class Book implements Response { 11 | private String isbn; 12 | private String title; 13 | private LocalDate dateOfPublish; 14 | private BigDecimal price; 15 | 16 | @JsonIgnore 17 | private Error error; 18 | } 19 | -------------------------------------------------------------------------------- /spring-cloud/rpc/openfeign/feign-client-02/src/main/java/vip/yeee/memo/demo/scloud/rpc/feign02/model/Error.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.scloud.rpc.feign02.model; 2 | 3 | import lombok.Data; 4 | import lombok.RequiredArgsConstructor; 5 | 6 | import java.util.List; 7 | 8 | @Data 9 | public class Error { 10 | private final List invalidFields; 11 | private final List errors; 12 | 13 | @RequiredArgsConstructor 14 | @Data 15 | public static class InvalidField { 16 | private final String name; 17 | private final String message; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /spring-cloud/rpc/openfeign/feign-client-02/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | feign: 2 | # compression: 3 | # response: 4 | # enabled: true 5 | # useGzipDecoder: true 6 | circuitbreaker: 7 | enabled: true 8 | client: 9 | config: 10 | default: 11 | decode404: true 12 | logger-level: full 13 | logging: 14 | level: 15 | max: 16 | lab: DEBUG 17 | #management: 18 | # endpoints: 19 | # web: 20 | # exposure: 21 | # include: * 22 | 23 | circuitBreaker: 24 | default: 25 | minimumNumberOfCalls: 10 26 | waitDurationInOpenState: 15m 27 | -------------------------------------------------------------------------------- /spring-cloud/rpc/openfeign/feign-client-02/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8802 3 | servlet: 4 | context-path: /feign02 5 | spring: 6 | application: 7 | name: feign-client-02 8 | profiles: 9 | active: test 10 | cloud: 11 | nacos: 12 | server-addr: 127.0.0.1:8848 13 | discovery: 14 | namespace: e69ceae8-160c-4d52-b512-ad0e919ad86b 15 | group: ${spring.profiles.active} -------------------------------------------------------------------------------- /spring-cloud/rpc/openfeign/feign-client-03/src/main/java/vip/yeee/memo/demo/scloud/rpc/feign03/feign/Feign01FeignClient.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.scloud.rpc.feign03.feign; 2 | 3 | import org.springframework.cloud.openfeign.FeignClient; 4 | import org.springframework.web.bind.annotation.GetMapping; 5 | import vip.yeee.memo.base.model.rest.CommonResult; 6 | 7 | /** 8 | * description...... 9 | * 10 | * @author https://www.yeee.vip 11 | * @since 2023/2/21 14:03 12 | */ 13 | @FeignClient(name = "feign-client-01", path = "/feign01") 14 | public interface Feign01FeignClient { 15 | 16 | @GetMapping("call/get-data") 17 | CommonResult getData(); 18 | } 19 | -------------------------------------------------------------------------------- /spring-cloud/rpc/openfeign/feign-client-03/src/main/java/vip/yeee/memo/demo/scloud/rpc/feign03/feign/Feign02FeignClient.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.scloud.rpc.feign03.feign; 2 | 3 | import org.springframework.cloud.openfeign.FeignClient; 4 | import org.springframework.web.bind.annotation.GetMapping; 5 | import vip.yeee.memo.base.model.rest.CommonResult; 6 | 7 | /** 8 | * description...... 9 | * 10 | * @author https://www.yeee.vip 11 | * @since 2023/2/21 14:03 12 | */ 13 | @FeignClient(name = "feign-client-02", path = "/feign02") 14 | public interface Feign02FeignClient { 15 | 16 | @GetMapping("call/get-data") 17 | CommonResult getData(); 18 | } 19 | -------------------------------------------------------------------------------- /spring-cloud/rpc/openfeign/feign-client-03/src/main/java/vip/yeee/memo/demo/scloud/rpc/feign03/feign/fallback/TestFeignFallback.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.scloud.rpc.feign03.feign.fallback; 2 | 3 | import lombok.extern.slf4j.Slf4j; 4 | import org.springframework.stereotype.Component; 5 | import vip.yeee.memo.demo.scloud.rpc.feign03.feign.TestFeignService; 6 | 7 | /** 8 | * description...... 9 | * 10 | * @author https://www.yeee.vip 11 | * @since 2022/8/3 15:15 12 | */ 13 | @Slf4j 14 | @Component 15 | public class TestFeignFallback implements TestFeignService { 16 | @Override 17 | public String getData() { 18 | return "发生了熔断:系统默认返回!!!"; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /spring-cloud/rpc/thrift/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | 8 | memo-parent 9 | vip.yeee.memo 10 | 3.2.2-SNAPSHOT 11 | 12 | 13 | 14 | thrift 15 | pom 16 | 17 | -------------------------------------------------------------------------------- /spring-cloud/transaction/seata/seata-client-01/src/main/java/vip/yeee/memo/demo/scloud/tac/seata01/domain/mysql/entity/TestEntity.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.scloud.tac.seata01.domain.mysql.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.TableName; 4 | import lombok.Data; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2022/8/18 17:23 11 | */ 12 | @Data 13 | @TableName("t_test_0") 14 | public class TestEntity { 15 | 16 | private Long id; 17 | 18 | private String field1; 19 | 20 | private String field2; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /spring-cloud/transaction/seata/seata-client-01/src/main/java/vip/yeee/memo/demo/scloud/tac/seata01/domain/mysql/mapper/TestEntityMapper.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.scloud.tac.seata01.domain.mysql.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import vip.yeee.memo.demo.scloud.tac.seata01.domain.mysql.entity.TestEntity; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2022/8/18 17:26 11 | */ 12 | public interface TestEntityMapper extends BaseMapper { 13 | } 14 | -------------------------------------------------------------------------------- /spring-cloud/transaction/seata/seata-client-02/src/main/java/vip/yeee/memo/demo/scloud/tac/seata02/domain/mysql/entity/TestEntity.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.scloud.tac.seata02.domain.mysql.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.TableName; 4 | import lombok.Data; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2022/8/18 17:23 11 | */ 12 | @Data 13 | @TableName("t_test_0") 14 | public class TestEntity { 15 | 16 | private Long id; 17 | 18 | private String field1; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /spring-cloud/transaction/seata/seata-client-02/src/main/java/vip/yeee/memo/demo/scloud/tac/seata02/domain/mysql/mapper/TestEntityMapper.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.scloud.tac.seata02.domain.mysql.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import vip.yeee.memo.demo.scloud.tac.seata02.domain.mysql.entity.TestEntity; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2022/8/18 17:26 11 | */ 12 | public interface TestEntityMapper extends BaseMapper { 13 | } 14 | -------------------------------------------------------------------------------- /spring-cloud/transaction/seata/seata-client-postgresql/src/main/java/vip/yeee/memo/demo/scloud/tac/seatapgsql/domain/pgsql/mapper/Test1Mapper.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.scloud.tac.seatapgsql.domain.pgsql.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import vip.yeee.memo.demo.scloud.tac.seatapgsql.domain.pgsql.entity.Test1; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2022/8/18 17:26 11 | */ 12 | public interface Test1Mapper extends BaseMapper { 13 | } 14 | -------------------------------------------------------------------------------- /spring-cloud/transaction/seata/seata-server/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | 8 | memo-parent 9 | vip.yeee.memo 10 | 3.2.2-SNAPSHOT 11 | 12 | 13 | 14 | seata-server 15 | pom 16 | 17 | -------------------------------------------------------------------------------- /test-tool/jMeter/example/note.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 一、jMeter 操作 4 | 5 | 1.File -> new 6 | 2.Add -> Threads -> Thread Group /* 线程组 */ 7 | 2.1.Add -> Config Elements -> User defined Variables /* 用户定义的变量 */ 8 | 2.1.Add -> PreProcessor -> JSR223 PreProcessor /* 脚本 */ 9 | 2.2.Add -> Config Elements -> HTTP Header Manager /* 配置请求头 */ 10 | 2.3.Add -> Config Elements -> HTTP Request Defaults /* 配置请求参数 */ 11 | 2.4.Add -> Listener -> View Results Tree /* 看接口请求 */ 12 | 2.5.Add -> Listener -> Summary Report /* 分析 */ 13 | 14 | 15 | 16 | example: mytools/yeah-toolkit/jMeter/ibd-channel -------------------------------------------------------------------------------- /test-tool/jMeter/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | 8 | test-tool 9 | vip.yeee.memo 10 | 3.2.2-SNAPSHOT 11 | 12 | 13 | jMeter 14 | 15 | -------------------------------------------------------------------------------- /test-tool/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | vip.yeee.memo 8 | 3.2.2-SNAPSHOT 9 | test-tool 10 | pom 11 | 12 | 13 | gatling-scripts 14 | jMeter 15 | 16 | 17 | -------------------------------------------------------------------------------- /third-sdk/aliyun-sdk/ali-nls/src/main/java/vip/yeee/memo/demo/thirdsdk/aliyun/AliNlsApplication.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.thirdsdk.aliyun; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2022/7/11 19:02 11 | */ 12 | @SpringBootApplication 13 | public class AliNlsApplication { 14 | 15 | public static void main(String[] args) { 16 | SpringApplication.run(AliNlsApplication.class, args); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /third-sdk/aliyun-sdk/ali-nls/src/main/java/vip/yeee/memo/demo/thirdsdk/aliyun/nls/bo/AudioGenBo.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.thirdsdk.aliyun.nls.bo; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | 6 | @Data 7 | @AllArgsConstructor 8 | public class AudioGenBo { 9 | private Object objectId; 10 | private String tag; 11 | private String content; 12 | private String fileName; 13 | } 14 | -------------------------------------------------------------------------------- /third-sdk/aliyun-sdk/ali-nls/src/main/java/vip/yeee/memo/demo/thirdsdk/aliyun/nls/properties/AliyunNlsProperties.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.thirdsdk.aliyun.nls.properties; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | import org.springframework.boot.context.properties.ConfigurationProperties; 6 | import org.springframework.stereotype.Component; 7 | 8 | @Getter 9 | @Setter 10 | @Component 11 | @ConfigurationProperties(prefix = "yeee.aliyun.nls") 12 | public class AliyunNlsProperties { 13 | 14 | private String accessKeyId; 15 | private String accessKeySecret; 16 | private String appKey; 17 | 18 | } -------------------------------------------------------------------------------- /third-sdk/aliyun-sdk/ali-nls/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | redis: 3 | host: 127.0.0.1 4 | port: 6379 5 | password: yeah 6 | database: 6 7 | yeee: 8 | aliyun: 9 | nls: 10 | access-key-id: XXXXXXXXXX 11 | access-key-secret: XXXXXXXXXX 12 | app-key: XXXXXXXXXX 13 | biz: 14 | gen-audio: 15 | concurrent-num: 2 16 | isWav: 0 17 | splitSize: 200 18 | longMode: 0 19 | voice: aida -------------------------------------------------------------------------------- /third-sdk/aliyun-sdk/ali-oss/src/main/java/vip/yeee/memo/demo/thirdsdk/aliyun/oss/AliyunOssApplication.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.thirdsdk.aliyun.oss; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2022/7/12 17:02 11 | */ 12 | @SpringBootApplication 13 | public class AliyunOssApplication { 14 | 15 | public static void main(String[] args) { 16 | SpringApplication.run(AliyunOssApplication.class, args); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /third-sdk/aliyun-sdk/ali-oss/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | yeee: 2 | oss: 3 | ali: 4 | access-key: XXXXXXXXXXXXXXXX 5 | secret-key: XXXXXXXXXXXXXXXX 6 | endpoint: https://oss-cn-hangzhou.aliyuncs.com 7 | default-bucket: www-yeee-vip -------------------------------------------------------------------------------- /third-sdk/aliyun-sdk/ali-sms/src/main/java/vip/yeee/memo/demo/thirdsdk/aliyun/AliSmsApplication.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.thirdsdk.aliyun; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2022/7/11 19:02 11 | */ 12 | @SpringBootApplication 13 | public class AliSmsApplication { 14 | 15 | public static void main(String[] args) { 16 | SpringApplication.run(AliSmsApplication.class, args); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /third-sdk/blockchain/antchain/ac-call-smart-contract-demo/README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | //安装 SDK 到本地仓库 4 | mvn install:install-file -Dfile=mychainx-sdk-0.10.2.12.jar -DgroupId=com.alipay.mychainx -DartifactId=mychainx-sdk -Dversion=0.10.2.12 -Dpackaging=jar 5 | 6 | //安装 Netty 依赖到本地仓库,注意选择对应平台 netty-tcnative-openssl-static 版本,注意修改 classifier,macOS :osx-x86_64、linux:linux-x86_64、windows:windows-x86_64 7 | mvn install:install-file -Dfile=netty-tcnative-openssl-static-2.0.17-Final-mychain-osx-x86_64.jar -DgroupId=io.netty -DartifactId=netty-tcnative-openssl-static -Dversion=2.0.17-Final-mychain -Dpackaging=jar -Dclassifier=osx-x86_64 8 | -------------------------------------------------------------------------------- /third-sdk/blockchain/antchain/ac-call-smart-contract-demo/src/main/java/vip/yeee/memo/demo/blockchain/ac/call/AcCallSmartContractDemo.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.blockchain.ac.call; 2 | 3 | /** 4 | * description...... 5 | * 6 | * @author https://www.yeee.vip 7 | * @since 2023/4/13 15:06 8 | */ 9 | public class AcCallSmartContractDemo { 10 | 11 | public static void main(String[] args) { 12 | 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /third-sdk/blockchain/antchain/ac-call-smart-contract-demo/src/main/resources/trustCa: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeeevip/yeee-memo/c5a120071613f0c30d3a3491bd6b5fbfbf7b3bfa/third-sdk/blockchain/antchain/ac-call-smart-contract-demo/src/main/resources/trustCa -------------------------------------------------------------------------------- /third-sdk/blockchain/antchain/ac-call-smart-contract-demo/src/main/resources/user.key: -------------------------------------------------------------------------------- 1 | -----BEGIN ENCRYPTED PRIVATE KEY----- 2 | MIHFMCgGCiqGSIb3DQEMAQMwGgQUkGkP1NcaJZDKmvurPvz0rBFQZ3UCAggABIGY 3 | N4kjVYGVlyfMoi7zEOgeQlyeqwa296INdBDVWu34Jr0WMsT7DASW9bdyVJ2LSHKd 4 | OZ+Mxe756mohgC9CQ8LIeH9yADUOhwx2EVmqWtQFFLARc1pg2lQuXXnvr4uWWoMc 5 | anRFmc/Y7jhcxlTV09r0u/JJxbSEZ/8NenOHq2F72Uu6XotBi9KV00d8156Zpdsz 6 | 7 | -----END ENCRYPTED PRIVATE KEY----- 8 | -------------------------------------------------------------------------------- /third-sdk/blockchain/hyperchain/hc-call-smart-contract-demo/src/main/java/vip/yeee/memo/demo/blockchain/hyperchain/biz/CallSmartContractDemoApplication.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.blockchain.hyperchain.biz; 2 | 3 | /** 4 | * description...... 5 | * 6 | * @author https://www.yeee.vip 7 | * @since 2023/4/13 15:02 8 | */ 9 | public class CallSmartContractDemoApplication { 10 | 11 | public static void main(String[] args) { 12 | 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /third-sdk/blockchain/hyperchain/hc-call-smart-contract-demo/src/main/java/vip/yeee/memo/demo/blockchain/hyperchain/biz/bo/BlockchainAccountBO.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.blockchain.hyperchain.biz.bo; 2 | 3 | import lombok.Data; 4 | import lombok.experimental.Accessors; 5 | 6 | @Data 7 | @Accessors(chain = true) 8 | public class BlockchainAccountBO { 9 | private String address; 10 | private String publicKey; 11 | private String privateKey; 12 | private String version; 13 | private String algo; 14 | } 15 | -------------------------------------------------------------------------------- /third-sdk/blockchain/hyperchain/hc-call-smart-contract-demo/src/main/java/vip/yeee/memo/demo/blockchain/hyperchain/biz/bo/NFTPropertyMetaDataBO.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.blockchain.hyperchain.biz.bo; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class NFTPropertyMetaDataBO { 7 | 8 | /** 9 | * ID 10 | */ 11 | private String id; 12 | 13 | /** 14 | * 名称 15 | */ 16 | private String name; 17 | 18 | /** 19 | * 藏品HASH 20 | */ 21 | private String entityHash; 22 | 23 | /** 24 | * oss地址 25 | */ 26 | private String uri; 27 | 28 | } 29 | -------------------------------------------------------------------------------- /third-sdk/blockchain/hyperchain/hc-call-smart-contract-demo/src/main/java/vip/yeee/memo/demo/blockchain/hyperchain/biz/bo/NftIssueBO.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.blockchain.hyperchain.biz.bo; 2 | 3 | import lombok.Data; 4 | import lombok.experimental.Accessors; 5 | 6 | @Data 7 | @Accessors(chain = true) 8 | public class NftIssueBO { 9 | private String tokenId; 10 | private BlockchainAccountBO accountBO; 11 | } 12 | -------------------------------------------------------------------------------- /third-sdk/blockchain/hyperchain/hc-call-smart-contract-demo/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | yeeee: 2 | chain: 3 | default-url: 192.168.23.111:8081 4 | contract-address: 0x2b4f4f88ac518e964d2e880147c3e27a2axxxxxx 5 | deploy-account-json: string:{"address":"3c219494caf1cad1f50f6fca592e29edc416cxxx","publicKey":"xxxx79d9a01311ae4fb59abf6a29575386ccb308f2a2edca9d58deaa77f8b3fd1f4090a3c4614dea29290943b153d27cc9e58d509826c936c574b58daf21ddxxxx","privateKey":"xxxxx735251405b7ddcd98b03af415cc45129ddec00bfb41434f289e282xxxxx","version":"V4","algo":"0x13"} -------------------------------------------------------------------------------- /third-sdk/blockchain/hyperchain/hc-smart-contract-demo/README.md: -------------------------------------------------------------------------------- 1 | mvn package -DskipTests -------------------------------------------------------------------------------- /third-sdk/third-pay/README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # 微信支付 4 | 5 | 官网:https://pay.weixin.qq.com/ 6 | 7 | ## V3 8 | 9 | https://blog.csdn.net/guochunyun/article/details/130217954 10 | 11 | ### 所需参数 12 | 13 | - mchId(商户号): 14 | > 账户中心 - 商户信息 - 商户号 15 | 16 | - 商户类型: 17 | > 账户中心 - 商户信息 - 商户类型 18 | 19 | - appId(绑定的公众号appId): 20 | > 产品中心 - AppID账号管理 - appId 21 | 22 | - apiV3Key(APIv3秘钥): 23 | > 账户中心 - API安全 - 设置APIv3秘钥 24 | 25 | - API证书(apiclient_key.pem): 26 | > 账户中心 - API安全 - 申请API证书 27 | 28 | - certSerialNo(API证书序列号): 29 | > 账户中心 - API安全 - 申请API证书 - API证书管理 -证书序列号 -------------------------------------------------------------------------------- /third-sdk/third-pay/src/main/java/vip/yeee/memo/demo/thirdsdk/pay/model/bo/AliAppUnifiedOrderRespBO.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.thirdsdk.pay.model.bo; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2022/8/26 11:25 11 | */ 12 | @EqualsAndHashCode(callSuper = true) 13 | @Data 14 | public class AliAppUnifiedOrderRespBO extends UnifiedOrderRespBO { 15 | 16 | private String payData; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /third-sdk/third-pay/src/main/java/vip/yeee/memo/demo/thirdsdk/pay/model/bo/AlipayUnifiedOrderReqBO.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.thirdsdk.pay.model.bo; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2022/8/26 17:09 11 | */ 12 | @EqualsAndHashCode(callSuper = true) 13 | @Data 14 | public class AlipayUnifiedOrderReqBO extends UnifiedOrderReqBO { 15 | } 16 | -------------------------------------------------------------------------------- /third-sdk/third-pay/src/main/java/vip/yeee/memo/demo/thirdsdk/pay/model/bo/CloseOrderReqBO.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.thirdsdk.pay.model.bo; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2022/8/26 16:50 10 | */ 11 | @Data 12 | public class CloseOrderReqBO { 13 | 14 | private String orderCode; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /third-sdk/third-pay/src/main/java/vip/yeee/memo/demo/thirdsdk/pay/model/bo/QueryOrderReqBO.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.thirdsdk.pay.model.bo; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2022/8/26 16:50 10 | */ 11 | @Data 12 | public class QueryOrderReqBO { 13 | 14 | private String orderCode; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /third-sdk/third-pay/src/main/java/vip/yeee/memo/demo/thirdsdk/pay/model/bo/WxAppUnifiedOrderRespBO.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.thirdsdk.pay.model.bo; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2022/8/26 11:25 11 | */ 12 | @EqualsAndHashCode(callSuper = true) 13 | @Data 14 | public class WxAppUnifiedOrderRespBO extends UnifiedOrderRespBO { 15 | 16 | /** 预支付数据包 **/ 17 | private String payInfo; 18 | 19 | } 20 | -------------------------------------------------------------------------------- /third-sdk/third-pay/src/main/java/vip/yeee/memo/demo/thirdsdk/pay/model/bo/WxJsapiUnifiedOrderRespBO.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.thirdsdk.pay.model.bo; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2022/8/26 11:25 11 | */ 12 | @EqualsAndHashCode(callSuper = true) 13 | @Data 14 | public class WxJsapiUnifiedOrderRespBO extends UnifiedOrderRespBO { 15 | 16 | /** 预支付数据包 **/ 17 | private String payInfo; 18 | 19 | } 20 | -------------------------------------------------------------------------------- /third-sdk/third-pay/src/main/java/vip/yeee/memo/demo/thirdsdk/pay/model/bo/WxpayUnifiedOrderReqBO.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.thirdsdk.pay.model.bo; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2022/8/26 11:25 11 | */ 12 | @EqualsAndHashCode(callSuper = true) 13 | @Data 14 | public class WxpayUnifiedOrderReqBO extends UnifiedOrderReqBO { 15 | 16 | private String clientIp; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /third-sdk/third-pay/src/main/java/vip/yeee/memo/demo/thirdsdk/pay/model/bo/WxpayUnifiedOrderRespBO.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.thirdsdk.pay.model.bo; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2022/8/26 11:25 11 | */ 12 | @EqualsAndHashCode(callSuper = true) 13 | @Data 14 | public class WxpayUnifiedOrderRespBO extends UnifiedOrderRespBO { 15 | 16 | private String tradeType; 17 | 18 | private String prepayId; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /third-sdk/third-pay/src/main/java/vip/yeee/memo/demo/thirdsdk/pay/model/vo/req/OrderQueryReqVO.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.thirdsdk.pay.model.vo.req; 2 | 3 | import lombok.Data; 4 | 5 | import javax.validation.constraints.NotBlank; 6 | 7 | /** 8 | * description...... 9 | * 10 | * @author https://www.yeee.vip 11 | * @since 2022/12/21 15:20 12 | */ 13 | @Data 14 | public class OrderQueryReqVO { 15 | 16 | @NotBlank 17 | private String orderCode; 18 | } 19 | -------------------------------------------------------------------------------- /third-sdk/third-pay/src/main/java/vip/yeee/memo/demo/thirdsdk/pay/model/vo/req/OrderRefundReqVO.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.thirdsdk.pay.model.vo.req; 2 | 3 | import lombok.Data; 4 | 5 | import javax.validation.constraints.NotBlank; 6 | 7 | /** 8 | * description...... 9 | * 10 | * @author https://www.yeee.vip 11 | * @since 2023/3/16 11:55 12 | */ 13 | @Data 14 | public class OrderRefundReqVO { 15 | 16 | @NotBlank 17 | private String orderCode; 18 | 19 | } 20 | -------------------------------------------------------------------------------- /third-sdk/third-pay/src/main/java/vip/yeee/memo/demo/thirdsdk/pay/model/vo/req/SubmitOrderReqVO.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.thirdsdk.pay.model.vo.req; 2 | 3 | import lombok.Data; 4 | 5 | import javax.validation.constraints.NotNull; 6 | import java.math.BigDecimal; 7 | 8 | /** 9 | * description...... 10 | * 11 | * @author https://www.yeee.vip 12 | * @since 2022/8/26 14:45 13 | */ 14 | @Data 15 | public class SubmitOrderReqVO { 16 | 17 | @NotNull(message = "商品ID不能为空") 18 | private Long subjectId; 19 | 20 | // 订单金额,单位-分 21 | @NotNull(message = "订单金额不能为空") 22 | private BigDecimal amount; 23 | 24 | } 25 | -------------------------------------------------------------------------------- /third-sdk/third-pay/src/main/java/vip/yeee/memo/demo/thirdsdk/pay/model/vo/req/UnifiedOrderQueryReqVO.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.thirdsdk.pay.model.vo.req; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2022/12/21 15:20 10 | */ 11 | @Data 12 | public class UnifiedOrderQueryReqVO { 13 | 14 | private String lesseeId; 15 | private String orderCode; 16 | private String payway; 17 | } 18 | -------------------------------------------------------------------------------- /third-sdk/third-pay/src/main/java/vip/yeee/memo/demo/thirdsdk/pay/model/vo/resp/CheckPayStateResVO.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.thirdsdk.pay.model.vo.resp; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * description...... 7 | * 8 | * @author https://www.yeee.vip 9 | * @since 2022/12/21 15:21 10 | */ 11 | @Data 12 | public class CheckPayStateResVO { 13 | 14 | private Integer payState; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /third-sdk/third-pay/src/main/java/vip/yeee/memo/demo/thirdsdk/pay/model/vo/resp/UnifiedOrderRespVO.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.thirdsdk.pay.model.vo.resp; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2022/8/26 15:56 11 | */ 12 | @Data 13 | @AllArgsConstructor 14 | public class UnifiedOrderRespVO { 15 | private String info; 16 | } 17 | -------------------------------------------------------------------------------- /third-sdk/weixin-sdk/wx-ma/src/main/java/vip/yeee/memo/demo/thirdsdk/weixin/ma/WeiXinMaApplication.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.thirdsdk.weixin.ma; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2023/4/8 13:39 11 | */ 12 | @SpringBootApplication 13 | public class WeiXinMaApplication { 14 | 15 | public static void main(String[] args) { 16 | SpringApplication.run(WeiXinMaApplication.class); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /third-sdk/weixin-sdk/wx-ma/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | redis: 3 | host: 127.0.0.1 4 | port: 6379 5 | password: yeah 6 | database: 6 7 | wx: 8 | ma: 9 | use-redis: true 10 | redis-config: 11 | host: ${spring.redis.host} 12 | port: ${spring.redis.port} 13 | password: ${spring.redis.password} 14 | timeout: 10000 15 | configs: 16 | - appId: wxc84b896c35f157b1 17 | secret: c93ddae2c45d3d5a6a514c03e1dfd73f 18 | token: yeeee-token 19 | lessee-id: 1111 20 | app-type: 10 -------------------------------------------------------------------------------- /third-sdk/weixin-sdk/wx-mp/src/main/java/vip/yeee/memo/demo/thirdsdk/weixin/mp/WeiXinMpApplication.java: -------------------------------------------------------------------------------- 1 | package vip.yeee.memo.demo.thirdsdk.weixin.mp; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | * description...... 8 | * 9 | * @author https://www.yeee.vip 10 | * @since 2022/7/12 11:45 11 | */ 12 | @SpringBootApplication 13 | public class WeiXinMpApplication { 14 | 15 | public static void main(String[] args) { 16 | SpringApplication.run(WeiXinMpApplication.class, args); 17 | } 18 | 19 | } 20 | --------------------------------------------------------------------------------