Aucune description
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

SQL_LINE.cs 11KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Data;
  5. using System.Data.SqlClient;
  6. using Unity.VisualScripting;
  7. using UnityEngine;
  8. public class SQL_LINE : MonoBehaviour
  9. {
  10. readonly string 公司名稱 = "WS";
  11. public static string ConStringLINE;
  12. public static DataTable LINE_需通知清單_dgv,LINE_通知內容清單_dgv;
  13. int LINE_權限數量;
  14. bool[] linecc = new bool[62];
  15. private static string LINE_系統權限 = @"CC200,CC201,CC202,CC203,CC204,CC205,CC206,CC207,CC208,CC209,CC210,CC211,CC212,CC213,CC214,CC215,CC216,CC217,
  16. CC218,CC219,CC220,CC221,CC222,CC223,CC224,CC225,CC226,CC227,CC228,CC229,CC230,CC231,CC232,CC233,CC234,CC235,CC236,CC237,
  17. CC238,CC239,CC240,CC241,CC242,CC243,CC244,CC245,CC246,CC247,CC248,CC249,CC250,CC251,CC252,CC253,CC254,CC255,CC256,CC257,
  18. CC258,CC259,CC260";
  19. public string LINE_登入權限 = "姓名, 帳號 AS 公司名稱,token,通知語言,電話號碼1,電話號碼2,電話號碼3,Line,WhatsApp,Message," + LINE_系統權限;
  20. string LINE_登入權限_IN = "姓名, 帳號 ,token,通知語言,電話號碼1,電話號碼2,電話號碼3,Line,WhatsApp,Message," + LINE_系統權限;
  21. string LINE_登入權限2 = @"使用者權限管理表_1.姓名, 使用者權限管理表_1.帳號, 使用者權限管理表.token, 使用者權限管理表.通知語言, 使用者權限管理表.電話號碼1,
  22. 使用者權限管理表.電話號碼2, 使用者權限管理表.電話號碼3, 使用者權限管理表.Line, 使用者權限管理表.WhatsApp, 使用者權限管理表.Message," + LINE_系統權限;
  23. public static void SQL_連線字串_測試_LINE_SQL(){
  24. ConStringLINE = "Data Source=mssql-147629-0.cloudclusters.net,12711;Initial Catalog=GCM-SCADA;Persist Security Info=True;User ID=b70340;Password=Lee0911274990;Max pool size = 200; Connection Timeout=0";
  25. }
  26. public static void ConnOpen_LINE_SQL(){
  27. SQL_連線字串_測試_LINE_SQL();
  28. try{
  29. SQL_Module.conn.Close();
  30. if (SQL_Module.conn.State == ConnectionState.Closed){
  31. SQL_Module.conn = new SqlConnection(ConStringLINE);
  32. SQL_Module.conn.Open();
  33. }
  34. }catch{
  35. SQL_Module.conn = new SqlConnection(ConStringLINE);
  36. SQL_Module.conn.Open();
  37. }
  38. }
  39. public static void CmdSet_For_DGV_LINE()
  40. {
  41. try{
  42. SQL_Module.da = new SqlDataAdapter(SQL_Module.SQL1,ConStringLINE);
  43. }catch{
  44. }
  45. }
  46. public void LIN訊息通知(string 代號,string 對象,string 變數X= "",string 變數Y= ""){
  47. LINE_通知模塊(代號,對象,變數X,變數Y);
  48. }
  49. private void SQL_系統使用者_清單(){
  50. SQL_Module.ConnOpen_SQL();
  51. SQL_Module.SQL1 = "SELECT 姓名 FROM 使用者權限管理表 ORDER BY 姓名";
  52. SQL_Module.CmdSet_For_DGV();
  53. }
  54. private void SQL_LINE使用者_清單(string LINE_登入權限,string LINE_公司名稱){
  55. ConnOpen_LINE_SQL();
  56. SQL_Module.SQL1 = "SELECT " + LINE_登入權限 + " FROM LINE_使用者權限管理表 WHERE 帳號 LIKE N'" + LINE_公司名稱 + "' ORDER BY 姓名";
  57. CmdSet_For_DGV_LINE();
  58. }
  59. private void SQL_LINE權限一覽_dgv_清單(string LINE_公司名稱){
  60. ConnOpen_LINE_SQL();
  61. SQL_Module.SQL1 = "SELECT 權限代號, 權限名稱 FROM LINE_權限一覽表 WHERE (權限名稱 LIKE N'"+LINE_公司名稱+"%') OR (權限名稱 LIKE N'GCM%') ORDER BY 權限代號";
  62. CmdSet_For_DGV_LINE();
  63. }
  64. private void SQL_LINE_搜尋符合通知對象(string LINE_權限代號,string 發送對象,string LINE_公司名稱){
  65. ConnOpen_LINE_SQL();
  66. SQL_Module.SQL1 = "SELECT token,通知語言,電話號碼1,電話號碼2,電話號碼3,Line,WhatsApp,Message FROM LINE_使用者權限管理表 WHERE(" + LINE_權限代號 + "='True' and 姓名 LIKE N'" + 發送對象 + "' and (帳號 LIKE N'" + LINE_公司名稱 + "' OR 帳號 LIKE N'GCM' ))";
  67. CmdSet_For_DGV_LINE();
  68. }
  69. private void SQL_LINE_通知內容(string LINE_權限代號){
  70. ConnOpen_LINE_SQL();
  71. SQL_Module.SQL1 = "SELECT 通知格式,變數位置,通知內容1,通知內容2,通知內容3 FROM LINE_通知內容設定表 WHERE (權限代號 LIKE N'" + LINE_權限代號 + "')";
  72. CmdSet_For_DGV_LINE();
  73. }
  74. private void SQL_LINE_新增發送通知(string token,string 發送內容,string 隨機碼,string 通知語言,string 發送APP){
  75. ConnOpen_LINE_SQL();
  76. SQL_Module.SQL1 = "INSERT INTO LINE_通知設定表 (token,發送內容,隨機碼,通知語言,發送APP) VALUES (N'" + token + "',N'" + 發送內容 + "',N'" + 隨機碼 + "',N'" + 通知語言 + "',N'" + 發送APP + "')";
  77. SQL_Module.CmdSet_For_dr();
  78. }
  79. private string SQL_LINE_隨機碼(){
  80. System.Random rndNum = new System.Random();
  81. string rancode = DateTime.Now.Year.ToString().PadLeft(4,'0') + DateTime.Now.Month.ToString().PadLeft(2,'0') + DateTime.Now.Day.ToString().PadLeft(2,'0') + DateTime.Now.Hour.ToString().PadLeft(2,'0') + DateTime.Now.Minute.ToString().PadLeft(2,'0') + DateTime.Now.Second.ToString().PadLeft(2,'0')+rndNum.Next(0, 100).ToString().PadLeft(4,'0');
  82. return rancode;
  83. }
  84. private void LINE_通知模塊(string 權限代號,string 發送對象,string 通知變數X,string 通知變數Y){
  85. DataSet ds5 = new(); DataSet ds6 = new();ds5.Clear();ds6.Clear();
  86. string 發送X, 發送Y;
  87. SQL_LINE_搜尋符合通知對象(權限代號,發送對象,公司名稱);
  88. SQL_Module.da.Fill(ds5);
  89. LINE_需通知清單_dgv = ds5.Tables[0];
  90. if(通知變數X==""){發送X = "未設定通知變數X";}else{發送X = 通知變數X;}
  91. if(通知變數Y==""){發送Y = "未設定通知變數Y";}else{發送Y = 通知變數Y;}
  92. for(int x=0;x<=LINE_需通知清單_dgv.Rows.Count-1;x++){
  93. bool L = bool.Parse(LINE_需通知清單_dgv.Rows[x]["Line"].ToString());
  94. bool W = bool.Parse(LINE_需通知清單_dgv.Rows[x]["WhatsApp"].ToString());
  95. bool M = bool.Parse(LINE_需通知清單_dgv.Rows[x]["Message"].ToString());
  96. SQL_LINE_通知內容(權限代號);SQL_Module.da.Fill(ds6);LINE_通知內容清單_dgv= ds6.Tables[0];
  97. if(LINE_通知內容清單_dgv.Rows.Count==0){}else{
  98. string 變數位置=LINE_通知內容清單_dgv.Rows[0][1].ToString();
  99. string 通知內容1=LINE_通知內容清單_dgv.Rows[0][2].ToString();
  100. string 通知內容2=LINE_通知內容清單_dgv.Rows[0][3].ToString();
  101. string 通知內容3=LINE_通知內容清單_dgv.Rows[0][4].ToString();
  102. string 發送內容="";
  103. if(變數位置=="A"){
  104. 發送內容 = 通知內容1;
  105. }else if(變數位置=="X"){
  106. 發送內容 = 發送X;
  107. }else if(變數位置=="A+X"){
  108. 發送內容 = 發送X;
  109. }else if(變數位置=="X+A"){
  110. 發送內容 = 發送X + 通知內容1;
  111. }else if(變數位置=="X+A+Y"){
  112. 發送內容 = 發送X + 通知內容1 + 發送Y;
  113. }else if(變數位置=="A+X+B"){
  114. 發送內容 = 通知內容1 + 發送X + 通知內容2;
  115. }else if(變數位置=="X+A+Y+B"){
  116. 發送內容 = 發送X + 通知內容1 + 發送Y + 通知內容2;
  117. }else if(變數位置=="A+X+B+Y"){
  118. 發送內容 = 通知內容1 + 發送X + 通知內容2 + 發送Y;
  119. }else if(變數位置=="A+X+B+Y+C"){
  120. 發送內容 = 通知內容1 + 發送X + 通知內容2 + 發送Y + 通知內容3;
  121. }
  122. string 通知語言 = LINE_需通知清單_dgv.Rows[x][1].ToString();
  123. if(L){
  124. string 隨機碼 = 公司名稱 + "-" + SQL_LINE_隨機碼();string token = LINE_需通知清單_dgv.Rows[x][0].ToString();string 發送APP = "Line";
  125. SQL_LINE_新增發送通知(token,發送內容,隨機碼,通知語言,發送APP);
  126. }
  127. if(W){
  128. if(LINE_需通知清單_dgv.Rows[x][2].ToString() != ""){
  129. string 隨機碼 = 公司名稱 + "-" + SQL_LINE_隨機碼();string token = LINE_需通知清單_dgv.Rows[x][2].ToString();string 發送APP = "WhatsApp";
  130. SQL_LINE_新增發送通知(token,發送內容,隨機碼,通知語言,發送APP);
  131. }
  132. if(LINE_需通知清單_dgv.Rows[x][3].ToString() != ""){
  133. string 隨機碼 = 公司名稱 + "-" + SQL_LINE_隨機碼();string token = LINE_需通知清單_dgv.Rows[x][3].ToString();string 發送APP = "WhatsApp";
  134. SQL_LINE_新增發送通知(token,發送內容,隨機碼,通知語言,發送APP);
  135. }
  136. if(LINE_需通知清單_dgv.Rows[x][4].ToString() != ""){
  137. string 隨機碼 = 公司名稱 + "-" + SQL_LINE_隨機碼();string token = LINE_需通知清單_dgv.Rows[x][4].ToString();string 發送APP = "WhatsApp";
  138. SQL_LINE_新增發送通知(token,發送內容,隨機碼,通知語言,發送APP);
  139. }
  140. }
  141. if(M){
  142. if(LINE_需通知清單_dgv.Rows[x][2].ToString() != ""){
  143. string 隨機碼 = 公司名稱 + "-" + SQL_LINE_隨機碼();string token = LINE_需通知清單_dgv.Rows[x][2].ToString();string 發送APP = "Message";
  144. SQL_LINE_新增發送通知(token,發送內容,隨機碼,通知語言,發送APP);
  145. }
  146. if(LINE_需通知清單_dgv.Rows[x][3].ToString() != ""){
  147. string 隨機碼 = 公司名稱 + "-" + SQL_LINE_隨機碼();string token = LINE_需通知清單_dgv.Rows[x][3].ToString();string 發送APP = "Message";
  148. SQL_LINE_新增發送通知(token,發送內容,隨機碼,通知語言,發送APP);
  149. }
  150. if(LINE_需通知清單_dgv.Rows[x][4].ToString() != ""){
  151. string 隨機碼 = 公司名稱 + "-" + SQL_LINE_隨機碼();string token = LINE_需通知清單_dgv.Rows[x][4].ToString();string 發送APP = "Message";
  152. SQL_LINE_新增發送通知(token,發送內容,隨機碼,通知語言,發送APP);
  153. }
  154. }
  155. }
  156. }
  157. }
  158. }