This commit is contained in:
2025-12-05 18:30:31 +08:00
parent 4d5013486c
commit 8d00d67540
12 changed files with 2785 additions and 107 deletions

View File

@@ -29,10 +29,10 @@ YushanConfig:
AcctID: "YSSJ843926726"
Url: "https://api.yushanshuju.com/credit-gw/service"
Alipay:
AppID: "2021004165608254"
PrivateKey: "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPsXuwFJeHAL8CwI0QdD9GP7xQ8eejIoQKg6J3/peu26su68JCtGSRhlDm/7vbLHJcFR6h7at+INoz2juc7SqlmNO7i9wKc3+Ua0487y1G2fCsneRNxTTqbceBZwqjj9/AAN0u5/4nSl0bcqTeMddofdpTGOvwGvIJh6CZgCglnhMZnH4D6H6yiIyZf7Q6k2d/qBpVGK8kluYEtSnf/vEQCHhxRx+/DgTL7V1LjbA3BYoPTELZ15JAj0uIzuxextAtxOm4+Huli0RJFAN3q/to2L1Zs8yYY1gKJyTaPWKsJWBx8zI+gZcC/e45k6CZnGgh1Fn3+Xqkf7eGxJGGHs1fAgMBAAECggEAM2rkApbrvdBDiV2TXK7sMVv/K8vUAmkIbKa7zUpZxqUuNSUBp1LbpcM1UeNyujPGXDLmejUMp55j1igiKr4nA4iTQ0oBm+/GWDqpjV5cijzURUBegIGvtK9Bs4lGok6KVy839l/nbvHKLVcxrZySIv7dz9xcGNfbghN5IVRdiU/kOokNbtwQNC837piG5q4PHL6bzwIUGbrLED/RDmw/IwVMMmZovcQQ2JAuWJBo9CS9LB0Nc3I4MOPNx/0Rl+5URSSfmJAriL5ihlWckocQCUHwhRpSGQ6Q4xAXFYvb8OsApAQG3WU9SciBfs2wg/QfGNFzwQgGFofPcTQg3DTeuQKBgQDUHBTsgoe3WXnGo6qZKw1zA4OtF67IJJoltHo5JtkBRKCNVU3BJ+q+6i/fn0MBwScKQ1mhPjWe3h+qTRT207RRxGaxb6ljATOiU+BxmpHvu6jP+DVYtP5F3M7MCAGqpDAEoXgoAWttxmijqk+5YuLOLe0j/btCmpzuH7zwxSnqlQKBgQCtbTvaS/g+Jeu4Ml6iv7xi5//JCjeTn2wUJpXnNmN0jn+riRwEO81z4GWuOI8WukZHHAnufI6qWk2sLH0gcdLQ/STsMnl2L3NbeUyO8o5w2JSAlnZDYfaFfasGqFkGJrBLqG6bh/Bk1DP3/Bl6iMEwDbmu7Ptoy8ihokng9dEPIwKBgBHdi6WgGO5IiwlAH85m4eseEKkzpXUWICWs3d6SdxS0QxGkbbgnNI6ACyg6sdoj+rXSlmoOY1XOP7yIYYuoqTd542xui0XbhA3YIr9u1XvrwnxB27xtAj3AK2rkAb/ttF2ve/9inznPzGB8p9plidTz6VVuuacSfsVPxwpAkRdBAoGAR7c9Ifd6b1DFGkWSBuEc6RWhG6Si+OPbELYoFRXTqNZoiynGsSV9v2ZTBemTmkVrXGqG3N0bLezr47/9+lW3ZP7ZrubsfWf/3xrZAt/g8V9OgaI2w4SWKfuepsElFzsWeiLroltjmH58Axd3/cjhgpqaZ3DOQjbK/7QZsvJUAlsCgYEAqTQVhKLizM7BvXu1N6Z2K8trfJbiN+f90XhZIRPkIIcom0PnOfXhRtT76MCxz9n+lwf+alOKOfbQFy0pZtWG/eaFSYroQlXL+EfmqlFPXZR6D0NQLeygWAKH8161IQUh2VF3Qkhle6g6ZkyJA3Ev4RmqH2BYGv8hcZTTHsZ3Ic4="
AppID: "2021006115614672"
PrivateKey: "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDJzOKCuHfM2/VYSroIm2TcO/Eoych6wF1FUtPeAoTva+YgHMrEDXt/OvqfNMylvtZYZya4hocZ9KTDA0FwHmFT9RP0tu0hXzNcKLx2U31iwi6Y29f0EwSYHvLIDjLw0XbxownR7iHvoCaXLtHz2S4tcJNB5sew3asOEAMTAKq1z679R/3WETVRPsNl211vhkxUpcL4Ct97s/lVL/cwRFFEi2LajfCVZLqzrlkaQJucGcFQBdbzDd3gDrGtpmQvtmDWoAasg0/Kt7UJ6FPZKbbb9fc0yZAMSkD00jyVfYwq56TGXAP4P+NGhGGd0gbTGHPPA4Dr9zxSuQNAqiYn/mEPAgMBAAECggEBAIfpeOkHqpAL2LsFYTQozI5TxMFu3Zpm8qqc9VrCIZxK9GvOWHYginuPUnpliitbU2uo1XhUCqvdjBZXm/wSSgTMvAsGJMFkJ+g6+2tKIdmg5NdIwbJ+GIsH1QYOIhr1SIHIB/YexzZni3YpL3hnXmV2O4eYEgg501oeSKPEwDTAHy+rbj45ddmvbI/UQcAtl+TdbIt5JtCkCBe0emDT9xIuHYynfb2nuDm+x39k7RvOhLdm2JfR99nl20yFjTB6j7NoP77KXk6mw75PH/Mv2swyxUueRjUrXJUM1kU+PIUtIDklivdaseumL8nueiS2Eblg8zwE9UyvhiN/yDFcs0kCgYEA+QKrOw4kVnkRzqWp4KctWPtMm9fpuvzvIdnTWvRxRppP9wuoDrS9JXGldUnX9exQNExWay9CQlGzg+kkP28eFgY0Aj5muyrTT7IiMu31oOgeNnYiCTtGx2Li+Yo06h6MyRyrlbdgUQCZ5Geq3pE0N1uOPBSOGlFGxKCS6m/BkZ0CgYEAz3b5o+wCBycRyzvgWY66yzYZxQQDdQt67gt8JkHI3onufkyq7iYytHhYNpI/zTtOGoUTq+tEFBPzquQ+/pVRWmYHlIt4SZGIA29c3BEbTxA8UFXdcu0ZV3/RuKot9fhHIWMeK05lDzG81fvGnMONTilDKooNEGNDDVx4fLNR45sCgYEA8Myz6Zfza+wIXF23uZfxMmtR2iMh08FlPsb2rK5WHIB9c9nB2vbNMriD2LhgL2Em7mwj5eL9oESB5L5AX1eFMKcvBDxz++ueDSOmDrovHjtZfDEhGOxJtebat5X/Naf1XUZsZ4u9iJecOlRF2JVyeVYAZfk6shiG5v6hFDSea8ECgYAWPdkRm9Gz1ppvwWGR+F1KP+iPWJjOSYbKUmzi5RaV1Q++dpW0pl+1PVmnsBIq/HqpGS88tSI9TM5IueOPA48PM/UIFdO1f2anh57a8PKOjV0J98qf8Y9P9CIVvBjlT9LAX5Hybpsi/+AQyMdIMybJBF9xBg/Ue+/KVOmN5OOYlQKBgQCKS73P9EXgEjUfI5YxOvr1zEw/go6hFnt6G2i4lEtGUg9FKvNCz082TL6fYVADyoTL4LR8VuOHTNd4XsRTlQEYwWWUNAQxapLtTqRCQDsQhQh9aMJc9a/FAl9k6Zn9fInAy0BLstJBMRLVvTvLXT2EsAfYZVuTuwi0aEQSxkiFjA=="
AlipayPublicKey: "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2CqoCp95w/JV3RT/gzF4/8QmVT1HQNaeW7yUp+mA7x9AbjvlTW/+eRn6oGAL/XhZLjvHD0XjKLVKX0MJVS1aUQHEHEbOJN4Eu8II45OavD4iZISa7Kp9V6AM+i4qTyaeV2wNDnGxHQBaLVUGCfMR+56EK2YpORdE1H9uy72SSQseVb3bmpsV9EW/IJNmcVL/ut3uA1JWAoRmzlQ7ekxg7p8AYXzYPEHQr1tl7W+M4zv9wO9GKZCxIqMA8U3RP5npPfRaCfIRGzXzCqFEEUvWuidOB7frsvN4jiPD07qpL2Bi9LM1X/ee2kC/oM8Uhd7ERZhG8MbZfijZKxgrsDKBcwIDAQAB"
AppCertPath: "etc/merchant/appCertPublicKey_2021004165608254.crt"
AppCertPath: "etc/merchant/appCertPublicKey_2021006115614672.crt"
AlipayCertPath: "etc/merchant/alipayCertPublicKey_RSA2.crt"
AlipayRootCertPath: "etc/merchant/alipayRootCert.crt"
IsProduction: true

