diff --git a/BO/Controllers/AccountController.cs b/BO/Controllers/AccountController.cs index 29f8e14..f308db8 100644 --- a/BO/Controllers/AccountController.cs +++ b/BO/Controllers/AccountController.cs @@ -287,6 +287,8 @@ namespace NP.BO.Controllers m.Users.Add(new MemoUser() { userno = u.userno, + uno = SUserInfo.UserNo, + uip = GetUserIP(), smstype = "A", isok = string.IsNullOrEmpty(u.mobile) ? -1 : 1, title = "[영남건설기술교육원] 진행평가 참여 알림", @@ -301,6 +303,27 @@ namespace NP.BO.Controllers SaveTalk(m.Users.Where(w => w.isok == 1).ToList(), "encourage1"); m.Users.Clear(); } + + foreach (var u in lects.Where(w => w.scdno < 8 && w.issms == 1)) + { + m.Users.Add(new MemoUser() + { + userno = u.userno, + smstype = "S", + isok = string.IsNullOrEmpty(u.mobile) ? -1 : 1, + title = "[영남건설기술교육원] 진행평가 참여 알림", + mobile = (u.mobile ?? "").Replace("-", ""), + mcontents = string.Format("영남건설기술교육원입니다.\n\n[{0}]님이 수강중인 [{1}] 강좌의 교육 종료일이 {2}일 남았습니다. 종료되기전에 서둘러 " + + (u.scdno < 3 ? "학습을 진행" : u.scdno == 3 ? "진행평가에" : u.scdno == 4 ? "최종평가에" : u.scdno == 5 ? "과제을 제출" : u.scdno == 6 ? "토론에 참여" : u.scdno == 7 ? "강의평가에 참여" : "-") + "해주세요.\n\n☞사이트 : https://edu.kfcf.or.kr", + u.username, u.cname, u.dday) + }); + } + if (m.Users.Where(w => w.isok == 1).Count() > 0) + { + SaveSmsMulti(m.Users.Where(w => w.isok == 1).ToList()); + m.Users.Clear(); + } + var masteremail = GetConfig("masteremail"); var senderemail = masteremail.Split(';')[0]; foreach (var u in lects.Where(w => w.scdno < 3 && w.isemail == 1)) @@ -334,6 +357,26 @@ namespace NP.BO.Controllers SaveTalk(m.Users.Where(w => w.isok == 1).ToList(), "encourage7"); m.Users.Clear(); } + + foreach (var u in lects.Where(w => w.scdno == 8 && w.issms == 1)) + { + m.Users.Add(new MemoUser() + { + userno = u.userno, + smstype = "S", + title = "[영남건설기술교육원] 진행평가 참여 알림", + isok = string.IsNullOrEmpty(u.mobile) ? -1 : 1, + mobile = (u.mobile ?? "").Replace("-", ""), + mcontents = string.Format("영남건설기술교육원입니다.\n\n{0}님이 신청중인 [{1}] 강좌의 교육이 [{2}]에 {3}에서 시작됩니다.\n\n☞사이트 : https://edu.kfcf.or.kr", + u.username, u.cname, u.stime.ToString("yyyy-MM-dd"), u.place) + }); + } + if (m.Users.Where(w => w.isok == 1).Count() > 0) + { + SaveSmsMulti(m.Users.Where(w => w.isok == 1).ToList()); + m.Users.Clear(); + } + var masteremail = GetConfig("masteremail"); var senderemail = masteremail.Split(';')[0]; foreach (var u in lects.Where(w => w.scdno == 8 && w.isemail == 1)) @@ -366,6 +409,26 @@ namespace NP.BO.Controllers SaveTalk(m.Users.Where(w => w.isok == 1).ToList(), "encourage8"); m.Users.Clear(); } + + foreach (var u in lects.Where(w => w.scdno == 9 && w.issms == 1)) + { + m.Users.Add(new MemoUser() + { + userno = u.userno, + smstype = "S", + title = "[영남건설기술교육원] 진행평가 참여 알림", + isok = string.IsNullOrEmpty(u.mobile) ? -1 : 1, + mobile = (u.mobile ?? "").Replace("-", ""), + mcontents = string.Format("영남건설기술교육원입니다.\n\n{0}님이 신청중인 [{1}] 자격검정이 [{2}]에 {3}에서 이뤄질 예정입니다.\n\n☞사이트: https://edu.kfcf.or.kr", + u.username, u.cname, u.stime.ToString("yyyy-MM-dd HH:mm"), u.place) + }); + } + if (m.Users.Where(w => w.isok == 1).Count() > 0) + { + SaveSmsMulti(m.Users.Where(w => w.isok == 1).ToList()); + m.Users.Clear(); + } + var masteremail = GetConfig("masteremail"); var senderemail = masteremail.Split(';')[0]; foreach (var u in lects.Where(w => w.scdno == 9 && w.isemail == 1)) diff --git a/BO/Views/Home/Index.cshtml b/BO/Views/Home/Index.cshtml index f63bbf9..f07bb6e 100644 --- a/BO/Views/Home/Index.cshtml +++ b/BO/Views/Home/Index.cshtml @@ -9,7 +9,7 @@ 홈페이지Q&A미답변 강의Q&A미답변 환불요청 - 교재미배송 + @*교재미배송*@ 계산서미발행 @@ -19,7 +19,7 @@ @Model.Data.intval2.ToString("#,0") 건 @Model.Data.intval3.ToString("#,0") 건 @Model.Data.intval4.ToString("#,0") 건 - @Model.Data.intval5.ToString("#,0") 건 + @*@Model.Data.intval5.ToString("#,0") 건*@ @Model.Data.intval6.ToString("#,0") 건 diff --git a/BO/Views/cm/qs.cshtml b/BO/Views/cm/qs.cshtml index dd2bd91..40aec4d 100644 --- a/BO/Views/cm/qs.cshtml +++ b/BO/Views/cm/qs.cshtml @@ -232,6 +232,7 @@ // (es[5] != "" ? ("분류5: " + es[5]) : "")); //} else if (capResult.code == 123) { + $('#file').val(""); var es = capResult.msg.split(';'); msg2("존재하지 않는 문제유형코드가 있습니다. 확인후 다시 업로드해주세요.
" + (es[0] != "" ? ("분류1: " + es[0] + "
") : "") + @@ -241,6 +242,7 @@ (es[4] != "" ? ("분류5: " + es[4]) : "")); } else { + $('#file').val(""); console.log(capResult.msg); msg2("업로드가 실패했습니다.


