Browse Source

Merge branch 'dev' of http://git.izouma.com/xiongzhu/raex_back into dev

panhui 3 years ago
parent
commit
c7b763ba25
100 changed files with 1873 additions and 358 deletions
  1. 793 0
      hs_err_pid10144.log
  2. 3 0
      src/main/java/com/izouma/nineth/config/MetaConstants.java
  3. 34 30
      src/main/java/com/izouma/nineth/config/RiceScheduledTasksConfig.java
  4. 4 0
      src/main/java/com/izouma/nineth/domain/MetaStore.java
  5. 42 0
      src/main/java/com/izouma/nineth/domain/MetaUserFriend.java
  6. 50 0
      src/main/java/com/izouma/nineth/domain/MetaUserFriendApplyRecord.java
  7. 43 0
      src/main/java/com/izouma/nineth/domain/MetaUserFriendOperateRecord.java
  8. 13 0
      src/main/java/com/izouma/nineth/domain/Rice.java
  9. 17 3
      src/main/java/com/izouma/nineth/domain/RiceOperationRecord.java
  10. 18 0
      src/main/java/com/izouma/nineth/dto/MetaUserFriendAndApplyDTO.java
  11. 20 0
      src/main/java/com/izouma/nineth/dto/MetaUserFriendApplyDTO.java
  12. 17 0
      src/main/java/com/izouma/nineth/dto/MetaUserFriendDTO.java
  13. 25 0
      src/main/java/com/izouma/nineth/enums/MetaUserFriendOperateType.java
  14. 5 4
      src/main/java/com/izouma/nineth/repo/AssetRepo.java
  15. 22 0
      src/main/java/com/izouma/nineth/repo/MetaUserFriendApplyRecordRepo.java
  16. 8 0
      src/main/java/com/izouma/nineth/repo/MetaUserFriendOperateRecordRepo.java
  17. 26 0
      src/main/java/com/izouma/nineth/repo/MetaUserFriendRepo.java
  18. 4 0
      src/main/java/com/izouma/nineth/repo/MetaUserGoldRecordRepo.java
  19. 1 1
      src/main/java/com/izouma/nineth/repo/OrderRepo.java
  20. 1 1
      src/main/java/com/izouma/nineth/repo/TokenHistoryRepo.java
  21. 4 1
      src/main/java/com/izouma/nineth/security/WebSecurityConfig.java
  22. 4 4
      src/main/java/com/izouma/nineth/service/DomainOrderService.java
  23. 4 8
      src/main/java/com/izouma/nineth/service/MetaAccessoriesService.java
  24. 0 1
      src/main/java/com/izouma/nineth/service/MetaAwardReceiveService.java
  25. 1 3
      src/main/java/com/izouma/nineth/service/MetaBoatPositionService.java
  26. 1 2
      src/main/java/com/izouma/nineth/service/MetaEmailService.java
  27. 6 0
      src/main/java/com/izouma/nineth/service/MetaGameBoxPointsService.java
  28. 3 8
      src/main/java/com/izouma/nineth/service/MetaGameCopyService.java
  29. 2 4
      src/main/java/com/izouma/nineth/service/MetaLuckyDrawAwardReceiveRecordService.java
  30. 11 1
      src/main/java/com/izouma/nineth/service/MetaParamsConfigService.java
  31. 2 4
      src/main/java/com/izouma/nineth/service/MetaPlayerInfoService.java
  32. 2 2
      src/main/java/com/izouma/nineth/service/MetaPlayerRoleClassifyService.java
  33. 10 6
      src/main/java/com/izouma/nineth/service/MetaRankService.java
  34. 6 11
      src/main/java/com/izouma/nineth/service/MetaShowRoomAssetService.java
  35. 3 6
      src/main/java/com/izouma/nineth/service/MetaSignAwardDrawRecordService.java
  36. 4 8
      src/main/java/com/izouma/nineth/service/MetaSignRecordService.java
  37. 1 2
      src/main/java/com/izouma/nineth/service/MetaSpatialInfoService.java
  38. 3 5
      src/main/java/com/izouma/nineth/service/MetaSpatialWharfService.java
  39. 6 12
      src/main/java/com/izouma/nineth/service/MetaStoreService.java
  40. 1 2
      src/main/java/com/izouma/nineth/service/MetaTaskNewService.java
  41. 1 2
      src/main/java/com/izouma/nineth/service/MetaTaskService.java
  42. 7 13
      src/main/java/com/izouma/nineth/service/MetaTaskToUserNewService.java
  43. 5 21
      src/main/java/com/izouma/nineth/service/MetaTaskToUserService.java
  44. 89 0
      src/main/java/com/izouma/nineth/service/MetaUserFriendApplyRecordService.java
  45. 195 0
      src/main/java/com/izouma/nineth/service/MetaUserFriendService.java
  46. 26 3
      src/main/java/com/izouma/nineth/service/MetaUserGoldRecordService.java
  47. 2 4
      src/main/java/com/izouma/nineth/service/MetaUserGoldService.java
  48. 3 6
      src/main/java/com/izouma/nineth/service/MetaUserPropService.java
  49. 6 9
      src/main/java/com/izouma/nineth/service/MetaUserTaskAwardReceivedRecordNewService.java
  50. 6 9
      src/main/java/com/izouma/nineth/service/MetaUserTaskAwardReceivedRecordService.java
  51. 15 11
      src/main/java/com/izouma/nineth/service/MetaUserTaskProgressNewService.java
  52. 16 44
      src/main/java/com/izouma/nineth/service/MetaUserTaskProgressService.java
  53. 7 6
      src/main/java/com/izouma/nineth/service/OrderService.java
  54. 73 0
      src/main/java/com/izouma/nineth/service/RiceService.java
  55. 38 0
      src/main/java/com/izouma/nineth/utils/MetaUtils.java
  56. 16 0
      src/main/java/com/izouma/nineth/web/AuthenticationController.java
  57. 1 1
      src/main/java/com/izouma/nineth/web/MetaAccessoriesController.java
  58. 1 1
      src/main/java/com/izouma/nineth/web/MetaAdvertRecordController.java
  59. 1 1
      src/main/java/com/izouma/nineth/web/MetaAtomTaskController.java
  60. 1 1
      src/main/java/com/izouma/nineth/web/MetaBagAssetEffectConfigController.java
  61. 1 1
      src/main/java/com/izouma/nineth/web/MetaBoatPositionController.java
  62. 1 2
      src/main/java/com/izouma/nineth/web/MetaBonusSceneController.java
  63. 1 1
      src/main/java/com/izouma/nineth/web/MetaChannelController.java
  64. 1 2
      src/main/java/com/izouma/nineth/web/MetaDestroyActivityController.java
  65. 1 1
      src/main/java/com/izouma/nineth/web/MetaEmailController.java
  66. 1 1
      src/main/java/com/izouma/nineth/web/MetaEmailRecordController.java
  67. 3 3
      src/main/java/com/izouma/nineth/web/MetaFeedBackController.java
  68. 6 12
      src/main/java/com/izouma/nineth/web/MetaGameCopyController.java
  69. 1 1
      src/main/java/com/izouma/nineth/web/MetaGameStageAwardController.java
  70. 1 1
      src/main/java/com/izouma/nineth/web/MetaItemController.java
  71. 2 3
      src/main/java/com/izouma/nineth/web/MetaLuckyDrawController.java
  72. 1 2
      src/main/java/com/izouma/nineth/web/MetaParamsConfigController.java
  73. 5 10
      src/main/java/com/izouma/nineth/web/MetaPlayerInfoController.java
  74. 1 1
      src/main/java/com/izouma/nineth/web/MetaPlayerRoleClassifyController.java
  75. 1 1
      src/main/java/com/izouma/nineth/web/MetaPlayerWearController.java
  76. 5 4
      src/main/java/com/izouma/nineth/web/MetaProblemController.java
  77. 1 1
      src/main/java/com/izouma/nineth/web/MetaPropController.java
  78. 1 1
      src/main/java/com/izouma/nineth/web/MetaQuestionController.java
  79. 1 1
      src/main/java/com/izouma/nineth/web/MetaResourceVersionController.java
  80. 2 3
      src/main/java/com/izouma/nineth/web/MetaResourcesController.java
  81. 1 1
      src/main/java/com/izouma/nineth/web/MetaSignAwardController.java
  82. 1 1
      src/main/java/com/izouma/nineth/web/MetaSignController.java
  83. 2 2
      src/main/java/com/izouma/nineth/web/MetaSpatialInfoController.java
  84. 1 2
      src/main/java/com/izouma/nineth/web/MetaSpatialWharfController.java
  85. 16 6
      src/main/java/com/izouma/nineth/web/MetaStoreController.java
  86. 1 1
      src/main/java/com/izouma/nineth/web/MetaSwitchController.java
  87. 1 1
      src/main/java/com/izouma/nineth/web/MetaTaskActivityController.java
  88. 4 8
      src/main/java/com/izouma/nineth/web/MetaTaskController.java
  89. 1 2
      src/main/java/com/izouma/nineth/web/MetaTaskNewController.java
  90. 1 2
      src/main/java/com/izouma/nineth/web/MetaTaskToUserController.java
  91. 1 2
      src/main/java/com/izouma/nineth/web/MetaTaskToUserNewController.java
  92. 3 6
      src/main/java/com/izouma/nineth/web/MetaUserBagController.java
  93. 2 3
      src/main/java/com/izouma/nineth/web/MetaUserController.java
  94. 60 0
      src/main/java/com/izouma/nineth/web/MetaUserFriendController.java
  95. 1 2
      src/main/java/com/izouma/nineth/web/MetaUserGoldController.java
  96. 7 0
      src/main/java/com/izouma/nineth/web/MetaUserGoldRecordController.java
  97. 1 1
      src/main/java/com/izouma/nineth/web/MetaUserPropController.java
  98. 1 1
      src/main/java/com/izouma/nineth/web/MetaUserPropRecordController.java
  99. 1 2
      src/main/java/com/izouma/nineth/web/MetaUserTaskProgressController.java
  100. 1 2
      src/main/java/com/izouma/nineth/web/MetaUserTaskProgressNewController.java

+ 793 - 0
hs_err_pid10144.log