View File

@@ -22,10 +22,10 @@ VerifyCode:
Encrypt:
SecretKey: "ff83609b2b24fc73196aac3d3dfb874f"
Alipay:
AppID: "2021004165608254"
PrivateKey: "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPsXuwFJeHAL8CwI0QdD9GP7xQ8eejIoQKg6J3/peu26su68JCtGSRhlDm/7vbLHJcFR6h7at+INoz2juc7SqlmNO7i9wKc3+Ua0487y1G2fCsneRNxTTqbceBZwqjj9/AAN0u5/4nSl0bcqTeMddofdpTGOvwGvIJh6CZgCglnhMZnH4D6H6yiIyZf7Q6k2d/qBpVGK8kluYEtSnf/vEQCHhxRx+/DgTL7V1LjbA3BYoPTELZ15JAj0uIzuxextAtxOm4+Huli0RJFAN3q/to2L1Zs8yYY1gKJyTaPWKsJWBx8zI+gZcC/e45k6CZnGgh1Fn3+Xqkf7eGxJGGHs1fAgMBAAECggEAM2rkApbrvdBDiV2TXK7sMVv/K8vUAmkIbKa7zUpZxqUuNSUBp1LbpcM1UeNyujPGXDLmejUMp55j1igiKr4nA4iTQ0oBm+/GWDqpjV5cijzURUBegIGvtK9Bs4lGok6KVy839l/nbvHKLVcxrZySIv7dz9xcGNfbghN5IVRdiU/kOokNbtwQNC837piG5q4PHL6bzwIUGbrLED/RDmw/IwVMMmZovcQQ2JAuWJBo9CS9LB0Nc3I4MOPNx/0Rl+5URSSfmJAriL5ihlWckocQCUHwhRpSGQ6Q4xAXFYvb8OsApAQG3WU9SciBfs2wg/QfGNFzwQgGFofPcTQg3DTeuQKBgQDUHBTsgoe3WXnGo6qZKw1zA4OtF67IJJoltHo5JtkBRKCNVU3BJ+q+6i/fn0MBwScKQ1mhPjWe3h+qTRT207RRxGaxb6ljATOiU+BxmpHvu6jP+DVYtP5F3M7MCAGqpDAEoXgoAWttxmijqk+5YuLOLe0j/btCmpzuH7zwxSnqlQKBgQCtbTvaS/g+Jeu4Ml6iv7xi5//JCjeTn2wUJpXnNmN0jn+riRwEO81z4GWuOI8WukZHHAnufI6qWk2sLH0gcdLQ/STsMnl2L3NbeUyO8o5w2JSAlnZDYfaFfasGqFkGJrBLqG6bh/Bk1DP3/Bl6iMEwDbmu7Ptoy8ihokng9dEPIwKBgBHdi6WgGO5IiwlAH85m4eseEKkzpXUWICWs3d6SdxS0QxGkbbgnNI6ACyg6sdoj+rXSlmoOY1XOP7yIYYuoqTd542xui0XbhA3YIr9u1XvrwnxB27xtAj3AK2rkAb/ttF2ve/9inznPzGB8p9plidTz6VVuuacSfsVPxwpAkRdBAoGAR7c9Ifd6b1DFGkWSBuEc6RWhG6Si+OPbELYoFRXTqNZoiynGsSV9v2ZTBemTmkVrXGqG3N0bLezr47/9+lW3ZP7ZrubsfWf/3xrZAt/g8V9OgaI2w4SWKfuepsElFzsWeiLroltjmH58Axd3/cjhgpqaZ3DOQjbK/7QZsvJUAlsCgYEAqTQVhKLizM7BvXu1N6Z2K8trfJbiN+f90XhZIRPkIIcom0PnOfXhRtT76MCxz9n+lwf+alOKOfbQFy0pZtWG/eaFSYroQlXL+EfmqlFPXZR6D0NQLeygWAKH8161IQUh2VF3Qkhle6g6ZkyJA3Ev4RmqH2BYGv8hcZTTHsZ3Ic4="
AppID: "2021006115614672"
PrivateKey: "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDJzOKCuHfM2/VYSroIm2TcO/Eoych6wF1FUtPeAoTva+YgHMrEDXt/OvqfNMylvtZYZya4hocZ9KTDA0FwHmFT9RP0tu0hXzNcKLx2U31iwi6Y29f0EwSYHvLIDjLw0XbxownR7iHvoCaXLtHz2S4tcJNB5sew3asOEAMTAKq1z679R/3WETVRPsNl211vhkxUpcL4Ct97s/lVL/cwRFFEi2LajfCVZLqzrlkaQJucGcFQBdbzDd3gDrGtpmQvtmDWoAasg0/Kt7UJ6FPZKbbb9fc0yZAMSkD00jyVfYwq56TGXAP4P+NGhGGd0gbTGHPPA4Dr9zxSuQNAqiYn/mEPAgMBAAECggEBAIfpeOkHqpAL2LsFYTQozI5TxMFu3Zpm8qqc9VrCIZxK9GvOWHYginuPUnpliitbU2uo1XhUCqvdjBZXm/wSSgTMvAsGJMFkJ+g6+2tKIdmg5NdIwbJ+GIsH1QYOIhr1SIHIB/YexzZni3YpL3hnXmV2O4eYEgg501oeSKPEwDTAHy+rbj45ddmvbI/UQcAtl+TdbIt5JtCkCBe0emDT9xIuHYynfb2nuDm+x39k7RvOhLdm2JfR99nl20yFjTB6j7NoP77KXk6mw75PH/Mv2swyxUueRjUrXJUM1kU+PIUtIDklivdaseumL8nueiS2Eblg8zwE9UyvhiN/yDFcs0kCgYEA+QKrOw4kVnkRzqWp4KctWPtMm9fpuvzvIdnTWvRxRppP9wuoDrS9JXGldUnX9exQNExWay9CQlGzg+kkP28eFgY0Aj5muyrTT7IiMu31oOgeNnYiCTtGx2Li+Yo06h6MyRyrlbdgUQCZ5Geq3pE0N1uOPBSOGlFGxKCS6m/BkZ0CgYEAz3b5o+wCBycRyzvgWY66yzYZxQQDdQt67gt8JkHI3onufkyq7iYytHhYNpI/zTtOGoUTq+tEFBPzquQ+/pVRWmYHlIt4SZGIA29c3BEbTxA8UFXdcu0ZV3/RuKot9fhHIWMeK05lDzG81fvGnMONTilDKooNEGNDDVx4fLNR45sCgYEA8Myz6Zfza+wIXF23uZfxMmtR2iMh08FlPsb2rK5WHIB9c9nB2vbNMriD2LhgL2Em7mwj5eL9oESB5L5AX1eFMKcvBDxz++ueDSOmDrovHjtZfDEhGOxJtebat5X/Naf1XUZsZ4u9iJecOlRF2JVyeVYAZfk6shiG5v6hFDSea8ECgYAWPdkRm9Gz1ppvwWGR+F1KP+iPWJjOSYbKUmzi5RaV1Q++dpW0pl+1PVmnsBIq/HqpGS88tSI9TM5IueOPA48PM/UIFdO1f2anh57a8PKOjV0J98qf8Y9P9CIVvBjlT9LAX5Hybpsi/+AQyMdIMybJBF9xBg/Ue+/KVOmN5OOYlQKBgQCKS73P9EXgEjUfI5YxOvr1zEw/go6hFnt6G2i4lEtGUg9FKvNCz082TL6fYVADyoTL4LR8VuOHTNd4XsRTlQEYwWWUNAQxapLtTqRCQDsQhQh9aMJc9a/FAl9k6Zn9fInAy0BLstJBMRLVvTvLXT2EsAfYZVuTuwi0aEQSxkiFjA=="
AlipayPublicKey: "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2CqoCp95w/JV3RT/gzF4/8QmVT1HQNaeW7yUp+mA7x9AbjvlTW/+eRn6oGAL/XhZLjvHD0XjKLVKX0MJVS1aUQHEHEbOJN4Eu8II45OavD4iZISa7Kp9V6AM+i4qTyaeV2wNDnGxHQBaLVUGCfMR+56EK2YpORdE1H9uy72SSQseVb3bmpsV9EW/IJNmcVL/ut3uA1JWAoRmzlQ7ekxg7p8AYXzYPEHQr1tl7W+M4zv9wO9GKZCxIqMA8U3RP5npPfRaCfIRGzXzCqFEEUvWuidOB7frsvN4jiPD07qpL2Bi9LM1X/ee2kC/oM8Uhd7ERZhG8MbZfijZKxgrsDKBcwIDAQAB"
AppCertPath: "etc/merchant/appCertPublicKey_2021004165608254.crt"
AppCertPath: "etc/merchant/appCertPublicKey_2021006115614672.crt"
AlipayCertPath: "etc/merchant/alipayCertPublicKey_RSA2.crt"
AlipayRootCertPath: "etc/merchant/alipayRootCert.crt"
IsProduction: true