" + capResult.msg, null, true); } diff --git a/BO/js/site.js b/BO/js/site.js index ef8e67a..79e30db 100644 --- a/BO/js/site.js +++ b/BO/js/site.js @@ -819,7 +819,7 @@ function capfile(url, data, callback, noeval, setBG, jsislayer2, abscaller) { if (_setBG) { $("#bglayer").hide(); } - capResult = data; + data = null; if (capResult.code == 1000 || _abscaller) { eval(capfilecallback.substr(capfilecallback.length - 1, 1) == ")" ? capfilecallback : (capfilecallback + "()")); } diff --git a/BO/obj/Debug/BO.csprojAssemblyReference.cache b/BO/obj/Debug/BO.csprojAssemblyReference.cache index 604a8d8..79ba8df 100644 Binary files a/BO/obj/Debug/BO.csprojAssemblyReference.cache and b/BO/obj/Debug/BO.csprojAssemblyReference.cache differ diff --git a/Base/Controller/ACommon.cs b/Base/Controller/ACommon.cs index 2f9d0d8..c41c2e6 100644 --- a/Base/Controller/ACommon.cs +++ b/Base/Controller/ACommon.cs @@ -1229,9 +1229,9 @@ namespace NP.Base.Controllers return JsonBack(new JsonRtn() { code = 1, msg = "객관식은 최소한 보기 2개와 답을 입력해야합니다. " + seq + "번째 문제를 확인해주세요" }); } //주관식 단답 정답 기입 확인 - if (d.atype > 0 && (string.IsNullOrEmpty(d.qitext1.Replace(" ", "")))) + if (d.atype == 1 && (string.IsNullOrEmpty(d.qitext1.Replace(" ", "")))) { - return JsonBack(new JsonRtn() { code = 1, msg = "단답형은 답을 입력해야합니다. " + seq + "번째 문제를 확인해주세요" }); + return JsonBack(new JsonRtn() { code = 1, msg = "주관식과 단답형은 답을 입력해야합니다. " + seq + "번째 문제를 확인해주세요" }); } ////주관식 단답 정답 기입 확인 //if (d.atype > 0 && (string.IsNullOrEmpty(d.qitext1.Replace(" ", "")))) diff --git a/Base/Controller/ACommonCRoom.cs b/Base/Controller/ACommonCRoom.cs index 461ed01..f63be76 100644 --- a/Base/Controller/ACommonCRoom.cs +++ b/Base/Controller/ACommonCRoom.cs @@ -865,7 +865,23 @@ namespace NP.Base.Controllers SaveTalk(m.Users.Where(w => w.isok == 1).ToList(), "encourage1"); m.Users.Clear(); } - + + m.Users.Add(new MemoUser() + { + smstype = "S", + isok = 1, + title = "[영남건설기술교육원] 진행평가 참여 알림", + mobile = mobile, + mcontents = string.Format("영남건설기술교육원입니다.\n\n[{0}]님이 수강중인 [{1}] 강좌의 교육 종료일이 {2}일 남았습니다. 종료되기전에 서둘러 " + + (scdno < 3 ? "학습을 진행" : scdno == 3 ? "진행평가에" : scdno == 4 ? "최종평가에" : scdno == 5 ? "과제을 제출" : scdno == 6 ? "토론에 참여" : scdno == 7 ? "강의평가에 참여" : "-") + "해주세요.\n\n☞사이트 : https://ynicte.nptc.kr/", + "test", "테스트", 1) + }); + if (m.Users.Where(w => w.isok == 1).Count() > 0) + { + SaveSmsMulti(m.Users.Where(w => w.isok == 1).ToList()); + m.Users.Clear(); + } + if (IsEmail(email)) { SendEmail(masteremail.Split(';')[1], GetInt(masteremail.Split(';')[2]), masteremail.Split(';')[3], masteremail.Split(';')[4], 999, @@ -885,8 +901,27 @@ namespace NP.Base.Controllers mobile = mobile, mcontents = string.Format("영남건설기술교육원입니다.\n\n{0}님이 신청중인 [{1}] 강좌의 교육이 [{2}]에 {3}에서 시작됩니다.\n\n☞사이트 : https://ynicte.nptc.kr/", "test", "테스트", DateTime.Now.ToString("yyyy-MM-dd"),"영남건설기술교육원 대회의실")}); - SaveTalk(m.Users.Where(w => w.isok == 1).ToList(), "encourage7"); - m.Users.Clear(); + if (m.Users.Where(w => w.isok == 1).Count() > 0) + { + SaveTalk(m.Users.Where(w => w.isok == 1).ToList(), "encourage7"); + m.Users.Clear(); + } + + m.Users.Add(new MemoUser() + { + smstype = "S", + isok = 1, + title = "[영남건설기술교육원] 진행평가 참여 알림", + mobile = mobile, + mcontents = string.Format("영남건설기술교육원입니다.\n\n{0}님이 신청중인 [{1}] 강좌의 교육이 [{2}]에 {3}에서 시작됩니다.\n\n☞사이트 : https://ynicte.nptc.kr/", + "test", "테스트", DateTime.Now.ToString("yyyy-MM-dd"), "영남건설기술교육원 대회의실") + }); + if (m.Users.Where(w => w.isok == 1).Count() > 0) + { + SaveSmsMulti(m.Users.Where(w => w.isok == 1).ToList()); + m.Users.Clear(); + } + if (IsEmail(email)) { SendEmail(masteremail.Split(';')[1], GetInt(masteremail.Split(';')[2]), masteremail.Split(';')[3], masteremail.Split(';')[4], 999, email, senderemail, "[영남건설기술교육원]", "[영남건설기술교육원] 진행평가 참여 알림", @@ -905,11 +940,33 @@ namespace NP.Base.Controllers mcontents = string.Format("영남건설기술교육원입니다.\n\n{0}님이 수강중인 [{1}] 자격검정이 [{2}]에 영남건설기술교육원 대회의실에서 이뤄질 예정입니다.\n\n☞사이트: https://ynicte.nptc.kr/", "test", "테스트", DateTime.Now.ToString("yyyy-MM-dd HH:mm")) }); - SaveTalk(m.Users.Where(w => w.isok == 1).ToList(), "encourage8"); - m.Users.Clear(); + if (m.Users.Where(w => w.isok == 1).Count() > 0) + { + SaveTalk(m.Users.Where(w => w.isok == 1).ToList(), "encourage8"); + m.Users.Clear(); + } + + m.Users.Add(new MemoUser() + { + smstype = "S", + isok = 1, + title = "[영남건설기술교육원] 진행평가 참여 알림", + mobile = mobile, + mcontents = string.Format("영남건설기술교육원입니다.\n\n{0}님이 수강중인 [{1}] 자격검정이 [{2}]에 영남건설기술교육원 대회의실에서 이뤄질 예정입니다.\n\n☞사이트: https://ynicte.nptc.kr/", + "test", "테스트", DateTime.Now.ToString("yyyy-MM-dd HH:mm")) + }); + if (m.Users.Where(w => w.isok == 1).Count() > 0) + { + SaveSmsMulti(m.Users.Where(w => w.isok == 1).ToList()); + m.Users.Clear(); + } + + if (IsEmail(email)) + { SendEmail(masteremail.Split(';')[1], GetInt(masteremail.Split(';')[2]), masteremail.Split(';')[3], masteremail.Split(';')[4], 999, email, senderemail, "[영남건설기술교육원]", "[영남건설기술교육원] 진행평가 참여 알림", - string.Format("영남건설기술교육원입니다.

