From 25c69541f948c4f99e6754c24f7d0a466ba97036 Mon Sep 17 00:00:00 2001 From: zpc Date: Sun, 30 Jun 2024 04:47:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A1=AB=E5=85=85=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 +- 代码块/C#/bigdatacache.snippet | 59 ++++ 代码块/C#/classbase.snippet | 51 ++++ 代码块/C#/classbasedao.snippet | 63 +++++ 其它/202102226远程桌面备份.json | 256 ++++++++++++++++++ 其它/圣剑-工作文档.docx | Bin 0 -> 27874 bytes 其它/抖音-HISSAI绘画生成器.docx | Bin 0 -> 292556 bytes 常用SQL/SQLQuery1.sql | 87 ++++++ 常用SQL/SQLQuery2.sql | 1 + 常用SQL/SQLQuery3sql.sql | 50 ++++ 常用SQL/快速启动.sql | 25 ++ 常用SQL/成就表.sql | 95 +++++++ 常用SQL/成就表条件表.sql | 62 +++++ 常用SQL/成就表进度表.sql | 77 ++++++ 常用SQL/排行榜sql.sql | 37 +++ 常用SQL/推出游戏条件表.sql | 79 ++++++ ...月统计查询-国内-不包含游客.sql | 32 +++ 常用SQL/每月统计查询-国内.sql | 29 ++ 常用SQL/每月统计查询-国外.sql | 83 ++++++ 常用SQL/活动4003.sql | 6 + 常用SQL/游戏多语言.sql | 96 +++++++ 常用SQL/游戏系列表.sql | 51 ++++ 常用SQL/用户反馈表.sql | 49 ++++ 常用SQL/用户成就表完成表.sql | 82 ++++++ 常用SQL/系统相关/获取注释.sql | 39 +++ 常用SQL/系统相关/表详细信息2.sql | 33 +++ 常用SQL/系统相关/表详细信息、.sql | 123 +++++++++ 常用SQL/菜单修改.sql | 3 + 文档/.net/EfCode.md | 5 + 文档/.net/grpc.md | 46 ++++ 文档/Git/git.md | 107 ++++++++ .../设置sqlserver占用内存.sql | 9 + 文档/linux/.net 8.md | 25 ++ 文档/linux/BaGet.md | 28 ++ 文档/linux/Gitea.md | 75 +++++ 文档/linux/Gitea/webhook.json | 194 +++++++++++++ 文档/linux/Gitea/webhook.发布.json | 173 ++++++++++++ 文档/linux/MySql安装使用.md | 75 +++++ 文档/linux/SQL Server安装记录.md | 28 ++ 文档/linux/Shadowsocks.md | 41 +++ 文档/linux/ZeroTierOne.md | 17 ++ 文档/linux/baget/baget.service | 40 +++ 文档/linux/baget/部署文档.md | 25 ++ 文档/linux/ffmpeg.md | 10 + 文档/linux/liunx使用记录.md | 100 +++++++ 文档/linux/make.md | 9 + 文档/linux/nano.md | 35 +++ 文档/linux/nginx.md | 231 ++++++++++++++++ 文档/linux/node.js.md | 14 + 文档/linux/rsync.md | 26 ++ 文档/linux/ssh.md | 69 +++++ .../linux/服务文件/code-release.service | 22 ++ 文档/linux/服务文件/部署文档.md | 33 +++ 文档/windwos/netsh 代理转发.md | 16 ++ 文档/其它/.editorconfig | 214 +++++++++++++++ 文档/其它/.editorconfig1 | 38 +++ 文档/其它/README.md | 3 + 文档/其它/sunny-sports-api.service | 20 ++ 文档/其它/sunny-sports-api.service test | 20 ++ 文档/其它/test.md | 17 ++ 文档/其它/工作文档.md | 117 ++++++++ 文档/其它/本地-阳光体育.md | 18 ++ 文档/其它/点赞.txt | 63 +++++ 文档/其它/阳光体育部署文档.md | 232 ++++++++++++++++ 文档/服务器文档/api-1.md | 2 + 文档/部署/baget/baget.service | 40 +++ 文档/部署/baget/部署文档.md | 25 ++ 67 files changed, 3831 insertions(+), 2 deletions(-) create mode 100644 代码块/C#/bigdatacache.snippet create mode 100644 代码块/C#/classbase.snippet create mode 100644 代码块/C#/classbasedao.snippet create mode 100644 其它/202102226远程桌面备份.json create mode 100644 其它/圣剑-工作文档.docx create mode 100644 其它/抖音-HISSAI绘画生成器.docx create mode 100644 常用SQL/SQLQuery1.sql create mode 100644 常用SQL/SQLQuery2.sql create mode 100644 常用SQL/SQLQuery3sql.sql create mode 100644 常用SQL/快速启动.sql create mode 100644 常用SQL/成就表.sql create mode 100644 常用SQL/成就表条件表.sql create mode 100644 常用SQL/成就表进度表.sql create mode 100644 常用SQL/排行榜sql.sql create mode 100644 常用SQL/推出游戏条件表.sql create mode 100644 常用SQL/每月统计查询-国内-不包含游客.sql create mode 100644 常用SQL/每月统计查询-国内.sql create mode 100644 常用SQL/每月统计查询-国外.sql create mode 100644 常用SQL/活动4003.sql create mode 100644 常用SQL/游戏多语言.sql create mode 100644 常用SQL/游戏系列表.sql create mode 100644 常用SQL/用户反馈表.sql create mode 100644 常用SQL/用户成就表完成表.sql create mode 100644 常用SQL/系统相关/获取注释.sql create mode 100644 常用SQL/系统相关/表详细信息2.sql create mode 100644 常用SQL/系统相关/表详细信息、.sql create mode 100644 常用SQL/菜单修改.sql create mode 100644 文档/.net/EfCode.md create mode 100644 文档/.net/grpc.md create mode 100644 文档/Git/git.md create mode 100644 文档/SQL Server/设置sqlserver占用内存.sql create mode 100644 文档/linux/.net 8.md create mode 100644 文档/linux/BaGet.md create mode 100644 文档/linux/Gitea.md create mode 100644 文档/linux/Gitea/webhook.json create mode 100644 文档/linux/Gitea/webhook.发布.json create mode 100644 文档/linux/MySql安装使用.md create mode 100644 文档/linux/SQL Server安装记录.md create mode 100644 文档/linux/Shadowsocks.md create mode 100644 文档/linux/ZeroTierOne.md create mode 100644 文档/linux/baget/baget.service create mode 100644 文档/linux/baget/部署文档.md create mode 100644 文档/linux/ffmpeg.md create mode 100644 文档/linux/liunx使用记录.md create mode 100644 文档/linux/make.md create mode 100644 文档/linux/nano.md create mode 100644 文档/linux/nginx.md create mode 100644 文档/linux/node.js.md create mode 100644 文档/linux/rsync.md create mode 100644 文档/linux/ssh.md create mode 100644 文档/linux/服务文件/code-release.service create mode 100644 文档/linux/服务文件/部署文档.md create mode 100644 文档/windwos/netsh 代理转发.md create mode 100644 文档/其它/.editorconfig create mode 100644 文档/其它/.editorconfig1 create mode 100644 文档/其它/README.md create mode 100644 文档/其它/sunny-sports-api.service create mode 100644 文档/其它/sunny-sports-api.service test create mode 100644 文档/其它/test.md create mode 100644 文档/其它/工作文档.md create mode 100644 文档/其它/本地-阳光体育.md create mode 100644 文档/其它/点赞.txt create mode 100644 文档/其它/阳光体育部署文档.md create mode 100644 文档/服务器文档/api-1.md create mode 100644 文档/部署/baget/baget.service create mode 100644 文档/部署/baget/部署文档.md diff --git a/README.md b/README.md index f697f1d..1303606 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,2 @@ -# document +# document 文档 -文档 \ No newline at end of file diff --git a/代码块/C#/bigdatacache.snippet b/代码块/C#/bigdatacache.snippet new file mode 100644 index 0000000..48441f9 --- /dev/null +++ b/代码块/C#/bigdatacache.snippet @@ -0,0 +1,59 @@ + + + +
+ bigdatacache + bigdatacache + 类的代码片段包含数据库访问 + zz + + Expansion + SurroundsWith + +
+ + + + name + 字段名 + T_APP_CONFIGS + + + daoclass + 类名 + T_App_Config + + + + /// 缓存数据 + /// + private static List<$daoclass$> _$name$ = null; + /// + /// 锁 + /// + private static object _$name$_LOCK = new object(); + /// + /// app配置数据,引用类型,不可修改,只能查询使用 + /// + public static List<$daoclass$> $name$LIST + { + get + { + if (_$name$ == null) + { + lock (_$name$_LOCK) + { + var dao = new DAO(); + _$name$ = dao.daoRes.context.$daoclass$.ToList(); + } + } + return _$name$; + } + } + $selected$$end$ + ]]> + + +
+
diff --git a/代码块/C#/classbase.snippet b/代码块/C#/classbase.snippet new file mode 100644 index 0000000..2d3235a --- /dev/null +++ b/代码块/C#/classbase.snippet @@ -0,0 +1,51 @@ + + + +
+ classBll + classBll + 类的代码片段 + zz + + Expansion + SurroundsWith + +
+ + + + modifier + 修饰符 + public + + + name + 类名 + MyClass + + + inherit + 类名 + BLLBase + + + + /// + /// + $modifier$ class $name$ : $inherit$ + { + /// + /// + /// + /// + $modifier$ $name$(DAO dao):base(dao){ + + } + + $selected$$end$ + }]]> + + +
+
diff --git a/代码块/C#/classbasedao.snippet b/代码块/C#/classbasedao.snippet new file mode 100644 index 0000000..3cc20c8 --- /dev/null +++ b/代码块/C#/classbasedao.snippet @@ -0,0 +1,63 @@ + + + +
+ classBlldao + classBlldao + 类的代码片段包含数据库访问 + zz + + Expansion + SurroundsWith + +
+ + + + name + 类名 + MyClass + + + daoclass + 类名 + T_ + + + + /// + /// + public class $name$ : BLLBase + { + /// + /// + /// + /// + public $name$(DAO dao):base(dao){ + + } + /// + /// + /// + /// + public List<$daoclass$> GetList() + { + var list = dao.daoRes.context.$daoclass$.Where(it=>true).ToList(); + return list; + } + /// + /// + /// + /// + public $daoclass$ GetFirstOrDefault() { + var data = dao.daoRes.context.$daoclass$.FirstOrDefault(it => true); + return data; + } + + $selected$$end$ + }]]> + + +
+
diff --git a/其它/202102226远程桌面备份.json b/其它/202102226远程桌面备份.json new file mode 100644 index 0000000..44d1094 --- /dev/null +++ b/其它/202102226远程桌面备份.json @@ -0,0 +1,256 @@ +{ + "Connections": [ + { + "ConnectionType": 25, + "Group": "moguext", + "ID": "3b50fe58-b722-43d8-bc07-6a768ed59462", + "Name": "moguext", + "GroupDetails": { + "SafePassword": "LVfk8hUoy/orZ6HR+VxTsw==", + "UserName": "sjgame" + }, + "MetaInformation": { + "Cost": 0.0, + "PasswordHistory": [ + { + "LoggedModifiedBy": "ZHANGZHE-PC\\zhangzhe", + "ModifiedBy": "ZHANGZHE-PC\\zhangzhe", + "ModifiedDateTimeString": "2023-03-29T07:19:23", + "SafePassword": "ob6Y/dNMaZU14hgzF60kzQ==" + } + ] + } + }, + { + "Url": "43.129.195.20:33389", + "ConnectionType": 1, + "CredentialConnectionID": "1310CF82-6FAB-4B7A-9EEA-3E2E451CA2CF", + "Group": "moguext\\海外", + "ID": "53efb8ce-b5da-40a8-a650-4d925670b61a", + "Name": "PC", + "OpenEmbedded": true, + "RDP": {} + }, + { + "Url": "101.42.136.223:33389", + "ConnectionType": 1, + "CredentialConnectionID": "1310CF82-6FAB-4B7A-9EEA-3E2E451CA2CF", + "Group": "moguext\\国内", + "ID": "8f6f0ca1-83e4-44d3-a3b6-e2b24d0117dd", + "Name": "PC", + "OpenEmbedded": true, + "RDP": {} + }, + { + "Url": "82.157.13.127:33389", + "ConnectionType": 1, + "CredentialConnectionID": "1310CF82-6FAB-4B7A-9EEA-3E2E451CA2CF", + "Group": "moguext\\国内", + "ID": "d4ad266c-0ea8-4013-8357-b58ce6bb5a19", + "Name": "web1", + "OpenEmbedded": true, + "RDP": {} + }, + { + "Url": "101.32.15.216:33389", + "ConnectionType": 1, + "CredentialConnectionID": "1310CF82-6FAB-4B7A-9EEA-3E2E451CA2CF", + "Group": "moguext\\海外", + "ID": "abc22a42-2683-4c63-802b-978141388f75", + "Name": "web1", + "OpenEmbedded": true, + "RDP": {} + }, + { + "Url": "82.157.29.123:33389", + "ConnectionType": 1, + "CredentialConnectionID": "1310CF82-6FAB-4B7A-9EEA-3E2E451CA2CF", + "Group": "moguext\\国内", + "ID": "4c69f35e-f313-4541-bafe-dd549afeea2d", + "Name": "web2", + "OpenEmbedded": true, + "RDP": {} + }, + { + "Url": "101.32.14.235:33389", + "ConnectionType": 1, + "CredentialConnectionID": "1310CF82-6FAB-4B7A-9EEA-3E2E451CA2CF", + "Group": "moguext\\海外", + "ID": "dfa45f6b-4e19-4229-b94d-0c95b6190e15", + "Name": "web2", + "OpenEmbedded": true, + "RDP": {} + }, + { + "Url": "43.135.25.193:33389", + "ConnectionType": 1, + "CredentialConnectionID": "1310CF82-6FAB-4B7A-9EEA-3E2E451CA2CF", + "Group": "moguext\\海外", + "ID": "645f675f-9ff4-4e31-a663-6ec9d7370bcf", + "Name": "web3", + "OpenEmbedded": true, + "RDP": {} + }, + { + "Url": "82.157.14.24:33389", + "ConnectionType": 1, + "CredentialConnectionID": "1310CF82-6FAB-4B7A-9EEA-3E2E451CA2CF", + "Group": "moguext\\国内", + "ID": "5f98d041-50dc-4f9b-94e4-3a6019c05eaf", + "Name": "web3", + "OpenEmbedded": true, + "RDP": {} + }, + { + "Url": "121.5.26.77:33389", + "ConnectionType": 1, + "CredentialConnectionID": "1310CF82-6FAB-4B7A-9EEA-3E2E451CA2CF", + "Group": "moguext", + "ID": "4ad621ac-fd72-461b-8fb7-475654c1d616", + "Name": "测试环境", + "OpenEmbedded": true, + "RDP": {} + }, + { + "ConnectionType": 25, + "CredentialConnectionID": "1310CF82-6FAB-4B7A-9EEA-3E2E451CA2CF", + "Group": "moguext\\国内", + "ID": "d73becde-7ef3-4a03-9dcd-b6d2f74b5938", + "Name": "国内" + }, + { + "ConnectionType": 25, + "CredentialConnectionID": "1310CF82-6FAB-4B7A-9EEA-3E2E451CA2CF", + "Group": "moguext\\海外", + "ID": "54e52304-dc8c-44e3-b050-d82b17c3eb81", + "Name": "海外" + }, + { + "Url": "172.27.27.21", + "ConnectionType": 1, + "Group": "家", + "ID": "4a19dfdf-3774-49c2-81ee-7d3846a4a858", + "Name": "家", + "OpenEmbedded": true, + "MetaInformation": { + "Cost": 0.0, + "PasswordHistory": [ + { + "LoggedModifiedBy": "ZHANGZHE-PC\\zhangzhe", + "ModifiedBy": "ZHANGZHE-PC\\zhangzhe", + "ModifiedDateTimeString": "2023-09-01T01:46:09", + "SafePassword": "JQaNT6ye7Lk=" + }, + { + "LoggedModifiedBy": "ZHANGZHE-PC\\zhangzhe", + "ModifiedBy": "ZHANGZHE-PC\\zhangzhe", + "ModifiedDateTimeString": "2023-03-30T02:42:27", + "SafePassword": "o63hoW1KAMI=" + } + ] + }, + "RDP": { "SafePassword": "UwNATVDYiZ0=", "UserName": "zpc" } + }, + { + "ConnectionType": 25, + "Group": "家", + "ID": "6c79556d-587f-40ef-bfb0-304445f8bb4a", + "Name": "家" + }, + { + "Url": "81.70.0.132:33389", + "ConnectionType": 1, + "CredentialConnectionID": "1310CF82-6FAB-4B7A-9EEA-3E2E451CA2CF", + "Group": "moguext\\国内", + "ID": "10979a05-9984-4564-9fef-cdf1e891dce7", + "Name": "扩展服务", + "OpenEmbedded": true, + "RDP": {} + }, + { + "Url": "43.129.199.134:33389", + "ConnectionType": 1, + "CredentialConnectionID": "1310CF82-6FAB-4B7A-9EEA-3E2E451CA2CF", + "Group": "moguext\\海外", + "ID": "ddeec6fa-6fae-4068-8c18-17ec0c05083e", + "Name": "扩展服务", + "OpenEmbedded": true, + "RDP": {} + }, + { + "ConnectionType": 25, + "CredentialConnectionID": "1310CF82-6FAB-4B7A-9EEA-3E2E451CA2CF", + "Group": "moguext\\其它", + "ID": "ee02aa6b-c8d9-4cf9-a4c6-38cc0e1fe205", + "Name": "其它" + }, + { + "Url": "112.124.23.127:33389", + "ConnectionType": 1, + "Group": "moguext\\国内", + "ID": "e0062dd8-71de-4b61-8aaa-1f072ecae07f", + "Name": "跳板机", + "OpenEmbedded": true, + "MetaInformation": { + "Cost": 0.0, + "PasswordHistory": [ + { + "LoggedModifiedBy": "ZHANGZHE-PC\\zhangzhe", + "ModifiedBy": "ZHANGZHE-PC\\zhangzhe", + "ModifiedDateTimeString": "2023-07-28T05:59:14", + "SafePassword": "GmAg8YgbEf2Jo1yVEEXGGckO+rAJWTrK" + } + ] + }, + "RDP": { + "SafePassword": "eUzDxJLEO+b1vA8xlsvMWM59DNt0JJz+", + "UserName": "zhangzhe" + } + }, + { + "Url": "112.124.23.127:33389", + "ConnectionType": 1, + "Group": "moguext\\国内", + "ID": "5cd54c98-ef36-4b05-ac54-8da50d057700", + "Name": "跳板机1", + "OpenEmbedded": true, + "MetaInformation": { + "Cost": 0.0, + "PasswordHistory": [ + { + "LoggedModifiedBy": "ZHANGZHE-PC\\zhangzhe", + "ModifiedBy": "ZHANGZHE-PC\\zhangzhe", + "ModifiedDateTimeString": "2023-09-19T08:09:34", + "SafePassword": "omcbYur0NK7sYHNDaWy6ZskO+rAJWTrK" + } + ] + }, + "RDP": { + "SafePassword": "fV8bd+9uDurFrlkdVsxGqc59DNt0JJz+", + "UserName": "yinming" + } + }, + { + "Url": "43.143.246.189:33389", + "ConnectionType": 1, + "CredentialConnectionID": "1310CF82-6FAB-4B7A-9EEA-3E2E451CA2CF", + "Group": "moguext\\其它", + "ID": "8493afcd-6f3f-41a0-87e7-f057799858bd", + "Name": "西南交大服务器", + "OpenEmbedded": true, + "RDP": {} + }, + { + "Url": "146.56.198.144:33389", + "ConnectionType": 1, + "CredentialConnectionID": "1310CF82-6FAB-4B7A-9EEA-3E2E451CA2CF", + "Group": "moguext\\其它", + "ID": "e6820f26-81b8-4713-be5a-5b62dc1ea436", + "Name": "西南交大正式服务器-跳板机", + "OpenEmbedded": true, + "RDP": {} + } + ], + "DatabaseID": "a9c3669a-1bb4-426a-98f6-6d03854e8a09", + "Version": 2 +} diff --git a/其它/圣剑-工作文档.docx b/其它/圣剑-工作文档.docx new file mode 100644 index 0000000000000000000000000000000000000000..57e99c1c6dbfb97522688c1f4f07a4f80d7b4f68 GIT binary patch literal 27874 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