View File

@@ -1,21 +1,21 @@
-----BEGIN CERTIFICATE-----
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
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIE4jCCAsqgAwIBAgIIYsSr5bKAMl8wDQYJKoZIhvcNAQELBQAwejELMAkGA1UEBhMCQ04xFjAU

View File

@@ -1,23 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIEpzCCA4+gAwIBAgIQICUEEJni7ld+YaII5tXCjTANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UE
BhMCQ04xFjAUBgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNVBAsMF0NlcnRpZmljYXRpb24gQXV0
aG9yaXR5MTkwNwYDVQQDDDBBbnQgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IENs
YXNzIDEgUjEwHhcNMjUwNDEwMDQwNTQyWhcNMzAwNDA5MDQwNTQyWjBuMQswCQYDVQQGEwJDTjEz
MDEGA1UECgwq5rW35Y2X55yB5a2m5a6H5oCd572R57uc56eR5oqA5pyJ6ZmQ5YWs5Y+4MQ8wDQYD
VQQLDAZBbGlwYXkxGTAXBgNVBAMMEDIwODg4NDE4NzM0NTQwNTMwggEiMA0GCSqGSIb3DQEBAQUA
A4IBDwAwggEKAoIBAQCPsXuwFJeHAL8CwI0QdD9GP7xQ8eejIoQKg6J3/peu26su68JCtGSRhlDm
/7vbLHJcFR6h7at+INoz2juc7SqlmNO7i9wKc3+Ua0487y1G2fCsneRNxTTqbceBZwqjj9/AAN0u
5/4nSl0bcqTeMddofdpTGOvwGvIJh6CZgCglnhMZnH4D6H6yiIyZf7Q6k2d/qBpVGK8kluYEtSnf
/vEQCHhxRx+/DgTL7V1LjbA3BYoPTELZ15JAj0uIzuxextAtxOm4+Huli0RJFAN3q/to2L1Zs8yY
Y1gKJyTaPWKsJWBx8zI+gZcC/e45k6CZnGgh1Fn3+Xqkf7eGxJGGHs1fAgMBAAGjggEqMIIBJjAf
BgNVHSMEGDAWgBRxB+IEYRbk5fJl6zEPyeD0PJrVkTAdBgNVHQ4EFgQUb4Kgf8qXsgDnWyG5deLm
Rw1DhPowQAYDVR0gBDkwNzA1BgdggRwBbgEBMCowKAYIKwYBBQUHAgEWHGh0dHA6Ly9jYS5hbGlw
YXkuY29tL2Nwcy5wZGYwDgYDVR0PAQH/BAQDAgbAMDAGA1UdHwQpMCcwJaAjoCGGH2h0dHA6Ly9j
YS5hbGlwYXkuY29tL2NybDEwMC5jcmwwYAYIKwYBBQUHAQEEVDBSMCgGCCsGAQUFBzAChhxodHRw
Oi8vY2EuYWxpcGF5LmNvbS9jYTYuY2VyMCYGCCsGAQUFBzABhhpodHRwOi8vY2EuYWxpcGF5LmNv
bTo4MzQwLzANBgkqhkiG9w0BAQsFAAOCAQEAYFgnBMeYL/+DjWpimqTtlGnlDsjPUDOjpZopzSa+
HdL4nxWZBW48K+EzN8x45Ua7b1VKNmHWXe1O3X6W2Cz2H53NslVglzipPnxg9REx3Acr+8spkxWe
oxX9+1xwbSzBnpwG4UayambP0I6L2V9YQxSiLlLr6t2VuDxwCHVLu83rvnrOdlKjyjZop6oufhC9
29BqfVmR6xuZv/VsCRx+BuRqNtHDoOZuP26kRVaHdnZMPPyTVw++cBt5Xh0Pq6vrYr1Nr9Kkp7wy
8RW951YTarYY5rDQ8RdaEFxPc+QWKQujVFQCvvt3ktTzrVa1mCgW/vX5qI0hXdPGGbq0DH3dxg==
-----END CERTIFICATE-----

View File