{0}님이 수강중인 [{1}] 자격검정이 [{2}]에 영남건설기술교육원 대회의실에서 이뤄질 예정입니다.

☞사이트: https://ynicte.nptc.kr/", - "test", "테스트", DateTime.Now.ToString("yyyy-MM-dd HH:mm"))); + string.Format("영남건설기술교육원입니다.

{0}님이 수강중인 [{1}] 자격검정이 [{2}]에 영남건설기술교육원 대회의실에서 이뤄질 예정입니다.

☞사이트: https://ynicte.nptc.kr/", + "test", "테스트", DateTime.Now.ToString("yyyy-MM-dd HH:mm"))); + } } return JsonOK(1); } diff --git a/Base/Controller/BasePartialController.cs b/Base/Controller/BasePartialController.cs index 846ae0f..1e5951a 100644 --- a/Base/Controller/BasePartialController.cs +++ b/Base/Controller/BasePartialController.cs @@ -11,6 +11,7 @@ using System.IO; using System.Web.Mail; using System.Web.Compilation; using NP.Model; +using System.Net.Http; namespace NP.Base { @@ -1235,9 +1236,8 @@ namespace NP.Base } public void SaveTalk(IList Users, String tmplkey) { - - IList m = new List() { }; - var us = Users.Where(w => w.isok == 1).ToList(); + Memo m = new Memo() { Users = Users ,uno = SUserInfo.UserNo,uip = GetUserIP()}; + var us = m.Users.Where(w => w.isok == 1).ToList(); if (us.Count() > 0) { System.Text.StringBuilder sb = new System.Text.StringBuilder(""); @@ -1259,8 +1259,61 @@ namespace NP.Base var cmd = new MySql.Data.MySqlClient.MySqlCommand("insert into mts_atalk_msg(tran_sender_key,tran_tmpl_cd,tran_callback,tran_phone,tran_subject,tran_msg,tran_date,tran_type,tran_status,tran_replace_type,tran_replace_msg) values" + sb.ToString().Substring(1), conn); cmd.ExecuteNonQuery(); } + Dao.Save("common.smsuser.in", m); } } + [HttpPost] + public JsonResult SaveSmsMulti(IList Users) + { + Memo m = new Memo() {Users = Users }; + //m.mcontents = m.mcontents.Length > 1000 ? m.mcontents.Substring(0, 1000) : m.mcontents; + var us = m.Users.Where(w => w.isok == 1).ToList(); + if (us.Count() > 0) + { + m.uno = SUserInfo.UserNo; + m.uip = GetUserIP(); + Dao.Insert("common.sms.in", m); + System.Text.StringBuilder sbm = new System.Text.StringBuilder(""); + System.Text.StringBuilder sbs = new System.Text.StringBuilder(""); + var cbnum = GetConfig("mtssendnum"); + for (var i = 0; i < us.Count(); i++) + { + us[i].ismms = System.Text.Encoding.Default.GetBytes(us[i].mcontents).Length > 90; + if (us[i].ismms) + { + sbm.Append(string.Format(",('{0}','{1}','{2}', now(),{5},'{3}','{4}')", us[i].mobile, cbnum, us[i].mcontents, m.mno, us[i].userno, us[i].ismms ? 4 : 0)); + } + else + { + sbs.Append(string.Format(",('{0}','{1}','{2}', now(),{5},'{3}','{4}')", us[i].mobile, cbnum, us[i].mcontents, m.mno, us[i].userno, us[i].ismms ? 4 : 0)); + } + } + var strConn = GetConfig("mtsdb"); + //sms일경우 + if(us.Where(w=>!w.ismms).Count()> 0) + { + using (var conn = new MySql.Data.MySqlClient.MySqlConnection(strConn)) + { + conn.Open(); + var cmd = new MySql.Data.MySqlClient.MySqlCommand("insert into mts_sms_msg(tran_phone,tran_callback,tran_msg,tran_date,tran_type,tran_etc1,tran_etc2) values" + sbs.ToString().Substring(1), conn); + cmd.ExecuteNonQuery(); + } + } + //mms일경우 + if(us.Where(w=>w.ismms).Count() > 0) + { + using (var conn = new MySql.Data.MySqlClient.MySqlConnection(strConn)) + { + conn.Open(); + var cmd = new MySql.Data.MySqlClient.MySqlCommand("insert into mts_mms_msg(tran_phone,tran_callback,tran_msg,tran_date,tran_type,tran_etc1,tran_etc2) values" + sbm.ToString().Substring(1), conn); + cmd.ExecuteNonQuery(); + } + } + + return JsonOK(Dao.Save("common.smsuser.in", m)); + } + return JsonOK(0); + } /// /// /// diff --git a/Base/obj/Debug/Base.csprojAssemblyReference.cache b/Base/obj/Debug/Base.csprojAssemblyReference.cache index 6ec1aba..782c52b 100644 Binary files a/Base/obj/Debug/Base.csprojAssemblyReference.cache and b/Base/obj/Debug/Base.csprojAssemblyReference.cache differ diff --git a/Dao/obj/Debug/Dao.csprojAssemblyReference.cache b/Dao/obj/Debug/Dao.csprojAssemblyReference.cache index 4d50338..37188a2 100644 Binary files a/Dao/obj/Debug/Dao.csprojAssemblyReference.cache and b/Dao/obj/Debug/Dao.csprojAssemblyReference.cache differ diff --git a/FO/Controllers/MyController.cs b/FO/Controllers/MyController.cs index d0e5378..1bce72d 100644 --- a/FO/Controllers/MyController.cs +++ b/FO/Controllers/MyController.cs @@ -238,6 +238,7 @@ namespace NP.FO.Controllers public ActionResult PayInfo(VMPay vm) { ViewBag.istest = GetConfig("ispaytest"); + ViewBag.reporturl = GetConfig("reporturl"); vm.Pay = Dao.Get("pay.mypay", new System.Collections.Hashtable() { { "userno", SUserInfo.UserNo }, { "payno", vm.payno } }).FirstOrDefault(); if (vm.Pay == null) { diff --git a/FO/Views/My/PayInfo.cshtml b/FO/Views/My/PayInfo.cshtml index c4b2d0d..0f7a90b 100644 --- a/FO/Views/My/PayInfo.cshtml +++ b/FO/Views/My/PayInfo.cshtml @@ -76,19 +76,19 @@ { if (Model.PayRfd.rstatus == 0 && (Model.PayRfd.fgnob == null || Model.PayRfd.fgnor == null)) { - [서류등록/취소] [신청서출력] + [서류등록/취소] [신청서출력] } else if (Model.PayRfd.rstatus == 0 && (Model.PayRfd.fgnob != null && Model.PayRfd.fgnor != null)) { - [상세내용조회/취소] [신청서출력] + [상세내용조회/취소] [신청서출력] } else if (Model.PayRfd.rstatus == 1 && (Model.PayRfd.fgnob != null && Model.PayRfd.fgnor != null)) { - [상세내용조회] [신청서출력] + [상세내용조회] [신청서출력] } else if (Model.PayRfd.rstatus == 2 && (Model.PayRfd.fgnob != null && Model.PayRfd.fgnor != null)) { - [상세내용조회] [신청서출력] + [상세내용조회] [신청서출력] } } @@ -680,6 +680,12 @@ gogo2(); }); } + function rfdrequest(lectno) { + var pop = window.open('@ViewBag.reporturl/rfdrequest.aspx?lectno='+lectno, "rfdrequest", "width=" + (screen.availWidth) + ", height=" + (screen.availHeight) + ", scrollbars=yes, resizable=yes, status=no, location=no, left=0, top=0"); + if (pop == null) { + msg("팝업이 차단되어 있습니다. 차단을 해제해 주세요."); + } + } @if (ViewBag.isPayTest == "1") { diff --git a/Model/Common.cs b/Model/Common.cs index 4ee2c75..9961d9c 100644 --- a/Model/Common.cs +++ b/Model/Common.cs @@ -120,6 +120,7 @@ namespace NP.Model public String message { get; set; } public String mcontents { get; set; } public String title { get; set; } + public bool ismms { get; set; } }