Beispiel #1
0
 public static void ZaloMoInsert(ZaloMoInfo entity)
 {
     SqlHelper.ExecuteNonQuery(AppEnv.ConnectionStringVClip, "Zalo_Mo_Insert"
                               , entity.User_ID
                               , entity.Request_ID
                               , entity.Service_ID
                               , entity.Command_Code
                               , entity.Message
                               , entity.Operator
                               );
 }
Beispiel #2
0
    public string MoProcess(string User_ID, string Service_ID, string Command_Code, string Message, string Request_ID)
    {
        Command_Code = Command_Code.ToUpper();
        if (Command_Code == "ZALOAG")
        {
            Command_Code = "ZALO";
        }

        Message = Message.ToUpper();

        string responseValue = "1";

        //int returnValue = 0;

        Message = Message.ToUpper();
        string subcode = "";

        if (Message.Trim().Length > Command_Code.Trim().Length)
        {
            subcode = Message.ToUpper().Substring(Command_Code.Length).Replace(" ", "");
        }
        else
        {
            subcode      = Message.Replace("CAUZALO", "").Replace("ZALO", "").Replace(" ", "");
            Command_Code = Command_Code.Replace(subcode, "").Replace(" ", "");
        }

        //return responseValue;

        Log.Debug(" ");
        Log.Debug(" ");
        Log.Debug("-------------------- Zalo Mo Process -------------------------");
        Log.Debug("User_ID: " + User_ID);
        Log.Debug("Service_ID: " + Service_ID);
        Log.Debug("Command_Code: " + Command_Code);
        Log.Debug("Message: " + Message);
        Log.Debug("Request_ID: " + Request_ID);
        Log.Debug(" ");
        Log.Debug(" ");

        #region LOG SMS MO

        var moInfo = new ZaloMoInfo();
        moInfo.User_ID      = User_ID;
        moInfo.Request_ID   = Request_ID;
        moInfo.Service_ID   = Service_ID;
        moInfo.Command_Code = Command_Code;
        moInfo.Message      = Message;
        moInfo.Operator     = GetTelco(User_ID);
        ZaloController.ZaloMoInsert(moInfo);

        #endregion

        try
        {
            string    reMessage;
            DataTable dtService = ZaloController.ZaloGetServiceInfo(subcode);
            if (dtService != null && dtService.Rows.Count > 0)
            {
                //int typeId = ConvertUtility.ToInt32(dtService.Rows[0]["Type_Id"]);
                int    companyId   = ConvertUtility.ToInt32(dtService.Rows[0]["CompanyId"]);
                string companyName = UnicodeUtility.UnicodeToKoDau(dtService.Rows[0]["Name"].ToString());

                const string zaloPartner = "ZALO";
                //string vmgPartner = "VMG";

                DateTime nowTime = DateTime.Now;

                string lotTime = DateTime.Now.Year + "-" + DateTime.Now.Month;
                string ngay    = DateTime.Now.Day + "/" + DateTime.Now.Month;

                if (Command_Code == "ZALO")
                {
                    #region KQ XS

                    //if (Service_ID == "8179" || Service_ID == "8279")
                    if (Service_ID == "8279")
                    {
                        #region 1. Nhận kết quả xổ số mới nhất theo MIỀN

                        if (nowTime.Hour < 12) //TRA LUON KQ NGAY HOM TRUOC
                        {
                            lotTime = lotTime + "-" + DateTime.Now.AddDays(-1).Day;
                            DataTable dtCon = ZaloController.ZaloGetLotteryContent(companyId, lotTime);
                            if (dtCon != null && dtCon.Rows.Count > 0)
                            {
                                #region TRA MT WELCOME

                                reMessage = "Cam on ban da su dung dich vu KQXS cua Zalo. Ket qua xo so " + companyName + " moi nhat se duoc gui den ban tren tin nhan cua Zalo. DTHT - HOTLINE: 19001255";
                                SendMt(User_ID, Service_ID, Command_Code, reMessage, Request_ID);

                                #endregion

                                #region TRA KQ QUA ZALO

                                foreach (DataRow dr in dtCon.Rows)
                                {
                                    reMessage = ZaloController.OptimizeContent(dr["lot_content"].ToString());

                                    #region CALL Zalo_API

                                    int reVal = ApiZaloCallForSendZms(User_ID, reMessage);
                                    //SAVE LOG AFTER CALL API
                                    SaveMtLog(User_ID, Service_ID, Command_Code, reMessage, Request_ID, zaloPartner, reVal);

                                    #endregion
                                }

                                #endregion
                            }
                        }
                        if (nowTime.Hour > 12)
                        {
                            #region KIEM TRA XEM KQ HNAY DA CO CHUA

                            lotTime = lotTime + "-" + DateTime.Now.Day;
                            DataTable dtCon = ZaloController.ZaloGetLotteryContent(companyId, lotTime);
                            if (dtCon != null && dtCon.Rows.Count > 0)
                            {
                                #region TRA MT WELCOME

                                reMessage = "Cam on ban da su dung dich vu KQXS cua Zalo. Ket qua xo so " + companyName + " moi nhat se duoc gui den ban tren tin nhan cua Zalo. DTHT - HOTLINE: 19001255";
                                SendMt(User_ID, Service_ID, Command_Code, reMessage, Request_ID);

                                #endregion

                                #region CO = TRA KQ LUON

                                foreach (DataRow dr in dtCon.Rows)
                                {
                                    reMessage = ZaloController.OptimizeContent(dr["lot_content"].ToString());

                                    #region CALL Zalo_API

                                    int reVal = ApiZaloCallForSendZms(User_ID, reMessage);

                                    #endregion

                                    //SAVE LOG AFTER CALL API
                                    SaveMtLog(User_ID, Service_ID, Command_Code, reMessage, Request_ID, zaloPartner, reVal);
                                }

                                #endregion
                            }
                            else
                            {
                                #region KHONG = DUA VAO BANG Waiting

                                reMessage = "Ket qua xo so " + companyName + " ngay " + ngay + " se duoc he thong gui den ban ngay khi co ket qua tren tin nhan ZALO. DTHT - HOTLINE: 19001255";
                                //GUI MT THONGBAO He Thong Da ghi Nhan SMS
                                SendMt(User_ID, Service_ID, Command_Code, reMessage, Request_ID);

                                //DUA VAO BANG DOI
                                SaveLotteryDay(User_ID, Request_ID, Service_ID, Command_Code, subcode, companyId);
                                //END DUA VAO BANG DOI

                                #endregion
                            }

                            #endregion
                        }

                        #endregion
                    }
                    else if (Service_ID == "8179")
                    {
                        #region 1. Nhận kết quả xổ số mới nhất theo TỈNH

                        #region TRA MT WELCOME

                        reMessage = "Cam on ban da su dung dich vu KQXS cua Zalo. Ket qua xo so " + companyName + " moi nhat se duoc gui den ban tren tin nhan cua Zalo. DTHT - HOTLINE: 19001255";
                        SendMt(User_ID, Service_ID, Command_Code, reMessage, Request_ID);

                        #endregion

                        lotTime = lotTime + "-" + DateTime.Now.Day;
                        DataTable dtCon = ZaloController.ZaloGetLotteryContentToDay(companyId, lotTime);//KIEM TRA KQXS HOMNAY DA CO CHUA ?

                        if (dtCon != null && dtCon.Rows.Count > 0)
                        {
                            #region TRA KQXS Ngay Hom Nay

                            reMessage = ZaloController.OptimizeContent(dtCon.Rows[0]["lot_content"].ToString());

                            #region CALL Zalo_API

                            int reVal = ApiZaloCallForSendZms(User_ID, reMessage);

                            #endregion

                            //SAVE LOG AFTER CALL API
                            SaveMtLog(User_ID, Service_ID, Command_Code, reMessage, Request_ID, zaloPartner, reVal);

                            #endregion
                        }
                        else
                        {
                            #region TRA KQXS Ngay Gan Nhat

                            lotTime = DateTime.Now.Year + "-" + DateTime.Now.Month + "-" + DateTime.Now.AddDays(-1).Day;
                            DataTable dtConPre = ZaloController.ZaloGetLotteryContent(companyId, lotTime);
                            if (dtConPre != null && dtConPre.Rows.Count > 0)
                            {
                                reMessage = ZaloController.OptimizeContent(dtConPre.Rows[0]["lot_content"].ToString());
                                //SEND MT KQXS Ngay Gan Nhat cho KH
                                SendMt(User_ID, Service_ID, Command_Code, reMessage, Request_ID);
                            }

                            #endregion

                            #region DUA VAO BANG Waiting ==> DE TRA KQXS Ngay HOMNAY

                            reMessage = "Ket qua xo so " + companyName + " moi nhat se duoc he thong gui den ban ngay khi co ket qua tren tin nhan ZALO. DTHT - HOTLINE: 19001255";
                            //GUI MT THONGBAO He Thong Da ghi Nhan SMS
                            SendMt(User_ID, Service_ID, Command_Code, reMessage, Request_ID);

                            //DUA VAO BANG DOI
                            SaveLotteryDay(User_ID, Request_ID, Service_ID, Command_Code, subcode, companyId);
                            //END DUA VAO BANG DOI

                            #endregion
                        }

                        #endregion
                    }
                    else if (Service_ID == "8379")
                    {
                        #region 2. Nhận kết quả xổ số mới nhất theo miền

                        #region TRA MT WELCOME

                        reMessage = "Cam on ban da su dung dich vu KQXS cua Zalo. Ket qua xo so ban yeu cau se duoc gui den ban tren tin nhan cua Zalo. DTHT - HOTLINE: 19001255";
                        SendMt(User_ID, Service_ID, Command_Code, reMessage, Request_ID);

                        #endregion

                        #region KIEM TRA XEM DA CO KQXS HOMNAY CHUA

                        lotTime = DateTime.Now.Year + "-" + DateTime.Now.Month;
                        lotTime = lotTime + "-" + DateTime.Now.Day;
                        DataTable dtCon = ZaloController.ZaloGetLotteryContent(companyId, lotTime); //KIEM TRA KQXS HOMNAY DA CO CHUA ?

                        if (dtCon != null && dtCon.Rows.Count > 0)                                  //ĐÃ CÓ KẾT QUẢ ==> TRẢ LUÔN
                        {
                            #region TRA KQ HOMNAY

                            foreach (DataRow dr in dtCon.Rows)
                            {
                                reMessage = ZaloController.OptimizeContent(dr["lot_content"].ToString());
                                int reVal = ApiZaloCallForSendZms(User_ID, reMessage);
                                //SAVE LOG AFTER CALL API
                                SaveMtLog(User_ID, Service_ID, Command_Code, reMessage, Request_ID, zaloPartner, reVal);
                            }

                            #endregion
                        }
                        else    //CHƯA CÓ KẾT QUẢ ==> TRẢ TIN THÔNG BÁO
                        {
                            #region TRA MT THONGBAO qua ZMS

                            reMessage = "Kết quả xổ số mới nhất sẽ được gửi đến bạn ngay sau khi có đầy đủ các giải. Điện thoại hỗ trợ - HOTLINE: 19001255.";
                            int reVal = ApiZaloCallForSendZmsAlert(User_ID, reMessage);
                            //SAVE LOG AFTER CALL API
                            SaveMtLog(User_ID, Service_ID, Command_Code, reMessage, Request_ID, zaloPartner, reVal);

                            #endregion

                            #region LUU VAO BANG DOI

                            SaveLotteryDay(User_ID, Request_ID, Service_ID, Command_Code, subcode, companyId);

                            #endregion
                        }

                        #endregion

                        #endregion
                    }
                    else if (Service_ID == "8779")
                    {
                        #region 3. Đăng ký nhận kết quả xổ số nhiều ngày

                        #region TRA MT WELCOME

                        reMessage = "Ban da dang ky su dung dich vu Xo so " + companyName + " trong 30 ngay lien tiep cua ZALO. Chuc ban may man! DTHT - HOTLINE: 19001255";
                        SendMt(User_ID, Service_ID, Command_Code, reMessage, Request_ID);

                        #endregion

                        #region LUU VAO BANG DOI

                        SaveLotteryDay(User_ID, Request_ID, Service_ID, Command_Code, subcode, companyId);

                        #endregion

                        #endregion
                    }
                    else if (Service_ID == "8579")
                    {
                        #region 4. Tường thuật trực tiếp kết quả xổ số

                        #region TRA MT WELCOME

                        reMessage = "Tuong thuat truc tiep KQXS " + companyName + " ngay " + ngay + " se duoc gui den ban tren tin nhan ZALO ngay khi co ket qua. Xin vui long doi! DTHT:19001255";
                        SendMt(User_ID, Service_ID, Command_Code, reMessage, Request_ID);

                        #endregion

                        #region LUU VAO BANG DOI

                        SaveLotteryDay(User_ID, Request_ID, Service_ID, Command_Code, subcode, companyId);

                        #endregion

                        #endregion
                    }

                    #endregion
                }
                else if (Command_Code == "CAUZALO")
                {
                    #region SOI CAU

                    #region TRA MT WELCOME

                    reMessage = "Cam on ban da su dung dich vu Cap so may man cua Zalo. Cap so may man " + companyName + " ky toi se duoc gui den ban tren tin nhan cua Zalo. DTHT - HOTLINE: 19001255";
                    //GUI SMS THONGBAO He Thong Da Ghi Nhan SMS Cua KH
                    SendMt(User_ID, Service_ID, Command_Code, reMessage, Request_ID);

                    #endregion

                    #region CALL ZALO API

                    DataTable dtCon = ZaloController.ZaloGetSoiCauContent(companyId);
                    if (dtCon != null && dtCon.Rows.Count > 0)
                    {
                        foreach (DataRow dr in dtCon.Rows)
                        {
                            reMessage = dr["Content"].ToString();
                            int reVal = ApiZaloCallForSendZms(User_ID, reMessage);
                            //SAVE LOG AFTER CALL API
                            SaveMtLog(User_ID, Service_ID, Command_Code, reMessage, Request_ID, zaloPartner, reVal);
                        }
                    }

                    #endregion

                    #endregion
                }
            }
            else
            {
                reMessage = "Tin nhan sai cu phap !";
                SendMt(User_ID, Service_ID, Command_Code, reMessage, Request_ID);
            }
        }
        catch (Exception ex)
        {
            Log.Debug(" ");
            Log.Debug(" ");
            Log.Debug("--------------- Zalo WS Process MO Error ----------------------");
            Log.Debug("Zalo Exception : " + ex.Message);
            Log.Debug(" ");
            Log.Debug(" ");
            throw;
        }

        return(responseValue);
    }