@@ -0,0 +1,23 @@
-----BEGIN CERTIFICATE-----
MIIEnjCCA4agAwIBAgIQICUSBMps1Bik3MiRXKyhFTANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UE
BhMCQ04xFjAUBgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNVBAsMF0NlcnRpZmljYXRpb24gQXV0
aG9yaXR5MTkwNwYDVQQDDDBBbnQgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IENs
YXNzIDEgUjEwHhcNMjUxMjA0MDg0MzU0WhcNMzAxMjAzMDg0MzU0WjBlMQswCQYDVQQGEwJDTjEq
MCgGA1UECgwh5rW35Y2X5rW35a6H5aSn5pWw5o2u5pyJ6ZmQ5YWs5Y+4MQ8wDQYDVQQLDAZBbGlw
YXkxGTAXBgNVBAMMEDIwODg5NDE1MDc3OTA2MDQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQDJzOKCuHfM2/VYSroIm2TcO/Eoych6wF1FUtPeAoTva+YgHMrEDXt/OvqfNMylvtZYZya4
hocZ9KTDA0FwHmFT9RP0tu0hXzNcKLx2U31iwi6Y29f0EwSYHvLIDjLw0XbxownR7iHvoCaXLtHz
2S4tcJNB5sew3asOEAMTAKq1z679R/3WETVRPsNl211vhkxUpcL4Ct97s/lVL/cwRFFEi2LajfCV
ZLqzrlkaQJucGcFQBdbzDd3gDrGtpmQvtmDWoAasg0/Kt7UJ6FPZKbbb9fc0yZAMSkD00jyVfYwq
56TGXAP4P+NGhGGd0gbTGHPPA4Dr9zxSuQNAqiYn/mEPAgMBAAGjggEqMIIBJjAfBgNVHSMEGDAW
gBRxB+IEYRbk5fJl6zEPyeD0PJrVkTAdBgNVHQ4EFgQUF9wZ+c5xzGlKYGD+ZCJl/JcPwrcwQAYD
VR0gBDkwNzA1BgdggRwBbgEBMCowKAYIKwYBBQUHAgEWHGh0dHA6Ly9jYS5hbGlwYXkuY29tL2Nw
cy5wZGYwDgYDVR0PAQH/BAQDAgbAMDAGA1UdHwQpMCcwJaAjoCGGH2h0dHA6Ly9jYS5hbGlwYXku
Y29tL2NybDEwOC5jcmwwYAYIKwYBBQUHAQEEVDBSMCgGCCsGAQUFBzAChhxodHRwOi8vY2EuYWxp
cGF5LmNvbS9jYTYuY2VyMCYGCCsGAQUFBzABhhpodHRwOi8vY2EuYWxpcGF5LmNvbTo4MzQwLzAN
BgkqhkiG9w0BAQsFAAOCAQEAqCJLeBQU8g/L0aI+iqFecr8cB+loPhbwDdVyg+ajmm1+5K3mq8+p
8Vt1GpdgsIobu06F7hzkDnPy72vabPWl7KTetdNHTzHcdy3zXB5U58xObZD1GJaOU/brhY9cvMnz
CEEshx0sH4ay8A15go3cdZy+XheZVJ94Da+eAww1hskJ/A8svV6jHBtx3ZH78AGvpgo9J1QA+7iI
22NT13UDymWgF7AdFkEyi6JNfZC3j/BSSYV/HDWg/W4mE3z8H5iTRSassH6EDNLVkPqFARgUKnzb
2xUubWevKL3VfiVSY1NoRn3b+mSzlRjzXO57GK6BR6MY51gt85sZEdci5+j6PA==
-----END CERTIFICATE-----

View File