@@ -0,0 +1,793 @@
+#
+# There is insufficient memory for the Java Runtime Environment to continue.
+# Native memory allocation (malloc) failed to allocate 1048576 bytes for AllocateHeap
+# Possible reasons:
+#   The system is out of physical RAM or swap space
+#   The process is running with CompressedOops enabled, and the Java Heap may be blocking the growth of the native heap
+# Possible solutions:
+#   Reduce memory load on the system
+#   Increase physical memory or swap space
+#   Check if swap backing store is full
+#   Decrease Java heap size (-Xmx/-Xms)
+#   Decrease number of Java threads
+#     to set the Java Heap base and to place the Java Heap above 32GB virtual address.
+# This output file may be truncated or incomplete.
+#
+#  Out of Memory Error (t:/workspace/open/src/hotspot/share/memory/allocation.cpp:46), pid=10144, tid=3092
+#
+# JRE version: Java(TM) SE Runtime Environment (11.0.6+8) (build 11.0.6+8-LTS)
+# Java VM: Java HotSpot(TM) 64-Bit Server VM (11.0.6+8-LTS, mixed mode, tiered, compressed oops, g1 gc, windows-amd64)
+# No core dump will be written. Minidumps are not enabled by default on client versions of Windows
+#
+
+---------------  S U M M A R Y ------------
+
+Command Line: -XX:TieredStopAtLevel=1 -Xverify:none -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true -javaagent:E:\development_tools\idea\IntelliJ IDEA 2020.1.3\lib\idea_rt.jar=1748:E:\development_tools\idea\IntelliJ IDEA 2020.1.3\bin -Dfile.encoding=UTF-8 com.izouma.nineth.Application
+
+Host: Intel(R) Core(TM) i5-9300H CPU @ 2.40GHz, 8 cores, 15G,  Windows 10 , 64 bit Build 22000 (10.0.22000.1516)
+Time: Tue Apr 11 14:07:37 2023 �й���׼ʱ�� elapsed time: 34 seconds (0d 0h 0m 34s)
+
+---------------  T H R E A D  ---------------
+
+Current thread (0x000001560f08e800):  VMThread "VM Thread" [stack: 0x0000004ed5900000,0x0000004ed5a00000] [id=3092]
+
+Stack: [0x0000004ed5900000,0x0000004ed5a00000]
+[error occurred during error reporting (printing stack bounds), id 0xc0000005, EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000015600000bad]
+
+
+[error occurred during error reporting (printing native stack), id 0xc00000fd, EXCEPTION_STACK_OVERFLOW (0xc00000fd) at pc=0x00007ffcc035fe38]
+
+VM_Operation (0x0000004ed6cf6750): CollectForMetadataAllocation, mode: safepoint, requested by thread 0x000001560fbf6800
+
+
+---------------  P R O C E S S  ---------------
+
+Threads class SMR info:
+_java_thread_list=0x00000156165820d0, length=43, elements={
+0x000001566ada4800, 0x000001560f092800, 0x000001560f0bd800, 0x000001560f131000,
+0x000001560f134000, 0x000001560f136000, 0x000001560f13a800, 0x000001560f080800,
+0x0000015610892800, 0x0000015610896000, 0x0000015610971800, 0x0000015610a7e000,
+0x0000015610a4f800, 0x000001560fbf6800, 0x00000156141ae000, 0x00000156142f2000,
+0x000001561432a800, 0x00000156165ea000, 0x0000015616d9e000, 0x0000015616d9d000,
+0x0000015616d9c800, 0x0000015616d98800, 0x0000015616d99000, 0x0000015616d9a000,
+0x0000015616d9a800, 0x0000015616d9b800, 0x0000015616d9f000, 0x000001561479e800,
+0x000001561479f000, 0x00000156147a0000, 0x00000156147a1800, 0x00000156147a1000,
+0x00000156147a2800, 0x000001561479d000, 0x000001561479d800, 0x00000156147a9000,
+0x00000156147a6000, 0x00000156147a6800, 0x00000156147a7800, 0x00000156147a8000,
+0x00000156147a3800, 0x00000156147a4000, 0x00000156147aa000
+}
+
+Java Threads: ( => current thread )
+  0x000001566ada4800 JavaThread "main" [_thread_blocked, id=10792, stack(0x0000004ed5300000,0x0000004ed5400000)]
+  0x000001560f092800 JavaThread "Reference Handler" daemon [_thread_blocked, id=19376, stack(0x0000004ed5a00000,0x0000004ed5b00000)]
+  0x000001560f0bd800 JavaThread "Finalizer" daemon [_thread_blocked, id=2112, stack(0x0000004ed5b00000,0x0000004ed5c00000)]
+  0x000001560f131000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=22120, stack(0x0000004ed5c00000,0x0000004ed5d00000)]
+  0x000001560f134000 JavaThread "Attach Listener" daemon [_thread_blocked, id=10356, stack(0x0000004ed5d00000,0x0000004ed5e00000)]
+  0x000001560f136000 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=19792, stack(0x0000004ed5e00000,0x0000004ed5f00000)]
+  0x000001560f13a800 JavaThread "Sweeper thread" daemon [_thread_blocked, id=19616, stack(0x0000004ed5f00000,0x0000004ed6000000)]
+  0x000001560f080800 JavaThread "Common-Cleaner" daemon [_thread_blocked, id=14696, stack(0x0000004ed6000000,0x0000004ed6100000)]
+  0x0000015610892800 JavaThread "Monitor Ctrl-Break" daemon [_thread_in_native, id=22316, stack(0x0000004ed6600000,0x0000004ed6700000)]
+  0x0000015610896000 JavaThread "Service Thread" daemon [_thread_blocked, id=12372, stack(0x0000004ed6700000,0x0000004ed6800000)]
+  0x0000015610971800 JavaThread "RMI TCP Accept-0" daemon [_thread_in_native, id=9188, stack(0x0000004ed6800000,0x0000004ed6900000)]
+  0x0000015610a7e000 JavaThread "RMI TCP Connection(2)-192.168.213.1" daemon [_thread_in_native, id=9044, stack(0x0000004ed6a00000,0x0000004ed6b00000)]
+  0x0000015610a4f800 JavaThread "RMI Scheduler(0)" daemon [_thread_blocked, id=13740, stack(0x0000004ed6b00000,0x0000004ed6c00000)]
+  0x000001560fbf6800 JavaThread "RMI TCP Connection(3)-192.168.213.1" daemon [_thread_blocked, id=13804, stack(0x0000004ed6c00000,0x0000004ed6d00000)]
+  0x00000156141ae000 JavaThread "mysql-cj-abandoned-connection-cleanup" daemon [_thread_blocked, id=14776, stack(0x0000004ed6e00000,0x0000004ed6f00000)]
+  0x00000156142f2000 JavaThread "Druid-ConnectionPool-Create-124900571" daemon [_thread_blocked, id=2232, stack(0x0000004ed6f00000,0x0000004ed7000000)]
+  0x000001561432a800 JavaThread "Druid-ConnectionPool-Destroy-124900571" daemon [_thread_blocked, id=17896, stack(0x0000004ed7000000,0x0000004ed7100000)]
+  0x00000156165ea000 JavaThread "MySQL Statement Cancellation Timer" daemon [_thread_blocked, id=18096, stack(0x0000004ed7300000,0x0000004ed7400000)]
+  0x0000015616d9e000 JavaThread "Thread-2" daemon [_thread_in_native, id=22156, stack(0x0000004ed7400000,0x0000004ed7500000)]
+  0x0000015616d9d000 JavaThread "redisson-netty-2-1" [_thread_in_native, id=2724, stack(0x0000004ed7700000,0x0000004ed7800000)]
+  0x0000015616d9c800 JavaThread "redisson-netty-2-2" [_thread_in_native, id=15436, stack(0x0000004ed7800000,0x0000004ed7900000)]
+  0x0000015616d98800 JavaThread "redisson-netty-2-3" [_thread_in_native, id=5944, stack(0x0000004ed7900000,0x0000004ed7a00000)]
+  0x0000015616d99000 JavaThread "redisson-netty-2-4" [_thread_in_native, id=14536, stack(0x0000004ed7a00000,0x0000004ed7b00000)]
+  0x0000015616d9a000 JavaThread "redisson-timer-4-1" [_thread_blocked, id=1684, stack(0x0000004ed7c00000,0x0000004ed7d00000)]
+  0x0000015616d9a800 JavaThread "redisson-netty-2-5" [_thread_in_native, id=16764, stack(0x0000004ed7d00000,0x0000004ed7e00000)]
+  0x0000015616d9b800 JavaThread "redisson-netty-2-6" [_thread_in_native, id=9288, stack(0x0000004ed7e00000,0x0000004ed7f00000)]
+  0x0000015616d9f000 JavaThread "redisson-netty-2-7" [_thread_in_native, id=1272, stack(0x0000004ed7f00000,0x0000004ed8000000)]
+  0x000001561479e800 JavaThread "redisson-netty-2-8" [_thread_in_native, id=15352, stack(0x0000004ed8000000,0x0000004ed8100000)]
+  0x000001561479f000 JavaThread "redisson-netty-2-9" [_thread_in_native, id=21788, stack(0x0000004ed8100000,0x0000004ed8200000)]
+  0x00000156147a0000 JavaThread "redisson-netty-2-10" [_thread_in_native, id=13472, stack(0x0000004ed8200000,0x0000004ed8300000)]
+  0x00000156147a1800 JavaThread "redisson-netty-2-11" [_thread_in_native, id=16884, stack(0x0000004ed8300000,0x0000004ed8400000)]
+  0x00000156147a1000 JavaThread "redisson-netty-2-12" [_thread_in_native, id=17868, stack(0x0000004ed8400000,0x0000004ed8500000)]
+  0x00000156147a2800 JavaThread "redisson-netty-2-13" [_thread_in_native, id=21464, stack(0x0000004ed8500000,0x0000004ed8600000)]
+  0x000001561479d000 JavaThread "redisson-netty-2-14" [_thread_in_native, id=3800, stack(0x0000004ed8600000,0x0000004ed8700000)]
+  0x000001561479d800 JavaThread "redisson-netty-2-15" [_thread_in_native, id=10576, stack(0x0000004ed8700000,0x0000004ed8800000)]
+  0x00000156147a9000 JavaThread "redisson-netty-2-16" [_thread_in_native, id=21684, stack(0x0000004ed8800000,0x0000004ed8900000)]
+  0x00000156147a6000 JavaThread "redisson-netty-2-17" [_thread_in_native, id=12024, stack(0x0000004ed8900000,0x0000004ed8a00000)]
+  0x00000156147a6800 JavaThread "redisson-netty-2-18" [_thread_in_native, id=8236, stack(0x0000004ed8a00000,0x0000004ed8b00000)]
+  0x00000156147a7800 JavaThread "redisson-netty-2-19" [_thread_in_native, id=7024, stack(0x0000004ed8b00000,0x0000004ed8c00000)]
+  0x00000156147a8000 JavaThread "redisson-netty-2-20" [_thread_in_native, id=19116, stack(0x0000004ed8c00000,0x0000004ed8d00000)]
+  0x00000156147a3800 JavaThread "redisson-netty-2-21" [_thread_in_native, id=4584, stack(0x0000004ed8d00000,0x0000004ed8e00000)]
+  0x00000156147a4000 JavaThread "redisson-netty-2-23" [_thread_in_native, id=21120, stack(0x0000004ed8e00000,0x0000004ed8f00000)]
+  0x00000156147aa000 JavaThread "redisson-netty-2-22" [_thread_in_native, id=21708, stack(0x0000004ed8f00000,0x0000004ed9000000)]
+
+Other Threads:
+=>0x000001560f08e800 VMThread "VM Thread" [stack: 0x0000004ed5900000,0x0000004ed5a00000] [id=3092]
+  0x0000015610973800 WatcherThread [stack: 0x0000004ed6900000,0x0000004ed6a00000] [id=5236]
+  0x000001566adba000 GCTaskThread "GC Thread#0" [stack: 0x0000004ed5400000,0x0000004ed5500000] [id=10612]
+  0x000001560f690000 GCTaskThread "GC Thread#1" [stack: 0x0000004ed6100000,0x0000004ed6200000] [id=14056]
+  0x000001560f690800 GCTaskThread "GC Thread#2" [stack: 0x0000004ed6200000,0x0000004ed6300000] [id=14200]
+  0x000001560f695800 GCTaskThread "GC Thread#3" [stack: 0x0000004ed6300000,0x0000004ed6400000] [id=1752]
+  0x000001560f696000 GCTaskThread "GC Thread#4" [stack: 0x0000004ed6400000,0x0000004ed6500000] [id=11272]
+  0x000001560f696800 GCTaskThread "GC Thread#5" [stack: 0x0000004ed6500000,0x0000004ed6600000] [id=20656]
+  0x0000015611c74800 GCTaskThread "GC Thread#6" [stack: 0x0000004ed7100000,0x0000004ed7200000] [id=16000]
+  0x0000015612186000 GCTaskThread "GC Thread#7" [stack: 0x0000004ed7200000,0x0000004ed7300000] [id=16988]
+  0x000001566ae15000 ConcurrentGCThread "G1 Main Marker" [stack: 0x0000004ed5500000,0x0000004ed5600000] [id=2948]
+  0x000001566ae17000 ConcurrentGCThread "G1 Conc#0" [stack: 0x0000004ed5600000,0x0000004ed5700000] [id=5104]
+  0x0000015611739800 ConcurrentGCThread "G1 Conc#1" [stack: 0x0000004ed6d00000,0x0000004ed6e00000] [id=8268]
+  0x000001567f579000 ConcurrentGCThread "G1 Refine#0" [stack: 0x0000004ed5700000,0x0000004ed5800000] [id=1716]
+  0x000001567f57c000 ConcurrentGCThread "G1 Young RemSet Sampling" [stack: 0x0000004ed5800000,0x0000004ed5900000] [id=20332]
+
+Threads with active compile tasks:
+
+VM state:at safepoint (normal execution)
+
+VM Mutex/Monitor currently owned by a thread:  ([mutex/lock_event])
+[0x000001566ad9fd20] Threads_lock - owner thread: 0x000001560f08e800
+[0x000001566ada0b30] Heap_lock - owner thread: 0x000001560fbf6800
+
+OutOfMemory and StackOverflow Exception counts:
+OutOfMemoryError java_heap_errors=3
+LinkageErrors=103
+
+Heap address: 0x0000000702800000, size: 4056 MB, Compressed Oops mode: Zero based, Oop shift amount: 3
+Narrow klass base: 0x0000000800000000, Narrow klass shift: 0
+Compressed class space size: 1073741824 Address: 0x0000000800000000
+
+Heap:
+ garbage-first heap   total 374784K, used 81358K [0x0000000702800000, 0x0000000800000000)
+  region size 1024K, 21 young (21504K), 21 survivors (21504K)
+ Metaspace       used 90674K, capacity 93071K, committed 93104K, reserved 1138688K
+  class space    used 11212K, capacity 12130K, committed 12160K, reserved 1048576K
+Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, A=archive, TAMS=top-at-mark-start (previous, next)
+|   0|0x0000000702800000, 0x0000000702900000, 0x0000000702900000|100%|HS|  |TAMS 0x0000000702900000, 0x0000000702900000| Complete 
+|   1|0x0000000702900000, 0x0000000702a00000, 0x0000000702a00000|100%| O|  |TAMS 0x0000000702a00000, 0x0000000702a00000| Untracked 
+|   2|0x0000000702a00000, 0x0000000702b00000, 0x0000000702b00000|100%| O|  |TAMS 0x0000000702b00000, 0x0000000702b00000| Untracked 
+|   3|0x0000000702b00000, 0x0000000702c00000, 0x0000000702c00000|100%|HS|  |TAMS 0x0000000702c00000, 0x0000000702c00000| Complete 
+|   4|0x0000000702c00000, 0x0000000702d00000, 0x0000000702d00000|100%|HS|  |TAMS 0x0000000702d00000, 0x0000000702d00000| Complete 
+|   5|0x0000000702d00000, 0x0000000702e00000, 0x0000000702e00000|100%|HC|  |TAMS 0x0000000702e00000, 0x0000000702e00000| Complete 
+|   6|0x0000000702e00000, 0x0000000702f00000, 0x0000000702f00000|100%| O|  |TAMS 0x0000000702f00000, 0x0000000702f00000| Untracked 
+|   7|0x0000000702f00000, 0x0000000703000000, 0x0000000703000000|100%| O|  |TAMS 0x0000000703000000, 0x0000000703000000| Untracked 
+|   8|0x0000000703000000, 0x0000000703100000, 0x0000000703100000|100%| O|  |TAMS 0x0000000703100000, 0x0000000703100000| Untracked 
+|   9|0x0000000703100000, 0x0000000703200000, 0x0000000703200000|100%| O|  |TAMS 0x0000000703200000, 0x0000000703200000| Untracked 
+|  10|0x0000000703200000, 0x0000000703300000, 0x0000000703300000|100%| O|  |TAMS 0x0000000703300000, 0x0000000703300000| Untracked 
+|  11|0x0000000703300000, 0x0000000703400000, 0x0000000703400000|100%| O|  |TAMS 0x0000000703400000, 0x0000000703400000| Untracked 
+|  12|0x0000000703400000, 0x0000000703500000, 0x0000000703500000|100%| O|  |TAMS 0x0000000703500000, 0x0000000703500000| Untracked 
+|  13|0x0000000703500000, 0x0000000703600000, 0x0000000703600000|100%| O|  |TAMS 0x0000000703600000, 0x0000000703600000| Untracked 
+|  14|0x0000000703600000, 0x0000000703700000, 0x0000000703700000|100%| O|  |TAMS 0x0000000703700000, 0x0000000703700000| Untracked 
+|  15|0x0000000703700000, 0x0000000703800000, 0x0000000703800000|100%| O|  |TAMS 0x0000000703800000, 0x0000000703800000| Untracked 
+|  16|0x0000000703800000, 0x0000000703900000, 0x0000000703900000|100%| O|  |TAMS 0x0000000703900000, 0x0000000703900000| Untracked 
+|  17|0x0000000703900000, 0x0000000703a00000, 0x0000000703a00000|100%| O|  |TAMS 0x0000000703a00000, 0x0000000703a00000| Untracked 
+|  18|0x0000000703a00000, 0x0000000703b00000, 0x0000000703b00000|100%| O|  |TAMS 0x0000000703b00000, 0x0000000703b00000| Untracked 
+|  19|0x0000000703b00000, 0x0000000703c00000, 0x0000000703c00000|100%| O|  |TAMS 0x0000000703c00000, 0x0000000703c00000| Untracked 
+|  20|0x0000000703c00000, 0x0000000703d00000, 0x0000000703d00000|100%| O|  |TAMS 0x0000000703d00000, 0x0000000703d00000| Untracked 
+|  21|0x0000000703d00000, 0x0000000703e00000, 0x0000000703e00000|100%| O|  |TAMS 0x0000000703e00000, 0x0000000703e00000| Untracked 
+|  22|0x0000000703e00000, 0x0000000703f00000, 0x0000000703f00000|100%| O|  |TAMS 0x0000000703f00000, 0x0000000703f00000| Untracked 
+|  23|0x0000000703f00000, 0x0000000704000000, 0x0000000704000000|100%| O|  |TAMS 0x0000000704000000, 0x0000000704000000| Untracked 
+|  24|0x0000000704000000, 0x0000000704100000, 0x0000000704100000|100%| O|  |TAMS 0x0000000704100000, 0x0000000704100000| Untracked 
+|  25|0x0000000704100000, 0x0000000704200000, 0x0000000704200000|100%| O|  |TAMS 0x0000000704200000, 0x0000000704200000| Untracked 
+|  26|0x0000000704200000, 0x0000000704300000, 0x0000000704300000|100%| O|  |TAMS 0x0000000704300000, 0x0000000704300000| Untracked 
+|  27|0x0000000704300000, 0x0000000704400000, 0x0000000704400000|100%| O|  |TAMS 0x0000000704400000, 0x0000000704400000| Untracked 
+|  28|0x0000000704400000, 0x0000000704500000, 0x0000000704500000|100%| O|  |TAMS 0x0000000704500000, 0x0000000704500000| Untracked 
+|  29|0x0000000704500000, 0x0000000704600000, 0x0000000704600000|100%| O|  |TAMS 0x0000000704600000, 0x0000000704600000| Untracked 
+|  30|0x0000000704600000, 0x0000000704700000, 0x0000000704700000|100%| O|  |TAMS 0x0000000704700000, 0x0000000704700000| Untracked 
+|  31|0x0000000704700000, 0x0000000704800000, 0x0000000704800000|100%| O|  |TAMS 0x0000000704800000, 0x0000000704800000| Untracked 
+|  32|0x0000000704800000, 0x0000000704900000, 0x0000000704900000|100%| O|  |TAMS 0x0000000704900000, 0x0000000704900000| Untracked 
+|  33|0x0000000704900000, 0x0000000704a00000, 0x0000000704a00000|100%| O|  |TAMS 0x0000000704a00000, 0x0000000704a00000| Untracked 
+|  34|0x0000000704a00000, 0x0000000704b00000, 0x0000000704b00000|100%| O|  |TAMS 0x0000000704b00000, 0x0000000704b00000| Untracked 
+|  35|0x0000000704b00000, 0x0000000704c00000, 0x0000000704c00000|100%| O|  |TAMS 0x0000000704c00000, 0x0000000704c00000| Untracked 
+|  36|0x0000000704c00000, 0x0000000704d00000, 0x0000000704d00000|100%| O|  |TAMS 0x0000000704d00000, 0x0000000704d00000| Untracked 
+|  37|0x0000000704d00000, 0x0000000704e00000, 0x0000000704e00000|100%| O|  |TAMS 0x0000000704e00000, 0x0000000704e00000| Untracked 
+|  38|0x0000000704e00000, 0x0000000704f00000, 0x0000000704f00000|100%| O|  |TAMS 0x0000000704eafe00, 0x0000000704f00000| Untracked 
+|  39|0x0000000704f00000, 0x0000000705000000, 0x0000000705000000|100%| O|  |TAMS 0x0000000704f00000, 0x0000000705000000| Untracked 
+|  40|0x0000000705000000, 0x0000000705100000, 0x0000000705100000|100%| O|  |TAMS 0x0000000705000000, 0x0000000705100000| Untracked 
+|  41|0x0000000705100000, 0x0000000705200000, 0x0000000705200000|100%| O|  |TAMS 0x0000000705100000, 0x0000000705200000| Untracked 
+|  42|0x0000000705200000, 0x0000000705300000, 0x0000000705300000|100%| O|  |TAMS 0x0000000705200000, 0x0000000705300000| Untracked 
+|  43|0x0000000705300000, 0x0000000705400000, 0x0000000705400000|100%| O|  |TAMS 0x0000000705300000, 0x0000000705400000| Untracked 
+|  44|0x0000000705400000, 0x0000000705500000, 0x0000000705500000|100%| O|  |TAMS 0x0000000705400000, 0x0000000705500000| Untracked 
+|  45|0x0000000705500000, 0x0000000705600000, 0x0000000705600000|100%| O|  |TAMS 0x0000000705500000, 0x0000000705600000| Untracked 
+|  46|0x0000000705600000, 0x0000000705700000, 0x0000000705700000|100%| O|  |TAMS 0x0000000705600000, 0x0000000705700000| Untracked 
+|  47|0x0000000705700000, 0x0000000705800000, 0x0000000705800000|100%| O|  |TAMS 0x0000000705700000, 0x0000000705800000| Untracked 
+|  48|0x0000000705800000, 0x0000000705900000, 0x0000000705900000|100%| O|  |TAMS 0x0000000705800000, 0x0000000705900000| Untracked 
+|  49|0x0000000705900000, 0x0000000705a00000, 0x0000000705a00000|100%| O|  |TAMS 0x0000000705900000, 0x0000000705a00000| Untracked 
+|  50|0x0000000705a00000, 0x0000000705b00000, 0x0000000705b00000|100%| O|  |TAMS 0x0000000705a00000, 0x0000000705b00000| Untracked 
+|  51|0x0000000705b00000, 0x0000000705c00000, 0x0000000705c00000|100%| O|  |TAMS 0x0000000705b00000, 0x0000000705c00000| Untracked 
+|  52|0x0000000705c00000, 0x0000000705d00000, 0x0000000705d00000|100%| O|  |TAMS 0x0000000705c00000, 0x0000000705d00000| Untracked 
+|  53|0x0000000705d00000, 0x0000000705e00000, 0x0000000705e00000|100%| O|  |TAMS 0x0000000705d00000, 0x0000000705e00000| Untracked 
+|  54|0x0000000705e00000, 0x0000000705f00000, 0x0000000705f00000|100%| O|  |TAMS 0x0000000705e00000, 0x0000000705f00000| Untracked 
+|  55|0x0000000705f00000, 0x0000000706000000, 0x0000000706000000|100%| O|  |TAMS 0x0000000705f00000, 0x0000000706000000| Untracked 
+|  56|0x0000000706000000, 0x0000000706100000, 0x0000000706100000|100%| O|  |TAMS 0x0000000706000000, 0x0000000706100000| Untracked 
+|  57|0x0000000706100000, 0x0000000706200000, 0x0000000706200000|100%| O|  |TAMS 0x0000000706100000, 0x0000000706200000| Untracked 
+|  58|0x0000000706200000, 0x000000070627f400, 0x0000000706300000| 49%| O|  |TAMS 0x0000000706200000, 0x000000070627f400| Untracked 
+|  59|0x0000000706300000, 0x0000000706300000, 0x0000000706400000|  0%| F|  |TAMS 0x0000000706300000, 0x0000000706300000| Untracked 
+|  60|0x0000000706400000, 0x0000000706400000, 0x0000000706500000|  0%| F|  |TAMS 0x0000000706400000, 0x0000000706400000| Untracked 
+|  61|0x0000000706500000, 0x0000000706500000, 0x0000000706600000|  0%| F|  |TAMS 0x0000000706500000, 0x0000000706500000| Untracked 
+|  62|0x0000000706600000, 0x0000000706600000, 0x0000000706700000|  0%| F|  |TAMS 0x0000000706600000, 0x0000000706600000| Untracked 
+|  63|0x0000000706700000, 0x0000000706700000, 0x0000000706800000|  0%| F|  |TAMS 0x0000000706700000, 0x0000000706700000| Untracked 
+|  64|0x0000000706800000, 0x0000000706800000, 0x0000000706900000|  0%| F|  |TAMS 0x0000000706800000, 0x0000000706800000| Untracked 
+|  65|0x0000000706900000, 0x0000000706900000, 0x0000000706a00000|  0%| F|  |TAMS 0x0000000706900000, 0x0000000706900000| Untracked 
+|  66|0x0000000706a00000, 0x0000000706a00000, 0x0000000706b00000|  0%| F|  |TAMS 0x0000000706a00000, 0x0000000706a00000| Untracked 
+|  67|0x0000000706b00000, 0x0000000706b00000, 0x0000000706c00000|  0%| F|  |TAMS 0x0000000706b00000, 0x0000000706b00000| Untracked 
+|  68|0x0000000706c00000, 0x0000000706c00000, 0x0000000706d00000|  0%| F|  |TAMS 0x0000000706c00000, 0x0000000706c00000| Untracked 
+|  69|0x0000000706d00000, 0x0000000706d00000, 0x0000000706e00000|  0%| F|  |TAMS 0x0000000706d00000, 0x0000000706d00000| Untracked 
+|  70|0x0000000706e00000, 0x0000000706e00000, 0x0000000706f00000|  0%| F|  |TAMS 0x0000000706e00000, 0x0000000706e00000| Untracked 
+|  71|0x0000000706f00000, 0x0000000706f00000, 0x0000000707000000|  0%| F|  |TAMS 0x0000000706f00000, 0x0000000706f00000| Untracked 
+|  72|0x0000000707000000, 0x0000000707000000, 0x0000000707100000|  0%| F|  |TAMS 0x0000000707000000, 0x0000000707000000| Untracked 
+|  73|0x0000000707100000, 0x0000000707100000, 0x0000000707200000|  0%| F|  |TAMS 0x0000000707100000, 0x0000000707100000| Untracked 
+|  74|0x0000000707200000, 0x0000000707200000, 0x0000000707300000|  0%| F|  |TAMS 0x0000000707200000, 0x0000000707200000| Untracked 
+|  75|0x0000000707300000, 0x0000000707300000, 0x0000000707400000|  0%| F|  |TAMS 0x0000000707300000, 0x0000000707300000| Untracked 
+|  76|0x0000000707400000, 0x0000000707400000, 0x0000000707500000|  0%| F|  |TAMS 0x0000000707400000, 0x0000000707400000| Untracked 
+|  77|0x0000000707500000, 0x0000000707500000, 0x0000000707600000|  0%| F|  |TAMS 0x0000000707500000, 0x0000000707500000| Untracked 
+|  78|0x0000000707600000, 0x0000000707600000, 0x0000000707700000|  0%| F|  |TAMS 0x0000000707600000, 0x0000000707600000| Untracked 
+|  79|0x0000000707700000, 0x0000000707700000, 0x0000000707800000|  0%| F|  |TAMS 0x0000000707700000, 0x0000000707700000| Untracked 
+|  80|0x0000000707800000, 0x0000000707800000, 0x0000000707900000|  0%| F|  |TAMS 0x0000000707800000, 0x0000000707800000| Untracked 
+|  81|0x0000000707900000, 0x0000000707900000, 0x0000000707a00000|  0%| F|  |TAMS 0x0000000707900000, 0x0000000707900000| Untracked 
+|  82|0x0000000707a00000, 0x0000000707a00000, 0x0000000707b00000|  0%| F|  |TAMS 0x0000000707a00000, 0x0000000707a00000| Untracked 
+|  83|0x0000000707b00000, 0x0000000707b00000, 0x0000000707c00000|  0%| F|  |TAMS 0x0000000707b00000, 0x0000000707b00000| Untracked 
+|  84|0x0000000707c00000, 0x0000000707c00000, 0x0000000707d00000|  0%| F|  |TAMS 0x0000000707c00000, 0x0000000707c00000| Untracked 
+|  85|0x0000000707d00000, 0x0000000707d00000, 0x0000000707e00000|  0%| F|  |TAMS 0x0000000707d00000, 0x0000000707d00000| Untracked 
+|  86|0x0000000707e00000, 0x0000000707e00000, 0x0000000707f00000|  0%| F|  |TAMS 0x0000000707e00000, 0x0000000707e00000| Untracked 
+|  87|0x0000000707f00000, 0x0000000707f00000, 0x0000000708000000|  0%| F|  |TAMS 0x0000000707f00000, 0x0000000707f00000| Untracked 
+|  88|0x0000000708000000, 0x0000000708000000, 0x0000000708100000|  0%| F|  |TAMS 0x0000000708000000, 0x0000000708000000| Untracked 
+|  89|0x0000000708100000, 0x0000000708100000, 0x0000000708200000|  0%| F|  |TAMS 0x0000000708100000, 0x0000000708100000| Untracked 
+|  90|0x0000000708200000, 0x0000000708200000, 0x0000000708300000|  0%| F|  |TAMS 0x0000000708200000, 0x0000000708200000| Untracked 
+|  91|0x0000000708300000, 0x0000000708300000, 0x0000000708400000|  0%| F|  |TAMS 0x0000000708300000, 0x0000000708300000| Untracked 
+|  92|0x0000000708400000, 0x0000000708400000, 0x0000000708500000|  0%| F|  |TAMS 0x0000000708400000, 0x0000000708400000| Untracked 
+|  93|0x0000000708500000, 0x0000000708500000, 0x0000000708600000|  0%| F|  |TAMS 0x0000000708500000, 0x0000000708500000| Untracked 
+|  94|0x0000000708600000, 0x0000000708600000, 0x0000000708700000|  0%| F|  |TAMS 0x0000000708600000, 0x0000000708600000| Untracked 
+|  95|0x0000000708700000, 0x0000000708700000, 0x0000000708800000|  0%| F|  |TAMS 0x0000000708700000, 0x0000000708700000| Untracked 
+|  96|0x0000000708800000, 0x0000000708800000, 0x0000000708900000|  0%| F|  |TAMS 0x0000000708800000, 0x0000000708800000| Untracked 
+|  97|0x0000000708900000, 0x0000000708900000, 0x0000000708a00000|  0%| F|  |TAMS 0x0000000708900000, 0x0000000708900000| Untracked 
+|  98|0x0000000708a00000, 0x0000000708a00000, 0x0000000708b00000|  0%| F|  |TAMS 0x0000000708a00000, 0x0000000708a00000| Untracked 
+|  99|0x0000000708b00000, 0x0000000708b00000, 0x0000000708c00000|  0%| F|  |TAMS 0x0000000708b00000, 0x0000000708b00000| Untracked 
+| 100|0x0000000708c00000, 0x0000000708c00000, 0x0000000708d00000|  0%| F|  |TAMS 0x0000000708c00000, 0x0000000708c00000| Untracked 
+| 101|0x0000000708d00000, 0x0000000708d00000, 0x0000000708e00000|  0%| F|  |TAMS 0x0000000708d00000, 0x0000000708d00000| Untracked 
+| 102|0x0000000708e00000, 0x0000000708e00000, 0x0000000708f00000|  0%| F|  |TAMS 0x0000000708e00000, 0x0000000708e00000| Untracked 
+| 103|0x0000000708f00000, 0x0000000708f00000, 0x0000000709000000|  0%| F|  |TAMS 0x0000000708f00000, 0x0000000708f00000| Untracked 
+| 104|0x0000000709000000, 0x0000000709000000, 0x0000000709100000|  0%| F|  |TAMS 0x0000000709000000, 0x0000000709000000| Untracked 
+| 105|0x0000000709100000, 0x0000000709100000, 0x0000000709200000|  0%| F|  |TAMS 0x0000000709100000, 0x0000000709100000| Untracked 
+| 106|0x0000000709200000, 0x0000000709200000, 0x0000000709300000|  0%| F|  |TAMS 0x0000000709200000, 0x0000000709200000| Untracked 
+| 107|0x0000000709300000, 0x0000000709300000, 0x0000000709400000|  0%| F|  |TAMS 0x0000000709300000, 0x0000000709300000| Untracked 
+| 108|0x0000000709400000, 0x0000000709400000, 0x0000000709500000|  0%| F|  |TAMS 0x0000000709400000, 0x0000000709400000| Untracked 
+| 109|0x0000000709500000, 0x0000000709500000, 0x0000000709600000|  0%| F|  |TAMS 0x0000000709500000, 0x0000000709500000| Untracked 
+| 110|0x0000000709600000, 0x0000000709600000, 0x0000000709700000|  0%| F|  |TAMS 0x0000000709600000, 0x0000000709600000| Untracked 
+| 111|0x0000000709700000, 0x0000000709700000, 0x0000000709800000|  0%| F|  |TAMS 0x0000000709700000, 0x0000000709700000| Untracked 
+| 112|0x0000000709800000, 0x0000000709800000, 0x0000000709900000|  0%| F|  |TAMS 0x0000000709800000, 0x0000000709800000| Untracked 
+| 113|0x0000000709900000, 0x0000000709900000, 0x0000000709a00000|  0%| F|  |TAMS 0x0000000709900000, 0x0000000709900000| Untracked 
+| 114|0x0000000709a00000, 0x0000000709a00000, 0x0000000709b00000|  0%| F|  |TAMS 0x0000000709a00000, 0x0000000709a00000| Untracked 
+| 115|0x0000000709b00000, 0x0000000709b00000, 0x0000000709c00000|  0%| F|  |TAMS 0x0000000709b00000, 0x0000000709b00000| Untracked 
+| 116|0x0000000709c00000, 0x0000000709c00000, 0x0000000709d00000|  0%| F|  |TAMS 0x0000000709c00000, 0x0000000709c00000| Untracked 
+| 117|0x0000000709d00000, 0x0000000709d00000, 0x0000000709e00000|  0%| F|  |TAMS 0x0000000709d00000, 0x0000000709d00000| Untracked 
+| 118|0x0000000709e00000, 0x0000000709e00000, 0x0000000709f00000|  0%| F|  |TAMS 0x0000000709e00000, 0x0000000709e00000| Untracked 
+| 119|0x0000000709f00000, 0x0000000709f00000, 0x000000070a000000|  0%| F|  |TAMS 0x0000000709f00000, 0x0000000709f00000| Untracked 
+| 120|0x000000070a000000, 0x000000070a000000, 0x000000070a100000|  0%| F|  |TAMS 0x000000070a000000, 0x000000070a000000| Untracked 
+| 121|0x000000070a100000, 0x000000070a100000, 0x000000070a200000|  0%| F|  |TAMS 0x000000070a100000, 0x000000070a100000| Untracked 
+| 122|0x000000070a200000, 0x000000070a200000, 0x000000070a300000|  0%| F|  |TAMS 0x000000070a200000, 0x000000070a200000| Untracked 
+| 123|0x000000070a300000, 0x000000070a300000, 0x000000070a400000|  0%| F|  |TAMS 0x000000070a300000, 0x000000070a300000| Untracked 
+| 124|0x000000070a400000, 0x000000070a400000, 0x000000070a500000|  0%| F|  |TAMS 0x000000070a400000, 0x000000070a400000| Untracked 
+| 125|0x000000070a500000, 0x000000070a500000, 0x000000070a600000|  0%| F|  |TAMS 0x000000070a500000, 0x000000070a500000| Untracked 
+| 126|0x000000070a600000, 0x000000070a600000, 0x000000070a700000|  0%| F|  |TAMS 0x000000070a600000, 0x000000070a600000| Untracked 
+| 127|0x000000070a700000, 0x000000070a700000, 0x000000070a800000|  0%| F|  |TAMS 0x000000070a700000, 0x000000070a700000| Untracked 
+| 128|0x000000070a800000, 0x000000070a800000, 0x000000070a900000|  0%| F|  |TAMS 0x000000070a800000, 0x000000070a800000| Untracked 
+| 129|0x000000070a900000, 0x000000070a900000, 0x000000070aa00000|  0%| F|  |TAMS 0x000000070a900000, 0x000000070a900000| Untracked 
+| 130|0x000000070aa00000, 0x000000070aa00000, 0x000000070ab00000|  0%| F|  |TAMS 0x000000070aa00000, 0x000000070aa00000| Untracked 
+| 131|0x000000070ab00000, 0x000000070ab00000, 0x000000070ac00000|  0%| F|  |TAMS 0x000000070ab00000, 0x000000070ab00000| Untracked 
+| 132|0x000000070ac00000, 0x000000070ac00000, 0x000000070ad00000|  0%| F|  |TAMS 0x000000070ac00000, 0x000000070ac00000| Untracked 
+| 133|0x000000070ad00000, 0x000000070ad00000, 0x000000070ae00000|  0%| F|  |TAMS 0x000000070ad00000, 0x000000070ad00000| Untracked 
+| 134|0x000000070ae00000, 0x000000070ae00000, 0x000000070af00000|  0%| F|  |TAMS 0x000000070ae00000, 0x000000070ae00000| Untracked 
+| 135|0x000000070af00000, 0x000000070af00000, 0x000000070b000000|  0%| F|  |TAMS 0x000000070af00000, 0x000000070af00000| Untracked 
+| 136|0x000000070b000000, 0x000000070b000000, 0x000000070b100000|  0%| F|  |TAMS 0x000000070b000000, 0x000000070b000000| Untracked 
+| 137|0x000000070b100000, 0x000000070b100000, 0x000000070b200000|  0%| F|  |TAMS 0x000000070b100000, 0x000000070b100000| Untracked 
+| 138|0x000000070b200000, 0x000000070b200000, 0x000000070b300000|  0%| F|  |TAMS 0x000000070b200000, 0x000000070b200000| Untracked 
+| 139|0x000000070b300000, 0x000000070b300000, 0x000000070b400000|  0%| F|  |TAMS 0x000000070b300000, 0x000000070b300000| Untracked 
+| 140|0x000000070b400000, 0x000000070b400000, 0x000000070b500000|  0%| F|  |TAMS 0x000000070b400000, 0x000000070b400000| Untracked 
+| 141|0x000000070b500000, 0x000000070b500000, 0x000000070b600000|  0%| F|  |TAMS 0x000000070b500000, 0x000000070b500000| Untracked 
+| 142|0x000000070b600000, 0x000000070b600000, 0x000000070b700000|  0%| F|  |TAMS 0x000000070b600000, 0x000000070b600000| Untracked 
+| 143|0x000000070b700000, 0x000000070b700000, 0x000000070b800000|  0%| F|  |TAMS 0x000000070b700000, 0x000000070b700000| Untracked 
+| 144|0x000000070b800000, 0x000000070b800000, 0x000000070b900000|  0%| F|  |TAMS 0x000000070b800000, 0x000000070b800000| Untracked 
+| 145|0x000000070b900000, 0x000000070b900000, 0x000000070ba00000|  0%| F|  |TAMS 0x000000070b900000, 0x000000070b900000| Untracked 
+| 146|0x000000070ba00000, 0x000000070ba00000, 0x000000070bb00000|  0%| F|  |TAMS 0x000000070ba00000, 0x000000070ba00000| Untracked 
+| 147|0x000000070bb00000, 0x000000070bb00000, 0x000000070bc00000|  0%| F|  |TAMS 0x000000070bb00000, 0x000000070bb00000| Untracked 
+| 148|0x000000070bc00000, 0x000000070bc00000, 0x000000070bd00000|  0%| F|  |TAMS 0x000000070bc00000, 0x000000070bc00000| Untracked 
+| 149|0x000000070bd00000, 0x000000070bd00000, 0x000000070be00000|  0%| F|  |TAMS 0x000000070bd00000, 0x000000070bd00000| Untracked 
+| 150|0x000000070be00000, 0x000000070be00000, 0x000000070bf00000|  0%| F|  |TAMS 0x000000070be00000, 0x000000070be00000| Untracked 
+| 151|0x000000070bf00000, 0x000000070bf00000, 0x000000070c000000|  0%| F|  |TAMS 0x000000070bf00000, 0x000000070bf00000| Untracked 
+| 152|0x000000070c000000, 0x000000070c000000, 0x000000070c100000|  0%| F|  |TAMS 0x000000070c000000, 0x000000070c000000| Untracked 
+| 153|0x000000070c100000, 0x000000070c100000, 0x000000070c200000|  0%| F|  |TAMS 0x000000070c100000, 0x000000070c100000| Untracked 
+| 154|0x000000070c200000, 0x000000070c200000, 0x000000070c300000|  0%| F|  |TAMS 0x000000070c200000, 0x000000070c200000| Untracked 
+| 155|0x000000070c300000, 0x000000070c300000, 0x000000070c400000|  0%| F|  |TAMS 0x000000070c300000, 0x000000070c300000| Untracked 
+| 156|0x000000070c400000, 0x000000070c400000, 0x000000070c500000|  0%| F|  |TAMS 0x000000070c400000, 0x000000070c400000| Untracked 
+| 157|0x000000070c500000, 0x000000070c500000, 0x000000070c600000|  0%| F|  |TAMS 0x000000070c500000, 0x000000070c500000| Untracked 
+| 158|0x000000070c600000, 0x000000070c600000, 0x000000070c700000|  0%| F|  |TAMS 0x000000070c600000, 0x000000070c600000| Untracked 
+| 159|0x000000070c700000, 0x000000070c700000, 0x000000070c800000|  0%| F|  |TAMS 0x000000070c700000, 0x000000070c700000| Untracked 
+| 160|0x000000070c800000, 0x000000070c800000, 0x000000070c900000|  0%| F|  |TAMS 0x000000070c800000, 0x000000070c800000| Untracked 
+| 161|0x000000070c900000, 0x000000070c900000, 0x000000070ca00000|  0%| F|  |TAMS 0x000000070c900000, 0x000000070c900000| Untracked 
+| 162|0x000000070ca00000, 0x000000070ca00000, 0x000000070cb00000|  0%| F|  |TAMS 0x000000070ca00000, 0x000000070ca00000| Untracked 
+| 163|0x000000070cb00000, 0x000000070cb00000, 0x000000070cc00000|  0%| F|  |TAMS 0x000000070cb00000, 0x000000070cb00000| Untracked 
+| 164|0x000000070cc00000, 0x000000070cc00000, 0x000000070cd00000|  0%| F|  |TAMS 0x000000070cc00000, 0x000000070cc00000| Untracked 
+| 165|0x000000070cd00000, 0x000000070cd00000, 0x000000070ce00000|  0%| F|  |TAMS 0x000000070cd00000, 0x000000070cd00000| Untracked 
+| 166|0x000000070ce00000, 0x000000070ce00000, 0x000000070cf00000|  0%| F|  |TAMS 0x000000070ce00000, 0x000000070ce00000| Untracked 
+| 167|0x000000070cf00000, 0x000000070cf00000, 0x000000070d000000|  0%| F|  |TAMS 0x000000070cf00000, 0x000000070cf00000| Untracked 
+| 168|0x000000070d000000, 0x000000070d000000, 0x000000070d100000|  0%| F|  |TAMS 0x000000070d000000, 0x000000070d000000| Untracked 
+| 169|0x000000070d100000, 0x000000070d1f47e8, 0x000000070d200000| 95%| S|CS|TAMS 0x000000070d100000, 0x000000070d100000| Complete 
+| 170|0x000000070d200000, 0x000000070d300000, 0x000000070d300000|100%| S|CS|TAMS 0x000000070d200000, 0x000000070d200000| Complete 
+| 171|0x000000070d300000, 0x000000070d400000, 0x000000070d400000|100%| S|CS|TAMS 0x000000070d300000, 0x000000070d300000| Complete 
+| 172|0x000000070d400000, 0x000000070d500000, 0x000000070d500000|100%| S|CS|TAMS 0x000000070d400000, 0x000000070d400000| Complete 
+| 173|0x000000070d500000, 0x000000070d600000, 0x000000070d600000|100%| S|CS|TAMS 0x000000070d500000, 0x000000070d500000| Complete 
+| 174|0x000000070d600000, 0x000000070d700000, 0x000000070d700000|100%| S|CS|TAMS 0x000000070d600000, 0x000000070d600000| Complete 
+| 175|0x000000070d700000, 0x000000070d800000, 0x000000070d800000|100%| S|CS|TAMS 0x000000070d700000, 0x000000070d700000| Complete 
+| 176|0x000000070d800000, 0x000000070d900000, 0x000000070d900000|100%| S|CS|TAMS 0x000000070d800000, 0x000000070d800000| Complete 
+| 177|0x000000070d900000, 0x000000070da00000, 0x000000070da00000|100%| S|CS|TAMS 0x000000070d900000, 0x000000070d900000| Complete 
+| 178|0x000000070da00000, 0x000000070db00000, 0x000000070db00000|100%| S|CS|TAMS 0x000000070da00000, 0x000000070da00000| Complete 
+| 179|0x000000070db00000, 0x000000070dc00000, 0x000000070dc00000|100%| S|CS|TAMS 0x000000070db00000, 0x000000070db00000| Complete 
+| 180|0x000000070dc00000, 0x000000070dd00000, 0x000000070dd00000|100%| S|CS|TAMS 0x000000070dc00000, 0x000000070dc00000| Complete 
+| 181|0x000000070dd00000, 0x000000070de00000, 0x000000070de00000|100%| S|CS|TAMS 0x000000070dd00000, 0x000000070dd00000| Complete 
+| 182|0x000000070de00000, 0x000000070df00000, 0x000000070df00000|100%| S|CS|TAMS 0x000000070de00000, 0x000000070de00000| Complete 
+| 183|0x000000070df00000, 0x000000070e000000, 0x000000070e000000|100%| S|CS|TAMS 0x000000070df00000, 0x000000070df00000| Complete 
+| 184|0x000000070e000000, 0x000000070e100000, 0x000000070e100000|100%| S|CS|TAMS 0x000000070e000000, 0x000000070e000000| Complete 
+| 185|0x000000070e100000, 0x000000070e200000, 0x000000070e200000|100%| S|CS|TAMS 0x000000070e100000, 0x000000070e100000| Complete 
+| 186|0x000000070e200000, 0x000000070e300000, 0x000000070e300000|100%| S|CS|TAMS 0x000000070e200000, 0x000000070e200000| Complete 
+| 187|0x000000070e300000, 0x000000070e400000, 0x000000070e400000|100%| S|CS|TAMS 0x000000070e300000, 0x000000070e300000| Complete 
+| 188|0x000000070e400000, 0x000000070e500000, 0x000000070e500000|100%| S|CS|TAMS 0x000000070e400000, 0x000000070e400000| Complete 
+| 189|0x000000070e500000, 0x000000070e600000, 0x000000070e600000|100%| S|CS|TAMS 0x000000070e500000, 0x000000070e500000| Complete 
+| 190|0x000000070e600000, 0x000000070e600000, 0x000000070e700000|  0%| F|  |TAMS 0x000000070e600000, 0x000000070e600000| Untracked 
+| 191|0x000000070e700000, 0x000000070e700000, 0x000000070e800000|  0%| F|  |TAMS 0x000000070e700000, 0x000000070e700000| Untracked 
+| 192|0x000000070e800000, 0x000000070e800000, 0x000000070e900000|  0%| F|  |TAMS 0x000000070e800000, 0x000000070e800000| Untracked 
+| 193|0x000000070e900000, 0x000000070e900000, 0x000000070ea00000|  0%| F|  |TAMS 0x000000070e900000, 0x000000070e900000| Untracked 
+| 194|0x000000070ea00000, 0x000000070ea00000, 0x000000070eb00000|  0%| F|  |TAMS 0x000000070ea00000, 0x000000070ea00000| Untracked 
+| 195|0x000000070eb00000, 0x000000070eb00000, 0x000000070ec00000|  0%| F|  |TAMS 0x000000070eb00000, 0x000000070eb00000| Untracked 
+| 196|0x000000070ec00000, 0x000000070ec00000, 0x000000070ed00000|  0%| F|  |TAMS 0x000000070ec00000, 0x000000070ec00000| Untracked 
+| 197|0x000000070ed00000, 0x000000070ed00000, 0x000000070ee00000|  0%| F|  |TAMS 0x000000070ed00000, 0x000000070ed00000| Untracked 
+| 198|0x000000070ee00000, 0x000000070ee00000, 0x000000070ef00000|  0%| F|  |TAMS 0x000000070ee00000, 0x000000070ee00000| Untracked 
+| 199|0x000000070ef00000, 0x000000070ef00000, 0x000000070f000000|  0%| F|  |TAMS 0x000000070ef00000, 0x000000070ef00000| Untracked 
+| 200|0x000000070f000000, 0x000000070f000000, 0x000000070f100000|  0%| F|  |TAMS 0x000000070f000000, 0x000000070f000000| Untracked 
+| 201|0x000000070f100000, 0x000000070f100000, 0x000000070f200000|  0%| F|  |TAMS 0x000000070f100000, 0x000000070f100000| Untracked 
+| 202|0x000000070f200000, 0x000000070f200000, 0x000000070f300000|  0%| F|  |TAMS 0x000000070f200000, 0x000000070f200000| Untracked 
+| 203|0x000000070f300000, 0x000000070f300000, 0x000000070f400000|  0%| F|  |TAMS 0x000000070f300000, 0x000000070f300000| Untracked 
+| 204|0x000000070f400000, 0x000000070f400000, 0x000000070f500000|  0%| F|  |TAMS 0x000000070f400000, 0x000000070f400000| Untracked 
+| 205|0x000000070f500000, 0x000000070f500000, 0x000000070f600000|  0%| F|  |TAMS 0x000000070f500000, 0x000000070f500000| Untracked 
+| 206|0x000000070f600000, 0x000000070f600000, 0x000000070f700000|  0%| F|  |TAMS 0x000000070f600000, 0x000000070f600000| Untracked 
+| 207|0x000000070f700000, 0x000000070f700000, 0x000000070f800000|  0%| F|  |TAMS 0x000000070f700000, 0x000000070f700000| Untracked 
+| 208|0x000000070f800000, 0x000000070f800000, 0x000000070f900000|  0%| F|  |TAMS 0x000000070f800000, 0x000000070f800000| Untracked 
+| 209|0x000000070f900000, 0x000000070f900000, 0x000000070fa00000|  0%| F|  |TAMS 0x000000070f900000, 0x000000070f900000| Untracked 
+| 210|0x000000070fa00000, 0x000000070fa00000, 0x000000070fb00000|  0%| F|  |TAMS 0x000000070fa00000, 0x000000070fa00000| Untracked 
+| 211|0x000000070fb00000, 0x000000070fb00000, 0x000000070fc00000|  0%| F|  |TAMS 0x000000070fb00000, 0x000000070fb00000| Untracked 
+| 212|0x000000070fc00000, 0x000000070fc00000, 0x000000070fd00000|  0%| F|  |TAMS 0x000000070fc00000, 0x000000070fc00000| Untracked 
+| 213|0x000000070fd00000, 0x000000070fd00000, 0x000000070fe00000|  0%| F|  |TAMS 0x000000070fd00000, 0x000000070fd00000| Untracked 
+| 214|0x000000070fe00000, 0x000000070fe00000, 0x000000070ff00000|  0%| F|  |TAMS 0x000000070fe00000, 0x000000070fe00000| Untracked 
+| 215|0x000000070ff00000, 0x000000070ff00000, 0x0000000710000000|  0%| F|  |TAMS 0x000000070ff00000, 0x000000070ff00000| Untracked 
+| 216|0x0000000710000000, 0x0000000710000000, 0x0000000710100000|  0%| F|  |TAMS 0x0000000710000000, 0x0000000710000000| Untracked 
+| 217|0x0000000710100000, 0x0000000710100000, 0x0000000710200000|  0%| F|  |TAMS 0x0000000710100000, 0x0000000710100000| Untracked 
+| 218|0x0000000710200000, 0x0000000710200000, 0x0000000710300000|  0%| F|  |TAMS 0x0000000710200000, 0x0000000710200000| Untracked 
+| 219|0x0000000710300000, 0x0000000710300000, 0x0000000710400000|  0%| F|  |TAMS 0x0000000710300000, 0x0000000710300000| Untracked 
+| 220|0x0000000710400000, 0x0000000710400000, 0x0000000710500000|  0%| F|  |TAMS 0x0000000710400000, 0x0000000710400000| Untracked 
+| 221|0x0000000710500000, 0x0000000710500000, 0x0000000710600000|  0%| F|  |TAMS 0x0000000710500000, 0x0000000710500000| Untracked 
+| 222|0x0000000710600000, 0x0000000710600000, 0x0000000710700000|  0%| F|  |TAMS 0x0000000710600000, 0x0000000710600000| Untracked 
+| 223|0x0000000710700000, 0x0000000710700000, 0x0000000710800000|  0%| F|  |TAMS 0x0000000710700000, 0x0000000710700000| Untracked 
+| 224|0x0000000710800000, 0x0000000710800000, 0x0000000710900000|  0%| F|  |TAMS 0x0000000710800000, 0x0000000710800000| Untracked 
+| 225|0x0000000710900000, 0x0000000710900000, 0x0000000710a00000|  0%| F|  |TAMS 0x0000000710900000, 0x0000000710900000| Untracked 
+| 226|0x0000000710a00000, 0x0000000710a00000, 0x0000000710b00000|  0%| F|  |TAMS 0x0000000710a00000, 0x0000000710a00000| Untracked 
+| 227|0x0000000710b00000, 0x0000000710b00000, 0x0000000710c00000|  0%| F|  |TAMS 0x0000000710b00000, 0x0000000710b00000| Untracked 
+| 228|0x0000000710c00000, 0x0000000710c00000, 0x0000000710d00000|  0%| F|  |TAMS 0x0000000710c00000, 0x0000000710c00000| Untracked 
+| 229|0x0000000710d00000, 0x0000000710d00000, 0x0000000710e00000|  0%| F|  |TAMS 0x0000000710d00000, 0x0000000710d00000| Untracked 
+| 230|0x0000000710e00000, 0x0000000710e00000, 0x0000000710f00000|  0%| F|  |TAMS 0x0000000710e00000, 0x0000000710e00000| Untracked 
+| 231|0x0000000710f00000, 0x0000000710f00000, 0x0000000711000000|  0%| F|  |TAMS 0x0000000710f00000, 0x0000000710f00000| Untracked 
+| 232|0x0000000711000000, 0x0000000711000000, 0x0000000711100000|  0%| F|  |TAMS 0x0000000711000000, 0x0000000711000000| Untracked 
+| 233|0x0000000711100000, 0x0000000711100000, 0x0000000711200000|  0%| F|  |TAMS 0x0000000711100000, 0x0000000711100000| Untracked 
+| 234|0x0000000711200000, 0x0000000711200000, 0x0000000711300000|  0%| F|  |TAMS 0x0000000711200000, 0x0000000711200000| Untracked 
+| 235|0x0000000711300000, 0x0000000711300000, 0x0000000711400000|  0%| F|  |TAMS 0x0000000711300000, 0x0000000711300000| Untracked 
+| 236|0x0000000711400000, 0x0000000711400000, 0x0000000711500000|  0%| F|  |TAMS 0x0000000711400000, 0x0000000711400000| Untracked 
+| 237|0x0000000711500000, 0x0000000711500000, 0x0000000711600000|  0%| F|  |TAMS 0x0000000711500000, 0x0000000711500000| Untracked 
+| 238|0x0000000711600000, 0x0000000711600000, 0x0000000711700000|  0%| F|  |TAMS 0x0000000711600000, 0x0000000711600000| Untracked 
+| 239|0x0000000711700000, 0x0000000711700000, 0x0000000711800000|  0%| F|  |TAMS 0x0000000711700000, 0x0000000711700000| Untracked 
+| 240|0x0000000711800000, 0x0000000711800000, 0x0000000711900000|  0%| F|  |TAMS 0x0000000711800000, 0x0000000711800000| Untracked 
+| 241|0x0000000711900000, 0x0000000711900000, 0x0000000711a00000|  0%| F|  |TAMS 0x0000000711900000, 0x0000000711900000| Untracked 
+| 242|0x0000000711a00000, 0x0000000711a00000, 0x0000000711b00000|  0%| F|  |TAMS 0x0000000711a00000, 0x0000000711a00000| Untracked 
+| 243|0x0000000711b00000, 0x0000000711b00000, 0x0000000711c00000|  0%| F|  |TAMS 0x0000000711b00000, 0x0000000711b00000| Untracked 
+| 244|0x0000000711c00000, 0x0000000711c00000, 0x0000000711d00000|  0%| F|  |TAMS 0x0000000711c00000, 0x0000000711c00000| Untracked 
+| 245|0x0000000711d00000, 0x0000000711d00000, 0x0000000711e00000|  0%| F|  |TAMS 0x0000000711d00000, 0x0000000711d00000| Untracked 
+| 246|0x0000000711e00000, 0x0000000711e00000, 0x0000000711f00000|  0%| F|  |TAMS 0x0000000711e00000, 0x0000000711e00000| Untracked 
+| 247|0x0000000711f00000, 0x0000000711f00000, 0x0000000712000000|  0%| F|  |TAMS 0x0000000711f00000, 0x0000000711f00000| Untracked 
+| 248|0x0000000712000000, 0x0000000712000000, 0x0000000712100000|  0%| F|  |TAMS 0x0000000712000000, 0x0000000712000000| Untracked 
+| 249|0x0000000712100000, 0x0000000712100000, 0x0000000712200000|  0%| F|  |TAMS 0x0000000712100000, 0x0000000712100000| Untracked 
+| 250|0x0000000712200000, 0x0000000712200000, 0x0000000712300000|  0%| F|  |TAMS 0x0000000712200000, 0x0000000712200000| Untracked 
+| 251|0x0000000712300000, 0x0000000712300000, 0x0000000712400000|  0%| F|  |TAMS 0x0000000712300000, 0x0000000712300000| Untracked 
+| 252|0x0000000712400000, 0x0000000712400000, 0x0000000712500000|  0%| F|  |TAMS 0x0000000712400000, 0x0000000712400000| Untracked 
+| 253|0x0000000712500000, 0x0000000712500000, 0x0000000712600000|  0%| F|  |TAMS 0x0000000712500000, 0x0000000712500000| Untracked 
+| 254|0x0000000712600000, 0x0000000712600000, 0x0000000712700000|  0%| F|  |TAMS 0x0000000712600000, 0x0000000712600000| Untracked 
+| 255|0x0000000712700000, 0x0000000712700000, 0x0000000712800000|  0%| F|  |TAMS 0x0000000712700000, 0x0000000712700000| Untracked 
+| 256|0x0000000712800000, 0x0000000712800000, 0x0000000712900000|  0%| F|  |TAMS 0x0000000712800000, 0x0000000712800000| Untracked 
+| 257|0x0000000712900000, 0x0000000712900000, 0x0000000712a00000|  0%| F|  |TAMS 0x0000000712900000, 0x0000000712900000| Untracked 
+| 258|0x0000000712a00000, 0x0000000712a00000, 0x0000000712b00000|  0%| F|  |TAMS 0x0000000712a00000, 0x0000000712a00000| Untracked 
+| 259|0x0000000712b00000, 0x0000000712b00000, 0x0000000712c00000|  0%| F|  |TAMS 0x0000000712b00000, 0x0000000712b00000| Untracked 
+| 260|0x0000000712c00000, 0x0000000712c00000, 0x0000000712d00000|  0%| F|  |TAMS 0x0000000712c00000, 0x0000000712c00000| Untracked 
+| 261|0x0000000712d00000, 0x0000000712d00000, 0x0000000712e00000|  0%| F|  |TAMS 0x0000000712d00000, 0x0000000712d00000| Untracked 
+| 262|0x0000000712e00000, 0x0000000712e00000, 0x0000000712f00000|  0%| F|  |TAMS 0x0000000712e00000, 0x0000000712e00000| Untracked 
+| 263|0x0000000712f00000, 0x0000000712f00000, 0x0000000713000000|  0%| F|  |TAMS 0x0000000712f00000, 0x0000000712f00000| Untracked 
+| 264|0x0000000713000000, 0x0000000713000000, 0x0000000713100000|  0%| F|  |TAMS 0x0000000713000000, 0x0000000713000000| Untracked 
+| 265|0x0000000713100000, 0x0000000713100000, 0x0000000713200000|  0%| F|  |TAMS 0x0000000713100000, 0x0000000713100000| Untracked 
+| 266|0x0000000713200000, 0x0000000713200000, 0x0000000713300000|  0%| F|  |TAMS 0x0000000713200000, 0x0000000713200000| Untracked 
+| 267|0x0000000713300000, 0x0000000713300000, 0x0000000713400000|  0%| F|  |TAMS 0x0000000713300000, 0x0000000713300000| Untracked 
+| 268|0x0000000713400000, 0x0000000713400000, 0x0000000713500000|  0%| F|  |TAMS 0x0000000713400000, 0x0000000713400000| Untracked 
+| 269|0x0000000713500000, 0x0000000713500000, 0x0000000713600000|  0%| F|  |TAMS 0x0000000713500000, 0x0000000713500000| Untracked 
+| 270|0x0000000713600000, 0x0000000713600000, 0x0000000713700000|  0%| F|  |TAMS 0x0000000713600000, 0x0000000713600000| Untracked 
+| 271|0x0000000713700000, 0x0000000713700000, 0x0000000713800000|  0%| F|  |TAMS 0x0000000713700000, 0x0000000713700000| Untracked 
+| 272|0x0000000713800000, 0x0000000713800000, 0x0000000713900000|  0%| F|  |TAMS 0x0000000713800000, 0x0000000713800000| Untracked 
+| 273|0x0000000713900000, 0x0000000713900000, 0x0000000713a00000|  0%| F|  |TAMS 0x0000000713900000, 0x0000000713900000| Untracked 
+| 274|0x0000000713a00000, 0x0000000713a00000, 0x0000000713b00000|  0%| F|  |TAMS 0x0000000713a00000, 0x0000000713a00000| Untracked 
+| 275|0x0000000713b00000, 0x0000000713b00000, 0x0000000713c00000|  0%| F|  |TAMS 0x0000000713b00000, 0x0000000713b00000| Untracked 
+| 276|0x0000000713c00000, 0x0000000713c00000, 0x0000000713d00000|  0%| F|  |TAMS 0x0000000713c00000, 0x0000000713c00000| Untracked 
+| 277|0x0000000713d00000, 0x0000000713d00000, 0x0000000713e00000|  0%| F|  |TAMS 0x0000000713d00000, 0x0000000713d00000| Untracked 
+| 278|0x0000000713e00000, 0x0000000713e00000, 0x0000000713f00000|  0%| F|  |TAMS 0x0000000713e00000, 0x0000000713e00000| Untracked 
+| 279|0x0000000713f00000, 0x0000000713f00000, 0x0000000714000000|  0%| F|  |TAMS 0x0000000713f00000, 0x0000000713f00000| Untracked 
+| 280|0x0000000714000000, 0x0000000714000000, 0x0000000714100000|  0%| F|  |TAMS 0x0000000714000000, 0x0000000714000000| Untracked 
+| 281|0x0000000714100000, 0x0000000714100000, 0x0000000714200000|  0%| F|  |TAMS 0x0000000714100000, 0x0000000714100000| Untracked 
+| 282|0x0000000714200000, 0x0000000714200000, 0x0000000714300000|  0%| F|  |TAMS 0x0000000714200000, 0x0000000714200000| Untracked 
+| 283|0x0000000714300000, 0x0000000714300000, 0x0000000714400000|  0%| F|  |TAMS 0x0000000714300000, 0x0000000714300000| Untracked 
+| 284|0x0000000714400000, 0x0000000714400000, 0x0000000714500000|  0%| F|  |TAMS 0x0000000714400000, 0x0000000714400000| Untracked 
+| 285|0x0000000714500000, 0x0000000714500000, 0x0000000714600000|  0%| F|  |TAMS 0x0000000714500000, 0x0000000714500000| Untracked 
+| 286|0x0000000714600000, 0x0000000714600000, 0x0000000714700000|  0%| F|  |TAMS 0x0000000714600000, 0x0000000714600000| Untracked 
+| 287|0x0000000714700000, 0x0000000714700000, 0x0000000714800000|  0%| F|  |TAMS 0x0000000714700000, 0x0000000714700000| Untracked 
+| 288|0x0000000714800000, 0x0000000714800000, 0x0000000714900000|  0%| F|  |TAMS 0x0000000714800000, 0x0000000714800000| Untracked 
+| 289|0x0000000714900000, 0x0000000714900000, 0x0000000714a00000|  0%| F|  |TAMS 0x0000000714900000, 0x0000000714900000| Untracked 
+| 290|0x0000000714a00000, 0x0000000714a00000, 0x0000000714b00000|  0%| F|  |TAMS 0x0000000714a00000, 0x0000000714a00000| Untracked 
+| 291|0x0000000714b00000, 0x0000000714b00000, 0x0000000714c00000|  0%| F|  |TAMS 0x0000000714b00000, 0x0000000714b00000| Untracked 
+| 292|0x0000000714c00000, 0x0000000714c00000, 0x0000000714d00000|  0%| F|  |TAMS 0x0000000714c00000, 0x0000000714c00000| Untracked 
+| 293|0x0000000714d00000, 0x0000000714d00000, 0x0000000714e00000|  0%| F|  |TAMS 0x0000000714d00000, 0x0000000714d00000| Untracked 
+| 294|0x0000000714e00000, 0x0000000714e00000, 0x0000000714f00000|  0%| F|  |TAMS 0x0000000714e00000, 0x0000000714e00000| Untracked 
+| 295|0x0000000714f00000, 0x0000000714f00000, 0x0000000715000000|  0%| F|  |TAMS 0x0000000714f00000, 0x0000000714f00000| Untracked 
+| 296|0x0000000715000000, 0x0000000715000000, 0x0000000715100000|  0%| F|  |TAMS 0x0000000715000000, 0x0000000715000000| Untracked 
+| 297|0x0000000715100000, 0x0000000715100000, 0x0000000715200000|  0%| F|  |TAMS 0x0000000715100000, 0x0000000715100000| Untracked 
+| 298|0x0000000715200000, 0x0000000715200000, 0x0000000715300000|  0%| F|  |TAMS 0x0000000715200000, 0x0000000715200000| Untracked 
+| 299|0x0000000715300000, 0x0000000715300000, 0x0000000715400000|  0%| F|  |TAMS 0x0000000715300000, 0x0000000715300000| Untracked 
+| 300|0x0000000715400000, 0x0000000715400000, 0x0000000715500000|  0%| F|  |TAMS 0x0000000715400000, 0x0000000715400000| Untracked 
+| 301|0x0000000715500000, 0x0000000715500000, 0x0000000715600000|  0%| F|  |TAMS 0x0000000715500000, 0x0000000715500000| Untracked 
+| 302|0x0000000715600000, 0x0000000715600000, 0x0000000715700000|  0%| F|  |TAMS 0x0000000715600000, 0x0000000715600000| Untracked 
+| 303|0x0000000715700000, 0x0000000715700000, 0x0000000715800000|  0%| F|  |TAMS 0x0000000715700000, 0x0000000715700000| Untracked 
+| 304|0x0000000715800000, 0x0000000715800000, 0x0000000715900000|  0%| F|  |TAMS 0x0000000715800000, 0x0000000715800000| Untracked 
+| 305|0x0000000715900000, 0x0000000715900000, 0x0000000715a00000|  0%| F|  |TAMS 0x0000000715900000, 0x0000000715900000| Untracked 
+| 306|0x0000000715a00000, 0x0000000715a00000, 0x0000000715b00000|  0%| F|  |TAMS 0x0000000715a00000, 0x0000000715a00000| Untracked 
+| 307|0x0000000715b00000, 0x0000000715b00000, 0x0000000715c00000|  0%| F|  |TAMS 0x0000000715b00000, 0x0000000715b00000| Untracked 
+| 308|0x0000000715c00000, 0x0000000715c00000, 0x0000000715d00000|  0%| F|  |TAMS 0x0000000715c00000, 0x0000000715c00000| Untracked 
+| 309|0x0000000715d00000, 0x0000000715d00000, 0x0000000715e00000|  0%| F|  |TAMS 0x0000000715d00000, 0x0000000715d00000| Untracked 
+| 310|0x0000000715e00000, 0x0000000715e00000, 0x0000000715f00000|  0%| F|  |TAMS 0x0000000715e00000, 0x0000000715e00000| Untracked 
+| 311|0x0000000715f00000, 0x0000000715f00000, 0x0000000716000000|  0%| F|  |TAMS 0x0000000715f00000, 0x0000000715f00000| Untracked 
+| 312|0x0000000716000000, 0x0000000716000000, 0x0000000716100000|  0%| F|  |TAMS 0x0000000716000000, 0x0000000716000000| Untracked 
+| 313|0x0000000716100000, 0x0000000716100000, 0x0000000716200000|  0%| F|  |TAMS 0x0000000716100000, 0x0000000716100000| Untracked 
+| 314|0x0000000716200000, 0x0000000716200000, 0x0000000716300000|  0%| F|  |TAMS 0x0000000716200000, 0x0000000716200000| Untracked 
+| 315|0x0000000716300000, 0x0000000716300000, 0x0000000716400000|  0%| F|  |TAMS 0x0000000716300000, 0x0000000716300000| Untracked 
+| 316|0x0000000716400000, 0x0000000716400000, 0x0000000716500000|  0%| F|  |TAMS 0x0000000716400000, 0x0000000716400000| Untracked 
+| 317|0x0000000716500000, 0x0000000716500000, 0x0000000716600000|  0%| F|  |TAMS 0x0000000716500000, 0x0000000716500000| Untracked 
+| 318|0x0000000716600000, 0x0000000716600000, 0x0000000716700000|  0%| F|  |TAMS 0x0000000716600000, 0x0000000716600000| Untracked 
+| 319|0x0000000716700000, 0x0000000716700000, 0x0000000716800000|  0%| F|  |TAMS 0x0000000716700000, 0x0000000716700000| Untracked 
+| 320|0x0000000716800000, 0x0000000716800000, 0x0000000716900000|  0%| F|  |TAMS 0x0000000716800000, 0x0000000716800000| Untracked 
+| 321|0x0000000716900000, 0x0000000716900000, 0x0000000716a00000|  0%| F|  |TAMS 0x0000000716900000, 0x0000000716900000| Untracked 
+| 322|0x0000000716a00000, 0x0000000716a00000, 0x0000000716b00000|  0%| F|  |TAMS 0x0000000716a00000, 0x0000000716a00000| Untracked 
+| 323|0x0000000716b00000, 0x0000000716b00000, 0x0000000716c00000|  0%| F|  |TAMS 0x0000000716b00000, 0x0000000716b00000| Untracked 
+| 324|0x0000000716c00000, 0x0000000716c00000, 0x0000000716d00000|  0%| F|  |TAMS 0x0000000716c00000, 0x0000000716c00000| Untracked 
+| 325|0x0000000716d00000, 0x0000000716d00000, 0x0000000716e00000|  0%| F|  |TAMS 0x0000000716d00000, 0x0000000716d00000| Untracked 
+| 326|0x0000000716e00000, 0x0000000716e00000, 0x0000000716f00000|  0%| F|  |TAMS 0x0000000716e00000, 0x0000000716e00000| Untracked 
+| 327|0x0000000716f00000, 0x0000000716f00000, 0x0000000717000000|  0%| F|  |TAMS 0x0000000716f00000, 0x0000000716f00000| Untracked 
+| 328|0x0000000717000000, 0x0000000717000000, 0x0000000717100000|  0%| F|  |TAMS 0x0000000717000000, 0x0000000717000000| Untracked 
+| 329|0x0000000717100000, 0x0000000717100000, 0x0000000717200000|  0%| F|  |TAMS 0x0000000717100000, 0x0000000717100000| Untracked 
+| 330|0x0000000717200000, 0x0000000717200000, 0x0000000717300000|  0%| F|  |TAMS 0x0000000717200000, 0x0000000717200000| Untracked 
+| 331|0x0000000717300000, 0x0000000717300000, 0x0000000717400000|  0%| F|  |TAMS 0x0000000717300000, 0x0000000717300000| Untracked 
+| 332|0x0000000717400000, 0x0000000717400000, 0x0000000717500000|  0%| F|  |TAMS 0x0000000717400000, 0x0000000717400000| Untracked 
+| 333|0x0000000717500000, 0x0000000717500000, 0x0000000717600000|  0%| F|  |TAMS 0x0000000717500000, 0x0000000717500000| Untracked 
+| 334|0x0000000717600000, 0x0000000717600000, 0x0000000717700000|  0%| F|  |TAMS 0x0000000717600000, 0x0000000717600000| Untracked 
+| 335|0x0000000717700000, 0x0000000717700000, 0x0000000717800000|  0%| F|  |TAMS 0x0000000717700000, 0x0000000717700000| Untracked 
+| 336|0x0000000717800000, 0x0000000717800000, 0x0000000717900000|  0%| F|  |TAMS 0x0000000717800000, 0x0000000717800000| Untracked 
+| 337|0x0000000717900000, 0x0000000717900000, 0x0000000717a00000|  0%| F|  |TAMS 0x0000000717900000, 0x0000000717900000| Untracked 
+| 338|0x0000000717a00000, 0x0000000717a00000, 0x0000000717b00000|  0%| F|  |TAMS 0x0000000717a00000, 0x0000000717a00000| Untracked 
+| 339|0x0000000717b00000, 0x0000000717b00000, 0x0000000717c00000|  0%| F|  |TAMS 0x0000000717b00000, 0x0000000717b00000| Untracked 
+| 340|0x0000000717c00000, 0x0000000717c00000, 0x0000000717d00000|  0%| F|  |TAMS 0x0000000717c00000, 0x0000000717c00000| Untracked 
+| 341|0x0000000717d00000, 0x0000000717d00000, 0x0000000717e00000|  0%| F|  |TAMS 0x0000000717d00000, 0x0000000717d00000| Untracked 
+| 342|0x0000000717e00000, 0x0000000717e00000, 0x0000000717f00000|  0%| F|  |TAMS 0x0000000717e00000, 0x0000000717e00000| Untracked 
+| 343|0x0000000717f00000, 0x0000000717f00000, 0x0000000718000000|  0%| F|  |TAMS 0x0000000717f00000, 0x0000000717f00000| Untracked 
+| 344|0x0000000718000000, 0x0000000718000000, 0x0000000718100000|  0%| F|  |TAMS 0x0000000718000000, 0x0000000718000000| Untracked 
+| 345|0x0000000718100000, 0x0000000718100000, 0x0000000718200000|  0%| F|  |TAMS 0x0000000718100000, 0x0000000718100000| Untracked 
+| 346|0x0000000718200000, 0x0000000718200000, 0x0000000718300000|  0%| F|  |TAMS 0x0000000718200000, 0x0000000718200000| Untracked 
+| 347|0x0000000718300000, 0x0000000718300000, 0x0000000718400000|  0%| F|  |TAMS 0x0000000718300000, 0x0000000718300000| Untracked 
+| 348|0x0000000718400000, 0x0000000718400000, 0x0000000718500000|  0%| F|  |TAMS 0x0000000718400000, 0x0000000718400000| Untracked 
+| 349|0x0000000718500000, 0x0000000718500000, 0x0000000718600000|  0%| F|  |TAMS 0x0000000718500000, 0x0000000718500000| Untracked 
+| 350|0x0000000718600000, 0x0000000718600000, 0x0000000718700000|  0%| F|  |TAMS 0x0000000718600000, 0x0000000718600000| Untracked 
+| 351|0x0000000718700000, 0x0000000718700000, 0x0000000718800000|  0%| F|  |TAMS 0x0000000718700000, 0x0000000718700000| Untracked 
+| 352|0x0000000718800000, 0x0000000718800000, 0x0000000718900000|  0%| F|  |TAMS 0x0000000718800000, 0x0000000718800000| Untracked 
+| 353|0x0000000718900000, 0x0000000718900000, 0x0000000718a00000|  0%| F|  |TAMS 0x0000000718900000, 0x0000000718900000| Untracked 
+| 354|0x0000000718a00000, 0x0000000718a00000, 0x0000000718b00000|  0%| F|  |TAMS 0x0000000718a00000, 0x0000000718a00000| Untracked 
+| 355|0x0000000718b00000, 0x0000000718b00000, 0x0000000718c00000|  0%| F|  |TAMS 0x0000000718b00000, 0x0000000718b00000| Untracked 
+| 356|0x0000000718c00000, 0x0000000718c00000, 0x0000000718d00000|  0%| F|  |TAMS 0x0000000718c00000, 0x0000000718c00000| Untracked 
+| 357|0x0000000718d00000, 0x0000000718d00000, 0x0000000718e00000|  0%| F|  |TAMS 0x0000000718d00000, 0x0000000718d00000| Untracked 
+| 358|0x0000000718e00000, 0x0000000718e00000, 0x0000000718f00000|  0%| F|  |TAMS 0x0000000718e00000, 0x0000000718e00000| Untracked 
+| 359|0x0000000718f00000, 0x0000000718f00000, 0x0000000719000000|  0%| F|  |TAMS 0x0000000718f00000, 0x0000000718f00000| Untracked 
+| 360|0x0000000719000000, 0x0000000719000000, 0x0000000719100000|  0%| F|  |TAMS 0x0000000719000000, 0x0000000719000000| Untracked 
+| 361|0x0000000719100000, 0x0000000719100000, 0x0000000719200000|  0%| F|  |TAMS 0x0000000719100000, 0x0000000719100000| Untracked 
+| 362|0x0000000719200000, 0x0000000719200000, 0x0000000719300000|  0%| F|  |TAMS 0x0000000719200000, 0x0000000719200000| Untracked 
+| 363|0x0000000719300000, 0x0000000719300000, 0x0000000719400000|  0%| F|  |TAMS 0x0000000719300000, 0x0000000719300000| Untracked 
+| 364|0x0000000719400000, 0x0000000719400000, 0x0000000719500000|  0%| F|  |TAMS 0x0000000719400000, 0x0000000719400000| Untracked 
+| 365|0x0000000719500000, 0x0000000719500000, 0x0000000719600000|  0%| F|  |TAMS 0x0000000719500000, 0x0000000719500000| Untracked 
+
+Card table byte_map: [0x0000015673c50000,0x0000015674440000] _byte_map_base: 0x000001567043c000
+
+Marking Bits (Prev, Next): (CMBitMap*) 0x000001566ae042d0, (CMBitMap*) 0x000001566ae04298
+ Prev Bits: [0x0000015678b90000, 0x000001567caf0000)
+ Next Bits: [0x0000015674c30000, 0x0000015678b90000)
+
+Polling page: 0x000001566a580000
+
+Metaspace:
+
+Usage:
+  Non-class:     79.04 MB capacity,    77.60 MB ( 98%) used,     1.16 MB (  1%) free+waste,   290.69 KB ( <1%) overhead. 
+      Class:     11.85 MB capacity,    10.95 MB ( 92%) used,   779.35 KB (  6%) free+waste,   138.56 KB (  1%) overhead. 
+       Both:     90.89 MB capacity,    88.55 MB ( 97%) used,     1.92 MB (  2%) free+waste,   429.25 KB ( <1%) overhead. 
+
+Virtual space:
+  Non-class space:       88.00 MB reserved,      79.05 MB ( 90%) committed 
+      Class space:        1.00 GB reserved,      11.88 MB (  1%) committed 
+             Both:        1.09 GB reserved,      90.92 MB (  8%) committed 
+
+Chunk freelists:
+   Non-Class:  384 bytes
+       Class:  0 bytes
+        Both:  384 bytes
+
+CodeHeap 'non-profiled nmethods': size=238336Kb used=17556Kb max_used=17556Kb free=220779Kb
+ bounds [0x0000015600740000, 0x0000015601870000, 0x000001560f000000]
+CodeHeap 'non-nmethods': size=7424Kb used=1364Kb max_used=1364Kb free=6060Kb
+ bounds [0x0000015600000000, 0x0000015600270000, 0x0000015600740000]
+ total_blobs=10968 nmethods=10127 adapters=684
+ compilation: enabled
+              stopped_count=0, restarted_count=0
+ full_count=0
+
+Compilation events (10 events):
+Event: 34.219 Thread 0x000001560f136000 10190       1       ch.qos.logback.classic.pattern.ExtendedThrowableProxyConverter::extraData (6 bytes)
+Event: 34.219 Thread 0x000001560f136000 nmethod 10190 0x0000015601864710 code [0x00000156018648c0, 0x0000015601864a10]
+Event: 34.219 Thread 0x000001560f136000 10191       1       ch.qos.logback.classic.spi.ThrowableProxyUtil::subjoinPackagingData (64 bytes)
+Event: 34.220 Thread 0x000001560f136000 nmethod 10191 0x0000015601864a90 code [0x0000015601864cc0, 0x0000015601864f50]
+Event: 34.220 Thread 0x000001560f136000 10192       1       io.netty.channel.AbstractChannel::access$500 (5 bytes)
+Event: 34.220 Thread 0x000001560f136000 nmethod 10192 0x0000015601865190 code [0x0000015601865340, 0x0000015601865438]
+Event: 34.220 Thread 0x000001560f136000 10193       1       sun.nio.ch.SocketChannelImpl::getFDVal (5 bytes)
+Event: 34.220 Thread 0x000001560f136000 nmethod 10193 0x0000015601865510 code [0x00000156018656c0, 0x00000156018657d8]
+Event: 34.432 Thread 0x000001560f136000 10194       1       io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueue::poll (108 bytes)
+Event: 34.433 Thread 0x000001560f136000 nmethod 10194 0x0000015601865890 code [0x0000015601865a60, 0x0000015601865da0]
+
+GC Heap History (10 events):
+Event: 24.223 GC heap before
+{Heap before GC invocations=22 (full 0):
+ garbage-first heap   total 312320K, used 239864K [0x0000000702800000, 0x0000000800000000)
+  region size 1024K, 183 young (187392K), 13 survivors (13312K)
+ Metaspace       used 72200K, capacity 74131K, committed 74288K, reserved 1114112K
+  class space    used 9119K, capacity 9866K, committed 9984K, reserved 1048576K
+}
+Event: 24.242 GC heap after
+{Heap after GC invocations=23 (full 0):
+ garbage-first heap   total 374784K, used 67728K [0x0000000702800000, 0x0000000800000000)
+  region size 1024K, 15 young (15360K), 15 survivors (15360K)
+ Metaspace       used 72200K, capacity 74131K, committed 74288K, reserved 1114112K
+  class space    used 9119K, capacity 9866K, committed 9984K, reserved 1048576K
+}
+Event: 25.400 GC heap before
+{Heap before GC invocations=23 (full 0):
+ garbage-first heap   total 374784K, used 276624K [0x0000000702800000, 0x0000000800000000)
+  region size 1024K, 219 young (224256K), 15 survivors (15360K)
+ Metaspace       used 74593K, capacity 76556K, committed 76848K, reserved 1116160K
+  class space    used 9389K, capacity 10164K, committed 10240K, reserved 1048576K
+}
+Event: 25.415 GC heap after
+{Heap after GC invocations=24 (full 0):
+ garbage-first heap   total 374784K, used 72139K [0x0000000702800000, 0x0000000800000000)
+  region size 1024K, 19 young (19456K), 19 survivors (19456K)
+ Metaspace       used 74593K, capacity 76556K, committed 76848K, reserved 1116160K
+  class space    used 9389K, capacity 10164K, committed 10240K, reserved 1048576K
+}
+Event: 28.270 GC heap before
+{Heap before GC invocations=24 (full 0):
+ garbage-first heap   total 374784K, used 275915K [0x0000000702800000, 0x0000000800000000)
+  region size 1024K, 219 young (224256K), 19 survivors (19456K)
+ Metaspace       used 80212K, capacity 82261K, committed 82480K, reserved 1122304K
+  class space    used 9908K, capacity 10722K, committed 10752K, reserved 1048576K
+}
+Event: 28.289 GC heap after
+{Heap after GC invocations=25 (full 0):
+ garbage-first heap   total 374784K, used 71975K [0x0000000702800000, 0x0000000800000000)
+  region size 1024K, 12 young (12288K), 12 survivors (12288K)
+ Metaspace       used 80212K, capacity 82261K, committed 82480K, reserved 1122304K
+  class space    used 9908K, capacity 10722K, committed 10752K, reserved 1048576K
+}
+Event: 29.619 GC heap before
+{Heap before GC invocations=25 (full 0):
+ garbage-first heap   total 374784K, used 282919K [0x0000000702800000, 0x0000000800000000)
+  region size 1024K, 219 young (224256K), 12 survivors (12288K)
+ Metaspace       used 86127K, capacity 88501K, committed 88752K, reserved 1126400K
+  class space    used 10641K, capacity 11567K, committed 11648K, reserved 1048576K
+}
+Event: 29.630 GC heap after
+{Heap after GC invocations=26 (full 0):
+ garbage-first heap   total 374784K, used 74237K [0x0000000702800000, 0x0000000800000000)
+  region size 1024K, 14 young (14336K), 14 survivors (14336K)
+ Metaspace       used 86127K, capacity 88501K, committed 88752K, reserved 1126400K
+  class space    used 10641K, capacity 11567K, committed 11648K, reserved 1048576K
+}
+Event: 34.493 GC heap before
+{Heap before GC invocations=26 (full 0):
+ garbage-first heap   total 374784K, used 252413K [0x0000000702800000, 0x0000000800000000)
+  region size 1024K, 190 young (194560K), 14 survivors (14336K)
+ Metaspace       used 90674K, capacity 93071K, committed 93104K, reserved 1136640K
+  class space    used 11212K, capacity 12130K, committed 12160K, reserved 1048576K
+}
+Event: 34.522 GC heap after
+{Heap after GC invocations=27 (full 0):
+ garbage-first heap   total 374784K, used 81358K [0x0000000702800000, 0x0000000800000000)
+  region size 1024K, 21 young (21504K), 21 survivors (21504K)
+ Metaspace       used 90674K, capacity 93071K, committed 93104K, reserved 1136640K
+  class space    used 11212K, capacity 12130K, committed 12160K, reserved 1048576K
+}
+
+Deoptimization events (0 events):
+No events
+
+Classes redefined (0 events):
+No events
+
+Internal exceptions (10 events):
+Event: 28.967 Thread 0x000001566ada4800 Exception <a 'java/lang/reflect/InvocationTargetException'{0x0000000713ef22e0}> (0x0000000713ef22e0) thrown at [t:/workspace/open/src/hotspot/share/runtime/reflection.cpp, line 1242]
+Event: 28.968 Thread 0x000001566ada4800 Exception <a 'java/lang/reflect/InvocationTargetException'{0x0000000713d038a8}> (0x0000000713d038a8) thrown at [t:/workspace/open/src/hotspot/share/runtime/reflection.cpp, line 1242]
+Event: 28.983 Thread 0x000001566ada4800 Exception <a 'java/lang/reflect/InvocationTargetException'{0x0000000713c50378}> (0x0000000713c50378) thrown at [t:/workspace/open/src/hotspot/share/runtime/reflection.cpp, line 1242]
+Event: 28.984 Thread 0x000001566ada4800 Exception <a 'java/lang/reflect/InvocationTargetException'{0x0000000713c5d918}> (0x0000000713c5d918) thrown at [t:/workspace/open/src/hotspot/share/runtime/reflection.cpp, line 1242]
+Event: 28.986 Thread 0x000001566ada4800 Exception <a 'java/lang/reflect/InvocationTargetException'{0x0000000713c6c750}> (0x0000000713c6c750) thrown at [t:/workspace/open/src/hotspot/share/runtime/reflection.cpp, line 1242]
+Event: 30.177 Thread 0x000001566ada4800 Exception <a 'java/io/FileNotFoundException'{0x00000007141dc9a8}> (0x00000007141dc9a8) thrown at [t:/workspace/open/src/hotspot/share/prims/jni.cpp, line 615]
+Event: 32.462 Thread 0x000001566ada4800 Exception <a 'java/io/FileNotFoundException'{0x0000000713efd330}> (0x0000000713efd330) thrown at [t:/workspace/open/src/hotspot/share/prims/jni.cpp, line 615]
+Event: 34.217 Thread 0x000001561479d800 Exception <a 'java/lang/OutOfMemoryError'{0x000000070f13d160}: unable to create native thread: possibly out of memory or process/resource limits reached> (0x000000070f13d160) thrown at [t:/workspace/open/src/hotspot/share/prims/jvm.cpp, line 2914]
+Event: 34.218 Thread 0x000001561479d800 Exception <a 'java/lang/OutOfMemoryError'{0x000000070f15f0a0}: unable to create native thread: possibly out of memory or process/resource limits reached> (0x000000070f15f0a0) thrown at [t:/workspace/open/src/hotspot/share/prims/jvm.cpp, line 2914]
+Event: 34.492 Thread 0x000001560fbf6800 Exception <a 'java/lang/OutOfMemoryError'{0x000000070e601ed0}: unable to create native thread: possibly out of memory or process/resource limits reached> (0x000000070e601ed0) thrown at [t:/workspace/open/src/hotspot/share/prims/jvm.cpp, line 2914]
+
+Events (10 events):
+Event: 34.179 loading class org/redisson/client/ChannelName done
+Event: 34.179 loading class org/redisson/client/RedisPubSubConnection
+Event: 34.179 loading class org/redisson/client/RedisPubSubConnection done
+Event: 34.179 Executing VM operation: BulkRevokeBias
+Event: 34.180 Executing VM operation: BulkRevokeBias done
+Event: 34.182 loading class io/netty/util/concurrent/DefaultPromise$1
+Event: 34.182 loading class io/netty/util/concurrent/DefaultPromise$1 done
+Event: 34.492 loading class java/rmi/ServerError
+Event: 34.493 loading class java/rmi/ServerError done
+Event: 34.493 Executing VM operation: CollectForMetadataAllocation
+
+
+Dynamic libraries:
+0x00007ff634210000 - 0x00007ff634257000 	E:\development_tools\jdk11\bin\java.exe
+0x00007ffcc2a20000 - 0x00007ffcc2c29000 	C:\WINDOWS\SYSTEM32\ntdll.dll
+0x00007ffcc1fd0000 - 0x00007ffcc208e000 	C:\WINDOWS\System32\KERNEL32.DLL
+0x00007ffcbfef0000 - 0x00007ffcc026c000 	C:\WINDOWS\System32\KERNELBASE.dll
+0x00007ffcc2220000 - 0x00007ffcc22ce000 	C:\WINDOWS\System32\ADVAPI32.dll
+0x00007ffcc08b0000 - 0x00007ffcc0953000 	C:\WINDOWS\System32\msvcrt.dll
+0x00007ffcc1330000 - 0x00007ffcc13ce000 	C:\WINDOWS\System32\sechost.dll
+0x00007ffcc15f0000 - 0x00007ffcc1710000 	C:\WINDOWS\System32\RPCRT4.dll
+0x00007ffcc13d0000 - 0x00007ffcc157d000 	C:\WINDOWS\System32\USER32.dll
+0x00007ffcc04f0000 - 0x00007ffcc0516000 	C:\WINDOWS\System32\win32u.dll
+0x00007ffcc1e40000 - 0x00007ffcc1e69000 	C:\WINDOWS\System32\GDI32.dll
+0x00007ffcc0780000 - 0x00007ffcc0898000 	C:\WINDOWS\System32\gdi32full.dll
+0x00007ffcc0270000 - 0x00007ffcc030d000 	C:\WINDOWS\System32\msvcp_win.dll
+0x00007ffcc0310000 - 0x00007ffcc0421000 	C:\WINDOWS\System32\ucrtbase.dll
+0x00007ffcabc70000 - 0x00007ffcabf15000 	C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.22000.120_none_9d947278b86cc467\COMCTL32.dll
+0x00007ffcb92e0000 - 0x00007ffcb92ea000 	C:\WINDOWS\SYSTEM32\VERSION.dll
+0x00007ffcc2090000 - 0x00007ffcc20c2000 	C:\WINDOWS\System32\IMM32.DLL
+0x00007ffcac5a0000 - 0x00007ffcac5b6000 	E:\development_tools\jdk11\bin\vcruntime140.dll
+0x00007ffc998a0000 - 0x00007ffc9994a000 	E:\development_tools\jdk11\bin\msvcp140.dll
+0x00007ffc4ec40000 - 0x00007ffc4f769000 	E:\development_tools\jdk11\bin\server\jvm.dll
+0x00007ffcc1150000 - 0x00007ffcc1158000 	C:\WINDOWS\System32\PSAPI.DLL
+0x00007ffca50e0000 - 0x00007ffca50e9000 	C:\WINDOWS\SYSTEM32\WSOCK32.dll
+0x00007ffcbb020000 - 0x00007ffcbb053000 	C:\WINDOWS\SYSTEM32\WINMM.dll
+0x00007ffcc1580000 - 0x00007ffcc15ef000 	C:\WINDOWS\System32\WS2_32.dll
+0x00007ffcbf060000 - 0x00007ffcbf078000 	C:\WINDOWS\SYSTEM32\kernel.appcore.dll
+0x00007ffca9010000 - 0x00007ffca9021000 	E:\development_tools\jdk11\bin\verify.dll
+0x00007ffcb05f0000 - 0x00007ffcb0811000 	C:\WINDOWS\SYSTEM32\DBGHELP.DLL
+0x00007ffca78e0000 - 0x00007ffca7911000 	C:\WINDOWS\SYSTEM32\dbgcore.DLL
+0x00007ffcc0590000 - 0x00007ffcc060f000 	C:\WINDOWS\System32\bcryptPrimitives.dll
+0x00007ffc96680000 - 0x00007ffc966a9000 	E:\development_tools\jdk11\bin\java.dll
+0x00007ffcb67c0000 - 0x00007ffcb67ef000 	E:\development_tools\jdk11\bin\instrument.dll
+0x00007ffc97830000 - 0x00007ffc97846000 	E:\development_tools\jdk11\bin\zip.dll
+0x00007ffcb47c0000 - 0x00007ffcb47ca000 	E:\development_tools\jdk11\bin\jimage.dll
+0x00007ffcc0960000 - 0x00007ffcc1125000 	C:\WINDOWS\System32\SHELL32.dll
+0x00007ffcbdff0000 - 0x00007ffcbe855000 	C:\WINDOWS\SYSTEM32\windows.storage.dll
+0x00007ffcc2340000 - 0x00007ffcc26b8000 	C:\WINDOWS\System32\combase.dll
+0x00007ffcbde80000 - 0x00007ffcbdfe6000 	C:\WINDOWS\SYSTEM32\wintypes.dll
+0x00007ffcc1720000 - 0x00007ffcc180a000 	C:\WINDOWS\System32\SHCORE.dll
+0x00007ffcc22d0000 - 0x00007ffcc232d000 	C:\WINDOWS\System32\shlwapi.dll
+0x00007ffcbfe20000 - 0x00007ffcbfe41000 	C:\WINDOWS\SYSTEM32\profapi.dll
+0x00007ffc96660000 - 0x00007ffc96679000 	E:\development_tools\jdk11\bin\net.dll
+0x00007ffcbb120000 - 0x00007ffcbb234000 	C:\WINDOWS\SYSTEM32\WINHTTP.dll
+0x00007ffcbf500000 - 0x00007ffcbf567000 	C:\WINDOWS\system32\mswsock.dll
+0x00007ffc8c250000 - 0x00007ffc8c263000 	E:\development_tools\jdk11\bin\nio.dll
+0x00007ffcbbb70000 - 0x00007ffcbbb8a000 	E:\development_tools\idea\IntelliJ IDEA 2020.1.3\bin\breakgen64.dll
+0x00007ffcbebc0000 - 0x00007ffcbeca8000 	C:\WINDOWS\SYSTEM32\DNSAPI.dll
+0x00007ffcbeb90000 - 0x00007ffcbebbd000 	C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL
+0x00007ffcc1710000 - 0x00007ffcc1719000 	C:\WINDOWS\System32\NSI.dll
+0x00007ffcb8c80000 - 0x00007ffcb8c8a000 	C:\Windows\System32\rasadhlp.dll
+0x00007ffcb9c80000 - 0x00007ffcb9d01000 	C:\WINDOWS\System32\fwpuclnt.dll
+0x00007ffcac590000 - 0x00007ffcac599000 	E:\development_tools\jdk11\bin\management.dll
+0x00007ffca9000000 - 0x00007ffca900c000 	E:\development_tools\jdk11\bin\management_ext.dll
+0x00007ffcbf750000 - 0x00007ffcbf768000 	C:\WINDOWS\SYSTEM32\CRYPTSP.dll
+0x00007ffcbefc0000 - 0x00007ffcbeff5000 	C:\WINDOWS\system32\rsaenh.dll
+0x00007ffcbf5f0000 - 0x00007ffcbf619000 	C:\WINDOWS\SYSTEM32\USERENV.dll
+0x00007ffcbf8d0000 - 0x00007ffcbf8f7000 	C:\WINDOWS\SYSTEM32\bcrypt.dll
+0x00007ffcbf740000 - 0x00007ffcbf74c000 	C:\WINDOWS\SYSTEM32\CRYPTBASE.dll
+0x00007ffcba8f0000 - 0x00007ffcba909000 	C:\WINDOWS\SYSTEM32\dhcpcsvc6.DLL
+0x00007ffcbba50000 - 0x00007ffcbba6e000 	C:\WINDOWS\SYSTEM32\dhcpcsvc.DLL
+0x00007ffca5cc0000 - 0x00007ffca5cd7000 	C:\WINDOWS\system32\napinsp.dll
+0x00007ffca5c90000 - 0x00007ffca5cab000 	C:\WINDOWS\system32\pnrpnsp.dll
+0x00007ffca5bb0000 - 0x00007ffca5bc2000 	C:\WINDOWS\System32\winrnr.dll
+0x00007ffca5830000 - 0x00007ffca5845000 	C:\WINDOWS\system32\wshbth.dll
+0x00007ffca57d0000 - 0x00007ffca57ef000 	C:\WINDOWS\system32\nlansp_c.dll
+0x00007ffcbd280000 - 0x00007ffcbd28d000 	E:\development_tools\jdk11\bin\sunmscapi.dll
+0x00007ffcc0610000 - 0x00007ffcc0772000 	C:\WINDOWS\System32\CRYPT32.dll
+0x00007ffcbf8a0000 - 0x00007ffcbf8c8000 	C:\WINDOWS\SYSTEM32\ncrypt.dll
+0x00007ffcbf860000 - 0x00007ffcbf897000 	C:\WINDOWS\SYSTEM32\NTASN1.dll
+0x00007ffcb1320000 - 0x00007ffcb1347000 	E:\development_tools\jdk11\bin\sunec.dll
+
+dbghelp: loaded successfully - version: 4.0.5 - missing functions: none
+symbol engine: initialized successfully - sym options: 0x614 - pdb path: .;E:\development_tools\jdk11\bin;C:\WINDOWS\SYSTEM32;C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.22000.120_none_9d947278b86cc467;E:\development_tools\jdk11\bin\server;E:\development_tools\idea\IntelliJ IDEA 2020.1.3\bin
+
+VM Arguments:
+jvm_args: -XX:TieredStopAtLevel=1 -Xverify:none -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true -javaagent:E:\development_tools\idea\IntelliJ IDEA 2020.1.3\lib\idea_rt.jar=1748:E:\development_tools\idea\IntelliJ IDEA 2020.1.3\bin -Dfile.encoding=UTF-8 
+java_command: com.izouma.nineth.Application
+java_class_path (initial): C:\Users\13077\AppData\Local\Temp\classpath1319412024.jar
+Launcher Type: SUN_STANDARD
+
+[Global flags]
+     bool BytecodeVerificationLocal                = false                                     {product} {command line}
+     bool BytecodeVerificationRemote               = false                                     {product} {command line}
+     intx CICompilerCount                          = 4                                         {product} {ergonomic}
+     uint ConcGCThreads                            = 2                                         {product} {ergonomic}
+     uint G1ConcRefinementThreads                  = 8                                         {product} {ergonomic}
+   size_t G1HeapRegionSize                         = 1048576                                   {product} {ergonomic}
+    uintx GCDrainStackTargetSize                   = 64                                        {product} {ergonomic}
+   size_t InitialHeapSize                          = 266338304                                 {product} {ergonomic}
+     bool ManagementServer                         = true                                      {product} {command line}
+   size_t MarkStackSize                            = 4194304                                   {product} {ergonomic}
+   size_t MaxHeapSize                              = 4253024256                                {product} {ergonomic}
+   size_t MaxNewSize                               = 2551185408                                {product} {ergonomic}
+   size_t MinHeapDeltaBytes                        = 1048576                                   {product} {ergonomic}
+    uintx NonNMethodCodeHeapSize                   = 7549744                                {pd product} {ergonomic}
+    uintx NonProfiledCodeHeapSize                  = 244108496                              {pd product} {ergonomic}
+    uintx ProfiledCodeHeapSize                     = 0                                      {pd product} {ergonomic}
+    uintx ReservedCodeCacheSize                    = 251658240                              {pd product} {ergonomic}
+     bool SegmentedCodeCache                       = true                                      {product} {ergonomic}
+     intx TieredStopAtLevel                        = 1                                         {product} {command line}
+     bool UseCompressedClassPointers               = true                                 {lp64_product} {ergonomic}
+     bool UseCompressedOops                        = true                                 {lp64_product} {ergonomic}
+     bool UseG1GC                                  = true                                      {product} {ergonomic}
+     bool UseLargePagesIndividualAllocation        = false                                  {pd product} {ergonomic}
+
+Logging:
+Log output configuration:
+ #0: stdout all=warning uptime,level,tags
+ #1: stderr all=off uptime,level,tags
+
+Environment Variables:
+JAVA_HOME=E:\development_tools\Jdk
+CLASSPATH=.;E:\development_tools\Jdk\lib;E:\development_tools\Jdk\lib\tools.jar
+PATH=C:\Program Files (x86)\Java\jdk1.8.0_291\bin;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\MySQL\MySQL Server 5.7\bin;C:\Program Files\dotnet\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\Program Files (x86)\dotnet\;E:\development_tools\Jdk\bin;E:\development_tools\mysql-5.7.24-winx64\bin;E:\development_tools\apache-maven-3.6.1\bin;E:\development_tools\apache-maven-3.6.1\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;E:\development_tools\Git\cmd;E:\development_tools\Redis\;E:\development_tools\rabbitmq\erl-24.2\bin;E:\development_tools\GIT_TOrtoise\bin;C:\ProgramData\chocolatey\bin;E:\development_tools\Node.js\node_modules;E:\development_tools\nvm;E:\development_tools\Node.js;E:\development_tools\jdk11\bin;C:\Users\13077\AppData\Local\Microsoft\WindowsApps;C:\Users\13077\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\13077\.dotnet\tools;C:\Users\13077\AppData\Local\GitHubDesktop\bin;E:\development_tools\Node.js\node_global;E:\development_tools\nvm;E:\development_tools\Node.js;E:\nodejs;E:\nodejs\node_global\node_modules;E:\nodejs\node_global;
+USERNAME=13077
+OS=Windows_NT
+PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 158 Stepping 10, GenuineIntel
+
+
+
+---------------  S Y S T E M  ---------------
+
+OS: Windows 10 , 64 bit Build 22000 (10.0.22000.1516)
+
+CPU:total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 158 stepping 10, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, 3dnowpref, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2, adx, fma
+
+Memory: 4k page, system-wide physical 16222M (552M free)
+TotalPageFile size 31502M (AvailPageFile size 0M)
+current process WorkingSet (physical memory assigned to process): 578M, peak: 578M
+current process commit charge ("private bytes"): 675M, peak: 677M
+
+vm_info: Java HotSpot(TM) 64-Bit Server VM (11.0.6+8-LTS) for windows-amd64 JRE (11.0.6+8-LTS), built on Dec 11 2019 09:17:57 by "mach5one" with MS VC++ 15.5 (VS2017)
+
+END.