#ZWgw6T_3KJiZ`&oCZ3L=UQOBhVR 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 E@_b%E{v!T=|(X(8~T%yX5Ue{YPn%9Tw~T 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 c1lmCH2K<9JP5~~>eK~5gc-#U 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�BjQlkqZ%4KQbQ?^S`s@e}sMUzq~idmr_7z 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

ja2PfpL^ECiw?m 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'2023-04-23';--ûѼ¼ + +select top 1000 * from CloudPlatFormUserData.dbo.T_Users_ConsumeAgreement;--ǩԼ + +select top 1000 * from CloudPlatFormUserData.dbo.T_Users_ConsumeMoneyList;--ֵ¼ + diff --git a/常用SQL/SQLQuery2.sql b/常用SQL/SQLQuery2.sql new file mode 100644 index 0000000..1fb2844 --- /dev/null +++ b/常用SQL/SQLQuery2.sql @@ -0,0 +1 @@ +select ISNULL(sum(price),0) from HissAI_UserData.dbo.T_User_OrderComplete where userid='' \ No newline at end of file diff --git a/常用SQL/SQLQuery3sql.sql b/常用SQL/SQLQuery3sql.sql new file mode 100644 index 0000000..60b61eb --- /dev/null +++ b/常用SQL/SQLQuery3sql.sql @@ -0,0 +1,50 @@ +insert into HissAI_Res.dbo.T_App_Language(Name,Value,Language) +SELECT '', 'unlimited', 'en' +UNION ALL +SELECT '羰', 'ghibli scenery', 'en' +UNION ALL +SELECT '', 'ghibli figure', 'en' +UNION ALL +SELECT 'ˮī', 'ink painting', 'en' +UNION ALL +SELECT 'ͷ', 'art avatar', 'en' +UNION ALL +SELECT 'logo', 'commercial logo', 'en' +UNION ALL +SELECT 'º', 'Makoto Shinkai', 'en' +UNION ALL +SELECT '߸', 'Comic draft', 'en' +UNION ALL +SELECT '־', 'magazine style', 'en' +UNION ALL +SELECT 'ֶ', '3D to 2D', 'en' +UNION ALL +SELECT 'Q', 'Q-version figure', 'en' +UNION ALL +SELECT 'ϴɹȴ', 'Uploaded, waiting for review', 'en' +UNION ALL +SELECT 'ɹ', 'Created a successful order', 'en' +UNION ALL +SELECT 'ɾɹ', 'successfully deleted', 'en' +UNION ALL +SELECT '˶Ʒѷţظύ', 'Already issued, please do not resubmit', 'en' +UNION ALL +SELECT 'ղسɹ', 'Collection successfully', 'en' +UNION ALL +SELECT '¼ɹ', 'login successful', 'en' +UNION ALL +SELECT '滭㲻', 'drawing point is empty', 'en' +UNION ALL +SELECT 'Ʒɹ', 'Product released successfully', 'en' +UNION ALL +SELECT 'ҪϴͼƬ', 'The image to upload does not exist', 'en' +UNION ALL +SELECT '滭100', 'Painting Points 100', 'en' +UNION ALL +SELECT '滭350', 'Drawing Points 350', 'en' +UNION ALL +SELECT '滭600', 'Drawing Points 600', 'en' +UNION ALL +SELECT 'ղԴ', 'favorite resource does not exist', 'en' +UNION ALL +SELECT 'ȡղسɹ', 'Cancel favorite successfully', 'en' \ No newline at end of file diff --git a/常用SQL/快速启动.sql b/常用SQL/快速启动.sql new file mode 100644 index 0000000..3b10eb8 --- /dev/null +++ b/常用SQL/快速启动.sql @@ -0,0 +1,25 @@ +SELECT * FROM Phone300_VL_UI_CBT.dbo.T_VL_UI_Epg_CategoryCfg where appId=1 and EpgParentCategory!=0 + +alter table Phone300_VL_UI_CBT.dbo.T_VL_UI_Epg_CategoryCfg add IsQuickStartPopUp bit default 0 not null; +alter table Phone300_VL_UI_CBT.dbo.T_VL_UI_Epg_CategoryCfg add IsOnlineQuickStartPopUp bit default 0 not null; +alter table Phone300_VL_UI_CBT.dbo.T_VL_UI_GameInputSetting add IsToggleKeyboard bit default 0 not null; +alter table Phone300_VL_UI_CBT.dbo.T_VL_UI_Epg_Cfg add IsOnlineQuickStartPopUp bit default 0 not null; +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Ϸ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_VL_UI_Epg_CategoryCfg', @level2type=N'COLUMN',@level2name=N'IsOnlineQuickStartPopUp' +GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Ϸ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_VL_UI_Epg_CategoryCfg', @level2type=N'COLUMN',@level2name=N'IsQuickStartPopUp' +GO + update Phone300_VL_UI_CBT.dbo.T_VL_UI_Epg_CategoryCfg set IsQuickStartPopUp=1 where Extend1 like '%%' + +select* from Phone300_VL_UI_CBT.dbo.T_VL_UI_GameInputSetting + + + + select * from Phone300_VL_UI_CBT.dbo.T_VL_UI_Epg_Cfg + + alter table Phone300_VL_UI_CBT.dbo.T_VL_UI_Epg_Cfg add IsOnlineQuickStartPopUp bit default 0 not null; + + + +alter table Phone300_VL_UI_CBT.dbo.T_VL_UI_Epg_Cfg add StartEnableTime datetime; +alter table Phone300_VL_UI_CBT.dbo.T_VL_UI_Epg_Cfg add EndEnableTime datetime; + \ No newline at end of file diff --git a/常用SQL/成就表.sql b/常用SQL/成就表.sql new file mode 100644 index 0000000..13f8795 --- /dev/null +++ b/常用SQL/成就表.sql @@ -0,0 +1,95 @@ +USE [MoguExt] +GO + +/****** Object: Table [dbo].[T_User_Achievement] Script Date: 2022/10/10 11:25:37 ******/ +SET ANSI_NULLS ON +GO + +SET QUOTED_IDENTIFIER ON +GO + +CREATE TABLE [dbo].[T_User_Achievement]( + [Id] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL, + [AchievemenGuid] [nvarchar](64) NULL, + [BossId] [nvarchar](50) NULL, + [AppId] [int] NOT NULL, + [AchievementType] [int] NOT NULL, + [AchievementName] [nvarchar](200) NULL, + [SuccessIocn] [int] NOT NULL, + [ProcessingIocn] [int] NOT NULL, + [UndoneIocn] [int] NOT NULL, + [Diamond] [int] NOT NULL, + [MoguBi] [int] NOT NULL, + [RestrictedDate] [datetime] NOT NULL, + [OrderById] [int] NOT NULL, + [ShowText] [nvarchar](200) NULL, + [CreateDateTime] [datetime] NOT NULL, + [UpdateTimeDate] [datetime] NOT NULL, + [IsEnable] [bit] NOT NULL, + [BackgroundIocn] [int] NOT NULL, + [RewardText] [nvarchar](200) NULL, + CONSTRAINT [PK_T_USER_ACHIEVEMENT] PRIMARY KEY CLUSTERED +( + [Id] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] +) ON [PRIMARY] +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Ψһ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_Achievement', @level2type=N'COLUMN',@level2name=N'AchievemenGuid' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_Achievement', @level2type=N'COLUMN',@level2name=N'BossId' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'app' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_Achievement', @level2type=N'COLUMN',@level2name=N'AppId' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ɾͣ1:Ϸ 2 ģ3.ֵ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_Achievement', @level2type=N'COLUMN',@level2name=N'AchievementType' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ɾ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_Achievement', @level2type=N'COLUMN',@level2name=N'AchievementName' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ɾͼƬ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_Achievement', @level2type=N'COLUMN',@level2name=N'SuccessIocn' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ɾͽͼƬ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_Achievement', @level2type=N'COLUMN',@level2name=N'ProcessingIocn' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ɾδͼƬ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_Achievement', @level2type=N'COLUMN',@level2name=N'UndoneIocn' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ɾͽʯ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_Achievement', @level2type=N'COLUMN',@level2name=N'Diamond' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ɾͽĢ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_Achievement', @level2type=N'COLUMN',@level2name=N'MoguBi' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ɾ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_Achievement', @level2type=N'COLUMN',@level2name=N'RestrictedDate' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'˳򣬳ɾ˳' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_Achievement', @level2type=N'COLUMN',@level2name=N'OrderById' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ʾİ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_Achievement', @level2type=N'COLUMN',@level2name=N'ShowText' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ʱ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_Achievement', @level2type=N'COLUMN',@level2name=N'CreateDateTime' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'޸ʱ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_Achievement', @level2type=N'COLUMN',@level2name=N'UpdateTimeDate' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Ƿ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_Achievement', @level2type=N'COLUMN',@level2name=N'IsEnable' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ɾ鱳ͼƬ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_Achievement', @level2type=N'COLUMN',@level2name=N'BackgroundIocn' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'İ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_Achievement', @level2type=N'COLUMN',@level2name=N'RewardText' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ûɾ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_Achievement' +GO + + diff --git a/常用SQL/成就表条件表.sql b/常用SQL/成就表条件表.sql new file mode 100644 index 0000000..bd22d6f --- /dev/null +++ b/常用SQL/成就表条件表.sql @@ -0,0 +1,62 @@ +USE [MoguExt] +GO + +/****** Object: Table [dbo].[T_User_AchievementTrigger] Script Date: 2022/10/10 11:25:30 ******/ +SET ANSI_NULLS ON +GO + +SET QUOTED_IDENTIFIER ON +GO + +CREATE TABLE [dbo].[T_User_AchievementTrigger]( + [Id] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL, + [AchievementTriggerName] [nvarchar](50) NULL, + [AchievementTriggerCondition] [nvarchar](20) NULL, + [AchievementTriggerValue] [nvarchar](300) NULL, + [AchievementTriggerParams] [nvarchar](300) NULL, + [AchievementTriggerTriggerType] [int] NOT NULL, + [CreateDateTime] [datetime] NULL, + [UpdateDateTime] [datetime] NULL, + [Identigier] [nvarchar](64) NULL, + [AchievementTriggerMode] [int] NOT NULL, + CONSTRAINT [PK_T_USER_ACHIEVEMENTTRIGGER] PRIMARY KEY CLUSTERED +( + [Id] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] +) ON [PRIMARY] +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementTrigger', @level2type=N'COLUMN',@level2name=N'Id' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementTrigger', @level2type=N'COLUMN',@level2name=N'AchievementTriggerName' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementTrigger', @level2type=N'COLUMN',@level2name=N'AchievementTriggerCondition' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ֵ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementTrigger', @level2type=N'COLUMN',@level2name=N'AchievementTriggerValue' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementTrigger', @level2type=N'COLUMN',@level2name=N'AchievementTriggerParams' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ʶ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementTrigger', @level2type=N'COLUMN',@level2name=N'AchievementTriggerTriggerType' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ʱ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementTrigger', @level2type=N'COLUMN',@level2name=N'CreateDateTime' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'޸ʱ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementTrigger', @level2type=N'COLUMN',@level2name=N'UpdateDateTime' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'֧ʶ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementTrigger', @level2type=N'COLUMN',@level2name=N'Identigier' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ʽ1,.2ۼƣ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementTrigger', @level2type=N'COLUMN',@level2name=N'AchievementTriggerMode' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ɾʹ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementTrigger' +GO + + diff --git a/常用SQL/成就表进度表.sql b/常用SQL/成就表进度表.sql new file mode 100644 index 0000000..cbf37e4 --- /dev/null +++ b/常用SQL/成就表进度表.sql @@ -0,0 +1,77 @@ +USE [MoguExt] +GO + +/****** Object: Table [dbo].[T_User_AchievementSpeed] Script Date: 2022/10/10 11:25:45 ******/ +SET ANSI_NULLS ON +GO + +SET QUOTED_IDENTIFIER ON +GO + +CREATE TABLE [dbo].[T_User_AchievementSpeed]( + [Id] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL, + [AchievemenGuid] [nvarchar](64) NULL, + [AchievemenName] [nvarchar](200) NULL, + [AchievemenTriggerId] [int] NOT NULL, + [AchievemenTriggerName] [nvarchar](200) NULL, + [IsComplete] [bit] NOT NULL, + [UserId] [nvarchar](200) NULL, + [BossId] [nvarchar](200) NULL, + [AppId] [int] NOT NULL, + [CreateDateTime] [datetime] NOT NULL, + [Remark] [nvarchar](300) NULL, + [Parameter1] [nvarchar](300) NULL, + [Parameter2] [nvarchar](300) NULL, + [Parameter3] [nvarchar](300) NULL, + CONSTRAINT [PK_T_USER_ACHIEVEMENTSPEED] PRIMARY KEY CLUSTERED +( + [Id] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] +) ON [PRIMARY] +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementSpeed', @level2type=N'COLUMN',@level2name=N'Id' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ɾΨһ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementSpeed', @level2type=N'COLUMN',@level2name=N'AchievemenGuid' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ɾ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementSpeed', @level2type=N'COLUMN',@level2name=N'AchievemenName' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ɾͽ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementSpeed', @level2type=N'COLUMN',@level2name=N'AchievemenTriggerId' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ɾͽ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementSpeed', @level2type=N'COLUMN',@level2name=N'AchievemenTriggerName' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Ƿ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementSpeed', @level2type=N'COLUMN',@level2name=N'IsComplete' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ûid' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementSpeed', @level2type=N'COLUMN',@level2name=N'UserId' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementSpeed', @level2type=N'COLUMN',@level2name=N'BossId' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'app' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementSpeed', @level2type=N'COLUMN',@level2name=N'AppId' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ʱ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementSpeed', @level2type=N'COLUMN',@level2name=N'CreateDateTime' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ע' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementSpeed', @level2type=N'COLUMN',@level2name=N'Remark' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'1' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementSpeed', @level2type=N'COLUMN',@level2name=N'Parameter1' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'2' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementSpeed', @level2type=N'COLUMN',@level2name=N'Parameter2' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'3' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementSpeed', @level2type=N'COLUMN',@level2name=N'Parameter3' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ûɵijɾͽ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementSpeed' +GO + diff --git a/常用SQL/排行榜sql.sql b/常用SQL/排行榜sql.sql new file mode 100644 index 0000000..48789cb --- /dev/null +++ b/常用SQL/排行榜sql.sql @@ -0,0 +1,37 @@ + --ް ѯյӸߵͽн ȥޱвѯµĵݣ + --ٸݵ޵ͼƬҵӦûûз + select UserId,Totals,UserCount,(select NickName from HissAI_UserData.dbo.T_Users u where u.Id=t.UserId ) NickName, + (select UserIconUrl from HissAI_UserData.dbo.T_Users_Data u where u.UserId=t.UserId ) UserIconUrl + from ( + select top 30 UserId,sum(c) Totals,count(1) UserCount from ( + select DrawId,count(1) c, + (select top 1 UserId from HissAI_UserData.dbo.T_User_Gallery where DrawId=l.DrawId) UserId + from ( select DrawId,CreateTime as ExaminationDatetime,UserId from HissAI_UserData.dbo.T_User_Like li ) l + where ExaminationDatetime>='2024-02-01' and ExaminationDatetime<'2024-03-01' group by DrawId + ) x where UserId!='' group by UserId order by Totals desc +) t order by Totals desc + +-- Ȳѯ»жûȻûзͳ + select UserId,Totals,UserCount,(select NickName from HissAI_UserData.dbo.T_Users u where u.Id=t.UserId ) NickName,(select UserIconUrl from HissAI_UserData.dbo.T_Users_Data u where u.UserId=t.UserId ) UserIconUrl from ( + select top 30 UserId,count(1) Totals,count(1) UserCount from HissAI_UserData.dbo.T_User_Gallery where ExaminationDatetime>='2024-02-01' and ExaminationDatetime<'2024-03-01' group by userId + order by Totals desc + ) t order by Totals desc + + --ͬ ȲѯеĻͬݣٸĻͬҵӦĻûȻûͳƻͬû +select UserId,Totals,UserCount,(select NickName from HissAI_UserData.dbo.T_Users u where u.Id=t.UserId ) NickName,(select UserIconUrl from HissAI_UserData.dbo.T_Users_Data u where u.UserId=t.UserId ) UserIconUrl from ( + select top 30 UserId,SUM(Totals) Totals,count(1) UserCount from ( + select FollowDrawId,count(1) Totals from ( + select FollowDrawId,CreateTime ExaminationDatetime from HissAI_Data.dbo.T_Draw_Log where FollowDrawId!='' and IsException!=1 + ) Draw_Log + where ExaminationDatetime>='2024-02-01' and ExaminationDatetime<'2024-03-01' + group by FollowDrawId + ) drawlog inner join HissAI_UserData.dbo.T_User_Gallery g + on g.DrawId=drawlog.FollowDrawId where UserId!=0 + group by UserId order by Totals desc + ) t order by Totals desc + + + + + + diff --git a/常用SQL/推出游戏条件表.sql b/常用SQL/推出游戏条件表.sql new file mode 100644 index 0000000..19e6157 --- /dev/null +++ b/常用SQL/推出游戏条件表.sql @@ -0,0 +1,79 @@ +USE [MoguExt] +GO + +/****** Object: Table [dbo].[T_Ext_GamePopup] Script Date: 2022/10/10 11:26:49 ******/ +SET ANSI_NULLS ON +GO + +SET QUOTED_IDENTIFIER ON +GO + +CREATE TABLE [dbo].[T_Ext_GamePopup]( + [Id] [numeric](18, 0) IDENTITY(1,1) NOT FOR REPLICATION NOT NULL, + [ExtGamePopupId] [nvarchar](64) NULL, + [ProductId] [nvarchar](100) NULL, + [ProductImage] [int] NOT NULL, + [ProductType] [int] NOT NULL, + [AppId] [int] NOT NULL, + [Continent] [nvarchar](200) NULL, + [CountryName] [nvarchar](200) NULL, + [BossId] [nvarchar](200) NULL, + [OnlinePlatform] [nvarchar](100) NULL, + [CreateDateTime] [datetime] NOT NULL, + [UpdateDateTime] [datetime] NOT NULL, + [ExtGameName] [nvarchar](200) NULL, + [OrderById] [int] NOT NULL, + [IsState] [bit] NOT NULL, + CONSTRAINT [PK_T_EXT_GAMEPOPUP] PRIMARY KEY CLUSTERED +( + [Id] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] +) ON [PRIMARY] +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ϵͳţڹ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Ext_GamePopup', @level2type=N'COLUMN',@level2name=N'ExtGamePopupId' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Ʒ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Ext_GamePopup', @level2type=N'COLUMN',@level2name=N'ProductId' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ƷͼƬ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Ext_GamePopup', @level2type=N'COLUMN',@level2name=N'ProductImage' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Ʒ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Ext_GamePopup', @level2type=N'COLUMN',@level2name=N'ProductType' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'app' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Ext_GamePopup', @level2type=N'COLUMN',@level2name=N'AppId' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Ext_GamePopup', @level2type=N'COLUMN',@level2name=N'Continent' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Ext_GamePopup', @level2type=N'COLUMN',@level2name=N'CountryName' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Ext_GamePopup', @level2type=N'COLUMN',@level2name=N'BossId' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ƽ̨' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Ext_GamePopup', @level2type=N'COLUMN',@level2name=N'OnlinePlatform' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ʱ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Ext_GamePopup', @level2type=N'COLUMN',@level2name=N'CreateDateTime' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'޸ʱ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Ext_GamePopup', @level2type=N'COLUMN',@level2name=N'UpdateDateTime' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Ext_GamePopup', @level2type=N'COLUMN',@level2name=N'ExtGameName' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ȼ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Ext_GamePopup', @level2type=N'COLUMN',@level2name=N'OrderById' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Ƿ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Ext_GamePopup', @level2type=N'COLUMN',@level2name=N'IsState' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'˳Ϸʾ͹' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Ext_GamePopup' +GO + + diff --git a/常用SQL/每月统计查询-国内-不包含游客.sql b/常用SQL/每月统计查询-国内-不包含游客.sql new file mode 100644 index 0000000..032a2c5 --- /dev/null +++ b/常用SQL/每月统计查询-国内-不包含游客.sql @@ -0,0 +1,32 @@ +--国内tv +select count(1) from ( +select UserId from CloudPlatFormUserData.dbo.T_User_Login where appid=0 and LoginTime>='2023-09-01' and LoginTime<'2023-10-01' +group by UserId +) t + +--国内 tv new +select count(1) from ( +select UserId from CloudPlatFormUserData.dbo.T_User_Login where appid=19 and LoginTime>='2023-09-01' and LoginTime<'2023-10-01' +group by UserId +) t + +--国内 主包 +select count(1) from ( +select UserId from CloudPlatFormUserData.dbo.T_User_Login where appid=1 and LoginTime>='2023-09-01' and LoginTime<'2023-10-01' and BossId!='25001' + group by UserId +) t + +--国内 既游 +select count(1) from ( +select UserId from CloudPlatFormUserData.dbo.T_User_Login where appid=3 and LoginTime>='2023-09-01' and LoginTime<'2023-10-01' and BossId!='25001' + group by UserId +) t + +--国内 ios +select count(1) from ( +select UserId from CloudPlatFormUserData.dbo.T_User_Login where appid=1 and LoginTime>='2023-09-01' and LoginTime<'2023-10-01' and BossId='25001' + group by UserId +) t + + + diff --git a/常用SQL/每月统计查询-国内.sql b/常用SQL/每月统计查询-国内.sql new file mode 100644 index 0000000..8e0344a --- /dev/null +++ b/常用SQL/每月统计查询-国内.sql @@ -0,0 +1,29 @@ +select count(1) from ( + +SELECT UserID FROM MoguExt.dbo.T_Log_Login where CreateTime_Day>=20230801 and CreateTime_Day<20230901 and PlatformType='TV' and UserType>0 +and AppId=0 +group by userid +) t + + +select count(1) from ( + +SELECT UserID FROM MoguExt.dbo.T_Log_Login where CreateTime_Day>=20230801 and CreateTime_Day<20230901 and PlatformType='APP_ANDROID' and UserType>0 +and AppId=1 +group by userid +) t + + + + +select count(1) from ( + +SELECT UserID FROM MoguExt.dbo.T_Log_Login where CreateTime_Day>=20230801 and CreateTime_Day<20230901 and PlatformType='IOS' and UserType>0 +and AppId=1 +group by userid +) t + + +select count(1) from ( +select UserId from CloudPlatFormUserData.dbo.T_User_Login where appid=3 and LoginTime>='2023-04-01' and LoginTime<'2023-05-01' and BossID!='25001' group by UserId +) t diff --git a/常用SQL/每月统计查询-国外.sql b/常用SQL/每月统计查询-国外.sql new file mode 100644 index 0000000..4ab3bee --- /dev/null +++ b/常用SQL/每月统计查询-国外.sql @@ -0,0 +1,83 @@ + + +select count(1) from ( +select UserId from CloudPlatFormUserData.dbo.T_User_Login where appid=4 and LoginTime>='2023-04-01' and LoginTime<'2023-05-01' +group by UserId +) t + + + +select count(1) from ( +select UserId from CloudPlatFormUserData.dbo.T_User_Login where appid=10 and LoginTime>='2023-04-01' and LoginTime<'2023-05-01' and BossId='25001' +group by UserId +) t + + + + +select count(1) from ( +select UserId from CloudPlatFormUserData.dbo.T_User_Login where appid=7 and LoginTime>='2023-04-01' and LoginTime<'2023-05-01' and BossId!='27002' + group by UserId +) t + +select count(1) from ( +select UserId from CloudPlatFormUserData.dbo.T_User_Login where appid=7 and LoginTime>='2023-04-01' and LoginTime<'2023-05-01' and BossId='27002' + group by UserId +) t + +select count(1) from ( +select UserId from CloudPlatFormUserData.dbo.T_User_Login where appid=8 and LoginTime>='2023-04-01' and LoginTime<'2023-05-01' and BossId='27002' group by UserId +) t + + +select count(1) from ( +select UserId from CloudPlatFormUserData.dbo.T_User_Login where appid=9 and LoginTime>='2023-04-01' and LoginTime<'2023-05-01' group by UserId +) t + +select count(1) from ( +select UserId from CloudPlatFormUserData.dbo.T_User_Login where appid=11 and LoginTime>='2023-04-01' and LoginTime<'2023-05-01' group by UserId +) t + + +select 12,count(1) from ( +select UserId from CloudPlatFormUserData.dbo.T_User_Login where appid=12 and LoginTime>='2023-04-01' and LoginTime<'2023-05-01' group by UserId +) t ; + +select 13,count(1) from ( +select UserId from CloudPlatFormUserData.dbo.T_User_Login where appid=13 and LoginTime>='2023-04-01' and LoginTime<'2023-05-01' group by UserId +) t ; + +select 14,count(1) from ( +select UserId from CloudPlatFormUserData.dbo.T_User_Login where appid=14 and LoginTime>='2023-04-01' and LoginTime<'2023-05-01' group by UserId +) t ; +select 15,count(1) from ( +select UserId from CloudPlatFormUserData.dbo.T_User_Login where appid=15 and LoginTime>='2023-04-01' and LoginTime<'2023-05-01' group by UserId +) t ; + + + + + + + + + + +select count(1) from ( +select UserId from CloudPlatFormUserData.dbo.T_User_Login where appid=4 and LoginTime>='2023-01-01' and LoginTime<'2023-02-01' group by UserId +) t + + +select count(1) from ( +select UserId from CloudPlatFormUserData.dbo.T_User_Login where appid=8 and BossId='27002' and LoginTime>='2023-01-01' and LoginTime<'2023-02-01' group by UserId +) t + + +select count(1) from ( +select UserId from CloudPlatFormUserData.dbo.T_User_Login where appid=11 and BossId='27002' and LoginTime>='2023-01-01' and LoginTime<'2023-02-01' group by UserId +) t + + + + + diff --git a/常用SQL/活动4003.sql b/常用SQL/活动4003.sql new file mode 100644 index 0000000..44a97e6 --- /dev/null +++ b/常用SQL/活动4003.sql @@ -0,0 +1,6 @@ +select count( distinct UserID ) from MoguExt.dbo.T_HD_UserLog where HdID=4003 +select sum(ParamsInt1) from MoguExt.dbo.T_HD_UserLog where HdID=4003 +select * from MoguExt.dbo.T_HD_UserLog where HdID=4003 +select Params1,sum(ParamsInt1),((select top 1 Params2 from MoguExt.dbo.T_HD_UserLog where HdID=4003 and Params1=logx.Params1 and ParamsInt2=1 )+'-'+(select top 1 Params2 from MoguExt.dbo.T_HD_UserLog where HdID=4003 and Params1=logx.Params1 and ParamsInt2=3 )) k from MoguExt.dbo.T_HD_UserLog logx where HdID=4003 group by Params1 + + \ No newline at end of file diff --git a/常用SQL/游戏多语言.sql b/常用SQL/游戏多语言.sql new file mode 100644 index 0000000..1d05db3 --- /dev/null +++ b/常用SQL/游戏多语言.sql @@ -0,0 +1,96 @@ +-- ================================================ +-- Template generated from Template Explorer using: +-- Create Procedure (New Menu).SQL +-- +-- Use the Specify Values for Template Parameters +-- command (Ctrl-Shift-M) to fill in the parameter +-- values below. +-- +-- This block of comments will not be included in +-- the definition of the procedure. +-- ================================================ +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +-- ============================================= +-- Author: +-- Create date: +-- Description: ͬϷԣAppId4ͬAppId +-- ============================================= +CREATE PROCEDURE [dbo].[Game_Multilingual_Synchronization] + +AS +BEGIN +declare @DefaultCfgCount int ;--Ģ +declare @CfgAppId int ;--AppId +declare @CfgCount int ;--AppidԵ + select@DefaultCfgCount=count(1) from MoguExt.dbo.T_Multilingual_Cfg where appid=4 and Extended1='Ϸ'; + DECLARE CfgData_Cursor CURSOR FOR + selectAppId,count(1) from MoguExt.dbo.T_Multilingual_Cfg where appid!=4 and Extended1='Ϸ' group by AppId; + --α + OPEN CfgData_Cursor + + FETCH NEXT FROM CfgData_Cursor INTO @CfgAppId,@CfgCount + --ѭ + WHILE @@FETCH_STATUS = 0 + BEGIN + if @CfgCount<@DefaultCfgCount + begin + Print ('ͬ=='+Convert(nvarchar(100),@CfgAppId)+'ԭ==>'+Convert(nvarchar(100),@CfgCount)); + insert into MoguExt.dbo.T_Multilingual_Cfg([ResId] + ,[CfgType] + ,[ResType] + ,[Language] + ,[Value] + ,[Uri] + ,[Explain] + ,[IsExport] + ,[CreateTime] + ,[Extended1] + ,[Extended2] + ,[ExtendedInt1] + ,[ExtendedInt2] + ,[AppId] + ,[Title] + ,[Title2] + ,[ImageId] + ,[ImageId2] + ,[ImageId3] + ,[ImageId4]) + select [ResId] + ,[CfgType] + ,[ResType] + ,[Language] + ,[Value] + ,[Uri] + ,[Explain] + ,[IsExport] + ,[CreateTime] + ,[Extended1] + ,[Extended2] + ,[ExtendedInt1] + ,[ExtendedInt2] + ,@CfgAppId + ,[Title] + ,[Title2] + ,[ImageId] + ,[ImageId2] + ,[ImageId3] + ,[ImageId4] from MoguExt.dbo.T_Multilingual_Cfg where Extended1='Ϸ' and appid=4 and Value not in ( + select Value from MoguExt.dbo.T_Multilingual_Cfg where appid=@CfgAppId and Extended1='Ϸ' ) + + end + + else + begin + print('appid{'+Convert(nvarchar(100),@CfgAppId)+'}Ҫͬ') + end + + FETCH NEXT FROM CfgData_Cursor INTO @CfgAppId,@CfgCount + END; + --رα + CLOSE CfgData_Cursor; + DEALLOCATE CfgData_Cursor; +END +GO diff --git a/常用SQL/游戏系列表.sql b/常用SQL/游戏系列表.sql new file mode 100644 index 0000000..1ce2071 --- /dev/null +++ b/常用SQL/游戏系列表.sql @@ -0,0 +1,51 @@ +USE [CloudPlatFormData] +GO + +/****** Object: Table [dbo].[T_CGame_SeriesGames] Script Date: 2022/10/10 11:43:32 ******/ +SET ANSI_NULLS ON +GO + +SET QUOTED_IDENTIFIER ON +GO + +CREATE TABLE [dbo].[T_CGame_SeriesGames]( + [Id] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL, + [SeriesId] [int] NOT NULL, + [SeriesName] [nvarchar](100) NULL, + [Remark] [nvarchar](200) NULL, + [OrderById] [int] NOT NULL, + [CreateDateTime] [datetime] NULL, + [UpdateDateTime] [datetime] NULL, + [IsOnline] [bit] NOT NULL, + CONSTRAINT [PK_T_CGAME_SERIESGAMES] PRIMARY KEY CLUSTERED +( + [Id] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] +) ON [PRIMARY] +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ϵбʶ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_CGame_SeriesGames', @level2type=N'COLUMN',@level2name=N'SeriesId' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ϵ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_CGame_SeriesGames', @level2type=N'COLUMN',@level2name=N'SeriesName' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ע' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_CGame_SeriesGames', @level2type=N'COLUMN',@level2name=N'Remark' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_CGame_SeriesGames', @level2type=N'COLUMN',@level2name=N'OrderById' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ʱ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_CGame_SeriesGames', @level2type=N'COLUMN',@level2name=N'CreateDateTime' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'޸ʱ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_CGame_SeriesGames', @level2type=N'COLUMN',@level2name=N'UpdateDateTime' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Ƿ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_CGame_SeriesGames', @level2type=N'COLUMN',@level2name=N'IsOnline' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'˳ϷʱϵͳϷ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_CGame_SeriesGames' +GO + + diff --git a/常用SQL/用户反馈表.sql b/常用SQL/用户反馈表.sql new file mode 100644 index 0000000..894775c --- /dev/null +++ b/常用SQL/用户反馈表.sql @@ -0,0 +1,49 @@ +USE [HissAI_Data] +GO + +/****** Object: Table [dbo].[T_User_Feedback] Script Date: 2023/5/8 10:16:42 ******/ +SET ANSI_NULLS ON +GO + +SET QUOTED_IDENTIFIER ON +GO + +CREATE TABLE [dbo].[T_User_Feedback]( + [Id] [int] IDENTITY(1,1) NOT NULL, + [UserId] [bigint] NOT NULL, + [Description] [nvarchar](1000) NULL, + [ContactInfo] [nvarchar](100) NULL, + [AppId] [int] NOT NULL, + [CreateDateTime] [datetime] NOT NULL, + CONSTRAINT [PK__T_User_F__3214EC27B1F8D290] PRIMARY KEY CLUSTERED +( + [Id] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] +) ON [PRIMARY] +GO + +ALTER TABLE [dbo].[T_User_Feedback] ADD DEFAULT (getdate()) FOR [CreateDateTime] +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_Feedback', @level2type=N'COLUMN',@level2name=N'Id' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ûId' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_Feedback', @level2type=N'COLUMN',@level2name=N'UserId' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_Feedback', @level2type=N'COLUMN',@level2name=N'Description' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ϵϢ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_Feedback', @level2type=N'COLUMN',@level2name=N'ContactInfo' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'app' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_Feedback', @level2type=N'COLUMN',@level2name=N'AppId' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ʱ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_Feedback', @level2type=N'COLUMN',@level2name=N'CreateDateTime' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'û' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_Feedback' +GO + + diff --git a/常用SQL/用户成就表完成表.sql b/常用SQL/用户成就表完成表.sql new file mode 100644 index 0000000..61eb580 --- /dev/null +++ b/常用SQL/用户成就表完成表.sql @@ -0,0 +1,82 @@ +USE [MoguExt] +GO + +/****** Object: Table [dbo].[T_User_AchievementFinish] Script Date: 2022/10/10 11:25:41 ******/ +SET ANSI_NULLS ON +GO + +SET QUOTED_IDENTIFIER ON +GO + +CREATE TABLE [dbo].[T_User_AchievementFinish]( + [Id] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL, + [AchievemenGuid] [nvarchar](64) NULL, + [AchievemenName] [nvarchar](200) NULL, + [UserId] [nvarchar](200) NULL, + [BossId] [nvarchar](200) NULL, + [AppId] [int] NOT NULL, + [CreateDateTime] [datetime] NOT NULL, + [Remark] [nvarchar](300) NULL, + [ShowAchievemen] [datetime] NOT NULL, + [Speed] [int] NOT NULL, + [IsCompleted] [bit] NOT NULL, + [SpeedCount] [int] NOT NULL, + [IsShowPopup] [bit] NOT NULL, + [UpdateDateTime] [datetime] NOT NULL, + [SuccessDateTime] [datetime] NULL, + CONSTRAINT [PK_T_USER_ACHIEVEMENTFINISH] PRIMARY KEY CLUSTERED +( + [Id] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] +) ON [PRIMARY] +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementFinish', @level2type=N'COLUMN',@level2name=N'Id' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ɾΨһ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementFinish', @level2type=N'COLUMN',@level2name=N'AchievemenGuid' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ɾ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementFinish', @level2type=N'COLUMN',@level2name=N'AchievemenName' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ûid' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementFinish', @level2type=N'COLUMN',@level2name=N'UserId' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementFinish', @level2type=N'COLUMN',@level2name=N'BossId' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'app' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementFinish', @level2type=N'COLUMN',@level2name=N'AppId' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ʱ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementFinish', @level2type=N'COLUMN',@level2name=N'CreateDateTime' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ע' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementFinish', @level2type=N'COLUMN',@level2name=N'Remark' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ʾɾʱ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementFinish', @level2type=N'COLUMN',@level2name=N'ShowAchievemen' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementFinish', @level2type=N'COLUMN',@level2name=N'Speed' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Ƿ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementFinish', @level2type=N'COLUMN',@level2name=N'IsCompleted' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ܽ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementFinish', @level2type=N'COLUMN',@level2name=N'SpeedCount' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Ƿʾ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementFinish', @level2type=N'COLUMN',@level2name=N'IsShowPopup' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ʱ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementFinish', @level2type=N'COLUMN',@level2name=N'UpdateDateTime' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'޸ʱ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementFinish', @level2type=N'COLUMN',@level2name=N'SuccessDateTime' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ûɾɽ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_User_AchievementFinish' +GO + + diff --git a/常用SQL/系统相关/获取注释.sql b/常用SQL/系统相关/获取注释.sql new file mode 100644 index 0000000..f1b3518 --- /dev/null +++ b/常用SQL/系统相关/获取注释.sql @@ -0,0 +1,39 @@ +--SELECT ֶ˵=isnull(props.[value],'') FROM syscolumns cols inner join sysobjects objs on cols.id= objs.id and objs.xtype='U' and objs.name<>'dtproperties' left join sys.extended_properties props on cols.id=props.major_id and cols.colid=props.minor_id + +SELECT + obj.name AS table_name, + ISNULL(ep.value,'') AS table_description +FROM + sys.objects AS obj +LEFT JOIN + sys.extended_properties AS ep +ON + ep.major_id = obj.object_id + AND ep.minor_id = 0 + AND ep.class = 1 +WHERE + obj.type = 'U' +ORDER BY + table_name ASC; + + +SELECT + obj.name AS table_name, + col.name AS column_name, + ISNULL(ep.value,'') AS column_description +FROM + sys.objects AS obj +INNER JOIN + sys.columns AS col +ON + col.object_id = obj.object_id +LEFT JOIN + sys.extended_properties AS ep +ON + ep.major_id = obj.object_id + AND ep.minor_id = col.column_id + AND ep.class = 1 +WHERE + obj.type = 'U' +ORDER BY + table_name ASC, col.column_id ASC; \ No newline at end of file diff --git a/常用SQL/系统相关/表详细信息2.sql b/常用SQL/系统相关/表详细信息2.sql new file mode 100644 index 0000000..9f616ca --- /dev/null +++ b/常用SQL/系统相关/表详细信息2.sql @@ -0,0 +1,33 @@ + +SELECT + + t.TABLE_NAME AS [TableName], + c.COLUMN_NAME AS [ColumnName], + c.ORDINAL_POSITION AS [ColumnIndex], + CAST(ISNULL(ep.[value], '') AS NVARCHAR(MAX)) AS [ColumnDescription], + c.DATA_TYPE AS [ColumnType], + CAST(CASE WHEN c.CHARACTER_MAXIMUM_LENGTH IS NULL THEN c.NUMERIC_PRECISION ELSE c.CHARACTER_MAXIMUM_LENGTH END AS NVARCHAR(10)) AS [ColumnSize], + CAST(CASE WHEN EXISTS ( + SELECT 1 FROM HissAI_Res.INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc + INNER JOIN HissAI_Res.INFORMATION_SCHEMA.KEY_COLUMN_USAGE kcu ON tc.CONSTRAINT_NAME = kcu.CONSTRAINT_NAME AND tc.TABLE_SCHEMA = kcu.TABLE_SCHEMA AND tc.TABLE_NAME = kcu.TABLE_NAME + WHERE tc.CONSTRAINT_TYPE = 'PRIMARY KEY' + AND kcu.TABLE_SCHEMA = t.TABLE_SCHEMA + AND kcu.TABLE_NAME = t.TABLE_NAME + AND kcu.COLUMN_NAME = c.COLUMN_NAME + ) THEN 1 ELSE 0 END AS BIT) AS [ColumnIsPK], + CAST(CASE WHEN c.IS_NULLABLE = 'YES' THEN 1 ELSE 0 END AS BIT) AS [ColumnIsNull], + CAST(COLUMN_DEFAULT AS NVARCHAR(MAX)) AS [ColumnDefault] +FROM + HissAI_Res.INFORMATION_SCHEMA.TABLES t +INNER JOIN + HissAI_Res.INFORMATION_SCHEMA.COLUMNS c ON t.TABLE_SCHEMA = c.TABLE_SCHEMA AND t.TABLE_NAME = c.TABLE_NAME +LEFT OUTER JOIN + HissAI_Res.sys.columns sc ON t.TABLE_SCHEMA + '.' + t.TABLE_NAME = OBJECT_SCHEMA_NAME(sc.object_id) + '.' + OBJECT_NAME(sc.object_id) AND c.COLUMN_NAME = sc.name +LEFT OUTER JOIN + HissAI_Res.sys.extended_properties ep ON t.TABLE_SCHEMA + '.' + t.TABLE_NAME = OBJECT_SCHEMA_NAME(ep.major_id) + '.' + OBJECT_NAME(ep.major_id) AND sc.column_id = ep.minor_id AND ep.name = 'MS_Description' +WHERE + t.TABLE_NAME = 'T_App_Config' and (ep.class=1 or ep.class is null ) +ORDER BY + c.ORDINAL_POSITION ASC; + + \ No newline at end of file diff --git a/常用SQL/系统相关/表详细信息、.sql b/常用SQL/系统相关/表详细信息、.sql new file mode 100644 index 0000000..748beab --- /dev/null +++ b/常用SQL/系统相关/表详细信息、.sql @@ -0,0 +1,123 @@ + +SELECT + col.object_id , + obj.name AS table_name, + col.name AS column_name, + ISNULL(ep.value,'') AS column_description, + inf.DATA_TYPE as column_type, + ISNULL(inf.CHARACTER_MAXIMUM_LENGTH ,0) as column_length, + indx.name +FROM + sys.objects AS obj +INNER JOIN + sys.columns AS col +ON + col.object_id = obj.object_id +LEFT JOIN + sys.extended_properties AS ep--ע +ON + ep.major_id = obj.object_id + AND ep.minor_id = col.column_id + AND ep.class = 1 +left join +INFORMATION_SCHEMA.COLUMNS inf +on +inf.TABLE_NAME=obj.name and +inf.COLUMN_NAME=col.name +left join sys.indexes indx +on + indx.object_id = obj.object_id +WHERE + obj.type = 'U' and obj.name='T_App_Config' +ORDER BY + table_name ASC, col.column_id ASC; + + +SELECT + T.TABLE_NAME AS , + c.ORDINAL_POSITION as ֶ˳, + C.COLUMN_NAME AS ֶ, + CASE + WHEN PT.VALUE IS NULL THEN '' + ELSE PT.VALUE + END AS ֶע, + C.DATA_TYPE AS ֶ, + C.CHARACTER_MAXIMUM_LENGTH AS ֶδС, + CASE + WHEN KCU.COLUMN_NAME IS NULL THEN 0 + ELSE 1 + END AS Ƿ +FROM INFORMATION_SCHEMA.TABLES T +INNER JOIN INFORMATION_SCHEMA.COLUMNS C ON T.TABLE_NAME = C.TABLE_NAME +LEFT JOIN sys.extended_properties PT ON PT.major_id = OBJECT_ID(T.TABLE_SCHEMA + '.' + T.TABLE_NAME) AND PT.minor_id = C.ORDINAL_POSITION AND PT.NAME ='MS_Description' +LEFT JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE KCU ON KCU.TABLE_NAME = T.TABLE_NAME AND KCU.COLUMN_NAME = C.COLUMN_NAME AND EXISTS(SELECT 1 FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS TC WHERE TC.CONSTRAINT_TYPE = 'PRIMARY KEY' AND TC.CONSTRAINT_NAME = KCU.CONSTRAINT_NAME) +WHERE T.TABLE_TYPE = 'BASE TABLE' AND T.TABLE_NAME ='T_App_Config' +ORDER BY T.TABLE_NAME, C.ORDINAL_POSITION; + + + +SELECT + t.TABLE_NAME AS [], + c.COLUMN_NAME AS [ֶ], + c.ORDINAL_POSITION AS [ֶ˳], + CAST(ISNULL(ep.[value], '') AS NVARCHAR(MAX)) AS [ֶע], + c.DATA_TYPE AS [ֶ], + CAST(CASE WHEN c.CHARACTER_MAXIMUM_LENGTH IS NULL THEN c.NUMERIC_PRECISION ELSE c.CHARACTER_MAXIMUM_LENGTH END AS NVARCHAR(10)) AS [ֶδС], + CAST(CASE WHEN EXISTS ( + SELECT 1 FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc + INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE kcu ON tc.CONSTRAINT_NAME = kcu.CONSTRAINT_NAME AND tc.TABLE_SCHEMA = kcu.TABLE_SCHEMA AND tc.TABLE_NAME = kcu.TABLE_NAME + WHERE tc.CONSTRAINT_TYPE = 'PRIMARY KEY' + AND kcu.TABLE_SCHEMA = t.TABLE_SCHEMA + AND kcu.TABLE_NAME = t.TABLE_NAME + AND kcu.COLUMN_NAME = c.COLUMN_NAME + ) THEN 1 ELSE 0 END AS BIT) AS [Ƿ], + CAST(CASE WHEN c.IS_NULLABLE = 'YES' THEN 1 ELSE 0 END AS BIT) AS [Ƿɿ], + CAST(COLUMN_DEFAULT AS NVARCHAR(MAX)) AS [Ĭֵ] +FROM + HissAI_Res.INFORMATION_SCHEMA.TABLES t +INNER JOIN + HissAI_Res.INFORMATION_SCHEMA.COLUMNS c ON t.TABLE_SCHEMA = c.TABLE_SCHEMA AND t.TABLE_NAME = c.TABLE_NAME +LEFT OUTER JOIN + HissAI_Res.sys.columns sc ON t.TABLE_SCHEMA + '.' + t.TABLE_NAME = OBJECT_SCHEMA_NAME(sc.object_id) + '.' + OBJECT_NAME(sc.object_id) AND c.COLUMN_NAME = sc.name +LEFT OUTER JOIN + HissAI_Res.sys.extended_properties ep ON t.TABLE_SCHEMA + '.' + t.TABLE_NAME = OBJECT_SCHEMA_NAME(ep.major_id) + '.' + OBJECT_NAME(ep.major_id) AND sc.column_id = ep.minor_id AND ep.name = 'MS_Description' +WHERE + t.TABLE_NAME = 'T_App_Config' +ORDER BY + c.ORDINAL_POSITION ASC; + + + SELECT name FROM sys.databases where[name] like '%HissAI%' ; + + + SELECT + obj.name AS table_name, + ISNULL(ep.value,'') AS table_description +FROM + HissAI_UserData.sys.objects AS obj +LEFT JOIN + HissAI_UserData.sys.extended_properties AS ep +ON + ep.major_id = obj.object_id + AND ep.minor_id = 0 + AND ep.class = 1 +WHERE + obj.type = 'U' +ORDER BY + table_name ASC; + + SELECT + obj.name AS TableName, + ISNULL(ep.value,'') AS TableDescription + FROM + HissAI_UserData.sys.objects AS obj + LEFT JOIN + HissAI_UserData.sys.extended_properties AS ep + ON + ep.major_id = obj.object_id + AND ep.minor_id = 0 + AND ep.class = 1 + WHERE + obj.type = 'U' + ORDER BY + TableName ASC; \ No newline at end of file diff --git a/常用SQL/菜单修改.sql b/常用SQL/菜单修改.sql new file mode 100644 index 0000000..b078db8 --- /dev/null +++ b/常用SQL/菜单修改.sql @@ -0,0 +1,3 @@ +SELECT TOP 100 * FROM Phone300_VL_UI_CBT.dbo.T_VL_UI_Epg_Cfg where EpgCategory=1003 +alter table Phone300_VL_UI_CBT.dbo.T_VL_UI_Epg_Cfg add CountryName nvarchar(200); +alter table Phone300_VL_UI_CBT.dbo.T_VL_UI_Epg_Cfg add Continent nvarchar(200); \ No newline at end of file diff --git a/文档/.net/EfCode.md b/文档/.net/EfCode.md new file mode 100644 index 0000000..34a7af6 --- /dev/null +++ b/文档/.net/EfCode.md @@ -0,0 +1,5 @@ + +### 反向工程 +1. 安装 dotnet tool install --global dotnet-ef +2. 安装包 Microsoft.EntityFrameworkCore.Design +3. 执行命令 dotnet ef dbcontext scaffold "Server=172.27.27.12;Database=TextGenerationTest;User Id=zpc;Password=zpc;TrustServerCertificate=true;" Microsoft.EntityFrameworkCore.SqlServer -o Models --force \ No newline at end of file diff --git a/文档/.net/grpc.md b/文档/.net/grpc.md new file mode 100644 index 0000000..73a2944 --- /dev/null +++ b/文档/.net/grpc.md @@ -0,0 +1,46 @@ +# gRPC服务 + +## 在已有.net code 中添加gRPC服务器 +### 1.按照包 +```C# +dotnet add package Grpc +dotnet add package Grpc.Tools +dotnet add package Grpc.AspNetCore +``` + +RegionStatisticsClientServer + +### 2.添加 .proto 文件 +helloworld.proto +```C# +syntax = "proto3"; + +package HelloWorld; + +service Greeter { + rpc SayHello (HelloRequest) returns (HelloReply) {} +} + +message HelloRequest { + string name = 1; +} + +message HelloReply { + string message = 1; +} +``` + +### 3.配置 csproj 文件 +```C# + + + +``` + +### 4.生成代码 + +### +```C# + +``` + \ No newline at end of file diff --git a/文档/Git/git.md b/文档/Git/git.md new file mode 100644 index 0000000..29abb14 --- /dev/null +++ b/文档/Git/git.md @@ -0,0 +1,107 @@ +# git + +# 常用命令 + +```sh +# 拉取代码 + git clone [url] + # git clone git@192.168.1.33:mogu_server/sunnysports.git + +# 更新代码 +git pull + +# 添加到暂存区 +git add . + +# 提交代码 +git commit -m "提交内容" + +# 推送代码 +git push + +# 切换分支 +git checkout <分支名称> +git checkout dev-sunny +#查看提交历史记录。 +git log + +#比较当前文件与暂存区或HEAD的差异。 +git diff + +#将当前工作区的修改保存起来,以便稍后恢复。 +git stash + +#恢复之前保存的修改,并删除对应的stash。 +git stash pop + +#安装子模块 +git submodule init +git submodule update + +``` + +# 创建ssh证书 +## 1.启动Git Bash: +## 2.生成新的SSH密钥 +```sh + ssh-keygen -t rsa -b 4096 -C "your_email@example.com" + + ssh-keygen -t rsa -b 4096 -C "zpc@pc" +``` +## 3.设置SSH代理 在某些系统上,你可能需要在每次启动计算机时添加SSH密钥到SSH代理。可以使用以下命令: +``` sh +eval "$(ssh-agent -s)" +ssh-add ~/.ssh/id_rsa +``` +## 5.复制公钥:使用以下命令将公钥复制到剪贴板: +```sh +cat ~/.ssh/id_rsa.pub | clip +``` +## 6.验证 +```sh + +ssh -T git@192.168.1.33 +ssh -T git@github.com +``` +ssh-copy-id -i ~/.ssh/id_rsa ubuntu@1.117.87.77 + +# Ubuntu 添加git +``` sh +sudo apt update +sudo apt install git +git --version +``` +## 圣剑 + + + +cat ~/.ssh/id_rsa.pub + +eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_rsa + +ssh -T git@192.168.1.33 + +ssh-keygen -t rsa -b 4096 -C "zpc1131" +ssh-keygen -t rsa -b 4096 -C "zpc1131@gmail.com" +ssh -T git@github.com +### 拉取 +``` sh +git clone git@192.168.1.33:mogu_server/sunnysports.git + +``` +ssh-copy-id -i D:/ssh/229.pub root@192.168.1.229 + +eval "$(ssh-agent -s)" ssh-add D:/ssh/229 + +eval "$(ssh-agent -s)" ssh-add ~/.ssh/229 +ssh root@192.168.1.229 -i ~/.ssh/229_rsa +```sh +ssh-keygen -t rsa -b 4096 -C "zhangzhe@wsl" +/home/z/.ssh/229_rsa +eval "$(ssh-agent -s)" ssh-add /home/z/.ssh/229_rsa + ssh-copy-id -i /home/z/.ssh/229_rsa.pub root@192.168.1.229 + +git config --global user.email "zpc1131@wsl" + git config --global user.name "zhangzhe" + +``` \ No newline at end of file diff --git a/文档/SQL Server/设置sqlserver占用内存.sql b/文档/SQL Server/设置sqlserver占用内存.sql new file mode 100644 index 0000000..5223b81 --- /dev/null +++ b/文档/SQL Server/设置sqlserver占用内存.sql @@ -0,0 +1,9 @@ +EXEC sp_configure 'show advanced options', 1; +RECONFIGURE; +EXEC sp_configure 'max server memory (MB)'; +EXEC sp_configure 'min server memory (MB)'; + + +EXEC sp_configure 'max server memory (MB)', 10240; -- 10GB in MB +EXEC sp_configure 'min server memory (MB)', 4096; -- 4GB in MB +RECONFIGURE; \ No newline at end of file diff --git a/文档/linux/.net 8.md b/文档/linux/.net 8.md new file mode 100644 index 0000000..08a0f78 --- /dev/null +++ b/文档/linux/.net 8.md @@ -0,0 +1,25 @@ +# [Ubuntu 22.04安装.net 8](https://learn.microsoft.com/zh-cn/dotnet/core/install/linux-ubuntu-2204) + +```sh +# 更新包 +sudo apt-get update +# 安装.net 8 +sudo apt-get install -y dotnet-sdk-8.0 + +``` + +# 运行 +```sh +#恢复依赖 +dotnet restore + + +#编译项目 +dotnet build + +# 查看版本列表 +dotnet --list-sdks + +# 发布项目 +dotnet publish -c Release +``` diff --git a/文档/linux/BaGet.md b/文档/linux/BaGet.md new file mode 100644 index 0000000..c2d0b78 --- /dev/null +++ b/文档/linux/BaGet.md @@ -0,0 +1,28 @@ +# 安装BaGet +## 注意事项 +1. 原生的BaGet使用的是.net code 3.1版本,如果使用更高的版本,需要拉取[源代码](https://github.com/loic-sharma/BaGet),切换.net版本,然后编译、发布即可。 +2. 本次安装使用的是.net8 +3. 修改配置项:appsettings.json +```json +{ + "ApiKey": "d50e3dbd66", + "PackageDeletionBehavior": "Unlist", + "AllowPackageOverwrites": false, + "Database": { + "Type": "Sqlite", + "ConnectionString": "Data Source=./baget.db" + }, + "Storage": { + "Type": "FileSystem", + "Path": "/disk/packages" + }, + "Search": { + "Type": "Database" + }, +} +``` +## 安装服务 +```sh + +``` +## diff --git a/文档/linux/Gitea.md b/文档/linux/Gitea.md new file mode 100644 index 0000000..f9d3f52 --- /dev/null +++ b/文档/linux/Gitea.md @@ -0,0 +1,75 @@ +# Gitea +搭建私有Git服务器 +## +```sh +sudo apt update +sudo apt install git wget -y +# 创建git用户 +sudo adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /home/git git +# 下载代码 +wget -O /tmp/gitea https://dl.gitea.io/gitea/1.16.7/gitea-1.16.7-linux-amd64 +wget -O /tmp/gitea https://dl.gitea.com/gitea/1.22.0/gitea-1.22.0-linux-amd64 +# 将下载的文件移动到合适的位置并赋予执行权限 +sudo mv /tmp/gitea /usr/local/bin/gitea +sudo chmod +x /usr/local/bin/gitea +# 创建所需的目录: +sudo mkdir -p /var/lib/gitea/{custom,data,log} +sudo chown -R git:git /var/lib/gitea/ +sudo chmod -R 750 /var/lib/gitea/ +sudo mkdir /etc/gitea +sudo chown root:git /etc/gitea +sudo chmod 770 /etc/gitea +# 创建服务文件: +sudo nano /etc/systemd/system/gitea.service + +# 添加内容 +[Unit] +Description=Gitea +After=syslog.target +After=network.target +[Service] +RestartSec=2s +Type=simple +User=git +Group=git +WorkingDirectory=/var/lib/gitea/ +ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini +Restart=always +Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea/ +[Install] +WantedBy=multi-user.target + +#重新加载systemd并启动Gitea: +sudo systemctl daemon-reload +sudo systemctl enable gitea +sudo systemctl start gitea +sudo systemctl status gitea +# 可选,放开防火墙 +sudo ufw allow 3000/tcp +sudo ufw reload +``` + +## 配置项 /data/gitea/conf/app.ini +1. 数据库文件路径:/var/lib/gitea/data/gitea.db +2. 仓库根目录:/var/lib/gitea/data/gitea-repositories +3. LFS根目录:/var/lib/gitea/data/lfs +4. 日志路径:/var/lib/gitea/log +5. 管理员账号:huanmeng 9-9jYRqeywr!SA3 huanmeng@admin.com + + +## 在Gitea 的配置文件中设置 webhook.ALLOWED_HOST_LIST 来允许特定的服务器。 +```sh +#找到 Gitea 的配置文件: +#Gitea 的配置文件通常是 app.ini,它通常位于 Gitea 的安装目录下,例如 /etc/gitea/app.ini 或 /var/lib/gitea/custom/conf/app.ini。 +sudo nano /etc/gitea/app.ini +# 设置 ALLOWED_HOST_LIST: +# 在 [webhook] 部分中添加或修改 ALLOWED_HOST_LIST 设置,将你的服务器 IP 地址加入到允许列表中。你可以添加多个地址,用逗号分隔。 +[webhook] +ALLOWED_HOST_LIST = 192.168.195.30 +# 如果需要允许多个 IP 地址,可以这样: +[webhook] +ALLOWED_HOST_LIST = 192.168.195.30,192.168.195.31,example.com +# 保存文件并关闭编辑器。 +sudo systemctl restart gitea + +``` \ No newline at end of file diff --git a/文档/linux/Gitea/webhook.json b/文档/linux/Gitea/webhook.json new file mode 100644 index 0000000..94e98e2 --- /dev/null +++ b/文档/linux/Gitea/webhook.json @@ -0,0 +1,194 @@ +{ + "ref": "refs/heads/main", + "before": "dd420bcda9be2ff3dde9d65b4c30c0a08c9b043c", + "after": "dd420bcda9be2ff3dde9d65b4c30c0a08c9b043c", + "compare_url": "http://123.207.203.228:3000/server/CodeRelease/compare/dd420bcda9be2ff3dde9d65b4c30c0a08c9b043c...dd420bcda9be2ff3dde9d65b4c30c0a08c9b043c", + "commits": [ + { + "id": "dd420bcda9be2ff3dde9d65b4c30c0a08c9b043c", + "message": "提交代码\n", + "url": "http://123.207.203.228:3000/server/CodeRelease/commit/dd420bcda9be2ff3dde9d65b4c30c0a08c9b043c", + "author": { + "name": "zpc", + "email": "zpc1131@gmail.com", + "username": "" + }, + "committer": { + "name": "zpc", + "email": "zpc1131@gmail.com", + "username": "" + }, + "verification": null, + "timestamp": "0001-01-01T00:00:00Z", + "added": null, + "removed": null, + "modified": null + } + ], + "total_commits": 1, + "head_commit": { + "id": "dd420bcda9be2ff3dde9d65b4c30c0a08c9b043c", + "message": "提交代码\n", + "url": "http://123.207.203.228:3000/server/CodeRelease/commit/dd420bcda9be2ff3dde9d65b4c30c0a08c9b043c", + "author": { + "name": "zpc", + "email": "zpc1131@gmail.com", + "username": "" + }, + "committer": { + "name": "zpc", + "email": "zpc1131@gmail.com", + "username": "" + }, + "verification": null, + "timestamp": "0001-01-01T00:00:00Z", + "added": null, + "removed": null, + "modified": null + }, + "repository": { + "id": 6, + "owner": { + "id": 3, + "login": "server", + "login_name": "", + "source_id": 0, + "full_name": "", + "email": "server@noreply.localhost", + "avatar_url": "http://123.207.203.228:3000/avatars/cf1e8c14e54505f60aa10ceb8d5d8ab3", + "html_url": "http://123.207.203.228:3000/server", + "language": "", + "is_admin": false, + "last_login": "0001-01-01T00:00:00Z", + "created": "2024-06-02T13:09:11+08:00", + "restricted": false, + "active": false, + "prohibit_login": false, + "location": "", + "website": "", + "description": "", + "visibility": "public", + "followers_count": 0, + "following_count": 0, + "starred_repos_count": 0, + "username": "server" + }, + "name": "CodeRelease", + "full_name": "server/CodeRelease", + "description": "代码发布", + "empty": false, + "private": false, + "fork": false, + "template": false, + "parent": null, + "mirror": false, + "size": 39, + "language": "", + "languages_url": "http://123.207.203.228:3000/api/v1/repos/server/CodeRelease/languages", + "html_url": "http://123.207.203.228:3000/server/CodeRelease", + "url": "http://123.207.203.228:3000/api/v1/repos/server/CodeRelease", + "link": "", + "ssh_url": "git@123.207.203.228:server/CodeRelease.git", + "clone_url": "http://123.207.203.228:3000/server/CodeRelease.git", + "original_url": "", + "website": "", + "stars_count": 0, + "forks_count": 0, + "watchers_count": 1, + "open_issues_count": 0, + "open_pr_counter": 0, + "release_counter": 0, + "default_branch": "main", + "archived": false, + "created_at": "2024-06-25T11:48:41+08:00", + "updated_at": "2024-06-25T14:11:25+08:00", + "archived_at": "1970-01-01T08:00:00+08:00", + "permissions": { + "admin": false, + "push": false, + "pull": false + }, + "has_issues": true, + "internal_tracker": { + "enable_time_tracker": true, + "allow_only_contributors_to_track_time": true, + "enable_issue_dependencies": true + }, + "has_wiki": true, + "has_pull_requests": true, + "has_projects": true, + "projects_mode": "all", + "has_releases": true, + "has_packages": true, + "has_actions": true, + "ignore_whitespace_conflicts": false, + "allow_merge_commits": true, + "allow_rebase": true, + "allow_rebase_explicit": true, + "allow_squash_merge": true, + "allow_fast_forward_only_merge": true, + "allow_rebase_update": true, + "default_delete_branch_after_merge": false, + "default_merge_style": "merge", + "default_allow_maintainer_edit": false, + "avatar_url": "http://123.207.203.228:3000/", + "internal": false, + "mirror_interval": "", + "object_format_name": "", + "mirror_updated": "0001-01-01T00:00:00Z", + "repo_transfer": null + }, + "pusher": { + "id": 2, + "login": "zhangzhe", + "login_name": "", + "source_id": 0, + "full_name": "", + "email": "zhangzhe@noreply.localhost", + "avatar_url": "http://123.207.203.228:3000/avatars/a41a0dc924cc9424ef91104f38c3b30d", + "html_url": "http://123.207.203.228:3000/zhangzhe", + "language": "", + "is_admin": false, + "last_login": "0001-01-01T00:00:00Z", + "created": "2024-05-31T17:08:51+08:00", + "restricted": false, + "active": false, + "prohibit_login": false, + "location": "", + "website": "", + "description": "", + "visibility": "public", + "followers_count": 0, + "following_count": 0, + "starred_repos_count": 0, + "username": "zhangzhe" + }, + "sender": { + "id": 2, + "login": "zhangzhe", + "login_name": "", + "source_id": 0, + "full_name": "", + "email": "zhangzhe@noreply.localhost", + "avatar_url": "http://123.207.203.228:3000/avatars/a41a0dc924cc9424ef91104f38c3b30d", + "html_url": "http://123.207.203.228:3000/zhangzhe", + "language": "", + "is_admin": false, + "last_login": "0001-01-01T00:00:00Z", + "created": "2024-05-31T17:08:51+08:00", + "restricted": false, + "active": false, + "prohibit_login": false, + "location": "", + "website": "", + "description": "", + "visibility": "public", + "followers_count": 0, + "following_count": 0, + "starred_repos_count": 0, + "username": "zhangzhe" + } +} + + + diff --git a/文档/linux/Gitea/webhook.发布.json b/文档/linux/Gitea/webhook.发布.json new file mode 100644 index 0000000..8d186e5 --- /dev/null +++ b/文档/linux/Gitea/webhook.发布.json @@ -0,0 +1,173 @@ + +{ + "action": "published", + "release": { + "id": 2, + "tag_name": "0.0.2", + "target_commitish": "main", + "name": "测试", + "body": "", + "url": "http://123.207.203.228:3000/api/v1/repos/server/CodeRelease/releases/2", + "html_url": "http://123.207.203.228:3000/server/CodeRelease/releases/tag/0.0.2", + "tarball_url": "http://123.207.203.228:3000/server/CodeRelease/archive/0.0.2.tar.gz", + "zipball_url": "http://123.207.203.228:3000/server/CodeRelease/archive/0.0.2.zip", + "upload_url": "http://123.207.203.228:3000/api/v1/repos/server/CodeRelease/releases/2/assets", + "draft": false, + "prerelease": false, + "created_at": "2024-06-25T14:57:42+08:00", + "published_at": "2024-06-25T14:57:42+08:00", + "author": { + "id": 2, + "login": "zhangzhe", + "login_name": "", + "source_id": 0, + "full_name": "", + "email": "zhangzhe@noreply.localhost", + "avatar_url": "http://123.207.203.228:3000/avatars/a41a0dc924cc9424ef91104f38c3b30d", + "html_url": "http://123.207.203.228:3000/zhangzhe", + "language": "", + "is_admin": false, + "last_login": "0001-01-01T00:00:00Z", + "created": "2024-05-31T17:08:51+08:00", + "restricted": false, + "active": false, + "prohibit_login": false, + "location": "", + "website": "", + "description": "", + "visibility": "public", + "followers_count": 0, + "following_count": 0, + "starred_repos_count": 0, + "username": "zhangzhe" + }, + "assets": [ + { + "id": 5, + "name": "CodeRelease.0.0.2.zip", + "size": 1463907, + "download_count": 0, + "created_at": "2024-06-25T14:57:40+08:00", + "uuid": "87d80f69-7083-46be-aa29-2bc50b782718", + "browser_download_url": "http://123.207.203.228:3000/server/CodeRelease/releases/download/0.0.2/CodeRelease.0.0.2.zip" + } + ] + }, + "repository": { + "id": 6, + "owner": { + "id": 3, + "login": "server", + "login_name": "", + "source_id": 0, + "full_name": "", + "email": "", + "avatar_url": "http://123.207.203.228:3000/avatars/cf1e8c14e54505f60aa10ceb8d5d8ab3", + "html_url": "http://123.207.203.228:3000/server", + "language": "", + "is_admin": false, + "last_login": "0001-01-01T00:00:00Z", + "created": "2024-06-02T13:09:11+08:00", + "restricted": false, + "active": false, + "prohibit_login": false, + "location": "", + "website": "", + "description": "", + "visibility": "public", + "followers_count": 0, + "following_count": 0, + "starred_repos_count": 0, + "username": "server" + }, + "name": "CodeRelease", + "full_name": "server/CodeRelease", + "description": "代码发布", + "empty": false, + "private": false, + "fork": false, + "template": false, + "parent": null, + "mirror": false, + "size": 39, + "language": "", + "languages_url": "http://123.207.203.228:3000/api/v1/repos/server/CodeRelease/languages", + "html_url": "http://123.207.203.228:3000/server/CodeRelease", + "url": "http://123.207.203.228:3000/api/v1/repos/server/CodeRelease", + "link": "", + "ssh_url": "git@123.207.203.228:server/CodeRelease.git", + "clone_url": "http://123.207.203.228:3000/server/CodeRelease.git", + "original_url": "", + "website": "", + "stars_count": 0, + "forks_count": 0, + "watchers_count": 1, + "open_issues_count": 0, + "open_pr_counter": 0, + "release_counter": 2, + "default_branch": "main", + "archived": false, + "created_at": "2024-06-25T11:48:41+08:00", + "updated_at": "2024-06-25T14:11:25+08:00", + "archived_at": "1970-01-01T08:00:00+08:00", + "permissions": { + "admin": true, + "push": true, + "pull": true + }, + "has_issues": true, + "internal_tracker": { + "enable_time_tracker": true, + "allow_only_contributors_to_track_time": true, + "enable_issue_dependencies": true + }, + "has_wiki": true, + "has_pull_requests": true, + "has_projects": true, + "projects_mode": "all", + "has_releases": true, + "has_packages": true, + "has_actions": true, + "ignore_whitespace_conflicts": false, + "allow_merge_commits": true, + "allow_rebase": true, + "allow_rebase_explicit": true, + "allow_squash_merge": true, + "allow_fast_forward_only_merge": true, + "allow_rebase_update": true, + "default_delete_branch_after_merge": false, + "default_merge_style": "merge", + "default_allow_maintainer_edit": false, + "avatar_url": "http://123.207.203.228:3000/", + "internal": false, + "mirror_interval": "", + "object_format_name": "", + "mirror_updated": "0001-01-01T00:00:00Z", + "repo_transfer": null + }, + "sender": { + "id": 2, + "login": "zhangzhe", + "login_name": "", + "source_id": 0, + "full_name": "", + "email": "zhangzhe@noreply.localhost", + "avatar_url": "http://123.207.203.228:3000/avatars/a41a0dc924cc9424ef91104f38c3b30d", + "html_url": "http://123.207.203.228:3000/zhangzhe", + "language": "", + "is_admin": false, + "last_login": "0001-01-01T00:00:00Z", + "created": "2024-05-31T17:08:51+08:00", + "restricted": false, + "active": false, + "prohibit_login": false, + "location": "", + "website": "", + "description": "", + "visibility": "public", + "followers_count": 0, + "following_count": 0, + "starred_repos_count": 0, + "username": "zhangzhe" + } + } \ No newline at end of file diff --git a/文档/linux/MySql安装使用.md b/文档/linux/MySql安装使用.md new file mode 100644 index 0000000..9677e4c --- /dev/null +++ b/文档/linux/MySql安装使用.md @@ -0,0 +1,75 @@ +#