@@ -3,15 +3,15 @@ package service
import (
"context"
"crypto/rand"
"ycc-server/app/main/api/internal/config"
"ycc-server/app/main/model"
"ycc-server/pkg/lzkit/lzUtils"
"encoding/hex"
"fmt"
"net/http"
"strconv"
"sync/atomic"
"time"
"ycc-server/app/main/api/internal/config"
"ycc-server/app/main/model"
"ycc-server/pkg/lzkit/lzUtils"
"github.com/smartwalle/alipay/v3"
)
@@ -28,10 +28,10 @@ func NewAliPayService(c config.Config) *AliPayService {
panic(fmt.Sprintf("创建支付宝客户端失败: %v", err))
}
// 加载支付宝公钥
err = client.LoadAliPayPublicKey(c.Alipay.AlipayPublicKey)
if err != nil {
panic(fmt.Sprintf("加载支付宝公钥失败: %v", err))
}
// err = client.LoadAliPayPublicKey(c.Alipay.AlipayPublicKey)
// if err != nil {
// panic(fmt.Sprintf("加载支付宝公钥失败: %v", err))
// }
// 加载证书
if err = client.LoadAppCertPublicKeyFromFile(c.Alipay.AppCertPath); err != nil {

View File

@@ -9,55 +9,50 @@ $tables = @(
# ============================================
# 新代理系统表
# ============================================
# "agent",
# "agent_audit",
# "agent_wallet",
# "agent_relation",
# "agent_link",
# "agent_order",
# "agent_commission",
# "agent_rebate",
# "agent_upgrade",
# "agent_withdrawal",
# "agent_config"
# "agent_product_config"
# "agent_invite_code_usage"
# "agent_freeze_task"
"agent_short_link"
# "agent_real_name"
# "agent_withdrawal_tax"
# "agent_invite_code"
# ============================================
# 其他业务表
# ============================================
# "feature",
# "global_notifications"
# "order",
# "order_refund"
# "product",
# "product_feature",
# "query",
# "query_cleanup_log"
# "query_cleanup_detail"
# "query_cleanup_config"
# "user"
# "user_auth"
# "user_temp"
# "example"
# "admin_user"
# "admin_user_role"
# "admin_api",
# "admin_menu"
# "admin_role",
# "admin_role_api",
# "admin_role_menu",
# "admin_dict_data"
# "admin_dict_type"
# "admin_promotion_link"
# "admin_promotion_link_stats_total"
# "admin_promotion_link_stats_history"
# "admin_promotion_order"
"admin_api",
"admin_dict_data",
"admin_dict_type",
"admin_menu",
"admin_promotion_link",
"admin_promotion_link_stats_history",
"admin_promotion_link_stats_total",
"admin_promotion_order",
"admin_role",
"admin_role_api",
"admin_role_menu",
"admin_user",
"admin_user_role",
"agent",
"agent_commission",
"agent_config",
"agent_freeze_task",
"agent_invite_code",
"agent_invite_code_usage",
"agent_link",
"agent_order",
"agent_product_config",
"agent_real_name",
"agent_rebate",
"agent_relation",
"agent_short_link",
"agent_upgrade",
"agent_wallet",
"agent_withdrawal",
"agent_withdrawal_tax",
"authorization_document",
"example",
"feature",
"global_notifications",
"order",
"order_refund",
"product",
"product_feature",
"query",
"query_cleanup_config",
"query_cleanup_detail",
"query_cleanup_log",
"user",
"user_auth"
)
# 为每个表生成模型

View File

@@ -0,0 +1,320 @@
# 表结构修改说明
本文档说明系统重构需要的所有表结构修改,包括:
1. UUID迁移将所有bigint类型的ID改为CHAR(36)类型的UUID
2. 用户系统重构删除UserTemp表优化UserAuth表
## 一、UUID迁移
### 1.1 概述
将所有表的主键ID从`bigint`类型改为`CHAR(36)`类型的UUID同时将所有外键关联字段也改为UUID类型。
**注意**:开发环境使用简化版脚本(`uuid_migration_simple.sql`),直接修改表结构,不保留旧数据。
### 1.2 涉及的表
**核心业务表**
- `user` - 用户表
- `agent` - 代理表
- `product` - 产品表
- `order` - 订单表
- `query` - 查询报告表
- `user_auth` - 用户认证表
**代理相关表**
- `agent_commission` - 代理佣金表
- `agent_invite_code` - 代理邀请码表
- `agent_link` - 代理链接表
- `agent_order` - 代理订单表
- `agent_wallet` - 代理钱包表
- `agent_withdrawal` - 代理提现表
- `agent_withdrawal_tax` - 代理提现税费表
- `agent_rebate` - 代理返利表
- `agent_relation` - 代理关系表
- `agent_upgrade` - 代理升级表
- `agent_real_name` - 代理实名表
- `agent_config` - 代理配置表
- `agent_product_config` - 代理产品配置表
- `agent_short_link` - 代理短链表
- `agent_invite_code_usage` - 邀请码使用记录表
- `agent_freeze_task` - 代理冻结任务表
**订单相关表**
- `order_refund` - 订单退款表
**查询相关表**
- `query_cleanup_log` - 查询清理日志表
- `query_cleanup_detail` - 查询清理详情表
- `query_cleanup_config` - 查询清理配置表
**产品相关表**
- `product_feature` - 产品功能表
- `feature` - 功能表
**其他表**
- `authorization_document` - 授权书表
- `global_notifications` - 全局通知表
**管理后台表**
- `admin_user` - 管理员用户表
- `admin_role` - 管理员角色表
- `admin_menu` - 管理员菜单表
- `admin_api` - 管理员API表
- `admin_dict_type` - 字典类型表
- `admin_dict_data` - 字典数据表
- `admin_user_role` - 管理员用户角色关联表
- `admin_role_menu` - 管理员角色菜单关联表
- `admin_role_api` - 管理员角色API关联表
### 1.3 修改内容
**主键字段**
- 所有表的`id`字段:`bigint``CHAR(36)`
- 移除`AUTO_INCREMENT`属性
- 插入时使用`UUID()`函数或应用层生成UUID
**外键字段**(软关联):
- `user_id``bigint``CHAR(36)`
- `agent_id``bigint``CHAR(36)`
- `order_id``bigint``CHAR(36)`
- `product_id``bigint``CHAR(36)`
- `invite_code_id``bigint``CHAR(36)`
- `link_id``bigint``CHAR(36)`
- `commission_id``bigint``CHAR(36)`
- `wallet_id``bigint``CHAR(36)`
- `withdrawal_id``bigint``CHAR(36)`
- `parent_agent_id``bigint``CHAR(36)`
- `team_leader_id``bigint``CHAR(36)`
- `cleanup_log_id``bigint``CHAR(36)`
- `query_id``bigint``CHAR(36)`
- `feature_id``bigint``CHAR(36)`
- `parent_id`(菜单):`bigint``CHAR(36)`
- `dict_type_id``bigint``CHAR(36)`
- `role_id``bigint``CHAR(36)`
- `menu_id``bigint``CHAR(36)`
- `api_id``bigint``CHAR(36)`
- `used_user_id``bigint``CHAR(36)`
- `used_agent_id``bigint``CHAR(36)`
### 1.4 执行脚本
**开发环境**:执行文件 `uuid_migration_simple.sql`
- 直接修改表结构,不保留旧数据
- 适用于开发环境,没有重要数据
**生产环境**:执行文件 `uuid_migration.sql`
- 完整的迁移流程,保留旧数据以便回滚
- 需要分阶段执行,包含数据迁移和验证
**开发环境执行步骤**
1. 直接执行 `uuid_migration_simple.sql`
2. 所有表的主键和外键字段直接改为CHAR(36)
3. 插入新记录时在应用层生成UUID
**注意事项**
- 开发环境脚本直接修改表结构,不保留旧数据
- 如果表中有数据需要先清空数据或手动填充UUID
- 代码层面需要同步修改所有ID字段类型int64 → string
## 二、用户系统重构
### 2.1 概述
删除`UserTemp`表,统一使用`User`表(通过`mobile`字段是否为空区分临时用户和正式用户),优化`UserAuth`表结构。
### 2.2 涉及的表
**需要修改的表**
- `user` - 用户表无需修改结构只需确保mobile可为空
- `user_auth` - 用户认证表(添加唯一索引)
- `user_temp` - 临时用户表(**删除**
**需要迁移数据的表**
- `order` - 订单表更新user_id
- `query` - 查询报告表更新user_id
### 2.3 修改内容
#### 2.3.1 UserAuth表
**添加唯一索引**
```sql
ALTER TABLE `user_auth`
ADD UNIQUE INDEX `uk_auth_type_key` (`auth_type`, `auth_key`);
```
**作用**
- 确保同一个认证方式auth_type + auth_key只能绑定一个用户
- 防止重复绑定
#### 2.3.2 UserTemp表
**删除原因**
- 临时用户可以直接创建User表记录mobile为空
- 临时用户的认证信息存储在UserAuth表
- 通过User.mobile是否为空来区分临时用户和正式用户
- 统一使用User表逻辑更清晰
**删除步骤**
1. 迁移UserTemp数据到User和UserAuth表
2. 更新关联的订单和报告的user_id
3. 验证数据完整性
4. 删除UserTemp表
### 2.4 执行脚本
**开发环境**:执行文件 `user_system_refactor.sql`(已简化)
- 直接删除UserTemp表
- 添加UserAuth唯一索引
**生产环境**:如需数据迁移,请参考完整版脚本
**开发环境执行步骤**
1. 添加UserAuth唯一索引
2. 直接删除UserTemp表
**注意事项**
- 开发环境脚本直接删除UserTemp表不进行数据迁移
- 删除UserTemp表前确保代码中已移除所有对UserTemp表的引用
## 三、执行顺序
### 3.1 推荐执行顺序
**开发环境**
1. **先执行用户系统重构**`user_system_refactor.sql`
- 添加UserAuth唯一索引
- 删除UserTemp表
2. **再执行UUID迁移**`uuid_migration_simple.sql`
- 直接修改所有表结构
- 需要同步修改代码
**生产环境**
1. 先执行用户系统重构(完整版,包含数据迁移)
2. 再执行UUID迁移完整版包含数据迁移和验证
### 3.2 如果先执行UUID迁移
如果先执行UUID迁移需要注意
- UserTemp表的ID也会改为UUID
- 迁移UserTemp数据时需要使用UUID映射
- 用户系统重构脚本需要相应调整
## 四、代码修改清单
### 4.1 UUID迁移需要的代码修改
**Model层**
- 所有Model的ID字段类型`int64``string`
- 所有外键字段类型:`int64``string`
- 移除`AUTO_INCREMENT`相关逻辑
- 插入时生成UUID使用`uuid.NewString()`
**Service层**
- 所有使用ID的地方改为UUID
- 查询条件改为UUID
- 关联查询改为UUID
**API层**
- 请求参数中的ID改为UUID
- 响应数据中的ID改为UUID
**数据库操作**
- 插入操作:使用`uuid.NewString()`生成UUID
- 查询操作使用UUID字符串查询
- 更新操作使用UUID字符串更新
### 4.2 用户系统重构需要的代码修改
**删除UserTemp相关代码**
- 删除`UserTempModel`
- 删除所有使用`UserTemp`的代码
- 删除临时用户创建逻辑中的UserTemp相关代码
**修改用户创建逻辑**
- 临时用户直接创建User记录mobile为空
- 创建UserAuth记录auth_type + auth_key
**修改用户查询逻辑**
- 通过UserAuth表查询用户
- 通过User.mobile是否为空判断用户类型
**修改账号合并逻辑**
- 绑定手机号时,检查手机号是否已存在
- 如果存在,合并账号(迁移数据)
- 如果不存在更新User.mobile
## 五、验证清单
### 5.1 UUID迁移验证
- [ ] 所有表的主键已改为CHAR(36)
- [ ] 所有外键字段已改为CHAR(36)
- [ ] 插入新记录时自动生成UUID
- [ ] 查询操作使用UUID正常
- [ ] 关联查询使用UUID正常
- [ ] 索引和约束已更新
- [ ] 数据完整性验证通过
### 5.2 用户系统重构验证
- [ ] UserAuth表有唯一索引`uk_auth_type_key`
- [ ] UserTemp表数据已迁移如果存在
- [ ] 订单和报告的user_id已更新
- [ ] UserTemp表已删除如果存在
- [ ] 临时用户创建逻辑使用User表
- [ ] 账号合并逻辑正常工作
- [ ] 数据完整性验证通过
## 六、回滚方案
### 6.1 UUID迁移回滚
如果UUID迁移出现问题可以
1. 保留原ID字段迁移脚本中已保留
2. 恢复主键为原ID字段
3. 删除UUID字段
4. 恢复代码使用int64类型
### 6.2 用户系统重构回滚
如果用户系统重构出现问题,可以:
1. 恢复UserTemp表从备份
2. 恢复订单和报告的user_id
3. 恢复代码使用UserTemp表
## 七、常见问题
### 7.1 UUID性能问题
**问题**UUID作为主键可能影响性能
**解答**
- UUID是字符串类型索引效率略低于bigint
- 但UUID的优势是全局唯一适合分布式系统
- 如果性能问题严重可以考虑使用BINARY(16)存储UUID需要转换
### 7.2 UUID长度问题
**问题**CHAR(36)占用空间较大
**解答**
- UUID标准格式是36字符包含连字符
- 如果空间敏感可以使用BINARY(16)存储(需要转换函数)
- 当前使用CHAR(36)便于调试和查看
### 7.3 UserTemp数据迁移问题
**问题**如何确保UserTemp数据正确迁移
**解答**
- 通过auth_type和auth_key匹配UserAuth记录
- 建立UserTemp.id到User.id的映射关系
- 迁移后验证数据完整性
- 保留UserTemp表一段时间确认无误后再删除
## 八、联系信息
如有问题,请联系开发团队。

View File

@@ -1,20 +1,62 @@
-- ============================================
-- 表结构模板UUID版本
-- ============================================
-- 注意系统已迁移到UUID主键新表请使用此模板
-- ============================================
CREATE TABLE `` (
`id` bigint NOT NULL AUTO_INCREMENT,
`id` CHAR(36) NOT NULL COMMENT 'UUID主键',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`delete_time` datetime DEFAULT NULL COMMENT '删除时间',
`del_state` tinyint NOT NULL DEFAULT '0',
`version` bigint NOT NULL DEFAULT '0' COMMENT '版本号',
/* 业务字段开始 */
`1` [] [DEFAULT ] [COMMENT '字段说明'],
/* 业务字段开始 */
`1` [] [DEFAULT ] [COMMENT '字段说明'],
`2` [] [DEFAULT ] [COMMENT '字段说明'],
/* 关联字段 - 软关联 */
`id` bigint [NOT NULL] [DEFAULT '0'] COMMENT '关联到XX表的id',
/* 关联字段 - 软关联使用UUID */
`id` CHAR(36) [NOT NULL] [DEFAULT NULL] COMMENT '关联到XX表的UUID',
/* 业务字段结束 */
PRIMARY KEY (`id`),
/* 索引定义 */
UNIQUE KEY `` (``),
KEY `idx_关联字段` (`id`) COMMENT '优化关联查询'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='表说明';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='表说明';
-- ============================================
-- UUID生成说明
-- ============================================
-- 1. 应用层生成使用Go的uuid.NewString()生成UUID
-- 示例id := uuid.NewString()
-- 2. 数据库层生成使用MySQL的UUID()函数(不推荐,性能较差)
-- 示例INSERT INTO table (id, ...) VALUES (UUID(), ...)
-- 3. 推荐方式在应用层生成UUID然后插入数据库
-- ============================================
-- ============================================
-- 旧版本模板bigint主键已废弃
-- ============================================
-- CREATE TABLE `表名` (
-- `id` bigint NOT NULL AUTO_INCREMENT,
-- `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
-- `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-- `delete_time` datetime DEFAULT NULL COMMENT '删除时间',
-- `del_state` tinyint NOT NULL DEFAULT '0',
-- `version` bigint NOT NULL DEFAULT '0' COMMENT '版本号',
--
-- /* 业务字段开始 */
-- `字段1` 数据类型 [约束条件] [DEFAULT 默认值] [COMMENT '字段说明'],
-- `字段2` 数据类型 [约束条件] [DEFAULT 默认值] [COMMENT '字段说明'],
-- /* 关联字段 - 软关联 */
-- `关联表id` bigint [NOT NULL] [DEFAULT '0'] COMMENT '关联到XX表的id',
-- /* 业务字段结束 */
--
-- PRIMARY KEY (`id`),
-- /* 索引定义 */
-- UNIQUE KEY `索引名称` (`字段名`),
-- KEY `idx_关联字段` (`关联表id`) COMMENT '优化关联查询'
-- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='表说明';
-- ============================================

View File

@@ -0,0 +1,44 @@
-- ============================================
-- 用户系统重构SQL脚本简化版 - 开发环境)
-- 根据《用户系统重构计划书》执行
-- ============================================
-- ============================================
-- 第一部分UserAuth表唯一索引
-- ============================================
-- 确保user_auth表的(auth_type, auth_key)唯一性
-- 如果已存在同名索引,先删除
ALTER TABLE `user_auth` DROP INDEX IF EXISTS `uk_auth_type_key`;
-- 添加唯一索引
ALTER TABLE `user_auth`
ADD UNIQUE INDEX `uk_auth_type_key` (`auth_type`, `auth_key`) COMMENT '确保同一个认证方式只能绑定一个用户';
-- ============================================
-- 第二部分删除UserTemp表开发环境直接删除
-- ============================================
-- 注意:开发环境没有数据,直接删除表即可
-- 如果表不存在,会报错但可以忽略
DROP TABLE IF EXISTS `user_temp`;
-- ============================================
-- 第三部分:索引优化(可选)
-- ============================================
-- 为user_auth表添加user_id和auth_type的联合索引如果查询频繁
-- ALTER TABLE `user_auth`
-- ADD INDEX `idx_user_id_auth_type` (`user_id`, `auth_type`) COMMENT '优化按用户查询认证类型';
-- 为user表添加mobile的唯一索引如果不存在
-- ALTER TABLE `user`
-- ADD UNIQUE INDEX `uk_mobile` (`mobile`) COMMENT '确保手机号唯一性';
-- ============================================
-- 注意事项
-- ============================================
-- 1. 此脚本适用于开发环境直接删除UserTemp表
-- 2. 如果生产环境有数据,请使用完整版迁移脚本
-- 3. 执行后确保代码中已移除所有对UserTemp表的引用

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,446 @@
-- ============================================
-- UUID迁移脚本简化版 - 开发环境)
-- 将系统中所有bigint类型的ID字段改为CHAR(36)类型的UUID
-- 注意:此脚本直接修改表结构,不保留旧数据,适用于开发环境
-- ============================================
-- 注意user表和product表已经是CHAR(36)类型,跳过修改
-- ============================================
-- 第一部分:修改核心业务表
-- ============================================
-- user表已经是CHAR(36),跳过
-- product表已经是CHAR(36),跳过
-- order表修改主键和外键字段
ALTER TABLE `order`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
MODIFY COLUMN `user_id` CHAR(36) NOT NULL COMMENT '用户UUID',
MODIFY COLUMN `product_id` CHAR(36) NOT NULL COMMENT '产品UUID',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`),
ADD INDEX `idx_user_id` (`user_id`),
ADD INDEX `idx_product_id` (`product_id`);
-- query表修改主键和外键字段
ALTER TABLE `query`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
MODIFY COLUMN `order_id` CHAR(36) NOT NULL COMMENT '订单UUID',
MODIFY COLUMN `user_id` CHAR(36) NOT NULL COMMENT '用户UUID',
MODIFY COLUMN `product_id` CHAR(36) NOT NULL COMMENT '产品UUID',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`),
ADD INDEX `idx_order_id` (`order_id`),
ADD INDEX `idx_user_id` (`user_id`),
ADD INDEX `idx_product_id` (`product_id`);
-- user_auth表修改主键和外键字段注意user_id需要关联到user表的UUID
ALTER TABLE `user_auth`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
MODIFY COLUMN `user_id` CHAR(36) NOT NULL COMMENT '用户UUID',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`),
ADD INDEX `idx_user_id` (`user_id`),
ADD UNIQUE INDEX `uk_auth_type_key` (`auth_type`, `auth_key`) COMMENT '确保同一个认证方式只能绑定一个用户';
-- agent表修改主键和外键字段
ALTER TABLE `agent`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
MODIFY COLUMN `user_id` CHAR(36) NOT NULL COMMENT '用户UUID',
MODIFY COLUMN `team_leader_id` CHAR(36) NULL COMMENT '团队首领UUID',
MODIFY COLUMN `invite_code_id` CHAR(36) NULL COMMENT '邀请码UUID',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`),
ADD UNIQUE INDEX `uk_user_id` (`user_id`),
ADD INDEX `idx_team_leader_id` (`team_leader_id`),
ADD INDEX `idx_invite_code_id` (`invite_code_id`);
-- ============================================
-- 第二部分:修改代理相关表
-- ============================================
-- agent_commission表
ALTER TABLE `agent_commission`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
MODIFY COLUMN `agent_id` CHAR(36) NOT NULL COMMENT '代理UUID',
MODIFY COLUMN `order_id` CHAR(36) NOT NULL COMMENT '订单UUID',
MODIFY COLUMN `product_id` CHAR(36) NOT NULL COMMENT '产品UUID',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`),
ADD INDEX `idx_agent_id` (`agent_id`),
ADD INDEX `idx_order_id` (`order_id`),
ADD INDEX `idx_product_id` (`product_id`);
-- agent_invite_code表
ALTER TABLE `agent_invite_code`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
MODIFY COLUMN `agent_id` CHAR(36) NULL COMMENT '代理UUID',
MODIFY COLUMN `used_user_id` CHAR(36) NULL COMMENT '使用用户UUID',
MODIFY COLUMN `used_agent_id` CHAR(36) NULL COMMENT '使用代理UUID',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`),
ADD INDEX `idx_agent_id` (`agent_id`),
ADD INDEX `idx_used_user_id` (`used_user_id`),
ADD INDEX `idx_used_agent_id` (`used_agent_id`);
-- agent_link表
ALTER TABLE `agent_link`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
MODIFY COLUMN `agent_id` CHAR(36) NOT NULL COMMENT '代理UUID',
MODIFY COLUMN `user_id` CHAR(36) NOT NULL COMMENT '用户UUID',
MODIFY COLUMN `product_id` CHAR(36) NOT NULL COMMENT '产品UUID',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`),
ADD INDEX `idx_agent_id` (`agent_id`),
ADD INDEX `idx_user_id` (`user_id`),
ADD INDEX `idx_product_id` (`product_id`);
-- agent_order表
ALTER TABLE `agent_order`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
MODIFY COLUMN `agent_id` CHAR(36) NOT NULL COMMENT '代理UUID',
MODIFY COLUMN `order_id` CHAR(36) NOT NULL COMMENT '订单UUID',
MODIFY COLUMN `product_id` CHAR(36) NOT NULL COMMENT '产品UUID',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`),
ADD INDEX `idx_agent_id` (`agent_id`),
ADD INDEX `idx_order_id` (`order_id`),
ADD INDEX `idx_product_id` (`product_id`);
-- agent_wallet表
ALTER TABLE `agent_wallet`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
MODIFY COLUMN `agent_id` CHAR(36) NOT NULL COMMENT '代理UUID',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`),
ADD UNIQUE INDEX `uk_agent_id` (`agent_id`);
-- agent_withdrawal表
ALTER TABLE `agent_withdrawal`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
MODIFY COLUMN `agent_id` CHAR(36) NOT NULL COMMENT '代理UUID',
MODIFY COLUMN `wallet_id` CHAR(36) NOT NULL COMMENT '钱包UUID',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`),
ADD INDEX `idx_agent_id` (`agent_id`),
ADD INDEX `idx_wallet_id` (`wallet_id`);
-- agent_withdrawal_tax表
ALTER TABLE `agent_withdrawal_tax`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
MODIFY COLUMN `withdrawal_id` CHAR(36) NOT NULL COMMENT '提现UUID',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`),
ADD INDEX `idx_withdrawal_id` (`withdrawal_id`);
-- agent_rebate表
ALTER TABLE `agent_rebate`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
MODIFY COLUMN `agent_id` CHAR(36) NOT NULL COMMENT '代理UUID',
MODIFY COLUMN `order_id` CHAR(36) NOT NULL COMMENT '订单UUID',
MODIFY COLUMN `product_id` CHAR(36) NOT NULL COMMENT '产品UUID',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`),
ADD INDEX `idx_agent_id` (`agent_id`),
ADD INDEX `idx_order_id` (`order_id`),
ADD INDEX `idx_product_id` (`product_id`);
-- agent_relation表
ALTER TABLE `agent_relation`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
MODIFY COLUMN `agent_id` CHAR(36) NOT NULL COMMENT '代理UUID',
MODIFY COLUMN `parent_agent_id` CHAR(36) NULL COMMENT '上级代理UUID',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`),
ADD INDEX `idx_agent_id` (`agent_id`),
ADD INDEX `idx_parent_agent_id` (`parent_agent_id`);
-- agent_upgrade表
ALTER TABLE `agent_upgrade`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
MODIFY COLUMN `agent_id` CHAR(36) NOT NULL COMMENT '代理UUID',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`),
ADD INDEX `idx_agent_id` (`agent_id`);
-- agent_real_name表
ALTER TABLE `agent_real_name`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
MODIFY COLUMN `agent_id` CHAR(36) NOT NULL COMMENT '代理UUID',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`),
ADD INDEX `idx_agent_id` (`agent_id`);
-- agent_config表
ALTER TABLE `agent_config`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`);
-- agent_product_config表
ALTER TABLE `agent_product_config`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
MODIFY COLUMN `product_id` CHAR(36) NOT NULL COMMENT '产品UUID',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`),
ADD INDEX `idx_product_id` (`product_id`);
-- agent_short_link表
ALTER TABLE `agent_short_link`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
MODIFY COLUMN `invite_code_id` CHAR(36) NULL COMMENT '邀请码UUID',
MODIFY COLUMN `link_id` CHAR(36) NULL COMMENT '链接UUID',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`),
ADD INDEX `idx_invite_code_id` (`invite_code_id`),
ADD INDEX `idx_link_id` (`link_id`);
-- agent_invite_code_usage表
ALTER TABLE `agent_invite_code_usage`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
MODIFY COLUMN `invite_code_id` CHAR(36) NOT NULL COMMENT '邀请码UUID',
MODIFY COLUMN `user_id` CHAR(36) NOT NULL COMMENT '用户UUID',
MODIFY COLUMN `agent_id` CHAR(36) NOT NULL COMMENT '代理UUID',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`),
ADD INDEX `idx_invite_code_id` (`invite_code_id`),
ADD INDEX `idx_user_id` (`user_id`),
ADD INDEX `idx_agent_id` (`agent_id`);
-- agent_freeze_task表
ALTER TABLE `agent_freeze_task`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
MODIFY COLUMN `agent_id` CHAR(36) NOT NULL COMMENT '代理UUID',
MODIFY COLUMN `order_id` CHAR(36) NOT NULL COMMENT '订单UUID',
MODIFY COLUMN `commission_id` CHAR(36) NOT NULL COMMENT '佣金UUID',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`),
ADD INDEX `idx_agent_id` (`agent_id`),
ADD INDEX `idx_order_id` (`order_id`),
ADD INDEX `idx_commission_id` (`commission_id`);
-- ============================================
-- 第三部分:修改订单相关表
-- ============================================
-- order_refund表
ALTER TABLE `order_refund`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
MODIFY COLUMN `order_id` CHAR(36) NOT NULL COMMENT '订单UUID',
MODIFY COLUMN `user_id` CHAR(36) NOT NULL COMMENT '用户UUID',
MODIFY COLUMN `product_id` CHAR(36) NOT NULL COMMENT '产品UUID',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`),
ADD INDEX `idx_order_id` (`order_id`),
ADD INDEX `idx_user_id` (`user_id`),
ADD INDEX `idx_product_id` (`product_id`);
-- ============================================
-- 第四部分:修改查询相关表
-- ============================================
-- query_cleanup_log表
ALTER TABLE `query_cleanup_log`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`);
-- query_cleanup_detail表
ALTER TABLE `query_cleanup_detail`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
MODIFY COLUMN `cleanup_log_id` CHAR(36) NOT NULL COMMENT '清理日志UUID',
MODIFY COLUMN `query_id` CHAR(36) NOT NULL COMMENT '查询UUID',
MODIFY COLUMN `order_id` CHAR(36) NOT NULL COMMENT '订单UUID',
MODIFY COLUMN `user_id` CHAR(36) NOT NULL COMMENT '用户UUID',
MODIFY COLUMN `product_id` CHAR(36) NOT NULL COMMENT '产品UUID',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`),
ADD INDEX `idx_cleanup_log_id` (`cleanup_log_id`),
ADD INDEX `idx_query_id` (`query_id`),
ADD INDEX `idx_order_id` (`order_id`),
ADD INDEX `idx_user_id` (`user_id`),
ADD INDEX `idx_product_id` (`product_id`);
-- query_cleanup_config表
ALTER TABLE `query_cleanup_config`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`);
-- ============================================
-- 第五部分:修改产品相关表
-- ============================================
-- product_feature表
ALTER TABLE `product_feature`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
MODIFY COLUMN `product_id` CHAR(36) NOT NULL COMMENT '产品UUID',
MODIFY COLUMN `feature_id` CHAR(36) NOT NULL COMMENT '功能UUID',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`),
ADD INDEX `idx_product_id` (`product_id`),
ADD INDEX `idx_feature_id` (`feature_id`);
-- feature表
ALTER TABLE `feature`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`);
-- ============================================
-- 第六部分:修改其他表
-- ============================================
-- authorization_document表
ALTER TABLE `authorization_document`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
MODIFY COLUMN `user_id` CHAR(36) NOT NULL COMMENT '用户UUID',
MODIFY COLUMN `order_id` CHAR(36) NOT NULL COMMENT '订单UUID',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`),
ADD INDEX `idx_user_id` (`user_id`),
ADD INDEX `idx_order_id` (`order_id`);
-- global_notifications表注意原表id是int类型
ALTER TABLE `global_notifications`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`);
-- example表
ALTER TABLE `example`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
MODIFY COLUMN `feature_id` CHAR(36) NOT NULL COMMENT '功能UUID',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`),
ADD INDEX `idx_feature_id` (`feature_id`);
-- ============================================
-- 第七部分:修改管理后台表
-- ============================================
-- admin_user表
ALTER TABLE `admin_user`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`);
-- admin_role表
ALTER TABLE `admin_role`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`);
-- admin_menu表注意字段名是pid不是parent_id
ALTER TABLE `admin_menu`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
MODIFY COLUMN `pid` CHAR(36) NOT NULL DEFAULT '0' COMMENT '父菜单UUID',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`),
ADD INDEX `idx_pid` (`pid`);
-- admin_api表
ALTER TABLE `admin_api`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`);
-- admin_dict_type表
ALTER TABLE `admin_dict_type`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`);
-- admin_dict_data表注意没有dict_type_id字段使用dict_type字符串
-- 此表不需要修改外键字段因为使用的是dict_type字符串而不是ID
ALTER TABLE `admin_dict_data`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`);
-- admin_user_role表
ALTER TABLE `admin_user_role`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
MODIFY COLUMN `user_id` CHAR(36) NOT NULL DEFAULT '0' COMMENT '用户UUID',
MODIFY COLUMN `role_id` CHAR(36) NOT NULL DEFAULT '0' COMMENT '角色UUID',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`),
ADD INDEX `idx_user_id` (`user_id`),
ADD INDEX `idx_role_id` (`role_id`);
-- admin_role_menu表
ALTER TABLE `admin_role_menu`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
MODIFY COLUMN `role_id` CHAR(36) NOT NULL DEFAULT '0' COMMENT '角色UUID',
MODIFY COLUMN `menu_id` CHAR(36) NOT NULL DEFAULT '0' COMMENT '菜单UUID',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`),
ADD INDEX `idx_role_id` (`role_id`),
ADD INDEX `idx_menu_id` (`menu_id`);
-- admin_role_api表
ALTER TABLE `admin_role_api`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
MODIFY COLUMN `role_id` CHAR(36) NOT NULL DEFAULT '0' COMMENT '角色UUID',
MODIFY COLUMN `api_id` CHAR(36) NOT NULL DEFAULT '0' COMMENT 'API UUID',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`),
ADD INDEX `idx_role_id` (`role_id`),
ADD INDEX `idx_api_id` (`api_id`);
-- ============================================
-- 第八部分:修改推广相关表(新增)
-- ============================================
-- admin_promotion_link表
ALTER TABLE `admin_promotion_link`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
MODIFY COLUMN `admin_user_id` CHAR(36) NOT NULL DEFAULT '0' COMMENT '推广者账号UUID',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`),
ADD INDEX `idx_admin_user_id` (`admin_user_id`);
-- admin_promotion_link_stats_history表
ALTER TABLE `admin_promotion_link_stats_history`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
MODIFY COLUMN `link_id` CHAR(36) NOT NULL COMMENT '推广链接UUID',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`),
ADD INDEX `idx_link_id` (`link_id`);
-- admin_promotion_link_stats_total表
ALTER TABLE `admin_promotion_link_stats_total`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
MODIFY COLUMN `link_id` CHAR(36) NOT NULL COMMENT '推广链接UUID',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`),
ADD INDEX `idx_link_id` (`link_id`);
-- admin_promotion_order表
ALTER TABLE `admin_promotion_order`
MODIFY COLUMN `id` CHAR(36) NOT NULL COMMENT 'UUID主键',
MODIFY COLUMN `link_id` CHAR(36) NOT NULL COMMENT '推广链接UUID',
MODIFY COLUMN `order_id` CHAR(36) NOT NULL COMMENT '订单UUID',
MODIFY COLUMN `user_id` CHAR(36) NOT NULL COMMENT '下单用户UUID',
MODIFY COLUMN `admin_user_id` CHAR(36) NOT NULL COMMENT '推广者账号UUID',
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`),
ADD UNIQUE INDEX `uk_order_id` (`order_id`) COMMENT '确保每个订单只有一条推广记录',
ADD INDEX `idx_link_id` (`link_id`),
ADD INDEX `idx_user_id` (`user_id`) COMMENT '优化用户查询',
ADD INDEX `idx_admin_user_id` (`admin_user_id`);
-- ============================================
-- 注意事项
-- ============================================
-- 1. 此脚本直接修改表结构,不保留旧数据
-- 2. user表和product表已经是CHAR(36)类型,已跳过
-- 3. 执行后所有ID字段都是CHAR(36)类型
-- 4. 插入新记录时需要在应用层生成UUID使用uuid.NewString()
-- 5. 如果表中有数据需要先清空数据或手动填充UUID
-- 6. 建议在开发环境先测试,确认无误后再应用到生产环境
-- 7. admin_menu表使用pid字段而不是parent_id
-- 8. admin_dict_data表使用dict_type字符串字段不是dict_type_id
-- 9. global_notifications表的id原为int类型现改为CHAR(36)