+ 3 - 0
src/main/java/com/izouma/nineth/config/MetaConstants.java

@@ -23,4 +23,7 @@ public interface MetaConstants {
     String REDIS_STOCK_PREFIX = "stock:";
 
     Long META_GOLD_RECEIVED_RANK_ID = 1L;
+
+    int META_GOLD_RECEIVED_RANK_LIMIT_NUM = 50;
+
 }

+ 34 - 30
src/main/java/com/izouma/nineth/config/RiceScheduledTasksConfig.java

@@ -21,42 +21,46 @@ public class RiceScheduledTasksConfig {
     @Autowired
     private RiceInviteRepo riceInviteRepo;
 
+
+
+//    //@Scheduled(cron = "0 * * * * ?")
 //    @Scheduled(cron = "0 0 0 * * ?")
-//    public void InviteExchangeCount() {
+//    public void resetExchangeCount() {
+//        List<Rice> riceList = riceRepo.findAll();
+//        for (Rice rice : riceList) {
+//            rice.setExchangeCount(0);
+//        }
+//        riceRepo.saveAll(riceList);
+//    }
+//
+//
+//    @Scheduled(cron = "0 0 0 * * ?")
+//    public void resetInviteCount() {
 //        List<Rice> riceList = riceRepo.findAll();
 //        for (Rice rice : riceList) {
 //            rice.setInviteCount(0);
 //        }
 //        riceRepo.saveAll(riceList);
 //    }
-
-    @Scheduled(cron = "0 0 0 * * ?")
-    public void resetExchangeCount() {
-        List<Rice> riceList = riceRepo.findAll();
-        for (Rice rice : riceList) {
-            rice.setExchangeCount(0);
-        }
-        riceRepo.saveAll(riceList);
-    }
-
-
-    // @Scheduled(cron = "0 * * * * ?")
-    @Scheduled(cron = "0 0 0 * * ?")
-    public void resetHelpCount() {
-        List<Rice> riceList = riceRepo.findAll();
-        for (Rice rice : riceList) {
-            rice.setHelpCount(0L);
-        }
-        riceRepo.saveAll(riceList);
-    }
-
-    @Scheduled(cron = "0 0 0 * * ?")
-    public void resetEarnPointsEveryDay() {
-        List<Rice> riceList = riceRepo.findAll();
-        for (Rice rice : riceList) {
-            rice.setEarnPointsEveryDay(0L);
-        }
-        riceRepo.saveAll(riceList);
-    }
+//
+//
+//
+//    @Scheduled(cron = "0 0 0 * * ?")
+//    public void resetHelpCount() {
+//        List<Rice> riceList = riceRepo.findAll();
+//        for (Rice rice : riceList) {
+//            rice.setHelpCount(0L);
+//        }
+//        riceRepo.saveAll(riceList);
+//    }
+//
+//    @Scheduled(cron = "0 0 0 * * ?")
+//    public void resetEarnPointsEveryDay() {
+//        List<Rice> riceList = riceRepo.findAll();
+//        for (Rice rice : riceList) {
+//            rice.setEarnPointsEveryDay(0L);
+//        }
+//        riceRepo.saveAll(riceList);
+//    }
 
 }

