using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using Unity.VisualScripting; using UnityEngine; public class SQL_LINE : MonoBehaviour { readonly string 公司名稱 = "WS"; public static string ConStringLINE; public static DataTable LINE_需通知清單_dgv,LINE_通知內容清單_dgv; int LINE_權限數量; bool[] linecc = new bool[62]; private static string LINE_系統權限 = @"CC200,CC201,CC202,CC203,CC204,CC205,CC206,CC207,CC208,CC209,CC210,CC211,CC212,CC213,CC214,CC215,CC216,CC217, CC218,CC219,CC220,CC221,CC222,CC223,CC224,CC225,CC226,CC227,CC228,CC229,CC230,CC231,CC232,CC233,CC234,CC235,CC236,CC237, CC238,CC239,CC240,CC241,CC242,CC243,CC244,CC245,CC246,CC247,CC248,CC249,CC250,CC251,CC252,CC253,CC254,CC255,CC256,CC257, CC258,CC259,CC260"; public string LINE_登入權限 = "姓名, 帳號 AS 公司名稱,token,通知語言,電話號碼1,電話號碼2,電話號碼3,Line,WhatsApp,Message," + LINE_系統權限; string LINE_登入權限_IN = "姓名, 帳號 ,token,通知語言,電話號碼1,電話號碼2,電話號碼3,Line,WhatsApp,Message," + LINE_系統權限; string LINE_登入權限2 = @"使用者權限管理表_1.姓名, 使用者權限管理表_1.帳號, 使用者權限管理表.token, 使用者權限管理表.通知語言, 使用者權限管理表.電話號碼1, 使用者權限管理表.電話號碼2, 使用者權限管理表.電話號碼3, 使用者權限管理表.Line, 使用者權限管理表.WhatsApp, 使用者權限管理表.Message," + LINE_系統權限; public static void SQL_連線字串_測試_LINE_SQL(){ 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"; } public static void ConnOpen_LINE_SQL(){ SQL_連線字串_測試_LINE_SQL(); try{ SQL_Module.conn.Close(); if (SQL_Module.conn.State == ConnectionState.Closed){ SQL_Module.conn = new SqlConnection(ConStringLINE); SQL_Module.conn.Open(); } }catch{ SQL_Module.conn = new SqlConnection(ConStringLINE); SQL_Module.conn.Open(); } } public static void CmdSet_For_DGV_LINE() { try{ SQL_Module.da = new SqlDataAdapter(SQL_Module.SQL1,ConStringLINE); }catch{ } } public void LIN訊息通知(string 代號,string 對象,string 變數X= "",string 變數Y= ""){ LINE_通知模塊(代號,對象,變數X,變數Y); } private void SQL_系統使用者_清單(){ SQL_Module.ConnOpen_SQL(); SQL_Module.SQL1 = "SELECT 姓名 FROM 使用者權限管理表 ORDER BY 姓名"; SQL_Module.CmdSet_For_DGV(); } private void SQL_LINE使用者_清單(string LINE_登入權限,string LINE_公司名稱){ ConnOpen_LINE_SQL(); SQL_Module.SQL1 = "SELECT " + LINE_登入權限 + " FROM LINE_使用者權限管理表 WHERE 帳號 LIKE N'" + LINE_公司名稱 + "' ORDER BY 姓名"; CmdSet_For_DGV_LINE(); } private void SQL_LINE權限一覽_dgv_清單(string LINE_公司名稱){ ConnOpen_LINE_SQL(); SQL_Module.SQL1 = "SELECT 權限代號, 權限名稱 FROM LINE_權限一覽表 WHERE (權限名稱 LIKE N'"+LINE_公司名稱+"%') OR (權限名稱 LIKE N'GCM%') ORDER BY 權限代號"; CmdSet_For_DGV_LINE(); } private void SQL_LINE_搜尋符合通知對象(string LINE_權限代號,string 發送對象,string LINE_公司名稱){ ConnOpen_LINE_SQL(); 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' ))"; CmdSet_For_DGV_LINE(); } private void SQL_LINE_通知內容(string LINE_權限代號){ ConnOpen_LINE_SQL(); SQL_Module.SQL1 = "SELECT 通知格式,變數位置,通知內容1,通知內容2,通知內容3 FROM LINE_通知內容設定表 WHERE (權限代號 LIKE N'" + LINE_權限代號 + "')"; CmdSet_For_DGV_LINE(); } private void SQL_LINE_新增發送通知(string token,string 發送內容,string 隨機碼,string 通知語言,string 發送APP){ ConnOpen_LINE_SQL(); SQL_Module.SQL1 = "INSERT INTO LINE_通知設定表 (token,發送內容,隨機碼,通知語言,發送APP) VALUES (N'" + token + "',N'" + 發送內容 + "',N'" + 隨機碼 + "',N'" + 通知語言 + "',N'" + 發送APP + "')"; SQL_Module.CmdSet_For_dr(); } private string SQL_LINE_隨機碼(){ System.Random rndNum = new System.Random(); 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'); return rancode; } private void LINE_通知模塊(string 權限代號,string 發送對象,string 通知變數X,string 通知變數Y){ DataSet ds5 = new(); DataSet ds6 = new();ds5.Clear();ds6.Clear(); string 發送X, 發送Y; SQL_LINE_搜尋符合通知對象(權限代號,發送對象,公司名稱); SQL_Module.da.Fill(ds5); LINE_需通知清單_dgv = ds5.Tables[0]; if(通知變數X==""){發送X = "未設定通知變數X";}else{發送X = 通知變數X;} if(通知變數Y==""){發送Y = "未設定通知變數Y";}else{發送Y = 通知變數Y;} for(int x=0;x<=LINE_需通知清單_dgv.Rows.Count-1;x++){ bool L = bool.Parse(LINE_需通知清單_dgv.Rows[x]["Line"].ToString()); bool W = bool.Parse(LINE_需通知清單_dgv.Rows[x]["WhatsApp"].ToString()); bool M = bool.Parse(LINE_需通知清單_dgv.Rows[x]["Message"].ToString()); SQL_LINE_通知內容(權限代號);SQL_Module.da.Fill(ds6);LINE_通知內容清單_dgv= ds6.Tables[0]; if(LINE_通知內容清單_dgv.Rows.Count==0){}else{ string 變數位置=LINE_通知內容清單_dgv.Rows[0][1].ToString(); string 通知內容1=LINE_通知內容清單_dgv.Rows[0][2].ToString(); string 通知內容2=LINE_通知內容清單_dgv.Rows[0][3].ToString(); string 通知內容3=LINE_通知內容清單_dgv.Rows[0][4].ToString(); string 發送內容=""; if(變數位置=="A"){ 發送內容 = 通知內容1; }else if(變數位置=="X"){ 發送內容 = 發送X; }else if(變數位置=="A+X"){ 發送內容 = 發送X; }else if(變數位置=="X+A"){ 發送內容 = 發送X + 通知內容1; }else if(變數位置=="X+A+Y"){ 發送內容 = 發送X + 通知內容1 + 發送Y; }else if(變數位置=="A+X+B"){ 發送內容 = 通知內容1 + 發送X + 通知內容2; }else if(變數位置=="X+A+Y+B"){ 發送內容 = 發送X + 通知內容1 + 發送Y + 通知內容2; }else if(變數位置=="A+X+B+Y"){ 發送內容 = 通知內容1 + 發送X + 通知內容2 + 發送Y; }else if(變數位置=="A+X+B+Y+C"){ 發送內容 = 通知內容1 + 發送X + 通知內容2 + 發送Y + 通知內容3; } string 通知語言 = LINE_需通知清單_dgv.Rows[x][1].ToString(); if(L){ string 隨機碼 = 公司名稱 + "-" + SQL_LINE_隨機碼();string token = LINE_需通知清單_dgv.Rows[x][0].ToString();string 發送APP = "Line"; SQL_LINE_新增發送通知(token,發送內容,隨機碼,通知語言,發送APP); } if(W){ if(LINE_需通知清單_dgv.Rows[x][2].ToString() != ""){ string 隨機碼 = 公司名稱 + "-" + SQL_LINE_隨機碼();string token = LINE_需通知清單_dgv.Rows[x][2].ToString();string 發送APP = "WhatsApp"; SQL_LINE_新增發送通知(token,發送內容,隨機碼,通知語言,發送APP); } if(LINE_需通知清單_dgv.Rows[x][3].ToString() != ""){ string 隨機碼 = 公司名稱 + "-" + SQL_LINE_隨機碼();string token = LINE_需通知清單_dgv.Rows[x][3].ToString();string 發送APP = "WhatsApp"; SQL_LINE_新增發送通知(token,發送內容,隨機碼,通知語言,發送APP); } if(LINE_需通知清單_dgv.Rows[x][4].ToString() != ""){ string 隨機碼 = 公司名稱 + "-" + SQL_LINE_隨機碼();string token = LINE_需通知清單_dgv.Rows[x][4].ToString();string 發送APP = "WhatsApp"; SQL_LINE_新增發送通知(token,發送內容,隨機碼,通知語言,發送APP); } } if(M){ if(LINE_需通知清單_dgv.Rows[x][2].ToString() != ""){ string 隨機碼 = 公司名稱 + "-" + SQL_LINE_隨機碼();string token = LINE_需通知清單_dgv.Rows[x][2].ToString();string 發送APP = "Message"; SQL_LINE_新增發送通知(token,發送內容,隨機碼,通知語言,發送APP); } if(LINE_需通知清單_dgv.Rows[x][3].ToString() != ""){ string 隨機碼 = 公司名稱 + "-" + SQL_LINE_隨機碼();string token = LINE_需通知清單_dgv.Rows[x][3].ToString();string 發送APP = "Message"; SQL_LINE_新增發送通知(token,發送內容,隨機碼,通知語言,發送APP); } if(LINE_需通知清單_dgv.Rows[x][4].ToString() != ""){ string 隨機碼 = 公司名稱 + "-" + SQL_LINE_隨機碼();string token = LINE_需通知清單_dgv.Rows[x][4].ToString();string 發送APP = "Message"; SQL_LINE_新增發送通知(token,發送內容,隨機碼,通知語言,發送APP); } } } } } }