init
This commit is contained in:
parent
ba0705b62d
commit
b96c8d1cd4
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
cd $PWD
|
cd $PWD
|
||||||
pid=$(ps -ef | grep club-nfc.jar | grep -v grep | awk '{print $2}')
|
pid=$(ps -ef | grep drone-coding.jar | grep -v grep | awk '{print $2}')
|
||||||
if [ -n "$pid" ]; then
|
if [ -n "$pid" ]; then
|
||||||
kill -9 $pid
|
kill -9 $pid
|
||||||
fi
|
fi
|
||||||
|
@ -22,8 +22,8 @@ else
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 根据情况修改 web.war 为您的 war 包名称
|
# 根据情况修改 web.war 为您的 war 包名称
|
||||||
nohup $RUN_JAVA $JAVA_OPTS -jar club-nfc.jar > system.log 2>&1 &
|
nohup $RUN_JAVA $JAVA_OPTS -jar drone-coding.jar > system.log 2>&1 &
|
||||||
|
|
||||||
sleep 1
|
sleep 1
|
||||||
pid=$(ps -ef | grep club-nfc.jar | grep -v grep | awk '{print $2}')
|
pid=$(ps -ef | grep drone-coding.jar | grep -v grep | awk '{print $2}')
|
||||||
echo $pid6
|
echo $pid6
|
||||||
|
|
|
@ -1,780 +0,0 @@
|
||||||
#
|
|
||||||
# There is insufficient memory for the Java Runtime Environment to continue.
|
|
||||||
# Native memory allocation (mmap) failed to map 67108864 bytes for G1 virtual space
|
|
||||||
# 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
|
|
||||||
# Decrease Java thread stack sizes (-Xss)
|
|
||||||
# Set larger code cache with -XX:ReservedCodeCacheSize=
|
|
||||||
# JVM is running with Zero Based Compressed Oops mode in which the Java heap is
|
|
||||||
# placed in the first 32GB address space. The Java Heap base address is the
|
|
||||||
# maximum limit for the native heap growth. Please use -XX:HeapBaseMinAddress
|
|
||||||
# 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 (os_windows.cpp:3550), pid=8424, tid=14764
|
|
||||||
#
|
|
||||||
# JRE version: Java(TM) SE Runtime Environment (17.0.7+8) (build 17.0.7+8-LTS-224)
|
|
||||||
# Java VM: Java HotSpot(TM) 64-Bit Server VM (17.0.7+8-LTS-224, mixed mode, emulated-client, sharing, tiered, compressed oops, compressed class ptrs, 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 -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true -Dmanagement.endpoints.jmx.exposure.include=* -javaagent:D:\Program Files\JetBrains\IntelliJ IDEA 2021.2.4\lib\idea_rt.jar=62085:D:\Program Files\JetBrains\IntelliJ IDEA 2021.2.4\bin -Dfile.encoding=UTF-8 cn.workde.Application
|
|
||||||
|
|
||||||
Host: Intel(R) Core(TM) i5-10210U CPU @ 1.60GHz, 8 cores, 15G, Windows 11 , 64 bit Build 22621 (10.0.22621.3527)
|
|
||||||
Time: Wed May 22 15:12:15 2024 Windows 11 , 64 bit Build 22621 (10.0.22621.3527) elapsed time: 10.306436 seconds (0d 0h 0m 10s)
|
|
||||||
|
|
||||||
--------------- T H R E A D ---------------
|
|
||||||
|
|
||||||
Current thread (0x0000023938c4e3d0): VMThread "VM Thread" [stack: 0x0000007486e00000,0x0000007486f00000] [id=14764]
|
|
||||||
|
|
||||||
Stack: [0x0000007486e00000,0x0000007486f00000]
|
|
||||||
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
|
|
||||||
V [jvm.dll+0x676a4a]
|
|
||||||
V [jvm.dll+0x7d74f4]
|
|
||||||
V [jvm.dll+0x7d8c9e]
|
|
||||||
V [jvm.dll+0x7d9303]
|
|
||||||
V [jvm.dll+0x2452c5]
|
|
||||||
V [jvm.dll+0x6738f9]
|
|
||||||
V [jvm.dll+0x668232]
|
|
||||||
V [jvm.dll+0x302826]
|
|
||||||
V [jvm.dll+0x309da6]
|
|
||||||
V [jvm.dll+0x35952e]
|
|
||||||
V [jvm.dll+0x35975f]
|
|
||||||
V [jvm.dll+0x2d9a38]
|
|
||||||
V [jvm.dll+0x2d7e45]
|
|
||||||
V [jvm.dll+0x2d744c]
|
|
||||||
V [jvm.dll+0x31ab1b]
|
|
||||||
V [jvm.dll+0x7ddb0b]
|
|
||||||
V [jvm.dll+0x7de844]
|
|
||||||
V [jvm.dll+0x7ded5d]
|
|
||||||
V [jvm.dll+0x7df134]
|
|
||||||
V [jvm.dll+0x7df200]
|
|
||||||
V [jvm.dll+0x78759a]
|
|
||||||
V [jvm.dll+0x675875]
|
|
||||||
C [ucrtbase.dll+0x29333]
|
|
||||||
C [KERNEL32.DLL+0x1257d]
|
|
||||||
C [ntdll.dll+0x5aa48]
|
|
||||||
|
|
||||||
VM_Operation (0x00000074868fda90): G1CollectForAllocation, mode: safepoint, requested by thread 0x0000023922142190
|
|
||||||
|
|
||||||
|
|
||||||
--------------- P R O C E S S ---------------
|
|
||||||
|
|
||||||
Threads class SMR info:
|
|
||||||
_java_thread_list=0x000002393dca2430, length=56, elements={
|
|
||||||
0x0000023922142190, 0x0000023938c52670, 0x0000023938c533f0, 0x0000023939811490,
|
|
||||||
0x0000023939814220, 0x00000239398183a0, 0x0000023939818c60, 0x0000023939819d70,
|
|
||||||
0x000002393981fa20, 0x00000239398ba890, 0x00000239399bf740, 0x00000239399c3c60,
|
|
||||||
0x000002393a190290, 0x000002393a196190, 0x000002393a2e3270, 0x000002393ab32560,
|
|
||||||
0x000002393d398a60, 0x00000239399c7390, 0x00000239399c7860, 0x000002393d450a20,
|
|
||||||
0x000002393d8b79e0, 0x000002393d85f1d0, 0x000002393d942550, 0x000002393d940d40,
|
|
||||||
0x000002393d941210, 0x000002393d93f530, 0x000002393d93f060, 0x000002393d941bb0,
|
|
||||||
0x000002393d93fa00, 0x000002393d9416e0, 0x000002393d93fed0, 0x000002393d942080,
|
|
||||||
0x000002393d9403a0, 0x000002393d942a20, 0x000002393d940870, 0x000002393da0a780,
|
|
||||||
0x000002393da07760, 0x000002393da08100, 0x000002393da0ac50, 0x000002393da07c30,
|
|
||||||
0x000002393da0eae0, 0x000002393da09440, 0x000002393da0bac0, 0x000002393da0bf90,
|
|
||||||
0x000002393da0c930, 0x000002393da0e610, 0x000002393da0c460, 0x000002393da07290,
|
|
||||||
0x000002393da0d7a0, 0x000002393da085d0, 0x000002393da0e140, 0x000002393da0dc70,
|
|
||||||
0x000002393da09910, 0x000002393da0ce00, 0x000002393da0b120, 0x000002393da0b5f0
|
|
||||||
}
|
|
||||||
|
|
||||||
Java Threads: ( => current thread )
|
|
||||||
0x0000023922142190 JavaThread "main" [_thread_blocked, id=10008, stack(0x0000007486800000,0x0000007486900000)]
|
|
||||||
0x0000023938c52670 JavaThread "Reference Handler" daemon [_thread_blocked, id=6088, stack(0x0000007486f00000,0x0000007487000000)]
|
|
||||||
0x0000023938c533f0 JavaThread "Finalizer" daemon [_thread_blocked, id=13948, stack(0x0000007487000000,0x0000007487100000)]
|
|
||||||
0x0000023939811490 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=25164, stack(0x0000007487100000,0x0000007487200000)]
|
|
||||||
0x0000023939814220 JavaThread "Attach Listener" daemon [_thread_blocked, id=20912, stack(0x0000007487200000,0x0000007487300000)]
|
|
||||||
0x00000239398183a0 JavaThread "Service Thread" daemon [_thread_blocked, id=3060, stack(0x0000007487300000,0x0000007487400000)]
|
|
||||||
0x0000023939818c60 JavaThread "Monitor Deflation Thread" daemon [_thread_blocked, id=20764, stack(0x0000007487400000,0x0000007487500000)]
|
|
||||||
0x0000023939819d70 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=12980, stack(0x0000007487500000,0x0000007487600000)]
|
|
||||||
0x000002393981fa20 JavaThread "Sweeper thread" daemon [_thread_blocked, id=9796, stack(0x0000007487600000,0x0000007487700000)]
|
|
||||||
0x00000239398ba890 JavaThread "Common-Cleaner" daemon [_thread_blocked, id=5368, stack(0x0000007487700000,0x0000007487800000)]
|
|
||||||
0x00000239399bf740 JavaThread "C1 CompilerThread1" daemon [_thread_blocked, id=21132, stack(0x0000007487800000,0x0000007487900000)]
|
|
||||||
0x00000239399c3c60 JavaThread "C1 CompilerThread2" daemon [_thread_blocked, id=22444, stack(0x0000007487900000,0x0000007487a00000)]
|
|
||||||
0x000002393a190290 JavaThread "Monitor Ctrl-Break" daemon [_thread_in_native, id=11728, stack(0x0000007487a00000,0x0000007487b00000)]
|
|
||||||
0x000002393a196190 JavaThread "Notification Thread" daemon [_thread_blocked, id=10088, stack(0x0000007487b00000,0x0000007487c00000)]
|
|
||||||
0x000002393a2e3270 JavaThread "RMI TCP Accept-0" daemon [_thread_in_native, id=16228, stack(0x0000007487c00000,0x0000007487d00000)]
|
|
||||||
0x000002393ab32560 JavaThread "C1 CompilerThread3" daemon [_thread_blocked, id=9864, stack(0x0000007488700000,0x0000007488800000)]
|
|
||||||
0x000002393d398a60 JavaThread "Catalina-utility-1" [_thread_blocked, id=18404, stack(0x0000007488800000,0x0000007488900000)]
|
|
||||||
0x00000239399c7390 JavaThread "Catalina-utility-2" [_thread_blocked, id=14436, stack(0x0000007488a00000,0x0000007488b00000)]
|
|
||||||
0x00000239399c7860 JavaThread "container-0" [_thread_blocked, id=12912, stack(0x0000007488b00000,0x0000007488c00000)]
|
|
||||||
0x000002393d450a20 JavaThread "Thread-1" daemon [_thread_in_native, id=23812, stack(0x0000007488c00000,0x0000007488d00000)]
|
|
||||||
0x000002393d8b79e0 JavaThread "redisson-netty-2-1" [_thread_in_native, id=10544, stack(0x0000007488d00000,0x0000007488e00000)]
|
|
||||||
0x000002393d85f1d0 JavaThread "redisson-netty-2-2" [_thread_in_native, id=25144, stack(0x0000007488e00000,0x0000007488f00000)]
|
|
||||||
0x000002393d942550 JavaThread "redisson-netty-2-3" [_thread_in_native, id=23576, stack(0x0000007488f00000,0x0000007489000000)]
|
|
||||||
0x000002393d940d40 JavaThread "redisson-netty-2-4" [_thread_in_native, id=14732, stack(0x0000007489000000,0x0000007489100000)]
|
|
||||||
0x000002393d941210 JavaThread "redisson-timer-4-1" [_thread_blocked, id=19608, stack(0x0000007489200000,0x0000007489300000)]
|
|
||||||
0x000002393d93f530 JavaThread "redisson-netty-2-5" [_thread_in_native, id=15404, stack(0x0000007489300000,0x0000007489400000)]
|
|
||||||
0x000002393d93f060 JavaThread "redisson-netty-2-6" [_thread_in_native, id=4504, stack(0x0000007489400000,0x0000007489500000)]
|
|
||||||
0x000002393d941bb0 JavaThread "redisson-netty-2-7" [_thread_in_native, id=20820, stack(0x0000007489500000,0x0000007489600000)]
|
|
||||||
0x000002393d93fa00 JavaThread "redisson-netty-2-8" [_thread_in_native, id=25156, stack(0x0000007489600000,0x0000007489700000)]
|
|
||||||
0x000002393d9416e0 JavaThread "redisson-netty-2-9" [_thread_in_native, id=1292, stack(0x0000007489700000,0x0000007489800000)]
|
|
||||||
0x000002393d93fed0 JavaThread "redisson-netty-2-10" [_thread_in_native, id=19860, stack(0x0000007489800000,0x0000007489900000)]
|
|
||||||
0x000002393d942080 JavaThread "redisson-netty-2-11" [_thread_in_native, id=24496, stack(0x0000007489900000,0x0000007489a00000)]
|
|
||||||
0x000002393d9403a0 JavaThread "redisson-netty-2-12" [_thread_in_native, id=8920, stack(0x0000007489a00000,0x0000007489b00000)]
|
|
||||||
0x000002393d942a20 JavaThread "redisson-netty-2-13" [_thread_in_native, id=2252, stack(0x0000007489b00000,0x0000007489c00000)]
|
|
||||||
0x000002393d940870 JavaThread "redisson-netty-2-14" [_thread_in_native, id=25312, stack(0x0000007489c00000,0x0000007489d00000)]
|
|
||||||
0x000002393da0a780 JavaThread "redisson-netty-2-15" [_thread_in_native, id=23700, stack(0x0000007489d00000,0x0000007489e00000)]
|
|
||||||
0x000002393da07760 JavaThread "redisson-netty-2-16" [_thread_in_native, id=6460, stack(0x0000007489e00000,0x0000007489f00000)]
|
|
||||||
0x000002393da08100 JavaThread "redisson-netty-2-17" [_thread_in_native, id=16868, stack(0x0000007489f00000,0x000000748a000000)]
|
|
||||||
0x000002393da0ac50 JavaThread "redisson-netty-2-18" [_thread_in_native, id=23564, stack(0x000000748a000000,0x000000748a100000)]
|
|
||||||
0x000002393da07c30 JavaThread "redisson-netty-2-19" [_thread_in_native, id=21992, stack(0x000000748a100000,0x000000748a200000)]
|
|
||||||
0x000002393da0eae0 JavaThread "redisson-netty-2-20" [_thread_in_native, id=14076, stack(0x000000748a200000,0x000000748a300000)]
|
|
||||||
0x000002393da09440 JavaThread "redisson-netty-2-21" [_thread_in_native, id=6948, stack(0x000000748a300000,0x000000748a400000)]
|
|
||||||
0x000002393da0bac0 JavaThread "redisson-netty-2-22" [_thread_in_native, id=17608, stack(0x000000748a400000,0x000000748a500000)]
|
|
||||||
0x000002393da0bf90 JavaThread "redisson-netty-2-23" [_thread_in_native, id=25272, stack(0x000000748a500000,0x000000748a600000)]
|
|
||||||
0x000002393da0c930 JavaThread "redisson-netty-2-24" [_thread_in_native, id=3304, stack(0x000000748a600000,0x000000748a700000)]
|
|
||||||
0x000002393da0e610 JavaThread "redisson-netty-2-25" [_thread_in_native, id=20732, stack(0x000000748a700000,0x000000748a800000)]
|
|
||||||
0x000002393da0c460 JavaThread "redisson-netty-2-26" [_thread_in_native, id=22208, stack(0x000000748a800000,0x000000748a900000)]
|
|
||||||
0x000002393da07290 JavaThread "redisson-netty-2-27" [_thread_in_native, id=2008, stack(0x000000748a900000,0x000000748aa00000)]
|
|
||||||
0x000002393da0d7a0 JavaThread "redisson-netty-2-28" [_thread_in_native, id=23224, stack(0x000000748aa00000,0x000000748ab00000)]
|
|
||||||
0x000002393da085d0 JavaThread "redisson-netty-2-29" [_thread_in_native, id=24388, stack(0x000000748ab00000,0x000000748ac00000)]
|
|
||||||
0x000002393da0e140 JavaThread "redisson-netty-2-30" [_thread_in_native, id=13404, stack(0x000000748ac00000,0x000000748ad00000)]
|
|
||||||
0x000002393da0dc70 JavaThread "redisson-netty-2-31" [_thread_in_native, id=25028, stack(0x000000748ad00000,0x000000748ae00000)]
|
|
||||||
0x000002393da09910 JavaThread "redisson-netty-2-32" [_thread_in_native, id=12008, stack(0x000000748ae00000,0x000000748af00000)]
|
|
||||||
0x000002393da0ce00 JavaThread "Keep-Alive-Timer" daemon [_thread_blocked, id=20876, stack(0x000000748af00000,0x000000748b000000)]
|
|
||||||
0x000002393da0b120 JavaThread "Icc-Refresh-Token1" daemon [_thread_blocked, id=18544, stack(0x000000748b000000,0x000000748b100000)]
|
|
||||||
0x000002393da0b5f0 JavaThread "lettuce-timer-6-1" daemon [_thread_blocked, id=24764, stack(0x000000748b100000,0x000000748b200000)]
|
|
||||||
|
|
||||||
Other Threads:
|
|
||||||
=>0x0000023938c4e3d0 VMThread "VM Thread" [stack: 0x0000007486e00000,0x0000007486f00000] [id=14764]
|
|
||||||
0x00000239221cafd0 WatcherThread [stack: 0x0000007487d00000,0x0000007487e00000] [id=11824]
|
|
||||||
0x00000239221af970 GCTaskThread "GC Thread#0" [stack: 0x0000007486900000,0x0000007486a00000] [id=15384]
|
|
||||||
0x000002393a3b7e30 GCTaskThread "GC Thread#1" [stack: 0x0000007487e00000,0x0000007487f00000] [id=5700]
|
|
||||||
0x000002393a365d70 GCTaskThread "GC Thread#2" [stack: 0x0000007487f00000,0x0000007488000000] [id=24868]
|
|
||||||
0x000002393a366020 GCTaskThread "GC Thread#3" [stack: 0x0000007488000000,0x0000007488100000] [id=19436]
|
|
||||||
0x000002393a3fd970 GCTaskThread "GC Thread#4" [stack: 0x0000007488100000,0x0000007488200000] [id=3764]
|
|
||||||
0x000002393a3fe0a0 GCTaskThread "GC Thread#5" [stack: 0x0000007488200000,0x0000007488300000] [id=22636]
|
|
||||||
0x000002393a900e10 GCTaskThread "GC Thread#6" [stack: 0x0000007488300000,0x0000007488400000] [id=15592]
|
|
||||||
0x000002393a9034e0 GCTaskThread "GC Thread#7" [stack: 0x0000007488400000,0x0000007488500000] [id=5268]
|
|
||||||
0x00000239221c0540 ConcurrentGCThread "G1 Main Marker" [stack: 0x0000007486a00000,0x0000007486b00000] [id=23748]
|
|
||||||
0x00000239221c2610 ConcurrentGCThread "G1 Conc#0" [stack: 0x0000007486b00000,0x0000007486c00000] [id=3168]
|
|
||||||
0x000002393ae776d0 ConcurrentGCThread "G1 Conc#1" [stack: 0x0000007488900000,0x0000007488a00000] [id=14820]
|
|
||||||
0x0000023938b0b200 ConcurrentGCThread "G1 Refine#0" [stack: 0x0000007486c00000,0x0000007486d00000] [id=20492]
|
|
||||||
0x000002393a3f4470 ConcurrentGCThread "G1 Refine#1" [stack: 0x0000007488500000,0x0000007488600000] [id=17004]
|
|
||||||
0x000002393a3febe0 ConcurrentGCThread "G1 Refine#2" [stack: 0x0000007488600000,0x0000007488700000] [id=1924]
|
|
||||||
0x0000023938b0ba30 ConcurrentGCThread "G1 Service" [stack: 0x0000007486d00000,0x0000007486e00000] [id=22572]
|
|
||||||
|
|
||||||
Threads with active compile tasks:
|
|
||||||
|
|
||||||
VM state: at safepoint (normal execution)
|
|
||||||
|
|
||||||
VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event])
|
|
||||||
[0x000002392213ee20] Threads_lock - owner thread: 0x0000023938c4e3d0
|
|
||||||
[0x000002392213f060] Heap_lock - owner thread: 0x0000023922142190
|
|
||||||
|
|
||||||
Heap address: 0x0000000702800000, size: 4056 MB, Compressed Oops mode: Zero based, Oop shift amount: 3
|
|
||||||
|
|
||||||
CDS archive(s) mapped at: [0x0000000800000000-0x0000000800bd0000-0x0000000800bd0000), size 12386304, SharedBaseAddress: 0x0000000800000000, ArchiveRelocationMode: 0.
|
|
||||||
Compressed class space mapped at: 0x0000000800c00000-0x0000000840c00000, reserved size: 1073741824
|
|
||||||
Narrow klass base: 0x0000000800000000, Narrow klass shift: 0, Narrow klass range: 0x100000000
|
|
||||||
|
|
||||||
GC Precious Log:
|
|
||||||
CPUs: 8 total, 8 available
|
|
||||||
Memory: 16217M
|
|
||||||
Large Page Support: Disabled
|
|
||||||
NUMA Support: Disabled
|
|
||||||
Compressed Oops: Enabled (Zero based)
|
|
||||||
Heap Region Size: 2M
|
|
||||||
Heap Min Capacity: 8M
|
|
||||||
Heap Initial Capacity: 254M
|
|
||||||
Heap Max Capacity: 4056M
|
|
||||||
Pre-touch: Disabled
|
|
||||||
Parallel Workers: 8
|
|
||||||
Concurrent Workers: 2
|
|
||||||
Concurrent Refinement Workers: 8
|
|
||||||
Periodic GC: Disabled
|
|
||||||
|
|
||||||
Heap:
|
|
||||||
garbage-first heap total 194560K, used 87891K [0x0000000702800000, 0x0000000800000000)
|
|
||||||
region size 2048K, 1 young (2048K), 1 survivors (2048K)
|
|
||||||
Metaspace used 68301K, committed 68864K, reserved 1114112K
|
|
||||||
class space used 9119K, committed 9408K, reserved 1048576K
|
|
||||||
|
|
||||||
Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, OA=open archive, CA=closed archive, TAMS=top-at-mark-start (previous, next)
|
|
||||||
| 0|0x0000000702800000, 0x0000000702a00000, 0x0000000702a00000|100%| O| |TAMS 0x0000000702a00000, 0x0000000702800000| Untracked
|
|
||||||
| 1|0x0000000702a00000, 0x0000000702c00000, 0x0000000702c00000|100%| O| |TAMS 0x0000000702c00000, 0x0000000702a00000| Untracked
|
|
||||||
| 2|0x0000000702c00000, 0x0000000702e00000, 0x0000000702e00000|100%| O| |TAMS 0x0000000702e00000, 0x0000000702c00000| Untracked
|
|
||||||
| 3|0x0000000702e00000, 0x0000000703000000, 0x0000000703000000|100%| O| |TAMS 0x0000000703000000, 0x0000000702e00000| Untracked
|
|
||||||
| 4|0x0000000703000000, 0x0000000703200000, 0x0000000703200000|100%| O| |TAMS 0x0000000703200000, 0x0000000703000000| Untracked
|
|
||||||
| 5|0x0000000703200000, 0x0000000703361800, 0x0000000703400000| 69%| O| |TAMS 0x0000000703361800, 0x0000000703200000| Untracked
|
|
||||||
| 6|0x0000000703400000, 0x0000000703600000, 0x0000000703600000|100%| O| |TAMS 0x0000000703600000, 0x0000000703400000| Untracked
|
|
||||||
| 7|0x0000000703600000, 0x0000000703800000, 0x0000000703800000|100%| O| |TAMS 0x0000000703800000, 0x0000000703600000| Untracked
|
|
||||||
| 8|0x0000000703800000, 0x0000000703a00000, 0x0000000703a00000|100%| O| |TAMS 0x0000000703a00000, 0x0000000703800000| Untracked
|
|
||||||
| 9|0x0000000703a00000, 0x0000000703c00000, 0x0000000703c00000|100%| O| |TAMS 0x0000000703c00000, 0x0000000703a00000| Untracked
|
|
||||||
| 10|0x0000000703c00000, 0x0000000703e00000, 0x0000000703e00000|100%| O| |TAMS 0x0000000703e00000, 0x0000000703c00000| Untracked
|
|
||||||
| 11|0x0000000703e00000, 0x0000000704000000, 0x0000000704000000|100%| O| |TAMS 0x0000000704000000, 0x0000000703e00000| Untracked
|
|
||||||
| 12|0x0000000704000000, 0x0000000704200000, 0x0000000704200000|100%| O| |TAMS 0x0000000704200000, 0x0000000704000000| Untracked
|
|
||||||
| 13|0x0000000704200000, 0x0000000704400000, 0x0000000704400000|100%| O| |TAMS 0x0000000704400000, 0x0000000704200000| Untracked
|
|
||||||
| 14|0x0000000704400000, 0x0000000704600000, 0x0000000704600000|100%| O| |TAMS 0x0000000704600000, 0x0000000704400000| Untracked
|
|
||||||
| 15|0x0000000704600000, 0x0000000704800000, 0x0000000704800000|100%| O| |TAMS 0x0000000704800000, 0x0000000704600000| Untracked
|
|
||||||
| 16|0x0000000704800000, 0x0000000704a00000, 0x0000000704a00000|100%| O| |TAMS 0x0000000704a00000, 0x0000000704800000| Untracked
|
|
||||||
| 17|0x0000000704a00000, 0x0000000704c00000, 0x0000000704c00000|100%| O| |TAMS 0x0000000704c00000, 0x0000000704a00000| Untracked
|
|
||||||
| 18|0x0000000704c00000, 0x0000000704e00000, 0x0000000704e00000|100%| O| |TAMS 0x0000000704e00000, 0x0000000704c00000| Untracked
|
|
||||||
| 19|0x0000000704e00000, 0x0000000705000000, 0x0000000705000000|100%| O| |TAMS 0x0000000705000000, 0x0000000704e00000| Untracked
|
|
||||||
| 20|0x0000000705000000, 0x0000000705200000, 0x0000000705200000|100%| O| |TAMS 0x0000000705200000, 0x0000000705000000| Untracked
|
|
||||||
| 21|0x0000000705200000, 0x0000000705400000, 0x0000000705400000|100%| O| |TAMS 0x0000000705400000, 0x0000000705200000| Untracked
|
|
||||||
| 22|0x0000000705400000, 0x0000000705600000, 0x0000000705600000|100%| O| |TAMS 0x0000000705600000, 0x0000000705400000| Untracked
|
|
||||||
| 23|0x0000000705600000, 0x0000000705800000, 0x0000000705800000|100%| O| |TAMS 0x0000000705800000, 0x0000000705600000| Untracked
|
|
||||||
| 24|0x0000000705800000, 0x0000000705a00000, 0x0000000705a00000|100%| O| |TAMS 0x0000000705a00000, 0x0000000705800000| Untracked
|
|
||||||
| 25|0x0000000705a00000, 0x0000000705c00000, 0x0000000705c00000|100%| O| |TAMS 0x0000000705c00000, 0x0000000705a00000| Untracked
|
|
||||||
| 26|0x0000000705c00000, 0x0000000705e00000, 0x0000000705e00000|100%| O| |TAMS 0x0000000705e00000, 0x0000000705c00000| Untracked
|
|
||||||
| 27|0x0000000705e00000, 0x0000000705e00000, 0x0000000706000000| 0%| F| |TAMS 0x0000000705e00000, 0x0000000705e00000| Untracked
|
|
||||||
| 28|0x0000000706000000, 0x0000000706000000, 0x0000000706200000| 0%| F| |TAMS 0x0000000706000000, 0x0000000706000000| Untracked
|
|
||||||
| 29|0x0000000706200000, 0x0000000706200000, 0x0000000706400000| 0%| F| |TAMS 0x0000000706200000, 0x0000000706200000| Untracked
|
|
||||||
| 30|0x0000000706400000, 0x0000000706400000, 0x0000000706600000| 0%| F| |TAMS 0x0000000706400000, 0x0000000706400000| Untracked
|
|
||||||
| 31|0x0000000706600000, 0x0000000706600000, 0x0000000706800000| 0%| F| |TAMS 0x0000000706600000, 0x0000000706600000| Untracked
|
|
||||||
| 32|0x0000000706800000, 0x0000000706a00000, 0x0000000706a00000|100%| O| |TAMS 0x0000000706a00000, 0x0000000706800000| Complete
|
|
||||||
| 33|0x0000000706a00000, 0x0000000706a00000, 0x0000000706c00000| 0%| F| |TAMS 0x0000000706a00000, 0x0000000706a00000| Untracked
|
|
||||||
| 34|0x0000000706c00000, 0x0000000706e00000, 0x0000000706e00000|100%| O| |TAMS 0x0000000706c00000, 0x0000000706c00000| Untracked
|
|
||||||
| 35|0x0000000706e00000, 0x0000000706e00000, 0x0000000707000000| 0%| F| |TAMS 0x0000000706e00000, 0x0000000706e00000| Untracked
|
|
||||||
| 36|0x0000000707000000, 0x0000000707000000, 0x0000000707200000| 0%| F| |TAMS 0x0000000707000000, 0x0000000707000000| Untracked
|
|
||||||
| 37|0x0000000707200000, 0x0000000707400000, 0x0000000707400000|100%| O| |TAMS 0x0000000707200000, 0x0000000707200000| Untracked
|
|
||||||
| 38|0x0000000707400000, 0x0000000707600000, 0x0000000707600000|100%| O| |TAMS 0x0000000707400000, 0x0000000707400000| Untracked
|
|
||||||
| 39|0x0000000707600000, 0x0000000707800000, 0x0000000707800000|100%| O| |TAMS 0x0000000707600000, 0x0000000707600000| Untracked
|
|
||||||
| 40|0x0000000707800000, 0x0000000707a00000, 0x0000000707a00000|100%| O| |TAMS 0x0000000707800000, 0x0000000707800000| Untracked
|
|
||||||
| 41|0x0000000707a00000, 0x0000000707a00000, 0x0000000707c00000| 0%| F| |TAMS 0x0000000707a00000, 0x0000000707a00000| Untracked
|
|
||||||
| 42|0x0000000707c00000, 0x0000000707c00000, 0x0000000707e00000| 0%| F| |TAMS 0x0000000707c00000, 0x0000000707c00000| Untracked
|
|
||||||
| 43|0x0000000707e00000, 0x0000000708000000, 0x0000000708000000|100%| O| |TAMS 0x0000000708000000, 0x0000000707e00000| Complete
|
|
||||||
| 44|0x0000000708000000, 0x0000000708200000, 0x0000000708200000|100%| O| |TAMS 0x0000000708200000, 0x0000000708000000| Untracked
|
|
||||||
| 45|0x0000000708200000, 0x0000000708400000, 0x0000000708400000|100%| O| |TAMS 0x0000000708400000, 0x0000000708200000| Untracked
|
|
||||||
| 46|0x0000000708400000, 0x0000000708600000, 0x0000000708600000|100%| O| |TAMS 0x00000007085b1200, 0x0000000708400000| Untracked
|
|
||||||
| 47|0x0000000708600000, 0x0000000708800000, 0x0000000708800000|100%| O| |TAMS 0x0000000708600000, 0x0000000708600000| Untracked
|
|
||||||
| 48|0x0000000708800000, 0x0000000708a00000, 0x0000000708a00000|100%| O| |TAMS 0x0000000708800000, 0x0000000708800000| Untracked
|
|
||||||
| 49|0x0000000708a00000, 0x0000000708c00000, 0x0000000708c00000|100%| O| |TAMS 0x0000000708a00000, 0x0000000708a00000| Untracked
|
|
||||||
| 50|0x0000000708c00000, 0x0000000708e00000, 0x0000000708e00000|100%| O| |TAMS 0x0000000708c00000, 0x0000000708c00000| Untracked
|
|
||||||
| 51|0x0000000708e00000, 0x0000000709000000, 0x0000000709000000|100%| O| |TAMS 0x0000000708e00000, 0x0000000708e00000| Untracked
|
|
||||||
| 52|0x0000000709000000, 0x00000007091a4a00, 0x0000000709200000| 82%| O| |TAMS 0x0000000709000000, 0x0000000709000000| Untracked
|
|
||||||
| 53|0x0000000709200000, 0x0000000709200000, 0x0000000709400000| 0%| F| |TAMS 0x0000000709200000, 0x0000000709200000| Untracked
|
|
||||||
| 54|0x0000000709400000, 0x0000000709400000, 0x0000000709600000| 0%| F| |TAMS 0x0000000709400000, 0x0000000709400000| Untracked
|
|
||||||
| 55|0x0000000709600000, 0x0000000709600000, 0x0000000709800000| 0%| F| |TAMS 0x0000000709600000, 0x0000000709600000| Untracked
|
|
||||||
| 56|0x0000000709800000, 0x0000000709800000, 0x0000000709a00000| 0%| F| |TAMS 0x0000000709800000, 0x0000000709800000| Untracked
|
|
||||||
| 57|0x0000000709a00000, 0x0000000709a00000, 0x0000000709c00000| 0%| F| |TAMS 0x0000000709a00000, 0x0000000709a00000| Untracked
|
|
||||||
| 58|0x0000000709c00000, 0x0000000709c00000, 0x0000000709e00000| 0%| F| |TAMS 0x0000000709c00000, 0x0000000709c00000| Untracked
|
|
||||||
| 59|0x0000000709e00000, 0x0000000709e00000, 0x000000070a000000| 0%| F| |TAMS 0x0000000709e00000, 0x0000000709e00000| Untracked
|
|
||||||
| 60|0x000000070a000000, 0x000000070a000000, 0x000000070a200000| 0%| F| |TAMS 0x000000070a000000, 0x000000070a000000| Untracked
|
|
||||||
| 61|0x000000070a200000, 0x000000070a200000, 0x000000070a400000| 0%| F| |TAMS 0x000000070a200000, 0x000000070a200000| Untracked
|
|
||||||
| 62|0x000000070a400000, 0x000000070a400000, 0x000000070a600000| 0%| F| |TAMS 0x000000070a400000, 0x000000070a400000| Untracked
|
|
||||||
| 63|0x000000070a600000, 0x000000070a600000, 0x000000070a800000| 0%| F| |TAMS 0x000000070a600000, 0x000000070a600000| Untracked
|
|
||||||
| 64|0x000000070a800000, 0x000000070a800000, 0x000000070aa00000| 0%| F| |TAMS 0x000000070a800000, 0x000000070a800000| Untracked
|
|
||||||
| 65|0x000000070aa00000, 0x000000070aa00000, 0x000000070ac00000| 0%| F| |TAMS 0x000000070aa00000, 0x000000070aa00000| Untracked
|
|
||||||
| 66|0x000000070ac00000, 0x000000070ac00000, 0x000000070ae00000| 0%| F| |TAMS 0x000000070ac00000, 0x000000070ac00000| Untracked
|
|
||||||
| 67|0x000000070ae00000, 0x000000070ae00000, 0x000000070b000000| 0%| F| |TAMS 0x000000070ae00000, 0x000000070ae00000| Untracked
|
|
||||||
| 68|0x000000070b000000, 0x000000070b000000, 0x000000070b200000| 0%| F| |TAMS 0x000000070b000000, 0x000000070b000000| Untracked
|
|
||||||
| 69|0x000000070b200000, 0x000000070b200000, 0x000000070b400000| 0%| F| |TAMS 0x000000070b200000, 0x000000070b200000| Untracked
|
|
||||||
| 70|0x000000070b400000, 0x000000070b400000, 0x000000070b600000| 0%| F| |TAMS 0x000000070b400000, 0x000000070b400000| Untracked
|
|
||||||
| 71|0x000000070b600000, 0x000000070b600000, 0x000000070b800000| 0%| F| |TAMS 0x000000070b600000, 0x000000070b600000| Untracked
|
|
||||||
| 72|0x000000070b800000, 0x000000070b800000, 0x000000070ba00000| 0%| F| |TAMS 0x000000070b800000, 0x000000070b800000| Untracked
|
|
||||||
| 73|0x000000070ba00000, 0x000000070ba00000, 0x000000070bc00000| 0%| F| |TAMS 0x000000070ba00000, 0x000000070ba00000| Untracked
|
|
||||||
| 74|0x000000070bc00000, 0x000000070bc00000, 0x000000070be00000| 0%| F| |TAMS 0x000000070bc00000, 0x000000070bc00000| Untracked
|
|
||||||
| 75|0x000000070be00000, 0x000000070be00000, 0x000000070c000000| 0%| F| |TAMS 0x000000070be00000, 0x000000070be00000| Untracked
|
|
||||||
| 76|0x000000070c000000, 0x000000070c000000, 0x000000070c200000| 0%| F| |TAMS 0x000000070c000000, 0x000000070c000000| Untracked
|
|
||||||
| 77|0x000000070c200000, 0x000000070c200000, 0x000000070c400000| 0%| F| |TAMS 0x000000070c200000, 0x000000070c200000| Untracked
|
|
||||||
| 78|0x000000070c400000, 0x000000070c400000, 0x000000070c600000| 0%| F| |TAMS 0x000000070c400000, 0x000000070c400000| Untracked
|
|
||||||
| 79|0x000000070c600000, 0x000000070c600000, 0x000000070c800000| 0%| F| |TAMS 0x000000070c600000, 0x000000070c600000| Untracked
|
|
||||||
| 80|0x000000070c800000, 0x000000070c800000, 0x000000070ca00000| 0%| F| |TAMS 0x000000070c800000, 0x000000070c800000| Untracked
|
|
||||||
| 81|0x000000070ca00000, 0x000000070ca00000, 0x000000070cc00000| 0%| F| |TAMS 0x000000070ca00000, 0x000000070ca00000| Untracked
|
|
||||||
| 82|0x000000070cc00000, 0x000000070cc00000, 0x000000070ce00000| 0%| F| |TAMS 0x000000070cc00000, 0x000000070cc00000| Untracked
|
|
||||||
| 83|0x000000070ce00000, 0x000000070ce00000, 0x000000070d000000| 0%| F| |TAMS 0x000000070ce00000, 0x000000070ce00000| Untracked
|
|
||||||
| 84|0x000000070d000000, 0x000000070d000000, 0x000000070d200000| 0%| F| |TAMS 0x000000070d000000, 0x000000070d000000| Untracked
|
|
||||||
| 85|0x000000070d200000, 0x000000070d200000, 0x000000070d400000| 0%| F| |TAMS 0x000000070d200000, 0x000000070d200000| Untracked
|
|
||||||
| 86|0x000000070d400000, 0x000000070d400000, 0x000000070d600000| 0%| F| |TAMS 0x000000070d400000, 0x000000070d400000| Untracked
|
|
||||||
| 87|0x000000070d600000, 0x000000070d600000, 0x000000070d800000| 0%| F| |TAMS 0x000000070d600000, 0x000000070d600000| Untracked
|
|
||||||
| 88|0x000000070d800000, 0x000000070d800000, 0x000000070da00000| 0%| F| |TAMS 0x000000070d800000, 0x000000070d800000| Untracked
|
|
||||||
| 89|0x000000070da00000, 0x000000070da00000, 0x000000070dc00000| 0%| F| |TAMS 0x000000070da00000, 0x000000070da00000| Untracked
|
|
||||||
| 90|0x000000070dc00000, 0x000000070dc00000, 0x000000070de00000| 0%| F| |TAMS 0x000000070dc00000, 0x000000070dc00000| Untracked
|
|
||||||
| 91|0x000000070de00000, 0x000000070de00000, 0x000000070e000000| 0%| F| |TAMS 0x000000070de00000, 0x000000070de00000| Untracked
|
|
||||||
| 92|0x000000070e000000, 0x000000070e0cecd0, 0x000000070e200000| 40%| S|CS|TAMS 0x000000070e000000, 0x000000070e000000| Complete
|
|
||||||
| 93|0x000000070e200000, 0x000000070e200000, 0x000000070e400000| 0%| F| |TAMS 0x000000070e200000, 0x000000070e200000| Untracked
|
|
||||||
| 126|0x0000000712400000, 0x0000000712400000, 0x0000000712600000| 0%| F| |TAMS 0x0000000712400000, 0x0000000712400000| Untracked
|
|
||||||
|
|
||||||
Card table byte_map: [0x000002392d2b0000,0x000002392daa0000] _byte_map_base: 0x0000023929a9c000
|
|
||||||
|
|
||||||
Marking Bits (Prev, Next): (CMBitMap*) 0x00000239221afe90, (CMBitMap*) 0x00000239221afed0
|
|
||||||
Prev Bits: [0x000002392e290000, 0x00000239321f0000)
|
|
||||||
Next Bits: [0x00000239321f0000, 0x0000023936150000)
|
|
||||||
|
|
||||||
Polling page: 0x00000239202b0000
|
|
||||||
|
|
||||||
Metaspace:
|
|
||||||
|
|
||||||
Usage:
|
|
||||||
Non-class: 57.80 MB used.
|
|
||||||
Class: 8.91 MB used.
|
|
||||||
Both: 66.70 MB used.
|
|
||||||
|
|
||||||
Virtual space:
|
|
||||||
Non-class space: 64.00 MB reserved, 58.06 MB ( 91%) committed, 8 nodes.
|
|
||||||
Class space: 1.00 GB reserved, 9.19 MB ( <1%) committed, 1 nodes.
|
|
||||||
Both: 1.06 GB reserved, 67.25 MB ( 6%) committed.
|
|
||||||
|
|
||||||
Chunk freelists:
|
|
||||||
Non-Class: 1.03 MB
|
|
||||||
Class: 2.73 MB
|
|
||||||
Both: 3.77 MB
|
|
||||||
|
|
||||||
MaxMetaspaceSize: unlimited
|
|
||||||
CompressedClassSpaceSize: 1.00 GB
|
|
||||||
Initial GC threshold: 21.00 MB
|
|
||||||
Current GC threshold: 107.50 MB
|
|
||||||
CDS: on
|
|
||||||
MetaspaceReclaimPolicy: balanced
|
|
||||||
- commit_granule_bytes: 65536.
|
|
||||||
- commit_granule_words: 8192.
|
|
||||||
- virtual_space_node_default_size: 1048576.
|
|
||||||
- enlarge_chunks_in_place: 1.
|
|
||||||
- new_chunks_are_fully_committed: 0.
|
|
||||||
- uncommit_free_chunks: 1.
|
|
||||||
- use_allocation_guard: 0.
|
|
||||||
- handle_deallocations: 1.
|
|
||||||
|
|
||||||
|
|
||||||
Internal statistics:
|
|
||||||
|
|
||||||
num_allocs_failed_limit: 9.
|
|
||||||
num_arena_births: 760.
|
|
||||||
num_arena_deaths: 0.
|
|
||||||
num_vsnodes_births: 9.
|
|
||||||
num_vsnodes_deaths: 0.
|
|
||||||
num_space_committed: 1076.
|
|
||||||
num_space_uncommitted: 0.
|
|
||||||
num_chunks_returned_to_freelist: 9.
|
|
||||||
num_chunks_taken_from_freelist: 3150.
|
|
||||||
num_chunk_merges: 6.
|
|
||||||
num_chunk_splits: 2243.
|
|
||||||
num_chunks_enlarged: 1710.
|
|
||||||
num_purges: 0.
|
|
||||||
num_inconsistent_stats: 0.
|
|
||||||
|
|
||||||
CodeCache: size=49152Kb used=16349Kb max_used=16349Kb free=32802Kb
|
|
||||||
bounds [0x00000239299a0000, 0x000002392a9a0000, 0x000002392c9a0000]
|
|
||||||
total_blobs=8474 nmethods=7792 adapters=605
|
|
||||||
compilation: enabled
|
|
||||||
stopped_count=0, restarted_count=0
|
|
||||||
full_count=0
|
|
||||||
|
|
||||||
Compilation events (20 events):
|
|
||||||
Event: 10.142 Thread 0x0000023939819d70 7785 1 java.util.stream.SortedOps$RefSortingSink::accept (10 bytes)
|
|
||||||
Event: 10.142 Thread 0x0000023939819d70 nmethod 7785 0x000002392a993910 code [0x000002392a993aa0, 0x000002392a993b88]
|
|
||||||
Event: 10.257 Thread 0x0000023939819d70 7786 1 sun.reflect.generics.parser.SignatureParser::parseFormalTypeParameter (16 bytes)
|
|
||||||
Event: 10.257 Thread 0x000002393ab32560 7787 1 sun.reflect.generics.parser.SignatureParser::parseBounds (112 bytes)
|
|
||||||
Event: 10.257 Thread 0x00000239399c3c60 7788 1 sun.reflect.generics.tree.FormalTypeParameter::make (10 bytes)
|
|
||||||
Event: 10.257 Thread 0x00000239399bf740 7789 1 sun.reflect.generics.tree.FormalTypeParameter::<init> (15 bytes)
|
|
||||||
Event: 10.257 Thread 0x00000239399bf740 nmethod 7789 0x000002392a993c10 code [0x000002392a993da0, 0x000002392a993f18]
|
|
||||||
Event: 10.257 Thread 0x00000239399c3c60 nmethod 7788 0x000002392a993f90 code [0x000002392a994120, 0x000002392a9942d8]
|
|
||||||
Event: 10.257 Thread 0x00000239399c3c60 7790 1 sun.reflect.generics.reflectiveObjects.LazyReflectiveObjectGenerator::reifyBounds (51 bytes)
|
|
||||||
Event: 10.257 Thread 0x00000239399bf740 7791 1 sun.reflect.generics.reflectiveObjects.TypeVariableImpl::make (66 bytes)
|
|
||||||
Event: 10.257 Thread 0x0000023939819d70 nmethod 7786 0x000002392a994390 code [0x000002392a994540, 0x000002392a9947a8]
|
|
||||||
Event: 10.257 Thread 0x0000023939819d70 7792 1 sun.reflect.generics.reflectiveObjects.TypeVariableImpl::<init> (22 bytes)
|
|
||||||
Event: 10.257 Thread 0x0000023939819d70 nmethod 7792 0x000002392a994910 code [0x000002392a994aa0, 0x000002392a994cf8]
|
|
||||||
Event: 10.258 Thread 0x000002393ab32560 nmethod 7787 0x000002392a994d90 code [0x000002392a994fe0, 0x000002392a995698]
|
|
||||||
Event: 10.258 Thread 0x00000239399c3c60 nmethod 7790 0x000002392a995a90 code [0x000002392a995c40, 0x000002392a996028]
|
|
||||||
Event: 10.259 Thread 0x00000239399bf740 nmethod 7791 0x000002392a996210 code [0x000002392a996420, 0x000002392a996ae8]
|
|
||||||
Event: 10.278 Thread 0x00000239399bf740 7793 ! 1 jdk.proxy2.$Proxy46::annotationType (29 bytes)
|
|
||||||
Event: 10.278 Thread 0x00000239399bf740 nmethod 7793 0x000002392a996d10 code [0x000002392a996ec0, 0x000002392a9970d8]
|
|
||||||
Event: 10.283 Thread 0x00000239399bf740 7794 1 org.springframework.core.MethodParameter::clone (9 bytes)
|
|
||||||
Event: 10.283 Thread 0x00000239399bf740 nmethod 7794 0x000002392a997210 code [0x000002392a9973a0, 0x000002392a9974e8]
|
|
||||||
|
|
||||||
GC Heap History (20 events):
|
|
||||||
Event: 7.650 GC heap after
|
|
||||||
{Heap after GC invocations=23 (full 0):
|
|
||||||
garbage-first heap total 141312K, used 46797K [0x0000000702800000, 0x0000000800000000)
|
|
||||||
region size 2048K, 4 young (8192K), 4 survivors (8192K)
|
|
||||||
Metaspace used 55396K, committed 55936K, reserved 1097728K
|
|
||||||
class space used 7482K, committed 7744K, reserved 1048576K
|
|
||||||
}
|
|
||||||
Event: 8.005 GC heap before
|
|
||||||
{Heap before GC invocations=23 (full 0):
|
|
||||||
garbage-first heap total 141312K, used 73421K [0x0000000702800000, 0x0000000800000000)
|
|
||||||
region size 2048K, 18 young (36864K), 4 survivors (8192K)
|
|
||||||
Metaspace used 60083K, committed 60480K, reserved 1105920K
|
|
||||||
class space used 7999K, committed 8192K, reserved 1048576K
|
|
||||||
}
|
|
||||||
Event: 8.011 GC heap after
|
|
||||||
{Heap after GC invocations=24 (full 0):
|
|
||||||
garbage-first heap total 141312K, used 48800K [0x0000000702800000, 0x0000000800000000)
|
|
||||||
region size 2048K, 4 young (8192K), 4 survivors (8192K)
|
|
||||||
Metaspace used 60083K, committed 60480K, reserved 1105920K
|
|
||||||
class space used 7999K, committed 8192K, reserved 1048576K
|
|
||||||
}
|
|
||||||
Event: 8.790 GC heap before
|
|
||||||
{Heap before GC invocations=25 (full 0):
|
|
||||||
garbage-first heap total 141312K, used 116384K [0x0000000702800000, 0x0000000800000000)
|
|
||||||
region size 2048K, 37 young (75776K), 4 survivors (8192K)
|
|
||||||
Metaspace used 64276K, committed 64832K, reserved 1105920K
|
|
||||||
class space used 8557K, committed 8832K, reserved 1048576K
|
|
||||||
}
|
|
||||||
Event: 8.798 GC heap after
|
|
||||||
{Heap after GC invocations=26 (full 0):
|
|
||||||
garbage-first heap total 141312K, used 55694K [0x0000000702800000, 0x0000000800000000)
|
|
||||||
region size 2048K, 5 young (10240K), 5 survivors (10240K)
|
|
||||||
Metaspace used 64276K, committed 64832K, reserved 1105920K
|
|
||||||
class space used 8557K, committed 8832K, reserved 1048576K
|
|
||||||
}
|
|
||||||
Event: 8.912 GC heap before
|
|
||||||
{Heap before GC invocations=26 (full 0):
|
|
||||||
garbage-first heap total 141312K, used 110990K [0x0000000702800000, 0x0000000800000000)
|
|
||||||
region size 2048K, 33 young (67584K), 5 survivors (10240K)
|
|
||||||
Metaspace used 64347K, committed 64896K, reserved 1105920K
|
|
||||||
class space used 8568K, committed 8832K, reserved 1048576K
|
|
||||||
}
|
|
||||||
Event: 8.924 GC heap after
|
|
||||||
{Heap after GC invocations=27 (full 0):
|
|
||||||
garbage-first heap total 141312K, used 71506K [0x0000000702800000, 0x0000000800000000)
|
|
||||||
region size 2048K, 5 young (10240K), 5 survivors (10240K)
|
|
||||||
Metaspace used 64347K, committed 64896K, reserved 1105920K
|
|
||||||
class space used 8568K, committed 8832K, reserved 1048576K
|
|
||||||
}
|
|
||||||
Event: 9.052 GC heap before
|
|
||||||
{Heap before GC invocations=27 (full 0):
|
|
||||||
garbage-first heap total 141312K, used 104274K [0x0000000702800000, 0x0000000800000000)
|
|
||||||
region size 2048K, 22 young (45056K), 5 survivors (10240K)
|
|
||||||
Metaspace used 64371K, committed 64896K, reserved 1105920K
|
|
||||||
class space used 8571K, committed 8832K, reserved 1048576K
|
|
||||||
}
|
|
||||||
Event: 9.059 GC heap after
|
|
||||||
{Heap after GC invocations=28 (full 0):
|
|
||||||
garbage-first heap total 194560K, used 78632K [0x0000000702800000, 0x0000000800000000)
|
|
||||||
region size 2048K, 3 young (6144K), 3 survivors (6144K)
|
|
||||||
Metaspace used 64371K, committed 64896K, reserved 1105920K
|
|
||||||
class space used 8571K, committed 8832K, reserved 1048576K
|
|
||||||
}
|
|
||||||
Event: 9.226 GC heap before
|
|
||||||
{Heap before GC invocations=28 (full 0):
|
|
||||||
garbage-first heap total 194560K, used 146216K [0x0000000702800000, 0x0000000800000000)
|
|
||||||
region size 2048K, 37 young (75776K), 3 survivors (6144K)
|
|
||||||
Metaspace used 64371K, committed 64896K, reserved 1105920K
|
|
||||||
class space used 8571K, committed 8832K, reserved 1048576K
|
|
||||||
}
|
|
||||||
Event: 9.228 GC heap after
|
|
||||||
{Heap after GC invocations=29 (full 0):
|
|
||||||
garbage-first heap total 194560K, used 77125K [0x0000000702800000, 0x0000000800000000)
|
|
||||||
region size 2048K, 2 young (4096K), 2 survivors (4096K)
|
|
||||||
Metaspace used 64371K, committed 64896K, reserved 1105920K
|
|
||||||
class space used 8571K, committed 8832K, reserved 1048576K
|
|
||||||
}
|
|
||||||
Event: 9.385 GC heap before
|
|
||||||
{Heap before GC invocations=29 (full 0):
|
|
||||||
garbage-first heap total 194560K, used 148805K [0x0000000702800000, 0x0000000800000000)
|
|
||||||
region size 2048K, 38 young (77824K), 2 survivors (4096K)
|
|
||||||
Metaspace used 64371K, committed 64896K, reserved 1105920K
|
|
||||||
class space used 8571K, committed 8832K, reserved 1048576K
|
|
||||||
}
|
|
||||||
Event: 9.394 GC heap after
|
|
||||||
{Heap after GC invocations=30 (full 0):
|
|
||||||
garbage-first heap total 194560K, used 94512K [0x0000000702800000, 0x0000000800000000)
|
|
||||||
region size 2048K, 5 young (10240K), 5 survivors (10240K)
|
|
||||||
Metaspace used 64371K, committed 64896K, reserved 1105920K
|
|
||||||
class space used 8571K, committed 8832K, reserved 1048576K
|
|
||||||
}
|
|
||||||
Event: 9.525 GC heap before
|
|
||||||
{Heap before GC invocations=30 (full 0):
|
|
||||||
garbage-first heap total 194560K, used 143664K [0x0000000702800000, 0x0000000800000000)
|
|
||||||
region size 2048K, 30 young (61440K), 5 survivors (10240K)
|
|
||||||
Metaspace used 64379K, committed 64960K, reserved 1105920K
|
|
||||||
class space used 8572K, committed 8832K, reserved 1048576K
|
|
||||||
}
|
|
||||||
Event: 9.532 GC heap after
|
|
||||||
{Heap after GC invocations=31 (full 0):
|
|
||||||
garbage-first heap total 194560K, used 103498K [0x0000000702800000, 0x0000000800000000)
|
|
||||||
region size 2048K, 4 young (8192K), 4 survivors (8192K)
|
|
||||||
Metaspace used 64379K, committed 64960K, reserved 1105920K
|
|
||||||
class space used 8572K, committed 8832K, reserved 1048576K
|
|
||||||
}
|
|
||||||
Event: 9.733 GC heap before
|
|
||||||
{Heap before GC invocations=31 (full 0):
|
|
||||||
garbage-first heap total 194560K, used 144458K [0x0000000702800000, 0x0000000800000000)
|
|
||||||
region size 2048K, 25 young (51200K), 4 survivors (8192K)
|
|
||||||
Metaspace used 65112K, committed 65664K, reserved 1114112K
|
|
||||||
class space used 8700K, committed 8960K, reserved 1048576K
|
|
||||||
}
|
|
||||||
Event: 9.743 GC heap after
|
|
||||||
{Heap after GC invocations=32 (full 0):
|
|
||||||
garbage-first heap total 194560K, used 113722K [0x0000000702800000, 0x0000000800000000)
|
|
||||||
region size 2048K, 4 young (8192K), 4 survivors (8192K)
|
|
||||||
Metaspace used 65112K, committed 65664K, reserved 1114112K
|
|
||||||
class space used 8700K, committed 8960K, reserved 1048576K
|
|
||||||
}
|
|
||||||
Event: 10.242 GC heap before
|
|
||||||
{Heap before GC invocations=33 (full 0):
|
|
||||||
garbage-first heap total 194560K, used 136250K [0x0000000702800000, 0x0000000800000000)
|
|
||||||
region size 2048K, 21 young (43008K), 4 survivors (8192K)
|
|
||||||
Metaspace used 68204K, committed 68736K, reserved 1114112K
|
|
||||||
class space used 9100K, committed 9344K, reserved 1048576K
|
|
||||||
}
|
|
||||||
Event: 10.249 GC heap after
|
|
||||||
{Heap after GC invocations=34 (full 0):
|
|
||||||
garbage-first heap total 194560K, used 107573K [0x0000000702800000, 0x0000000800000000)
|
|
||||||
region size 2048K, 2 young (4096K), 2 survivors (4096K)
|
|
||||||
Metaspace used 68204K, committed 68736K, reserved 1114112K
|
|
||||||
class space used 9100K, committed 9344K, reserved 1048576K
|
|
||||||
}
|
|
||||||
Event: 10.300 GC heap before
|
|
||||||
{Heap before GC invocations=34 (full 0):
|
|
||||||
garbage-first heap total 194560K, used 111669K [0x0000000702800000, 0x0000000800000000)
|
|
||||||
region size 2048K, 4 young (8192K), 2 survivors (4096K)
|
|
||||||
Metaspace used 68301K, committed 68864K, reserved 1114112K
|
|
||||||
class space used 9119K, committed 9408K, reserved 1048576K
|
|
||||||
}
|
|
||||||
|
|
||||||
Deoptimization events (18 events):
|
|
||||||
Event: 2.465 Thread 0x0000023922142190 DEOPT PACKING pc=0x0000023929fa7e79 sp=0x00000074868fd140
|
|
||||||
Event: 2.465 Thread 0x0000023922142190 DEOPT UNPACKING pc=0x00000239299f2b43 sp=0x00000074868fc620 mode 3
|
|
||||||
Event: 2.673 Thread 0x0000023922142190 DEOPT PACKING pc=0x0000023929e2e125 sp=0x00000074868fe040
|
|
||||||
Event: 2.673 Thread 0x0000023922142190 DEOPT UNPACKING pc=0x00000239299f2b43 sp=0x00000074868fd5c0 mode 3
|
|
||||||
Event: 4.076 Thread 0x0000023922142190 DEOPT PACKING pc=0x000002392a25e6f9 sp=0x00000074868fdfb0
|
|
||||||
Event: 4.076 Thread 0x0000023922142190 DEOPT UNPACKING pc=0x00000239299f2b43 sp=0x00000074868fd498 mode 3
|
|
||||||
Event: 4.670 Thread 0x0000023922142190 DEOPT PACKING pc=0x000002392a2df30a sp=0x00000074868fb9b0
|
|
||||||
Event: 4.670 Thread 0x0000023922142190 DEOPT UNPACKING pc=0x00000239299f2b43 sp=0x00000074868faf48 mode 0
|
|
||||||
Event: 5.683 Thread 0x000002393d941210 DEOPT PACKING pc=0x0000023929fb5809 sp=0x00000074892ff130
|
|
||||||
Event: 5.683 Thread 0x000002393d941210 DEOPT UNPACKING pc=0x00000239299f2b43 sp=0x00000074892fe5c8 mode 3
|
|
||||||
Event: 6.498 Thread 0x0000023922142190 DEOPT PACKING pc=0x0000023929f94b62 sp=0x00000074868fcb00
|
|
||||||
Event: 6.498 Thread 0x0000023922142190 DEOPT UNPACKING pc=0x00000239299f2b43 sp=0x00000074868fc008 mode 3
|
|
||||||
Event: 6.577 Thread 0x0000023922142190 DEOPT PACKING pc=0x000002392a5a2c54 sp=0x00000074868fcfc0
|
|
||||||
Event: 6.577 Thread 0x0000023922142190 DEOPT UNPACKING pc=0x00000239299f2b43 sp=0x00000074868fc458 mode 3
|
|
||||||
Event: 8.707 Thread 0x0000023922142190 DEOPT PACKING pc=0x000002392a805993 sp=0x00000074868fd340
|
|
||||||
Event: 8.707 Thread 0x0000023922142190 DEOPT UNPACKING pc=0x00000239299f2b43 sp=0x00000074868fc888 mode 3
|
|
||||||
Event: 8.869 Thread 0x000002393df9cbb0 DEOPT PACKING pc=0x0000023929f9241f sp=0x000000748b9fefd0
|
|
||||||
Event: 8.869 Thread 0x000002393df9cbb0 DEOPT UNPACKING pc=0x00000239299f2b43 sp=0x000000748b9fe428 mode 3
|
|
||||||
|
|
||||||
Classes unloaded (0 events):
|
|
||||||
No events
|
|
||||||
|
|
||||||
Classes redefined (0 events):
|
|
||||||
No events
|
|
||||||
|
|
||||||
Internal exceptions (20 events):
|
|
||||||
Event: 9.425 Thread 0x000002393da0d2d0 Exception <a 'sun/nio/fs/WindowsException'{0x000000070e019580}> (0x000000070e019580)
|
|
||||||
thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516]
|
|
||||||
Event: 9.426 Thread 0x000002393da0d2d0 Exception <a 'sun/nio/fs/WindowsException'{0x000000070e0197a0}> (0x000000070e0197a0)
|
|
||||||
thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516]
|
|
||||||
Event: 9.426 Thread 0x000002393da0d2d0 Exception <a 'sun/nio/fs/WindowsException'{0x000000070e01a000}> (0x000000070e01a000)
|
|
||||||
thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516]
|
|
||||||
Event: 9.427 Thread 0x000002393da0d2d0 Exception <a 'sun/nio/fs/WindowsException'{0x000000070e01a210}> (0x000000070e01a210)
|
|
||||||
thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516]
|
|
||||||
Event: 9.427 Thread 0x000002393da0d2d0 Exception <a 'sun/nio/fs/WindowsException'{0x000000070e01aa78}> (0x000000070e01aa78)
|
|
||||||
thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516]
|
|
||||||
Event: 9.428 Thread 0x000002393da0d2d0 Exception <a 'sun/nio/fs/WindowsException'{0x000000070e01ac98}> (0x000000070e01ac98)
|
|
||||||
thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516]
|
|
||||||
Event: 9.428 Thread 0x000002393da0d2d0 Exception <a 'sun/nio/fs/WindowsException'{0x000000070e01b520}> (0x000000070e01b520)
|
|
||||||
thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516]
|
|
||||||
Event: 9.428 Thread 0x000002393da0d2d0 Exception <a 'sun/nio/fs/WindowsException'{0x000000070e01b760}> (0x000000070e01b760)
|
|
||||||
thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516]
|
|
||||||
Event: 9.428 Thread 0x000002393da0d2d0 Exception <a 'sun/nio/fs/WindowsException'{0x000000070e01bff8}> (0x000000070e01bff8)
|
|
||||||
thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516]
|
|
||||||
Event: 9.428 Thread 0x000002393da0d2d0 Exception <a 'sun/nio/fs/WindowsException'{0x000000070e01c250}> (0x000000070e01c250)
|
|
||||||
thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516]
|
|
||||||
Event: 9.428 Thread 0x000002393da0d2d0 Exception <a 'sun/nio/fs/WindowsException'{0x000000070e01cae0}> (0x000000070e01cae0)
|
|
||||||
thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516]
|
|
||||||
Event: 9.429 Thread 0x000002393da0d2d0 Exception <a 'sun/nio/fs/WindowsException'{0x000000070e01cd30}> (0x000000070e01cd30)
|
|
||||||
thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516]
|
|
||||||
Event: 9.549 Thread 0x0000023944212e60 Exception <a 'sun/nio/fs/WindowsException'{0x000000070da27418}> (0x000000070da27418)
|
|
||||||
thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516]
|
|
||||||
Event: 9.549 Thread 0x0000023944219840 Exception <a 'sun/nio/fs/WindowsException'{0x000000070daafb50}> (0x000000070daafb50)
|
|
||||||
thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516]
|
|
||||||
Event: 9.551 Thread 0x000002393da0b5f0 Exception <a 'sun/nio/fs/WindowsException'{0x000000070dabf8c0}> (0x000000070dabf8c0)
|
|
||||||
thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516]
|
|
||||||
Event: 9.551 Thread 0x0000023944212990 Exception <a 'sun/nio/fs/WindowsException'{0x000000070da9e2e0}> (0x000000070da9e2e0)
|
|
||||||
thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516]
|
|
||||||
Event: 9.815 Thread 0x0000023922142190 Exception <a 'java/lang/NoSuchMethodError'{0x000000070e33cad8}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.invokeStaticInit(java.lang.Object, long)'> (0x000000070e33cad8)
|
|
||||||
thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759]
|
|
||||||
Event: 9.918 Thread 0x0000023922142190 Exception <a 'java/lang/IncompatibleClassChangeError'{0x000000070da6b668}: Found class java.lang.Object, but interface was expected> (0x000000070da6b668)
|
|
||||||
thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 826]
|
|
||||||
Event: 9.929 Thread 0x0000023922142190 Exception <a 'java/lang/IncompatibleClassChangeError'{0x000000070db3a638}: Found class java.lang.Object, but interface was expected> (0x000000070db3a638)
|
|
||||||
thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 826]
|
|
||||||
Event: 9.944 Thread 0x0000023922142190 Exception <a 'java/lang/IncompatibleClassChangeError'{0x000000070d83ffe0}: Found class java.lang.Object, but interface was expected> (0x000000070d83ffe0)
|
|
||||||
thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 826]
|
|
||||||
|
|
||||||
VM Operations (20 events):
|
|
||||||
Event: 9.061 Executing VM operation: G1CollectForAllocation done
|
|
||||||
Event: 9.226 Executing VM operation: G1CollectForAllocation
|
|
||||||
Event: 9.229 Executing VM operation: G1CollectForAllocation done
|
|
||||||
Event: 9.384 Executing VM operation: G1CollectForAllocation
|
|
||||||
Event: 9.395 Executing VM operation: G1CollectForAllocation done
|
|
||||||
Event: 9.525 Executing VM operation: G1CollectForAllocation
|
|
||||||
Event: 9.534 Executing VM operation: G1CollectForAllocation done
|
|
||||||
Event: 9.729 Executing VM operation: HandshakeAllThreads
|
|
||||||
Event: 9.729 Executing VM operation: HandshakeAllThreads done
|
|
||||||
Event: 9.729 Executing VM operation: HandshakeAllThreads
|
|
||||||
Event: 9.729 Executing VM operation: HandshakeAllThreads done
|
|
||||||
Event: 9.733 Executing VM operation: G1CollectForAllocation
|
|
||||||
Event: 9.743 Executing VM operation: G1CollectForAllocation done
|
|
||||||
Event: 9.792 Executing VM operation: G1Concurrent
|
|
||||||
Event: 9.797 Executing VM operation: G1Concurrent done
|
|
||||||
Event: 9.822 Executing VM operation: G1Concurrent
|
|
||||||
Event: 9.822 Executing VM operation: G1Concurrent done
|
|
||||||
Event: 10.242 Executing VM operation: G1CollectForAllocation
|
|
||||||
Event: 10.249 Executing VM operation: G1CollectForAllocation done
|
|
||||||
Event: 10.300 Executing VM operation: G1CollectForAllocation
|
|
||||||
|
|
||||||
Events (20 events):
|
|
||||||
Event: 10.009 loading class jdk/internal/reflect/UnsafeQualifiedObjectFieldAccessorImpl
|
|
||||||
Event: 10.009 loading class jdk/internal/reflect/UnsafeQualifiedFieldAccessorImpl
|
|
||||||
Event: 10.009 loading class jdk/internal/reflect/UnsafeQualifiedFieldAccessorImpl done
|
|
||||||
Event: 10.009 loading class jdk/internal/reflect/UnsafeQualifiedObjectFieldAccessorImpl done
|
|
||||||
Event: 10.096 loading class javax/management/InstanceAlreadyExistsException
|
|
||||||
Event: 10.096 loading class javax/management/InstanceAlreadyExistsException done
|
|
||||||
Event: 10.096 loading class javax/management/NotCompliantMBeanException
|
|
||||||
Event: 10.097 loading class javax/management/NotCompliantMBeanException done
|
|
||||||
Event: 10.097 loading class javax/management/modelmbean/ModelMBean
|
|
||||||
Event: 10.098 loading class javax/management/PersistentMBean
|
|
||||||
Event: 10.098 loading class javax/management/PersistentMBean done
|
|
||||||
Event: 10.098 loading class javax/management/modelmbean/ModelMBean done
|
|
||||||
Event: 10.100 loading class javax/management/modelmbean/ModelMBeanInfo
|
|
||||||
Event: 10.101 loading class javax/management/modelmbean/ModelMBeanInfo done
|
|
||||||
Event: 10.104 loading class javax/management/AttributeList
|
|
||||||
Event: 10.105 loading class javax/management/AttributeList done
|
|
||||||
Event: 10.105 loading class javax/management/Attribute
|
|
||||||
Event: 10.105 loading class javax/management/Attribute done
|
|
||||||
Event: 10.105 loading class javax/management/IntrospectionException
|
|
||||||
Event: 10.105 loading class javax/management/IntrospectionException done
|
|
||||||
|
|
||||||
|
|
||||||
Dynamic libraries:
|
|
||||||
0x00007ff64dcf0000 - 0x00007ff64dd00000 D:\Program Files\Java\jdk-17.0.7\bin\java.exe
|
|
||||||
0x00007ffc6a190000 - 0x00007ffc6a3a7000 C:\WINDOWS\SYSTEM32\ntdll.dll
|
|
||||||
0x00007ffc68900000 - 0x00007ffc689c4000 C:\WINDOWS\System32\KERNEL32.DLL
|
|
||||||
0x00007ffc675b0000 - 0x00007ffc67957000 C:\WINDOWS\System32\KERNELBASE.dll
|
|
||||||
0x00007ffc67a50000 - 0x00007ffc67b61000 C:\WINDOWS\System32\ucrtbase.dll
|
|
||||||
0x00007ffc63a20000 - 0x00007ffc63a3b000 D:\Program Files\Java\jdk-17.0.7\bin\VCRUNTIME140.dll
|
|
||||||
0x00007ffc63e20000 - 0x00007ffc63e39000 D:\Program Files\Java\jdk-17.0.7\bin\jli.dll
|
|
||||||
0x00007ffc69a60000 - 0x00007ffc69b12000 C:\WINDOWS\System32\ADVAPI32.dll
|
|
||||||
0x00007ffc68740000 - 0x00007ffc687e7000 C:\WINDOWS\System32\msvcrt.dll
|
|
||||||
0x00007ffc67f40000 - 0x00007ffc67fe8000 C:\WINDOWS\System32\sechost.dll
|
|
||||||
0x00007ffc67490000 - 0x00007ffc674b8000 C:\WINDOWS\System32\bcrypt.dll
|
|
||||||
0x00007ffc683b0000 - 0x00007ffc684c5000 C:\WINDOWS\System32\RPCRT4.dll
|
|
||||||
0x00007ffc68ea0000 - 0x00007ffc6904e000 C:\WINDOWS\System32\USER32.dll
|
|
||||||
0x00007ffc67580000 - 0x00007ffc675a6000 C:\WINDOWS\System32\win32u.dll
|
|
||||||
0x00007ffc48c30000 - 0x00007ffc48ec3000 C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.22621.3527_none_270e469b73872a76\COMCTL32.dll
|
|
||||||
0x00007ffc69c20000 - 0x00007ffc69c49000 C:\WINDOWS\System32\GDI32.dll
|
|
||||||
0x00007ffc67d80000 - 0x00007ffc67e99000 C:\WINDOWS\System32\gdi32full.dll
|
|
||||||
0x00007ffc67ce0000 - 0x00007ffc67d7a000 C:\WINDOWS\System32\msvcp_win.dll
|
|
||||||
0x00007ffc5b4a0000 - 0x00007ffc5b4aa000 C:\WINDOWS\SYSTEM32\VERSION.dll
|
|
||||||
0x00007ffc69be0000 - 0x00007ffc69c11000 C:\WINDOWS\System32\IMM32.DLL
|
|
||||||
0x00007ffc64750000 - 0x00007ffc6475c000 D:\Program Files\Java\jdk-17.0.7\bin\vcruntime140_1.dll
|
|
||||||
0x00007ffc53d20000 - 0x00007ffc53dae000 D:\Program Files\Java\jdk-17.0.7\bin\msvcp140.dll
|
|
||||||
0x00007ffbe1a40000 - 0x00007ffbe261d000 D:\Program Files\Java\jdk-17.0.7\bin\server\jvm.dll
|
|
||||||
0x00007ffc68d30000 - 0x00007ffc68d38000 C:\WINDOWS\System32\PSAPI.DLL
|
|
||||||
0x00007ffc5f4b0000 - 0x00007ffc5f4e4000 C:\WINDOWS\SYSTEM32\WINMM.dll
|
|
||||||
0x00007ffc440a0000 - 0x00007ffc440a9000 C:\WINDOWS\SYSTEM32\WSOCK32.dll
|
|
||||||
0x00007ffc69c50000 - 0x00007ffc69cc1000 C:\WINDOWS\System32\WS2_32.dll
|
|
||||||
0x00007ffc664f0000 - 0x00007ffc66508000 C:\WINDOWS\SYSTEM32\kernel.appcore.dll
|
|
||||||
0x00007ffc63df0000 - 0x00007ffc63dfa000 D:\Program Files\Java\jdk-17.0.7\bin\jimage.dll
|
|
||||||
0x00007ffc5e660000 - 0x00007ffc5e892000 C:\WINDOWS\SYSTEM32\DBGHELP.DLL
|
|
||||||
0x00007ffc68000000 - 0x00007ffc68388000 C:\WINDOWS\System32\combase.dll
|
|
||||||
0x00007ffc68ba0000 - 0x00007ffc68c77000 C:\WINDOWS\System32\OLEAUT32.dll
|
|
||||||
0x00007ffc5a360000 - 0x00007ffc5a392000 C:\WINDOWS\SYSTEM32\dbgcore.DLL
|
|
||||||
0x00007ffc67960000 - 0x00007ffc679d9000 C:\WINDOWS\System32\bcryptPrimitives.dll
|
|
||||||
0x00007ffc623e0000 - 0x00007ffc623ee000 D:\Program Files\Java\jdk-17.0.7\bin\instrument.dll
|
|
||||||
0x00007ffc60230000 - 0x00007ffc60255000 D:\Program Files\Java\jdk-17.0.7\bin\java.dll
|
|
||||||
0x00007ffc09680000 - 0x00007ffc09757000 D:\Program Files\Java\jdk-17.0.7\bin\jsvml.dll
|
|
||||||
0x00007ffc69200000 - 0x00007ffc69a5c000 C:\WINDOWS\System32\SHELL32.dll
|
|
||||||
0x00007ffc65340000 - 0x00007ffc65c36000 C:\WINDOWS\SYSTEM32\windows.storage.dll
|
|
||||||
0x00007ffc65200000 - 0x00007ffc6533e000 C:\WINDOWS\SYSTEM32\wintypes.dll
|
|
||||||
0x00007ffc68800000 - 0x00007ffc688f5000 C:\WINDOWS\System32\SHCORE.dll
|
|
||||||
0x00007ffc68630000 - 0x00007ffc6868e000 C:\WINDOWS\System32\shlwapi.dll
|
|
||||||
0x00007ffc673c0000 - 0x00007ffc673e1000 C:\WINDOWS\SYSTEM32\profapi.dll
|
|
||||||
0x00007ffc598e0000 - 0x00007ffc598f8000 D:\Program Files\Java\jdk-17.0.7\bin\zip.dll
|
|
||||||
0x00007ffc5f5e0000 - 0x00007ffc5f5f9000 D:\Program Files\Java\jdk-17.0.7\bin\net.dll
|
|
||||||
0x00007ffc61240000 - 0x00007ffc61376000 C:\WINDOWS\SYSTEM32\WINHTTP.dll
|
|
||||||
0x00007ffc66950000 - 0x00007ffc669b9000 C:\WINDOWS\system32\mswsock.dll
|
|
||||||
0x00007ffc5a280000 - 0x00007ffc5a296000 D:\Program Files\Java\jdk-17.0.7\bin\nio.dll
|
|
||||||
0x00007ffc53d00000 - 0x00007ffc53d1a000 D:\Program Files\JetBrains\IntelliJ IDEA 2021.2.4\bin\breakgen64.dll
|
|
||||||
0x00007ffc65f80000 - 0x00007ffc66078000 C:\WINDOWS\SYSTEM32\DNSAPI.dll
|
|
||||||
0x00007ffc65f10000 - 0x00007ffc65f3d000 C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL
|
|
||||||
0x00007ffc687f0000 - 0x00007ffc687f9000 C:\WINDOWS\System32\NSI.dll
|
|
||||||
0x00007ffc5c700000 - 0x00007ffc5c70a000 C:\Windows\System32\rasadhlp.dll
|
|
||||||
0x00007ffc5fa90000 - 0x00007ffc5fb13000 C:\WINDOWS\System32\fwpuclnt.dll
|
|
||||||
0x00007ffc61450000 - 0x00007ffc6145a000 D:\Program Files\Java\jdk-17.0.7\bin\management.dll
|
|
||||||
0x00007ffc60530000 - 0x00007ffc6053b000 D:\Program Files\Java\jdk-17.0.7\bin\management_ext.dll
|
|
||||||
0x00007ffc66bf0000 - 0x00007ffc66c0b000 C:\WINDOWS\SYSTEM32\CRYPTSP.dll
|
|
||||||
0x00007ffc66450000 - 0x00007ffc66485000 C:\WINDOWS\system32\rsaenh.dll
|
|
||||||
0x00007ffc669f0000 - 0x00007ffc66a18000 C:\WINDOWS\SYSTEM32\USERENV.dll
|
|
||||||
0x00007ffc66b60000 - 0x00007ffc66b6c000 C:\WINDOWS\SYSTEM32\CRYPTBASE.dll
|
|
||||||
0x00007ffc60f60000 - 0x00007ffc60f79000 C:\WINDOWS\SYSTEM32\dhcpcsvc6.DLL
|
|
||||||
0x00007ffc60eb0000 - 0x00007ffc60ecf000 C:\WINDOWS\SYSTEM32\dhcpcsvc.DLL
|
|
||||||
0x00007ffc3b460000 - 0x00007ffc3b477000 C:\WINDOWS\system32\napinsp.dll
|
|
||||||
0x00007ffc32db0000 - 0x00007ffc32dcb000 C:\WINDOWS\system32\pnrpnsp.dll
|
|
||||||
0x00007ffc32d90000 - 0x00007ffc32da1000 C:\WINDOWS\System32\winrnr.dll
|
|
||||||
0x00007ffc60090000 - 0x00007ffc600a5000 C:\WINDOWS\system32\wshbth.dll
|
|
||||||
0x00007ffc32d60000 - 0x00007ffc32d87000 C:\WINDOWS\system32\nlansp_c.dll
|
|
||||||
0x00007ffc5a160000 - 0x00007ffc5a170000 D:\Program Files\Java\jdk-17.0.7\bin\verify.dll
|
|
||||||
0x00007ffc60310000 - 0x00007ffc6031d000 D:\Program Files\Java\jdk-17.0.7\bin\sunmscapi.dll
|
|
||||||
0x00007ffc67b70000 - 0x00007ffc67cd8000 C:\WINDOWS\System32\CRYPT32.dll
|
|
||||||
0x00007ffc66dc0000 - 0x00007ffc66dee000 C:\WINDOWS\SYSTEM32\ncrypt.dll
|
|
||||||
0x00007ffc66d80000 - 0x00007ffc66db7000 C:\WINDOWS\SYSTEM32\NTASN1.dll
|
|
||||||
0x00007ffc2b460000 - 0x00007ffc2b468000 C:\WINDOWS\system32\wshunix.dll
|
|
||||||
|
|
||||||
dbghelp: loaded successfully - version: 4.0.5 - missing functions: none
|
|
||||||
symbol engine: initialized successfully - sym options: 0x614 - pdb path: .;D:\Program Files\Java\jdk-17.0.7\bin;C:\WINDOWS\SYSTEM32;C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.22621.3527_none_270e469b73872a76;D:\Program Files\Java\jdk-17.0.7\bin\server;D:\Program Files\JetBrains\IntelliJ IDEA 2021.2.4\bin
|
|
||||||
|
|
||||||
VM Arguments:
|
|
||||||
jvm_args: -XX:TieredStopAtLevel=1 -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true -Dmanagement.endpoints.jmx.exposure.include=* -javaagent:D:\Program Files\JetBrains\IntelliJ IDEA 2021.2.4\lib\idea_rt.jar=62085:D:\Program Files\JetBrains\IntelliJ IDEA 2021.2.4\bin -Dfile.encoding=UTF-8
|
|
||||||
java_command: cn.workde.Application
|
|
||||||
java_class_path (initial): D:\IDEA\club-nfc\target\classes;C:\Users\li.jiaqi\.m2\repository\org\springframework\boot\spring-boot-starter-web\3.0.4\spring-boot-starter-web-3.0.4.jar;C:\Users\li.jiaqi\.m2\repository\org\springframework\boot\spring-boot-starter\3.0.4\spring-boot-starter-3.0.4.jar;C:\Users\li.jiaqi\.m2\repository\org\springframework\boot\spring-boot\3.0.4\spring-boot-3.0.4.jar;C:\Users\li.jiaqi\.m2\repository\org\springframework\boot\spring-boot-starter-logging\3.0.4\spring-boot-starter-logging-3.0.4.jar;C:\Users\li.jiaqi\.m2\repository\ch\qos\logback\logback-classic\1.4.5\logback-classic-1.4.5.jar;C:\Users\li.jiaqi\.m2\repository\ch\qos\logback\logback-core\1.4.5\logback-core-1.4.5.jar;C:\Users\li.jiaqi\.m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.19.0\log4j-to-slf4j-2.19.0.jar;C:\Users\li.jiaqi\.m2\repository\org\apache\logging\log4j\log4j-api\2.19.0\log4j-api-2.19.0.jar;C:\Users\li.jiaqi\.m2\repository\org\slf4j\jul-to-slf4j\2.0.6\jul-to-slf4j-2.0.6.jar;C:\Users\li.jiaqi\.m2\repository\jakarta\annotation\jakarta.annotation-api\2.1.1\jakarta.annotation-api-2.1.1.jar;C:\Users\li.jiaqi\.m2\repository\org\springframework\spring-core\6.0.6\spring-core-6.0.6.jar;C:\Users\li.jiaqi\.m2\repository\org\springframework\spring-jcl\6.0.6\spring-jcl-6.0.6.jar;C:\Users\li.jiaqi\.m2\repository\org\springframework\boot\spring-boot-starter-json\3.0.4\spring-boot-starter-json-3.0.4.jar;C:\Users\li.jiaqi\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.14.2\jackson-datatype-jdk8-2.14.2.jar;C:\Users\li.jiaqi\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.14.2\jackson-datatype-jsr310-2.14.2.jar;C:\Users\li.jiaqi\.m2\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.14.2\jackson-module-parameter-names-2.14.2.jar;C:\Users\li.jiaqi\.m2\repository\org\springframework\boot\spring-boot-starter-tomcat\3.0.4\spring-boot-starter-tomcat-3.0.4.jar;C:\Users\li.jiaqi\.m2\repository\org\apache\tomcat\emb
|
|
||||||
Launcher Type: SUN_STANDARD
|
|
||||||
|
|
||||||
[Global flags]
|
|
||||||
intx CICompilerCount = 4 {product} {ergonomic}
|
|
||||||
uint ConcGCThreads = 2 {product} {ergonomic}
|
|
||||||
uint G1ConcRefinementThreads = 8 {product} {ergonomic}
|
|
||||||
size_t G1HeapRegionSize = 2097152 {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 = 2550136832 {product} {ergonomic}
|
|
||||||
size_t MinHeapDeltaBytes = 2097152 {product} {ergonomic}
|
|
||||||
size_t MinHeapSize = 8388608 {product} {ergonomic}
|
|
||||||
uintx NonProfiledCodeHeapSize = 0 {pd product} {ergonomic}
|
|
||||||
bool ProfileInterpreter = false {pd product} {command line}
|
|
||||||
uintx ProfiledCodeHeapSize = 0 {pd product} {ergonomic}
|
|
||||||
size_t SoftMaxHeapSize = 4253024256 {manageable} {ergonomic}
|
|
||||||
intx TieredStopAtLevel = 1 {product} {command line}
|
|
||||||
bool UseCompressedClassPointers = true {product lp64_product} {ergonomic}
|
|
||||||
bool UseCompressedOops = true {product 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=D:\Program Files\Java\jdk1.8.0_291
|
|
||||||
CLASSPATH=D:\apache-jmeter-5.5\lib\ext\ApacheJMeter_core.jar;D:\apache-jmeter-5.5\lib\jorphan.jar;D:\apache-jmeter-5.5\lib\logkit-2.0.jar
|
|
||||||
PATH=D:\Program Files\Java\jdk1.8.0_291\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;D:\Program Files\Bandizip\;D:\Program Files\Maven\apache-maven-3.8.6\bin;D:\Program Files\MySQL\MySQL Server 8.0\bin;C:\Program Files\Docker\Docker\resources\bin;C:\Program Files (x86)\EasyShare\x86\;C:\Program Files (x86)\EasyShare\x64\;D:\Program Files (x86)\nodejs\;D:\Program Files\Git\cmd;C:\Users\li.jiaqi\AppData\Local\Microsoft\WindowsApps;C:\Users\li.jiaqi\AppData\Roaming\npm
|
|
||||||
USERNAME=li.jiaqi
|
|
||||||
OS=Windows_NT
|
|
||||||
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 142 Stepping 12, GenuineIntel
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
--------------- S Y S T E M ---------------
|
|
||||||
|
|
||||||
OS:
|
|
||||||
Windows 11 , 64 bit Build 22621 (10.0.22621.3527)
|
|
||||||
OS uptime: 0 days 23:41 hours
|
|
||||||
Hyper-V role detected
|
|
||||||
|
|
||||||
CPU: total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 142 stepping 12 microcode 0xde, cx8, cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, erms, clmul, bmi1, bmi2, adx, fma, vzeroupper, clflush, clflushopt, hv
|
|
||||||
|
|
||||||
Memory: 4k page, system-wide physical 16217M (393M free)
|
|
||||||
TotalPageFile size 35150M (AvailPageFile size 105M)
|
|
||||||
current process WorkingSet (physical memory assigned to process): 425M, peak: 425M
|
|
||||||
current process commit charge ("private bytes"): 470M, peak: 534M
|
|
||||||
|
|
||||||
vm_info: Java HotSpot(TM) 64-Bit Server VM (17.0.7+8-LTS-224) for windows-amd64 JRE (17.0.7+8-LTS-224), built on Feb 28 2023 23:03:02 by "mach5one" with MS VC++ 17.1 (VS2022)
|
|
||||||
|
|
||||||
END.
|
|
4
pom.xml
4
pom.xml
|
@ -13,7 +13,7 @@
|
||||||
|
|
||||||
|
|
||||||
<groupId>cn.workde</groupId>
|
<groupId>cn.workde</groupId>
|
||||||
<artifactId>club-nfc</artifactId>
|
<artifactId>drone-coding</artifactId>
|
||||||
<version>1.0-SNAPSHOT</version>
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
@ -396,7 +396,7 @@
|
||||||
<configuration>
|
<configuration>
|
||||||
<target>
|
<target>
|
||||||
<copy file="${project.basedir}/target/${app.build.name}.jar"
|
<copy file="${project.basedir}/target/${app.build.name}.jar"
|
||||||
tofile="${app.build.prod}/club-nfc.jar"/>
|
tofile="${app.build.prod}/drone-coding.jar"/>
|
||||||
<copy file="${project.basedir}/bin/start.sh" tofile="${app.build.prod}/start.sh"/>
|
<copy file="${project.basedir}/bin/start.sh" tofile="${app.build.prod}/start.sh"/>
|
||||||
|
|
||||||
<!-- 复制资源文件 -->
|
<!-- 复制资源文件 -->
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
package cn.workde.module.nfc.config;
|
|
||||||
|
|
||||||
|
|
||||||
import jakarta.websocket.server.ServerEndpointConfig;
|
|
||||||
import org.springframework.context.annotation.Bean;
|
|
||||||
import org.springframework.context.annotation.Configuration;
|
|
||||||
import org.springframework.web.socket.server.standard.ServerEndpointExporter;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 开启WebSocket支持
|
|
||||||
*/
|
|
||||||
@Configuration
|
|
||||||
public class WebSocketConfig extends ServerEndpointConfig.Configurator {
|
|
||||||
@Bean
|
|
||||||
public ServerEndpointExporter serverEndpointExporter() {
|
|
||||||
return new ServerEndpointExporter();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,66 +0,0 @@
|
||||||
package cn.workde.module.nfc.controller.admin;
|
|
||||||
|
|
||||||
import cn.hutool.core.util.ObjUtil;
|
|
||||||
import cn.workde.core.constant.GrapeConst;
|
|
||||||
import cn.workde.core.data.dto.Result;
|
|
||||||
import cn.workde.module.nfc.entity.People;
|
|
||||||
import cn.workde.module.nfc.entity.User;
|
|
||||||
import cn.workde.module.nfc.mapper.PeopleMapper;
|
|
||||||
import cn.workde.module.nfc.mapper.UserMapper;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
|
||||||
import io.swagger.v3.oas.annotations.Parameters;
|
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
||||||
import jakarta.annotation.Resource;
|
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
|
||||||
import org.springframework.web.bind.annotation.PutMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
@Tag(name = "强制解绑")
|
|
||||||
@RestController
|
|
||||||
@RequestMapping(value = GrapeConst.API + "/forceUnbind")
|
|
||||||
public class _ForceUnbindController {
|
|
||||||
@Resource
|
|
||||||
private UserMapper userMapper;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private PeopleMapper peopleMapper;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据卡号解绑
|
|
||||||
*/
|
|
||||||
@PutMapping("/forceUnbindByRfId/{rfId}")
|
|
||||||
@Operation(summary = "根据卡号解绑")
|
|
||||||
@Parameters({
|
|
||||||
@Parameter(name = "rfId", description = "NFC卡号", required = true)
|
|
||||||
})
|
|
||||||
public Result forceUnbindByRfId(@PathVariable("rfId") String rfId) {
|
|
||||||
User user = userMapper.selectOne(new QueryWrapper<User>().lambda()
|
|
||||||
.eq(User::getRfId, rfId)
|
|
||||||
.eq(User::getMemberStatus, 1)
|
|
||||||
.last("limit 1")
|
|
||||||
);
|
|
||||||
if (ObjUtil.isNotNull(user)) {
|
|
||||||
user.setRfId(null);
|
|
||||||
user.setRfStatus(null);
|
|
||||||
user.setRfIdWg26(null);
|
|
||||||
user.setRfIdWg34(null);
|
|
||||||
return userMapper.updateById(user) > 0 ? Result.success("操作成功") : Result.fail("操作失败");
|
|
||||||
}
|
|
||||||
People people = peopleMapper.selectOne(new QueryWrapper<People>().lambda()
|
|
||||||
.eq(People::getRfId, rfId)
|
|
||||||
.last("limit 1")
|
|
||||||
);
|
|
||||||
if (ObjUtil.isNotNull(people)) {
|
|
||||||
people.setRfId(null);
|
|
||||||
people.setRfStatus(null);
|
|
||||||
people.setRfIdWg26(null);
|
|
||||||
people.setRfIdWg34(null);
|
|
||||||
return peopleMapper.updateById(people) > 0 ? Result.success("操作成功") : Result.fail("操作失败");
|
|
||||||
}
|
|
||||||
return Result.fail("该卡未绑定飞手或人员");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,114 +0,0 @@
|
||||||
package cn.workde.module.nfc.controller.admin;
|
|
||||||
|
|
||||||
import cn.workde.core.constant.GrapeConst;
|
|
||||||
import cn.workde.core.data.dto.Result;
|
|
||||||
import cn.workde.module.nfc.dto.PeopleDto;
|
|
||||||
import cn.workde.module.nfc.service.PeopleService;
|
|
||||||
import cn.workde.module.nfc.vo.PeopleParam;
|
|
||||||
import cn.workde.module.nfc.vo.PeopleVo;
|
|
||||||
import cn.workde.module.upms.controller._BaseController;
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
|
||||||
import io.swagger.v3.oas.annotations.Parameters;
|
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
||||||
import jakarta.annotation.Resource;
|
|
||||||
import org.springdoc.core.annotations.ParameterObject;
|
|
||||||
import org.springframework.validation.annotation.Validated;
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
|
||||||
|
|
||||||
@Tag(name = "人员信息")
|
|
||||||
@RestController
|
|
||||||
@RequestMapping(value = GrapeConst.API + "/people")
|
|
||||||
public class _PeopleController extends _BaseController {
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private PeopleService peopleService;
|
|
||||||
|
|
||||||
@PostMapping("/getPeoplePage")
|
|
||||||
@Operation(summary = "获取人员列表")
|
|
||||||
public Result<Page<PeopleDto>> getPeoplePage(@RequestBody @Validated PeopleParam peopleParam) {
|
|
||||||
return peopleService.getPeoplePage(peopleParam);
|
|
||||||
}
|
|
||||||
|
|
||||||
@GetMapping("/getPeopleById")
|
|
||||||
@Operation(summary = "获取人员信息")
|
|
||||||
@Parameters({
|
|
||||||
@Parameter(name = "id", description = "人员ID", required = true)
|
|
||||||
})
|
|
||||||
public Result<PeopleDto> getPeopleById(String id) {
|
|
||||||
return peopleService.getPeopleById(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
@PostMapping("/addPeople")
|
|
||||||
@Operation(summary = "添加人员")
|
|
||||||
public Result addPeople(@RequestBody @Validated PeopleVo peopleVo) {
|
|
||||||
return peopleService.addPeople(peopleVo);
|
|
||||||
}
|
|
||||||
@PutMapping("/updatePeople/{id}")
|
|
||||||
@Operation(summary = "修改人员")
|
|
||||||
@Parameters({
|
|
||||||
@Parameter(name = "id", description = "人员ID", required = true)
|
|
||||||
})
|
|
||||||
public Result updatePeople(@PathVariable("id") String id, @RequestBody @Validated PeopleVo peopleVo) {
|
|
||||||
return peopleService.updatePeople(id, peopleVo);
|
|
||||||
}
|
|
||||||
|
|
||||||
@DeleteMapping("/deletePeople/{id}")
|
|
||||||
@Operation(summary = "删除人员")
|
|
||||||
@Parameters({
|
|
||||||
@Parameter(name = "id", description = "人员ID", required = true)
|
|
||||||
})
|
|
||||||
public Result deletePeople(@PathVariable("id") String id) {
|
|
||||||
return peopleService.deletePeople(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
@PutMapping("/associationRfId/{id}/{rfId}")
|
|
||||||
@Operation(summary = "绑定NFC卡")
|
|
||||||
@Parameters({
|
|
||||||
@Parameter(name = "id", description = "人员ID", required = true),
|
|
||||||
@Parameter(name = "rfId", description = "NFC卡号", required = true)
|
|
||||||
})
|
|
||||||
public Result associationRfId(@PathVariable("id") String id, @PathVariable("rfId") String rfId) {
|
|
||||||
return peopleService.associationRfId(id, rfId);
|
|
||||||
}
|
|
||||||
|
|
||||||
@PutMapping("/unbindRfId/{id}")
|
|
||||||
@Operation(summary = "解绑NFC卡")
|
|
||||||
@Parameters({
|
|
||||||
@Parameter(name = "id", description = "人员ID", required = true)
|
|
||||||
})
|
|
||||||
public Result unbindRfId(@PathVariable("id") String id) {
|
|
||||||
return peopleService.unbindRfId(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
@PutMapping("/enable/{id}")
|
|
||||||
@Operation(summary = "启用人员")
|
|
||||||
@Parameters({
|
|
||||||
@Parameter(name = "id", description = "人员ID", required = true)
|
|
||||||
})
|
|
||||||
public Result enable(@PathVariable("id") String id) {
|
|
||||||
return peopleService.enable(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
@PutMapping("/disable/{id}")
|
|
||||||
@Operation(summary = "停用人员")
|
|
||||||
@Parameters({
|
|
||||||
@Parameter(name = "id", description = "人员ID", required = true)
|
|
||||||
})
|
|
||||||
public Result disable(@PathVariable("id") String id) {
|
|
||||||
return peopleService.disable(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
@GetMapping("/exportExcel")
|
|
||||||
@Operation(summary = "导出Excel")
|
|
||||||
public void exportExcel(@ParameterObject PeopleParam peopleParam) {
|
|
||||||
peopleService.exportExcel(peopleParam);
|
|
||||||
}
|
|
||||||
|
|
||||||
@GetMapping("/Wg")
|
|
||||||
@Operation(summary = "WG")
|
|
||||||
public void Wg() {
|
|
||||||
peopleService.Wg();
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,96 +0,0 @@
|
||||||
package cn.workde.module.nfc.controller.admin;
|
|
||||||
|
|
||||||
import cn.workde.core.constant.GrapeConst;
|
|
||||||
import cn.workde.core.data.dto.Result;
|
|
||||||
import cn.workde.module.nfc.dto.PlayersDto;
|
|
||||||
import cn.workde.module.nfc.dto.PlayersInspectionAdminDto;
|
|
||||||
import cn.workde.module.nfc.service.PlayersInspectionService;
|
|
||||||
import cn.workde.module.nfc.service.PlayersService;
|
|
||||||
import cn.workde.module.nfc.vo.PlayerVo;
|
|
||||||
import cn.workde.module.upms.controller._BaseController;
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
|
||||||
import io.swagger.v3.oas.annotations.Parameters;
|
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
||||||
import jakarta.annotation.Resource;
|
|
||||||
import org.springdoc.core.annotations.ParameterObject;
|
|
||||||
import org.springframework.validation.annotation.Validated;
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
|
||||||
|
|
||||||
@Tag(name = "飞手信息")
|
|
||||||
@RestController
|
|
||||||
@RequestMapping(value = GrapeConst.API + "/players")
|
|
||||||
public class _PlayersController extends _BaseController {
|
|
||||||
@Resource
|
|
||||||
private PlayersService playersService;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private PlayersInspectionService playersInspectionService;
|
|
||||||
|
|
||||||
@PostMapping("/getPlayerDtoPage")
|
|
||||||
@Operation(summary = "获取飞手列表")
|
|
||||||
public Result<Page<PlayersDto>> getPlayerDtoPage(@RequestBody @Validated PlayerVo playerVo) {
|
|
||||||
return playersService.getPlayerDtoPage(playerVo);
|
|
||||||
}
|
|
||||||
|
|
||||||
@PutMapping("/getPlayerDtoPage/{playerId}/{rfId}")
|
|
||||||
@Operation(summary = "绑定NFC卡")
|
|
||||||
@Parameters({
|
|
||||||
@Parameter(name = "playerId", description = "飞手ID", required = true),
|
|
||||||
@Parameter(name = "rfId", description = "NFC卡号", required = true)
|
|
||||||
})
|
|
||||||
public Result associationRfId(@PathVariable("playerId") Long playerId, @PathVariable("rfId") String rfId) {
|
|
||||||
return playersService.associationRfId(playerId, rfId);
|
|
||||||
}
|
|
||||||
|
|
||||||
@PutMapping("/unbindRfId/{playerId}")
|
|
||||||
@Operation(summary = "解绑NFC卡")
|
|
||||||
@Parameters({
|
|
||||||
@Parameter(name = "playerId", description = "飞手ID", required = true)
|
|
||||||
})
|
|
||||||
public Result unbindRfId(@PathVariable("playerId") Long playerId) {
|
|
||||||
return playersService.unbindRfId(playerId);
|
|
||||||
}
|
|
||||||
|
|
||||||
@PutMapping("/enable/{playerId}")
|
|
||||||
@Operation(summary = "启用NFC卡")
|
|
||||||
@Parameters({
|
|
||||||
@Parameter(name = "playerId", description = "飞手ID", required = true)
|
|
||||||
})
|
|
||||||
public Result enable(@PathVariable("playerId") Long playerId) {
|
|
||||||
return playersService.enable(playerId);
|
|
||||||
}
|
|
||||||
|
|
||||||
@PutMapping("/disable/{playerId}")
|
|
||||||
@Operation(summary = "停用NFC卡")
|
|
||||||
@Parameters({
|
|
||||||
@Parameter(name = "playerId", description = "飞手ID", required = true)
|
|
||||||
})
|
|
||||||
public Result disable(@PathVariable("playerId") Long playerId) {
|
|
||||||
return playersService.disable(playerId);
|
|
||||||
}
|
|
||||||
|
|
||||||
@GetMapping("/getPlayersInspection/{playerId}")
|
|
||||||
@Operation(summary = "获取NFC卡检录信息")
|
|
||||||
@Parameters({
|
|
||||||
@Parameter(name = "playerId", description = "飞手ID", required = true),
|
|
||||||
@Parameter(name = "page", description = "页码", required = true),
|
|
||||||
@Parameter(name = "pageSize", description = "每页数量", required = true)
|
|
||||||
})
|
|
||||||
public Result<Page<PlayersInspectionAdminDto>> getPlayersInspection(Integer page, Integer pageSize, @PathVariable("playerId") String playerId) {
|
|
||||||
return playersInspectionService.getPlayersInspectionAdminDtoPage(new Page<>(page, pageSize), playerId);
|
|
||||||
}
|
|
||||||
|
|
||||||
@GetMapping("/exportExcel")
|
|
||||||
@Operation(summary = "导出Excel")
|
|
||||||
public void exportExcel(@ParameterObject PlayerVo playerVo) {
|
|
||||||
playersService.exportExcel(playerVo);
|
|
||||||
}
|
|
||||||
|
|
||||||
@GetMapping("/Wg")
|
|
||||||
@Operation(summary = "Wg")
|
|
||||||
public void Wg() {
|
|
||||||
playersService.Wg();
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,36 +0,0 @@
|
||||||
package cn.workde.module.nfc.controller.admin;
|
|
||||||
|
|
||||||
import cn.workde.core.constant.GrapeConst;
|
|
||||||
import cn.workde.core.data.dto.Result;
|
|
||||||
import cn.workde.module.nfc.dto.PlayersInspectionAdminDto;
|
|
||||||
import cn.workde.module.nfc.service.PlayersInspectionService;
|
|
||||||
import cn.workde.module.nfc.vo.PlayersInspectionParam;
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
|
||||||
import io.swagger.v3.oas.annotations.Parameters;
|
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
||||||
import jakarta.annotation.Resource;
|
|
||||||
import org.springdoc.core.annotations.ParameterObject;
|
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
@Tag(name = "检录")
|
|
||||||
@RestController
|
|
||||||
@RequestMapping(value = GrapeConst.API + "/playersInspection")
|
|
||||||
public class _PlayersInspectionController {
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private PlayersInspectionService playersInspectionService;
|
|
||||||
|
|
||||||
@GetMapping("/getPlayersInspectionAdminDtoPage")
|
|
||||||
@Operation(summary = "获取NFC卡检录信息")
|
|
||||||
@Parameters({
|
|
||||||
@Parameter(name = "page", description = "页码", required = true),
|
|
||||||
@Parameter(name = "pageSize", description = "每页数量", required = true)
|
|
||||||
})
|
|
||||||
public Result<Page<PlayersInspectionAdminDto>> getPlayersInspectionAdminPage(Integer page, Integer pageSize, @ParameterObject PlayersInspectionParam param) {
|
|
||||||
return playersInspectionService.getPlayersInspectionAdminPage(new Page<>(page, pageSize), param);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,36 +0,0 @@
|
||||||
package cn.workde.module.nfc.controller.admin;
|
|
||||||
|
|
||||||
import cn.workde.core.constant.GrapeConst;
|
|
||||||
import cn.workde.core.data.dto.Result;
|
|
||||||
import cn.workde.module.nfc.dto.SignAdminDto;
|
|
||||||
import cn.workde.module.nfc.service.SignService;
|
|
||||||
import cn.workde.module.nfc.vo.SignAdminParam;
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
|
||||||
import io.swagger.v3.oas.annotations.Parameters;
|
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
||||||
import jakarta.annotation.Resource;
|
|
||||||
import org.springdoc.core.annotations.ParameterObject;
|
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
@Tag(name = "签到")
|
|
||||||
@RestController
|
|
||||||
@RequestMapping(value = GrapeConst.API + "/sign")
|
|
||||||
public class _SignController {
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private SignService signService;
|
|
||||||
|
|
||||||
@GetMapping("/getSignAdminDtoPage")
|
|
||||||
@Operation(summary = "获取NFC卡签到信息")
|
|
||||||
@Parameters({
|
|
||||||
@Parameter(name = "page", description = "页码", required = true),
|
|
||||||
@Parameter(name = "pageSize", description = "每页数量", required = true)
|
|
||||||
})
|
|
||||||
public Result<Page<SignAdminDto>> getSignAdminDtoPage(Integer page, Integer pageSize, @ParameterObject SignAdminParam param) {
|
|
||||||
return signService.getSignAdminDtoPage(new Page<>(page, pageSize), param);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,84 +0,0 @@
|
||||||
package cn.workde.module.nfc.controller.app;
|
|
||||||
|
|
||||||
import cn.hutool.core.lang.Dict;
|
|
||||||
import cn.hutool.core.util.ObjUtil;
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
|
||||||
import cn.workde.core.constant.GrapeConst;
|
|
||||||
import cn.workde.core.data.dto.Result;
|
|
||||||
import cn.workde.core.util.RedisUtils;
|
|
||||||
import cn.workde.module.nfc.service.CmsArchivesService;
|
|
||||||
import cn.workde.module.nfc.service.MatchRankingService;
|
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
|
||||||
import io.swagger.v3.oas.annotations.Parameters;
|
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
||||||
import jakarta.annotation.Resource;
|
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
@Tag(name = "分组")
|
|
||||||
@RestController
|
|
||||||
@RequestMapping(value = GrapeConst.APP + "/group")
|
|
||||||
public class GroupController {
|
|
||||||
|
|
||||||
// @Resource
|
|
||||||
// private CmsArchivesService cmsArchivesService;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private MatchRankingService matchRankingService;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// /**
|
|
||||||
// * 获取赛事
|
|
||||||
// */
|
|
||||||
// @GetMapping("/getCmsArchives")
|
|
||||||
// @Operation(summary = "获取赛事")
|
|
||||||
// public Result<List<Map<String, Object>>> getCmsArchives() {
|
|
||||||
// return cmsArchivesService.getCmsArchives();
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// /**
|
|
||||||
// * 获取赛程
|
|
||||||
// */
|
|
||||||
// @GetMapping("/getCourse")
|
|
||||||
// @Operation(summary = "获取赛程")
|
|
||||||
// public Result<List<Dict>> getCourse() {
|
|
||||||
// return Result.data(List.of(
|
|
||||||
// Dict.create().set("key", "101").set("value", "资格赛"),
|
|
||||||
// Dict.create().set("key", "102").set("value", "淘汰赛"),
|
|
||||||
// Dict.create().set("key", "103").set("value", "决赛")
|
|
||||||
// ));
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// /**
|
|
||||||
// * 获取轮次
|
|
||||||
// */
|
|
||||||
// @GetMapping("/getOtherRound")
|
|
||||||
// @Operation(summary = "获取轮次")
|
|
||||||
// @Parameters({
|
|
||||||
// @Parameter(name = "matchId", description = "赛事id", required = true),
|
|
||||||
// @Parameter(name = "course", description = "赛程", required = true)
|
|
||||||
// })
|
|
||||||
// public Result<List<String>> getOtherRound(Integer matchId, String course) {
|
|
||||||
// if(ObjUtil.isNull(matchId)) return Result.fail("请选择赛事");
|
|
||||||
// if(StrUtil.isBlank(course)) return Result.fail("请选择赛程");
|
|
||||||
// return matchRankingService.getOtherRound(matchId, course);
|
|
||||||
// }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取分组
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@GetMapping("/getGrouping")
|
|
||||||
@Operation(summary = "获取分组")
|
|
||||||
public Result<Dict> getGrouping() {
|
|
||||||
return matchRankingService.getGrouping();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,63 +0,0 @@
|
||||||
package cn.workde.module.nfc.controller.app;
|
|
||||||
|
|
||||||
|
|
||||||
import cn.workde.core.constant.GrapeConst;
|
|
||||||
import cn.workde.core.data.dto.Result;
|
|
||||||
import cn.workde.module.nfc.dto.PlayersInspectionDto;
|
|
||||||
import cn.workde.module.nfc.service.PlayersInspectionService;
|
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
|
||||||
import io.swagger.v3.oas.annotations.Parameters;
|
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
||||||
import jakarta.annotation.Resource;
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 选手NFC检录表(PlayersInspection)表控制层
|
|
||||||
*
|
|
||||||
* @author makejava
|
|
||||||
* @since 2024-05-21 14:00:10
|
|
||||||
*/
|
|
||||||
@Tag(name = "飞手检录")
|
|
||||||
@RestController
|
|
||||||
@RequestMapping(value = GrapeConst.APP + "/playersInspection")
|
|
||||||
public class PlayersInspectionController {
|
|
||||||
@Resource
|
|
||||||
private PlayersInspectionService playersInspectionService;
|
|
||||||
|
|
||||||
@GetMapping("/getPlayersInspection")
|
|
||||||
@Operation(summary = "获取飞手检录信息")
|
|
||||||
@Parameters({
|
|
||||||
@Parameter(name = "rfId", description = "NFC卡号", required = true)
|
|
||||||
})
|
|
||||||
public Result<PlayersInspectionDto> getPlayersInspection(String rfId) {
|
|
||||||
return playersInspectionService.getPlayersInspection(rfId);
|
|
||||||
}
|
|
||||||
|
|
||||||
@PutMapping("/playersInspection/{rfId}/{status}")
|
|
||||||
@Operation(summary = "检录")
|
|
||||||
@Parameters({
|
|
||||||
@Parameter(name = "rfId", description = "NFC卡号", required = true),
|
|
||||||
@Parameter(name = "status", description = "是否通过 true或者false", required = true)
|
|
||||||
})
|
|
||||||
public Result<PlayersInspectionDto> playersInspection(@PathVariable("rfId")String rfId, @PathVariable("status") String status) {
|
|
||||||
return playersInspectionService.playersInspection(rfId, "true".equals(status));
|
|
||||||
}
|
|
||||||
|
|
||||||
@GetMapping("/getCountByThisDay")
|
|
||||||
@Operation(summary = "获取当天检录人数")
|
|
||||||
public Result<Integer> getCountByThisDay() {
|
|
||||||
return playersInspectionService.getCountByThisDay();
|
|
||||||
}
|
|
||||||
|
|
||||||
@GetMapping("/reset")
|
|
||||||
@Operation(summary = "重置")
|
|
||||||
@Parameters({
|
|
||||||
@Parameter(name = "password", description = "密码", required = true)
|
|
||||||
})
|
|
||||||
public Result<String> reset(String password) {
|
|
||||||
return playersInspectionService.reset(password);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,51 +0,0 @@
|
||||||
package cn.workde.module.nfc.controller.app;
|
|
||||||
|
|
||||||
import cn.hutool.core.util.ObjUtil;
|
|
||||||
import cn.hutool.json.JSONUtil;
|
|
||||||
import cn.workde.core.constant.GrapeConst;
|
|
||||||
import cn.workde.core.util.RedisUtils;
|
|
||||||
import cn.workde.module.nfc.vo.PushGroupVo;
|
|
||||||
import cn.workde.module.nfc.webSocket.NoticeWebSocket;
|
|
||||||
import cn.workde.module.upms.entity.GrapeConfig;
|
|
||||||
import cn.workde.module.upms.service.GrapeConfigService;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
||||||
import jakarta.annotation.Resource;
|
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
|
||||||
import org.springframework.validation.annotation.Validated;
|
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
@Tag(name = "定时器推送")
|
|
||||||
@RestController
|
|
||||||
@RequestMapping(value = GrapeConst.APP + "/push")
|
|
||||||
public class PushController {
|
|
||||||
|
|
||||||
@Value("${sa.name}")
|
|
||||||
private String loginId;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private RedisUtils redisUtils;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private GrapeConfigService configService;
|
|
||||||
|
|
||||||
@PostMapping("/group")
|
|
||||||
@Operation(summary = "定时器推送分组数据接口")
|
|
||||||
public void group(@Validated @RequestBody PushGroupVo pushGroupVo) {
|
|
||||||
GrapeConfig config = configService.getOne(new LambdaQueryWrapper<GrapeConfig>().eq(GrapeConfig::getParamKey, "club:nfc:push:group"));
|
|
||||||
if (ObjUtil.isNotNull(config)) {
|
|
||||||
config.setParamValue(JSONUtil.toJsonStr(pushGroupVo));
|
|
||||||
configService.edit(config);
|
|
||||||
} else {
|
|
||||||
config = new GrapeConfig();
|
|
||||||
config.setParamKey("club:nfc:push:group");
|
|
||||||
config.setParamValue(JSONUtil.toJsonStr(pushGroupVo));
|
|
||||||
configService.add(config);
|
|
||||||
}
|
|
||||||
NoticeWebSocket.sendAllMessage("定时器推送数据,请前端更行数据");
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,54 +0,0 @@
|
||||||
package cn.workde.module.nfc.controller.app;
|
|
||||||
|
|
||||||
import cn.workde.core.constant.GrapeConst;
|
|
||||||
import cn.workde.core.data.dto.Result;
|
|
||||||
import cn.workde.module.nfc.dto.SignDto;
|
|
||||||
import cn.workde.module.nfc.service.SignService;
|
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
|
||||||
import io.swagger.v3.oas.annotations.Parameters;
|
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
||||||
import jakarta.annotation.Resource;
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
|
||||||
|
|
||||||
@Tag(name = "签到")
|
|
||||||
@RestController
|
|
||||||
@RequestMapping(value = GrapeConst.APP + "/sign")
|
|
||||||
public class SignController {
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private SignService signService;
|
|
||||||
|
|
||||||
@GetMapping("/getSignType")
|
|
||||||
@Operation(summary = "获取签到类型(players:飞手,people:其他人员)")
|
|
||||||
@Parameters({
|
|
||||||
@Parameter(name = "rfId", description = "NFC卡号", required = true)
|
|
||||||
})
|
|
||||||
public Result<String> getSignType(String rfId) {
|
|
||||||
return signService.getSignType(rfId);
|
|
||||||
}
|
|
||||||
|
|
||||||
@GetMapping("/getCountByThisDay")
|
|
||||||
@Operation(summary = "获取当天签到人数")
|
|
||||||
public Result<Integer> getCountByThisDay() {
|
|
||||||
return signService.getCountByThisDay();
|
|
||||||
}
|
|
||||||
|
|
||||||
@PutMapping("/peopleSign/{rfId}")
|
|
||||||
@Operation(summary = "人员签到")
|
|
||||||
@Parameters({
|
|
||||||
@Parameter(name = "rfId", description = "NFC卡号", required = true)
|
|
||||||
})
|
|
||||||
public Result<SignDto> peopleSign(@PathVariable("rfId") String rfId) {
|
|
||||||
return signService.peopleSign(rfId);
|
|
||||||
}
|
|
||||||
|
|
||||||
@PutMapping("/playersSign/{rfId}")
|
|
||||||
@Operation(summary = "飞手签到")
|
|
||||||
@Parameters({
|
|
||||||
@Parameter(name = "rfId", description = "NFC卡号", required = true)
|
|
||||||
})
|
|
||||||
public Result<SignDto> playersSign(@PathVariable("rfId") String rfId) {
|
|
||||||
return signService.playersSign(rfId);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,41 +0,0 @@
|
||||||
package cn.workde.module.nfc.dto;
|
|
||||||
|
|
||||||
import cn.workde.module.nfc.entity.People;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.Data;
|
|
||||||
import lombok.EqualsAndHashCode;
|
|
||||||
|
|
||||||
@EqualsAndHashCode(callSuper = true)
|
|
||||||
@Data
|
|
||||||
public class PeopleDto extends People {
|
|
||||||
/**
|
|
||||||
* 是否绑定
|
|
||||||
*/
|
|
||||||
@Schema(description = "是否绑定")
|
|
||||||
private Boolean bind;
|
|
||||||
/**
|
|
||||||
* NFC 状态名称
|
|
||||||
*/
|
|
||||||
@Schema(description = "NFC 状态名称")
|
|
||||||
private String rfStatusName;
|
|
||||||
/**
|
|
||||||
* 是否显示绑卡按钮
|
|
||||||
*/
|
|
||||||
@Schema(description = "是否显示绑卡按钮")
|
|
||||||
private Boolean showBindCard;
|
|
||||||
/**
|
|
||||||
* 是否显示解绑按钮
|
|
||||||
*/
|
|
||||||
@Schema(description = "是否显示解绑按钮")
|
|
||||||
private Boolean showUnBindCard;
|
|
||||||
/**
|
|
||||||
* 是否显示启用按钮
|
|
||||||
*/
|
|
||||||
@Schema(description = "是否显示启用按钮")
|
|
||||||
private Boolean showEnable;
|
|
||||||
/**
|
|
||||||
* 是否显示停用按钮
|
|
||||||
*/
|
|
||||||
@Schema(description = "是否显示停用按钮")
|
|
||||||
private Boolean showDisable;
|
|
||||||
}
|
|
|
@ -1,99 +0,0 @@
|
||||||
package cn.workde.module.nfc.dto;
|
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
@Data
|
|
||||||
public class PlayerDto {
|
|
||||||
/**
|
|
||||||
* 飞手ID
|
|
||||||
*/
|
|
||||||
@Schema(description = "飞手ID")
|
|
||||||
private Long playerId;
|
|
||||||
/**
|
|
||||||
* 证件照
|
|
||||||
*/
|
|
||||||
@Schema(description = "证件照")
|
|
||||||
private String playerPic;
|
|
||||||
/**
|
|
||||||
* 姓名
|
|
||||||
*/
|
|
||||||
@Schema(description = "姓名")
|
|
||||||
private String realName;
|
|
||||||
/**
|
|
||||||
* 参赛ID
|
|
||||||
*/
|
|
||||||
@Schema(description = "参赛ID")
|
|
||||||
private String memberNumber;
|
|
||||||
/**
|
|
||||||
* 队伍简称
|
|
||||||
*/
|
|
||||||
@Schema(description = "队伍简称")
|
|
||||||
private String nameShort;
|
|
||||||
/**
|
|
||||||
* 性别 0男 1女
|
|
||||||
*/
|
|
||||||
@Schema(description = "性别 0男 1女")
|
|
||||||
private String gender;
|
|
||||||
/**
|
|
||||||
* 省
|
|
||||||
*/
|
|
||||||
@Schema(description = "省")
|
|
||||||
private String province;
|
|
||||||
/**
|
|
||||||
* 市
|
|
||||||
*/
|
|
||||||
@Schema(description = "市")
|
|
||||||
private String city;
|
|
||||||
/**
|
|
||||||
* 区
|
|
||||||
*/
|
|
||||||
@Schema(description = "区")
|
|
||||||
private String district;
|
|
||||||
/**
|
|
||||||
* 详细地址
|
|
||||||
*/
|
|
||||||
@Schema(description = "详细地址")
|
|
||||||
private String address;
|
|
||||||
/**
|
|
||||||
* 国籍
|
|
||||||
*/
|
|
||||||
@Schema(description = "国籍")
|
|
||||||
private String country;
|
|
||||||
/**
|
|
||||||
* NFC 卡号
|
|
||||||
*/
|
|
||||||
@Schema(description = "NFC 卡号")
|
|
||||||
private String rfId;
|
|
||||||
/**
|
|
||||||
* NFC 状态
|
|
||||||
*/
|
|
||||||
@Schema(description = "NFC 状态")
|
|
||||||
private Integer rfStatus;
|
|
||||||
/**
|
|
||||||
* 检录状态 0.未检录 1.通过 2.未通过
|
|
||||||
*/
|
|
||||||
@Schema(description = "检录状态 0.未检录 1.通过 2.未通过")
|
|
||||||
private Integer inspectionStatus;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 渠道
|
|
||||||
*/
|
|
||||||
@Schema(description = "渠道")
|
|
||||||
private String channel;
|
|
||||||
/**
|
|
||||||
* LED颜色
|
|
||||||
*/
|
|
||||||
@Schema(description = "LED颜色")
|
|
||||||
private String ledColor;
|
|
||||||
/**
|
|
||||||
* NFC卡编号WG26格式
|
|
||||||
*/
|
|
||||||
@Schema(description = "NFC卡编号WG26格式")
|
|
||||||
private String rfIdWg26;
|
|
||||||
/**
|
|
||||||
* NFC卡编号WG34格式
|
|
||||||
*/
|
|
||||||
@Schema(description = "NFC卡编号WG34格式")
|
|
||||||
private String rfIdWg34;
|
|
||||||
}
|
|
|
@ -1,47 +0,0 @@
|
||||||
package cn.workde.module.nfc.dto;
|
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.Data;
|
|
||||||
import lombok.EqualsAndHashCode;
|
|
||||||
|
|
||||||
@EqualsAndHashCode(callSuper = true)
|
|
||||||
@Data
|
|
||||||
public class PlayersDto extends PlayerDto {
|
|
||||||
/**
|
|
||||||
* 证件照完整路径
|
|
||||||
*/
|
|
||||||
@Schema(description = "证件照完整路径")
|
|
||||||
private String playerPicFullPath;
|
|
||||||
/**
|
|
||||||
* 是否绑定
|
|
||||||
*/
|
|
||||||
@Schema(description = "是否绑定")
|
|
||||||
private Boolean bind;
|
|
||||||
/**
|
|
||||||
* NFC 状态名称
|
|
||||||
*/
|
|
||||||
@Schema(description = "NFC 状态名称")
|
|
||||||
private String rfStatusName;
|
|
||||||
/**
|
|
||||||
* 是否显示绑卡按钮
|
|
||||||
*/
|
|
||||||
@Schema(description = "是否显示绑卡按钮")
|
|
||||||
private Boolean showBindCard;
|
|
||||||
/**
|
|
||||||
* 是否显示解绑按钮
|
|
||||||
*/
|
|
||||||
@Schema(description = "是否显示解绑按钮")
|
|
||||||
private Boolean showUnBindCard;
|
|
||||||
/**
|
|
||||||
* 是否显示启用按钮
|
|
||||||
*/
|
|
||||||
@Schema(description = "是否显示启用按钮")
|
|
||||||
private Boolean showEnable;
|
|
||||||
/**
|
|
||||||
* 是否显示停用按钮
|
|
||||||
*/
|
|
||||||
@Schema(description = "是否显示停用按钮")
|
|
||||||
private Boolean showDisable;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
package cn.workde.module.nfc.dto;
|
|
||||||
|
|
||||||
import cn.workde.module.nfc.entity.PlayersInspection;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.Data;
|
|
||||||
import lombok.EqualsAndHashCode;
|
|
||||||
|
|
||||||
@EqualsAndHashCode(callSuper = true)
|
|
||||||
@Data
|
|
||||||
public class PlayersInspectionAdminDto extends PlayersInspection {
|
|
||||||
/**
|
|
||||||
* 证件照完整路径
|
|
||||||
*/
|
|
||||||
@Schema(description = "证件照完整路径")
|
|
||||||
private String playerPicFullPath;
|
|
||||||
}
|
|
|
@ -1,34 +0,0 @@
|
||||||
package cn.workde.module.nfc.dto;
|
|
||||||
|
|
||||||
import cn.workde.module.nfc.entity.PlayersInspection;
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.Data;
|
|
||||||
import lombok.EqualsAndHashCode;
|
|
||||||
import org.joda.time.DateTime;
|
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@EqualsAndHashCode(callSuper = true)
|
|
||||||
@Data
|
|
||||||
public class PlayersInspectionDto extends PlayersDto {
|
|
||||||
/**
|
|
||||||
* 是否通过
|
|
||||||
*/
|
|
||||||
@Schema(description = "是否通过")
|
|
||||||
private Boolean status;
|
|
||||||
/**
|
|
||||||
* 检录时间
|
|
||||||
*/
|
|
||||||
@Schema(description = "检录时间")
|
|
||||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
|
||||||
private Date inspectionDatetime;
|
|
||||||
/**
|
|
||||||
* 检录日志
|
|
||||||
*/
|
|
||||||
@Schema(description = "检录日志")
|
|
||||||
private List<PlayersInspection> playersInspectionList;
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
package cn.workde.module.nfc.dto;
|
|
||||||
|
|
||||||
import cn.workde.module.nfc.entity.Sign;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.Data;
|
|
||||||
import lombok.EqualsAndHashCode;
|
|
||||||
|
|
||||||
@EqualsAndHashCode(callSuper = true)
|
|
||||||
@Data
|
|
||||||
public class SignAdminDto extends Sign {
|
|
||||||
/**
|
|
||||||
* 证件照完整路径
|
|
||||||
*/
|
|
||||||
@Schema(description = "证件照完整路径")
|
|
||||||
private String playerPicFullPath;
|
|
||||||
}
|
|
|
@ -1,88 +0,0 @@
|
||||||
package cn.workde.module.nfc.dto;
|
|
||||||
|
|
||||||
import cn.workde.module.nfc.entity.Sign;
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.Data;
|
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@Data
|
|
||||||
public class SignDto {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 证件照
|
|
||||||
*/
|
|
||||||
@Schema(description = "证件照")
|
|
||||||
private String playerPic;
|
|
||||||
/**
|
|
||||||
* 姓名
|
|
||||||
*/
|
|
||||||
@Schema(description = "姓名")
|
|
||||||
private String realName;
|
|
||||||
/**
|
|
||||||
* 参赛ID
|
|
||||||
*/
|
|
||||||
@Schema(description = "参赛ID")
|
|
||||||
private String memberNumber;
|
|
||||||
/**
|
|
||||||
* 队伍简称
|
|
||||||
*/
|
|
||||||
@Schema(description = "队伍简称")
|
|
||||||
private String nameShort;
|
|
||||||
/**
|
|
||||||
* 性别 0男 1女
|
|
||||||
*/
|
|
||||||
@Schema(description = "性别 0男 1女")
|
|
||||||
private String gender;
|
|
||||||
/**
|
|
||||||
* 省
|
|
||||||
*/
|
|
||||||
@Schema(description = "省")
|
|
||||||
private String province;
|
|
||||||
/**
|
|
||||||
* 市
|
|
||||||
*/
|
|
||||||
@Schema(description = "市")
|
|
||||||
private String city;
|
|
||||||
/**
|
|
||||||
* 区
|
|
||||||
*/
|
|
||||||
@Schema(description = "区")
|
|
||||||
private String district;
|
|
||||||
/**
|
|
||||||
* 详细地址
|
|
||||||
*/
|
|
||||||
@Schema(description = "详细地址")
|
|
||||||
private String address;
|
|
||||||
/**
|
|
||||||
* 国籍
|
|
||||||
*/
|
|
||||||
@Schema(description = "国籍")
|
|
||||||
private String country;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 证件照完整路径
|
|
||||||
*/
|
|
||||||
@Schema(description = "证件照完整路径")
|
|
||||||
private String playerPicFullPath;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 类型
|
|
||||||
*/
|
|
||||||
@Schema(description = "人员类型")
|
|
||||||
private String peopleType;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 签到日志
|
|
||||||
*/
|
|
||||||
@Schema(description = "签到日志")
|
|
||||||
private List<Sign> signList;
|
|
||||||
|
|
||||||
@Schema(description = "签到时间")
|
|
||||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
|
||||||
private Date signDatetime;
|
|
||||||
}
|
|
|
@ -1,233 +0,0 @@
|
||||||
package cn.workde.module.nfc.entity;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* (Club)表实体类
|
|
||||||
*
|
|
||||||
* @author makejava
|
|
||||||
* @since 2024-05-20 15:41:24
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
@TableName(value = "peewee_club")
|
|
||||||
public class Club {
|
|
||||||
/**
|
|
||||||
* 主键ID
|
|
||||||
*/
|
|
||||||
private Long id;
|
|
||||||
/**
|
|
||||||
* 用户ID
|
|
||||||
*/
|
|
||||||
private Integer userId;
|
|
||||||
/**
|
|
||||||
* 俱乐部名称
|
|
||||||
*/
|
|
||||||
private String name;
|
|
||||||
/**
|
|
||||||
* 1申请中 2退回修改 3拒绝申请 4重新申请 9通过申请
|
|
||||||
*/
|
|
||||||
private Integer status;
|
|
||||||
/**
|
|
||||||
* 俱乐部名称
|
|
||||||
*/
|
|
||||||
private String rejectReason;
|
|
||||||
/**
|
|
||||||
* 主体类型
|
|
||||||
*/
|
|
||||||
private String competitorsType;
|
|
||||||
/**
|
|
||||||
* 参赛主体
|
|
||||||
*/
|
|
||||||
private String competitors;
|
|
||||||
/**
|
|
||||||
* 省
|
|
||||||
*/
|
|
||||||
private String province;
|
|
||||||
/**
|
|
||||||
* 市
|
|
||||||
*/
|
|
||||||
private String city;
|
|
||||||
/**
|
|
||||||
* 区
|
|
||||||
*/
|
|
||||||
private String district;
|
|
||||||
/**
|
|
||||||
* 详细地址
|
|
||||||
*/
|
|
||||||
private String address;
|
|
||||||
/**
|
|
||||||
* 是否中国航空团体会员 0否 1是
|
|
||||||
*/
|
|
||||||
private Integer isAsfc;
|
|
||||||
/**
|
|
||||||
* asfc证书编号
|
|
||||||
*/
|
|
||||||
private String asfcNum;
|
|
||||||
/**
|
|
||||||
* 证书地址
|
|
||||||
*/
|
|
||||||
private String asfcCert;
|
|
||||||
/**
|
|
||||||
* 俱乐部logo
|
|
||||||
*/
|
|
||||||
private String logo;
|
|
||||||
/**
|
|
||||||
* 旗帜
|
|
||||||
*/
|
|
||||||
private String flag;
|
|
||||||
/**
|
|
||||||
* 口号
|
|
||||||
*/
|
|
||||||
private String competitionSlogan;
|
|
||||||
/**
|
|
||||||
* 营业执照编号
|
|
||||||
*/
|
|
||||||
private String businessNum;
|
|
||||||
/**
|
|
||||||
* 商业执照
|
|
||||||
*/
|
|
||||||
private String businessLicense;
|
|
||||||
/**
|
|
||||||
* 卡正面视图
|
|
||||||
*/
|
|
||||||
private String cardFrontView;
|
|
||||||
/**
|
|
||||||
* 卡背面视图
|
|
||||||
*/
|
|
||||||
private String cardBackView;
|
|
||||||
/**
|
|
||||||
* 合法名称
|
|
||||||
*/
|
|
||||||
private String legalName;
|
|
||||||
/**
|
|
||||||
* 法律电话
|
|
||||||
*/
|
|
||||||
private String legalTel;
|
|
||||||
/**
|
|
||||||
* 合法卡
|
|
||||||
*/
|
|
||||||
private String legalCard;
|
|
||||||
/**
|
|
||||||
* 领导
|
|
||||||
*/
|
|
||||||
private String leader;
|
|
||||||
/**
|
|
||||||
* 领导电话
|
|
||||||
*/
|
|
||||||
private String leaderTel;
|
|
||||||
/**
|
|
||||||
* 副组长1
|
|
||||||
*/
|
|
||||||
private String deputyLeader1;
|
|
||||||
/**
|
|
||||||
* 副组长1 电话
|
|
||||||
*/
|
|
||||||
private String deputyLeader1Tel;
|
|
||||||
/**
|
|
||||||
* 副组长2
|
|
||||||
*/
|
|
||||||
private String deputyLeader2;
|
|
||||||
/**
|
|
||||||
* 副组长2 电话
|
|
||||||
*/
|
|
||||||
private String deputyLeader2Tel;
|
|
||||||
/**
|
|
||||||
* 总教练
|
|
||||||
*/
|
|
||||||
private String headCoach;
|
|
||||||
/**
|
|
||||||
* 总教练电话
|
|
||||||
*/
|
|
||||||
private String headCoachTel;
|
|
||||||
/**
|
|
||||||
* 教练1
|
|
||||||
*/
|
|
||||||
private String coach1;
|
|
||||||
/**
|
|
||||||
* 教练 1 电话
|
|
||||||
*/
|
|
||||||
private String coach1Tel;
|
|
||||||
/**
|
|
||||||
* 教练2
|
|
||||||
*/
|
|
||||||
private String coach2;
|
|
||||||
/**
|
|
||||||
* 教练2电话
|
|
||||||
*/
|
|
||||||
private String coach2Tel;
|
|
||||||
/**
|
|
||||||
* 教练3
|
|
||||||
*/
|
|
||||||
private String coach3;
|
|
||||||
/**
|
|
||||||
* 教练3电话
|
|
||||||
*/
|
|
||||||
private String coach3Tel;
|
|
||||||
/**
|
|
||||||
* 教练 4
|
|
||||||
*/
|
|
||||||
private String coach4;
|
|
||||||
/**
|
|
||||||
* 教练 4 电话
|
|
||||||
*/
|
|
||||||
private String coach4Tel;
|
|
||||||
/**
|
|
||||||
* 俱乐部名单
|
|
||||||
*/
|
|
||||||
private String playerCoachStuff;
|
|
||||||
/**
|
|
||||||
* 参赛承诺
|
|
||||||
*/
|
|
||||||
private String jobSitu;
|
|
||||||
/**
|
|
||||||
* 参赛承诺
|
|
||||||
*/
|
|
||||||
private String promiseStuff;
|
|
||||||
/**
|
|
||||||
* 创建时间
|
|
||||||
*/
|
|
||||||
private Integer createtime;
|
|
||||||
/**
|
|
||||||
* 更新时间
|
|
||||||
*/
|
|
||||||
private Integer updatetime;
|
|
||||||
/**
|
|
||||||
* 队名简称
|
|
||||||
*/
|
|
||||||
private String nameShort;
|
|
||||||
/**
|
|
||||||
* 媒体平台
|
|
||||||
*/
|
|
||||||
private Integer isMedia;
|
|
||||||
/**
|
|
||||||
* 媒体平台
|
|
||||||
*/
|
|
||||||
private String mediaPlatform;
|
|
||||||
/**
|
|
||||||
* 媒体账号名称
|
|
||||||
*/
|
|
||||||
private String mediaName;
|
|
||||||
/**
|
|
||||||
* 队服1
|
|
||||||
*/
|
|
||||||
private String clubClothes1;
|
|
||||||
/**
|
|
||||||
* 队服2
|
|
||||||
*/
|
|
||||||
private String clubClothes2;
|
|
||||||
/**
|
|
||||||
* 队服3
|
|
||||||
*/
|
|
||||||
private String clubClothes3;
|
|
||||||
/**
|
|
||||||
* 队服4
|
|
||||||
*/
|
|
||||||
private String clubClothes4;
|
|
||||||
/**
|
|
||||||
* 1身份证 2港澳身份证
|
|
||||||
*/
|
|
||||||
private String clubCardType;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,63 +0,0 @@
|
||||||
package cn.workde.module.nfc.entity;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* (ClubInvate)表实体类
|
|
||||||
*
|
|
||||||
* @author makejava
|
|
||||||
* @since 2024-05-20 15:42:04
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
@TableName(value = "peewee_club_invate")
|
|
||||||
public class ClubInvate {
|
|
||||||
/**
|
|
||||||
* 主键ID
|
|
||||||
*/
|
|
||||||
private Integer id;
|
|
||||||
/**
|
|
||||||
* 俱乐部ID
|
|
||||||
*/
|
|
||||||
private Integer clubId;
|
|
||||||
/**
|
|
||||||
* 飞手ID
|
|
||||||
*/
|
|
||||||
private Integer playerId;
|
|
||||||
/**
|
|
||||||
* 状态 1发出邀请 2同意邀请 3拒绝邀请 4撤销邀请 5待系统审核 6审核通过 7拒绝 8重新上传协议 9等待队伍上传
|
|
||||||
*/
|
|
||||||
private Integer status;
|
|
||||||
/**
|
|
||||||
* 创建时间
|
|
||||||
*/
|
|
||||||
private Long createtime;
|
|
||||||
/**
|
|
||||||
* 更新时间
|
|
||||||
*/
|
|
||||||
private Long updatetime;
|
|
||||||
/**
|
|
||||||
* 删除时间
|
|
||||||
*/
|
|
||||||
private Long deletetime;
|
|
||||||
/**
|
|
||||||
* 俱乐部名称
|
|
||||||
*/
|
|
||||||
private String clubName;
|
|
||||||
/**
|
|
||||||
* 飞手名称
|
|
||||||
*/
|
|
||||||
private String playerName;
|
|
||||||
/**
|
|
||||||
* grass
|
|
||||||
*/
|
|
||||||
private String grass;
|
|
||||||
/**
|
|
||||||
* 协议
|
|
||||||
*/
|
|
||||||
private String protocol;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,147 +0,0 @@
|
||||||
package cn.workde.module.nfc.entity;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
|
||||||
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 内容表(CmsArchives)表实体类
|
|
||||||
*
|
|
||||||
* @author makejava
|
|
||||||
* @since 2024-05-27 11:45:02
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
@TableName(value = "peewee_cms_archives")
|
|
||||||
public class CmsArchives {
|
|
||||||
/**
|
|
||||||
* ID
|
|
||||||
*/
|
|
||||||
private Long id;
|
|
||||||
/**
|
|
||||||
* 会员ID
|
|
||||||
*/
|
|
||||||
private Long userId;
|
|
||||||
/**
|
|
||||||
* 栏目ID
|
|
||||||
*/
|
|
||||||
private Long channelId;
|
|
||||||
/**
|
|
||||||
* 副栏目ID集合
|
|
||||||
*/
|
|
||||||
private String channelIds;
|
|
||||||
/**
|
|
||||||
* 模型ID
|
|
||||||
*/
|
|
||||||
private Integer modelId;
|
|
||||||
/**
|
|
||||||
* 专题ID集合
|
|
||||||
*/
|
|
||||||
private String specialIds;
|
|
||||||
/**
|
|
||||||
* 管理员ID
|
|
||||||
*/
|
|
||||||
private Long adminId;
|
|
||||||
/**
|
|
||||||
* 文章标题
|
|
||||||
*/
|
|
||||||
private String title;
|
|
||||||
/**
|
|
||||||
* 标志
|
|
||||||
*/
|
|
||||||
private String flag;
|
|
||||||
/**
|
|
||||||
* 样式
|
|
||||||
*/
|
|
||||||
private String style;
|
|
||||||
/**
|
|
||||||
* 缩略图
|
|
||||||
*/
|
|
||||||
private String image;
|
|
||||||
/**
|
|
||||||
* 组图
|
|
||||||
*/
|
|
||||||
private String images;
|
|
||||||
/**
|
|
||||||
* SEO标题
|
|
||||||
*/
|
|
||||||
private String seotitle;
|
|
||||||
/**
|
|
||||||
* 关键字
|
|
||||||
*/
|
|
||||||
private String keywords;
|
|
||||||
/**
|
|
||||||
* 描述
|
|
||||||
*/
|
|
||||||
private String description;
|
|
||||||
/**
|
|
||||||
* TAG
|
|
||||||
*/
|
|
||||||
private String tags;
|
|
||||||
/**
|
|
||||||
* 价格
|
|
||||||
*/
|
|
||||||
private String price;
|
|
||||||
/**
|
|
||||||
* 外部链接
|
|
||||||
*/
|
|
||||||
private String outlink;
|
|
||||||
/**
|
|
||||||
* 权重
|
|
||||||
*/
|
|
||||||
private Integer weigh;
|
|
||||||
/**
|
|
||||||
* 浏览次数
|
|
||||||
*/
|
|
||||||
private Long views;
|
|
||||||
/**
|
|
||||||
* 评论次数
|
|
||||||
*/
|
|
||||||
private Long comments;
|
|
||||||
/**
|
|
||||||
* 点赞数
|
|
||||||
*/
|
|
||||||
private Long likes;
|
|
||||||
/**
|
|
||||||
* 点踩数
|
|
||||||
*/
|
|
||||||
private Long dislikes;
|
|
||||||
/**
|
|
||||||
* 自定义URL
|
|
||||||
*/
|
|
||||||
private String diyname;
|
|
||||||
/**
|
|
||||||
* 是否访客访问
|
|
||||||
*/
|
|
||||||
private String isguest;
|
|
||||||
/**
|
|
||||||
* 是否允许评论
|
|
||||||
*/
|
|
||||||
private String iscomment;
|
|
||||||
/**
|
|
||||||
* 创建时间
|
|
||||||
*/
|
|
||||||
private Long createtime;
|
|
||||||
/**
|
|
||||||
* 更新时间
|
|
||||||
*/
|
|
||||||
private Long updatetime;
|
|
||||||
/**
|
|
||||||
* 发布时间
|
|
||||||
*/
|
|
||||||
private Long publishtime;
|
|
||||||
/**
|
|
||||||
* 删除时间
|
|
||||||
*/
|
|
||||||
private Long deletetime;
|
|
||||||
/**
|
|
||||||
* 备注
|
|
||||||
*/
|
|
||||||
private String memo;
|
|
||||||
/**
|
|
||||||
* 状态
|
|
||||||
*/
|
|
||||||
private String status;
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,131 +0,0 @@
|
||||||
package cn.workde.module.nfc.entity;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 赛事成绩表(MatchRanking)表实体类
|
|
||||||
*
|
|
||||||
* @author makejava
|
|
||||||
* @since 2024-03-22 10:51:53
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
@TableName("peewee_match_ranking")
|
|
||||||
public class MatchRanking {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ID
|
|
||||||
*/
|
|
||||||
private Integer id;
|
|
||||||
/**
|
|
||||||
* 赛事id
|
|
||||||
*/
|
|
||||||
private Integer matchId;
|
|
||||||
/**
|
|
||||||
* 飞手id(不是飞手表的id,是飞手在用户表里面的参赛ID)
|
|
||||||
*/
|
|
||||||
private Integer playerId;
|
|
||||||
/**
|
|
||||||
* 飞手姓名
|
|
||||||
*/
|
|
||||||
private String playerName;
|
|
||||||
/**
|
|
||||||
* 飞行圈数
|
|
||||||
*/
|
|
||||||
private String flyNum;
|
|
||||||
/**
|
|
||||||
* 耗时时间
|
|
||||||
*/
|
|
||||||
private String times;
|
|
||||||
/**
|
|
||||||
* 分组
|
|
||||||
*/
|
|
||||||
@TableField("`grouping`")
|
|
||||||
private String grouping;
|
|
||||||
/**
|
|
||||||
* 耗时毫秒数
|
|
||||||
*/
|
|
||||||
private Integer achievement;
|
|
||||||
/**
|
|
||||||
* 上传时间
|
|
||||||
*/
|
|
||||||
private Date createtime;
|
|
||||||
/**
|
|
||||||
* 更新时间
|
|
||||||
*/
|
|
||||||
private Date updatetime;
|
|
||||||
/**
|
|
||||||
* 赛程 62进32、32进16、 16进8、 8进4、 决赛
|
|
||||||
*/
|
|
||||||
private String course;
|
|
||||||
/**
|
|
||||||
* 是否参与排名 Y代表参与,N代表不参与
|
|
||||||
*/
|
|
||||||
private String ranking;
|
|
||||||
/**
|
|
||||||
* 排名
|
|
||||||
*/
|
|
||||||
private Integer groupScore;
|
|
||||||
/**
|
|
||||||
* 是否晋级 1 代表晋级 0 代表没晋级
|
|
||||||
*/
|
|
||||||
private Integer promoted;
|
|
||||||
/**
|
|
||||||
* 积分
|
|
||||||
*/
|
|
||||||
private Integer integral;
|
|
||||||
/**
|
|
||||||
* 是否是决赛
|
|
||||||
*/
|
|
||||||
private String isFinals;
|
|
||||||
/**
|
|
||||||
* 决赛轮次
|
|
||||||
*/
|
|
||||||
private String finalsRound;
|
|
||||||
/**
|
|
||||||
* LED颜色
|
|
||||||
*/
|
|
||||||
private String ledColor;
|
|
||||||
/**
|
|
||||||
* 渠道
|
|
||||||
*/
|
|
||||||
private String channel;
|
|
||||||
/**
|
|
||||||
* 赛程轮次
|
|
||||||
*/
|
|
||||||
private String otherRound;
|
|
||||||
/**
|
|
||||||
* 每个赛程的所有轮次的最优成绩
|
|
||||||
*/
|
|
||||||
private Integer bastPerformance;
|
|
||||||
/**
|
|
||||||
* 每个赛程的自己轮次的排名
|
|
||||||
*/
|
|
||||||
private Integer roundScore;
|
|
||||||
/**
|
|
||||||
* 成绩
|
|
||||||
*/
|
|
||||||
private Date datetimeValue;
|
|
||||||
/**
|
|
||||||
* 自定义排名
|
|
||||||
*/
|
|
||||||
private Integer customSorting;
|
|
||||||
/**
|
|
||||||
* 单轮第一圈
|
|
||||||
*/
|
|
||||||
private String firstFlyTime;
|
|
||||||
/**
|
|
||||||
* 单轮第二圈
|
|
||||||
*/
|
|
||||||
private String secondFlyTime;
|
|
||||||
/**
|
|
||||||
* 单轮第三圈
|
|
||||||
*/
|
|
||||||
private String thirdFlyTime;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,101 +0,0 @@
|
||||||
package cn.workde.module.nfc.entity;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* NFC人员信息表(飞手信息不在这里)(People)表实体类
|
|
||||||
*
|
|
||||||
* @author makejava
|
|
||||||
* @since 2024-05-22 09:36:46
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
@TableName(value = "dss_club_nfc_people")
|
|
||||||
public class People {
|
|
||||||
/**
|
|
||||||
* 主键
|
|
||||||
*/
|
|
||||||
@TableId(type = IdType.ASSIGN_ID)
|
|
||||||
@Schema(description = "主键")
|
|
||||||
private String id;
|
|
||||||
/**
|
|
||||||
* NFC卡编号
|
|
||||||
*/
|
|
||||||
@Schema(description = "NFC卡编号")
|
|
||||||
private String rfId;
|
|
||||||
/**
|
|
||||||
* NFC 状态
|
|
||||||
*/
|
|
||||||
@Schema(description = "NFC 状态")
|
|
||||||
private Integer rfStatus;
|
|
||||||
/**
|
|
||||||
* 人员类型
|
|
||||||
*/
|
|
||||||
@Schema(description = "人员类型")
|
|
||||||
private String peopleType;
|
|
||||||
/**
|
|
||||||
* 姓名
|
|
||||||
*/
|
|
||||||
@Schema(description = "姓名")
|
|
||||||
private String realName;
|
|
||||||
/**
|
|
||||||
* 参赛ID
|
|
||||||
*/
|
|
||||||
@Schema(description = "参赛ID")
|
|
||||||
private String memberNumber;
|
|
||||||
/**
|
|
||||||
* 队伍简称
|
|
||||||
*/
|
|
||||||
@Schema(description = "队伍简称")
|
|
||||||
private String nameShort;
|
|
||||||
/**
|
|
||||||
* 性别
|
|
||||||
*/
|
|
||||||
@Schema(description = "性别")
|
|
||||||
private String gender;
|
|
||||||
/**
|
|
||||||
* 省
|
|
||||||
*/
|
|
||||||
@Schema(description = "省")
|
|
||||||
private String province;
|
|
||||||
/**
|
|
||||||
* 市
|
|
||||||
*/
|
|
||||||
@Schema(description = "市")
|
|
||||||
private String city;
|
|
||||||
/**
|
|
||||||
* 区
|
|
||||||
*/
|
|
||||||
@Schema(description = "区")
|
|
||||||
private String district;
|
|
||||||
/**
|
|
||||||
* 详细地址
|
|
||||||
*/
|
|
||||||
@Schema(description = "详细地址")
|
|
||||||
private String address;
|
|
||||||
/**
|
|
||||||
* 国籍
|
|
||||||
*/
|
|
||||||
@Schema(description = "国籍")
|
|
||||||
private String country;
|
|
||||||
/**
|
|
||||||
* 飞手照片
|
|
||||||
*/
|
|
||||||
@Schema(description = "飞手照片")
|
|
||||||
private String playerPic;
|
|
||||||
/**
|
|
||||||
* NFC卡编号WG26格式
|
|
||||||
*/
|
|
||||||
@Schema(description = "NFC卡编号WG26格式")
|
|
||||||
private String rfIdWg26;
|
|
||||||
/**
|
|
||||||
* NFC卡编号WG34格式
|
|
||||||
*/
|
|
||||||
@Schema(description = "NFC卡编号WG34格式")
|
|
||||||
private String rfIdWg34;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,188 +0,0 @@
|
||||||
package cn.workde.module.nfc.entity;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 飞手表(Players)表实体类
|
|
||||||
*
|
|
||||||
* @author makejava
|
|
||||||
* @since 2024-05-20 15:40:15
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
@TableName(value = "peewee_players")
|
|
||||||
public class Players {
|
|
||||||
/**
|
|
||||||
* 主键ID
|
|
||||||
*/
|
|
||||||
private Long id;
|
|
||||||
/**
|
|
||||||
* 用户ID
|
|
||||||
*/
|
|
||||||
private Integer memberId;
|
|
||||||
/**
|
|
||||||
* 俱乐部ID
|
|
||||||
*/
|
|
||||||
private Integer clubId;
|
|
||||||
/**
|
|
||||||
* 真实姓名
|
|
||||||
*/
|
|
||||||
private String realName;
|
|
||||||
/**
|
|
||||||
* 真实手机号
|
|
||||||
*/
|
|
||||||
private String phone;
|
|
||||||
/**
|
|
||||||
* 年龄
|
|
||||||
*/
|
|
||||||
private Integer age;
|
|
||||||
/**
|
|
||||||
* 性别 0男 1女
|
|
||||||
*/
|
|
||||||
private String gender;
|
|
||||||
/**
|
|
||||||
* 生日
|
|
||||||
*/
|
|
||||||
private Date birthday;
|
|
||||||
/**
|
|
||||||
* 省
|
|
||||||
*/
|
|
||||||
private String province;
|
|
||||||
/**
|
|
||||||
* 市
|
|
||||||
*/
|
|
||||||
private String city;
|
|
||||||
/**
|
|
||||||
* 区
|
|
||||||
*/
|
|
||||||
private String district;
|
|
||||||
/**
|
|
||||||
* 详细地址
|
|
||||||
*/
|
|
||||||
private String address;
|
|
||||||
/**
|
|
||||||
* 国籍
|
|
||||||
*/
|
|
||||||
private String country;
|
|
||||||
/**
|
|
||||||
* 飞手照片
|
|
||||||
*/
|
|
||||||
private String playerPic;
|
|
||||||
/**
|
|
||||||
* 参赛获奖经历
|
|
||||||
*/
|
|
||||||
private String experience;
|
|
||||||
/**
|
|
||||||
* 0身份证 1护照 2台胞证 3港澳通行证
|
|
||||||
*/
|
|
||||||
private String cardType;
|
|
||||||
/**
|
|
||||||
* 证件号码
|
|
||||||
*/
|
|
||||||
private String cardNumber;
|
|
||||||
/**
|
|
||||||
* 1.不同 2.相同
|
|
||||||
*/
|
|
||||||
private Integer cardViewSame;
|
|
||||||
/**
|
|
||||||
* 监护人证件正面照
|
|
||||||
*/
|
|
||||||
private String guarderCardFrontView;
|
|
||||||
/**
|
|
||||||
* 监护人证件反面照
|
|
||||||
*/
|
|
||||||
private String guarderCardBackView;
|
|
||||||
/**
|
|
||||||
* 飞手状态 0普通用户 1申请中 2退回修改 3重新申请 9正式飞手 -1申请不通过 -2被取消身份
|
|
||||||
*/
|
|
||||||
private Integer playerStatus;
|
|
||||||
/**
|
|
||||||
* 添加时间
|
|
||||||
*/
|
|
||||||
private Date createdAt;
|
|
||||||
/**
|
|
||||||
* 更新时间
|
|
||||||
*/
|
|
||||||
private Date updatedAt;
|
|
||||||
/**
|
|
||||||
* 删除时间
|
|
||||||
*/
|
|
||||||
private Date deletedAt;
|
|
||||||
/**
|
|
||||||
* 飞手证件照正面
|
|
||||||
*/
|
|
||||||
private String cardFrontView;
|
|
||||||
/**
|
|
||||||
* 飞手证件照反面
|
|
||||||
*/
|
|
||||||
private String cardBackView;
|
|
||||||
/**
|
|
||||||
* 监护人姓名
|
|
||||||
*/
|
|
||||||
private String guarderName;
|
|
||||||
/**
|
|
||||||
* 监护人手机号
|
|
||||||
*/
|
|
||||||
private String guarderPhone;
|
|
||||||
/**
|
|
||||||
* 0身份证 1护照 2台胞证 3港澳通行证
|
|
||||||
*/
|
|
||||||
private String guarderCardType;
|
|
||||||
/**
|
|
||||||
* 监护人证件号码
|
|
||||||
*/
|
|
||||||
private String guarderCardNumber;
|
|
||||||
/**
|
|
||||||
* 1.不同 2.相同
|
|
||||||
*/
|
|
||||||
private Integer guarderCardViewSame;
|
|
||||||
/**
|
|
||||||
* 1.asfc会员 0.非asfc会员
|
|
||||||
*/
|
|
||||||
private Integer asfcUser;
|
|
||||||
/**
|
|
||||||
* asfc会员编号
|
|
||||||
*/
|
|
||||||
private String membershipId;
|
|
||||||
/**
|
|
||||||
* 飞行证号
|
|
||||||
*/
|
|
||||||
private String flightNumber;
|
|
||||||
/**
|
|
||||||
* 0.非俱乐部会员 1.俱乐部会员
|
|
||||||
*/
|
|
||||||
private Integer clubMembers;
|
|
||||||
/**
|
|
||||||
* 俱乐部名称
|
|
||||||
*/
|
|
||||||
private String clubName;
|
|
||||||
/**
|
|
||||||
* 俱乐部职位
|
|
||||||
*/
|
|
||||||
private String duties;
|
|
||||||
/**
|
|
||||||
* 风采照片
|
|
||||||
*/
|
|
||||||
private String stylePhoto;
|
|
||||||
/**
|
|
||||||
* 辅导员姓名
|
|
||||||
*/
|
|
||||||
private String counselorName;
|
|
||||||
/**
|
|
||||||
* 是否加入公会
|
|
||||||
*/
|
|
||||||
private String isSociaty;
|
|
||||||
/**
|
|
||||||
* 第一次登录没加入飞手公会
|
|
||||||
*/
|
|
||||||
private Integer firstShow;
|
|
||||||
/**
|
|
||||||
* 检录状态 0.未检录 1.通过 2.未通过
|
|
||||||
*/
|
|
||||||
private Integer inspectionStatus;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,124 +0,0 @@
|
||||||
package cn.workde.module.nfc.entity;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.Data;
|
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 选手NFC检录表(PlayersInspection)表实体类
|
|
||||||
*
|
|
||||||
* @author makejava
|
|
||||||
* @since 2024-05-21 14:00:11
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
@TableName(value = "dss_club_nfc_players_inspection")
|
|
||||||
public class PlayersInspection {
|
|
||||||
/**
|
|
||||||
* 主键
|
|
||||||
*/
|
|
||||||
@TableId(type = IdType.ASSIGN_ID)
|
|
||||||
@Schema(description = "主键")
|
|
||||||
private String id;
|
|
||||||
/**
|
|
||||||
* NFC卡号
|
|
||||||
*/
|
|
||||||
@Schema(description = "NFC卡号")
|
|
||||||
private String rfId;
|
|
||||||
/**
|
|
||||||
* 飞手id
|
|
||||||
*/
|
|
||||||
@Schema(description = "飞手id")
|
|
||||||
private Long playersId;
|
|
||||||
/**
|
|
||||||
* 用户id
|
|
||||||
*/
|
|
||||||
@Schema(description = "用户id")
|
|
||||||
private Long userId;
|
|
||||||
/**
|
|
||||||
* 俱乐部id
|
|
||||||
*/
|
|
||||||
@Schema(description = "俱乐部id")
|
|
||||||
private Integer clubId;
|
|
||||||
/**
|
|
||||||
* 姓名
|
|
||||||
*/
|
|
||||||
@Schema(description = "姓名")
|
|
||||||
private String realName;
|
|
||||||
/**
|
|
||||||
* 参赛ID
|
|
||||||
*/
|
|
||||||
@Schema(description = "参赛ID")
|
|
||||||
private String memberNumber;
|
|
||||||
/**
|
|
||||||
* 队伍简称
|
|
||||||
*/
|
|
||||||
@Schema(description = "队伍简称")
|
|
||||||
private String nameShort;
|
|
||||||
/**
|
|
||||||
* 性别
|
|
||||||
*/
|
|
||||||
@Schema(description = "性别")
|
|
||||||
private String gender;
|
|
||||||
/**
|
|
||||||
* 省
|
|
||||||
*/
|
|
||||||
@Schema(description = "省")
|
|
||||||
private String province;
|
|
||||||
/**
|
|
||||||
* 市
|
|
||||||
*/
|
|
||||||
@Schema(description = "市")
|
|
||||||
private String city;
|
|
||||||
/**
|
|
||||||
* 区
|
|
||||||
*/
|
|
||||||
@Schema(description = "区")
|
|
||||||
private String district;
|
|
||||||
/**
|
|
||||||
* 详细地址
|
|
||||||
*/
|
|
||||||
@Schema(description = "详细地址")
|
|
||||||
private String address;
|
|
||||||
/**
|
|
||||||
* 国籍
|
|
||||||
*/
|
|
||||||
@Schema(description = "国籍")
|
|
||||||
private String country;
|
|
||||||
/**
|
|
||||||
* 飞手照片
|
|
||||||
*/
|
|
||||||
@Schema(description = "飞手照片")
|
|
||||||
private String playerPic;
|
|
||||||
/**
|
|
||||||
* 是否通过
|
|
||||||
*/
|
|
||||||
@Schema(description = "是否通过")
|
|
||||||
private Boolean status;
|
|
||||||
/**
|
|
||||||
* 检录时间
|
|
||||||
*/
|
|
||||||
@Schema(description = "检录时间")
|
|
||||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
|
||||||
private Date inspectionDatetime;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* NFC卡编号WG26格式
|
|
||||||
*/
|
|
||||||
@Schema(description = "NFC卡编号WG26格式")
|
|
||||||
private String rfIdWg26;
|
|
||||||
/**
|
|
||||||
* NFC卡编号WG34格式
|
|
||||||
*/
|
|
||||||
@Schema(description = "NFC卡编号WG34格式")
|
|
||||||
private String rfIdWg34;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
|
@ -1,123 +0,0 @@
|
||||||
package cn.workde.module.nfc.entity;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.Data;
|
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* NFC签到表(Sign)表实体类
|
|
||||||
*
|
|
||||||
* @author makejava
|
|
||||||
* @since 2024-05-22 13:07:00
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
@TableName(value = "dss_club_nfc_sign")
|
|
||||||
public class Sign {
|
|
||||||
/**
|
|
||||||
* 主键
|
|
||||||
*/
|
|
||||||
@TableId(type = IdType.ASSIGN_ID)
|
|
||||||
@Schema(description = "主键")
|
|
||||||
private String id;
|
|
||||||
/**
|
|
||||||
* NFC卡编号
|
|
||||||
*/
|
|
||||||
@Schema(description = "NFC卡编号")
|
|
||||||
private String rfId;
|
|
||||||
/**
|
|
||||||
* 飞手id或非飞手id
|
|
||||||
*/
|
|
||||||
@Schema(description = "飞手id或非飞手id")
|
|
||||||
private String targetId;
|
|
||||||
/**
|
|
||||||
* 用户id
|
|
||||||
*/
|
|
||||||
@Schema(description = "用户id")
|
|
||||||
private Long userId;
|
|
||||||
/**
|
|
||||||
* 俱乐部id
|
|
||||||
*/
|
|
||||||
@Schema(description = "俱乐部id")
|
|
||||||
private Integer clubId;
|
|
||||||
/**
|
|
||||||
* 人员类型
|
|
||||||
*/
|
|
||||||
@Schema(description = "人员类型")
|
|
||||||
private String peopleType;
|
|
||||||
/**
|
|
||||||
* 姓名
|
|
||||||
*/
|
|
||||||
@Schema(description = "姓名")
|
|
||||||
private String realName;
|
|
||||||
/**
|
|
||||||
* 参赛ID
|
|
||||||
*/
|
|
||||||
@Schema(description = "参赛ID")
|
|
||||||
private String memberNumber;
|
|
||||||
/**
|
|
||||||
* 队伍简称
|
|
||||||
*/
|
|
||||||
@Schema(description = "队伍简称")
|
|
||||||
private String nameShort;
|
|
||||||
/**
|
|
||||||
* 性别
|
|
||||||
*/
|
|
||||||
@Schema(description = "性别")
|
|
||||||
private String gender;
|
|
||||||
/**
|
|
||||||
* 省
|
|
||||||
*/
|
|
||||||
@Schema(description = "省")
|
|
||||||
private String province;
|
|
||||||
/**
|
|
||||||
* 市
|
|
||||||
*/
|
|
||||||
@Schema(description = "市")
|
|
||||||
private String city;
|
|
||||||
/**
|
|
||||||
* 区
|
|
||||||
*/
|
|
||||||
@Schema(description = "区")
|
|
||||||
private String district;
|
|
||||||
/**
|
|
||||||
* 详细地址
|
|
||||||
*/
|
|
||||||
@Schema(description = "详细地址")
|
|
||||||
private String address;
|
|
||||||
/**
|
|
||||||
* 国籍
|
|
||||||
*/
|
|
||||||
@Schema(description = "国籍")
|
|
||||||
private String country;
|
|
||||||
/**
|
|
||||||
* 飞手照片
|
|
||||||
*/
|
|
||||||
@Schema(description = "飞手照片")
|
|
||||||
private String playerPic;
|
|
||||||
/**
|
|
||||||
* 签到时间
|
|
||||||
*/
|
|
||||||
@Schema(description = "签到时间")
|
|
||||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
|
||||||
private Date signDatetime;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* NFC卡编号WG26格式
|
|
||||||
*/
|
|
||||||
@Schema(description = "NFC卡编号WG26格式")
|
|
||||||
private String rfIdWg26;
|
|
||||||
/**
|
|
||||||
* NFC卡编号WG34格式
|
|
||||||
*/
|
|
||||||
@Schema(description = "NFC卡编号WG34格式")
|
|
||||||
private String rfIdWg34;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,198 +0,0 @@
|
||||||
package cn.workde.module.nfc.entity;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 会员表(User)表实体类
|
|
||||||
*
|
|
||||||
* @author makejava
|
|
||||||
* @since 2024-05-20 14:50:11
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
@TableName(value = "peewee_user")
|
|
||||||
public class User {
|
|
||||||
/**
|
|
||||||
* 主键ID
|
|
||||||
*/
|
|
||||||
private Long id;
|
|
||||||
/**
|
|
||||||
* 组别ID
|
|
||||||
*/
|
|
||||||
private Long groupId;
|
|
||||||
/**
|
|
||||||
* 用户名
|
|
||||||
*/
|
|
||||||
private String username;
|
|
||||||
/**
|
|
||||||
* 昵称
|
|
||||||
*/
|
|
||||||
private String nickname;
|
|
||||||
/**
|
|
||||||
* 密码
|
|
||||||
*/
|
|
||||||
private String password;
|
|
||||||
/**
|
|
||||||
* 密码盐
|
|
||||||
*/
|
|
||||||
private String salt;
|
|
||||||
/**
|
|
||||||
* 电子邮箱
|
|
||||||
*/
|
|
||||||
private String email;
|
|
||||||
/**
|
|
||||||
* 手机号
|
|
||||||
*/
|
|
||||||
private String mobile;
|
|
||||||
/**
|
|
||||||
* 头像
|
|
||||||
*/
|
|
||||||
private String avatar;
|
|
||||||
/**
|
|
||||||
* 等级
|
|
||||||
*/
|
|
||||||
private String level;
|
|
||||||
/**
|
|
||||||
* 性别
|
|
||||||
*/
|
|
||||||
private String gender;
|
|
||||||
/**
|
|
||||||
* 生日
|
|
||||||
*/
|
|
||||||
private Date birthday;
|
|
||||||
/**
|
|
||||||
* 格言
|
|
||||||
*/
|
|
||||||
private String bio;
|
|
||||||
/**
|
|
||||||
* 余额
|
|
||||||
*/
|
|
||||||
private Double money;
|
|
||||||
/**
|
|
||||||
* 佣金
|
|
||||||
*/
|
|
||||||
private Double commission;
|
|
||||||
/**
|
|
||||||
* 积分
|
|
||||||
*/
|
|
||||||
private Integer score;
|
|
||||||
/**
|
|
||||||
* 连续登录天数
|
|
||||||
*/
|
|
||||||
private Long successions;
|
|
||||||
/**
|
|
||||||
* 最大连续登录天数
|
|
||||||
*/
|
|
||||||
private Long maxsuccessions;
|
|
||||||
/**
|
|
||||||
* 上次登录时间
|
|
||||||
*/
|
|
||||||
private Long prevtime;
|
|
||||||
/**
|
|
||||||
* 登录时间
|
|
||||||
*/
|
|
||||||
private Long logintime;
|
|
||||||
/**
|
|
||||||
* 登录IP
|
|
||||||
*/
|
|
||||||
private String loginip;
|
|
||||||
/**
|
|
||||||
* 失败次数
|
|
||||||
*/
|
|
||||||
private String loginfailure;
|
|
||||||
/**
|
|
||||||
* 加入IP
|
|
||||||
*/
|
|
||||||
private String joinip;
|
|
||||||
/**
|
|
||||||
* 加入时间
|
|
||||||
*/
|
|
||||||
private Long jointime;
|
|
||||||
/**
|
|
||||||
* 创建时间
|
|
||||||
*/
|
|
||||||
private Long createtime;
|
|
||||||
/**
|
|
||||||
* 更新时间
|
|
||||||
*/
|
|
||||||
private Long updatetime;
|
|
||||||
/**
|
|
||||||
* Token
|
|
||||||
*/
|
|
||||||
private String token;
|
|
||||||
/**
|
|
||||||
* 状态
|
|
||||||
*/
|
|
||||||
private String status;
|
|
||||||
/**
|
|
||||||
* 验证
|
|
||||||
*/
|
|
||||||
private String verification;
|
|
||||||
/**
|
|
||||||
* 称号
|
|
||||||
*/
|
|
||||||
private String title;
|
|
||||||
/**
|
|
||||||
* 邀请人:NULL=暂无,0=无
|
|
||||||
*/
|
|
||||||
private Integer parentUserId;
|
|
||||||
/**
|
|
||||||
* 团队用户人数
|
|
||||||
*/
|
|
||||||
private Integer childUserCount;
|
|
||||||
/**
|
|
||||||
* 一级用户人数
|
|
||||||
*/
|
|
||||||
@TableField("child_user_count_1")
|
|
||||||
private Integer childUserCount1;
|
|
||||||
/**
|
|
||||||
* 二级用户人数
|
|
||||||
*/
|
|
||||||
@TableField("child_user_count_2")
|
|
||||||
private Integer childUserCount2;
|
|
||||||
/**
|
|
||||||
* 消费累计
|
|
||||||
*/
|
|
||||||
private Double totalConsume;
|
|
||||||
/**
|
|
||||||
* 飞手编号
|
|
||||||
*/
|
|
||||||
private String memberNumber;
|
|
||||||
/**
|
|
||||||
* 用户状态:1正常 -1禁止登陆
|
|
||||||
*/
|
|
||||||
private Integer memberStatus;
|
|
||||||
/**
|
|
||||||
* 用户身份:0普通用户 1飞手用户 2俱乐部
|
|
||||||
*/
|
|
||||||
private Integer memberType;
|
|
||||||
/**
|
|
||||||
* wechat
|
|
||||||
*/
|
|
||||||
private String wechat;
|
|
||||||
/**
|
|
||||||
* qq
|
|
||||||
*/
|
|
||||||
private Integer qq;
|
|
||||||
/**
|
|
||||||
* NFC编号
|
|
||||||
*/
|
|
||||||
private String rfId;
|
|
||||||
/**
|
|
||||||
* NFC 状态
|
|
||||||
*/
|
|
||||||
private Integer rfStatus;
|
|
||||||
/**
|
|
||||||
* NFC卡编号WG26格式
|
|
||||||
*/
|
|
||||||
private String rfIdWg26;
|
|
||||||
/**
|
|
||||||
* NFC卡编号WG34格式
|
|
||||||
*/
|
|
||||||
private String rfIdWg34;
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,108 +0,0 @@
|
||||||
package cn.workde.module.nfc.excel.writeExcel;
|
|
||||||
|
|
||||||
import com.alibaba.excel.annotation.ExcelProperty;
|
|
||||||
import com.alibaba.excel.annotation.write.style.ColumnWidth;
|
|
||||||
import com.alibaba.excel.annotation.write.style.ContentStyle;
|
|
||||||
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
|
|
||||||
import com.alibaba.excel.annotation.write.style.HeadStyle;
|
|
||||||
import com.alibaba.excel.enums.BooleanEnum;
|
|
||||||
import com.alibaba.excel.enums.poi.BorderStyleEnum;
|
|
||||||
import com.alibaba.excel.enums.poi.FillPatternTypeEnum;
|
|
||||||
import com.alibaba.excel.enums.poi.HorizontalAlignmentEnum;
|
|
||||||
import com.alibaba.excel.enums.poi.VerticalAlignmentEnum;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@HeadRowHeight(20)
|
|
||||||
@ColumnWidth(20)
|
|
||||||
@HeadStyle(
|
|
||||||
fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND,
|
|
||||||
fillForegroundColor = 9,
|
|
||||||
horizontalAlignment = HorizontalAlignmentEnum.CENTER,
|
|
||||||
verticalAlignment = VerticalAlignmentEnum.CENTER,
|
|
||||||
wrapped = BooleanEnum.TRUE,
|
|
||||||
borderBottom = BorderStyleEnum.THIN,
|
|
||||||
borderRight = BorderStyleEnum.THIN
|
|
||||||
)
|
|
||||||
@ContentStyle(
|
|
||||||
fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND,
|
|
||||||
fillForegroundColor = 9,
|
|
||||||
horizontalAlignment = HorizontalAlignmentEnum.CENTER,
|
|
||||||
verticalAlignment = VerticalAlignmentEnum.CENTER,
|
|
||||||
wrapped = BooleanEnum.TRUE,
|
|
||||||
borderBottom = BorderStyleEnum.THIN,
|
|
||||||
borderRight = BorderStyleEnum.THIN
|
|
||||||
)
|
|
||||||
public class PeopleWriteExcel {
|
|
||||||
/**
|
|
||||||
* 姓名
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "姓名")
|
|
||||||
private String realName;
|
|
||||||
/**
|
|
||||||
* 人员类型
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "人员类型")
|
|
||||||
private String peopleType;
|
|
||||||
/**
|
|
||||||
* 参赛ID
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "参赛ID")
|
|
||||||
private String memberNumber;
|
|
||||||
/**
|
|
||||||
* 队伍简称
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "队伍简称")
|
|
||||||
private String nameShort;
|
|
||||||
/**
|
|
||||||
* 性别 0男 1女
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "性别")
|
|
||||||
private String gender;
|
|
||||||
/**
|
|
||||||
* 国籍
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "国籍")
|
|
||||||
private String country;
|
|
||||||
/**
|
|
||||||
* 省
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "省")
|
|
||||||
private String province;
|
|
||||||
/**
|
|
||||||
* 市
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "市")
|
|
||||||
private String city;
|
|
||||||
/**
|
|
||||||
* 区
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "区")
|
|
||||||
private String district;
|
|
||||||
/**
|
|
||||||
* 详细地址
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "详细地址")
|
|
||||||
private String address;
|
|
||||||
/**
|
|
||||||
* NFC 卡号
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "NFC 卡号")
|
|
||||||
private String rfId;
|
|
||||||
/**
|
|
||||||
* NFC 状态
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "NFC 状态")
|
|
||||||
private String rfStatusName;
|
|
||||||
/**
|
|
||||||
* NFC卡编号WG26格式
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "NFC卡编号WG26格式")
|
|
||||||
private String rfIdWg26;
|
|
||||||
/**
|
|
||||||
* NFC卡编号WG34格式
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "NFC卡编号WG34格式")
|
|
||||||
private String rfIdWg34;
|
|
||||||
}
|
|
|
@ -1,102 +0,0 @@
|
||||||
package cn.workde.module.nfc.excel.writeExcel;
|
|
||||||
|
|
||||||
import com.alibaba.excel.annotation.ExcelProperty;
|
|
||||||
import com.alibaba.excel.annotation.write.style.ColumnWidth;
|
|
||||||
import com.alibaba.excel.annotation.write.style.ContentStyle;
|
|
||||||
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
|
|
||||||
import com.alibaba.excel.annotation.write.style.HeadStyle;
|
|
||||||
import com.alibaba.excel.enums.BooleanEnum;
|
|
||||||
import com.alibaba.excel.enums.poi.BorderStyleEnum;
|
|
||||||
import com.alibaba.excel.enums.poi.FillPatternTypeEnum;
|
|
||||||
import com.alibaba.excel.enums.poi.HorizontalAlignmentEnum;
|
|
||||||
import com.alibaba.excel.enums.poi.VerticalAlignmentEnum;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@HeadRowHeight(20)
|
|
||||||
@ColumnWidth(20)
|
|
||||||
@HeadStyle(
|
|
||||||
fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND,
|
|
||||||
fillForegroundColor = 9,
|
|
||||||
horizontalAlignment = HorizontalAlignmentEnum.CENTER,
|
|
||||||
verticalAlignment = VerticalAlignmentEnum.CENTER,
|
|
||||||
wrapped = BooleanEnum.TRUE,
|
|
||||||
borderBottom = BorderStyleEnum.THIN,
|
|
||||||
borderRight = BorderStyleEnum.THIN
|
|
||||||
)
|
|
||||||
@ContentStyle(
|
|
||||||
fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND,
|
|
||||||
fillForegroundColor = 9,
|
|
||||||
horizontalAlignment = HorizontalAlignmentEnum.CENTER,
|
|
||||||
verticalAlignment = VerticalAlignmentEnum.CENTER,
|
|
||||||
wrapped = BooleanEnum.TRUE,
|
|
||||||
borderBottom = BorderStyleEnum.THIN,
|
|
||||||
borderRight = BorderStyleEnum.THIN
|
|
||||||
)
|
|
||||||
public class PlayersWriteExcel {
|
|
||||||
/**
|
|
||||||
* 姓名
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "姓名")
|
|
||||||
private String realName;
|
|
||||||
/**
|
|
||||||
* 参赛ID
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "参赛ID")
|
|
||||||
private String memberNumber;
|
|
||||||
/**
|
|
||||||
* 队伍简称
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "队伍简称")
|
|
||||||
private String nameShort;
|
|
||||||
/**
|
|
||||||
* 性别 0男 1女
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "性别")
|
|
||||||
private String gender;
|
|
||||||
/**
|
|
||||||
* 国籍
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "国籍")
|
|
||||||
private String country;
|
|
||||||
/**
|
|
||||||
* 省
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "省")
|
|
||||||
private String province;
|
|
||||||
/**
|
|
||||||
* 市
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "市")
|
|
||||||
private String city;
|
|
||||||
/**
|
|
||||||
* 区
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "区")
|
|
||||||
private String district;
|
|
||||||
/**
|
|
||||||
* 详细地址
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "详细地址")
|
|
||||||
private String address;
|
|
||||||
/**
|
|
||||||
* NFC 卡号
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "NFC 卡号")
|
|
||||||
private String rfId;
|
|
||||||
/**
|
|
||||||
* NFC 状态
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "NFC 状态")
|
|
||||||
private String rfStatusName;
|
|
||||||
/**
|
|
||||||
* NFC卡编号WG26格式
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "NFC卡编号WG26格式")
|
|
||||||
private String rfIdWg26;
|
|
||||||
/**
|
|
||||||
* NFC卡编号WG34格式
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "NFC卡编号WG34格式")
|
|
||||||
private String rfIdWg34;
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
package cn.workde.module.nfc.mapper;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
|
||||||
import cn.workde.module.nfc.entity.ClubInvate;
|
|
||||||
import com.github.yulichang.base.MPJBaseMapper;
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* (ClubInvate)表数据库访问层
|
|
||||||
*
|
|
||||||
* @author makejava
|
|
||||||
* @since 2024-05-20 15:42:04
|
|
||||||
*/
|
|
||||||
@Mapper
|
|
||||||
public interface ClubInvateMapper extends MPJBaseMapper<ClubInvate> {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
package cn.workde.module.nfc.mapper;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
|
||||||
import cn.workde.module.nfc.entity.Club;
|
|
||||||
import com.github.yulichang.base.MPJBaseMapper;
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* (Club)表数据库访问层
|
|
||||||
*
|
|
||||||
* @author makejava
|
|
||||||
* @since 2024-05-20 15:41:24
|
|
||||||
*/
|
|
||||||
@Mapper
|
|
||||||
public interface ClubMapper extends MPJBaseMapper<Club> {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
package cn.workde.module.nfc.mapper;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
|
||||||
import cn.workde.module.nfc.entity.CmsArchives;
|
|
||||||
import com.github.yulichang.base.MPJBaseMapper;
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 内容表(CmsArchives)表数据库访问层
|
|
||||||
*
|
|
||||||
* @author makejava
|
|
||||||
* @since 2024-05-27 11:45:00
|
|
||||||
*/
|
|
||||||
@Mapper
|
|
||||||
public interface CmsArchivesMapper extends MPJBaseMapper<CmsArchives> {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,38 +0,0 @@
|
||||||
package cn.workde.module.nfc.mapper;
|
|
||||||
|
|
||||||
import cn.workde.module.nfc.entity.MatchRanking;
|
|
||||||
import com.github.yulichang.base.MPJBaseMapper;
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
|
||||||
import org.apache.ibatis.annotations.Param;
|
|
||||||
import org.apache.ibatis.annotations.Select;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 赛事成绩表(MatchRanking)表数据库访问层
|
|
||||||
*
|
|
||||||
* @author makejava
|
|
||||||
* @since 2024-03-22 10:51:51
|
|
||||||
*/
|
|
||||||
@Mapper
|
|
||||||
public interface MatchRankingMapper extends MPJBaseMapper<MatchRanking> {
|
|
||||||
|
|
||||||
@Select("""
|
|
||||||
select distinct other_round from peewee_match_ranking where match_id = #{matchId} and course = #{course}
|
|
||||||
order by CAST(other_round AS UNSIGNED)
|
|
||||||
""")
|
|
||||||
List<String> getOtherRound(@Param("matchId") Integer matchId, @Param("course") String course);
|
|
||||||
|
|
||||||
@Select("""
|
|
||||||
select distinct `grouping` from peewee_match_ranking where match_id = #{matchId} and course = #{course} and other_round = #{otherRound}
|
|
||||||
order by CAST(`grouping` AS UNSIGNED)
|
|
||||||
""")
|
|
||||||
List<String> getGrouping(@Param("matchId") Integer matchId, @Param("course") String course, @Param("otherRound") String otherRound);
|
|
||||||
|
|
||||||
@Select("""
|
|
||||||
select player_id from peewee_match_ranking where match_id = #{matchId} and course = #{course} and other_round = #{otherRound}
|
|
||||||
and `grouping` = #{grouping}
|
|
||||||
""")
|
|
||||||
List<String> getPlayersList(@Param("matchId") Integer matchId, @Param("course") String course, @Param("otherRound") String otherRound, @Param("grouping") String grouping);
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
package cn.workde.module.nfc.mapper;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
|
||||||
import cn.workde.module.nfc.entity.People;
|
|
||||||
import com.github.yulichang.base.MPJBaseMapper;
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* NFC人员信息表(飞手信息不在这里)(People)表数据库访问层
|
|
||||||
*
|
|
||||||
* @author makejava
|
|
||||||
* @since 2024-05-22 09:36:45
|
|
||||||
*/
|
|
||||||
@Mapper
|
|
||||||
public interface PeopleMapper extends MPJBaseMapper<People> {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,25 +0,0 @@
|
||||||
package cn.workde.module.nfc.mapper;
|
|
||||||
|
|
||||||
import cn.workde.module.nfc.entity.PlayersInspection;
|
|
||||||
import com.github.yulichang.base.MPJBaseMapper;
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
|
||||||
import org.apache.ibatis.annotations.Param;
|
|
||||||
import org.apache.ibatis.annotations.Select;
|
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 选手NFC检录表(PlayersInspection)表数据库访问层
|
|
||||||
*
|
|
||||||
* @author makejava
|
|
||||||
* @since 2024-05-21 14:00:10
|
|
||||||
*/
|
|
||||||
@Mapper
|
|
||||||
public interface PlayersInspectionMapper extends MPJBaseMapper<PlayersInspection> {
|
|
||||||
|
|
||||||
@Select("""
|
|
||||||
select count(1) from (select rf_id from dss_club_nfc_players_inspection where inspection_datetime between #{statTime} and #{endTime} group by rf_id) t
|
|
||||||
""")
|
|
||||||
Integer getCountByThisDay(@Param("statTime") LocalDateTime statTime, @Param("endTime") LocalDateTime endTime);
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
package cn.workde.module.nfc.mapper;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
|
||||||
import cn.workde.module.nfc.entity.Players;
|
|
||||||
import com.github.yulichang.base.MPJBaseMapper;
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 飞手表(Players)表数据库访问层
|
|
||||||
*
|
|
||||||
* @author makejava
|
|
||||||
* @since 2024-05-20 15:40:15
|
|
||||||
*/
|
|
||||||
@Mapper
|
|
||||||
public interface PlayersMapper extends MPJBaseMapper<Players> {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,25 +0,0 @@
|
||||||
package cn.workde.module.nfc.mapper;
|
|
||||||
|
|
||||||
import cn.workde.module.nfc.entity.Sign;
|
|
||||||
import com.github.yulichang.base.MPJBaseMapper;
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
|
||||||
import org.apache.ibatis.annotations.Param;
|
|
||||||
import org.apache.ibatis.annotations.Select;
|
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* NFC签到表(Sign)表数据库访问层
|
|
||||||
*
|
|
||||||
* @author makejava
|
|
||||||
* @since 2024-05-22 13:06:59
|
|
||||||
*/
|
|
||||||
@Mapper
|
|
||||||
public interface SignMapper extends MPJBaseMapper<Sign> {
|
|
||||||
|
|
||||||
@Select("""
|
|
||||||
select count(1) from (select rf_id from dss_club_nfc_sign where sign_datetime between #{statTime} and #{endTime} group by rf_id) t
|
|
||||||
""")
|
|
||||||
Integer getCountByThisDay(@Param("statTime") LocalDateTime statTime, @Param("endTime") LocalDateTime endTime);
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
package cn.workde.module.nfc.mapper;
|
|
||||||
|
|
||||||
import cn.workde.module.nfc.entity.User;
|
|
||||||
import com.github.yulichang.base.MPJBaseMapper;
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 会员表(User)表数据库访问层
|
|
||||||
*
|
|
||||||
* @author makejava
|
|
||||||
* @since 2024-05-20 14:50:10
|
|
||||||
*/
|
|
||||||
@Mapper
|
|
||||||
public interface UserMapper extends MPJBaseMapper<User> {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
package cn.workde.module.nfc.quicklogin;
|
|
||||||
|
|
||||||
|
|
||||||
import cn.dev33.satoken.jwt.StpLogicJwtForSimple;
|
|
||||||
import cn.dev33.satoken.jwt.StpLogicJwtForStateless;
|
|
||||||
import cn.dev33.satoken.stp.StpLogic;
|
|
||||||
import cn.workde.module.nfc.quicklogin.config.SaQuickConfig;
|
|
||||||
import cn.workde.module.nfc.quicklogin.web.SaQuickController;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.context.annotation.Bean;
|
|
||||||
import org.springframework.context.annotation.Configuration;
|
|
||||||
import org.springframework.context.annotation.Import;
|
|
||||||
|
|
||||||
@Configuration
|
|
||||||
@Import({SaQuickController.class, SaQuickRegister.class})
|
|
||||||
public class SaQuickInject {
|
|
||||||
|
|
||||||
@Autowired(
|
|
||||||
required = false
|
|
||||||
)
|
|
||||||
public void setSaQuickConfig(SaQuickConfig saQuickConfig) {
|
|
||||||
SaQuickManager.setConfig(saQuickConfig);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Sa-Token 整合 jwt (Stateless 无状态模式)
|
|
||||||
@Bean
|
|
||||||
public StpLogic getStpLogicJwt() {
|
|
||||||
return new StpLogicJwtForStateless();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
package cn.workde.module.nfc.quicklogin;
|
|
||||||
|
|
||||||
import cn.dev33.satoken.util.SaFoxUtil;
|
|
||||||
import cn.workde.module.nfc.quicklogin.config.SaQuickConfig;
|
|
||||||
|
|
||||||
public class SaQuickManager {
|
|
||||||
|
|
||||||
private static volatile SaQuickConfig config;
|
|
||||||
|
|
||||||
public SaQuickManager() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void setConfig(SaQuickConfig config) {
|
|
||||||
SaQuickManager.config = config;
|
|
||||||
if (config.getAuto()) {
|
|
||||||
config.setName(SaFoxUtil.getRandomString(8));
|
|
||||||
config.setPwd(SaFoxUtil.getRandomString(8));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static SaQuickConfig getConfig() {
|
|
||||||
if (config == null) {
|
|
||||||
synchronized (SaQuickManager.class) {
|
|
||||||
if (config == null) {
|
|
||||||
setConfig(new SaQuickConfig());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return config;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,44 +0,0 @@
|
||||||
package cn.workde.module.nfc.quicklogin;
|
|
||||||
|
|
||||||
import cn.dev33.satoken.context.SaHolder;
|
|
||||||
import cn.dev33.satoken.filter.SaServletFilter;
|
|
||||||
import cn.dev33.satoken.router.SaRouter;
|
|
||||||
import cn.dev33.satoken.stp.StpUtil;
|
|
||||||
|
|
||||||
import cn.workde.module.nfc.quicklogin.config.SaQuickConfig;
|
|
||||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
|
||||||
import org.springframework.context.annotation.Bean;
|
|
||||||
import org.springframework.context.annotation.Configuration;
|
|
||||||
import org.springframework.core.annotation.Order;
|
|
||||||
|
|
||||||
@Configuration
|
|
||||||
public class SaQuickRegister {
|
|
||||||
|
|
||||||
public static final String CONFIG_VERSION = "sa";
|
|
||||||
|
|
||||||
public SaQuickRegister() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
@ConfigurationProperties(
|
|
||||||
prefix = "sa"
|
|
||||||
)
|
|
||||||
SaQuickConfig getSaQuickConfig() {
|
|
||||||
return new SaQuickConfig();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
@Order(-101)
|
|
||||||
SaServletFilter getSaServletFilterForQuickLogin() {
|
|
||||||
return (new SaServletFilter()).addInclude(new String[]{"/**"}).addExclude(new String[]{"/favicon.ico", "/deploy/login", "/deploy/login", "/deploy/sa-res/**"}).setAuth((obj) -> {
|
|
||||||
SaRouter.match(SaQuickManager.getConfig().getInclude().split(",")).notMatch(SaQuickManager.getConfig().getExclude().split(",")).check((r) -> {
|
|
||||||
if (SaQuickManager.getConfig().getAuth() && !StpUtil.isLogin()) {
|
|
||||||
SaHolder.getRequest().forward("/deploy/login");
|
|
||||||
SaRouter.back();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}).setError((e) -> {
|
|
||||||
return e.getMessage();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,83 +0,0 @@
|
||||||
package cn.workde.module.nfc.quicklogin.config;
|
|
||||||
|
|
||||||
public class SaQuickConfig {
|
|
||||||
private Boolean auth = true;
|
|
||||||
private String name = "sa";
|
|
||||||
private String pwd = "123456";
|
|
||||||
private Boolean auto = false;
|
|
||||||
private String title = "Sa-Token 登录";
|
|
||||||
private Boolean copr = true;
|
|
||||||
private String include = "/**";
|
|
||||||
private String exclude = "";
|
|
||||||
|
|
||||||
public SaQuickConfig() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getAuth() {
|
|
||||||
return this.auth;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAuth(Boolean auth) {
|
|
||||||
this.auth = auth;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getName() {
|
|
||||||
return this.name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setName(String name) {
|
|
||||||
this.name = name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getPwd() {
|
|
||||||
return this.pwd;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPwd(String pwd) {
|
|
||||||
this.pwd = pwd;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getAuto() {
|
|
||||||
return this.auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAuto(Boolean auto) {
|
|
||||||
this.auto = auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getTitle() {
|
|
||||||
return this.title;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTitle(String title) {
|
|
||||||
this.title = title;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getCopr() {
|
|
||||||
return this.copr;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCopr(Boolean copr) {
|
|
||||||
this.copr = copr;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getInclude() {
|
|
||||||
return this.include;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setInclude(String include) {
|
|
||||||
this.include = include;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getExclude() {
|
|
||||||
return this.exclude;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setExclude(String exclude) {
|
|
||||||
this.exclude = exclude;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String toString() {
|
|
||||||
return "SaQuickConfig{auth=" + this.auth + ", name='" + this.name + '\'' + ", pwd='" + this.pwd + '\'' + ", auto=" + this.auto + ", title='" + this.title + '\'' + ", copr=" + this.copr + ", include='" + this.include + '\'' + ", exclude='" + this.exclude + '\'' + '}';
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,57 +0,0 @@
|
||||||
package cn.workde.module.nfc.quicklogin.web;
|
|
||||||
|
|
||||||
import cn.dev33.satoken.stp.StpUtil;
|
|
||||||
import cn.dev33.satoken.util.SaFoxUtil;
|
|
||||||
import cn.dev33.satoken.util.SaResult;
|
|
||||||
import cn.workde.core.util.RedisUtils;
|
|
||||||
import cn.workde.module.nfc.quicklogin.SaQuickManager;
|
|
||||||
import cn.workde.module.nfc.quicklogin.config.SaQuickConfig;
|
|
||||||
import jakarta.annotation.Resource;
|
|
||||||
import org.springframework.stereotype.Controller;
|
|
||||||
import org.springframework.ui.Model;
|
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
|
||||||
import org.springframework.web.bind.annotation.ResponseBody;
|
|
||||||
import org.springframework.web.servlet.view.RedirectView;
|
|
||||||
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
@Controller
|
|
||||||
public class SaQuickController {
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private RedisUtils redisUtils;
|
|
||||||
|
|
||||||
public SaQuickController() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@GetMapping({"/deploy/login"})
|
|
||||||
public String login(Model model) {
|
|
||||||
model.addAttribute("cfg", SaQuickManager.getConfig());
|
|
||||||
return "sa-login.html";
|
|
||||||
}
|
|
||||||
|
|
||||||
@PostMapping({"/deploy/login"})
|
|
||||||
@ResponseBody
|
|
||||||
public SaResult doLogin(String name, String pwd) {
|
|
||||||
if (!SaFoxUtil.isEmpty(name) && !SaFoxUtil.isEmpty(pwd)) {
|
|
||||||
SaQuickConfig config = SaQuickManager.getConfig();
|
|
||||||
if (name.equals(config.getName()) && pwd.equals(config.getPwd())) {
|
|
||||||
StpUtil.login(config.getName());
|
|
||||||
String tokenValue = StpUtil.getTokenValue();
|
|
||||||
// redisUtils.addSetCache("club:nfc:token:" + config.getName(), tokenValue, 2592000, TimeUnit.SECONDS);
|
|
||||||
return SaResult.get(200, "ok", StpUtil.getTokenInfo());
|
|
||||||
} else {
|
|
||||||
return SaResult.get(500, "账号或密码输入错误", (Object) null);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
return SaResult.get(500, "请输入账号和密码", (Object) null);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@GetMapping("/deploy/logout")
|
|
||||||
public RedirectView logout() {
|
|
||||||
StpUtil.logout();
|
|
||||||
return new RedirectView("/deploy/");
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,19 +0,0 @@
|
||||||
package cn.workde.module.nfc.service;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
||||||
import cn.workde.module.nfc.mapper.ClubInvateMapper;
|
|
||||||
import cn.workde.module.nfc.entity.ClubInvate;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* (ClubInvate)表服务实现类
|
|
||||||
*
|
|
||||||
* @author makejava
|
|
||||||
* @since 2024-05-20 15:42:04
|
|
||||||
*/
|
|
||||||
@Service("clubInvateService")
|
|
||||||
public class ClubInvateService extends ServiceImpl<ClubInvateMapper, ClubInvate> implements IService<ClubInvate> {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
package cn.workde.module.nfc.service;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
||||||
import cn.workde.module.nfc.mapper.ClubMapper;
|
|
||||||
import cn.workde.module.nfc.entity.Club;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* (Club)表服务实现类
|
|
||||||
*
|
|
||||||
* @author makejava
|
|
||||||
* @since 2024-05-20 15:41:24
|
|
||||||
*/
|
|
||||||
@Service("clubService")
|
|
||||||
public class ClubService extends ServiceImpl<ClubMapper, Club> implements IService<Club> {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,35 +0,0 @@
|
||||||
package cn.workde.module.nfc.service;
|
|
||||||
|
|
||||||
import cn.workde.core.data.dto.Result;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
||||||
import cn.workde.module.nfc.mapper.CmsArchivesMapper;
|
|
||||||
import cn.workde.module.nfc.entity.CmsArchives;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 内容表(CmsArchives)表服务实现类
|
|
||||||
*
|
|
||||||
* @author makejava
|
|
||||||
* @since 2024-05-27 11:45:02
|
|
||||||
*/
|
|
||||||
@Service("cmsArchivesService")
|
|
||||||
public class CmsArchivesService extends ServiceImpl<CmsArchivesMapper, CmsArchives> implements IService<CmsArchives> {
|
|
||||||
public Result<List<Map<String, Object>>> getCmsArchives(){
|
|
||||||
List<Map<String, Object>> normal = this.listMaps(
|
|
||||||
new QueryWrapper<CmsArchives>()
|
|
||||||
.lambda()
|
|
||||||
.select(CmsArchives::getId, CmsArchives::getTitle)
|
|
||||||
.eq(CmsArchives::getModelId, 6)
|
|
||||||
.eq(CmsArchives::getStatus, "normal")
|
|
||||||
.isNull(CmsArchives::getDeletetime)
|
|
||||||
.orderByDesc(CmsArchives::getCreatetime)
|
|
||||||
);
|
|
||||||
return Result.data(normal);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,128 +0,0 @@
|
||||||
package cn.workde.module.nfc.service;
|
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
|
||||||
import cn.hutool.core.lang.Dict;
|
|
||||||
import cn.hutool.core.util.ObjUtil;
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
|
||||||
import cn.hutool.json.JSONUtil;
|
|
||||||
import cn.workde.core.data.dto.Result;
|
|
||||||
import cn.workde.module.nfc.dto.PlayerDto;
|
|
||||||
import cn.workde.module.nfc.dto.PlayersDto;
|
|
||||||
import cn.workde.module.nfc.entity.*;
|
|
||||||
import cn.workde.module.nfc.mapper.MatchRankingMapper;
|
|
||||||
import cn.workde.module.nfc.mapper.PlayersMapper;
|
|
||||||
import cn.workde.module.nfc.vo.PushGroupVo;
|
|
||||||
import cn.workde.module.nfc.wrapper.PlayersWrapper;
|
|
||||||
import cn.workde.module.upms.service.GrapeConfigService;
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
||||||
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
|
||||||
import jakarta.annotation.Resource;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
import java.util.Comparator;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 赛事成绩表(MatchRanking)表服务接口
|
|
||||||
*
|
|
||||||
* @author makejava
|
|
||||||
* @since 2024-03-22 10:51:53
|
|
||||||
*/
|
|
||||||
@Service
|
|
||||||
@Slf4j
|
|
||||||
public class MatchRankingService extends ServiceImpl<MatchRankingMapper, MatchRanking> {
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private PlayersMapper playersMapper;
|
|
||||||
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private GrapeConfigService configService;
|
|
||||||
|
|
||||||
public Result<List<String>> getOtherRound(Integer matchId, String course) {
|
|
||||||
List<String> otherRound = this.baseMapper.getOtherRound(matchId, course);
|
|
||||||
return Result.data(otherRound);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取分组
|
|
||||||
*
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public Result<Dict> getGrouping() {
|
|
||||||
String json = configService.getConfigValueByKey("club:nfc:push:group");
|
|
||||||
if (StrUtil.isBlank(json)) {
|
|
||||||
return Result.fail("请先推送分组");
|
|
||||||
}
|
|
||||||
PushGroupVo pushGroupVo = JSONUtil.toBean(json, PushGroupVo.class);
|
|
||||||
String title = pushGroupVo.getTitle();
|
|
||||||
Boolean orderBy = pushGroupVo.getOrderBy();
|
|
||||||
// 根据orderBy判断升序还是降序 true 升序 false 降序
|
|
||||||
if (ObjUtil.isNotNull(orderBy) && !orderBy) {
|
|
||||||
pushGroupVo.getGroups().sort(Comparator.comparing(PushGroupVo.Group::getSortNo).reversed());
|
|
||||||
}else {
|
|
||||||
pushGroupVo.getGroups().sort(Comparator.comparing(PushGroupVo.Group::getSortNo));
|
|
||||||
}
|
|
||||||
List<Dict> dictList = pushGroupVo.getGroups().stream()
|
|
||||||
.map(group -> {
|
|
||||||
Dict dict = Dict.create();
|
|
||||||
dict.set("group_no", group.getGroupNo());
|
|
||||||
dict.set("group_name", group.getGroupName());
|
|
||||||
List<PlayersDto> playersDtoList = getPlayersDto(group.getMatchId(), group.getCourse(), group.getRound(), group.getGroupNo());
|
|
||||||
dict.set("players", playersDtoList);
|
|
||||||
dict.set("sort_no", group.getSortNo());
|
|
||||||
return dict;
|
|
||||||
}).toList();
|
|
||||||
return Result.data(Dict.create().set("title", title).set("groups", dictList));
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private List<PlayersDto> getPlayersDto(String matchId, String course, String round, String groupNo) {
|
|
||||||
List<PlayerDto> playerDtoList = playersMapper.selectJoinList(PlayerDto.class, new MPJLambdaWrapper<Players>()
|
|
||||||
.selectAs(Players::getId, PlayerDto::getPlayerId)
|
|
||||||
.selectAs(User::getMemberNumber, PlayerDto::getMemberNumber)
|
|
||||||
.selectAs(Players::getDistrict, PlayerDto::getDistrict)
|
|
||||||
.selectAs(User::getRfId, PlayerDto::getRfId)
|
|
||||||
.selectAs(Players::getCountry, PlayerDto::getCountry)
|
|
||||||
.selectAs(Players::getPlayerPic, PlayerDto::getPlayerPic)
|
|
||||||
.selectAs(Players::getRealName, PlayerDto::getRealName)
|
|
||||||
.selectAs(Players::getCity, PlayerDto::getCity)
|
|
||||||
.selectAs(Players::getAddress, PlayerDto::getAddress)
|
|
||||||
.selectAs(Players::getGender, PlayerDto::getGender)
|
|
||||||
.selectAs(Players::getProvince, PlayerDto::getProvince)
|
|
||||||
.selectAs(Club::getNameShort, PlayerDto::getNameShort)
|
|
||||||
.selectAs(User::getRfStatus, PlayerDto::getRfStatus)
|
|
||||||
.selectAs(Players::getInspectionStatus, PlayerDto::getInspectionStatus)
|
|
||||||
.selectAs(MatchRanking::getChannel, PlayerDto::getChannel)
|
|
||||||
.selectAs(MatchRanking::getLedColor, PlayerDto::getLedColor)
|
|
||||||
.selectAs(User::getRfIdWg26, PlayerDto::getRfIdWg26)
|
|
||||||
.selectAs(User::getRfIdWg34, PlayerDto::getRfIdWg34)
|
|
||||||
.leftJoin(User.class, "user", on -> on.eq(User::getId, Players::getMemberId)
|
|
||||||
)
|
|
||||||
.leftJoin(ClubInvate.class, "club_invate", on -> on.eq(ClubInvate::getPlayerId, Players::getId)
|
|
||||||
)
|
|
||||||
.leftJoin(Club.class, "club", on -> on.eq(Club::getId, ClubInvate::getClubId)
|
|
||||||
)
|
|
||||||
.leftJoin(MatchRanking.class, "match_ranking", on -> on.eq(MatchRanking::getPlayerId, User::getMemberNumber))
|
|
||||||
.eq("t", Players::getPlayerStatus, 9)
|
|
||||||
.eq("club", Club::getStatus, 9)
|
|
||||||
.eq("club_invate", ClubInvate::getStatus, 6)
|
|
||||||
.isNull("club_invate", ClubInvate::getDeletetime)
|
|
||||||
.eq("user", User::getMemberStatus, 1)
|
|
||||||
.eq("match_ranking", MatchRanking::getMatchId, matchId)
|
|
||||||
.eq("match_ranking", MatchRanking::getCourse, course)
|
|
||||||
.eq("match_ranking", MatchRanking::getOtherRound, round)
|
|
||||||
.eq("match_ranking", MatchRanking::getGrouping, groupNo)
|
|
||||||
.orderBy(true, true, "FIELD(match_ranking.led_color, '红', '黄','蓝','绿','青','品红')")
|
|
||||||
.orderByAsc("match_ranking", MatchRanking::getChannel)
|
|
||||||
);
|
|
||||||
if (CollUtil.isEmpty(playerDtoList)) {
|
|
||||||
return CollUtil.newArrayList();
|
|
||||||
}
|
|
||||||
return PlayersWrapper.INSTANCE.toDto(playerDtoList);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,278 +0,0 @@
|
||||||
package cn.workde.module.nfc.service;
|
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
|
||||||
import cn.hutool.core.util.ObjUtil;
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
|
||||||
import cn.workde.core.data.dto.Result;
|
|
||||||
import cn.workde.core.util.WebUtils;
|
|
||||||
import cn.workde.module.nfc.dto.PeopleDto;
|
|
||||||
import cn.workde.module.nfc.entity.People;
|
|
||||||
import cn.workde.module.nfc.entity.User;
|
|
||||||
import cn.workde.module.nfc.excel.writeExcel.PeopleWriteExcel;
|
|
||||||
import cn.workde.module.nfc.mapper.PeopleMapper;
|
|
||||||
import cn.workde.module.nfc.mapper.UserMapper;
|
|
||||||
import cn.workde.module.nfc.util.WGUtils;
|
|
||||||
import cn.workde.module.nfc.vo.PeopleParam;
|
|
||||||
import cn.workde.module.nfc.vo.PeopleVo;
|
|
||||||
import cn.workde.module.nfc.wrapper.PeopleWrapper;
|
|
||||||
import cn.workde.module.upms.utils.EasyExcelAlibabaUtils;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
||||||
import jakarta.annotation.Resource;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* NFC人员信息表(飞手信息不在这里)(People)表服务实现类
|
|
||||||
*
|
|
||||||
* @author makejava
|
|
||||||
* @since 2024-05-22 09:36:46
|
|
||||||
*/
|
|
||||||
@Service("peopleService")
|
|
||||||
public class PeopleService extends ServiceImpl<PeopleMapper, People> implements IService<People> {
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private PeopleMapper peopleMapper;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private UserMapper userMapper;
|
|
||||||
|
|
||||||
|
|
||||||
public Result<Page<PeopleDto>> getPeoplePage(PeopleParam peopleParam) {
|
|
||||||
Page<People> page = new Page<>(peopleParam.getPage(), peopleParam.getPageSize());
|
|
||||||
Page<People> peoplePage = peopleMapper.selectPage(page, new QueryWrapper<People>()
|
|
||||||
.lambda()
|
|
||||||
.and(StrUtil.isNotBlank(peopleParam.getRfId()), wrapper -> wrapper.like(People::getRfId, peopleParam.getRfId())
|
|
||||||
.or()
|
|
||||||
.like(People::getRfIdWg26, peopleParam.getRfId())
|
|
||||||
.or()
|
|
||||||
.like(People::getRfIdWg34, peopleParam.getRfId())
|
|
||||||
)
|
|
||||||
.eq(ObjUtil.isNotNull(peopleParam.getRfStatus()), People::getRfStatus, peopleParam.getRfStatus())
|
|
||||||
.and(ObjUtil.isNotNull(peopleParam.getBind()) && !peopleParam.getBind(), wrapper -> wrapper.isNull(People::getRfId)
|
|
||||||
.or()
|
|
||||||
.isNull(People::getRfIdWg26)
|
|
||||||
.or()
|
|
||||||
.isNull(People::getRfIdWg34)
|
|
||||||
)
|
|
||||||
.and(ObjUtil.isNotNull(peopleParam.getBind()) && peopleParam.getBind(), wrapper -> wrapper.isNotNull(People::getRfId)
|
|
||||||
.or()
|
|
||||||
.isNotNull(People::getRfIdWg26)
|
|
||||||
.or()
|
|
||||||
.isNotNull(People::getRfIdWg34)
|
|
||||||
)
|
|
||||||
.like(StrUtil.isNotBlank(peopleParam.getRealName()), People::getRealName, peopleParam.getRealName())
|
|
||||||
.eq(StrUtil.isNotBlank(peopleParam.getCity()), People::getCity, peopleParam.getCity())
|
|
||||||
.eq(StrUtil.isNotBlank(peopleParam.getProvince()), People::getProvince, peopleParam.getProvince())
|
|
||||||
.eq(StrUtil.isNotBlank(peopleParam.getDistrict()), People::getDistrict, peopleParam.getDistrict())
|
|
||||||
.eq(StrUtil.isNotBlank(peopleParam.getCountry()), People::getCountry, peopleParam.getCountry())
|
|
||||||
.eq(StrUtil.isNotBlank(peopleParam.getPeopleType()), People::getPeopleType, peopleParam.getPeopleType())
|
|
||||||
.like(StrUtil.isNotBlank(peopleParam.getNameShort()), People::getNameShort, peopleParam.getNameShort())
|
|
||||||
.eq(StrUtil.isNotBlank(peopleParam.getGender()), People::getGender, peopleParam.getGender())
|
|
||||||
.like(StrUtil.isNotBlank(peopleParam.getMemberNumber()), People::getMemberNumber, peopleParam.getMemberNumber())
|
|
||||||
.like(StrUtil.isNotBlank(peopleParam.getAddress()), People::getAddress, peopleParam.getAddress())
|
|
||||||
.orderByDesc(People::getPeopleType)
|
|
||||||
.orderByDesc(People::getNameShort)
|
|
||||||
.orderByAsc(People::getMemberNumber)
|
|
||||||
);
|
|
||||||
return Result.data(PeopleWrapper.INSTANCE.toDto(peoplePage));
|
|
||||||
}
|
|
||||||
|
|
||||||
public Result<PeopleDto> getPeopleById(String id) {
|
|
||||||
People people = peopleMapper.selectById(id);
|
|
||||||
if (ObjUtil.isNull(people)) {
|
|
||||||
return Result.fail("人员信息不存在");
|
|
||||||
}
|
|
||||||
return Result.data(PeopleWrapper.INSTANCE.toDto(people));
|
|
||||||
}
|
|
||||||
|
|
||||||
public Result addPeople(PeopleVo peopleVo) {
|
|
||||||
People people = BeanUtil.copyProperties(peopleVo, People.class);
|
|
||||||
int insert = peopleMapper.insert(people);
|
|
||||||
return insert > 0 ? Result.success("操作成功") : Result.fail("操作失败");
|
|
||||||
}
|
|
||||||
|
|
||||||
public Result updatePeople(String id, PeopleVo peopleVo) {
|
|
||||||
People people = peopleMapper.selectById(id);
|
|
||||||
if (ObjUtil.isNull(people)) {
|
|
||||||
return Result.fail("人员信息不存在");
|
|
||||||
}
|
|
||||||
BeanUtil.copyProperties(peopleVo, people);
|
|
||||||
int update = peopleMapper.updateById(people);
|
|
||||||
return update > 0 ? Result.success("操作成功") : Result.fail("操作失败");
|
|
||||||
}
|
|
||||||
|
|
||||||
public Result deletePeople(String id) {
|
|
||||||
People people = peopleMapper.selectById(id);
|
|
||||||
if (ObjUtil.isNull(people)) {
|
|
||||||
return Result.fail("人员信息不存在");
|
|
||||||
}
|
|
||||||
int delete = peopleMapper.deleteById(id);
|
|
||||||
return delete > 0 ? Result.success("操作成功") : Result.fail("操作失败");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 绑卡
|
|
||||||
*
|
|
||||||
* @param peopleId
|
|
||||||
* @param rfId
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public Result associationRfId(String peopleId, String rfId) {
|
|
||||||
People people = peopleMapper.selectById(peopleId);
|
|
||||||
if (ObjUtil.isNull(people)) {
|
|
||||||
return Result.fail("人员信息不存在");
|
|
||||||
}
|
|
||||||
if (StrUtil.isNotBlank(people.getRfId())) {
|
|
||||||
return Result.fail("该人员已绑定卡号");
|
|
||||||
}
|
|
||||||
//判断卡号是否被他人绑定
|
|
||||||
User user = userMapper.selectOne(new QueryWrapper<User>()
|
|
||||||
.lambda()
|
|
||||||
.eq(User::getRfId, rfId)
|
|
||||||
.last("limit 1")
|
|
||||||
);
|
|
||||||
People peopleByRfid = peopleMapper.selectOne(new QueryWrapper<People>()
|
|
||||||
.lambda().eq(People::getRfId, rfId)
|
|
||||||
.ne(People::getId, peopleId)
|
|
||||||
.last("limit 1")
|
|
||||||
);
|
|
||||||
if (ObjUtil.isNotNull(user)) {
|
|
||||||
return Result.fail("卡号已被其他飞手绑定,请先解绑");
|
|
||||||
}
|
|
||||||
if (ObjUtil.isNotNull(peopleByRfid)) {
|
|
||||||
return Result.fail("卡号已被其他人员绑定,请先解绑");
|
|
||||||
}
|
|
||||||
people.setRfId(rfId);
|
|
||||||
people.setRfStatus(1);
|
|
||||||
people.setRfIdWg26(WGUtils.Hex16ToWG26(rfId));
|
|
||||||
people.setRfIdWg34(WGUtils.WG26ToWG34(WGUtils.Hex16ToWG26(rfId)));
|
|
||||||
int updatedById = peopleMapper.updateById(people);
|
|
||||||
return updatedById > 0 ? Result.success("操作成功") : Result.fail("操作失败");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 解绑
|
|
||||||
*
|
|
||||||
* @param peopleId
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public Result unbindRfId(String peopleId) {
|
|
||||||
People people = peopleMapper.selectById(peopleId);
|
|
||||||
if (ObjUtil.isNull(people)) {
|
|
||||||
return Result.fail("人员信息不存在");
|
|
||||||
}
|
|
||||||
if (StrUtil.isBlank(people.getRfId())) {
|
|
||||||
return Result.fail("人员未绑定卡号");
|
|
||||||
}
|
|
||||||
people.setRfId(null);
|
|
||||||
people.setRfStatus(null);
|
|
||||||
people.setRfIdWg26(null);
|
|
||||||
people.setRfIdWg34(null);
|
|
||||||
int updatedById = peopleMapper.updateById(people);
|
|
||||||
return updatedById > 0 ? Result.success("操作成功") : Result.fail("操作失败");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 启用
|
|
||||||
*/
|
|
||||||
public Result enable(String peopleId) {
|
|
||||||
People people = peopleMapper.selectById(peopleId);
|
|
||||||
if (ObjUtil.isNull(people)) {
|
|
||||||
return Result.fail("人员信息不存在");
|
|
||||||
}
|
|
||||||
if (StrUtil.isBlank(people.getRfId())) {
|
|
||||||
return Result.fail("该人员手未绑定卡号");
|
|
||||||
}
|
|
||||||
if (people.getRfStatus() == 1) {
|
|
||||||
return Result.fail("该人员已启用");
|
|
||||||
}
|
|
||||||
people.setRfStatus(1);
|
|
||||||
return peopleMapper.updateById(people) > 0 ? Result.success("操作成功") : Result.fail("操作失败");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 停用
|
|
||||||
*/
|
|
||||||
public Result disable(String peopleId) {
|
|
||||||
People people = peopleMapper.selectById(peopleId);
|
|
||||||
if (ObjUtil.isNull(people)) {
|
|
||||||
return Result.fail("人员信息不存在");
|
|
||||||
}
|
|
||||||
if (StrUtil.isBlank(people.getRfId())) {
|
|
||||||
return Result.fail("该人员手未绑定卡号");
|
|
||||||
}
|
|
||||||
if (people.getRfStatus() == 0) {
|
|
||||||
return Result.fail("该人员已停用");
|
|
||||||
}
|
|
||||||
people.setRfStatus(0);
|
|
||||||
return peopleMapper.updateById(people) > 0 ? Result.success("操作成功") : Result.fail("操作失败");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void exportExcel(PeopleParam peopleParam) {
|
|
||||||
List<People> peopleList = peopleMapper.selectList(new QueryWrapper<People>()
|
|
||||||
.lambda()
|
|
||||||
.and(StrUtil.isNotBlank(peopleParam.getRfId()), wrapper -> wrapper.like(People::getRfId, peopleParam.getRfId())
|
|
||||||
.or()
|
|
||||||
.like(People::getRfIdWg26, peopleParam.getRfId())
|
|
||||||
.or()
|
|
||||||
.like(People::getRfIdWg34, peopleParam.getRfId())
|
|
||||||
)
|
|
||||||
.eq(ObjUtil.isNotNull(peopleParam.getRfStatus()), People::getRfStatus, peopleParam.getRfStatus())
|
|
||||||
.and(ObjUtil.isNotNull(peopleParam.getBind()) && !peopleParam.getBind(), wrapper -> wrapper.isNull(People::getRfId)
|
|
||||||
.or()
|
|
||||||
.isNull(People::getRfIdWg26)
|
|
||||||
.or()
|
|
||||||
.isNull(People::getRfIdWg34)
|
|
||||||
)
|
|
||||||
.and(ObjUtil.isNotNull(peopleParam.getBind()) && peopleParam.getBind(), wrapper -> wrapper.isNotNull(People::getRfId)
|
|
||||||
.or()
|
|
||||||
.isNotNull(People::getRfIdWg26)
|
|
||||||
.or()
|
|
||||||
.isNotNull(People::getRfIdWg34)
|
|
||||||
)
|
|
||||||
.like(StrUtil.isNotBlank(peopleParam.getRealName()), People::getRealName, peopleParam.getRealName())
|
|
||||||
.eq(StrUtil.isNotBlank(peopleParam.getCity()), People::getCity, peopleParam.getCity())
|
|
||||||
.eq(StrUtil.isNotBlank(peopleParam.getProvince()), People::getProvince, peopleParam.getProvince())
|
|
||||||
.eq(StrUtil.isNotBlank(peopleParam.getDistrict()), People::getDistrict, peopleParam.getDistrict())
|
|
||||||
.eq(StrUtil.isNotBlank(peopleParam.getCountry()), People::getCountry, peopleParam.getCountry())
|
|
||||||
.eq(StrUtil.isNotBlank(peopleParam.getPeopleType()), People::getPeopleType, peopleParam.getPeopleType())
|
|
||||||
.like(StrUtil.isNotBlank(peopleParam.getNameShort()), People::getNameShort, peopleParam.getNameShort())
|
|
||||||
.eq(StrUtil.isNotBlank(peopleParam.getGender()), People::getGender, peopleParam.getGender())
|
|
||||||
.like(StrUtil.isNotBlank(peopleParam.getMemberNumber()), People::getMemberNumber, peopleParam.getMemberNumber())
|
|
||||||
.like(StrUtil.isNotBlank(peopleParam.getAddress()), People::getAddress, peopleParam.getAddress())
|
|
||||||
.orderByDesc(People::getPeopleType)
|
|
||||||
.orderByDesc(People::getNameShort)
|
|
||||||
.orderByAsc(People::getMemberNumber)
|
|
||||||
);
|
|
||||||
List<PeopleDto> peopleDtoList = PeopleWrapper.INSTANCE.toDto(peopleList);
|
|
||||||
List<PeopleWriteExcel> excelList = BeanUtil.copyToList(peopleDtoList, PeopleWriteExcel.class);
|
|
||||||
EasyExcelAlibabaUtils.download(WebUtils.getResponse(), PeopleWriteExcel.class, excelList, "人员名单信息");
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public void Wg() {
|
|
||||||
List<People> peopleList = peopleMapper.selectList(new QueryWrapper<People>()
|
|
||||||
.lambda()
|
|
||||||
.orderByDesc(People::getPeopleType)
|
|
||||||
.orderByDesc(People::getNameShort)
|
|
||||||
.orderByAsc(People::getMemberNumber)
|
|
||||||
);
|
|
||||||
if (CollUtil.isNotEmpty(peopleList)) {
|
|
||||||
peopleList.forEach(people -> {
|
|
||||||
if (StrUtil.isNotBlank(people.getRfId())) {
|
|
||||||
people.setRfIdWg26(WGUtils.Hex16ToWG26(people.getRfId()));
|
|
||||||
people.setRfIdWg34(WGUtils.WG26ToWG34(WGUtils.Hex16ToWG26(people.getRfId())));
|
|
||||||
peopleMapper.updateById(people);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,252 +0,0 @@
|
||||||
package cn.workde.module.nfc.service;
|
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
|
||||||
import cn.hutool.core.date.LocalDateTimeUtil;
|
|
||||||
import cn.hutool.core.util.ObjUtil;
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
|
||||||
import cn.workde.core.constant.GrapeConst;
|
|
||||||
import cn.workde.core.data.dto.Result;
|
|
||||||
import cn.workde.core.util.RsaUtil;
|
|
||||||
import cn.workde.module.nfc.dto.PlayerDto;
|
|
||||||
import cn.workde.module.nfc.dto.PlayersDto;
|
|
||||||
import cn.workde.module.nfc.dto.PlayersInspectionAdminDto;
|
|
||||||
import cn.workde.module.nfc.dto.PlayersInspectionDto;
|
|
||||||
import cn.workde.module.nfc.entity.*;
|
|
||||||
import cn.workde.module.nfc.mapper.ClubInvateMapper;
|
|
||||||
import cn.workde.module.nfc.mapper.PlayersInspectionMapper;
|
|
||||||
import cn.workde.module.nfc.mapper.PlayersMapper;
|
|
||||||
import cn.workde.module.nfc.mapper.UserMapper;
|
|
||||||
import cn.workde.module.nfc.vo.PlayersInspectionParam;
|
|
||||||
import cn.workde.module.nfc.webSocket.NoticeWebSocket;
|
|
||||||
import cn.workde.module.nfc.wrapper.PlayersInspectionAdminWrapper;
|
|
||||||
import cn.workde.module.nfc.wrapper.PlayersWrapper;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
||||||
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
|
||||||
import jakarta.annotation.Resource;
|
|
||||||
import lombok.SneakyThrows;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
import java.net.URLDecoder;
|
|
||||||
import java.nio.charset.StandardCharsets;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 选手NFC检录表(PlayersInspection)表服务实现类
|
|
||||||
*
|
|
||||||
* @author makejava
|
|
||||||
* @since 2024-05-21 14:00:11
|
|
||||||
*/
|
|
||||||
@Service("playersInspectionService")
|
|
||||||
public class PlayersInspectionService extends ServiceImpl<PlayersInspectionMapper, PlayersInspection> implements IService<PlayersInspection> {
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private PlayersInspectionMapper playersInspectionMapper;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private PlayersMapper playersMapper;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private UserMapper userMapper;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private ClubInvateMapper clubInvateMapper;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取飞手检录信息
|
|
||||||
*
|
|
||||||
* @param rfId
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public Result<PlayersInspectionDto> getPlayersInspection(String rfId) {
|
|
||||||
PlayersDto playersDto = this.getPlayersDto(rfId);
|
|
||||||
if (ObjUtil.isNull(playersDto)) {
|
|
||||||
return Result.fail("该NFC卡号未绑定飞手");
|
|
||||||
}
|
|
||||||
User user = userMapper.selectOne(new QueryWrapper<User>().lambda()
|
|
||||||
.eq(User::getRfId, rfId)
|
|
||||||
.eq(User::getMemberStatus, 1)
|
|
||||||
.last("limit 1")
|
|
||||||
);
|
|
||||||
if (user.getRfStatus() != 1) {
|
|
||||||
return Result.fail("该NFC卡号已禁用");
|
|
||||||
}
|
|
||||||
List<PlayersInspection> playersInspections = playersInspectionMapper.selectList(new QueryWrapper<PlayersInspection>()
|
|
||||||
.lambda()
|
|
||||||
.eq(PlayersInspection::getRfId, rfId)
|
|
||||||
.eq(PlayersInspection::getPlayersId, playersDto.getPlayerId())
|
|
||||||
.orderByDesc(PlayersInspection::getInspectionDatetime)
|
|
||||||
);
|
|
||||||
PlayersInspectionDto playersInspectionDto = BeanUtil.copyProperties(playersDto, PlayersInspectionDto.class);
|
|
||||||
playersInspectionDto.setPlayersInspectionList(playersInspections);
|
|
||||||
return Result.data(playersInspectionDto);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 飞手检录
|
|
||||||
*
|
|
||||||
* @param rfId
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public Result<PlayersInspectionDto> playersInspection(String rfId, boolean status) {
|
|
||||||
PlayersDto playersDto = this.getPlayersDto(rfId);
|
|
||||||
if (ObjUtil.isNull(playersDto)) {
|
|
||||||
return Result.fail("该NFC卡号未绑定飞手");
|
|
||||||
}
|
|
||||||
// 检录
|
|
||||||
PlayersInspection playersInspection = BeanUtil.copyProperties(playersDto, PlayersInspection.class);
|
|
||||||
playersInspection.setStatus(status);
|
|
||||||
playersInspection.setInspectionDatetime(new Date());
|
|
||||||
//获取关联俱乐部
|
|
||||||
ClubInvate clubInvate = clubInvateMapper.selectOne(new QueryWrapper<ClubInvate>().lambda()
|
|
||||||
.eq(ClubInvate::getPlayerId, playersDto.getPlayerId())
|
|
||||||
.eq(ClubInvate::getStatus, 6)
|
|
||||||
.isNull(ClubInvate::getDeletetime)
|
|
||||||
.last("limit 1")
|
|
||||||
);
|
|
||||||
//获取关联账号
|
|
||||||
User user = userMapper.selectOne(new QueryWrapper<User>().lambda()
|
|
||||||
.eq(User::getRfId, rfId)
|
|
||||||
.eq(User::getMemberStatus, 1)
|
|
||||||
.last("limit 1")
|
|
||||||
);
|
|
||||||
if (ObjUtil.isNotNull(clubInvate)) {
|
|
||||||
playersInspection.setClubId(clubInvate.getClubId());
|
|
||||||
}
|
|
||||||
if (ObjUtil.isNotNull(user)) {
|
|
||||||
playersInspection.setUserId(user.getId());
|
|
||||||
}
|
|
||||||
if (user.getRfStatus() != 1) {
|
|
||||||
return Result.fail("该NFC卡号已禁用");
|
|
||||||
}
|
|
||||||
playersInspection.setPlayersId(playersDto.getPlayerId());
|
|
||||||
int insert = playersInspectionMapper.insert(playersInspection);
|
|
||||||
if (insert <= 0) {
|
|
||||||
return Result.fail("检录失败");
|
|
||||||
}
|
|
||||||
//修改选手检录状态
|
|
||||||
Players players = playersMapper.selectById(playersDto.getPlayerId());
|
|
||||||
players.setInspectionStatus(status ? 1 : 2);
|
|
||||||
int update = playersMapper.updateById(players);
|
|
||||||
if (update <= 0) {
|
|
||||||
return Result.fail("修改选手检录状态失败");
|
|
||||||
}
|
|
||||||
playersDto.setInspectionStatus(status ? 1 : 2);
|
|
||||||
List<PlayersInspection> playersInspections = playersInspectionMapper.selectList(new QueryWrapper<PlayersInspection>()
|
|
||||||
.lambda()
|
|
||||||
.eq(PlayersInspection::getRfId, rfId)
|
|
||||||
.eq(PlayersInspection::getPlayersId, playersDto.getPlayerId())
|
|
||||||
.orderByDesc(PlayersInspection::getInspectionDatetime)
|
|
||||||
);
|
|
||||||
PlayersInspectionDto playersInspectionDto = BeanUtil.copyProperties(playersDto, PlayersInspectionDto.class);
|
|
||||||
playersInspectionDto.setPlayersInspectionList(playersInspections);
|
|
||||||
playersInspectionDto.setStatus(playersInspection.getStatus());
|
|
||||||
playersInspectionDto.setInspectionDatetime(playersInspection.getInspectionDatetime());
|
|
||||||
NoticeWebSocket.sendAllMessage("选手检录状态更新,请前端更行数据");
|
|
||||||
return Result.data(playersInspectionDto);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private PlayersDto getPlayersDto(String rfId) {
|
|
||||||
PlayerDto playerDto = playersMapper.selectJoinOne(PlayerDto.class, new MPJLambdaWrapper<Players>()
|
|
||||||
.selectAs(Players::getId, PlayerDto::getPlayerId)
|
|
||||||
.selectAs(User::getMemberNumber, PlayerDto::getMemberNumber)
|
|
||||||
.selectAs(Players::getDistrict, PlayerDto::getDistrict)
|
|
||||||
.selectAs(User::getRfId, PlayerDto::getRfId)
|
|
||||||
.selectAs(Players::getCountry, PlayerDto::getCountry)
|
|
||||||
.selectAs(Players::getPlayerPic, PlayerDto::getPlayerPic)
|
|
||||||
.selectAs(Players::getRealName, PlayerDto::getRealName)
|
|
||||||
.selectAs(Players::getCity, PlayerDto::getCity)
|
|
||||||
.selectAs(Players::getAddress, PlayerDto::getAddress)
|
|
||||||
.selectAs(Players::getGender, PlayerDto::getGender)
|
|
||||||
.selectAs(Players::getProvince, PlayerDto::getProvince)
|
|
||||||
.selectAs(Club::getNameShort, PlayerDto::getNameShort)
|
|
||||||
.selectAs(User::getRfStatus, PlayerDto::getRfStatus)
|
|
||||||
.selectAs(Players::getInspectionStatus, PlayerDto::getInspectionStatus)
|
|
||||||
.selectAs(User::getRfIdWg26, PlayerDto::getRfIdWg26)
|
|
||||||
.selectAs(User::getRfIdWg34, PlayerDto::getRfIdWg34)
|
|
||||||
.leftJoin(User.class, "user", on -> on.eq(User::getId, Players::getMemberId)
|
|
||||||
)
|
|
||||||
.leftJoin(ClubInvate.class, "club_invate", on -> on.eq(ClubInvate::getPlayerId, Players::getId)
|
|
||||||
)
|
|
||||||
.leftJoin(Club.class, "club", on -> on.eq(Club::getId, ClubInvate::getClubId)
|
|
||||||
)
|
|
||||||
.eq("t", Players::getPlayerStatus, 9)
|
|
||||||
.eq("club", Club::getStatus, 9)
|
|
||||||
.eq("club_invate", ClubInvate::getStatus, 6)
|
|
||||||
.isNull("club_invate", ClubInvate::getDeletetime)
|
|
||||||
.eq("user", User::getMemberStatus, 1)
|
|
||||||
.eq("user", User::getRfId, rfId)
|
|
||||||
.last("limit 1")
|
|
||||||
);
|
|
||||||
if (ObjUtil.isNull(playerDto)) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return PlayersWrapper.INSTANCE.toDto(playerDto);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Result<Integer> getCountByThisDay() {
|
|
||||||
Integer count = playersInspectionMapper.getCountByThisDay(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.now()), LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.now()));
|
|
||||||
return Result.data(count);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@SneakyThrows
|
|
||||||
public Result<String> reset(String password) {
|
|
||||||
if (StrUtil.isBlank(password)) {
|
|
||||||
return Result.fail("密码不能为空");
|
|
||||||
}
|
|
||||||
password = URLDecoder.decode(password, StandardCharsets.UTF_8.name());
|
|
||||||
password = RsaUtil.decrypt(password, GrapeConst.APP_PRIVATE_KEY);
|
|
||||||
if (!password.equals(GrapeConst.APP_PASSWORD)) {
|
|
||||||
return Result.fail("密码错误");
|
|
||||||
}
|
|
||||||
LambdaUpdateWrapper<Players> uw = new LambdaUpdateWrapper<>();
|
|
||||||
uw.set(Players::getInspectionStatus, 0);
|
|
||||||
int update = playersMapper.update(uw);
|
|
||||||
NoticeWebSocket.sendAllMessage("一键重置,请前端更行数据");
|
|
||||||
return update > 0 ? Result.success("重置成功") : Result.fail("重置失败");
|
|
||||||
}
|
|
||||||
|
|
||||||
public Result<Page<PlayersInspectionAdminDto>> getPlayersInspectionAdminDtoPage(Page page, String playerId) {
|
|
||||||
Page<PlayersInspection> paged = this.page(page, new LambdaQueryWrapper<PlayersInspection>()
|
|
||||||
.eq(PlayersInspection::getPlayersId, playerId)
|
|
||||||
.orderByDesc(PlayersInspection::getInspectionDatetime)
|
|
||||||
);
|
|
||||||
return Result.data(PlayersInspectionAdminWrapper.INSTANCE.toDto(paged));
|
|
||||||
}
|
|
||||||
|
|
||||||
public Result<Page<PlayersInspectionAdminDto>> getPlayersInspectionAdminPage(Page page, PlayersInspectionParam param) {
|
|
||||||
Page<PlayersInspection> paged = this.page(page, new LambdaQueryWrapper<PlayersInspection>()
|
|
||||||
.and(StrUtil.isNotBlank(param.getRfId()), wrapper -> wrapper.like(PlayersInspection::getRfId, param.getRfId())
|
|
||||||
.or()
|
|
||||||
.like(PlayersInspection::getRfIdWg26, param.getRfId())
|
|
||||||
.or()
|
|
||||||
.like(PlayersInspection::getRfIdWg34, param.getRfId())
|
|
||||||
)
|
|
||||||
.like(StrUtil.isNotBlank(param.getRealName()), PlayersInspection::getRealName, param.getRealName())
|
|
||||||
.like(StrUtil.isNotBlank(param.getMemberNumber()), PlayersInspection::getMemberNumber, param.getMemberNumber())
|
|
||||||
.like(StrUtil.isNotBlank(param.getNameShort()), PlayersInspection::getNameShort, param.getNameShort())
|
|
||||||
.eq(StrUtil.isNotBlank(param.getGender()), PlayersInspection::getGender, param.getGender())
|
|
||||||
.eq(StrUtil.isNotBlank(param.getCountry()), PlayersInspection::getCountry, param.getCountry())
|
|
||||||
.eq(StrUtil.isNotBlank(param.getProvince()), PlayersInspection::getProvince, param.getProvince())
|
|
||||||
.eq(StrUtil.isNotBlank(param.getCity()), PlayersInspection::getCity, param.getCity())
|
|
||||||
.eq(StrUtil.isNotBlank(param.getDistrict()), PlayersInspection::getDistrict, param.getDistrict())
|
|
||||||
.like(StrUtil.isNotBlank(param.getAddress()), PlayersInspection::getAddress, param.getAddress())
|
|
||||||
.eq(ObjUtil.isNotNull(param.getStatus()), PlayersInspection::getStatus, param.getStatus())
|
|
||||||
.ge(ObjUtil.isNotNull(param.getInspectionStartDateTime()), PlayersInspection::getInspectionDatetime, param.getInspectionStartDateTime())
|
|
||||||
.le(ObjUtil.isNotNull(param.getInspectionEndDateTime()), PlayersInspection::getInspectionDatetime, param.getInspectionEndDateTime())
|
|
||||||
.orderByDesc(PlayersInspection::getInspectionDatetime)
|
|
||||||
);
|
|
||||||
return Result.data(PlayersInspectionAdminWrapper.INSTANCE.toDto(paged));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,326 +0,0 @@
|
||||||
package cn.workde.module.nfc.service;
|
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
|
||||||
import cn.hutool.core.util.ObjUtil;
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
|
||||||
import cn.workde.core.data.dto.Result;
|
|
||||||
import cn.workde.core.util.WebUtils;
|
|
||||||
import cn.workde.module.nfc.dto.PlayerDto;
|
|
||||||
import cn.workde.module.nfc.dto.PlayersDto;
|
|
||||||
import cn.workde.module.nfc.entity.*;
|
|
||||||
import cn.workde.module.nfc.excel.writeExcel.PlayersWriteExcel;
|
|
||||||
import cn.workde.module.nfc.mapper.PeopleMapper;
|
|
||||||
import cn.workde.module.nfc.mapper.PlayersMapper;
|
|
||||||
import cn.workde.module.nfc.mapper.UserMapper;
|
|
||||||
import cn.workde.module.nfc.util.WGUtils;
|
|
||||||
import cn.workde.module.nfc.vo.PlayerVo;
|
|
||||||
import cn.workde.module.nfc.wrapper.PlayersWrapper;
|
|
||||||
import cn.workde.module.upms.utils.EasyExcelAlibabaUtils;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
||||||
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
|
||||||
import jakarta.annotation.Resource;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 飞手表(Players)表服务实现类
|
|
||||||
*
|
|
||||||
* @author makejava
|
|
||||||
* @since 2024-05-20 15:40:15
|
|
||||||
*/
|
|
||||||
@Service("playersService")
|
|
||||||
public class PlayersService extends ServiceImpl<PlayersMapper, Players> implements IService<Players> {
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private PlayersMapper playersMapper;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private UserMapper userMapper;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private PeopleMapper peopleMapper;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取飞手列表
|
|
||||||
*
|
|
||||||
* @param page 分页参数
|
|
||||||
* @param playerVo
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public Result<Page<PlayersDto>> getPlayerDtoPage(PlayerVo playerVo) {
|
|
||||||
Page<PlayerDto> playerDtoPage = playersMapper.selectJoinPage(new Page<>(playerVo.getPage(), playerVo.getPageSize()), PlayerDto.class, new MPJLambdaWrapper<Players>()
|
|
||||||
.selectAs(Players::getId, PlayerDto::getPlayerId)
|
|
||||||
.selectAs(User::getMemberNumber, PlayerDto::getMemberNumber)
|
|
||||||
.selectAs(Players::getDistrict, PlayerDto::getDistrict)
|
|
||||||
.selectAs(User::getRfId, PlayerDto::getRfId)
|
|
||||||
.selectAs(Players::getCountry, PlayerDto::getCountry)
|
|
||||||
.selectAs(Players::getPlayerPic, PlayerDto::getPlayerPic)
|
|
||||||
.selectAs(Players::getRealName, PlayerDto::getRealName)
|
|
||||||
.selectAs(Players::getCity, PlayerDto::getCity)
|
|
||||||
.selectAs(Players::getAddress, PlayerDto::getAddress)
|
|
||||||
.selectAs(Players::getGender, PlayerDto::getGender)
|
|
||||||
.selectAs(Players::getProvince, PlayerDto::getProvince)
|
|
||||||
.selectAs(Club::getNameShort, PlayerDto::getNameShort)
|
|
||||||
.selectAs(User::getRfStatus, PlayerDto::getRfStatus)
|
|
||||||
.selectAs(Players::getInspectionStatus, PlayerDto::getInspectionStatus)
|
|
||||||
.selectAs(User::getRfIdWg26, PlayerDto::getRfIdWg26)
|
|
||||||
.selectAs(User::getRfIdWg34, PlayerDto::getRfIdWg34)
|
|
||||||
.leftJoin(User.class, "user", on -> on.eq(User::getId, Players::getMemberId)
|
|
||||||
)
|
|
||||||
.leftJoin(ClubInvate.class, "club_invate", on -> on.eq(ClubInvate::getPlayerId, Players::getId)
|
|
||||||
)
|
|
||||||
.leftJoin(Club.class, "club", on -> on.eq(Club::getId, ClubInvate::getClubId)
|
|
||||||
)
|
|
||||||
.eq("t", Players::getPlayerStatus, 9)
|
|
||||||
.eq("club", Club::getStatus, 9)
|
|
||||||
.eq("club_invate", ClubInvate::getStatus, 6)
|
|
||||||
.isNull("club_invate", ClubInvate::getDeletetime)
|
|
||||||
.eq("user", User::getMemberStatus, 1)
|
|
||||||
.like(StrUtil.isNotBlank(playerVo.getRealName()), "t", Players::getRealName, playerVo.getRealName())
|
|
||||||
.like(StrUtil.isNotBlank(playerVo.getMemberNumber()), "user", User::getMemberNumber, playerVo.getMemberNumber())
|
|
||||||
.like(StrUtil.isNotBlank(playerVo.getNameShort()), "club", Club::getNameShort, playerVo.getNameShort())
|
|
||||||
.like(StrUtil.isNotBlank(playerVo.getGender()), "t", Players::getGender, playerVo.getGender())
|
|
||||||
.like(StrUtil.isNotBlank(playerVo.getProvince()), "t", Players::getProvince, playerVo.getProvince())
|
|
||||||
.like(StrUtil.isNotBlank(playerVo.getCity()), "t", Players::getCity, playerVo.getCity())
|
|
||||||
.like(StrUtil.isNotBlank(playerVo.getDistrict()), "t", Players::getDistrict, playerVo.getDistrict())
|
|
||||||
.like(StrUtil.isNotBlank(playerVo.getAddress()), "t", Players::getAddress, playerVo.getAddress())
|
|
||||||
.like(StrUtil.isNotBlank(playerVo.getCountry()), "t", Players::getCountry, playerVo.getCountry())
|
|
||||||
.eq(ObjUtil.isNotNull(playerVo.getRfStatus()), "user", User::getRfStatus, playerVo.getRfStatus())
|
|
||||||
.and(StrUtil.isNotBlank(playerVo.getRfId()), wrapper -> wrapper.like("user",User::getRfId, playerVo.getRfId())
|
|
||||||
.or()
|
|
||||||
.like("user",User::getRfIdWg26, playerVo.getRfId())
|
|
||||||
.or()
|
|
||||||
.like("user",User::getRfIdWg34, playerVo.getRfId())
|
|
||||||
)
|
|
||||||
.and(ObjUtil.isNotNull(playerVo.getBind()) && !playerVo.getBind(), wrapper -> wrapper.isNull("user", User::getRfId)
|
|
||||||
.or()
|
|
||||||
.isNull("user", User::getRfIdWg26)
|
|
||||||
.or()
|
|
||||||
.isNull("user", User::getRfIdWg34)
|
|
||||||
)
|
|
||||||
.and(ObjUtil.isNotNull(playerVo.getBind()) && playerVo.getBind(), wrapper -> wrapper.isNotNull("user", User::getRfId)
|
|
||||||
.or()
|
|
||||||
.isNotNull("user", User::getRfIdWg26)
|
|
||||||
.or()
|
|
||||||
.isNotNull("user", User::getRfIdWg34)
|
|
||||||
)
|
|
||||||
.orderByDesc("club", Club::getId)
|
|
||||||
.orderByAsc("user", User::getMemberNumber)
|
|
||||||
.orderByDesc("t", Players::getCreatedAt)
|
|
||||||
);
|
|
||||||
return Result.data(PlayersWrapper.INSTANCE.toDto(playerDtoPage));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 绑卡
|
|
||||||
*
|
|
||||||
* @param playerId
|
|
||||||
* @param rfId
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public Result associationRfId(Long playerId, String rfId) {
|
|
||||||
Players player = this.getById(playerId);
|
|
||||||
if (ObjUtil.isNull(player)) {
|
|
||||||
return Result.fail("飞手不存在");
|
|
||||||
}
|
|
||||||
if (ObjUtil.isNull(player.getMemberId())) {
|
|
||||||
return Result.fail("飞手未绑定账号");
|
|
||||||
}
|
|
||||||
User user = userMapper.selectById(player.getMemberId());
|
|
||||||
if (ObjUtil.isNull(user)) {
|
|
||||||
return Result.fail("飞手绑定账号不存在");
|
|
||||||
}
|
|
||||||
if (StrUtil.isNotBlank(user.getRfId())) {
|
|
||||||
return Result.fail("飞手已绑定卡号,请先解绑");
|
|
||||||
}
|
|
||||||
//判断卡号是否被他人绑定
|
|
||||||
User userByRfId = userMapper.selectOne(new QueryWrapper<User>()
|
|
||||||
.lambda()
|
|
||||||
.eq(User::getRfId, rfId)
|
|
||||||
.ne(User::getId, user.getId())
|
|
||||||
.last("limit 1")
|
|
||||||
);
|
|
||||||
People people = peopleMapper.selectOne(new QueryWrapper<People>()
|
|
||||||
.lambda().eq(People::getRfId, rfId)
|
|
||||||
.last("limit 1")
|
|
||||||
);
|
|
||||||
if (ObjUtil.isNotNull(userByRfId)) {
|
|
||||||
return Result.fail("卡号已被其他飞手绑定,请先解绑");
|
|
||||||
}
|
|
||||||
if (ObjUtil.isNotNull(people)) {
|
|
||||||
return Result.fail("卡号已被其他人员绑定,请先解绑");
|
|
||||||
}
|
|
||||||
user.setRfId(rfId);
|
|
||||||
user.setRfStatus(1);
|
|
||||||
user.setRfIdWg26(WGUtils.Hex16ToWG26(rfId));
|
|
||||||
user.setRfIdWg34(WGUtils.WG26ToWG34(WGUtils.Hex16ToWG26(rfId)));
|
|
||||||
int updatedById = userMapper.updateById(user);
|
|
||||||
return updatedById > 0 ? Result.success("操作成功") : Result.fail("操作失败");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 解绑
|
|
||||||
*
|
|
||||||
* @param playerId
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public Result unbindRfId(Long playerId) {
|
|
||||||
Players player = this.getById(playerId);
|
|
||||||
if (ObjUtil.isNull(player)) {
|
|
||||||
return Result.fail("飞手不存在");
|
|
||||||
}
|
|
||||||
if (ObjUtil.isNull(player.getMemberId())) {
|
|
||||||
return Result.fail("飞手未绑定账号");
|
|
||||||
}
|
|
||||||
User user = userMapper.selectById(player.getMemberId());
|
|
||||||
if (ObjUtil.isNull(user)) {
|
|
||||||
return Result.fail("飞手绑定账号不存在");
|
|
||||||
}
|
|
||||||
if (StrUtil.isBlank(user.getRfId())) {
|
|
||||||
return Result.fail("飞手未绑定卡号");
|
|
||||||
}
|
|
||||||
user.setRfId(null);
|
|
||||||
user.setRfStatus(null);
|
|
||||||
user.setRfIdWg26(null);
|
|
||||||
user.setRfIdWg34(null);
|
|
||||||
int updatedById = userMapper.updateById(user);
|
|
||||||
return updatedById > 0 ? Result.success("操作成功") : Result.fail("操作失败");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 启用
|
|
||||||
*/
|
|
||||||
public Result enable(Long playerId) {
|
|
||||||
Players player = this.getById(playerId);
|
|
||||||
if (ObjUtil.isNull(player)) {
|
|
||||||
return Result.fail("飞手不存在");
|
|
||||||
}
|
|
||||||
if (ObjUtil.isNull(player.getMemberId())) {
|
|
||||||
return Result.fail("飞手未绑定账号");
|
|
||||||
}
|
|
||||||
User user = userMapper.selectById(player.getMemberId());
|
|
||||||
if (ObjUtil.isNull(user)) {
|
|
||||||
return Result.fail("飞手绑定账号不存在");
|
|
||||||
}
|
|
||||||
if (StrUtil.isBlank(user.getRfId())) {
|
|
||||||
return Result.fail("飞手未绑定卡号");
|
|
||||||
}
|
|
||||||
if (user.getRfStatus() == 1) {
|
|
||||||
return Result.fail("飞手已启用");
|
|
||||||
}
|
|
||||||
user.setRfStatus(1);
|
|
||||||
return userMapper.updateById(user) > 0 ? Result.success("操作成功") : Result.fail("操作失败");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 停用
|
|
||||||
*/
|
|
||||||
public Result disable(Long playerId) {
|
|
||||||
Players player = this.getById(playerId);
|
|
||||||
if (ObjUtil.isNull(player)) {
|
|
||||||
return Result.fail("飞手不存在");
|
|
||||||
}
|
|
||||||
if (ObjUtil.isNull(player.getMemberId())) {
|
|
||||||
return Result.fail("飞手未绑定账号");
|
|
||||||
}
|
|
||||||
User user = userMapper.selectById(player.getMemberId());
|
|
||||||
if (ObjUtil.isNull(user)) {
|
|
||||||
return Result.fail("飞手绑定账号不存在");
|
|
||||||
}
|
|
||||||
if (StrUtil.isBlank(user.getRfId())) {
|
|
||||||
return Result.fail("飞手未绑定卡号");
|
|
||||||
}
|
|
||||||
if (user.getRfStatus() == 0) {
|
|
||||||
return Result.fail("飞手已停用");
|
|
||||||
}
|
|
||||||
user.setRfStatus(0);
|
|
||||||
return userMapper.updateById(user) > 0 ? Result.success("操作成功") : Result.fail("操作失败");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void exportExcel(PlayerVo playerVo) {
|
|
||||||
List<PlayerDto> playerDtoList = playersMapper.selectJoinList(PlayerDto.class, new MPJLambdaWrapper<Players>()
|
|
||||||
.selectAs(Players::getId, PlayerDto::getPlayerId)
|
|
||||||
.selectAs(User::getMemberNumber, PlayerDto::getMemberNumber)
|
|
||||||
.selectAs(Players::getDistrict, PlayerDto::getDistrict)
|
|
||||||
.selectAs(User::getRfId, PlayerDto::getRfId)
|
|
||||||
.selectAs(Players::getCountry, PlayerDto::getCountry)
|
|
||||||
.selectAs(Players::getPlayerPic, PlayerDto::getPlayerPic)
|
|
||||||
.selectAs(Players::getRealName, PlayerDto::getRealName)
|
|
||||||
.selectAs(Players::getCity, PlayerDto::getCity)
|
|
||||||
.selectAs(Players::getAddress, PlayerDto::getAddress)
|
|
||||||
.selectAs(Players::getGender, PlayerDto::getGender)
|
|
||||||
.selectAs(Players::getProvince, PlayerDto::getProvince)
|
|
||||||
.selectAs(Club::getNameShort, PlayerDto::getNameShort)
|
|
||||||
.selectAs(User::getRfStatus, PlayerDto::getRfStatus)
|
|
||||||
.selectAs(Players::getInspectionStatus, PlayerDto::getInspectionStatus)
|
|
||||||
.selectAs(User::getRfIdWg26, PlayerDto::getRfIdWg26)
|
|
||||||
.selectAs(User::getRfIdWg34, PlayerDto::getRfIdWg34)
|
|
||||||
.leftJoin(User.class, "user", on -> on.eq(User::getId, Players::getMemberId)
|
|
||||||
)
|
|
||||||
.leftJoin(ClubInvate.class, "club_invate", on -> on.eq(ClubInvate::getPlayerId, Players::getId)
|
|
||||||
)
|
|
||||||
.leftJoin(Club.class, "club", on -> on.eq(Club::getId, ClubInvate::getClubId)
|
|
||||||
)
|
|
||||||
.eq("t", Players::getPlayerStatus, 9)
|
|
||||||
.eq("club", Club::getStatus, 9)
|
|
||||||
.eq("club_invate", ClubInvate::getStatus, 6)
|
|
||||||
.isNull("club_invate", ClubInvate::getDeletetime)
|
|
||||||
.eq("user", User::getMemberStatus, 1)
|
|
||||||
.like(StrUtil.isNotBlank(playerVo.getRealName()), "t", Players::getRealName, playerVo.getRealName())
|
|
||||||
.like(StrUtil.isNotBlank(playerVo.getMemberNumber()), "user", User::getMemberNumber, playerVo.getMemberNumber())
|
|
||||||
.like(StrUtil.isNotBlank(playerVo.getNameShort()), "club", Club::getNameShort, playerVo.getNameShort())
|
|
||||||
.like(StrUtil.isNotBlank(playerVo.getGender()), "t", Players::getGender, playerVo.getGender())
|
|
||||||
.like(StrUtil.isNotBlank(playerVo.getProvince()), "t", Players::getProvince, playerVo.getProvince())
|
|
||||||
.like(StrUtil.isNotBlank(playerVo.getCity()), "t", Players::getCity, playerVo.getCity())
|
|
||||||
.like(StrUtil.isNotBlank(playerVo.getDistrict()), "t", Players::getDistrict, playerVo.getDistrict())
|
|
||||||
.like(StrUtil.isNotBlank(playerVo.getAddress()), "t", Players::getAddress, playerVo.getAddress())
|
|
||||||
.like(StrUtil.isNotBlank(playerVo.getCountry()), "t", Players::getCountry, playerVo.getCountry())
|
|
||||||
.eq(ObjUtil.isNotNull(playerVo.getRfStatus()), "user", User::getRfStatus, playerVo.getRfStatus())
|
|
||||||
.and(StrUtil.isNotBlank(playerVo.getRfId()), wrapper -> wrapper.like("user",User::getRfId, playerVo.getRfId())
|
|
||||||
.or()
|
|
||||||
.like("user",User::getRfIdWg26, playerVo.getRfId())
|
|
||||||
.or()
|
|
||||||
.like("user",User::getRfIdWg34, playerVo.getRfId())
|
|
||||||
)
|
|
||||||
.and(ObjUtil.isNotNull(playerVo.getBind()) && !playerVo.getBind(), wrapper -> wrapper.isNull("user", User::getRfId)
|
|
||||||
.or()
|
|
||||||
.isNull("user", User::getRfIdWg26)
|
|
||||||
.or()
|
|
||||||
.isNull("user", User::getRfIdWg34)
|
|
||||||
)
|
|
||||||
.and(ObjUtil.isNotNull(playerVo.getBind()) && playerVo.getBind(), wrapper -> wrapper.isNotNull("user", User::getRfId)
|
|
||||||
.or()
|
|
||||||
.isNotNull("user", User::getRfIdWg26)
|
|
||||||
.or()
|
|
||||||
.isNotNull("user", User::getRfIdWg34)
|
|
||||||
)
|
|
||||||
.orderByDesc("club", Club::getId)
|
|
||||||
.orderByAsc("user", User::getMemberNumber)
|
|
||||||
.orderByDesc("t", Players::getCreatedAt)
|
|
||||||
);
|
|
||||||
List<PlayersDto> playersDtoList = PlayersWrapper.INSTANCE.toDto(playerDtoList);
|
|
||||||
List<PlayersWriteExcel> excelList = BeanUtil.copyToList(playersDtoList, PlayersWriteExcel.class);
|
|
||||||
EasyExcelAlibabaUtils.download(WebUtils.getResponse(), PlayersWriteExcel.class, excelList, "选手名单信息");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Wg() {
|
|
||||||
List<User> userList = userMapper.selectList(new LambdaQueryWrapper<User>().isNotNull(User::getRfId));
|
|
||||||
if (CollUtil.isNotEmpty(userList)) {
|
|
||||||
userList.forEach(user -> {
|
|
||||||
if (StrUtil.isNotBlank(user.getRfId())) {
|
|
||||||
user.setRfIdWg26(WGUtils.Hex16ToWG26(user.getRfId()));
|
|
||||||
user.setRfIdWg34(WGUtils.WG26ToWG34(WGUtils.Hex16ToWG26(user.getRfId())));
|
|
||||||
userMapper.updateById(user);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,242 +0,0 @@
|
||||||
package cn.workde.module.nfc.service;
|
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
|
||||||
import cn.hutool.core.date.LocalDateTimeUtil;
|
|
||||||
import cn.hutool.core.util.ObjUtil;
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
|
||||||
import cn.workde.core.data.dto.Result;
|
|
||||||
import cn.workde.module.nfc.dto.PlayerDto;
|
|
||||||
import cn.workde.module.nfc.dto.PlayersDto;
|
|
||||||
import cn.workde.module.nfc.dto.SignAdminDto;
|
|
||||||
import cn.workde.module.nfc.dto.SignDto;
|
|
||||||
import cn.workde.module.nfc.entity.*;
|
|
||||||
import cn.workde.module.nfc.mapper.*;
|
|
||||||
import cn.workde.module.nfc.vo.SignAdminParam;
|
|
||||||
import cn.workde.module.nfc.wrapper.PlayersWrapper;
|
|
||||||
import cn.workde.module.nfc.wrapper.SignAdminWrapper;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
||||||
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
|
||||||
import jakarta.annotation.Resource;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* NFC签到表(Sign)表服务实现类
|
|
||||||
*
|
|
||||||
* @author makejava
|
|
||||||
* @since 2024-05-22 13:07:00
|
|
||||||
*/
|
|
||||||
@Service("signService")
|
|
||||||
public class SignService extends ServiceImpl<SignMapper, Sign> implements IService<Sign> {
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private SignMapper signMapper;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private PlayersMapper playersMapper;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private UserMapper userMapper;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private ClubInvateMapper clubInvateMapper;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private PeopleMapper peopleMapper;
|
|
||||||
|
|
||||||
public Result<String> getSignType(String rfId) {
|
|
||||||
User user = userMapper.selectOne(new QueryWrapper<User>().lambda()
|
|
||||||
.eq(User::getRfId, rfId)
|
|
||||||
.eq(User::getMemberStatus, 1)
|
|
||||||
.last("limit 1")
|
|
||||||
);
|
|
||||||
if (ObjUtil.isNotNull(user)) {
|
|
||||||
return Result.data("players");
|
|
||||||
}
|
|
||||||
People people = peopleMapper.selectOne(new QueryWrapper<People>().lambda()
|
|
||||||
.eq(People::getRfId, rfId)
|
|
||||||
.last("limit 1")
|
|
||||||
);
|
|
||||||
if (ObjUtil.isNotNull(people)) {
|
|
||||||
return Result.data("people");
|
|
||||||
}
|
|
||||||
return Result.fail("该卡未绑定飞手或人员");
|
|
||||||
}
|
|
||||||
|
|
||||||
public Result<SignDto> playersSign(String rfId) {
|
|
||||||
// 获取关联的账号
|
|
||||||
User user = userMapper.selectOne(new QueryWrapper<User>().lambda()
|
|
||||||
.eq(User::getRfId, rfId)
|
|
||||||
.eq(User::getMemberStatus, 1)
|
|
||||||
.last("limit 1")
|
|
||||||
);
|
|
||||||
if (ObjUtil.isNull(user)) {
|
|
||||||
return Result.fail("该卡未绑定飞手");
|
|
||||||
}
|
|
||||||
if (user.getRfStatus() != 1) {
|
|
||||||
return Result.fail("该NFC卡号已禁用");
|
|
||||||
}
|
|
||||||
PlayersDto playersDto = this.getPlayersDto(rfId);
|
|
||||||
if (ObjUtil.isNull(playersDto)) {
|
|
||||||
return Result.fail("该NFC卡号未绑定飞手");
|
|
||||||
}
|
|
||||||
|
|
||||||
// 签到
|
|
||||||
Sign sign = BeanUtil.copyProperties(playersDto, Sign.class, "id");
|
|
||||||
sign.setSignDatetime(new Date());
|
|
||||||
sign.setTargetId(String.valueOf(playersDto.getPlayerId()));
|
|
||||||
sign.setRfId(rfId);
|
|
||||||
sign.setPeopleType("飞手");
|
|
||||||
//获取关联俱乐部
|
|
||||||
ClubInvate clubInvate = clubInvateMapper.selectOne(new QueryWrapper<ClubInvate>().lambda()
|
|
||||||
.eq(ClubInvate::getPlayerId, playersDto.getPlayerId())
|
|
||||||
.eq(ClubInvate::getStatus, 6)
|
|
||||||
.isNull(ClubInvate::getDeletetime)
|
|
||||||
.last("limit 1")
|
|
||||||
);
|
|
||||||
if (ObjUtil.isNotNull(clubInvate)) {
|
|
||||||
sign.setClubId(clubInvate.getClubId());
|
|
||||||
}
|
|
||||||
if (ObjUtil.isNotNull(user)) {
|
|
||||||
sign.setUserId(user.getId());
|
|
||||||
}
|
|
||||||
int insert = signMapper.insert(sign);
|
|
||||||
if (insert <= 0) {
|
|
||||||
return Result.fail("签到失败");
|
|
||||||
}
|
|
||||||
|
|
||||||
// 查询签到日志
|
|
||||||
List<Sign> signList = signMapper.selectList(new QueryWrapper<Sign>().lambda()
|
|
||||||
.eq(Sign::getRfId, rfId)
|
|
||||||
.eq(Sign::getTargetId, playersDto.getPlayerId())
|
|
||||||
.orderByDesc(Sign::getSignDatetime)
|
|
||||||
);
|
|
||||||
|
|
||||||
SignDto signDto = BeanUtil.copyProperties(playersDto, SignDto.class);
|
|
||||||
signDto.setSignList(signList);
|
|
||||||
signDto.setSignDatetime(sign.getSignDatetime());
|
|
||||||
signDto.setPeopleType("飞手");
|
|
||||||
if (StrUtil.isNotBlank(playersDto.getPlayerPic())) {
|
|
||||||
signDto.setPlayerPicFullPath(playersDto.getPlayerPic().startsWith("http") ? playersDto.getPlayerPic() : "https://www.fpvone.cn" + playersDto.getPlayerPic());
|
|
||||||
}
|
|
||||||
return Result.data(signDto);
|
|
||||||
}
|
|
||||||
|
|
||||||
private PlayersDto getPlayersDto(String rdId) {
|
|
||||||
PlayerDto playerDto = playersMapper.selectJoinOne(PlayerDto.class, new MPJLambdaWrapper<Players>()
|
|
||||||
.selectAs(Players::getId, PlayerDto::getPlayerId)
|
|
||||||
.selectAs(User::getMemberNumber, PlayerDto::getMemberNumber)
|
|
||||||
.selectAs(Players::getDistrict, PlayerDto::getDistrict)
|
|
||||||
.selectAs(User::getRfId, PlayerDto::getRfId)
|
|
||||||
.selectAs(Players::getCountry, PlayerDto::getCountry)
|
|
||||||
.selectAs(Players::getPlayerPic, PlayerDto::getPlayerPic)
|
|
||||||
.selectAs(Players::getRealName, PlayerDto::getRealName)
|
|
||||||
.selectAs(Players::getCity, PlayerDto::getCity)
|
|
||||||
.selectAs(Players::getAddress, PlayerDto::getAddress)
|
|
||||||
.selectAs(Players::getGender, PlayerDto::getGender)
|
|
||||||
.selectAs(Players::getProvince, PlayerDto::getProvince)
|
|
||||||
.selectAs(Club::getNameShort, PlayerDto::getNameShort)
|
|
||||||
.selectAs(User::getRfStatus, PlayerDto::getRfStatus)
|
|
||||||
.selectAs(Players::getInspectionStatus, PlayerDto::getInspectionStatus)
|
|
||||||
.selectAs(User::getRfIdWg26, PlayerDto::getRfIdWg26)
|
|
||||||
.selectAs(User::getRfIdWg34, PlayerDto::getRfIdWg34)
|
|
||||||
.leftJoin(User.class, "user", on -> on.eq(User::getId, Players::getMemberId)
|
|
||||||
)
|
|
||||||
.leftJoin(ClubInvate.class, "club_invate", on -> on.eq(ClubInvate::getPlayerId, Players::getId)
|
|
||||||
)
|
|
||||||
.leftJoin(Club.class, "club", on -> on.eq(Club::getId, ClubInvate::getClubId)
|
|
||||||
)
|
|
||||||
.eq("t", Players::getPlayerStatus, 9)
|
|
||||||
.eq("club", Club::getStatus, 9)
|
|
||||||
.eq("club_invate", ClubInvate::getStatus, 6)
|
|
||||||
.isNull("club_invate", ClubInvate::getDeletetime)
|
|
||||||
.eq("user", User::getMemberStatus, 1)
|
|
||||||
.eq("user", User::getRfId, rdId)
|
|
||||||
.last("limit 1")
|
|
||||||
);
|
|
||||||
if (ObjUtil.isNull(playerDto)) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return PlayersWrapper.INSTANCE.toDto(playerDto);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Result<SignDto> peopleSign(String rfId) {
|
|
||||||
People people = peopleMapper.selectOne(new QueryWrapper<People>().lambda()
|
|
||||||
.eq(People::getRfId, rfId)
|
|
||||||
.last("limit 1")
|
|
||||||
);
|
|
||||||
if (ObjUtil.isNull(people)) {
|
|
||||||
return Result.fail("该卡未绑定人员");
|
|
||||||
}
|
|
||||||
if (people.getRfStatus() != 1) {
|
|
||||||
return Result.fail("该NFC卡号已禁用");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// 签到
|
|
||||||
Sign sign = BeanUtil.copyProperties(people, Sign.class, "id");
|
|
||||||
sign.setSignDatetime(new Date());
|
|
||||||
sign.setTargetId(people.getId());
|
|
||||||
sign.setRfId(rfId);
|
|
||||||
int insert = signMapper.insert(sign);
|
|
||||||
if (insert <= 0) {
|
|
||||||
return Result.fail("签到失败");
|
|
||||||
}
|
|
||||||
|
|
||||||
// 查询签到日志
|
|
||||||
List<Sign> signList = signMapper.selectList(new QueryWrapper<Sign>().lambda()
|
|
||||||
.eq(Sign::getRfId, rfId)
|
|
||||||
.eq(Sign::getTargetId, people.getId())
|
|
||||||
.orderByDesc(Sign::getSignDatetime)
|
|
||||||
);
|
|
||||||
|
|
||||||
SignDto signDto = BeanUtil.copyProperties(people, SignDto.class);
|
|
||||||
signDto.setSignList(signList);
|
|
||||||
signDto.setSignDatetime(sign.getSignDatetime());
|
|
||||||
if (StrUtil.isNotBlank(people.getPlayerPic())) {
|
|
||||||
signDto.setPlayerPicFullPath(people.getPlayerPic().startsWith("http") ? people.getPlayerPic() : "https://jianlu.fpvone.cn" + people.getPlayerPic());
|
|
||||||
}
|
|
||||||
return Result.data(signDto);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public Result<Integer> getCountByThisDay() {
|
|
||||||
Integer count = signMapper.getCountByThisDay(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.now()), LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.now()));
|
|
||||||
return Result.data(count);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Result<Page<SignAdminDto>> getSignAdminDtoPage(Page page, SignAdminParam param) {
|
|
||||||
Page<Sign> paged = this.page(page, new QueryWrapper<Sign>()
|
|
||||||
.orderByDesc("FIELD(people_type, '飞手')")
|
|
||||||
.lambda()
|
|
||||||
.and(StrUtil.isNotBlank(param.getRfId()), wrapper -> wrapper.like(Sign::getRfId, param.getRfId())
|
|
||||||
.or()
|
|
||||||
.like(Sign::getRfIdWg26, param.getRfId())
|
|
||||||
.or()
|
|
||||||
.like(Sign::getRfIdWg34, param.getRfId())
|
|
||||||
)
|
|
||||||
.like(StrUtil.isNotBlank(param.getRealName()), Sign::getRealName, param.getRealName())
|
|
||||||
.like(StrUtil.isNotBlank(param.getMemberNumber()), Sign::getMemberNumber, param.getMemberNumber())
|
|
||||||
.like(StrUtil.isNotBlank(param.getNameShort()), Sign::getNameShort, param.getNameShort())
|
|
||||||
.eq(StrUtil.isNotBlank(param.getGender()), Sign::getGender, param.getGender())
|
|
||||||
.eq(StrUtil.isNotBlank(param.getCountry()), Sign::getCountry, param.getCountry())
|
|
||||||
.eq(StrUtil.isNotBlank(param.getProvince()), Sign::getProvince, param.getProvince())
|
|
||||||
.eq(StrUtil.isNotBlank(param.getCity()), Sign::getCity, param.getCity())
|
|
||||||
.eq(StrUtil.isNotBlank(param.getDistrict()), Sign::getDistrict, param.getDistrict())
|
|
||||||
.like(StrUtil.isNotBlank(param.getAddress()), Sign::getAddress, param.getAddress())
|
|
||||||
.eq(StrUtil.isNotBlank(param.getPeopleType()), Sign::getPeopleType, param.getPeopleType())
|
|
||||||
.ge(ObjUtil.isNotNull(param.getSignStartDateTime()), Sign::getSignDatetime, param.getSignStartDateTime())
|
|
||||||
.le(ObjUtil.isNotNull(param.getSignEndDateTime()), Sign::getSignDatetime, param.getSignEndDateTime())
|
|
||||||
.orderByDesc(Sign::getPlayerPic)
|
|
||||||
.orderByDesc(Sign::getSignDatetime)
|
|
||||||
);
|
|
||||||
return Result.data(SignAdminWrapper.INSTANCE.toDto(paged));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
package cn.workde.module.nfc.service;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
||||||
import cn.workde.module.nfc.mapper.UserMapper;
|
|
||||||
import cn.workde.module.nfc.entity.User;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 会员表(User)表服务实现类
|
|
||||||
*
|
|
||||||
* @author makejava
|
|
||||||
* @since 2024-05-20 14:50:12
|
|
||||||
*/
|
|
||||||
@Service("userService")
|
|
||||||
public class UserService extends ServiceImpl<UserMapper, User> implements IService<User> {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,55 +0,0 @@
|
||||||
package cn.workde.module.nfc.util;
|
|
||||||
|
|
||||||
import cn.hutool.core.util.HexUtil;
|
|
||||||
|
|
||||||
public class WGUtils {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 16进制转大端码WG26
|
|
||||||
*
|
|
||||||
* @param hex16 16进制
|
|
||||||
* @return WG26
|
|
||||||
*/
|
|
||||||
public static String Hex16ToWG26(String hex16) {
|
|
||||||
String str = hex16;
|
|
||||||
int size = str.length() / 2;
|
|
||||||
StringBuilder newStr = new StringBuilder();
|
|
||||||
for (int i = size; i > 0; i--) {
|
|
||||||
newStr.append(str, (i - 1) * 2, i * 2);
|
|
||||||
}
|
|
||||||
str = newStr.toString();
|
|
||||||
String tmp = ("000000000" + str).substring(("000000000" + str).length() - 8);
|
|
||||||
tmp = tmp.substring(tmp.length() - 6);
|
|
||||||
String tmp1 = tmp.substring(0, 2);
|
|
||||||
int ch1 = Integer.parseInt(tmp1, 16);
|
|
||||||
tmp1 = ("000" + ch1).substring(("000" + ch1).length() - 3);
|
|
||||||
str = str.substring(str.length() - 4);
|
|
||||||
int ch2 = Integer.parseInt(str, 16);
|
|
||||||
str = "00000" + ch2;
|
|
||||||
str = str.substring(str.length() - 5);
|
|
||||||
str = tmp1 + str;
|
|
||||||
System.out.println(str);
|
|
||||||
return str;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* WG26转WG34
|
|
||||||
*
|
|
||||||
* @param wg26 WG26
|
|
||||||
* @return WG34
|
|
||||||
*/
|
|
||||||
public static String WG26ToWG34(String wg26) {
|
|
||||||
String str = Integer.parseInt(wg26) + "";
|
|
||||||
String tmp = ("00000000" + str).substring(("00000000" + str).length() - 8);
|
|
||||||
String tmp1 = tmp.substring(0, 3);
|
|
||||||
tmp1 = HexUtil.toHex(Integer.parseInt(tmp1));
|
|
||||||
tmp = tmp.substring(tmp.length() - 5);
|
|
||||||
String tmp2 = HexUtil.toHex(Integer.parseInt(tmp));
|
|
||||||
tmp2 = ("00000000" + tmp2).substring(("00000000" + tmp2).length() - 4);
|
|
||||||
System.out.println(tmp2);
|
|
||||||
tmp1 = tmp1 + tmp2;
|
|
||||||
String result = Integer.parseInt(tmp1, 16) + "";
|
|
||||||
System.out.println("结果:" + result);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,91 +0,0 @@
|
||||||
package cn.workde.module.nfc.vo;
|
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import jakarta.validation.constraints.NotNull;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
@Data
|
|
||||||
public class PeopleParam {
|
|
||||||
/**
|
|
||||||
* 页码
|
|
||||||
*/
|
|
||||||
@Schema(description = "页码")
|
|
||||||
@NotNull(message = "页码不能为空")
|
|
||||||
private Integer page;
|
|
||||||
/**
|
|
||||||
* 每页数量
|
|
||||||
*/
|
|
||||||
@Schema(description = "每页数量")
|
|
||||||
@NotNull(message = "每页数量不能为空")
|
|
||||||
private Integer pageSize;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* NFC 卡号
|
|
||||||
*/
|
|
||||||
@Schema(description = "NFC 卡号")
|
|
||||||
private String rfId;
|
|
||||||
/**
|
|
||||||
* NFC 状态
|
|
||||||
*/
|
|
||||||
@Schema(description = "NFC 状态")
|
|
||||||
private Integer rfStatus;
|
|
||||||
/**
|
|
||||||
* 是否绑定
|
|
||||||
*/
|
|
||||||
@Schema(description = "是否绑定")
|
|
||||||
private Boolean bind;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 人员类型
|
|
||||||
*/
|
|
||||||
@Schema(description = "人员类型")
|
|
||||||
private String peopleType;
|
|
||||||
/**
|
|
||||||
* 姓名
|
|
||||||
*/
|
|
||||||
@Schema(description = "姓名")
|
|
||||||
private String realName;
|
|
||||||
/**
|
|
||||||
* 参赛ID
|
|
||||||
*/
|
|
||||||
@Schema(description = "参赛ID")
|
|
||||||
private String memberNumber;
|
|
||||||
/**
|
|
||||||
* 队伍简称
|
|
||||||
*/
|
|
||||||
@Schema(description = "队伍简称")
|
|
||||||
private String nameShort;
|
|
||||||
/**
|
|
||||||
* 性别
|
|
||||||
*/
|
|
||||||
@Schema(description = "性别")
|
|
||||||
private String gender;
|
|
||||||
/**
|
|
||||||
* 省
|
|
||||||
*/
|
|
||||||
@Schema(description = "省")
|
|
||||||
private String province;
|
|
||||||
/**
|
|
||||||
* 市
|
|
||||||
*/
|
|
||||||
@Schema(description = "市")
|
|
||||||
private String city;
|
|
||||||
/**
|
|
||||||
* 区
|
|
||||||
*/
|
|
||||||
@Schema(description = "区")
|
|
||||||
private String district;
|
|
||||||
/**
|
|
||||||
* 详细地址
|
|
||||||
*/
|
|
||||||
@Schema(description = "详细地址")
|
|
||||||
private String address;
|
|
||||||
/**
|
|
||||||
* 国籍
|
|
||||||
*/
|
|
||||||
@Schema(description = "国籍")
|
|
||||||
private String country;
|
|
||||||
}
|
|
|
@ -1,63 +0,0 @@
|
||||||
package cn.workde.module.nfc.vo;
|
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
@Data
|
|
||||||
public class PeopleVo {
|
|
||||||
/**
|
|
||||||
* 人员类型
|
|
||||||
*/
|
|
||||||
@Schema(description = "人员类型")
|
|
||||||
private String peopleType;
|
|
||||||
/**
|
|
||||||
* 姓名
|
|
||||||
*/
|
|
||||||
@Schema(description = "姓名")
|
|
||||||
private String realName;
|
|
||||||
/**
|
|
||||||
* 参赛ID
|
|
||||||
*/
|
|
||||||
@Schema(description = "参赛ID")
|
|
||||||
private String memberNumber;
|
|
||||||
/**
|
|
||||||
* 队伍简称
|
|
||||||
*/
|
|
||||||
@Schema(description = "队伍简称")
|
|
||||||
private String nameShort;
|
|
||||||
/**
|
|
||||||
* 性别
|
|
||||||
*/
|
|
||||||
@Schema(description = "性别")
|
|
||||||
private String gender;
|
|
||||||
/**
|
|
||||||
* 省
|
|
||||||
*/
|
|
||||||
@Schema(description = "省")
|
|
||||||
private String province;
|
|
||||||
/**
|
|
||||||
* 市
|
|
||||||
*/
|
|
||||||
@Schema(description = "市")
|
|
||||||
private String city;
|
|
||||||
/**
|
|
||||||
* 区
|
|
||||||
*/
|
|
||||||
@Schema(description = "区")
|
|
||||||
private String district;
|
|
||||||
/**
|
|
||||||
* 详细地址
|
|
||||||
*/
|
|
||||||
@Schema(description = "详细地址")
|
|
||||||
private String address;
|
|
||||||
/**
|
|
||||||
* 国籍
|
|
||||||
*/
|
|
||||||
@Schema(description = "国籍")
|
|
||||||
private String country;
|
|
||||||
/**
|
|
||||||
* 飞手照片
|
|
||||||
*/
|
|
||||||
@Schema(description = "飞手照片")
|
|
||||||
private String playerPic;
|
|
||||||
}
|
|
|
@ -1,83 +0,0 @@
|
||||||
package cn.workde.module.nfc.vo;
|
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import jakarta.validation.constraints.NotNull;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
@Data
|
|
||||||
public class PlayerVo {
|
|
||||||
/**
|
|
||||||
* 页码
|
|
||||||
*/
|
|
||||||
@Schema(description = "页码")
|
|
||||||
@NotNull(message = "页码不能为空")
|
|
||||||
private Integer page;
|
|
||||||
/**
|
|
||||||
* 每页数量
|
|
||||||
*/
|
|
||||||
@Schema(description = "每页数量")
|
|
||||||
@NotNull(message = "每页数量不能为空")
|
|
||||||
private Integer pageSize;
|
|
||||||
/**
|
|
||||||
* 姓名
|
|
||||||
*/
|
|
||||||
@Schema(description = "姓名")
|
|
||||||
private String realName;
|
|
||||||
/**
|
|
||||||
* 参赛ID
|
|
||||||
*/
|
|
||||||
@Schema(description = "参赛ID")
|
|
||||||
private String memberNumber;
|
|
||||||
/**
|
|
||||||
* 队伍简称
|
|
||||||
*/
|
|
||||||
@Schema(description = "队伍简称")
|
|
||||||
private String nameShort;
|
|
||||||
/**
|
|
||||||
* 性别 0男 1女
|
|
||||||
*/
|
|
||||||
@Schema(description = "性别 0男 1女")
|
|
||||||
private String gender;
|
|
||||||
/**
|
|
||||||
* 省
|
|
||||||
*/
|
|
||||||
@Schema(description = "省")
|
|
||||||
private String province;
|
|
||||||
/**
|
|
||||||
* 市
|
|
||||||
*/
|
|
||||||
@Schema(description = "市")
|
|
||||||
private String city;
|
|
||||||
/**
|
|
||||||
* 区
|
|
||||||
*/
|
|
||||||
@Schema(description = "区")
|
|
||||||
private String district;
|
|
||||||
/**
|
|
||||||
* 详细地址
|
|
||||||
*/
|
|
||||||
@Schema(description = "详细地址")
|
|
||||||
private String address;
|
|
||||||
/**
|
|
||||||
* 国籍
|
|
||||||
*/
|
|
||||||
@Schema(description = "国籍")
|
|
||||||
private String country;
|
|
||||||
/**
|
|
||||||
* NFC 卡号
|
|
||||||
*/
|
|
||||||
@Schema(description = "NFC 卡号")
|
|
||||||
private String rfId;
|
|
||||||
/**
|
|
||||||
* NFC 状态
|
|
||||||
*/
|
|
||||||
@Schema(description = "NFC 状态")
|
|
||||||
private Integer rfStatus;
|
|
||||||
/**
|
|
||||||
* 是否绑定
|
|
||||||
*/
|
|
||||||
@Schema(description = "是否绑定")
|
|
||||||
private Boolean bind;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,81 +0,0 @@
|
||||||
package cn.workde.module.nfc.vo;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.Data;
|
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
@Data
|
|
||||||
public class PlayersInspectionParam {
|
|
||||||
/**
|
|
||||||
* NFC卡号
|
|
||||||
*/
|
|
||||||
@Schema(description = "NFC卡号")
|
|
||||||
private String rfId;
|
|
||||||
/**
|
|
||||||
* 姓名
|
|
||||||
*/
|
|
||||||
@Schema(description = "姓名")
|
|
||||||
private String realName;
|
|
||||||
/**
|
|
||||||
* 参赛ID
|
|
||||||
*/
|
|
||||||
@Schema(description = "参赛ID")
|
|
||||||
private String memberNumber;
|
|
||||||
/**
|
|
||||||
* 队伍简称
|
|
||||||
*/
|
|
||||||
@Schema(description = "队伍简称")
|
|
||||||
private String nameShort;
|
|
||||||
/**
|
|
||||||
* 性别
|
|
||||||
*/
|
|
||||||
@Schema(description = "性别")
|
|
||||||
private String gender;
|
|
||||||
/**
|
|
||||||
* 省
|
|
||||||
*/
|
|
||||||
@Schema(description = "省")
|
|
||||||
private String province;
|
|
||||||
/**
|
|
||||||
* 市
|
|
||||||
*/
|
|
||||||
@Schema(description = "市")
|
|
||||||
private String city;
|
|
||||||
/**
|
|
||||||
* 区
|
|
||||||
*/
|
|
||||||
@Schema(description = "区")
|
|
||||||
private String district;
|
|
||||||
/**
|
|
||||||
* 详细地址
|
|
||||||
*/
|
|
||||||
@Schema(description = "详细地址")
|
|
||||||
private String address;
|
|
||||||
/**
|
|
||||||
* 国籍
|
|
||||||
*/
|
|
||||||
@Schema(description = "国籍")
|
|
||||||
private String country;
|
|
||||||
/**
|
|
||||||
* 是否通过
|
|
||||||
*/
|
|
||||||
@Schema(description = "是否通过")
|
|
||||||
private Boolean status;
|
|
||||||
/**
|
|
||||||
* 检录时间开始时间
|
|
||||||
*/
|
|
||||||
@Schema(description = "检录时间开始时间")
|
|
||||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
|
||||||
private Date inspectionStartDateTime;
|
|
||||||
/**
|
|
||||||
* 检录时间结束时间
|
|
||||||
*/
|
|
||||||
@Schema(description = "检录时间结束时间")
|
|
||||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
|
||||||
private Date inspectionEndDateTime;
|
|
||||||
}
|
|
|
@ -1,76 +0,0 @@
|
||||||
package cn.workde.module.nfc.vo;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import jakarta.validation.constraints.NotBlank;
|
|
||||||
import jakarta.validation.constraints.NotNull;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@Data
|
|
||||||
public class PushGroupVo {
|
|
||||||
|
|
||||||
@NotBlank(message = "请选择标题")
|
|
||||||
@JsonProperty("title")
|
|
||||||
@Schema(description = "标题")
|
|
||||||
private String title;
|
|
||||||
|
|
||||||
@NotNull(message = "请选择排序")
|
|
||||||
@JsonProperty("order_by")
|
|
||||||
@Schema(description = "排序")
|
|
||||||
private Boolean orderBy;
|
|
||||||
|
|
||||||
@NotNull(message = "请选择分组")
|
|
||||||
@JsonProperty("groups")
|
|
||||||
@Schema(description = "分组集合")
|
|
||||||
private List<Group> groups;
|
|
||||||
|
|
||||||
@Data
|
|
||||||
public static class Group {
|
|
||||||
|
|
||||||
@NotBlank(message = "请选择分组编号")
|
|
||||||
@JsonProperty("group_no")
|
|
||||||
@Schema(description = "分组编号")
|
|
||||||
private String groupNo;
|
|
||||||
|
|
||||||
@NotNull(message = "请选择排序")
|
|
||||||
@JsonProperty("sort_no")
|
|
||||||
@Schema(description = "排序")
|
|
||||||
private Integer sortNo;
|
|
||||||
|
|
||||||
@NotBlank(message = "请选择分组名称,中文名称")
|
|
||||||
@JsonProperty("group_name")
|
|
||||||
@Schema(description = "分组名称,中文名称")
|
|
||||||
private String groupName;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 赛事id
|
|
||||||
*/
|
|
||||||
@NotBlank(message = "请选择赛事")
|
|
||||||
@JsonProperty("match_id")
|
|
||||||
@Schema(description = "赛事id")
|
|
||||||
private String matchId;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 赛程
|
|
||||||
*/
|
|
||||||
@NotBlank(message = "请选择赛程")
|
|
||||||
@JsonProperty("course")
|
|
||||||
@Schema(description = "赛程")
|
|
||||||
private String course;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 轮次
|
|
||||||
*/
|
|
||||||
@NotBlank(message = "请选择轮次")
|
|
||||||
@JsonProperty("round")
|
|
||||||
@Schema(description = "轮次")
|
|
||||||
private String round;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,81 +0,0 @@
|
||||||
package cn.workde.module.nfc.vo;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.Data;
|
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
@Data
|
|
||||||
public class SignAdminParam {
|
|
||||||
/**
|
|
||||||
* NFC卡号
|
|
||||||
*/
|
|
||||||
@Schema(description = "NFC卡号")
|
|
||||||
private String rfId;
|
|
||||||
/**
|
|
||||||
* 姓名
|
|
||||||
*/
|
|
||||||
@Schema(description = "姓名")
|
|
||||||
private String realName;
|
|
||||||
/**
|
|
||||||
* 参赛ID
|
|
||||||
*/
|
|
||||||
@Schema(description = "参赛ID")
|
|
||||||
private String memberNumber;
|
|
||||||
/**
|
|
||||||
* 队伍简称
|
|
||||||
*/
|
|
||||||
@Schema(description = "队伍简称")
|
|
||||||
private String nameShort;
|
|
||||||
/**
|
|
||||||
* 性别
|
|
||||||
*/
|
|
||||||
@Schema(description = "性别")
|
|
||||||
private String gender;
|
|
||||||
/**
|
|
||||||
* 省
|
|
||||||
*/
|
|
||||||
@Schema(description = "省")
|
|
||||||
private String province;
|
|
||||||
/**
|
|
||||||
* 市
|
|
||||||
*/
|
|
||||||
@Schema(description = "市")
|
|
||||||
private String city;
|
|
||||||
/**
|
|
||||||
* 区
|
|
||||||
*/
|
|
||||||
@Schema(description = "区")
|
|
||||||
private String district;
|
|
||||||
/**
|
|
||||||
* 详细地址
|
|
||||||
*/
|
|
||||||
@Schema(description = "详细地址")
|
|
||||||
private String address;
|
|
||||||
/**
|
|
||||||
* 国籍
|
|
||||||
*/
|
|
||||||
@Schema(description = "国籍")
|
|
||||||
private String country;
|
|
||||||
/**
|
|
||||||
* 人员类型
|
|
||||||
*/
|
|
||||||
@Schema(description = "人员类型")
|
|
||||||
private String peopleType;
|
|
||||||
/**
|
|
||||||
* 签到开始时间
|
|
||||||
*/
|
|
||||||
@Schema(description = "签到开始时间")
|
|
||||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
|
||||||
private Date signStartDateTime;
|
|
||||||
/**
|
|
||||||
* 签到结束时间
|
|
||||||
*/
|
|
||||||
@Schema(description = "签到结束时间")
|
|
||||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
|
||||||
private Date signEndDateTime;
|
|
||||||
}
|
|
|
@ -1,138 +0,0 @@
|
||||||
package cn.workde.module.nfc.webSocket;
|
|
||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
|
||||||
import cn.workde.module.nfc.config.WebSocketConfig;
|
|
||||||
import jakarta.websocket.*;
|
|
||||||
import jakarta.websocket.server.PathParam;
|
|
||||||
import jakarta.websocket.server.ServerEndpoint;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.*;
|
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @ServerEndpoint 注解是一个类层次的注解,它的功能主要是将目前的类定义成一个websocket服务器端,
|
|
||||||
* 注解的值将被用于监听用户连接的终端访问URL地址,客户端可以通过这个URL来连接到WebSocket服务器端
|
|
||||||
*/
|
|
||||||
@Slf4j
|
|
||||||
@Component
|
|
||||||
@ServerEndpoint(value = "/notice/{userId}", configurator = WebSocketConfig.class)
|
|
||||||
public class NoticeWebSocket {
|
|
||||||
|
|
||||||
//记录连接的客户端
|
|
||||||
public static Map<String, Session> clients = new ConcurrentHashMap<>();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* userId关联sid(解决同一用户id,在多个web端连接的问题)
|
|
||||||
*/
|
|
||||||
public static Map<String, Set<String>> conns = new ConcurrentHashMap<>();
|
|
||||||
|
|
||||||
private String sid = null;
|
|
||||||
|
|
||||||
private String userId;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 判断是否连接的方法
|
|
||||||
*
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public static boolean isServerClose() {
|
|
||||||
if (NoticeWebSocket.clients.values().size() == 0) {
|
|
||||||
log.info("已断开");
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
log.info("已连接");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 发送给所有用户
|
|
||||||
*/
|
|
||||||
public static void sendAllMessage(String message) {
|
|
||||||
for (Session session : NoticeWebSocket.clients.values()) {
|
|
||||||
try {
|
|
||||||
session.getBasicRemote().sendText(message);
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据用户id发送给某一个用户
|
|
||||||
**/
|
|
||||||
public static void sendMessageByUserId(String userId, String message) {
|
|
||||||
if (StrUtil.isNotBlank(userId)) {
|
|
||||||
Set<String> clientSet = conns.get(userId);
|
|
||||||
if (clientSet != null) {
|
|
||||||
Iterator<String> iterator = clientSet.iterator();
|
|
||||||
while (iterator.hasNext()) {
|
|
||||||
String sid = iterator.next();
|
|
||||||
Session session = clients.get(sid);
|
|
||||||
if (session != null) {
|
|
||||||
try {
|
|
||||||
session.getBasicRemote().sendText(message);
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 连接成功后调用的方法
|
|
||||||
*
|
|
||||||
* @param session
|
|
||||||
* @param userId
|
|
||||||
*/
|
|
||||||
@OnOpen
|
|
||||||
public void onOpen(Session session, @PathParam("userId") String userId) {
|
|
||||||
this.sid = UUID.randomUUID().toString();
|
|
||||||
this.userId = userId;
|
|
||||||
clients.put(this.sid, session);
|
|
||||||
|
|
||||||
Set<String> clientSet = conns.get(userId);
|
|
||||||
if (clientSet == null) {
|
|
||||||
clientSet = new HashSet<>();
|
|
||||||
conns.put(userId, clientSet);
|
|
||||||
}
|
|
||||||
clientSet.add(this.sid);
|
|
||||||
log.info(this.sid + "连接开启!");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 连接关闭调用的方法
|
|
||||||
*/
|
|
||||||
@OnClose
|
|
||||||
public void onClose() {
|
|
||||||
log.info(this.sid + "连接断开!");
|
|
||||||
clients.remove(this.sid);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 收到客户端消息后调用的方法
|
|
||||||
*
|
|
||||||
* @param message
|
|
||||||
* @param session
|
|
||||||
*/
|
|
||||||
@OnMessage
|
|
||||||
public void onMessage(String message, Session session, @PathParam("userId") String userId) {
|
|
||||||
log.info("收到来自窗口" + this.userId + "的信息:" + message);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 发生错误时的回调函数
|
|
||||||
*
|
|
||||||
* @param error
|
|
||||||
*/
|
|
||||||
@OnError
|
|
||||||
public void onError(Throwable error) {
|
|
||||||
log.info("错误");
|
|
||||||
error.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,52 +0,0 @@
|
||||||
package cn.workde.module.nfc.wrapper;
|
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
|
||||||
import cn.hutool.core.util.ObjUtil;
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
|
||||||
import cn.workde.core.base.BaseWrapper;
|
|
||||||
import cn.workde.module.nfc.dto.PeopleDto;
|
|
||||||
import cn.workde.module.nfc.entity.People;
|
|
||||||
import org.apache.ibatis.annotations.Param;
|
|
||||||
import org.mapstruct.AfterMapping;
|
|
||||||
import org.mapstruct.Mapper;
|
|
||||||
import org.mapstruct.MappingTarget;
|
|
||||||
import org.mapstruct.factory.Mappers;
|
|
||||||
|
|
||||||
@Mapper
|
|
||||||
public interface PeopleWrapper extends BaseWrapper<People, PeopleDto> {
|
|
||||||
PeopleWrapper INSTANCE = Mappers.getMapper(PeopleWrapper.class);
|
|
||||||
|
|
||||||
@AfterMapping
|
|
||||||
default void setOtherField(@Param("obj") People obj, @MappingTarget @Param("dto") PeopleDto dto) {
|
|
||||||
BeanUtil.copyProperties(obj, dto);
|
|
||||||
Integer rfStatus = obj.getRfStatus();
|
|
||||||
if (ObjUtil.isNull(rfStatus)) {
|
|
||||||
dto.setRfStatusName("");
|
|
||||||
} else if (rfStatus == 1) {
|
|
||||||
dto.setRfStatusName("启用");
|
|
||||||
} else {
|
|
||||||
dto.setRfStatusName("停用");
|
|
||||||
}
|
|
||||||
if (StrUtil.isBlank(obj.getRfId())) {
|
|
||||||
dto.setBind(false);
|
|
||||||
dto.setShowBindCard(true);
|
|
||||||
dto.setShowUnBindCard(false);
|
|
||||||
dto.setShowEnable(false);
|
|
||||||
dto.setShowDisable(false);
|
|
||||||
} else {
|
|
||||||
dto.setBind(true);
|
|
||||||
dto.setShowBindCard(false);
|
|
||||||
dto.setShowUnBindCard(true);
|
|
||||||
if (ObjUtil.isNull(rfStatus)) {
|
|
||||||
dto.setShowEnable(false);
|
|
||||||
dto.setShowDisable(false);
|
|
||||||
} else if (rfStatus == 1) {
|
|
||||||
dto.setShowEnable(false);
|
|
||||||
dto.setShowDisable(true);
|
|
||||||
} else {
|
|
||||||
dto.setShowEnable(true);
|
|
||||||
dto.setShowDisable(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,26 +0,0 @@
|
||||||
package cn.workde.module.nfc.wrapper;
|
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
|
||||||
import cn.workde.core.base.BaseWrapper;
|
|
||||||
import cn.workde.module.nfc.dto.PlayersInspectionAdminDto;
|
|
||||||
import cn.workde.module.nfc.entity.PlayersInspection;
|
|
||||||
import org.apache.ibatis.annotations.Param;
|
|
||||||
import org.mapstruct.AfterMapping;
|
|
||||||
import org.mapstruct.Mapper;
|
|
||||||
import org.mapstruct.MappingTarget;
|
|
||||||
import org.mapstruct.factory.Mappers;
|
|
||||||
|
|
||||||
@Mapper
|
|
||||||
public interface PlayersInspectionAdminWrapper extends BaseWrapper<PlayersInspection, PlayersInspectionAdminDto> {
|
|
||||||
|
|
||||||
PlayersInspectionAdminWrapper INSTANCE = Mappers.getMapper(PlayersInspectionAdminWrapper.class);
|
|
||||||
|
|
||||||
@AfterMapping
|
|
||||||
default void setOtherField(@Param("obj") PlayersInspection obj, @MappingTarget @Param("dto") PlayersInspectionAdminDto dto) {
|
|
||||||
BeanUtil.copyProperties(obj, dto);
|
|
||||||
if (StrUtil.isNotBlank(obj.getPlayerPic())) {
|
|
||||||
dto.setPlayerPicFullPath(obj.getPlayerPic().startsWith("http") ? obj.getPlayerPic() : "https://www.fpvone.cn" + obj.getPlayerPic());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,56 +0,0 @@
|
||||||
package cn.workde.module.nfc.wrapper;
|
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
|
||||||
import cn.hutool.core.util.ObjUtil;
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
|
||||||
import cn.workde.core.base.BaseWrapper;
|
|
||||||
import cn.workde.module.nfc.dto.PlayerDto;
|
|
||||||
import cn.workde.module.nfc.dto.PlayersDto;
|
|
||||||
import org.apache.ibatis.annotations.Param;
|
|
||||||
import org.mapstruct.AfterMapping;
|
|
||||||
import org.mapstruct.Mapper;
|
|
||||||
import org.mapstruct.MappingTarget;
|
|
||||||
import org.mapstruct.factory.Mappers;
|
|
||||||
|
|
||||||
@Mapper
|
|
||||||
public interface PlayersWrapper extends BaseWrapper<PlayerDto, PlayersDto> {
|
|
||||||
|
|
||||||
PlayersWrapper INSTANCE = Mappers.getMapper(PlayersWrapper.class);
|
|
||||||
|
|
||||||
@AfterMapping
|
|
||||||
default void setOtherField(@Param("obj") PlayerDto obj, @MappingTarget @Param("dto") PlayersDto dto) {
|
|
||||||
BeanUtil.copyProperties(obj, dto);
|
|
||||||
if(StrUtil.isNotBlank(obj.getPlayerPic())) {
|
|
||||||
dto.setPlayerPicFullPath(obj.getPlayerPic().startsWith("http") ? obj.getPlayerPic() : "https://www.fpvone.cn" + obj.getPlayerPic());
|
|
||||||
}
|
|
||||||
Integer rfStatus = obj.getRfStatus();
|
|
||||||
if (ObjUtil.isNull(rfStatus)) {
|
|
||||||
dto.setRfStatusName("");
|
|
||||||
} else if (rfStatus == 1) {
|
|
||||||
dto.setRfStatusName("启用");
|
|
||||||
} else {
|
|
||||||
dto.setRfStatusName("停用");
|
|
||||||
}
|
|
||||||
if (StrUtil.isBlank(obj.getRfId())) {
|
|
||||||
dto.setBind(false);
|
|
||||||
dto.setShowBindCard(true);
|
|
||||||
dto.setShowUnBindCard(false);
|
|
||||||
dto.setShowEnable(false);
|
|
||||||
dto.setShowDisable(false);
|
|
||||||
} else {
|
|
||||||
dto.setBind(true);
|
|
||||||
dto.setShowBindCard(false);
|
|
||||||
dto.setShowUnBindCard(true);
|
|
||||||
if (ObjUtil.isNull(rfStatus)) {
|
|
||||||
dto.setShowEnable(false);
|
|
||||||
dto.setShowDisable(false);
|
|
||||||
} else if (rfStatus == 1) {
|
|
||||||
dto.setShowEnable(false);
|
|
||||||
dto.setShowDisable(true);
|
|
||||||
} else {
|
|
||||||
dto.setShowEnable(true);
|
|
||||||
dto.setShowDisable(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,27 +0,0 @@
|
||||||
package cn.workde.module.nfc.wrapper;
|
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
|
||||||
import cn.workde.core.base.BaseWrapper;
|
|
||||||
import cn.workde.module.nfc.dto.SignAdminDto;
|
|
||||||
import cn.workde.module.nfc.entity.Sign;
|
|
||||||
import org.apache.ibatis.annotations.Param;
|
|
||||||
import org.mapstruct.AfterMapping;
|
|
||||||
import org.mapstruct.Mapper;
|
|
||||||
import org.mapstruct.MappingTarget;
|
|
||||||
import org.mapstruct.factory.Mappers;
|
|
||||||
|
|
||||||
@Mapper
|
|
||||||
public interface SignAdminWrapper extends BaseWrapper<Sign, SignAdminDto> {
|
|
||||||
SignAdminWrapper INSTANCE = Mappers.getMapper(SignAdminWrapper.class);
|
|
||||||
|
|
||||||
@AfterMapping
|
|
||||||
default void setOtherField(@Param("obj") Sign obj, @MappingTarget @Param("dto") SignAdminDto dto) {
|
|
||||||
BeanUtil.copyProperties(obj, dto);
|
|
||||||
if ("飞手".equals(obj.getPeopleType()) && StrUtil.isNotBlank(obj.getPlayerPic())) {
|
|
||||||
dto.setPlayerPicFullPath(obj.getPlayerPic().startsWith("http") ? obj.getPlayerPic() : "https://www.fpvone.cn" + obj.getPlayerPic());
|
|
||||||
} else if (!"飞手".equals(obj.getPeopleType()) && StrUtil.isNotBlank(obj.getPlayerPic())) {
|
|
||||||
dto.setPlayerPicFullPath(obj.getPlayerPic().startsWith("http") ? obj.getPlayerPic() : "https://jianlu.fpvone.cn" + obj.getPlayerPic());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -5,7 +5,7 @@ spring:
|
||||||
datasource:
|
datasource:
|
||||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||||
type: com.alibaba.druid.pool.DruidDataSource
|
type: com.alibaba.druid.pool.DruidDataSource
|
||||||
url: jdbc:mysql://localhost:3306/club_nfc?useSSL=false&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=UTF8&useInformationSchema=true&autoReconnect=true&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
|
url: jdbc:mysql://localhost:3306/drone_coding?useSSL=false&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=UTF8&useInformationSchema=true&autoReconnect=true&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
|
||||||
username: root
|
username: root
|
||||||
password: Wang09211108
|
password: Wang09211108
|
||||||
druid:
|
druid:
|
||||||
|
|
Loading…
Reference in New Issue