+ 4 - 0
src/main/java/com/izouma/nineth/domain/MetaStore.java

@@ -56,6 +56,10 @@ public class MetaStore extends BaseEntity {
     @Column(columnDefinition = "tinyint unsigned")
     private boolean onShelf;
 
+    @Transient
+    @ApiModelProperty("剩余可购买数量")
+    private int remainingPurchaseNum;
+
     @Transient
     private boolean canPurchase = true;
 

+ 42 - 0
src/main/java/com/izouma/nineth/domain/MetaUserFriend.java

@@ -0,0 +1,42 @@
+package com.izouma.nineth.domain;
+
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.Entity;
+import javax.persistence.Transient;
+import java.time.LocalDateTime;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Entity
+@ApiModel("元宇宙用户好友列表")
+public class MetaUserFriend extends BaseEntity {
+
+    @ApiModelProperty("用户id")
+    @ExcelProperty("用户id")
+    private Long userId;
+
+    @ApiModelProperty("好友id")
+    @ExcelProperty("好友id")
+    private Long friendId;
+
+    @ApiModelProperty("好友头像")
+    @Transient
+    private String friendAvatar;
+
+    @ApiModelProperty("好友昵称")
+    @Transient
+    private String friendNickname;
+
+    @ApiModelProperty("添加好友的时间")
+    @ExcelProperty("添加好友的时间")
+    private LocalDateTime addTime;
+
+}

+ 50 - 0
src/main/java/com/izouma/nineth/domain/MetaUserFriendApplyRecord.java

@@ -0,0 +1,50 @@
+package com.izouma.nineth.domain;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.izouma.nineth.enums.MetaUserFriendOperateType;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.Entity;
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
+import javax.persistence.Transient;
+import java.time.LocalDateTime;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Entity
+@ApiModel("元宇宙用户好友申请记录")
+public class MetaUserFriendApplyRecord extends BaseEntity {
+
+    @ApiModelProperty("用户id")
+    @ExcelProperty("用户id")
+    private Long userId;
+
+    @ApiModelProperty("申请时间")
+    @ExcelProperty("申请时间")
+    private LocalDateTime applyTime;
+
+    @ApiModelProperty("好友id")
+    @ExcelProperty("好友id")
+    private Long friendId;
+
+    @ApiModelProperty("备注信息")
+    @ExcelProperty("备注信息")
+    private String remark;
+
+    @ApiModelProperty("操作类型")
+    @ExcelProperty("操作类型")
+    @Enumerated(EnumType.STRING)
+    private MetaUserFriendOperateType operateType;
+
+    @Transient
+    private String userAvatar;
+
+    @Transient
+    private String userNickname;
+}

+ 43 - 0
src/main/java/com/izouma/nineth/domain/MetaUserFriendOperateRecord.java

@@ -0,0 +1,43 @@
+package com.izouma.nineth.domain;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.izouma.nineth.enums.MetaUserFriendOperateType;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.Entity;
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
+import java.time.LocalDateTime;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Entity
+@ApiModel("元宇宙用户好友操作记录")
+public class MetaUserFriendOperateRecord extends BaseEntity {
+
+    @ApiModelProperty("用户id")
+    @ExcelProperty("用户id")
+    private Long userId;
+
+    @ApiModelProperty("好友id")
+    @ExcelProperty("好友id")
+    private Long friendId;
+
+    @ApiModelProperty("备注信息")
+    @ExcelProperty("备注信息")
+    private String remark;
+
+    @ApiModelProperty("操作类型")
+    @ExcelProperty("操作类型")
+    @Enumerated(EnumType.STRING)
+    private MetaUserFriendOperateType operateType;
+
+    @ApiModelProperty("操作时间")
+    @ExcelProperty("操作时间")
+    private LocalDateTime operatingTime;
+}

+ 13 - 0
src/main/java/com/izouma/nineth/domain/Rice.java

@@ -88,6 +88,19 @@ public class Rice extends BaseEntity {
 
 
 
+    @ApiModelProperty("测试Long")
+    private Long testL =0L;
+
+    @ApiModelProperty("测试Long")
+    private int testI =0;
+
+
+
+
+
+    public Long getTestL() {
+        return testL == null ? 0L : testL;
+    }
 
 
     public Long getEarnPointsEveryDay() {

+ 17 - 3
src/main/java/com/izouma/nineth/domain/RiceOperationRecord.java

@@ -8,6 +8,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
+import org.hibernate.annotations.ColumnDefault;
 
 import javax.persistence.Entity;
 import javax.persistence.EnumType;
@@ -28,11 +29,24 @@ public class RiceOperationRecord extends BaseEntity {
     private RiceOperationType type;
 
     @ApiModelProperty("数量")
-    private Long amount;
+    @ColumnDefault("0")
+    private Long amount=0L;
 
     @ApiModelProperty("操作前的数量")
-    private Long beforeAmount;
+    @ColumnDefault("0")
+    private Long beforeAmount=0L;
 
     @ApiModelProperty("操作后的数量")
-    private Long afterAmount;
+    @ColumnDefault("0")
+    private Long afterAmount=0L;
+
+    public Long getAfterAmount() {
+        return afterAmount == null ? 0L : afterAmount;
+    }
+    public Long getBeforeAmount() {
+        return beforeAmount == null ? 0L : beforeAmount;
+    }
+    public Long getAmount() {
+        return amount == null ? 0L : amount;
+    }
 }

+ 18 - 0
src/main/java/com/izouma/nineth/dto/MetaUserFriendAndApplyDTO.java

@@ -0,0 +1,18 @@
+package com.izouma.nineth.dto;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class MetaUserFriendAndApplyDTO {
+
+    private List<MetaUserFriendDTO> metaUserFriendDTOS;
+
+    private List<MetaUserFriendApplyDTO> metaUserFriendApplyDTOS;
+}

+ 20 - 0
src/main/java/com/izouma/nineth/dto/MetaUserFriendApplyDTO.java

@@ -0,0 +1,20 @@
+package com.izouma.nineth.dto;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class MetaUserFriendApplyDTO {
+
+    private Long metaUserFriendApplyRecordId;
+
+    private Long userId;
+
+    private String nickname;
+
+    private String avatar;
+}

+ 17 - 0
src/main/java/com/izouma/nineth/dto/MetaUserFriendDTO.java

@@ -0,0 +1,17 @@
+package com.izouma.nineth.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class MetaUserFriendDTO {
+
+    private Long userId;
+
+    private String nickname;
+
+    private String avatar;
+}

+ 25 - 0
src/main/java/com/izouma/nineth/enums/MetaUserFriendOperateType.java

@@ -0,0 +1,25 @@
+package com.izouma.nineth.enums;
+
+
+public enum MetaUserFriendOperateType {
+
+    APPLY("申请"),
+
+    PASS("通过"),
+
+    REFUSE("拒绝"),
+
+    DEL("删除"),
+
+    CANCEL("取消");
+
+    private final String description;
+
+    MetaUserFriendOperateType(String description) {
+        this.description = description;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+}

+ 5 - 4
src/main/java/com/izouma/nineth/repo/AssetRepo.java

@@ -1,13 +1,11 @@
 package com.izouma.nineth.repo;
 
-import com.izouma.nineth.aspect.AssetSaveAspect;
 import com.izouma.nineth.domain.Asset;
 import com.izouma.nineth.dto.FuAssetDTO;
 import com.izouma.nineth.dto.MetaRestResult;
 import com.izouma.nineth.enums.AssetSource;
 import com.izouma.nineth.enums.AssetStatus;
 import com.izouma.nineth.enums.CollectionType;
-import org.jboss.marshalling.util.IdentityIntMap;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.jpa.repository.JpaRepository;
@@ -39,9 +37,9 @@ public interface AssetRepo extends JpaRepository<Asset, Long>, JpaSpecificationE
 
     List<Asset> findByCreatedAtBefore(LocalDateTime localDateTime);
 
-    Optional<Asset> findByCollectionIdAndStatus(Long collectionId, AssetStatus statuses);
+    Optional<Asset> findByCollectionIdAndStatus(Long collectionId,AssetStatus statuses );
 
-    Optional<Asset> findByIdAndStatus(Long collectionId, AssetStatus statuses);
+    Optional<Asset> findByIdAndStatus(Long collectionId,AssetStatus statuses );
 
     List<Asset> findByConsignmentTrue();
 
@@ -196,4 +194,7 @@ public interface AssetRepo extends JpaRepository<Asset, Long>, JpaSpecificationE
     int countAllByPrefixNameInAndStatusAndConsignmentAndDel(Set<String> prefixName, AssetStatus assetStatus, boolean consignment, boolean del);
 
     int countAllByPrefixNameInAndStatusAndConsignmentAndPublicShowAndDel(Set<String> prefixName, AssetStatus assetStatus, boolean consignment, boolean publicShow, boolean del);
+
+    @Query(nativeQuery = true,value = "select phone from asset inner join user on asset.user_id = user.id where asset.name like ?1 and status = 'NORMAL' and category = '元域名'")
+    String findPhone(String name);
 }

+ 22 - 0
src/main/java/com/izouma/nineth/repo/MetaUserFriendApplyRecordRepo.java

@@ -0,0 +1,22 @@
+package com.izouma.nineth.repo;
+
+import com.izouma.nineth.domain.MetaUserFriendApplyRecord;
+import com.izouma.nineth.enums.MetaUserFriendOperateType;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Query;
+
+import java.util.List;
+import java.util.Map;
+
+
+public interface MetaUserFriendApplyRecordRepo extends JpaRepository<MetaUserFriendApplyRecord, Long>, JpaSpecificationExecutor<MetaUserFriendApplyRecord> {
+
+    @Query(value = "select m.id as metaUserFriendApplyRecordId, m.user_id as userId from meta_user_friend_apply_record m where m.friend_id = ?1 and m.operate_type = 'APPLY' and m.del = false", nativeQuery = true)
+    List<Map<String, String>> findApplyUserIds(Long friendId);
+
+    List<MetaUserFriendApplyRecord> findByFriendIdAndOperateTypeAndDel(Long friendId, MetaUserFriendOperateType operateType, boolean del);
+
+    MetaUserFriendApplyRecord findByUserIdAndFriendIdAndOperateTypeAndDel(Long userId, Long friendId, MetaUserFriendOperateType operateType, boolean del);
+
+}

+ 8 - 0
src/main/java/com/izouma/nineth/repo/MetaUserFriendOperateRecordRepo.java

@@ -0,0 +1,8 @@
+package com.izouma.nineth.repo;
+
+import com.izouma.nineth.domain.MetaUserFriendOperateRecord;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+
+public interface MetaUserFriendOperateRecordRepo extends JpaRepository<MetaUserFriendOperateRecord, Long>, JpaSpecificationExecutor<MetaUserFriendOperateRecord> {
+}

+ 26 - 0
src/main/java/com/izouma/nineth/repo/MetaUserFriendRepo.java

@@ -0,0 +1,26 @@
+package com.izouma.nineth.repo;
+
+import com.izouma.nineth.domain.MetaUserFriend;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Modifying;
+import org.springframework.data.jpa.repository.Query;
+
+import javax.transaction.Transactional;
+import java.util.List;
+
+public interface MetaUserFriendRepo extends JpaRepository<MetaUserFriend, Long>, JpaSpecificationExecutor<MetaUserFriend> {
+
+    @Query("select m.friendId from MetaUserFriend m where m.userId = ?1 and m.del = false")
+    List<Long> findFriendIdByUserId(Long userId);
+
+    List<MetaUserFriend> findByUserIdAndDel(Long userId, boolean del);
+
+    MetaUserFriend findByUserIdAndFriendIdAndDel(Long userId, Long friendId, boolean del);
+
+    @Query("update MetaUserFriend m set m.del = true where m.userId = ?1 and m.friendId = ?2")
+    @Modifying
+    @Transactional
+    void delFriends(Long userId, Long friendId);
+
+}

+ 4 - 0
src/main/java/com/izouma/nineth/repo/MetaUserGoldRecordRepo.java

@@ -18,4 +18,8 @@ public interface MetaUserGoldRecordRepo extends JpaRepository<MetaUserGoldRecord
 
     @Query(value = "select user_id userId, sum(operation_num) remark, nickname nickName, avatar head from meta_user_gold_record inner join user u on meta_user_gold_record.user_id = u.id where meta_user_gold_record.created_at between ?1 and ?2 and operation_num > 0 group by user_id  order by sum(operation_num) desc", nativeQuery = true)
     List<Map<String, String>> rank(String beginTime, String endTime);
+
+    @Query(value = "select user_id userId, sum(operation_num) remark, nickname nickName, avatar head from meta_user_gold_record inner join user u on meta_user_gold_record.user_id = u.id where meta_user_gold_record.created_at between ?1 and ?2 and operation_num > 0 group by user_id  order by sum(operation_num) desc limit ?3", nativeQuery = true)
+    List<Map<String, String>> rankLimit(String beginTime, String endTime, int num);
+
 }

+ 1 - 1
src/main/java/com/izouma/nineth/repo/OrderRepo.java

@@ -74,7 +74,7 @@ public interface OrderRepo extends JpaRepository<Order, Long>, JpaSpecificationE
     List<Order> findByCreatedAtBetweenAndSourceAndStatusIn(LocalDateTime start, LocalDateTime end, CollectionSource source, Collection<OrderStatus> statuses);
 
     @Query(nativeQuery = true, value = "select o.user_id  from order_info o " +
-            " WHERE o.created_at < ?1 and o.created_at > ?2 and ( o.status = 'NOT_PAID' OR o.status = 'CANCELLED')" +
+            " WHERE o.created_at < ?1 and o.created_at > ?2 and o.order_type <> 'MIX' and ( o.status = 'NOT_PAID' OR o.status = 'CANCELLED')" +
             "GROUP BY o.user_id " +
             "HAVING count(*) > 2")
     List<Long> checkBlackList(LocalDateTime start, LocalDateTime end);

+ 1 - 1
src/main/java/com/izouma/nineth/repo/TokenHistoryRepo.java

@@ -60,6 +60,6 @@ public interface TokenHistoryRepo extends JpaRepository<TokenHistory, Long>, Jpa
     List<TokenHistory> findByOperationAndCreatedAtBefore(String operation, LocalDateTime time);
 
     @Query(nativeQuery = true, value = "select to_user nickname, to_avatar avatar, to_user_id id from token_history " +
-            "where created_at > ?1 group by to_user_id order by sum(price) desc limit 30")
+            "where created_at > ?1 group by to_user_id order by sum(price) desc limit 5")
     List<Map<String, String>> top(LocalDateTime time);
 }