+ +## 操作环境 Ubuntu 22.04.2 LTS + +### 使用 apt 方式安装 + +```sh +#更新系统的软件包列表 +sudo apt update + +#查看可用的mysql版本 +apt list -a mysql-server + +#安装MySQL服务器 +sudo apt install mysql-server + +#安装特定版本,将 替换为你想要安装的具体版本号 +sudo apt-get install mysql-server= +sudo apt-get install mysql-server=5.7.35-1ubuntu18.04 + +#锁定版本(可选) +sudo apt-mark hold mysql-server + +#安装完成后,可以运行以下命令来启动MySQL服务 +sudo service mysql start + +#停止 MySQL 服务 +sudo service mysql stop + +#检查MySQL服务状态 +sudo service mysql status + +#(可选) 为了增加MySQL的安全性,你可以运行MySQL安全性脚本: +sudo mysql_secure_installation + +#使用 apt-get 删除 MySQL 软件包 +sudo apt-get purge mysql-server mysql-client mysql-common mysql-server-core-* mysql-client-core-* + +#删除 MySQL 数据目录 +sudo rm -rf /etc/mysql /var/lib/mysql +``` + +### MySQL 的二进制发行版,手动安装 + +## 常用语句 + +```sh +#登录 +mysql -u 用户名 -p +#刷新权限 +FLUSH PRIVILEGES; +#退出mysql +exit; +``` + +### 常见问题 + +#### 安装完成后登录不上去 + +第一次登录时没有密码,造成无法登录这是由于 MYSQL 数据库一开始生成了一个随机密码 +解决方案: +方案 1.使用命令查看随机密码,利用该文件中的 user 和 password 登录 + +```sh +sudo cat /etc/mysql/debian.cnf + +#mysql -u debian-sys-maint -p +#mQxsCvggohEqn2rN +``` + +方案 2.修改密码,修改的密码可能要和 mysql 的规则一直 + +```sh +GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY "密码"; +``` diff --git a/文档/linux/SQL Server安装记录.md b/文档/linux/SQL Server安装记录.md new file mode 100644 index 0000000..0182fde --- /dev/null +++ b/文档/linux/SQL Server安装记录.md @@ -0,0 +1,28 @@ +#
SQL Server安装记录
+ +## 操作环境 Ubuntu 22.04.2 LTS + +## [安装帮助文档](https://learn.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-ubuntu?view=sql-server-linux-ver15&preserve-view=true&tabs=ubuntu2004#install) + +### 安装方法 +1.导入公共存储库 GPG 密钥 +```sh + curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc +``` +2.注册 SQL Server Ubuntu 存储库: +```sh + sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-2019.list)" +``` +3.运行以下命令以安装 SQL Server: +```sh + sudo apt-get update + sudo apt-get install -y mssql-server +``` +4.启动配置 +```sh +sudo /opt/mssql/bin/mssql-conf setup +``` +4.停止sqlserver +```sh +sudo systemctl stop mssql-server +``` \ No newline at end of file diff --git a/文档/linux/Shadowsocks.md b/文档/linux/Shadowsocks.md new file mode 100644 index 0000000..5c9fbab --- /dev/null +++ b/文档/linux/Shadowsocks.md @@ -0,0 +1,41 @@ +# 机场 Shadowsocks +可以通过v2rayN进行代理连接,实现翻墙 +## Shadowsocks 安装 +```sh +sudo apt update +# 安装包 +sudo apt install shadowsocks-libev -y +# 配置 Shadowsocks,创建并编辑 Shadowsocks 的配置文件。这个文件通常位于 /etc/shadowsocks-libev/config.json。 +sudo nano /etc/shadowsocks-libev/config.json +# 配置项 +{ + "server":["::1", "127.0.0.1"], + "mode":"tcp_and_udp", + "server_port":8388, + "local_port":1080, + "password":"07RT9gL2zLZ2", + "timeout":86400, + "method":"chacha20-ietf-poly1305" +} + +# 启动和设置开机自启 +sudo systemctl start shadowsocks-libev +sudo systemctl enable shadowsocks-libev +# 配置防火墙 +sudo ufw allow 8388/tcp +sudo ufw allow 8388/udp +sudo ufw reload + +# 检测服务状态 +sudo systemctl status shadowsocks-libev + + +``` +### 配置项解释 +"server": ["::1", "127.0.0.1"]:定义服务器地址。::1 是 IPv6 的本地回环地址,127.0.0.1 是 IPv4 的本地回环地址。这意味着当前配置只会监听本地回环接口。 +"mode": "tcp_and_udp":定义 Shadowsocks 工作模式,这里配置为同时支持 TCP 和 UDP 协议。 +"server_port": 8388:定义服务器监听的端口,这里设置为 8388。 +"local_port": 1080:定义本地代理的端口,这里设置为 1080。 +"password": "07RT9gL2zLZ2":定义连接到代理服务器时需要使用的密码。 +"timeout": 86400:定义连接超时时间,单位为秒,这里设置为 86400 秒(即 24 小时)。 +"method": "chacha20-ietf-poly1305":定义加密方法,这里使用 chacha20-ietf-poly1305,这是一种安全性较高的加密算法。 \ No newline at end of file diff --git a/文档/linux/ZeroTierOne.md b/文档/linux/ZeroTierOne.md new file mode 100644 index 0000000..2669978 --- /dev/null +++ b/文档/linux/ZeroTierOne.md @@ -0,0 +1,17 @@ +# 内网穿透 + +## 安装 +```sh +# GPG 密钥和仓库: +curl -s https://install.zerotier.com | sudo bash +# 安装 ZeroTier +sudo apt install zerotier-one +# 启动并加入网络 sudo zerotier-cli join +sudo zerotier-cli join 48d6023c465446a4 +# 检查连接状态 +sudo zerotier-cli listnetworks +# 开机自启 +sudo systemctl enable zerotier-one +# + +``` diff --git a/文档/linux/baget/baget.service b/文档/linux/baget/baget.service new file mode 100644 index 0000000..2acd7d1 --- /dev/null +++ b/文档/linux/baget/baget.service @@ -0,0 +1,40 @@ +[Unit] +Description=BaGet NuGet Server +After=network.target + +[Service] +WorkingDirectory=/disk/BaGet/net8.0/ +ExecStart=/disk/BaGet/net8.0/BaGet +Restart=always +# 如果网络服务崩溃,请在10秒钟后重新启动服务: +RestartSec=10 +SyslogIdentifier=baget +User=root + +[Install] +WantedBy=multi-user.target + + + +[Unit] +Description=sunny-sports-api +After=network.target +[Service] +# 运行 设置环境变量 +#指定服务的工作目录 +WorkingDirectory=/disk/BaGet/net8.0 +# run +ExecStart=/disk/BaGet/net8.0/BaGet +SyslogIdentifier=baget +User=root +# 打开资源限制infinity 默认会到65535 +LimitNOFILE=1048576 +LimitNPROC=infinity +LimitCORE=infinity +# 自动检查重启,10秒后重启 +Restart=always +RestartSec=10 +[Install] +WantedBy=multi-user.target + + diff --git a/文档/linux/baget/部署文档.md b/文档/linux/baget/部署文档.md new file mode 100644 index 0000000..db1e298 --- /dev/null +++ b/文档/linux/baget/部署文档.md @@ -0,0 +1,25 @@ +## 服务文件 +/etc/systemd/system/baget.service +```sh +sudo nano /etc/systemd/system/baget.service +sudo systemctl daemon-reload +sudo systemctl start baget +sudo systemctl enable baget +sudo systemctl status baget +sudo systemctl stop baget +``` +## 发布命令 +```sh +# /disk/BaGet/src/BaGet$ + dotnet publish -c Release -o /disk/BaGetApi/ +``` + +## 同步命令 +```sh +rsync -avz /disk/BaGetApi/ ubuntu@123.207.203.228:/disk/BaGet/net8.0/ +``` +## 上传 +```sh +dotnet nuget push XLib.NetCore.Utility.1.0.0.nupkg --source "http://123.207.203.228:91/v3/index.json" --api-key "066f010d59" + +``` diff --git a/文档/linux/ffmpeg.md b/文档/linux/ffmpeg.md new file mode 100644 index 0000000..0c675e6 --- /dev/null +++ b/文档/linux/ffmpeg.md @@ -0,0 +1,10 @@ +## 推取视频 + +```sh +nohup ffmpeg -re -stream_loop -1 -i /disk/ai_sports/data/sunny_sports/6MM20240327161002.mp4 -c copy -f rtsp rtsp://127.0.0.1:8554/stream_sunny_6MM20240327161002 >/dev/null 2>&1 & + + +``` + +rtsp://192.168.1.229:8554/stream_sunny_6MM20240327161002 +rtsp://192.168.1.229:8554/stream_sunny_8MM20240327160349 \ No newline at end of file diff --git a/文档/linux/liunx使用记录.md b/文档/linux/liunx使用记录.md new file mode 100644 index 0000000..50cecd8 --- /dev/null +++ b/文档/linux/liunx使用记录.md @@ -0,0 +1,100 @@ +#
liunx 使用记录
+ +## 基础命令 + +```sh +#关机 +sudo shutdown now + +#查看发行版信息 +lsb_release -a + +#查看内核版本: +uname -a + +#查看系统信息 +hostnamectl +# 删除指纹 +ssh-keygen -R 106.75.209.57 + +#安装ip查看工具 +sudo apt-get install net-tools + +#查看IP +ifconfig + +#查看端口是否打开,有输出为开启,没有输出为关闭 +lsof -i:3306 + +#开发防火墙的3306端口 +sudo ufw allow 3306/tcp + +# 创建文件夹(disk 文件夹名称) +sudo mkdir /disk + +# 获取权限 +sudo chmod -R 777 * +sudo chmod 777 /disk + +# 删除文件夹 +sudo rm -r /disk/sunnysports +# 发送ssh密钥 +ssh-copy-id -i ~/.ssh/id_rsa.pub ubuntu@106.75.209.57 +``` + +### 常用命令 + +```sh +#文件和目录操作: +ls: 列出目录内容。 +cd: 切换目录。 +pwd: 显示当前工作目录的路径。 +cp: 复制文件或目录。 +mv: 移动或重命名文件或目录。 +rm: 删除文件或目录。 +mkdir: 创建目录。 +chmod: 修改文件或目录的权限。 +chown: 修改文件或目录的所有者。 + +#文件查看和编辑: +cat: 显示文件内容。 +less: 分页查看文件内容。 +head: 显示文件的开头部分。 +tail: 显示文件的结尾部分。 +nano 或 vim: 文本编辑器。 + +#系统信息和管理: +uname: 显示系统信息。 +df: 显示磁盘空间使用情况。 +du: 显示目录空间使用情况。 +top 或 htop: 显示系统资源使用情况。 +ps: 显示当前运行的进程。 +kill: 终止进程。 +shutdown 或 reboot: 关闭或重启系统。 + +#用户和权限管理: +whoami: 显示当前登录的用户名。 +who: 显示当前登录用户的信息。 +sudo: 以超级用户权限执行命令。 +adduser 或 useradd: 添加新用户。 +passwd: 修改用户密码。 +groups: 显示用户所属的组。 +visudo: 编辑 sudoers 文件,配置用户权限。 + +#网络相关: +ping: 测试网络连接。 +ifconfig: 或 ip: 显示网络接口信息。 +netstat: 显示网络状态。 +traceroute 或 mtr: 追踪网络路由。 +wget 或 curl: 下载文件。 +ssh: 远程登录。 + +#压缩和解压: +tar: 打包和解压文件。 +gzip 或 gunzip: 压缩和解压 gzip 格式的文件。 +zip 或 unzip: 压缩和解压 zip 格式的文件。 +``` + + +### 服务 +1. 服务基础位置 /etc/systemd/system/ \ No newline at end of file diff --git a/文档/linux/make.md b/文档/linux/make.md new file mode 100644 index 0000000..ce6facc --- /dev/null +++ b/文档/linux/make.md @@ -0,0 +1,9 @@ +## make + +```sh +sudo apt update +sudo apt install make +make --version + + +``` \ No newline at end of file diff --git a/文档/linux/nano.md b/文档/linux/nano.md new file mode 100644 index 0000000..df1799e --- /dev/null +++ b/文档/linux/nano.md @@ -0,0 +1,35 @@ +# nano文本编辑 + +## 安装 +```sh +apt-get install -y nano +``` + +## 使用语法 + ```sh +nano <文件名或文件绝对路径> +# 使用示例 +nano vvhan.com.txt +nano /root/vvhan.com.txt +``` +当你打开一个不存在的文件,那么即为新建文件。打开文件后,就可以直接编辑了。 +## 使用教程 +```sh +Ctrl+G,显示帮助文本 +Ctrl+O,保存当前文件 +Ctrl+R,读取其他文件并插入光标位置 +Ctrl+Y,跳至上一屏幕 +Ctrl+K,剪切当前一行 +Ctrl+C,显示光标位置 +Ctrl+X,退出编辑文本 +Ctrl+J,对其当前段落(以空格为分隔符) +Ctrl+W,搜索文本位置 +Ctrl+V,跳至下一屏幕 +Ctrl+U,粘贴文本至光标处 +Ctrl+T,运行拼写检查 +Ctrl+_,跳转到某一行 +ALT+U,撤销 +ALT+E,重做 +ALT+Y, 语法高亮 +ALT+#,显示行号 +``` \ No newline at end of file diff --git a/文档/linux/nginx.md b/文档/linux/nginx.md new file mode 100644 index 0000000..318bd3c --- /dev/null +++ b/文档/linux/nginx.md @@ -0,0 +1,231 @@ +# Nginx + +## 常用命令 +```sh +# 启动 Nginx 服务 +sudo systemctl start nginx +# 关闭 +sudo systemctl stop nginx +# 重启 +sudo systemctl restart nginx +# 重新加载 Nginx 以应用更改 +sudo systemctl reload nginx + +# 默认目录 +cd /var/www/ +# 配置文件 +cd /etc/nginx/ +/etc/nginx/nginx.conf + +#测试 Nginx 配置是否正确 +sudo nginx -t + +``` + +## 在 Ubuntu 22.04 上安装和配置 Nginx + +### 安装 +```sh +#首先,确保您的软件包索引是最新的: +sudo apt update +#步骤 2:安装 Nginx +sudo apt install nginx +#步骤 3:启动 Nginx 服务 +sudo systemctl start nginx +#步骤 4:使 Nginx 服务开机自启 +sudo systemctl enable nginx +#步骤 5:检查 Nginx 状态 +sudo systemctl status nginx +#步骤 6:配置防火墙 +sudo ufw allow 'Nginx Full' + +``` + +### 配置ssh +常见的存放路径是 /etc/nginx/ssl/ +```sh +sudo mkdir -p /etc/nginx/ssl +sudo cp /path/to/your/example.com.crt /etc/nginx/ssl/ +sudo cp /path/to/your/example.com.key /etc/nginx/ssl/ + +``` +```sh +server { + listen 443 ssl; + server_name api.zpc-xy.com; + + ssl_certificate /etc/nginx/ssl/api.zpc-xy.com_nginx/api.zpc-xy.com_bundle.crt; + ssl_certificate_key ssl/api.zpc-xy.com_nginx/api.zpc-xy.com.key; + + # ssl_protocols TLSv1.2 TLSv1.3; # 仅使用 TLS 1.2 和 1.3 + # ssl_ciphers HIGH:!aNULL:!MD5; # 配置强密码套件 + + # location / { + # proxy_pass http://localhost:3000; # 例如,如果你有一个后端应用运行在端口3000 + # proxy_set_header Host $host; + # proxy_set_header X-Real-IP $remote_addr; + # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + # proxy_set_header X-Forwarded-Proto $scheme; + # } +} +``` + ### 配置文件 +```bash +# 基础配置 +server { + listen 80; + server_name example.com www.example.com; + + root /var/www/example.com/html; + index index.html index.htm index.nginx-debian.html; + + location / { + try_files $uri $uri/ =404; + } +} + +server { + # 添加虚拟目录映射 + location /output/ { + # alias /disk/ai_sports/DataGateway/output/; + # 或者使用 root 指令(视具体情况而定) + root /disk/ai_sports/DataGateway/output/; + + # 可选配置:根据需要添加其他指令,如访问控制、缓存策略等 + autoindex on; # 如果希望列出目录内容 + # expires 30d; # 设置静态资源缓存过期时间 + # try_files $uri $uri/ =404; # 用于处理目录索引和文件不存在的情况 + } + } + + +# 代理转发 +server { + listen 82 default_server; + listen [::]:82 default_server; + + #root /var/www/web; + + # Add index.php to the list if you are using PHP + #index index.html index.htm index.nginx-debian.html; + + server_name _; + + location / { + proxy_pass http://192.168.195.32:8189; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + + +} +# 代理转发,允许websocket +server { + listen 82 default_server; + listen [::]:82 default_server; + + #root /var/www/web; + + # Add index.php to the list if you are using PHP + #index index.html index.htm index.nginx-debian.html; + + server_name _; + + + location / { + proxy_pass http://192.168.195.32:8189; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + + +} + +### 添加跨域 +server { + listen 83 default_server; + listen [::]:83 default_server; + + #root /var/www/web; + + # Add index.php to the list if you are using PHP + #index index.html index.htm index.nginx-debian.html; + + server_name _; + + location / { + proxy_pass http://192.168.195.32:9967; + + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + # 添加自定义标头 + + # 添加 CORS 标头 + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, DELETE, PUT'; + add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization'; + + # 如果需要处理 OPTIONS 请求 + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, DELETE, PUT'; + add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization'; + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Length' 0; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + return 204; + } + + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + +} + + + +``` + + + # 安装支持 ngx_stream 模块的 Nginx 版本: + ```sh +sudo apt update +sudo apt install nginx-full +# 更新配置以启用 stream 模块: nginx.conf 文件中添加 +stream { + upstream rdp_backend { + server windows_server_ip:3389; + } + + server { + listen 3389; # 监听的端口,可以根据需要修改 + proxy_pass rdp_backend; + } +} + +## 进阶选项 nginx.conf 文件中添加 + +stream { + include /etc/nginx/stream.d/*.conf; # 确保 stream 块包含 conf.d 目录中的配置文件 +} + #/etc/nginx/stream.d/rdp.conf +upstream rdp_backend { + server 192.168.195.4:3389; # 将此 IP 替换为你的 Windows 服务器 IP +} + +server { + listen 89; # Nginx 监听的端口,可以根据需要修改 + proxy_pass rdp_backend; +} + + ``` \ No newline at end of file diff --git a/文档/linux/node.js.md b/文档/linux/node.js.md new file mode 100644 index 0000000..176eda9 --- /dev/null +++ b/文档/linux/node.js.md @@ -0,0 +1,14 @@ +# Node.js +[官网地址](https://nodejs.org/zh-cn/download/package-manager/all) +### [安装](https://github.com/nodesource/distributions?tab=readme-ov-file#debian-and-ubuntu-based-distributions) +```sh +sudo apt-get install -y curl +#下载Node.js安装脚本: +curl -fsSL https://deb.nodesource.com/setup_22.x -o nodesource_setup.sh +# 使用 sudo 运行Node.js设置脚本: +sudo -E bash nodesource_setup.sh +# 安装Node.js: +sudo apt-get install -y nodejs +#验证安装: +node -v +``` \ No newline at end of file diff --git a/文档/linux/rsync.md b/文档/linux/rsync.md new file mode 100644 index 0000000..ba990fe --- /dev/null +++ b/文档/linux/rsync.md @@ -0,0 +1,26 @@ +# rsync 服务器文件传输 + +## 安装 +```sh +sudo apt-get install rsync +``` + +## 常用命令 +```sh +# 从本地同步到远程服务器 +rsync -avz /path/to/local/dir/ user@remote.server:/path/to/remote/dir/ +# 从远程服务器同步到本地 +rsync -avz user@remote.server:/path/to/remote/dir/ /path/to/local/dir/ +#显示传输进度 +rsync -avz --progress /home/user/project/ user@remote.server:/home/user/backup/ +# 排除某些文件或目录 同步时排除某些文件或目录,可以使用 --exclude 选项: +rsync -avz --exclude 'node_modules' --exclude '*.log' /home/user/project/ user@remote.server:/home/user/backup/ +# 使用 rsync 同步删除文件 在源位置删除的文件,也在目标位置删除,可以使用 --delete 选项 +rsync -avz --delete /home/user/project/ user@remote.server:/home/user/backup/ + +``` +## 常用选项 +1. -a:归档模式,表示递归传输并保持所有文件属性。 +2. -v:详细模式,显示传输过程中的详细信息。 +3. -z:压缩文件数据,以减少传输量。 +4. -P:显示传输进度,并自动重启传输中断的部分 \ No newline at end of file diff --git a/文档/linux/ssh.md b/文档/linux/ssh.md new file mode 100644 index 0000000..e0325e7 --- /dev/null +++ b/文档/linux/ssh.md @@ -0,0 +1,69 @@ +# windwos ssh 创建 +```sh +ssh-keygen -t rsa -b 4096 -C "zhangzhe@pc" +# 输入路径 /c/Users/admin/.ssh/229_rsa +# 创建的路径不能有公共的读写权限 +eval "$(ssh-agent -s)" ssh-add ~/.ssh/229_rsa +ssh-copy-id -i ~/.ssh/229_rsa.pub root@192.168.1.229 +# 远程的时候可以添加密钥文件地址cd +ssh root@192.168.1.229 -i ~/.ssh/229_rsa +``` + +# linux ssh 创建 +```sh +ssh-keygen -t rsa -b 4096 -C "zhangzhe@wsl" +# /home/z/.ssh/229_rsa +eval "$(ssh-agent -s)" ssh-add /home/z/.ssh/229_rsa +ssh-copy-id -i /home/z/.ssh/229_rsa.pub root@192.168.1.229 + # 远程的时候可以添加密钥文件地址 +ssh root@192.168.1.229 -i ~/.ssh/229_rsa + +ssh root@192.168.1.229 -i ~/.ssh/229_rsa "cd /disk/work/sj_git/sunnysports/;make build-data" + +``` +ssh-copy-id -i /root/.ssh/id_rsa.pub + +# linux ssh 线上 +```sh +ssh-keygen -t rsa -b 4096 -C "zhangzhe@wsl" +# /home/z/.ssh/25_rsa +eval "$(ssh-agent -s)" ssh-add /home/z/.ssh/25_rsa +ssh-copy-id -i /home/z/.ssh/25_rsa.pub root@192.144.132.25 + # 远程的时候可以添加密钥文件地址 +ssh root@192.144.132.25 -i ~/.ssh/25_rsa + + +``` + +```sh +ssh-keygen -t rsa -b 4096 -C "zhangzhe@pc" +# 输入路径 /c/Users/admin/.ssh/25_rsa +# 创建的路径不能有公共的读写权限 +eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_rsa +ssh-copy-id -i ~/.ssh/25_rsa.pub root@192.144.132.25 + +ssh root@106.75.209.57 +# 远程的时候可以添加密钥文件地址 +ssh root@192.144.132.25 -i ~/.ssh/25_rsa +``` +ssh-copy-id -i ~/.ssh/id_rsa.pub ubuntu@1.117.87.77 +eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_rsa +1.117.87.77 +dbt@com@1234 +ssh ubuntu@1.117.87.77 +ssh root@1.117.87.77 + + +ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.144.132.25 + +ssh-copy-id -i ~/.ssh/id_rsa.pub ubuntu@123.207.203.228 +ssh-copy-id -i ~/.ssh/id_rsa.pub ubuntu@106.75.209.57 + +ssh root@192.168.1.229 -i ~/.ssh/229_rsa + +123.207.203.228 + + + +ssh-copy-id -i ~/.ssh/id_rsa.pub ubuntu@123.207.203.228 + diff --git a/文档/linux/服务文件/code-release.service b/文档/linux/服务文件/code-release.service new file mode 100644 index 0000000..7ee2f7c --- /dev/null +++ b/文档/linux/服务文件/code-release.service @@ -0,0 +1,22 @@ +[Unit] +Description=code-release +After=network.target +[Service] +# 运行 设置环境变量 +#指定服务的工作目录 +WorkingDirectory=/disk/CodeRelease +# run +ExecStart=/disk/CodeRelease/CodeRelease +SyslogIdentifier=CodeRelease +User=root +# 打开资源限制infinity 默认会到65535 +LimitNOFILE=1048576 +LimitNPROC=infinity +LimitCORE=infinity +# 自动检查重启,10秒后重启 +Restart=always +RestartSec=10 +[Install] +WantedBy=multi-user.target + + diff --git a/文档/linux/服务文件/部署文档.md b/文档/linux/服务文件/部署文档.md new file mode 100644 index 0000000..12bb061 --- /dev/null +++ b/文档/linux/服务文件/部署文档.md @@ -0,0 +1,33 @@ +## 服务文件 +/etc/systemd/system/baget.service +```sh +sudo nano /etc/systemd/system/code-release.service +sudo systemctl start code-release.service +sudo systemctl daemon-reload +sudo systemctl start baget +sudo systemctl enable baget +sudo systemctl status baget +sudo systemctl stop baget + + +sudo systemctl restart code-release + +``` +## 发布命令 +```sh +# /disk/BaGet/src/BaGet$ + dotnet publish -c Release -o /disk/BaGetApi/ + dotnet publish -c Release -o /disk/CodeRelease/public/ +``` + +## 同步命令 +```sh +rsync -avz /disk/BaGetApi/ ubuntu@123.207.203.228:/disk/BaGet/net8.0/ +rsync -avz /disk/CodeRelease/public/ ubuntu@123.207.203.228:/disk/CodeRelease/ + +``` +## 上传 +```sh +dotnet nuget push XLib.NetCore.Utility.1.0.0.nupkg --source "http://123.207.203.228:91/v3/index.json" --api-key "066f010d59" + +``` diff --git a/文档/windwos/netsh 代理转发.md b/文档/windwos/netsh 代理转发.md new file mode 100644 index 0000000..67da3ea --- /dev/null +++ b/文档/windwos/netsh 代理转发.md @@ -0,0 +1,16 @@ +```sh +# 查看所有转发 +netsh interface portproxy show all +# 转发端口 listenaddress 转发地址 到 connectaddress +netsh interface portproxy add v4tov4 listenport=7860 listenaddress=117.50.182.144 connectport=7860 connectaddress=127.0.0.1 +netsh advfirewall firewall add rule name="Allow Port 7860" protocol=TCP dir=in localport=7860 action=allow + + +# interface portproxy add +netsh interface portproxy add v4tov4 listenport=5000 listenaddress=117.50.182.144 connectport=5000 connectaddress=127.0.0.1 +# 删除转发 +netsh interface portproxy delete v4tov4 listenport=7860 listenaddress=117.50.182.144 +# 重启 +netsh interface portproxy reset + +``` \ No newline at end of file diff --git a/文档/其它/.editorconfig b/文档/其它/.editorconfig new file mode 100644 index 0000000..acb903c --- /dev/null +++ b/文档/其它/.editorconfig @@ -0,0 +1,214 @@ +############################### +# 核心编辑器配置选项 # +############################### +root = true +# All files +[*] +indent_style = space + +# XML project files +[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj}] +indent_size = 2 + +# XML config files +[*.{props,targets,ruleset,config,nuspec,resx,vsixmanifest,vsct}] +indent_size = 2 +[*.cs] +end_of_line = lf #指定换行符的类型,可以是lf(Unix/Linux)、crlf(Windows)或cr(老式的Mac OS)。 +# Code files +[*.{cs,csx,vb,vbx}] +indent_size = 4 +insert_final_newline = true +charset = utf-8 #设置文件字符集为utf-8,在 Linux 系统中,通常推荐使用 UTF-8 而不是 UTF-8 with BOM。添加 BOM 可能会干扰那些不期望在文件开头出现非 ASCII 字节的软件对 UTF-8 的使用。 +############################### +# .NET 编码约定 # +############################### +[*.{cs,vb}] + +# 组织 using 指令,将系统引用放在前面 +dotnet_sort_system_directives_first = true + +# this. 语法的偏好设置 +dotnet_style_qualification_for_field = false:silent # 对字段使用 this. 语法时,不强制要求 +dotnet_style_qualification_for_property = false:silent # 对属性使用 this. 语法时,不强制要求 +dotnet_style_qualification_for_method = false:silent # 对方法使用 this. 语法时,不强制要求 +dotnet_style_qualification_for_event = false:silent # 对事件使用 this. 语法时,不强制要求 + +# 语言关键字与 BCL(基类库)类型的偏好设置 +dotnet_style_predefined_type_for_locals_parameters_members = true:silent # 推荐在局部变量、参数和成员中使用语言关键字而不是 BCL 类型 +dotnet_style_predefined_type_for_member_access = true:silent # 推荐在成员访问中使用语言关键字而不是 BCL 类型 + +# 括号的偏好设置 +dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent # 推荐在算术二元运算符周围始终使用括号以增强清晰度 +dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent # 推荐在关系二元运算符周围始终使用括号以增强清晰度 +dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent # 推荐在其他二元运算符周围始终使用括号以增强清晰度 +dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent # 在其他操作符周围使用括号时,只在必要时添加 + +# 修饰符的偏好设置 +dotnet_style_require_accessibility_modifiers = for_non_interface_members:silent # 针对非接口成员,推荐添加访问修饰符 +dotnet_style_readonly_field = true:suggestion # 推荐将字段声明为只读 +dotnet_style_object_initializer = true:suggestion # 推荐使用对象初始化器 +dotnet_style_collection_initializer = true:suggestion # 推荐使用集合初始化器 +dotnet_style_explicit_tuple_names = true:suggestion # 推荐使用显式的元组成员命名 +dotnet_style_null_propagation = true:suggestion # 推荐使用 null 条件运算符(?.)进行空引用检查 +dotnet_style_coalesce_expression = true:suggestion # 推荐使用空值合并运算符(??) +dotnet_style_prefer_is_null_check_over_reference_equality_method = true:silent # 在检查是否为 null 时,推荐使用 is 运算符而不是引用相等方法 +dotnet_style_prefer_inferred_tuple_names = true:suggestion # 推荐使用推断的元组成员命名 +dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion # 推荐使用推断的匿名类型成员命名 +dotnet_style_prefer_auto_properties = true:silent # 推荐使用自动属性 +dotnet_style_prefer_conditional_expression_over_assignment = true:silent # 推荐使用条件表达式而不是赋值表达式 +dotnet_style_prefer_conditional_expression_over_return = true:silent # 推荐使用条件表达式而不是 return 语句 + +############################### +# 命名约定 # +############################### + +# 样式定义 +dotnet_naming_style.pascal_case_style.capitalization = pascal_case # 使用 PascalCase 风格 + +# 命名规则:常量字段应使用 PascalCase 风格 +dotnet_naming_rule.constant_fields_should_be_pascal_case.severity = suggestion # 规则严重程度为建议 +dotnet_naming_rule.constant_fields_should_be_pascal_case.symbols = constant_fields # 适用于 constant_fields 符号 +dotnet_naming_rule.constant_fields_should_be_pascal_case.style = pascal_case_style # 风格为 PascalCase + +# 常量字段的符号定义 +dotnet_naming_symbols.constant_fields.applicable_kinds = field # 适用于字段 +dotnet_naming_symbols.constant_fields.applicable_accessibilities = * # 适用于所有可见性(public、internal、private 等) +dotnet_naming_symbols.constant_fields.required_modifiers = const # 必须具有 const 修饰符 + +############################### +# C# 编码约定 # +############################### +[*.cs] + +# var 的偏好设置 +csharp_style_var_for_built_in_types = true:silent # 当变量的类型是内置类型时,使用 var +csharp_style_var_when_type_is_apparent = true:silent # 当变量类型明显时,使用 var +csharp_style_var_elsewhere = true:silent # 在其他情况下,也使用 var + +# 表达式主体成员的偏好设置 +csharp_style_expression_bodied_methods = false:silent # 不使用表达式主体的方法 +csharp_style_expression_bodied_constructors = false:silent # 不使用表达式主体的构造函数 +csharp_style_expression_bodied_operators = false:silent # 不使用表达式主体的运算符 +csharp_style_expression_bodied_properties = true:silent # 使用表达式主体的属性 +csharp_style_expression_bodied_indexers = true:silent # 使用表达式主体的索引器 +csharp_style_expression_bodied_accessors = true:silent # 使用表达式主体的访问器 + +# 模式匹配的偏好设置 +csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion # 推荐使用模式匹配而非 is 与类型转换检查 +csharp_style_pattern_matching_over_as_with_null_check = true:suggestion # 推荐使用模式匹配而非 as 与 null 检查 + +# 空检查的偏好设置 +csharp_style_throw_expression = true:suggestion # 推荐使用 throw 表达式 +csharp_style_conditional_delegate_call = true:suggestion # 推荐使用条件委托调用 + +# 修饰符的偏好设置 +csharp_preferred_modifier_order = public,private,protected,internal,file,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,required,volatile,async:suggestion # 修饰符的推荐顺序 + +# 表达式级别的偏好设置 +csharp_prefer_braces = true:silent # 推荐使用大括号,即使在可能省略的情况下 +csharp_style_deconstructed_variable_declaration = true:suggestion # 推荐使用解构变量声明 +csharp_prefer_simple_default_expression = true:suggestion # 推荐使用简化的默认值表达式 +csharp_style_prefer_local_over_anonymous_function = true:suggestion # 推荐使用本地函数而非匿名函数 +csharp_style_inlined_variable_declaration = true:suggestion # 推荐内联变量声明 + +############################### +# C# 格式化规则 # +############################### +# 新行偏好设置 + +# 在大括号前添加新行(适用于所有情况) +csharp_new_line_before_open_brace = all + +# 在 "else" 关键字前添加新行 +csharp_new_line_before_else = true + +# 在 "catch" 关键字前添加新行 +csharp_new_line_before_catch = true + +# 在 "finally" 关键字前添加新行 +csharp_new_line_before_finally = true + +# 在对象初始化器中的成员前添加新行 +csharp_new_line_before_members_in_object_initializers = true + +# 在匿名类型初始化器中的成员前添加新行 +csharp_new_line_before_members_in_anonymous_types = true + +# 在查询表达式的子句之间添加新行 +csharp_new_line_between_query_expression_clauses = true + +# 缩进偏好设置 + +# 缩进 switch 语句的内容 +csharp_indent_case_contents = true + +# 缩进 switch 语句的标签 +csharp_indent_switch_labels = true + +# 缩进左对齐 switch 语句的标签 +csharp_indent_labels = flush_left + +# 空间首选项 +# 禁止在强制类型转换后添加空格 +csharp_space_after_cast = false + +# 在控制流语句(如 if、for、while)的关键字后添加空格 +csharp_space_after_keywords_in_control_flow_statements = true + +# 在方法调用的参数列表的括号内禁止添加空格 +csharp_space_between_method_call_parameter_list_parentheses = false + +# 在方法声明的参数列表的括号内禁止添加空格 +csharp_space_between_method_declaration_parameter_list_parentheses = false + +# 在圆括号内禁止添加空格 +csharp_space_between_parentheses = false + +# 在继承声明中的冒号前添加空格 +csharp_space_before_colon_in_inheritance_clause = true + +# 在继承声明中的冒号后添加空格 +csharp_space_after_colon_in_inheritance_clause = true + +# 在二元操作符周围的空格,前后都添加 +csharp_space_around_binary_operators = before_and_after + +# 在方法声明的空参数列表的括号内禁止添加空格 +csharp_space_between_method_declaration_empty_parameter_list_parentheses = false + +# 在方法调用的方法名和左括号之间禁止添加空格 +csharp_space_between_method_call_name_and_opening_parenthesis = false + +# 在方法调用的空参数列表的括号内禁止添加空格 +csharp_space_between_method_call_empty_parameter_list_parentheses = false + +# 包装偏好设置 +csharp_preserve_single_line_statements = true # 保留单行语句的换行风格 +csharp_preserve_single_line_blocks = true # 保留单行块的换行风格 +# C# using 指令的放置偏好设置 +csharp_using_directive_placement = outside_namespace:silent # 在命名空间外部放置 using 指令,不强制要求 + +# 表达式主体的 Lambda 表达式的偏好设置 +csharp_style_expression_bodied_lambdas = true:silent # 推荐使用表达式主体的 Lambda 表达式,不强制要求 + +# 表达式主体的本地函数的偏好设置 +csharp_style_expression_bodied_local_functions = false:silent # 不推荐使用表达式主体的本地函数,不强制要求 + +# 简化 using 语句的偏好设置 +csharp_prefer_simple_using_statement = true:suggestion # 推荐使用简化的 using 语句,建议使用 + +# 命名空间声明风格的偏好设置 +csharp_style_namespace_declarations = block_scoped:silent # 使用块级作用域的命名空间声明风格,不强制要求 + +# 方法组转换的偏好设置 +csharp_style_prefer_method_group_conversion = true:silent # 推荐使用方法组转换,不强制要求 + +# 首选顶层语句的偏好设置 +csharp_style_prefer_top_level_statements = true:silent # 推荐使用顶层语句,不强制要求 + +# 首选主构造函数的偏好设置 +csharp_style_prefer_primary_constructors = true:suggestion # 推荐使用主构造函数,建议使用 + +# 使用静态本地函数的偏好设置 +csharp_prefer_static_local_function = true:suggestion # 推荐使用静态本地函数,建议使用 diff --git a/文档/其它/.editorconfig1 b/文档/其它/.editorconfig1 new file mode 100644 index 0000000..eceed73 --- /dev/null +++ b/文档/其它/.editorconfig1 @@ -0,0 +1,38 @@ + +root = true + +# 全部文件 +[*] +indent_style = space #指定缩进风格,可以是tab(制表符)或space(空格) + +# Xml files +[*.xml] +indent_size = 2 #定义一个缩进级别的大小。 + +[*.cs] +end_of_line = lf #指定换行符的类型,可以是lf(Unix/Linux)、crlf(Windows)或cr(老式的Mac OS)。 +indent_style = space #指定缩进风格,可以是tab(制表符)或space(空格) +charset = utf-8 #设置文件字符集为utf-8,在 Linux 系统中,通常推荐使用 UTF-8 而不是 UTF-8 with BOM。添加 BOM 可能会干扰那些不期望在文件开头出现非 ASCII 字节的软件对 UTF-8 的使用。 +trim_trailing_whitespace = true #指定是否删除行尾的空白字符。 +insert_final_newline = true #指定文件末尾是否应该插入一个空白行。 +indent_size = 4 +# 模式匹配的偏好设置 +csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion # 推荐使用模式匹配而非 is 与类型转换检查 +csharp_style_pattern_matching_over_as_with_null_check = true:suggestion # 推荐使用模式匹配而非 as 与 null 检查 + +# 空检查的偏好设置 +csharp_style_throw_expression = true:suggestion # 推荐使用 throw 表达式 +csharp_style_conditional_delegate_call = true:suggestion # 推荐使用条件委托调用 + +# 修饰符的偏好设置 +csharp_preferred_modifier_order = public,private,protected,internal,file,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,required,volatile,async:suggestion # 修饰符的推荐顺序 + +# 表达式级别的偏好设置 +csharp_prefer_braces = true:silent # 推荐使用大括号,即使在可能省略的情况下 +csharp_style_deconstructed_variable_declaration = true:suggestion # 推荐使用解构变量声明 +csharp_prefer_simple_default_expression = true:suggestion # 推荐使用简化的默认值表达式 +csharp_style_prefer_local_over_anonymous_function = true:suggestion # 推荐使用本地函数而非匿名函数 +csharp_style_inlined_variable_declaration = true:suggestion # 推荐内联变量声明 +# 首选顶层语句的偏好设置 +csharp_style_prefer_top_level_statements = true:silent # 推荐使用顶层语句,不强制要求 + diff --git a/文档/其它/README.md b/文档/其它/README.md new file mode 100644 index 0000000..f697f1d --- /dev/null +++ b/文档/其它/README.md @@ -0,0 +1,3 @@ +# document + +文档 \ No newline at end of file diff --git a/文档/其它/sunny-sports-api.service b/文档/其它/sunny-sports-api.service new file mode 100644 index 0000000..128f601 --- /dev/null +++ b/文档/其它/sunny-sports-api.service @@ -0,0 +1,20 @@ +[Unit] +Description=sunny-sports-api +After=network.target +[Service] +# 运行 设置环境变量 +#指定服务的工作目录 +WorkingDirectory=/disk/ai_sports/sunnysportsapi +# run +ExecStart=/disk/ai_sports/sunnysportsapi/SunnySports.Api +SyslogIdentifier=SunnySportsApi +User=root +# 打开资源限制infinity 默认会到65535 +LimitNOFILE=1048576 +LimitNPROC=infinity +LimitCORE=infinity +# 自动检查重启,10秒后重启 +Restart=always +RestartSec=10 +[Install] +WantedBy=multi-user.target diff --git a/文档/其它/sunny-sports-api.service test b/文档/其它/sunny-sports-api.service test new file mode 100644 index 0000000..4d41361 --- /dev/null +++ b/文档/其它/sunny-sports-api.service test @@ -0,0 +1,20 @@ +[Unit] +Description=sunny-sports-api +After=network.target +[Service] +# 运行 设置环境变量 +#指定服务的工作目录 +WorkingDirectory=/disk/sunnysportsapi +# run +ExecStart=/disk/sunnysportsapi/SunnySports.Api +SyslogIdentifier=SunnySportsApi +User=root +# 打开资源限制infinity 默认会到65535 +LimitNOFILE=1048576 +LimitNPROC=infinity +LimitCORE=infinity +# 自动检查重启,10秒后重启 +Restart=always +RestartSec=10 +[Install] +WantedBy=multi-user.target diff --git a/文档/其它/test.md b/文档/其它/test.md new file mode 100644 index 0000000..c5cf1c4 --- /dev/null +++ b/文档/其它/test.md @@ -0,0 +1,17 @@ +后台管理 +需要管理数据库 +需要可以添加数据库 +需要可以删除数据库 + +学生数据库和系统库是否绑定 + + +dotnet ef dbcontext scaffold "Server=192.168.1.229;Database=SunnySport_StudentBase;User ID=chfl;Password=chfl;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=True;" Microsoft.EntityFrameworkCore.SqlServer --no-pluralize --force --output-dir Model/Db_Student/ + +项目中 +学生数据库是分库,系统数据库是TenantId隔离 +需要的配置 +1.学校名称 +2.系统数据库租户id +3.系统数据库连接字符串 +4.学生数据库连接字符串 \ No newline at end of file diff --git a/文档/其它/工作文档.md b/文档/其它/工作文档.md new file mode 100644 index 0000000..63f7b60 --- /dev/null +++ b/文档/其它/工作文档.md @@ -0,0 +1,117 @@ +# 工作文档 + +## 远程服务器 + +用户名:_sjgame_ +密    码:_Itvgame2020@!$#_ +默认端口号:_33389_ + +### 国内服务器地址 + +| 服务器名称 | 外网地址 | 内网地址 | 备注 | +| ------------------ | ----------------- | ----------------- | -------------------- | +| 蘑菇游戏-web-1 | 82.157.13.127 | 172.21.64.107 | 绘画接口也在服务器上 | +| 蘑菇游戏-web-2 | 82.157.29.123 | 172.21.64.99 | | +| 蘑菇游戏-web-3 | 82.157.14.24 | 172.21.64.69 | | +| 蘑菇游戏-扩展服务 | 81.70.0.132 | 172.21.127.25 | | +| 蘑菇游戏-PC | 101.42.136.223 | 172.21.64.80 | 官网服务器 | +| ~~蘑菇游戏-web-1~~ | ~~82.157.20.213~~ | ~~172.21.112.18~~ | 已废弃 | +| ~~蘑菇游戏-web-2~~ | ~~82.157.29.123~~ | ~~172.21.112.4~~ | 已废弃 | +| ~~蘑菇游戏-web-3~~ | ~~82.157.14.24~~ | ~~172.21.112.25~~ | 已废弃 | + +### 海外服务器地址 + +| 服务器名称 | 外网地址 | 内网地址 | 备注 | +| ----------------- | ------------- | ------------ | ---------------------- | +| 蘑菇游戏-web-1 | 101.32.15.216 | 172.19.0.12 | 绘画服务器 1 | +| 蘑菇游戏-web-2 | 101.32.14.235 | 172.19.0.11 | 绘画服务器 2 | +| 蘑菇游戏-web-3 | 43.135.25.193 | 172.19.0.95 | 绘画服务器 3 | +| 蘑菇游戏-扩展服务 | 43.129.199 | 172.19.0.13 | | +| 蘑菇游戏-PC | 43.129.195.20 | 172.19.0.149 | 官网服务器 | +| DB | | 172.19.0.17 | 数据库服务器,没有外网 | + +### 跳板机 + +| 服务器名称 | 外网地址 | 内网地址 | 账号 | 密码 | 备注 | +| -------------- | -------------------- | -------- | -------- | ---------------- | -------------------------------------------------------------------------------------------------------- | +| 测试环境跳板机 | 112.124.23.127:33389 | -------- | zhangzhe | CRPCXmdJV5IbK6kh | 测试环境绘画 vnc 地址:
_121.11.212.23:15903_
_tvgame@1_ | +| 现网跳板机 | 112.124.23.127:33389 | -------- | yinming | nwA6QVatxEzIgEdw | 远程现网服务器地址:
_D:\Soft\mstsc-bat\无盘更新 server\601-games-国内-瑞云-华南-广东-cbd-2-(200 路)_ | + +### 其他服务器 + +| 服务器名称 | 外网地址 | 内网地址 | 账号 | 密码 | 备注 | +| ------------------------- | -------------------- | ------------------- | ------ | ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 测试环境服务器 | 121.5.26.77:33389 | | sjgame | Itvgame2020@!$# | 蘑菇和绘画测试服务器 | +| vnc 绘画服务器 | | 121.11.212.23:15903 | | _tvgame@1_ | 需要使用 vnc 连接 | +| 西南交大服务器-测试 | 43.143.246.189:33389 | | sjgame | _Itvgame2020@!$#_ | 测试环境 | +| 西南交大正式服务器-跳板机 | 146.56.198.144:33389 | | sjgame | _Itvgame2020@!$#_ | 远程服务器后需要登录 vpn 才能连接校园服务器 | +| 西南交大正式服务器 | 10.31.19.58 | | sjgame | _Itvgame2020@!$#_ | 如果连上面的服务器,需要有如下步骤
1)登录跳板机:146.56.198.144:33389 用户名:sjgame 密码:Itvgame2020@!$#
2)拨VPN,在跳板机的桌面上有一个vpn.txt,上面都有说明,短信手机号是赵亮的
3)在跳板机上面直接远程:10.31.19.58 即可,然后这台就是正式的WEB服务器 | + +## 账号 + +| 名称 | 账号 | 密码 | 网址 | 备注 | +| ---------------------------------------------------------------------------------------------------- | ---------------------- | ----------------- | ----------------------------------------------------------------------------------------- | ---------------------------------------------------------- | +| [git](http://192.168.1.33/users/sign_in) | zhangzhe@holyblade.com | dbt@com@123 | _http://192.168.1.33/users/sign_in_ | git 项目管理地址 | +| ~~[svn](http://192.168.1.19:82/svn/%e6%96%b0%e4%b8%9a%e5%8a%a1/98-%e9%a1%b9%e7%9b%ae/MoguExtCode/)~~ | zhangzhe | RG8orVOa | http://192.168.1.19:82/svn/%e6%96%b0%e4%b8%9a%e5%8a%a1/98-%e9%a1%b9%e7%9b%ae/MoguExtCode/ | 代码已经不再 svn 中管理,使用 git 管理 | +| [禅道](https://moguyouxi.zentaopm.com/) | zhangzhe | zhangzhe0714 | _https://moguyouxi.zentaopm.com/_ | 管理项目进度 | +| [神策](https://sj.cloud.sensorsdata.cn/login/index.html) | heyao@holyblade.com | heyao123!@# | https://sj.cloud.sensorsdata.cn/login/index.html | 用于统计app数据,没有自己的账号,注意:需要断开vpn才能访问 | +| [蓝湖](https://lanhuapp.com/link/#/invite?sid=lx0c2ZfN) | 18761127117 | | | 手机号登录,如果没有权限,找美术开通权限 | +| [百度统计](https://tongji.baidu.com/web/homepage/index) | 13162753112 | Mogu2022. | _https://tongji.baidu.com/web/homepage/index_ | 使用百度账号登录,如果需要发送验证码,找市场部(唐丹等人) | +| ~~[网站监测](http://81.70.0.156:8001/)~~ | logadmin | tech@mogu2021 | http://81.70.0.156:8001/ | 现在访问不通 | +| [友盟](https://www.umeng.com/) | 圣剑网络云游戏 | holyblade0306 | https://www.umeng.com/ | 验证手机(林宇):19521266946,类似神策 | +| [国内鲸云](https://jyapi.moguyouxi.cn:4433/admin/login) | shengjian | sjManager@admin19 | https://jyapi.moguyouxi.cn:4433/admin/login | | +| [海外鲸云](https://jyapihw.moguyouxi.cn:8400//admin/login) | shengjian | sjManager@admin19 | https://jyapihw.moguyouxi.cn:8400//admin/login | | + +## 阿里云OSS +阿里云cdn的客户端工具 +https://help.aliyun.com/document_detail/61872.html +~~holyblade@aliyun.com/holyblade1812~~ +AccessKey ID:_2ZtnBc61LYwbUoAq_ +AccessKey Secret:_ec4UWI8pJ9staa40HGFKcf1WewU0R5_ + + +## 开发事项 + +### api接口地址 + +#### 测试环境 + +* 蘑菇api + 1. [app接口](https://test.moguyouxi.cn:8400/Phone300_Api/) _https://test.moguyouxi.cn:8400/Phone300_Api/_ + 2. [游戏直播api](https://test.moguyouxi.cn:8400/GameLive/) _https://test.moguyouxi.cn:8400/GameLive/_ + 3. [扩展api](https://test.moguyouxi.cn:8400/MoguExt/) _https://test.moguyouxi.cn:8400/MoguExt/_ + 4. [游戏服务api](https://test.moguyouxi.cn:8400/GameApi/) _https://test.moguyouxi.cn:8400/GameApi/_ + 5. [游戏对战api](https://test.moguyouxi.cn:8400/GameFight/) _https://test.moguyouxi.cn:8400/GameFight/_ + 6. [支付api](https://test.moguyouxi.cn:8400/MoguExt.PaymentCenter/) _https://test.moguyouxi.cn:8400/MoguExt.PaymentCenter/_ + 7. [蘑菇活动api](https://test.moguyouxi.cn:8400/MoguExt.HD/) _https://test.moguyouxi.cn:8400/MoguExt.HD/_ +* 绘画api + 1. [绘画api](https://test.moguyouxi.cn:8400/HissAi4.Api/) _https://test.moguyouxi.cn:8400/HissAi4.Api/_ + 2. [绘画api_net6](https://test.moguyouxi.cn:8400/HissAi6.Api/) _https://test.moguyouxi.cn:8400/HissAi6.Api/_ + 3. [支付api](https://test.moguyouxi.cn:8400/HissAi4.PayCenter/) _https://test.moguyouxi.cn:8400/HissAi4.PayCenter/_ + +#### 国内正式api + +* 蘑菇api + 1. [app接口](https://sjapi.moguyouxi.cn:8400/Phone300_Api/) _https://sjapi.moguyouxi.cn:8400/Phone300_Api/_ + 2. [游戏直播api](https://sjapi.moguyouxi.cn:8400/GameLive/) _https://sjapi.moguyouxi.cn:8400/GameLive/_ + 3. [游戏服务api](https://sjapi.moguyouxi.cn:8400/Phone300_GameApi/) _https://sjapi.moguyouxi.cn:8400/Phone300_GameApi/_ + 4. [游戏对战api](https://sjapi.moguyouxi.cn:8400/GameFight/) _https://sjapi.moguyouxi.cn:8400/GameFight/_ + 5. [扩展api](https://moguext.moguyouxi.cn/MoguExt/) _https://moguext.moguyouxi.cn/MoguExt/_ + 6. [支付api](https://moguext.moguyouxi.cn/MoguExt.PaymentCenter/) _https://moguext.moguyouxi.cn/MoguExt.PaymentCenter/_ + 7. [蘑菇活动api](https://moguext.moguyouxi.cn/MoguExt.HD/) _https://moguext.moguyouxi.cn/MoguExt.HD/_ +* 绘画api + 1. [绘画api](https://api.hissai.com:8400/) _https://api.hissai.com:8400/_ + 2. [绘画api_net6](https://api.hissai.com:8400/HissAi6.Api/) _https://api.hissai.com:8400/HissAi6.Api/_ + 3. [支付api](https://api-pay.hissai.com/) _https://api-pay.hissai.com/_ + + +### 开发资料 +| 名称 | 地址 | 备注 | +| -------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---- | +| [抖音开发文档](https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/content-security/picture-detect-v2) | https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/content-security/picture-detect-v2 | | +| [微信开发文档](https://developers.weixin.qq.com/miniprogram/dev/framework/runtime/skyline/introduction.html) | https://developers.weixin.qq.com/miniprogram/dev/framework/runtime/skyline/introduction.html | | +| [微信公众平台](https://mp.weixin.qq.com/) | https://mp.weixin.qq.com/ | | +| [SEO综合查询](https://seo.chinaz.com/www.moguyouxi.cn) | https://seo.chinaz.com/www.moguyouxi.cn | | +|[云测试](https://www.testin.cn/account/login.htm)|https://www.testin.cn/account/login.htm|| +|[微软技术文档](https://learn.microsoft.com/zh-cn/docs/)|https://learn.microsoft.com/zh-cn/docs/|| +|[uni-app](https://uniapp.dcloud.net.cn/)|https://uniapp.dcloud.net.cn/|| \ No newline at end of file diff --git a/文档/其它/本地-阳光体育.md b/文档/其它/本地-阳光体育.md new file mode 100644 index 0000000..02787c4 --- /dev/null +++ b/文档/其它/本地-阳光体育.md @@ -0,0 +1,18 @@ +远程方式 +```sh +ssh -p 22 root@192.168.1.229 +# Itvgame2020@!$# +``` +# 服务器静态文件目录 +```sh +# /var/www/html/SunnySportsStudent +``` + +测试环境 +[学生端首页](http://192.168.1.229/SunnySportsStudent/index.html) +[教师端首页](http://192.168.1.229/SunnySportsTeacher/index.html) +唐镇环境 +[学生端首页](https://test.moguyouxi.cn/SunnySportsStudent/index.html) +[教师端首页](https://test.moguyouxi.cn/SunnySportsTeacher/index.html) + +ssh -p 22 ubuntu@124.222.7.198 \ No newline at end of file diff --git a/文档/其它/点赞.txt b/文档/其它/点赞.txt new file mode 100644 index 0000000..9b2f566 --- /dev/null +++ b/文档/其它/点赞.txt @@ -0,0 +1,63 @@ + public BaseResponse DownloadPng(int appId, long userId, long drawId) + { + //var photoAlbum = dao.daoUserData.context.T_User_PhotoAlbum.Where(t => t.Type == 0 && t.DrawId == drawId).FirstOrDefault(); + var photoAlbum = dao.daoUserData.context.T_User_Gallery.Where(t => t.Type == 0 && t.DrawId == drawId).FirstOrDefault(); + if (photoAlbum == null) + { + return new BaseResponse(ResonseCode.Error, "未找到画廊数据"); + } + var obj = dao.daoLog.context.T_Draw_Download_log.Where(t => t.UserId == userId && t.DrawId == drawId).FirstOrDefault(); + var imgUrl = string.Empty; + if (obj != null) + { + imgUrl = dao.daoData.context.T_Draw_Log.Where(it => it.Id == drawId).Select(t => t.TaskResult).FirstOrDefault(); + return new BaseResponse(ResonseCode.Success, "", imgUrl); + } + var user = dao.daoUserData.context.T_Users_Data.Where(t => t.UserId == userId).FirstOrDefault(); + if (user == null) + { + return new BaseResponse(ResonseCode.Error, "用户不存在"); + } + var like = dao.daoUserData.context.T_User_Like.FirstOrDefault(it => it.DrawId == drawId && it.UserId == userId); + if (like != null) + { + if (string.IsNullOrEmpty(imgUrl)) + { + imgUrl = dao.daoData.context.T_Draw_Log.Where(it => it.Id == drawId).Select(t => t.TaskResult).FirstOrDefault(); + } + return new BaseResponse(ResonseCode.Success, "", imgUrl); + } + var currency = user.Currency; + if (currency <= 0) + { + return new BaseResponse(ResonseCode.UserNotMoney, "用户金额不足"); + } + if (obj == null) + { + var t_Draw_Download_Log = new T_Draw_Download_log + { + UserId = userId, + DrawId = drawId, + GalleryId = photoAlbum.Id, + CreateDateTime = DateTime.Now, + LastDownloadDateTime = DateTime.Now, + DownloadCount = 1, + DownloadConsume = 1 + }; + dao.daoLog.Add(t_Draw_Download_Log); + } + else + { + obj.DownloadConsume += 1; + obj.DownloadCount += 1; + obj.LastDownloadDateTime = DateTime.Now; + dao.daoLog.Update(obj); + } + new AccountBLL(dao).UpUserCurrencyInfo(userId, currency: -1); + dao.daoLog.context.SaveChanges(); + if (string.IsNullOrEmpty(imgUrl)) + { + imgUrl = dao.daoData.context.T_Draw_Log.Where(it => it.Id == drawId).Select(t => t.TaskResult).FirstOrDefault(); + } + return new BaseResponse(ResonseCode.Success, "", imgUrl); + } \ No newline at end of file diff --git a/文档/其它/阳光体育部署文档.md b/文档/其它/阳光体育部署文档.md new file mode 100644 index 0000000..35a5734 --- /dev/null +++ b/文档/其它/阳光体育部署文档.md @@ -0,0 +1,232 @@ +# 阳光体育部署文档 + +## 先决条件 +1.dotnet 8 +2.git + +## 运行项目 +```sh +# 假设项目文件在 /disk/ 目录下(disk为空目录) +sudo mkdir /disk +sudo chmod 777 /disk + +# 拉取代码 +git clone git@192.168.1.33:mogu_server/sunnysports.git +# 进入到拉取代码文件中 +cd /disk/sunnysports +# 安装git子模块 +git submodule init +# 拉去子模块代码,拉完需要检测下子模块文件夹中是否有文件(子模块路径:/disk/sunnysports/SunnySports/XLib) +git submodule update +# 切换子模块分支(先切换到主目录,在切换分支,然后拉去代码) +cd /disk/sunnysports/SunnySports/XLib +git checkout main +git pull +# 切换主项目分支(和上面一样) +cd /disk/sunnysports +git checkout main +git pull +# 还原包 +cd /disk/sunnysports/SunnySports +dotnet restore +# 编译项目 +cd /disk/sunnysports/SunnySports +dotnet build +#编译api项目 +cd /disk/sunnysports/SunnySports/1-api/SunnySports.Api +dotnet build +# 运行项目 +cd /disk/sunnysports/SunnySports/1-api/SunnySports.Api +dotnet run +``` + +## 发布项目 +```sh +# 假设项目文件在 /disk/ 目录下(disk文件夹中已经有sunnysports项目文件夹) +# 创建文件夹SunnySportsApi DataGateway +cd /disk/ +mkdir sunnysportsapi +sudo chmod 777 sunnysportsapi +# 发布项目 +cd /disk/sunnysports/SunnySports/1-api/SunnySports.Api +dotnet publish -c Release -o /disk/sunnysportsapi +# 运行项目 +cd /disk/sunnysportsapi +./SunnySports.Api +``` + +## 发布项目 +```sh +# 假设项目文件在 /disk/ 目录下(disk文件夹中已经有sunnysports项目文件夹) +# 创建文件夹SunnySportsApi DataGateway +cd /disk/ +mkdir DataGateway +sudo chmod 777 DataGateway +# 发布项目 +cd /disk/sunnysports/SunnySports/2-service/DataGateway +dotnet publish -c Release -o /disk/DataGateway/ +rsync -avz /disk/DataGateway/ root@192.144.132.25:/disk/ai_sports/DataGateway/ +# 运行项目 /disk/DataGateway/NLog.config +cd /disk/sunnysportsapi +./SunnySports.Api +``` + + +dotnet publish -c Release -o /disk/DataGateway + +## 同步项目 +```sh +# 安装文件同步工具 +sudo apt-get install rsync +#同步文件 +rsync -avz /disk/sunnysportsapi/ root@192.168.1.229:/disk/ai_sports/sunnysportsapi +rsync -avz /disk/sunnysportsapi/ root@192.144.132.25:/disk/ai_sports/sunnysportsapi +# http://192.144.132.25/ +# ssh -p 22 root@192.144.132.25 +# 192.168.1.229,服务器密码:Itvgame2020@!$# +``` + +sudo systemctl stop pray-api.service + +rsync -avz /disk/PrayForBlessingsApi ubuntu@1.117.87.77:/disk/prayforblessingsapi +dbt@com@1234 +## 创建linux 服务 +```sh +# 你需要创建一个systemd服务单元文件。这个文件描述了如何启动、停止和重启你的程序。你可以在/etc/systemd/system/目录下创建一个新的.service文件,比如your_program.service + cd /etc/systemd/system/ + # 创建文件 + sudo nano sunny-sports-api.service + #粘贴内容 +[Unit] +Description=sunny-sports-api +After=network.target +[Service] +# 运行 设置环境变量 +#指定服务的工作目录 +WorkingDirectory=/disk/ai_sports/sunnysportsapi +# run +ExecStart=/disk/ai_sports/sunnysportsapi/SunnySports.Api +SyslogIdentifier=SunnySportsApi +User=root +# 打开资源限制infinity 默认会到65535 +LimitNOFILE=1048576 +LimitNPROC=infinity +LimitCORE=infinity +# 自动检查重启,10秒后重启 +Restart=always +RestartSec=10 +[Install] +WantedBy=multi-user.target + +#刷新服务 +sudo systemctl daemon-reload +# 启动服务 +sudo systemctl start sunny-sports-api.service +sudo systemctl start data-gateway.service +# 检测服务状态 +sudo systemctl status sunny-sports-api.service +# 设置开机启动 +sudo systemctl enable sunny-sports-api.service +sudo systemctl enable data-gateway.service +# 关闭服务 +sudo systemctl stop sunny-sports-api.service +sudo systemctl stop data-gateway.service +# 关闭开机启动 +sudo systemctl disable sunny-sports-api.service +# 重新启动服务 +sudo systemctl restart sunny-sports-api.service +sudo systemctl restart data-gateway.service +# 发布 +cd /disk/sunnysports/SunnySports/;make build-release-229 +cd /disk/sunnysports/SunnySports/;make build-release-25 + +``` +sudo systemctl restart data-gateway.service +## 更新项目 +```sh +# 先将检测服务状态,如果服务启动,先停止服务 +sudo systemctl status sunny-sports-api.service +# 停止服务 +sudo systemctl stop sunny-sports-api.service +sudo systemctl stop sunny-sports-api.service +# 同步文件 +rsync -avz /disk/sunnysportsapi/ root@192.168.1.229:/disk/ai_sports/sunnysportsapi +# 开启服务 +sudo systemctl start sunny-sports-api.service +# 检测服务状态 +sudo systemctl status sunny-sports-api.service + +sudo systemctl restart sunny-sports-api.service +``` + + +## 配置项 +```sh +# 配置学生人脸存放地址 +\\\\\\\\\\ +"StudentConfig":{ + # 存放学生人脸的路径 + "StudentFacePath": "./StudentFace/", +} +``` + + +## 接口乱码 + +```sh +LANG=en_US.UTF-8 +LANGUAGE= +LC_CTYPE="en_US.UTF-8" +LC_NUMERIC="en_US.UTF-8" +LC_TIME="en_US.UTF-8" +LC_COLLATE="en_US.UTF-8" +LC_MONETARY="en_US.UTF-8" +LC_MESSAGES="en_US.UTF-8" +LC_PAPER="en_US.UTF-8" +LC_NAME="en_US.UTF-8" +LC_ADDRESS="en_US.UTF-8" +LC_TELEPHONE="en_US.UTF-8" +LC_MEASUREMENT="en_US.UTF-8" +LC_IDENTIFICATION="en_US.UTF-8" +LC_ALL= + + +LANG=zh_CN.UTF-8 +LANGUAGE= +LC_CTYPE="zh_CN.UTF-8" +LC_NUMERIC="zh_CN.UTF-8" +LC_TIME="zh_CN.UTF-8" +LC_COLLATE="zh_CN.UTF-8" +LC_MONETARY="zh_CN.UTF-8" +LC_MESSAGES="zh_CN.UTF-8" +LC_PAPER="zh_CN.UTF-8" +LC_NAME="zh_CN.UTF-8" +LC_ADDRESS="zh_CN.UTF-8" +LC_TELEPHONE="zh_CN.UTF-8" +LC_MEASUREMENT="zh_CN.UTF-8" +LC_IDENTIFICATION="zh_CN.UTF-8" +LC_ALL= + +``` + + + + +## make 发布命令 +```sh +# 229服务器 +数据网关 ssh root@192.168.1.229 "cd /disk/work/sj_git/sunnysports/;make build-data-loca" +api ssh root@192.168.1.229 "cd /disk/work/sj_git/sunnysports/;make build-api-loca" +前端 ssh root@192.168.1.229 "cd /disk/work/sj_git/systemadmin/;make build-test" + +# 25服务器 +数据网关 ssh root@192.168.1.229 "cd /disk/work/sj_git/sunnysports/;make build-data" +api ssh root@192.168.1.229 "cd /disk/work/sj_git/sunnysports/;make build-api" +前端 ssh root@192.168.1.229 "cd /disk/work/sj_git/systemadmin/;make build" +ssh root@192.168.1.229 "cd /disk/work/sj_git/sunnysports/;make build-api-all" +ssh root@192.168.1.229 "cd /disk/work/sj_git/systemadmin/;make build-r" + +D:\办公软件\HBuilderX\cli.exe cli publish --platform h5 --project SunnySportsStudent + +```` + diff --git a/文档/服务器文档/api-1.md b/文档/服务器文档/api-1.md new file mode 100644 index 0000000..19c76d8 --- /dev/null +++ b/文档/服务器文档/api-1.md @@ -0,0 +1,2 @@ +1. [网络地址](https://api.zpc-xy.com/) +2. IP: 101.43.1.207 \ No newline at end of file diff --git a/文档/部署/baget/baget.service b/文档/部署/baget/baget.service new file mode 100644 index 0000000..2acd7d1 --- /dev/null +++ b/文档/部署/baget/baget.service @@ -0,0 +1,40 @@ +[Unit] +Description=BaGet NuGet Server +After=network.target + +[Service] +WorkingDirectory=/disk/BaGet/net8.0/ +ExecStart=/disk/BaGet/net8.0/BaGet +Restart=always +# 如果网络服务崩溃,请在10秒钟后重新启动服务: +RestartSec=10 +SyslogIdentifier=baget +User=root + +[Install] +WantedBy=multi-user.target + + + +[Unit] +Description=sunny-sports-api +After=network.target +[Service] +# 运行 设置环境变量 +#指定服务的工作目录 +WorkingDirectory=/disk/BaGet/net8.0 +# run +ExecStart=/disk/BaGet/net8.0/BaGet +SyslogIdentifier=baget +User=root +# 打开资源限制infinity 默认会到65535 +LimitNOFILE=1048576 +LimitNPROC=infinity +LimitCORE=infinity +# 自动检查重启,10秒后重启 +Restart=always +RestartSec=10 +[Install] +WantedBy=multi-user.target + + diff --git a/文档/部署/baget/部署文档.md b/文档/部署/baget/部署文档.md new file mode 100644 index 0000000..db1e298 --- /dev/null +++ b/文档/部署/baget/部署文档.md @@ -0,0 +1,25 @@ +## 服务文件 +/etc/systemd/system/baget.service +```sh +sudo nano /etc/systemd/system/baget.service +sudo systemctl daemon-reload +sudo systemctl start baget +sudo systemctl enable baget +sudo systemctl status baget +sudo systemctl stop baget +``` +## 发布命令 +```sh +# /disk/BaGet/src/BaGet$ + dotnet publish -c Release -o /disk/BaGetApi/ +``` + +## 同步命令 +```sh +rsync -avz /disk/BaGetApi/ ubuntu@123.207.203.228:/disk/BaGet/net8.0/ +``` +## 上传 +```sh +dotnet nuget push XLib.NetCore.Utility.1.0.0.nupkg --source "http://123.207.203.228:91/v3/index.json" --api-key "066f010d59" + +```