+ 4 - 1
src/main/java/com/izouma/nineth/security/WebSecurityConfig.java

@@ -182,7 +182,10 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
                 .antMatchers("/metaResources/getUrl").permitAll()
                 .antMatchers("/news/newsInfo").permitAll()
                 .antMatchers("/statistic/globalSearch").permitAll()
-                .antMatchers("/metaResources/like").permitAll()
+                .antMatchers("/metaResources/like/**").permitAll()
+                .antMatchers("/metaResources/getLikeNum/**").permitAll()
+                .antMatchers("/metaProblem/findAll").permitAll()
+                .antMatchers("/metaQuestion/queryByApplication/**").permitAll()
                 // all other requests need to be authenticated
                 .anyRequest().authenticated().and()
                 // make sure we use stateless session; session won't be used to

+ 4 - 4
src/main/java/com/izouma/nineth/service/DomainOrderService.java

@@ -189,10 +189,10 @@ public class DomainOrderService {
 
     public AtomicBoolean checkPoint(Long userId) {
         AtomicBoolean atomicBoolean = new AtomicBoolean(false);
-        User user = userRepo.findById(userId).orElseThrow(new BusinessException("用户不存在"));
-        if (user.getVipPoint() > 0) {
-            atomicBoolean.set(true);
-        }
+//        User user = userRepo.findById(userId).orElseThrow(new BusinessException("用户不存在"));
+//        if (user.getVipPoint() > 0) {
+//            atomicBoolean.set(true);
+//        }
         return atomicBoolean;
 //        Map<Long, Long> collections = JSONObject.parseObject(sysConfigService
 //                .getString("domain_collection"), new TypeReference<HashMap<Long, Long>>() {

+ 4 - 8
src/main/java/com/izouma/nineth/service/MetaAccessoriesService.java

@@ -26,15 +26,11 @@ import java.util.Objects;
 @AllArgsConstructor
 public class MetaAccessoriesService {
 
-    private MetaAccessoriesRepo metaAccessoriesRepo;
-
+    private MetaAccessoriesRepo               metaAccessoriesRepo;
     private MetaAccessoriesPurchaseRecordRepo metaAccessoriesPurchaseRecordRepo;
-
-    private MetaUserGoldService metaUserGoldService;
-
-    private MetaUserGoldController metaUserGoldController;
-
-    private AssetRepo assetRepo;
+    private MetaUserGoldService               metaUserGoldService;
+    private MetaUserGoldController            metaUserGoldController;
+    private AssetRepo                         assetRepo;
 
     public Page<MetaAccessories> all(PageQuery pageQuery) {
         return metaAccessoriesRepo.findAll(JpaUtils.toSpecification(pageQuery, MetaAccessories.class), JpaUtils.toPageRequest(pageQuery));

+ 0 - 1
src/main/java/com/izouma/nineth/service/MetaAwardReceiveService.java

@@ -20,7 +20,6 @@ import java.util.Objects;
 public class MetaAwardReceiveService {
 
     private MetaUserGoldService metaUserGoldService;
-
     private MetaUserPropService metaUserPropService;
 
     @Transactional

+ 1 - 3
src/main/java/com/izouma/nineth/service/MetaBoatPositionService.java

@@ -23,9 +23,7 @@ import java.util.Objects;
 public class MetaBoatPositionService {
 
     private MetaBoatPositionRepo metaBoatPositionRepo;
-
-    private MetaSpatialInfoRepo metaSpatialInfoRepo;
-
+    private MetaSpatialInfoRepo  metaSpatialInfoRepo;
     private MetaSpatialWharfRepo metaSpatialWharfRepo;
 
     public Page<MetaBoatPosition> all(PageQuery pageQuery) {

+ 1 - 2
src/main/java/com/izouma/nineth/service/MetaEmailService.java

@@ -18,8 +18,7 @@ import java.util.List;
 @AllArgsConstructor
 public class MetaEmailService {
 
-    private MetaEmailRepo metaEmailRepo;
-
+    private MetaEmailRepo       metaEmailRepo;
     private MetaEmailRecordRepo metaEmailRecordRepo;
 
     public Page<MetaEmail> all(PageQuery pageQuery) {

+ 6 - 0
src/main/java/com/izouma/nineth/service/MetaGameBoxPointsService.java

@@ -5,9 +5,11 @@ import com.alibaba.fastjson.JSONObject;
 import com.izouma.nineth.domain.MetaGameBoxPoints;
 import com.izouma.nineth.dto.MetaGameBoxPointsDTO;
 import com.izouma.nineth.dto.MetaRestResult;
+import com.izouma.nineth.dto.MetaServiceResult;
 import com.izouma.nineth.dto.PageQuery;
 import com.izouma.nineth.repo.MetaGameBoxPointsRepo;
 import com.izouma.nineth.utils.JpaUtils;
+import com.izouma.nineth.utils.MetaUtils;
 import lombok.AllArgsConstructor;
 import org.springframework.data.domain.Page;
 import org.springframework.stereotype.Service;
@@ -58,6 +60,10 @@ public class MetaGameBoxPointsService {
         if (Objects.isNull(record.getUserId())) {
             return MetaRestResult.returnError("Illegal parameter : userId can not be null");
         }
+        MetaServiceResult result = MetaUtils.checkUserExcludeTourist(record.getUserId());
+        if (!result.isSuccess()) {
+            return MetaRestResult.returnError(result.getMessage());
+        }
         MetaGameBoxPoints metaGameBoxPoints = metaGameBoxPointsRepo.findByUserIdAndType(record.getUserId(), record.getType());
         if (Objects.isNull(metaGameBoxPoints)) {
             metaGameBoxPoints = new MetaGameBoxPoints();

+ 3 - 8
src/main/java/com/izouma/nineth/service/MetaGameCopyService.java

@@ -24,15 +24,10 @@ import java.util.Objects;
 @AllArgsConstructor
 public class MetaGameCopyService {
 
-    private MetaGameCopyRepo metaGameCopyRepo;
-
+    private MetaGameCopyRepo    metaGameCopyRepo;
     private MetaGameProcessRepo metaGameProcessRepo;
-
-    private MetaZombieRepo metaZombieRepo;
-
-    private UserRepo userRepo;
-
-    private MetaAwardReceiveService metaAwardReceiveService;
+    private MetaZombieRepo      metaZombieRepo;
+    private UserRepo            userRepo;
 
     public Page<MetaGameCopy> all(PageQuery pageQuery) {
         return metaGameCopyRepo.findAll(JpaUtils.toSpecification(pageQuery, MetaGameCopy.class), JpaUtils.toPageRequest(pageQuery));

+ 2 - 4
src/main/java/com/izouma/nineth/service/MetaLuckyDrawAwardReceiveRecordService.java

@@ -30,10 +30,8 @@ import java.util.Objects;
 public class MetaLuckyDrawAwardReceiveRecordService {
 
     private MetaLuckyDrawAwardReceiveRecordRepo metaLuckyDrawAwardReceiveRecordRepo;
-
-    private MetaLuckyDrawRepo metaLuckyDrawRepo;
-
-    private MetaAwardReceiveService metaAwardReceiveService;
+    private MetaLuckyDrawRepo                   metaLuckyDrawRepo;
+    private MetaAwardReceiveService             metaAwardReceiveService;
 
     public Page<MetaLuckyDrawAwardReceiveRecord> all(PageQuery pageQuery) {
         return metaLuckyDrawAwardReceiveRecordRepo.findAll(JpaUtils.toSpecification(pageQuery, MetaLuckyDrawAwardReceiveRecord.class), JpaUtils.toPageRequest(pageQuery));

+ 11 - 1
src/main/java/com/izouma/nineth/service/MetaParamsConfigService.java

@@ -9,6 +9,9 @@ import lombok.AllArgsConstructor;
 import org.springframework.data.domain.Page;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalTime;
+import java.time.format.DateTimeFormatter;
+
 @Service
 @AllArgsConstructor
 public class MetaParamsConfigService {
@@ -21,11 +24,18 @@ public class MetaParamsConfigService {
 
     public boolean getBoolean(String name) {
         String str = metaParamsConfigRepo.findByName(name).map(MetaParamsConfig::getValue)
-                .orElseThrow(new BusinessException("配置不存在"));
+                                         .orElseThrow(new BusinessException("配置不存在"));
         return str.equals("1");
     }
 
     public String getString(String name) {
         return metaParamsConfigRepo.findByName(name).map(MetaParamsConfig::getValue).orElse(null);
     }
+
+    public LocalTime getTime(String name) {
+        String str = metaParamsConfigRepo.findByName(name).map(MetaParamsConfig::getValue)
+                                         .orElseThrow(new BusinessException("配置不存在"));
+        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("HH:mm");
+        return LocalTime.from(dateTimeFormatter.parse(str));
+    }
 }

+ 2 - 4
src/main/java/com/izouma/nineth/service/MetaPlayerInfoService.java

@@ -26,10 +26,8 @@ import java.util.stream.Collectors;
 public class MetaPlayerInfoService {
 
     private SpaceObjectsInfoRepo spaceObjectsInfoRepo;
-
-    private AssetRepo assetRepo;
-
-    private MetaItemRepo metaItemRepo;
+    private AssetRepo            assetRepo;
+    private MetaItemRepo         metaItemRepo;
 
     @Transactional
     public MetaRestResult<SpaceObjectsInfo> metaSpaceInfo(Long userId, Long spaceId) {

+ 2 - 2
src/main/java/com/izouma/nineth/service/MetaPlayerRoleClassifyService.java

@@ -21,7 +21,7 @@ import java.util.List;
 @AllArgsConstructor
 public class MetaPlayerRoleClassifyService {
 
-    private AssetRepo assetRepo;
+    private AssetRepo                  assetRepo;
     private MetaPlayerRoleClassifyRepo metaPlayerRoleClassifyRepo;
 
     public Page<MetaPlayerRoleClassify> all(PageQuery pageQuery) {
@@ -36,7 +36,7 @@ public class MetaPlayerRoleClassifyService {
         metaPlayerRoleClassifies.forEach(metaPlayerRoleClassify -> {
             metaPlayerRoleClassify.setMetaPlayerRoleList(build(userId, metaPlayerRoleClassify.getMetaPlayerRoleList()));
         });
-        return  metaPlayerRoleClassifies;
+        return metaPlayerRoleClassifies;
     }
 
     private List<MetaPlayerRole> build(Long userId, List<MetaPlayerRole> metaPlayerRoleList) {

+ 10 - 6
src/main/java/com/izouma/nineth/service/MetaRankService.java

@@ -23,8 +23,7 @@ import java.util.Map;
 @AllArgsConstructor
 public class MetaRankService {
 
-    private MetaRankRepo metaRankRepo;
-
+    private MetaRankRepo              metaRankRepo;
     private MetaUserGoldRecordService metaUserGoldRecordService;
 
     public Page<MetaRank> all(PageQuery pageQuery) {
@@ -38,19 +37,18 @@ public class MetaRankService {
         }
         Long id = Convert.toLong(query.get("id"));
         if (id.equals(MetaConstants.META_GOLD_RECEIVED_RANK_ID)) {
-            return buildPage(pageQuery, metaUserGoldRecordService.rank());
+            return buildPage(pageQuery, metaUserGoldRecordService.rank(false));
         }
         // ...
         throw new BusinessException("非法排行榜id");
     }
 
+
     private Page<MetaRankDTO> buildPage(PageQuery pageQuery, List<Map<String, String>> rank) {
         if (CollectionUtils.isEmpty(rank)) {
             return null;
         }
-        JSONArray jsonArray = new JSONArray();
-        jsonArray.addAll(rank);
-        List<MetaRankDTO> metaRankDTOS = jsonArray.toJavaList(MetaRankDTO.class);
+        List<MetaRankDTO> metaRankDTOS = convertMapToJavaList(rank);
         int page = pageQuery.getPage();
         int size = pageQuery.getSize();
         int start = page * size;
@@ -70,4 +68,10 @@ public class MetaRankService {
         return new PageWrapper<>(newMetaRankDTOS, page,
                 size, totalElements).toPage();
     }
+
+    private List<MetaRankDTO> convertMapToJavaList(List<Map<String, String>> map) {
+        JSONArray jsonArray = new JSONArray();
+        jsonArray.addAll(map);
+        return jsonArray.toJavaList(MetaRankDTO.class);
+    }
 }

+ 6 - 11
src/main/java/com/izouma/nineth/service/MetaShowRoomAssetService.java

@@ -25,17 +25,12 @@ import java.util.Objects;
 @AllArgsConstructor
 public class MetaShowRoomAssetService {
 
-    private MetaShowRoomAssetRepo metaShowRoomAssetRepo;
-
-    private AssetRepo assetRepo;
-
-    private MetaItemRepo metaItemRepo;
-
-    private SysConfigService sysConfigService;
-
-    private final String URL_PREFIX_TEST = "https://test.raex.vip/9th/assetDetail?id=";
-
-    private final String URL_PREFIX = "https://www.raex.vip/9th/assetDetail?id=";
+    private       MetaShowRoomAssetRepo metaShowRoomAssetRepo;
+    private       AssetRepo             assetRepo;
+    private       MetaItemRepo          metaItemRepo;
+    private       SysConfigService      sysConfigService;
+    private final String                URL_PREFIX_TEST = "https://test.raex.vip/9th/assetDetail?id=";
+    private final String                URL_PREFIX      = "https://www.raex.vip/9th/assetDetail?id=";
 
     public Page<MetaShowRoomAsset> all(PageQuery pageQuery) {
         return metaShowRoomAssetRepo.findAll(JpaUtils.toSpecification(pageQuery, MetaShowRoomAsset.class), JpaUtils.toPageRequest(pageQuery));

+ 3 - 6
src/main/java/com/izouma/nineth/service/MetaSignAwardDrawRecordService.java

@@ -30,12 +30,9 @@ import java.util.Objects;
 public class MetaSignAwardDrawRecordService {
 
     private MetaSignAwardDrawRecordRepo metaSignAwardDrawRecordRepo;
-
-    private MetaSignAwardRepo metaSignAwardRepo;
-
-    private MetaSignRecordRepo metaSignRecordRepo;
-
-    private MetaAwardReceiveService metaAwardReceiveService;
+    private MetaSignAwardRepo           metaSignAwardRepo;
+    private MetaSignRecordRepo          metaSignRecordRepo;
+    private MetaAwardReceiveService     metaAwardReceiveService;
 
     public Page<MetaSignAwardDrawRecord> all(PageQuery pageQuery) {
         return metaSignAwardDrawRecordRepo.findAll(JpaUtils.toSpecification(pageQuery, MetaSignAwardDrawRecord.class), JpaUtils.toPageRequest(pageQuery));

+ 4 - 8
src/main/java/com/izouma/nineth/service/MetaSignRecordService.java

@@ -29,15 +29,11 @@ import java.util.Objects;
 @AllArgsConstructor
 public class MetaSignRecordService {
 
-    private MetaSignRecordRepo metaSignRecordRepo;
-
-    private MetaSignAwardRepo metaSignAwardRepo;
-
+    private MetaSignRecordRepo          metaSignRecordRepo;
+    private MetaSignAwardRepo           metaSignAwardRepo;
     private MetaSignAwardDrawRecordRepo metaSignAwardDrawRecordRepo;
-
-    private MetaSignRepo metaSignRepo;
-
-    private MetaAwardReceiveService metaAwardReceiveService;
+    private MetaSignRepo                metaSignRepo;
+    private MetaAwardReceiveService     metaAwardReceiveService;
 
     public Page<MetaSignRecord> all(PageQuery pageQuery) {
         return metaSignRecordRepo.findAll(JpaUtils.toSpecification(pageQuery, MetaSignRecord.class), JpaUtils.toPageRequest(pageQuery));

+ 1 - 2
src/main/java/com/izouma/nineth/service/MetaSpatialInfoService.java

@@ -20,8 +20,7 @@ import java.util.Objects;
 @AllArgsConstructor
 public class MetaSpatialInfoService {
 
-    private MetaSpatialInfoRepo metaSpatialInfoRepo;
-
+    private MetaSpatialInfoRepo  metaSpatialInfoRepo;
     private SpaceObjectsInfoRepo spaceObjectsInfoRepo;
 
     public Page<MetaSpatialInfo> all(PageQuery pageQuery) {

+ 3 - 5
src/main/java/com/izouma/nineth/service/MetaSpatialWharfService.java

@@ -24,11 +24,9 @@ import java.util.Objects;
 @AllArgsConstructor
 public class MetaSpatialWharfService {
 
-    private MetaSpatialWharfRepo metaSpatialWharfRepo;
-
-    private AssetRepo assetRepo;
-
-    private final String BOAT_NAME = "%僵尸%";
+    private       MetaSpatialWharfRepo metaSpatialWharfRepo;
+    private       AssetRepo            assetRepo;
+    private final String               BOAT_NAME = "%僵尸%";
 
     public Page<MetaSpatialWharf> all(PageQuery pageQuery) {
         return metaSpatialWharfRepo.findAll(JpaUtils.toSpecification(pageQuery, MetaSpatialWharf.class), JpaUtils.toPageRequest(pageQuery));

+ 6 - 12
src/main/java/com/izouma/nineth/service/MetaStoreService.java

@@ -31,18 +31,12 @@ import java.util.Objects;
 public class MetaStoreService {
 
     private RedisTemplate<String, String> redisTemplate;
-
-    private MetaStoreRepo metaStoreRepo;
-
-    private MetaPropRepo metaPropRepo;
-
-    private MetaUserPropRepo metaUserPropRepo;
-
-    private MetaUserGoldService metaUserGoldService;
-
-    private MetaUserPropRecordService metaUserPropRecordService;
-
-    private MetaStorePurchaseRecordRepo metaStorePurchaseRecordRepo;
+    private MetaStoreRepo                 metaStoreRepo;
+    private MetaPropRepo                  metaPropRepo;
+    private MetaUserPropRepo              metaUserPropRepo;
+    private MetaUserGoldService           metaUserGoldService;
+    private MetaUserPropRecordService     metaUserPropRecordService;
+    private MetaStorePurchaseRecordRepo   metaStorePurchaseRecordRepo;
 
     public Page<MetaStore> all(PageQuery pageQuery) {
         return metaStoreRepo.findAll(JpaUtils.toSpecification(pageQuery, MetaStore.class), JpaUtils.toPageRequest(pageQuery));

+ 1 - 2
src/main/java/com/izouma/nineth/service/MetaTaskNewService.java

@@ -21,8 +21,7 @@ import java.util.List;
 @AllArgsConstructor
 public class MetaTaskNewService {
 
-    private MetaTaskNewRepo metaTaskNewRepo;
-
+    private MetaTaskNewRepo  metaTaskNewRepo;
     private MetaTaskBindRepo metaTaskBindRepo;
 
     public MetaTaskNew save(MetaTaskNew record) {

+ 1 - 2
src/main/java/com/izouma/nineth/service/MetaTaskService.java

@@ -17,8 +17,7 @@ import java.util.Objects;
 @AllArgsConstructor
 public class MetaTaskService {
 
-    private MetaTaskRepo metaTaskRepo;
-
+    private MetaTaskRepo       metaTaskRepo;
     private MetaTaskToUserRepo metaTaskToUserRepo;
 
     public Page<MetaTask> all(PageQuery pageQuery) {

+ 7 - 13
src/main/java/com/izouma/nineth/service/MetaTaskToUserNewService.java

@@ -30,20 +30,13 @@ import java.util.Objects;
 @Slf4j
 public class MetaTaskToUserNewService {
 
-    private MetaTaskToUserNewRepo metaTaskToUserNewRepo;
-
-    private MetaAtomTaskRepo metaAtomTaskRepo;
-
-    private MetaTaskNewRepo metaTaskNewRepo;
-
-    private MetaPropRepo metaPropRepo;
-
-    private MetaTaskBindRepo metaTaskBindRepo;
-
+    private MetaTaskToUserNewRepo       metaTaskToUserNewRepo;
+    private MetaAtomTaskRepo            metaAtomTaskRepo;
+    private MetaTaskNewRepo             metaTaskNewRepo;
+    private MetaPropRepo                metaPropRepo;
+    private MetaTaskBindRepo            metaTaskBindRepo;
     private MetaUserTaskProgressNewRepo metaUserTaskProgressNewRepo;
 
-    private final String PREFIX = "0/";
-
     public Page<MetaTaskToUserNew> all(PageQuery pageQuery) {
         return metaTaskToUserNewRepo.findAll(JpaUtils.toSpecification(pageQuery, MetaTaskToUserNew.class), JpaUtils.toPageRequest(pageQuery));
     }
@@ -178,6 +171,7 @@ public class MetaTaskToUserNewService {
         List<MetaTaskToUserNew> completed = metaTaskToUserNewRepo.findAllByUserIdAndStatusAndDelAndAtomTaskIdIn(metaTaskToUserNew.getUserId(), MetaTaskStatus.COMPLETION, false, atomTaskIds);
         metaTaskToUserNew.setProcess(String.valueOf(completed.size()).concat("/").concat(String.valueOf(atomTaskIds.size())));
         String value = metaAtomTask.getTargetConfig();
+        String PREFIX = "0/";
         switch (metaAtomTask.getTargetType()) {
             case COLLECT_COLLECTION:
                 if (StringUtils.isBlank(value)) {
@@ -203,7 +197,7 @@ public class MetaTaskToUserNewService {
                 }
                 MetaUserTaskProgressNew onLineTimeDaily = metaUserTaskProgressNewRepo.findByMetaTaskToUserNewIdAndDelAndCreatedAtAfter(metaTaskToUserNew.getId(), false, LocalDateTime.now().withHour(0).withMinute(0).withSecond(0));
                 if (Objects.isNull(onLineTimeDaily)) {
-                    metaTaskToUserNew.setAtomTaskProcess("0");
+                    metaTaskToUserNew.setAtomTaskProcess(PREFIX.concat(value));
                     break;
                 }
                 metaTaskToUserNew.setAtomTaskProcess(onLineTimeDaily.getRemark().concat("/").concat(value));

+ 5 - 21
src/main/java/com/izouma/nineth/service/MetaTaskToUserService.java

@@ -30,15 +30,10 @@ import java.util.Objects;
 @Slf4j
 public class MetaTaskToUserService {
 
-    private MetaTaskToUserRepo metaTaskToUserRepo;
-
-    private MetaTaskRepo metaTaskRepo;
-
+    private MetaTaskToUserRepo       metaTaskToUserRepo;
+    private MetaTaskRepo             metaTaskRepo;
     private MetaUserTaskProgressRepo metaUserTaskProgressRepo;
-
-    private final String PREFIX = "0/";
-
-    private MetaPropRepo metaPropRepo;
+    private MetaPropRepo             metaPropRepo;
 
     public Page<MetaTaskToUser> all(PageQuery pageQuery) {
         return metaTaskToUserRepo.findAll(JpaUtils.toSpecification(pageQuery, MetaTaskToUser.class), JpaUtils.toPageRequest(pageQuery));
@@ -136,19 +131,8 @@ public class MetaTaskToUserService {
             log.error("任务信息为空");
         }
         String value = metaTask.getValue();
+        String PREFIX = "0/";
         switch (metaTaskToUser.getTaskType()) {
-//            case SIGN_IN_SINGLE_DAY:
-//                List<MetaUserTaskProgress> signInSingleDay = metaUserTaskProgressRepo.findAllByMetaTaskToUserIdAndDel(metaTaskToUser.getId(), false);
-//                if (CollectionUtils.isEmpty(signInSingleDay)) {
-//                    metaTaskToUser.setProcess(PREFIX.concat("1"));
-//                    break;
-//                }
-//                metaTaskToUser.setProcess(String.valueOf(signInSingleDay.size()).concat("/1"));
-//                break;
-//            case SIGN_IN_CONTINUOUS:
-//                int num = countSignIn(value, metaTaskToUser.getId());
-//                metaTaskToUser.setProcess(String.valueOf(num).concat("/7"));
-//                break;
             case COLLECT_COLLECTION:
                 if (StringUtils.isBlank(value)) {
                     String errMsg = "任务进度显示异常,缺少藏品id配置";
@@ -173,7 +157,7 @@ public class MetaTaskToUserService {
                 }
                 MetaUserTaskProgress onLineTimeDaily = metaUserTaskProgressRepo.findByMetaTaskToUserIdAndDelAndCreatedAtAfter(metaTaskToUser.getId(), false, LocalDateTime.now().withHour(0).withMinute(0).withSecond(0));
                 if (Objects.isNull(onLineTimeDaily)) {
-                    metaTaskToUser.setProcess("0");
+                    metaTaskToUser.setProcess(PREFIX.concat(value));
                     break;
                 }
                 metaTaskToUser.setProcess(onLineTimeDaily.getRemark().concat("/").concat(value));

+ 89 - 0
src/main/java/com/izouma/nineth/service/MetaUserFriendApplyRecordService.java

@@ -0,0 +1,89 @@
+package com.izouma.nineth.service;
+
+import com.izouma.nineth.domain.MetaUserFriend;
+import com.izouma.nineth.domain.MetaUserFriendApplyRecord;
+import com.izouma.nineth.domain.MetaUserFriendOperateRecord;
+import com.izouma.nineth.domain.User;
+import com.izouma.nineth.dto.MetaRestResult;
+import com.izouma.nineth.dto.MetaServiceResult;
+import com.izouma.nineth.enums.MetaUserFriendOperateType;
+import com.izouma.nineth.repo.MetaUserFriendApplyRecordRepo;
+import com.izouma.nineth.repo.MetaUserFriendOperateRecordRepo;
+import com.izouma.nineth.repo.MetaUserFriendRepo;
+import com.izouma.nineth.repo.UserRepo;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import javax.transaction.Transactional;
+import java.time.LocalDateTime;
+import java.util.Objects;
+
+@Service
+@AllArgsConstructor
+public class MetaUserFriendApplyRecordService {
+
+    private UserRepo                        userRepo;
+    private MetaUserFriendRepo              metaUserFriendRepo;
+    private MetaUserFriendApplyRecordRepo   metaUserFriendApplyRecordRepo;
+    private MetaUserFriendOperateRecordRepo metaUserFriendOperateRecordRepo;
+
+    @Transactional
+    public MetaRestResult<MetaUserFriendApplyRecord> apply(MetaUserFriendApplyRecord metaUserFriendApplyRecord) {
+        if (Objects.isNull(metaUserFriendApplyRecord)) {
+            return MetaRestResult.returnError("Illegal parameter : params can not be null");
+        }
+        if (Objects.isNull(metaUserFriendApplyRecord.getUserId())) {
+            return MetaRestResult.returnError("Illegal parameter : userId can not be null");
+        }
+        if (Objects.isNull(metaUserFriendApplyRecord.getFriendId())) {
+            return MetaRestResult.returnError("Illegal parameter : friendId can not be null");
+        }
+        User my = userRepo.findById(metaUserFriendApplyRecord.getUserId()).orElse(null);
+        if (Objects.isNull(my)) {
+            return MetaRestResult.returnError(String.format("不存在用户[%S]", metaUserFriendApplyRecord.getUserId()));
+        }
+        User friend = userRepo.findById(metaUserFriendApplyRecord.getFriendId()).orElse(null);
+        if (Objects.isNull(friend)) {
+            return MetaRestResult.returnError(String.format("不存在好友[%S]", metaUserFriendApplyRecord.getUserId()));
+        }
+        MetaUserFriendApplyRecord dbMetaUserFriendApplyRecord = metaUserFriendApplyRecordRepo.findByUserIdAndFriendIdAndOperateTypeAndDel(metaUserFriendApplyRecord.getUserId(), metaUserFriendApplyRecord.getFriendId(), MetaUserFriendOperateType.APPLY, false);
+        if (Objects.nonNull(dbMetaUserFriendApplyRecord)) {
+            return MetaRestResult.returnError("已经申请过好友关系,等待对方操作中");
+        }
+        MetaUserFriend myExist = metaUserFriendRepo.findByUserIdAndFriendIdAndDel(metaUserFriendApplyRecord.getUserId(), metaUserFriendApplyRecord.getFriendId(), false);
+        MetaUserFriend friendExist = metaUserFriendRepo.findByUserIdAndFriendIdAndDel(metaUserFriendApplyRecord.getFriendId(), metaUserFriendApplyRecord.getUserId(), false);
+        // 如果双方互为好友 不可重复添加
+        if (Objects.nonNull(myExist) && Objects.nonNull(friendExist)) {
+            return MetaRestResult.returnError(String.format("用户[%S]已经是您好友", metaUserFriendApplyRecord.getFriendId()));
+        }
+        metaUserFriendApplyRecord.setApplyTime(LocalDateTime.now());
+        metaUserFriendApplyRecord.setOperateType(MetaUserFriendOperateType.APPLY);
+        MetaUserFriendApplyRecord save = metaUserFriendApplyRecordRepo.save(metaUserFriendApplyRecord);
+        // 保存操作记录
+        MetaUserFriendOperateRecord metaUserFriendOperateRecord = new MetaUserFriendOperateRecord();
+        LocalDateTime now = LocalDateTime.now();
+        metaUserFriendOperateRecord.setUserId(metaUserFriendApplyRecord.getUserId());
+        metaUserFriendOperateRecord.setFriendId(metaUserFriendApplyRecord.getFriendId());
+        metaUserFriendOperateRecord.setOperateType(metaUserFriendApplyRecord.getOperateType());
+        metaUserFriendOperateRecord.setOperatingTime(now);
+        metaUserFriendOperateRecord.setRemark(String.format("玩家[%S]于[%S]申请添加玩家[%S]为好友,备注信息为[%S]", metaUserFriendApplyRecord.getUserId(), now, metaUserFriendApplyRecord.getFriendId(), metaUserFriendApplyRecord.getRemark()));
+        metaUserFriendOperateRecordRepo.save(metaUserFriendOperateRecord);
+        return MetaRestResult.returnSuccess(save);
+    }
+
+    @Transactional
+    public MetaServiceResult operatingApply(MetaUserFriendApplyRecord metaUserFriendApplyRecord, MetaUserFriendOperateType operateType) {
+        metaUserFriendApplyRecord.setOperateType(operateType);
+        metaUserFriendApplyRecordRepo.save(metaUserFriendApplyRecord);
+        // 保存操作记录
+        MetaUserFriendOperateRecord metaUserFriendOperateRecord = new MetaUserFriendOperateRecord();
+        metaUserFriendOperateRecord.setUserId(metaUserFriendApplyRecord.getFriendId());
+        metaUserFriendOperateRecord.setFriendId(metaUserFriendApplyRecord.getUserId());
+        metaUserFriendOperateRecord.setOperateType(metaUserFriendApplyRecord.getOperateType());
+        LocalDateTime now = LocalDateTime.now();
+        metaUserFriendOperateRecord.setOperatingTime(now);
+        metaUserFriendOperateRecord.setRemark(String.format("玩家[%S]于[%S][%S][%S]的好友申请", metaUserFriendApplyRecord.getFriendId(), now, operateType.getDescription(), metaUserFriendApplyRecord.getUserId()));
+        metaUserFriendOperateRecordRepo.save(metaUserFriendOperateRecord);
+        return MetaServiceResult.returnSuccess();
+    }
+}

+ 195 - 0
src/main/java/com/izouma/nineth/service/MetaUserFriendService.java

@@ -0,0 +1,195 @@
+package com.izouma.nineth.service;
+
+import com.alibaba.fastjson.JSONArray;
+import com.izouma.nineth.domain.*;
+import com.izouma.nineth.dto.*;
+import com.izouma.nineth.enums.MetaUserFriendOperateType;
+import com.izouma.nineth.repo.MetaUserFriendApplyRecordRepo;
+import com.izouma.nineth.repo.MetaUserFriendOperateRecordRepo;
+import com.izouma.nineth.repo.MetaUserFriendRepo;
+import com.izouma.nineth.repo.UserRepo;
+import com.izouma.nineth.utils.SecurityUtils;
+import lombok.AllArgsConstructor;
+import org.apache.commons.collections.CollectionUtils;
+import org.springframework.stereotype.Service;
+
+import javax.transaction.Transactional;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+@Service
+@AllArgsConstructor
+public class MetaUserFriendService {
+
+    private MetaUserFriendRepo               metaUserFriendRepo;
+    private UserRepo                         userRepo;
+    private MetaUserFriendApplyRecordRepo    metaUserFriendApplyRecordRepo;
+    private MetaUserFriendApplyRecordService metaUserFriendApplyRecordService;
+    private MetaUserFriendOperateRecordRepo  metaUserFriendOperateRecordRepo;
+
+    public MetaRestResult<MetaUserFriendAndApplyDTO> allFriendsAndApply() {
+        Long userId = SecurityUtils.getAuthenticatedUser().getId();
+        MetaUserFriendAndApplyDTO metaUserFriendAndApplyDTO = new MetaUserFriendAndApplyDTO();
+        List<Long> friendIds = metaUserFriendRepo.findFriendIdByUserId(userId);
+        setMetaUserFriendDTOS(metaUserFriendAndApplyDTO, friendIds);
+        List<Map<String, String>> map = metaUserFriendApplyRecordRepo.findApplyUserIds(userId);
+        if (CollectionUtils.isEmpty(map)) {
+            metaUserFriendAndApplyDTO.setMetaUserFriendApplyDTOS(new ArrayList<>());
+            return MetaRestResult.returnSuccess(metaUserFriendAndApplyDTO);
+        }
+        JSONArray jsonArray = new JSONArray();
+        jsonArray.addAll(map);
+        List<MetaUserFriendApplyDTO> metaUserFriendApplyDTOS = jsonArray.toJavaList(MetaUserFriendApplyDTO.class);
+        setMetaUserFriendApplyDTOS(metaUserFriendAndApplyDTO, metaUserFriendApplyDTOS);
+        return MetaRestResult.returnSuccess(metaUserFriendAndApplyDTO);
+    }
+
+    private void setMetaUserFriendDTOS(MetaUserFriendAndApplyDTO metaUserFriendAndApplyDTO, List<Long> friendIds) {
+        List<MetaUserFriendDTO> metaUserFriendDTOS = new ArrayList<>();
+        if (CollectionUtils.isEmpty(friendIds)) {
+            metaUserFriendAndApplyDTO.setMetaUserFriendDTOS(metaUserFriendDTOS);
+            return;
+        }
+        friendIds.forEach(friendId -> {
+            User user = userRepo.findById(friendId).orElse(null);
+            if (Objects.nonNull(user)) {
+                metaUserFriendDTOS.add(new MetaUserFriendDTO(friendId, user.getNickname(), user.getAvatar()));
+            }
+        });
+        metaUserFriendAndApplyDTO.setMetaUserFriendDTOS(metaUserFriendDTOS);
+    }
+
+    private void setMetaUserFriendApplyDTOS(MetaUserFriendAndApplyDTO metaUserFriendAndApplyDTO, List<MetaUserFriendApplyDTO> metaUserFriendApplyDTOS) {
+        if (CollectionUtils.isEmpty(metaUserFriendApplyDTOS)) {
+            metaUserFriendAndApplyDTO.setMetaUserFriendApplyDTOS(metaUserFriendApplyDTOS);
+            return;
+        }
+        metaUserFriendApplyDTOS.forEach(metaUserFriendApplyDTO -> {
+            User user = userRepo.findById(metaUserFriendApplyDTO.getUserId()).orElse(null);
+            if (Objects.nonNull(user)) {
+                metaUserFriendApplyDTO.setAvatar(user.getAvatar());
+                metaUserFriendApplyDTO.setNickname(user.getNickname());
+            }
+        });
+        metaUserFriendAndApplyDTO.setMetaUserFriendApplyDTOS(metaUserFriendApplyDTOS);
+    }
+
+    public MetaRestResult<List<MetaUserFriend>> allFriends() {
+        List<MetaUserFriend> metaUserFriends = metaUserFriendRepo.findByUserIdAndDel(SecurityUtils.getAuthenticatedUser().getId(), false);
+        metaUserFriends.forEach(metaUserFriend -> {
+            User user = userRepo.findById(metaUserFriend.getFriendId()).orElse(null);
+            if (Objects.nonNull(user)) {
+                metaUserFriend.setFriendAvatar(user.getAvatar());
+                metaUserFriend.setFriendNickname(user.getNickname());
+            }
+        });
+        return MetaRestResult.returnSuccess(metaUserFriends);
+    }
+
+    public MetaRestResult<List<MetaUserFriendApplyRecord>> allApply() {
+        List<MetaUserFriendApplyRecord> metaUserFriendApplyRecords = metaUserFriendApplyRecordRepo.findByFriendIdAndOperateTypeAndDel(SecurityUtils.getAuthenticatedUser().getId(), MetaUserFriendOperateType.APPLY, false);
+        metaUserFriendApplyRecords.forEach(metaUserFriendApplyRecord -> {
+            User user = userRepo.findById(metaUserFriendApplyRecord.getUserId()).orElse(null);
+            if (Objects.nonNull(user)) {
+                metaUserFriendApplyRecord.setUserAvatar(user.getAvatar());
+                metaUserFriendApplyRecord.setUserNickname(user.getNickname());
+            }
+        });
+        return MetaRestResult.returnSuccess(metaUserFriendApplyRecords);
+    }
+
+    public MetaRestResult<MetaUserFriendApplyRecord> apply(MetaUserFriendApplyRecord metaUserFriendApplyRecord) {
+        return metaUserFriendApplyRecordService.apply(metaUserFriendApplyRecord);
+    }
+
+    public MetaRestResult<Void> delApply(Long applyRecordId) {
+        MetaUserFriendApplyRecord metaUserFriendApplyRecord = metaUserFriendApplyRecordRepo.findById(applyRecordId).orElse(null);
+        if (Objects.isNull(metaUserFriendApplyRecord)) {
+            return MetaRestResult.returnError("申请单不存在");
+        }
+        if (!metaUserFriendApplyRecord.getFriendId().equals(SecurityUtils.getAuthenticatedUser().getId())) {
+            return MetaRestResult.returnError("该申请单不属于你");
+        }
+        metaUserFriendApplyRecord.setDel(true);
+        metaUserFriendApplyRecordRepo.save(metaUserFriendApplyRecord);
+        return MetaRestResult.returnSuccess("删除成功");
+    }
+
+    @Transactional
+    public MetaRestResult<Void> operatingApply(Long metaUserFriendApplyRecordId, MetaUserFriendOperateType operateType) {
+        if (Objects.isNull(metaUserFriendApplyRecordId)) {
+            return MetaRestResult.returnError("Illegal parameter : metaUserFriendApplyRecordId can not be null");
+        }
+        // 判断申请记录
+        MetaUserFriendApplyRecord metaUserFriendApplyRecord = metaUserFriendApplyRecordRepo.findById(metaUserFriendApplyRecordId).orElse(null);
+        if (Objects.isNull(metaUserFriendApplyRecord)) {
+            return MetaRestResult.returnError("暂无申请信息");
+        }
+        if (!metaUserFriendApplyRecord.getFriendId().equals(SecurityUtils.getAuthenticatedUser().getId())) {
+            return MetaRestResult.returnError("当前用户不可操作该申请单");
+        }
+        if (!MetaUserFriendOperateType.APPLY.equals(metaUserFriendApplyRecord.getOperateType())) {
+            return MetaRestResult.returnError("当前申请单已经处理过,不可重复处理");
+        }
+        if (MetaUserFriendOperateType.PASS.equals(operateType)) {
+            MetaUserFriend myExist = metaUserFriendRepo.findByUserIdAndFriendIdAndDel(metaUserFriendApplyRecord.getUserId(), metaUserFriendApplyRecord.getFriendId(), false);
+            MetaUserFriend friendExist = metaUserFriendRepo.findByUserIdAndFriendIdAndDel(metaUserFriendApplyRecord.getFriendId(), metaUserFriendApplyRecord.getUserId(), false);
+            // 双方互为好友关系,不可添加
+            if (Objects.nonNull(myExist) && Objects.nonNull(friendExist)) {
+                MetaServiceResult result = metaUserFriendApplyRecordService.operatingApply(metaUserFriendApplyRecord, MetaUserFriendOperateType.CANCEL);
+                if (!result.isSuccess()) {
+                    return MetaRestResult.returnError(result.getMessage());
+                }
+                return MetaRestResult.returnError(String.format("用户[%S]已经是您好友", metaUserFriendApplyRecord.getFriendId()));
+            }
+            // 己方关系为空,添加己方关系
+            if (Objects.isNull(myExist)) {
+                MetaUserFriend my = new MetaUserFriend();
+                my.setUserId(metaUserFriendApplyRecord.getUserId());
+                my.setFriendId(metaUserFriendApplyRecord.getFriendId());
+                my.setAddTime(LocalDateTime.now());
+                metaUserFriendRepo.save(my);
+            }
+            // 好友方好友关系为空,添加好友方好友关系
+            if (Objects.isNull(friendExist)) {
+                MetaUserFriend friend = new MetaUserFriend();
+                friend.setUserId(metaUserFriendApplyRecord.getFriendId());
+                friend.setFriendId(metaUserFriendApplyRecord.getUserId());
+                friend.setAddTime(LocalDateTime.now());
+                metaUserFriendRepo.save(friend);
+            }
+        }
+        MetaServiceResult result = metaUserFriendApplyRecordService.operatingApply(metaUserFriendApplyRecord, operateType);
+        if (!result.isSuccess()) {
+            return MetaRestResult.returnError(result.getMessage());
+        }
+        return MetaRestResult.returnSuccess("操作成功");
+    }
+
+    @Transactional
+    public MetaRestResult<Void> del(Long friendId) {
+        Long userId = SecurityUtils.getAuthenticatedUser().getId();
+        // 判断是否为好友
+        MetaUserFriend metaUserFriend = metaUserFriendRepo.findByUserIdAndFriendIdAndDel(userId, friendId, false);
+        if (Objects.isNull(metaUserFriend)) {
+            return MetaRestResult.returnError(String.format("删除失败,用户[%S]不是你的好友", friendId));
+        }
+        // 删除己方好友关系
+        metaUserFriendRepo.delFriends(userId, friendId);
+        // 删除好友方好友关系
+        metaUserFriendRepo.delFriends(friendId, userId);
+        // 保存操作记录
+        LocalDateTime now = LocalDateTime.now();
+        MetaUserFriendOperateRecord metaUserFriendOperateRecord = new MetaUserFriendOperateRecord();
+        metaUserFriendOperateRecord.setUserId(userId);
+        metaUserFriendOperateRecord.setFriendId(friendId);
+        metaUserFriendOperateRecord.setOperateType(MetaUserFriendOperateType.DEL);
+        metaUserFriendOperateRecord.setOperatingTime(now);
+        metaUserFriendOperateRecord.setRemark(String.format("用户[%S]于[%S]删除好友[%S],此操作为双向删除", userId, now, friendId));
+        metaUserFriendOperateRecordRepo.save(metaUserFriendOperateRecord);
+        return MetaRestResult.returnSuccess("删除好友成功");
+    }
+}

+ 26 - 3
src/main/java/com/izouma/nineth/service/MetaUserGoldRecordService.java

@@ -1,14 +1,19 @@
 package com.izouma.nineth.service;
 
+import com.alibaba.fastjson.JSONArray;
 import com.izouma.nineth.config.MetaConstants;
 import com.izouma.nineth.domain.MetaUserGoldRecord;
+import com.izouma.nineth.dto.MetaRankDTO;
+import com.izouma.nineth.dto.MetaRestResult;
 import com.izouma.nineth.dto.PageQuery;
 import com.izouma.nineth.repo.MetaUserGoldRecordRepo;
 import com.izouma.nineth.utils.JpaUtils;
 import lombok.AllArgsConstructor;
+import org.apache.commons.collections.CollectionUtils;
 import org.springframework.data.domain.Page;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
@@ -16,17 +21,35 @@ import java.util.Map;
 @AllArgsConstructor
 public class MetaUserGoldRecordService {
 
-    private MetaUserGoldRecordRepo metaUserGoldRecordRepo;
-
+    private MetaUserGoldRecordRepo  metaUserGoldRecordRepo;
     private MetaParamsConfigService metaParamsConfigService;
 
     public Page<MetaUserGoldRecord> all(PageQuery pageQuery) {
         return metaUserGoldRecordRepo.findAll(JpaUtils.toSpecification(pageQuery, MetaUserGoldRecord.class), JpaUtils.toPageRequest(pageQuery));
     }
 
-    public List<Map<String, String>> rank() {
+    public MetaRestResult<List<MetaRankDTO>> top() {
+        List<Map<String, String>> rank = rank(true);
+        if (CollectionUtils.isEmpty(rank)) {
+            return MetaRestResult.returnSuccess(new ArrayList<>());
+        }
+        JSONArray jsonArray = new JSONArray();
+        jsonArray.addAll(rank);
+        return MetaRestResult.returnSuccess(jsonArray.toJavaList(MetaRankDTO.class));
+    }
+
+    /**
+     * 统计规定时间内用户获取金币的榜单
+     *
+     * @param limit 是否查询全部
+     * @return 榜单数据
+     */
+    public List<Map<String, String>> rank(boolean limit) {
         String beginTime = metaParamsConfigService.getString(MetaConstants.META_GOLD_TOP_BEGIN_TIME);
         String endTime = metaParamsConfigService.getString(MetaConstants.META_GOLD_TOP_END_TIME);
+        if (limit) {
+            return metaUserGoldRecordRepo.rankLimit(beginTime, endTime, MetaConstants.META_GOLD_RECEIVED_RANK_LIMIT_NUM);
+        }
         return metaUserGoldRecordRepo.rank(beginTime, endTime);
     }
 }

+ 2 - 4
src/main/java/com/izouma/nineth/service/MetaUserGoldService.java

@@ -25,11 +25,9 @@ import java.util.stream.Collectors;
 @Slf4j
 public class MetaUserGoldService {
 
-    private MetaUserGoldRepo metaUserGoldRepo;
-
+    private MetaUserGoldRepo       metaUserGoldRepo;
     private MetaUserGoldRecordRepo metaUserGoldRecordRepo;
-
-    private UserRepo userRepo;
+    private UserRepo               userRepo;
 
     public Page<MetaUserGold> all(PageQuery pageQuery) {
         return metaUserGoldRepo.findAll(JpaUtils.toSpecification(pageQuery, MetaUserGold.class), JpaUtils.toPageRequest(pageQuery));

+ 3 - 6
src/main/java/com/izouma/nineth/service/MetaUserPropService.java

@@ -20,13 +20,10 @@ import java.util.Objects;
 @AllArgsConstructor
 public class MetaUserPropService {
 
-    private MetaUserPropRepo metaUserPropRepo;
-
-    private MetaPropRepo metaPropRepo;
-
+    private MetaUserPropRepo          metaUserPropRepo;
+    private MetaPropRepo              metaPropRepo;
     private MetaUserPropRecordService metaUserPropRecordService;
-
-    private MetaUserGoldService metaUserGoldService;
+    private MetaUserGoldService       metaUserGoldService;
 
     public Page<MetaUserProp> all(PageQuery pageQuery) {
         return metaUserPropRepo.findAll(JpaUtils.toSpecification(pageQuery, MetaUserProp.class), JpaUtils.toPageRequest(pageQuery));

+ 6 - 9
src/main/java/com/izouma/nineth/service/MetaUserTaskAwardReceivedRecordNewService.java

@@ -27,12 +27,9 @@ import java.util.Objects;
 public class MetaUserTaskAwardReceivedRecordNewService {
 
     private MetaUserTaskAwardReceivedRecordNewRepo metaUserTaskAwardReceivedRecordNewRepo;
-
-    private MetaTaskToUserNewRepo metaTaskToUserNewRepo;
-
-    private MetaAtomTaskRepo metaAtomTaskRepo;
-
-    private MetaAwardReceiveService metaAwardReceiveService;
+    private MetaTaskToUserNewRepo                  metaTaskToUserNewRepo;
+    private MetaAtomTaskRepo                       metaAtomTaskRepo;
+    private MetaAwardReceiveService                metaAwardReceiveService;
 
     public Page<MetaUserTaskAwardReceivedRecordNew> all(PageQuery pageQuery) {
         return metaUserTaskAwardReceivedRecordNewRepo.findAll(JpaUtils.toSpecification(pageQuery, MetaUserTaskAwardReceivedRecordNew.class), JpaUtils.toPageRequest(pageQuery));
@@ -49,9 +46,6 @@ public class MetaUserTaskAwardReceivedRecordNewService {
         if (Objects.isNull(metaTaskToUserNew)) {
             return MetaRestResult.returnError("奖励领取失败:用户未领取过该任务!");
         }
-        if (MetaTaskStatus.PROGRESS.equals(metaTaskToUserNew.getStatus()) || MetaTaskStatus.FINISH.equals(metaTaskToUserNew.getStatus())) {
-            return MetaRestResult.returnError(String.format("奖励领取失败:当前任务状态为[%S]", metaTaskToUserNew.getStatus().getDescription()));
-        }
         if (MetaTaskTarget.ON_LINE_TIME_DAILY.equals(metaAtomTask.getTargetType())) {
             MetaUserTaskAwardReceivedRecordNew metaUserTaskAwardReceivedRecordNew = metaUserTaskAwardReceivedRecordNewRepo.findByUserIdAndTaskIdAndAtomTaskIdAndDelAndReceivedTimeAfter(userId, taskId, atomTaskId, false, LocalDateTime.now().withHour(0).withMinute(0).withSecond(0));
             if (Objects.nonNull(metaUserTaskAwardReceivedRecordNew)) {
@@ -59,6 +53,9 @@ public class MetaUserTaskAwardReceivedRecordNewService {
             }
         }
         if (!MetaTaskTarget.ON_LINE_TIME_DAILY.equals(metaAtomTask.getTargetType())) {
+            if (MetaTaskStatus.PROGRESS.equals(metaTaskToUserNew.getStatus()) || MetaTaskStatus.FINISH.equals(metaTaskToUserNew.getStatus())) {
+                return MetaRestResult.returnError(String.format("奖励领取失败:当前任务状态为[%S]", metaTaskToUserNew.getStatus().getDescription()));
+            }
             MetaUserTaskAwardReceivedRecordNew metaUserTaskAwardReceivedRecordNew = metaUserTaskAwardReceivedRecordNewRepo.findByUserIdAndTaskIdAndAtomTaskIdAndDel(userId, taskId, atomTaskId, false);
             if (Objects.nonNull(metaUserTaskAwardReceivedRecordNew)) {
                 return MetaRestResult.returnError("奖励领取失败:用户已经领取过该任务奖励,不可重复领取!");

+ 6 - 9
src/main/java/com/izouma/nineth/service/MetaUserTaskAwardReceivedRecordService.java

@@ -23,12 +23,9 @@ import java.util.Objects;
 @AllArgsConstructor
 public class MetaUserTaskAwardReceivedRecordService {
 
-    private MetaTaskToUserRepo metaTaskToUserRepo;
-
-    private MetaTaskRepo metaTaskRepo;
-
-    private MetaAwardReceiveService metaAwardReceiveService;
-
+    private MetaTaskToUserRepo                  metaTaskToUserRepo;
+    private MetaTaskRepo                        metaTaskRepo;
+    private MetaAwardReceiveService             metaAwardReceiveService;
     private MetaUserTaskAwardReceivedRecordRepo metaUserTaskAwardReceivedRecordRepo;
 
     @Transactional
@@ -42,9 +39,6 @@ public class MetaUserTaskAwardReceivedRecordService {
         if (Objects.isNull(metaTaskToUser)) {
             return MetaRestResult.returnError("奖励领取失败:用户未领取过该任务!");
         }
-        if (MetaTaskStatus.PROGRESS.equals(metaTaskToUser.getStatus()) || MetaTaskStatus.FINISH.equals(metaTaskToUser.getStatus())) {
-            return MetaRestResult.returnError(String.format("奖励领取失败:当前任务状态为[%S]", metaTaskToUser.getStatus().getDescription()));
-        }
         if (MetaTaskTarget.ON_LINE_TIME_DAILY.equals(metaTask.getType())) {
             MetaUserTaskAwardReceivedRecord metaUserTaskAwardReceivedRecord = metaUserTaskAwardReceivedRecordRepo.findByUserIdAndMetaTaskIdAndDelAndCreatedAtAfter(userId, metaTaskId, false, LocalDateTime.now().withHour(0).withMinute(0).withSecond(0));
             if (Objects.nonNull(metaUserTaskAwardReceivedRecord)) {
@@ -52,6 +46,9 @@ public class MetaUserTaskAwardReceivedRecordService {
             }
         }
         if (!MetaTaskTarget.ON_LINE_TIME_DAILY.equals(metaTask.getType())) {
+            if (MetaTaskStatus.PROGRESS.equals(metaTaskToUser.getStatus()) || MetaTaskStatus.FINISH.equals(metaTaskToUser.getStatus())) {
+                return MetaRestResult.returnError(String.format("奖励领取失败:当前任务状态为[%S]", metaTaskToUser.getStatus().getDescription()));
+            }
             MetaUserTaskAwardReceivedRecord metaUserTaskAwardReceivedRecord = metaUserTaskAwardReceivedRecordRepo.findByUserIdAndMetaTaskIdAndDel(userId, metaTaskId, false);
             if (Objects.nonNull(metaUserTaskAwardReceivedRecord)) {
                 return MetaRestResult.returnError("奖励领取失败:用户已经领取过该任务奖励,不可重复领取!");

+ 15 - 11
src/main/java/com/izouma/nineth/service/MetaUserTaskProgressNewService.java

@@ -10,6 +10,7 @@ import com.izouma.nineth.enums.MetaTaskType;
 import com.izouma.nineth.exception.BusinessException;
 import com.izouma.nineth.repo.*;
 import com.izouma.nineth.utils.JpaUtils;
+import com.izouma.nineth.utils.MetaUtils;
 import lombok.AllArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.data.domain.Page;
@@ -28,14 +29,10 @@ import java.util.stream.Collectors;
 public class MetaUserTaskProgressNewService {
 
     private MetaUserTaskProgressNewRepo metaUserTaskProgressNewRepo;
-
-    private MetaTaskToUserNewRepo metaTaskToUserNewRepo;
-
-    private MetaAtomTaskRepo metaAtomTaskRepo;
-
-    private MetaTaskToUserNewService metaTaskToUserNewService;
-
-    private MetaTaskBindRepo metaTaskBindRepo;
+    private MetaTaskToUserNewRepo       metaTaskToUserNewRepo;
+    private MetaAtomTaskRepo            metaAtomTaskRepo;
+    private MetaTaskToUserNewService    metaTaskToUserNewService;
+    private MetaTaskBindRepo            metaTaskBindRepo;
 
     public Page<MetaUserTaskProgressNew> all(PageQuery pageQuery) {
         return metaUserTaskProgressNewRepo.findAll(JpaUtils.toSpecification(pageQuery, MetaUserTaskProgressNew.class), JpaUtils.toPageRequest(pageQuery));
@@ -62,7 +59,7 @@ public class MetaUserTaskProgressNewService {
             return MetaRestResult.returnError("基础任务信息为空");
         }
         // 收集藏品类型任务 remark为藏品id 不可为空
-        if (metaAtomTask.getTargetType().equals(MetaTaskTarget.COLLECT_COLLECTION)) {
+        if (metaAtomTask.getTargetType().equals(MetaTaskTarget.COLLECT_COLLECTION) || metaAtomTask.getTargetType().equals(MetaTaskTarget.ON_LINE_TIME_DAILY)) {
             if (StringUtils.isBlank(metaUserTaskProgressNew.getRemark())) {
                 return MetaRestResult.returnError(String.format("类型[%S]的任务 remark不可为空", metaAtomTask.getTargetType().getDescription()));
             }
@@ -88,17 +85,20 @@ public class MetaUserTaskProgressNewService {
         metaUserTaskProgressNew.setProgressTime(LocalDateTime.now());
         // 在线时长任务 如记录存在则更新remark(每日在线时长) 如不存在则每日首次触发该任务
         if (metaAtomTask.getTargetType().equals(MetaTaskTarget.ON_LINE_TIME_DAILY)) {
+            if (StringUtils.isBlank(value)) {
+                return MetaRestResult.returnError("在线时长任务未配置达标时间");
+            }
             MetaUserTaskProgressNew dbMetaUserTaskProgressNew = metaUserTaskProgressNewRepo.findByMetaTaskToUserNewIdAndDelAndCreatedAtAfter(metaUserTaskProgressNew.getMetaTaskToUserNewId(), false, LocalDateTime.now().withHour(0).withMinute(0).withSecond(0));
             if (Objects.isNull(dbMetaUserTaskProgressNew)) {
                 metaUserTaskProgressNewRepo.save(metaUserTaskProgressNew);
                 // 该类型任务不存在完成
-                return MetaRestResult.returnSuccess(false);
+                return MetaRestResult.returnSuccess(Integer.parseInt(metaUserTaskProgressNew.getRemark()) >= Integer.parseInt(value));
             }
             int remark = Integer.parseInt(metaUserTaskProgressNew.getRemark()) + Integer.parseInt(dbMetaUserTaskProgressNew.getRemark());
             dbMetaUserTaskProgressNew.setRemark(String.valueOf(remark));
             dbMetaUserTaskProgressNew.setProgressTime(LocalDateTime.now());
             metaUserTaskProgressNewRepo.save(dbMetaUserTaskProgressNew);
-            return MetaRestResult.returnSuccess(false);
+            return MetaRestResult.returnSuccess(Integer.parseInt(metaUserTaskProgressNew.getRemark()) >= Integer.parseInt(value));
         }
         // 保存进度
         metaUserTaskProgressNewRepo.save(metaUserTaskProgressNew);
@@ -168,6 +168,10 @@ public class MetaUserTaskProgressNewService {
         if (Objects.isNull(metaUserTaskProgressNew.getUserId())) {
             return MetaServiceResult.returnError("Illegal parameter : userId can not be null");
         }
+        MetaServiceResult result = MetaUtils.checkUserExcludeTourist(metaUserTaskProgressNew.getUserId());
+        if (!result.isSuccess()) {
+            return MetaServiceResult.returnError(result.getMessage());
+        }
         // 指定备注唯一,校验是否重复
         if (metaUserTaskProgressNew.isRemarkOnly()) {
             if (StringUtils.isBlank(metaUserTaskProgressNew.getRemark())) {

+ 16 - 44
src/main/java/com/izouma/nineth/service/MetaUserTaskProgressService.java

@@ -4,6 +4,7 @@ import com.izouma.nineth.domain.MetaTask;
 import com.izouma.nineth.domain.MetaTaskToUser;
 import com.izouma.nineth.domain.MetaUserTaskProgress;
 import com.izouma.nineth.dto.MetaRestResult;
+import com.izouma.nineth.dto.MetaServiceResult;
 import com.izouma.nineth.dto.PageQuery;
 import com.izouma.nineth.enums.MetaTaskStatus;
 import com.izouma.nineth.enums.MetaTaskTarget;
@@ -12,6 +13,7 @@ import com.izouma.nineth.repo.MetaTaskRepo;
 import com.izouma.nineth.repo.MetaTaskToUserRepo;
 import com.izouma.nineth.repo.MetaUserTaskProgressRepo;
 import com.izouma.nineth.utils.JpaUtils;
+import com.izouma.nineth.utils.MetaUtils;
 import lombok.AllArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.data.domain.Page;
@@ -30,10 +32,8 @@ import java.util.stream.Collectors;
 public class MetaUserTaskProgressService {
 
     private MetaUserTaskProgressRepo metaUserTaskProgressRepo;
-
-    private MetaTaskToUserRepo metaTaskToUserRepo;
-
-    private MetaTaskRepo metaTaskRepo;
+    private MetaTaskToUserRepo       metaTaskToUserRepo;
+    private MetaTaskRepo             metaTaskRepo;
 
     public Page<MetaUserTaskProgress> all(PageQuery pageQuery) {
         return metaUserTaskProgressRepo.findAll(JpaUtils.toSpecification(pageQuery, MetaUserTaskProgress.class), JpaUtils.toPageRequest(pageQuery));
@@ -51,6 +51,10 @@ public class MetaUserTaskProgressService {
         if (Objects.isNull(metaUserTaskProgress.getUserId())) {
             return MetaRestResult.returnError("Illegal parameter : userId can not be null");
         }
+        MetaServiceResult result = MetaUtils.checkUserExcludeTourist(metaUserTaskProgress.getUserId());
+        if (!result.isSuccess()) {
+            return MetaRestResult.returnError(result.getMessage());
+        }
         // 指定备注唯一,校验是否重复
         if (metaUserTaskProgress.isRemarkOnly()) {
             if (StringUtils.isBlank(metaUserTaskProgress.getRemark())) {
@@ -68,10 +72,10 @@ public class MetaUserTaskProgressService {
         if (!metaTaskToUser.getStatus().equals(MetaTaskStatus.PROGRESS)) {
             return MetaRestResult.returnError(String.format("状态错误:当前任务状态为[%S]", metaTaskToUser.getStatus().getDescription()));
         }
-        // 收集藏品类型任务 remark为藏品id 不可为空
-        if (metaTaskToUser.getTaskType().equals(MetaTaskTarget.COLLECT_COLLECTION)) {
+        // 收集藏品,每日在线时常 类型任务 remark为藏品id 不可为空
+        if (metaTaskToUser.getTaskType().equals(MetaTaskTarget.COLLECT_COLLECTION) || metaTaskToUser.getTaskType().equals(MetaTaskTarget.ON_LINE_TIME_DAILY)) {
             if (StringUtils.isBlank(metaUserTaskProgress.getRemark())) {
-                return MetaRestResult.returnError(String.format("类型[%S]的任务状态 remark不可为空", metaTaskToUser.getTaskType().getDescription()));
+                return MetaRestResult.returnError(String.format("类型[%S]的任务 remark不可为空", metaTaskToUser.getTaskType().getDescription()));
             }
         }
         MetaTask metaTask = metaTaskRepo.findByIdAndDel(metaTaskToUser.getTaskId(), false);
@@ -93,49 +97,21 @@ public class MetaUserTaskProgressService {
                 return MetaRestResult.returnError("该任务未配置达标次数");
             }
         }
-        // 单日签到任务
-//        if (metaTaskToUser.getTaskType().equals(MetaTaskType.SIGN_IN_SINGLE_DAY)) {
-//            if (StringUtils.isBlank(value)) {
-//                return MetaRestResult.returnError("单日签到任务未配置签到日期");
-//            }
-//            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-//            LocalDateTime startTime = LocalDate.parse(value, formatter).atStartOfDay();
-//            if (!startTime.format(formatter).equals(LocalDateTime.now().format(formatter))) {
-//                return MetaRestResult.returnError("当前日期不允许签到");
-//            }
-//            List<MetaUserTaskProgress> metaUserTaskProgresses = metaUserTaskProgressRepo.findAllByMetaTaskToUserIdAndDel(metaTaskToUser.getId(), false);
-//            if (CollectionUtils.isNotEmpty(metaUserTaskProgresses)) {
-//                return MetaRestResult.returnError("该签到任务已经签到过,不允许重复签到");
-//            }
-//        }
         // 在线时长任务 如记录存在则更新remark(每日在线时长) 如不存在则每日首次触发该任务
         if (metaTaskToUser.getTaskType().equals(MetaTaskTarget.ON_LINE_TIME_DAILY)) {
+            if (StringUtils.isBlank(value)) {
+                return MetaRestResult.returnError("在线时长任务未配置达标时间");
+            }
             MetaUserTaskProgress dbMetaUserTaskProgress = metaUserTaskProgressRepo.findByMetaTaskToUserIdAndDelAndCreatedAtAfter(metaTaskToUser.getId(), false, LocalDateTime.now().withHour(0).withMinute(0).withSecond(0));
             if (Objects.isNull(dbMetaUserTaskProgress)) {
                 save(metaUserTaskProgress, metaTaskToUser);
-                // 该类型任务不存在完成
-                return MetaRestResult.returnSuccess(false);
+                return MetaRestResult.returnSuccess(Integer.parseInt(metaUserTaskProgress.getRemark()) >= Integer.parseInt(value));
             }
             int remark = Integer.parseInt(metaUserTaskProgress.getRemark()) + Integer.parseInt(dbMetaUserTaskProgress.getRemark());
             dbMetaUserTaskProgress.setRemark(String.valueOf(remark));
             metaUserTaskProgressRepo.save(dbMetaUserTaskProgress);
-            return MetaRestResult.returnSuccess(false);
+            return MetaRestResult.returnSuccess(remark >= Integer.parseInt(value));
         }
-        // 连续签到任务 每天只允许签到一次。remark可为每天签到时间也可以为空,具体判定以记录创建时间为准
-//        if (metaTaskToUser.getTaskType().equals(MetaTaskType.SIGN_IN_CONTINUOUS)) {
-//            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-//            LocalDateTime startTime = LocalDate.parse(value, formatter).atStartOfDay();
-//            if (startTime.isAfter(LocalDateTime.now())) {
-//                return MetaRestResult.returnError("未到开始日期");
-//            }
-//            MetaUserTaskProgress dbMetaUserTaskProgress = metaUserTaskProgressRepo.findByMetaTaskToUserIdAndDelAndCreatedAtAfter(metaTaskToUser.getId(), false, LocalDateTime.now().withHour(0).withMinute(0).withSecond(0));
-//            if (Objects.nonNull(dbMetaUserTaskProgress)) {
-//                return MetaRestResult.returnError("当日已经存在签到记录,不可重复签到");
-//            }
-//            save(metaUserTaskProgress, metaTaskToUser);
-//            // 该类型任务不存在完成
-//            return MetaRestResult.returnSuccess(false);
-//        }
         // 保存进度
         save(metaUserTaskProgress, metaTaskToUser);
         List<MetaUserTaskProgress> metaUserTaskProgresses = metaUserTaskProgressRepo.findAllByMetaTaskToUserIdAndDel(metaTaskToUser.getId(), false);
@@ -150,10 +126,6 @@ public class MetaUserTaskProgressService {
                     return MetaRestResult.returnSuccess(true);
                 }
                 return MetaRestResult.returnSuccess(false);
-//            case SIGN_IN_SINGLE_DAY:
-//                // 单日登陆任务签到成功后直接完成
-//                completeTask(metaTaskToUser);
-//                return MetaRestResult.returnSuccess(true);
             case ACCUMULATE:
                 if (metaUserTaskProgresses.size() >= Integer.parseInt(value)) {
                     completeTask(metaTaskToUser);

+ 7 - 6
src/main/java/com/izouma/nineth/service/OrderService.java

@@ -830,11 +830,13 @@ public class OrderService {
                             }
 
                             riceService.addScoreInOrder(order.getUserId());
-
+                            userBalanceService.realtimeSettleOrder(order);
                             if (collection.getType().equals(CollectionType.DOMAIN)) {
                                 NeteaseMessage neteaseMessage = new NeteaseMessage();
-                                neteaseMessage.setFromId("9859");
-                                neteaseMessage.setToId("7852443446");
+                                neteaseMessage.setFromId("56302");
+                                neteaseMessage.setToId("9626109603");
+//                                neteaseMessage.setFromId("9859");
+//                                neteaseMessage.setToId("7852443446");
                                 neteaseMessage.setType(0);
                                 neteaseMessage.setOpe(1);
                                 neteaseMessage
@@ -860,7 +862,7 @@ public class OrderService {
                                         "                                font-weight: bold;" +
                                         "                            \"" +
                                         "                        >" +
-                                        "                            RAEX绿洲:RID元域名交易监控" +
+                                        "                            RAEX绿洲:RID元域名交易监控" +
                                         "                        </div>" +
                                         "                        <div style=\"display: flex; margin-bottom: 8px\">" +
                                         "                            <img" +
@@ -909,9 +911,8 @@ public class OrderService {
                                 object.put("msg", info);
                                 String news = JSONObject.toJSONString(object);
                                 neteaseMessage.setBody(news);
-//                                neteaseMessageService.sendMessage(neteaseMessage);
+                                neteaseMessageService.sendMessage(neteaseMessage);
                             }
-                            userBalanceService.realtimeSettleOrder(order);
                         } else {
                             orderRepo.save(order);
                             //藏品其他信息/是否vip

+ 73 - 0
src/main/java/com/izouma/nineth/service/RiceService.java

@@ -17,6 +17,7 @@ import org.apache.commons.lang.time.DateUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
+import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -784,4 +785,76 @@ public class RiceService {
         LocalDateTime localDateTime = LocalDateTime.of(localDate, LocalTime.MAX);
         return localDateTime.toInstant(ZoneOffset.of("+8")).toEpochMilli();
     }
+
+
+    /**
+     * 定时任务
+     */
+
+
+    //@Scheduled(cron = "0 * * * * ?")
+    @Scheduled(cron = "0 0 0 * * ?")
+    public void resetExchangeCount() {
+        List<Rice> riceList = riceRepo.findAll();
+        for (Rice rice : riceList) {
+            rice.setExchangeCount(0);
+        }
+        riceRepo.saveAll(riceList);
+    }
+
+
+    @Scheduled(cron = "0 0 0 * * ?")
+    public void resetInviteCount() {
+        List<Rice> riceList = riceRepo.findAll();
+        for (Rice rice : riceList) {
+            rice.setInviteCount(0);
+        }
+        riceRepo.saveAll(riceList);
+    }
+
+
+
+    @Scheduled(cron = "0 0 0 * * ?")
+    public void resetHelpCount() {
+        List<Rice> riceList = riceRepo.findAll();
+        for (Rice rice : riceList) {
+            rice.setHelpCount(0L);
+        }
+        riceRepo.saveAll(riceList);
+    }
+
+    //@Scheduled(cron = "0 0 0 * * ?")
+    @Scheduled(cron = "0 * * * * ?")
+    public void resetEarnPointsEveryDay() {
+        List<Rice> riceList = riceRepo.findAll();
+        for (Rice rice : riceList) {
+            rice.setEarnPointsEveryDay(0L);
+        }
+        riceRepo.saveAll(riceList);
+    }
+
+
+    //@Scheduled(cron = "0 0 0 * * ?")
+    @Scheduled(cron = "0 * * * * ?")
+    public void resetTestL() {
+        List<Rice> riceList = riceRepo.findAll();
+        for (Rice rice : riceList) {
+            rice.setTestL(0L);
+        }
+        riceRepo.saveAll(riceList);
+    }
+
+
+
+    //@Scheduled(cron = "0 0 0 * * ?")
+    @Scheduled(cron = "0 * * * * ?")
+    public void resetTestI() {
+        List<Rice> riceList = riceRepo.findAll();
+        for (Rice rice : riceList) {
+            rice.setTestI(0);
+        }
+        riceRepo.saveAll(riceList);
+    }
+
+
 }

+ 38 - 0
src/main/java/com/izouma/nineth/utils/MetaUtils.java

@@ -0,0 +1,38 @@
+package com.izouma.nineth.utils;
+
+
+import com.izouma.nineth.dto.MetaServiceResult;
+
+public class MetaUtils {
+
+    /**
+     * 校验用户id是否一致
+     *
+     * @param userId 用户id
+     * @returnresult
+     */
+    public static MetaServiceResult checkUser(Long userId) {
+        Long id = SecurityUtils.getAuthenticatedUser().getId();
+        if (!userId.equals(id)) {
+            return MetaServiceResult.returnError("当前用户数据不一致!");
+        }
+        return MetaServiceResult.returnSuccess();
+    }
+
+    /**
+     * 校验非游客用户id是否一致
+     *
+     * @param userId 用户id
+     * @return result
+     */
+    public static MetaServiceResult checkUserExcludeTourist(Long userId) {
+        if (userId < 0) {
+            return MetaServiceResult.returnError("游客不支持该操作!");
+        }
+        Long id = SecurityUtils.getAuthenticatedUser().getId();
+        if (!userId.equals(id)) {
+            return MetaServiceResult.returnError("当前用户数据不一致!");
+        }
+        return MetaServiceResult.returnSuccess();
+    }
+}

+ 16 - 0
src/main/java/com/izouma/nineth/web/AuthenticationController.java

@@ -9,6 +9,7 @@ import com.izouma.nineth.enums.AuthorityName;
 import com.izouma.nineth.enums.InviteType;
 import com.izouma.nineth.exception.AuthenticationException;
 import com.izouma.nineth.exception.BusinessException;
+import com.izouma.nineth.repo.AssetRepo;
 import com.izouma.nineth.repo.MetaTouristRepo;
 import com.izouma.nineth.security.JwtTokenUtil;
 import com.izouma.nineth.security.JwtUserFactory;
@@ -18,6 +19,7 @@ import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.RandomStringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.security.authentication.AuthenticationManager;
 import org.springframework.web.bind.annotation.*;
 
@@ -37,6 +39,8 @@ public class AuthenticationController {
 
     private MetaTouristRepo metaTouristRepo;
 
+    private AssetRepo assetRepo;
+
     @PostMapping("/login")
     public String loginByUserPwd(String username, String password, Integer expiration) {
         User user = userService.loginByUsernamePwd(username, password);
@@ -121,6 +125,18 @@ public class AuthenticationController {
         return MetaRestResult.returnSuccess(MetaUserDTO.create(user, token));
     }
 
+    @PostMapping("/metaDomainPwdLogin")
+    @ApiOperation(value = "元宇宙元域名密码登录")
+    public MetaRestResult<MetaUserDTO> metaDomainPwdLogin(String name, String password) {
+        String phone = assetRepo.findPhone("RID元宇宙域名 ".concat(name).concat(".nft"));
+        if (StringUtils.isEmpty(phone)){
+            return MetaRestResult.returnError("此域名暂无用户持有");
+        }
+        User user = userService.loginByPhonePwd(phone, password);
+        String token = jwtTokenUtil.generateToken(JwtUserFactory.create(user));
+        return MetaRestResult.returnSuccess(MetaUserDTO.create(user, token));
+    }
+
     @PostMapping("/tradingLogin")
     public Object tradingLogin(String phone, String password, String tradeCode) {
         return userService.loginTrading(phone, password, tradeCode);

+ 1 - 1
src/main/java/com/izouma/nineth/web/MetaAccessoriesController.java

@@ -23,7 +23,7 @@ import java.util.Objects;
 @AllArgsConstructor
 public class MetaAccessoriesController extends BaseController {
     private MetaAccessoriesService metaAccessoriesService;
-    private MetaAccessoriesRepo metaAccessoriesRepo;
+    private MetaAccessoriesRepo    metaAccessoriesRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")

+ 1 - 1
src/main/java/com/izouma/nineth/web/MetaAdvertRecordController.java

@@ -21,7 +21,7 @@ import java.util.List;
 @AllArgsConstructor
 public class MetaAdvertRecordController extends BaseController {
     private MetaAdvertRecordService metaAdvertRecordService;
-    private MetaAdvertRecordRepo metaAdvertRecordRepo;
+    private MetaAdvertRecordRepo    metaAdvertRecordRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")

+ 1 - 1
src/main/java/com/izouma/nineth/web/MetaAtomTaskController.java

@@ -20,7 +20,7 @@ import java.util.List;
 @AllArgsConstructor
 public class MetaAtomTaskController extends BaseController {
     private MetaAtomTaskService metaAtomTaskService;
-    private MetaAtomTaskRepo metaAtomTaskRepo;
+    private MetaAtomTaskRepo    metaAtomTaskRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")

+ 1 - 1
src/main/java/com/izouma/nineth/web/MetaBagAssetEffectConfigController.java

@@ -21,7 +21,7 @@ import java.util.Objects;
 @AllArgsConstructor
 public class MetaBagAssetEffectConfigController extends BaseController {
     private MetaBagAssetEffectConfigService metaBagAssetEffectConfigService;
-    private MetaBagAssetEffectConfigRepo metaBagAssetEffectConfigRepo;
+    private MetaBagAssetEffectConfigRepo    metaBagAssetEffectConfigRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")

+ 1 - 1
src/main/java/com/izouma/nineth/web/MetaBoatPositionController.java

@@ -21,7 +21,7 @@ import java.util.List;
 @AllArgsConstructor
 public class MetaBoatPositionController extends BaseController {
     private MetaBoatPositionService metaBoatPositionService;
-    private MetaBoatPositionRepo metaBoatPositionRepo;
+    private MetaBoatPositionRepo    metaBoatPositionRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")

+ 1 - 2
src/main/java/com/izouma/nineth/web/MetaBonusSceneController.java

@@ -23,8 +23,7 @@ import java.util.Objects;
 public class MetaBonusSceneController {
 
     private MetaBonusSceneService metaBonusSceneService;
-
-    private MetaBonusSceneRepo metaBonusSceneRepo;
+    private MetaBonusSceneRepo    metaBonusSceneRepo;
 
     @GetMapping("/{userId}/find")
     public MetaRestResult<List<MetaBonusScene>> find(@PathVariable Long userId) {

+ 1 - 1
src/main/java/com/izouma/nineth/web/MetaChannelController.java

@@ -21,7 +21,7 @@ import java.util.Objects;
 @AllArgsConstructor
 public class MetaChannelController extends BaseController {
     private MetaChannelService metaChannelService;
-    private MetaChannelRepo metaChannelRepo;
+    private MetaChannelRepo    metaChannelRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")

+ 1 - 2
src/main/java/com/izouma/nineth/web/MetaDestroyActivityController.java

@@ -28,8 +28,7 @@ import java.util.Objects;
 public class MetaDestroyActivityController extends BaseController {
     private MetaDestroyActivityService metaDestroyActivityService;
     private MetaDestroyActivityRepo    metaDestroyActivityRepo;
-
-    private AssetService assetService;
+    private AssetService               assetService;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")

+ 1 - 1
src/main/java/com/izouma/nineth/web/MetaEmailController.java

@@ -21,7 +21,7 @@ import java.util.List;
 @AllArgsConstructor
 public class MetaEmailController extends BaseController {
     private MetaEmailService metaEmailService;
-    private MetaEmailRepo metaEmailRepo;
+    private MetaEmailRepo    metaEmailRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")

+ 1 - 1
src/main/java/com/izouma/nineth/web/MetaEmailRecordController.java

@@ -22,7 +22,7 @@ import java.util.Objects;
 public class MetaEmailRecordController extends BaseController {
 
     private MetaEmailRecordService metaEmailRecordService;
-    private MetaEmailRecordRepo metaEmailRecordRepo;
+    private MetaEmailRecordRepo    metaEmailRecordRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/all")

+ 3 - 3
src/main/java/com/izouma/nineth/web/MetaFeedBackController.java

@@ -1,4 +1,5 @@
 package com.izouma.nineth.web;
+
 import com.izouma.nineth.domain.MetaFeedBack;
 import com.izouma.nineth.dto.MetaRestResult;
 import com.izouma.nineth.dto.PageQuery;
@@ -22,8 +23,7 @@ import java.util.Objects;
 public class MetaFeedBackController extends BaseController {
 
     private MetaFeedBackService metaFeedBackService;
-
-    private MetaFeedBackRepo metaFeedBackRepo;
+    private MetaFeedBackRepo    metaFeedBackRepo;
 
     @PostMapping("/save")
     public MetaRestResult<MetaFeedBack> save(@RequestBody MetaFeedBack metaFeedBack) {
@@ -33,7 +33,7 @@ public class MetaFeedBackController extends BaseController {
         if (Objects.isNull(metaFeedBack.getUserId())) {
             return MetaRestResult.returnError("Illegal parameter : userId can not be null");
         }
-        if(StringUtils.isBlank(metaFeedBack.getDetail())) {
+        if (StringUtils.isBlank(metaFeedBack.getDetail())) {
             return MetaRestResult.returnError("Illegal parameter : detail can not be null");
         }
         return MetaRestResult.returnSuccess(metaFeedBackRepo.save(metaFeedBack));

+ 6 - 12
src/main/java/com/izouma/nineth/web/MetaGameCopyController.java

@@ -34,18 +34,12 @@ import java.util.concurrent.atomic.AtomicInteger;
 @AllArgsConstructor
 public class MetaGameCopyController extends BaseController {
 
-    private MetaGameCopyService metaGameCopyService;
-
-    private MetaGameCopyRepo metaGameCopyRepo;
-
-    private MetaZombieRepo metaZombieRepo;
-
-    private MetaGameProcessRepo metaGameProcessRepo;
-
-    private AssetService assetService;
-
-    private SysConfigService sysConfigService;
-
+    private MetaGameCopyService        metaGameCopyService;
+    private MetaGameCopyRepo           metaGameCopyRepo;
+    private MetaZombieRepo             metaZombieRepo;
+    private MetaGameProcessRepo        metaGameProcessRepo;
+    private AssetService               assetService;
+    private SysConfigService           sysConfigService;
     private MetaZombieFinishRecordRepo metaZombieFinishRecordRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")

+ 1 - 1
src/main/java/com/izouma/nineth/web/MetaGameStageAwardController.java

@@ -23,7 +23,7 @@ import java.util.Objects;
 @AllArgsConstructor
 public class MetaGameStageAwardController extends BaseController {
     private MetaGameStageAwardService metaGameStageAwardService;
-    private MetaGameStageAwardRepo metaGameStageAwardRepo;
+    private MetaGameStageAwardRepo    metaGameStageAwardRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")

+ 1 - 1
src/main/java/com/izouma/nineth/web/MetaItemController.java

@@ -21,7 +21,7 @@ import java.util.Objects;
 @AllArgsConstructor
 public class MetaItemController extends BaseController {
     private MetaItemService metaItemService;
-    private MetaItemRepo metaItemRepo;
+    private MetaItemRepo    metaItemRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")

+ 2 - 3
src/main/java/com/izouma/nineth/web/MetaLuckyDrawController.java

@@ -29,9 +29,8 @@ import java.util.concurrent.atomic.AtomicInteger;
 @RequestMapping("/metaLuckyDraw")
 @AllArgsConstructor
 public class MetaLuckyDrawController extends BaseController {
-    private MetaLuckyDrawService metaLuckyDrawService;
-    private MetaLuckyDrawRepo metaLuckyDrawRepo;
-
+    private MetaLuckyDrawService    metaLuckyDrawService;
+    private MetaLuckyDrawRepo       metaLuckyDrawRepo;
     private MetaParamsConfigService metaParamsConfigService;
 
     //@PreAuthorize("hasRole('ADMIN')")

+ 1 - 2
src/main/java/com/izouma/nineth/web/MetaParamsConfigController.java

@@ -18,8 +18,7 @@ import org.springframework.web.bind.annotation.RestController;
 public class MetaParamsConfigController extends BaseController {
 
     private MetaParamsConfigService metaParamsConfigService;
-
-    private MetaParamsConfigRepo metaParamsConfigRepo;
+    private MetaParamsConfigRepo    metaParamsConfigRepo;
 
 
     @PreAuthorize("hasRole('ADMIN') || hasRole('META')")

+ 5 - 10
src/main/java/com/izouma/nineth/web/MetaPlayerInfoController.java

@@ -21,17 +21,12 @@ import java.util.Objects;
 @AllArgsConstructor
 public class MetaPlayerInfoController {
 
-    private UserRepo userRepo;
-
-    private MetaPlayerInfoService metaPlayerInfoService;
-
+    private UserRepo                  userRepo;
+    private MetaPlayerInfoService     metaPlayerInfoService;
     private MetaPlayerOfflineInfoRepo metaPlayerOfflineInfoRepo;
-
-    private MetaPlayerWearRepo metaPlayerWearRepo;
-
-    private MetaUserRepo metaUserRepo;
-
-    private PurchaseLevelService purchaseLevelService;
+    private MetaPlayerWearRepo        metaPlayerWearRepo;
+    private MetaUserRepo              metaUserRepo;
+    private PurchaseLevelService      purchaseLevelService;
 
     @GetMapping("/{userId}/detail")
     public MetaRestResult<MetaPlayerInfo> findMetaPlayerInfo(@PathVariable Long userId) {

+ 1 - 1
src/main/java/com/izouma/nineth/web/MetaPlayerRoleClassifyController.java

@@ -22,7 +22,7 @@ import java.util.Objects;
 @AllArgsConstructor
 public class MetaPlayerRoleClassifyController extends BaseController {
     private MetaPlayerRoleClassifyService metaPlayerRoleClassifyService;
-    private MetaPlayerRoleClassifyRepo metaPlayerRoleClassifyRepo;
+    private MetaPlayerRoleClassifyRepo    metaPlayerRoleClassifyRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")

+ 1 - 1
src/main/java/com/izouma/nineth/web/MetaPlayerWearController.java

@@ -24,7 +24,7 @@ import java.util.List;
 @AllArgsConstructor
 public class MetaPlayerWearController extends BaseController {
     private MetaPlayerWearService metaPlayerWearService;
-    private MetaPlayerWearRepo metaPlayerWearRepo;
+    private MetaPlayerWearRepo    metaPlayerWearRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")

+ 5 - 4
src/main/java/com/izouma/nineth/web/MetaProblemController.java

@@ -1,4 +1,5 @@
 package com.izouma.nineth.web;
+
 import com.izouma.nineth.domain.MetaProblem;
 import com.izouma.nineth.dto.MetaRestResult;
 import com.izouma.nineth.dto.PageQuery;
@@ -21,7 +22,7 @@ import java.util.Objects;
 @AllArgsConstructor
 public class MetaProblemController extends BaseController {
     private MetaProblemService metaProblemService;
-    private MetaProblemRepo metaProblemRepo;
+    private MetaProblemRepo    metaProblemRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")
@@ -59,8 +60,8 @@ public class MetaProblemController extends BaseController {
     }
 
     @GetMapping("/findAll")
-    public MetaRestResult<List<MetaProblem>> findAll(){
-        return MetaRestResult.returnSuccess("查询成功",metaProblemRepo.findAllByDel(false));
+    public MetaRestResult<List<MetaProblem>> findAll() {
+        return MetaRestResult.returnSuccess("查询成功", metaProblemRepo.findAllByDel(false));
     }
 
     @GetMapping("/getAnswer/{id}")
@@ -69,7 +70,7 @@ public class MetaProblemController extends BaseController {
         if (Objects.isNull(metaProblem)) {
             return MetaRestResult.returnError("不存在该id的题目");
         }
-        return MetaRestResult.returnSuccess("查询成功",metaProblem);
+        return MetaRestResult.returnSuccess("查询成功", metaProblem);
     }
 }
 

+ 1 - 1
src/main/java/com/izouma/nineth/web/MetaPropController.java

@@ -20,7 +20,7 @@ import java.util.List;
 @AllArgsConstructor
 public class MetaPropController extends BaseController {
     private MetaPropService metaPropService;
-    private MetaPropRepo metaPropRepo;
+    private MetaPropRepo    metaPropRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")

+ 1 - 1
src/main/java/com/izouma/nineth/web/MetaQuestionController.java

@@ -22,7 +22,7 @@ import java.util.List;
 @AllArgsConstructor
 public class MetaQuestionController extends BaseController {
     private MetaQuestionService metaQuestionService;
-    private MetaQuestionRepo metaQuestionRepo;
+    private MetaQuestionRepo    metaQuestionRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")

+ 1 - 1
src/main/java/com/izouma/nineth/web/MetaResourceVersionController.java

@@ -24,7 +24,7 @@ import java.util.Objects;
 @AllArgsConstructor
 public class MetaResourceVersionController extends BaseController {
     private MetaResourceVersionService metaResourceVersionService;
-    private MetaResourceVersionRepo metaResourceVersionRepo;
+    private MetaResourceVersionRepo    metaResourceVersionRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")

+ 2 - 3
src/main/java/com/izouma/nineth/web/MetaResourcesController.java

@@ -28,9 +28,8 @@ import java.util.Objects;
 @RequestMapping("/metaResources")
 @AllArgsConstructor
 public class MetaResourcesController extends BaseController {
-    private MetaResourcesService metaResourcesService;
-    private MetaResourcesRepo metaResourcesRepo;
-
+    private MetaResourcesService        metaResourcesService;
+    private MetaResourcesRepo           metaResourcesRepo;
     private MetaResourcesLikeRecordRepo metaResourcesLikeRecordRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")

+ 1 - 1
src/main/java/com/izouma/nineth/web/MetaSignAwardController.java

@@ -21,7 +21,7 @@ import java.util.Objects;
 @AllArgsConstructor
 public class MetaSignAwardController extends BaseController {
     private MetaSignAwardService metaSignAwardService;
-    private MetaSignAwardRepo metaSignAwardRepo;
+    private MetaSignAwardRepo    metaSignAwardRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")

+ 1 - 1
src/main/java/com/izouma/nineth/web/MetaSignController.java

@@ -21,7 +21,7 @@ import java.util.Objects;
 @AllArgsConstructor
 public class MetaSignController extends BaseController {
     private MetaSignService metaSignService;
-    private MetaSignRepo metaSignRepo;
+    private MetaSignRepo    metaSignRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")

+ 2 - 2
src/main/java/com/izouma/nineth/web/MetaSpatialInfoController.java

@@ -23,7 +23,7 @@ import java.util.Objects;
 @AllArgsConstructor
 public class MetaSpatialInfoController extends BaseController {
     private MetaSpatialInfoService metaSpatialInfoService;
-    private MetaSpatialInfoRepo metaSpatialInfoRepo;
+    private MetaSpatialInfoRepo    metaSpatialInfoRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")
@@ -81,7 +81,7 @@ public class MetaSpatialInfoController extends BaseController {
         if (CollectionUtils.isEmpty(metaSpatialInfos)) {
             return MetaRestResult.returnError("当前没有符合的空间");
         }
-        return MetaRestResult.returnSuccess(metaSpatialInfos.get(MathUtils.random(0, metaSpatialInfos.size()-1)));
+        return MetaRestResult.returnSuccess(metaSpatialInfos.get(MathUtils.random(0, metaSpatialInfos.size() - 1)));
     }
 }
 

+ 1 - 2
src/main/java/com/izouma/nineth/web/MetaSpatialWharfController.java

@@ -22,8 +22,7 @@ import java.util.Objects;
 @AllArgsConstructor
 public class MetaSpatialWharfController extends BaseController {
     private MetaSpatialWharfService metaSpatialWharfService;
-
-    private MetaSpatialWharfRepo metaSpatialWharfRepo;
+    private MetaSpatialWharfRepo    metaSpatialWharfRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/all")

+ 16 - 6
src/main/java/com/izouma/nineth/web/MetaStoreController.java

@@ -7,6 +7,7 @@ import com.izouma.nineth.dto.PageQuery;
 import com.izouma.nineth.enums.MetaPropUsedType;
 import com.izouma.nineth.enums.MetaStoreCommodityType;
 import com.izouma.nineth.exception.BusinessException;
+import com.izouma.nineth.repo.MetaStorePurchaseRecordRepo;
 import com.izouma.nineth.repo.MetaStoreRepo;
 import com.izouma.nineth.repo.MetaUserPropRepo;
 import com.izouma.nineth.service.MetaStoreService;
@@ -28,11 +29,10 @@ import java.util.Objects;
 @AllArgsConstructor
 public class MetaStoreController extends BaseController {
 
-    private MetaStoreService metaStoreService;
-
-    private MetaStoreRepo metaStoreRepo;
-
-    private MetaUserPropRepo metaUserPropRepo;
+    private MetaStoreService            metaStoreService;
+    private MetaStoreRepo               metaStoreRepo;
+    private MetaUserPropRepo            metaUserPropRepo;
+    private MetaStorePurchaseRecordRepo metaStorePurchaseRecordRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")
@@ -120,15 +120,25 @@ public class MetaStoreController extends BaseController {
         if (CollectionUtils.isEmpty(metaStores)) {
             return MetaRestResult.returnSuccess(metaStores);
         }
+        Long userId = SecurityUtils.getAuthenticatedUser().getId();
         if (MetaStoreCommodityType.META_PROP.equals(commodityType)) {
-            Long userId = SecurityUtils.getAuthenticatedUser().getId();
             metaStores.forEach(metaStore -> {
                 MetaUserProp metaUserProp = metaUserPropRepo.findByUserIdAndMetaPropIdAndDel(userId, metaStore.getMetaPropId(), false);
                 if (Objects.nonNull(metaUserProp) && MetaPropUsedType.PERMANENT.equals(metaUserProp.getUsedType()) && metaUserProp.getNum() >= 1) {
                     metaStore.setCanPurchase(false);
                 }
             });
+            return MetaRestResult.returnSuccess(metaStores);
         }
+        metaStores.forEach(metaStore -> {
+            int count = metaStorePurchaseRecordRepo.countByMetaStoreIdAndUserId(metaStore.getId(), userId);
+            if (metaStore.getPurchaseLimitNum() > count) {
+                metaStore.setRemainingPurchaseNum(metaStore.getPurchaseLimitNum() - count);
+            } else {
+                metaStore.setRemainingPurchaseNum(0);
+                metaStore.setCanPurchase(false);
+            }
+        });
         return MetaRestResult.returnSuccess(metaStores);
     }
 }

+ 1 - 1
src/main/java/com/izouma/nineth/web/MetaSwitchController.java

@@ -22,7 +22,7 @@ import java.util.Objects;
 @AllArgsConstructor
 public class MetaSwitchController extends BaseController {
     private MetaSwitchService metaSwitchService;
-    private MetaSwitchRepo metaSwitchRepo;
+    private MetaSwitchRepo    metaSwitchRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")

+ 1 - 1
src/main/java/com/izouma/nineth/web/MetaTaskActivityController.java

@@ -21,7 +21,7 @@ import java.util.List;
 @AllArgsConstructor
 public class MetaTaskActivityController extends BaseController {
     private MetaTaskActivityService metaTaskActivityService;
-    private MetaTaskActivityRepo metaTaskActivityRepo;
+    private MetaTaskActivityRepo    metaTaskActivityRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")

+ 4 - 8
src/main/java/com/izouma/nineth/web/MetaTaskController.java

@@ -29,15 +29,11 @@ import java.util.Objects;
 @RequestMapping("/metaTask")
 @AllArgsConstructor
 public class MetaTaskController extends BaseController {
-    private MetaTaskService metaTaskService;
-
-    private MetaTaskRepo metaTaskRepo;
-
+    private MetaTaskService    metaTaskService;
+    private MetaTaskRepo       metaTaskRepo;
     private MetaTaskToUserRepo metaTaskToUserRepo;
-
-    private CollectionRepo collectionRepo;
-
-    private MetaPropRepo metaPropRepo;
+    private CollectionRepo     collectionRepo;
+    private MetaPropRepo       metaPropRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")

+ 1 - 2
src/main/java/com/izouma/nineth/web/MetaTaskNewController.java

@@ -20,8 +20,7 @@ import java.util.List;
 public class MetaTaskNewController extends BaseController {
 
     private MetaTaskNewService metaTaskNewService;
-
-    private MetaTaskNewRepo metaTaskNewRepo;
+    private MetaTaskNewRepo    metaTaskNewRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")

+ 1 - 2
src/main/java/com/izouma/nineth/web/MetaTaskToUserController.java

@@ -23,8 +23,7 @@ import java.util.Objects;
 public class MetaTaskToUserController {
 
     private MetaTaskToUserService metaTaskToUserService;
-
-    private MetaTaskToUserRepo metaTaskToUserRepo;
+    private MetaTaskToUserRepo    metaTaskToUserRepo;
 
     @PostMapping("/all")
     public Page<MetaTaskToUser> all(@RequestBody PageQuery pageQuery) {

+ 1 - 2
src/main/java/com/izouma/nineth/web/MetaTaskToUserNewController.java

@@ -22,8 +22,7 @@ import java.util.Objects;
 public class MetaTaskToUserNewController {
 
     private MetaTaskToUserNewService metaTaskToUserNewService;
-
-    private MetaTaskToUserNewRepo metaTaskToUserNewRepo;
+    private MetaTaskToUserNewRepo    metaTaskToUserNewRepo;
 
     @PostMapping("/all")
     public Page<MetaTaskToUserNew> all(@RequestBody PageQuery pageQuery) {

+ 3 - 6
src/main/java/com/izouma/nineth/web/MetaUserBagController.java

@@ -34,12 +34,9 @@ import static java.util.stream.Collectors.toCollection;
 @AllArgsConstructor
 public class MetaUserBagController {
 
-    private MetaUserPropRepo metaUserPropRepo;
-
-    private MetaParamsConfigService metaParamsConfigService;
-
-    private AssetRepo assetRepo;
-
+    private MetaUserPropRepo             metaUserPropRepo;
+    private MetaParamsConfigService      metaParamsConfigService;
+    private AssetRepo                    assetRepo;
     private MetaBagAssetEffectConfigRepo metaBagAssetEffectConfigRepo;
 
     @GetMapping("/query")

+ 2 - 3
src/main/java/com/izouma/nineth/web/MetaUserController.java

@@ -23,9 +23,8 @@ import java.util.Objects;
 @RequestMapping("/metaUser")
 @AllArgsConstructor
 public class MetaUserController extends BaseController {
-    private MetaUserService metaUserService;
-    private MetaUserRepo metaUserRepo;
-
+    private MetaUserService  metaUserService;
+    private MetaUserRepo     metaUserRepo;
     private SysConfigService sysConfigService;
 
     //@PreAuthorize("hasRole('ADMIN')")

+ 60 - 0
src/main/java/com/izouma/nineth/web/MetaUserFriendController.java

@@ -0,0 +1,60 @@
+package com.izouma.nineth.web;
+
+import com.izouma.nineth.domain.MetaUserFriend;
+import com.izouma.nineth.domain.MetaUserFriendApplyRecord;
+import com.izouma.nineth.dto.MetaRestResult;
+import com.izouma.nineth.dto.MetaUserFriendAndApplyDTO;
+import com.izouma.nineth.enums.MetaUserFriendOperateType;
+import com.izouma.nineth.service.MetaUserFriendService;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/metaUserFriend")
+@AllArgsConstructor
+public class MetaUserFriendController extends BaseController {
+
+    private MetaUserFriendService metaUserFriendService;
+
+    @GetMapping("/allFriendsAndApply")
+    public MetaRestResult<MetaUserFriendAndApplyDTO> allFriendsAndApply() {
+        return metaUserFriendService.allFriendsAndApply();
+    }
+
+    @GetMapping("/allFriend")
+    public MetaRestResult<List<MetaUserFriend>> allFriends() {
+        return metaUserFriendService.allFriends();
+    }
+
+    @GetMapping("/allApply")
+    public MetaRestResult<List<MetaUserFriendApplyRecord>> allApply() {
+        return metaUserFriendService.allApply();
+    }
+
+    @PostMapping("/apply")
+    public MetaRestResult<MetaUserFriendApplyRecord> apply(@RequestBody MetaUserFriendApplyRecord metaUserFriendApplyRecord) {
+        return metaUserFriendService.apply(metaUserFriendApplyRecord);
+    }
+
+    @PostMapping("{metaUserFriendApplyRecordId}/delApply")
+    public MetaRestResult<Void> delApply(@PathVariable Long metaUserFriendApplyRecordId) {
+        return metaUserFriendService.delApply(metaUserFriendApplyRecordId);
+    }
+
+    @PostMapping("/{metaUserFriendApplyRecordId}/pass")
+    public MetaRestResult<Void> pass(@PathVariable Long metaUserFriendApplyRecordId) {
+        return metaUserFriendService.operatingApply(metaUserFriendApplyRecordId, MetaUserFriendOperateType.PASS);
+    }
+
+    @PostMapping("/{metaUserFriendApplyRecordId}/refuse")
+    public MetaRestResult<Void> refuse(@PathVariable Long metaUserFriendApplyRecordId) {
+        return metaUserFriendService.operatingApply(metaUserFriendApplyRecordId, MetaUserFriendOperateType.REFUSE);
+    }
+
+    @PostMapping("/{friendId}/del")
+    public MetaRestResult<Void> del(@PathVariable Long friendId) {
+        return metaUserFriendService.del(friendId);
+    }
+}

+ 1 - 2
src/main/java/com/izouma/nineth/web/MetaUserGoldController.java

@@ -24,8 +24,7 @@ import java.util.Objects;
 @Slf4j
 public class MetaUserGoldController extends BaseController {
     private MetaUserGoldService metaUserGoldService;
-
-    private MetaUserGoldRepo metaUserGoldRepo;
+    private MetaUserGoldRepo    metaUserGoldRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")

+ 7 - 0
src/main/java/com/izouma/nineth/web/MetaUserGoldRecordController.java

@@ -1,6 +1,8 @@
 package com.izouma.nineth.web;
 
 import com.izouma.nineth.domain.MetaUserGoldRecord;
+import com.izouma.nineth.dto.MetaRankDTO;
+import com.izouma.nineth.dto.MetaRestResult;
 import com.izouma.nineth.dto.PageQuery;
 import com.izouma.nineth.exception.BusinessException;
 import com.izouma.nineth.repo.MetaUserGoldRecordRepo;
@@ -56,5 +58,10 @@ public class MetaUserGoldRecordController extends BaseController {
         List<MetaUserGoldRecord> data = all(pageQuery).getContent();
         ExcelUtils.export(response, data);
     }
+
+    @GetMapping("/top")
+    public MetaRestResult<List<MetaRankDTO>> top() {
+        return metaUserGoldRecordService.top();
+    }
 }
 

+ 1 - 1
src/main/java/com/izouma/nineth/web/MetaUserPropController.java

@@ -23,7 +23,7 @@ import java.util.Objects;
 @AllArgsConstructor
 public class MetaUserPropController extends BaseController {
     private MetaUserPropService metaUserPropService;
-    private MetaUserPropRepo metaUserPropRepo;
+    private MetaUserPropRepo    metaUserPropRepo;
 
     @PostMapping("/receive")
     public MetaRestResult<MetaUserProp> receive(Long metaPropId, int num) {

+ 1 - 1
src/main/java/com/izouma/nineth/web/MetaUserPropRecordController.java

@@ -19,7 +19,7 @@ import java.util.List;
 @AllArgsConstructor
 public class MetaUserPropRecordController extends BaseController {
     private MetaUserPropRecordService metaUserPropRecordService;
-    private MetaUserPropRecordRepo metaUserPropRecordRepo;
+    private MetaUserPropRecordRepo    metaUserPropRecordRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/all")

+ 1 - 2
src/main/java/com/izouma/nineth/web/MetaUserTaskProgressController.java

@@ -21,8 +21,7 @@ import java.util.List;
 @AllArgsConstructor
 public class MetaUserTaskProgressController extends BaseController {
     private MetaUserTaskProgressService metaUserTaskProgressService;
-
-    private MetaUserTaskProgressRepo metaUserTaskProgressRepo;
+    private MetaUserTaskProgressRepo    metaUserTaskProgressRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")

+ 1 - 2
src/main/java/com/izouma/nineth/web/MetaUserTaskProgressNewController.java

@@ -21,8 +21,7 @@ import java.util.List;
 public class MetaUserTaskProgressNewController extends BaseController {
 
     private MetaUserTaskProgressNewService metaUserTaskProgressNewService;
-
-    private MetaUserTaskProgressNewRepo metaUserTaskProgressNewRepo;
+    private MetaUserTaskProgressNewRepo    metaUserTaskProgressNewRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/all")

Some files were not shown because too many files changed in this diff