This commit is contained in:
kdh0120 2020-12-11 06:31:15 +00:00
parent 7d7c924b53
commit 7831249218
13 changed files with 202 additions and 19 deletions

View File

@ -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))

View File

@ -9,7 +9,7 @@
<th>홈페이지Q&A미답변</th>
<th>강의Q&A미답변</th>
<th>환불요청</th>
<th>교재미배송</th>
@*<th>교재미배송</th>*@
<th>계산서미발행</th>
</tr>
</thead>
@ -19,7 +19,7 @@
<td class="link text-center @(Model.Data.intval2 > 0 ? "emphasis":"")"><a href="/cc/homes">@Model.Data.intval2.ToString("#,0") 건</a></td>
<td class="link text-center @(Model.Data.intval3 > 0 ? "emphasis":"")"><a href="/cc/rooms">@Model.Data.intval3.ToString("#,0") 건</a></td>
<td class="link text-center @(Model.Data.intval4 > 0 ? "emphasis":"")"><a href="/croom/pay">@Model.Data.intval4.ToString("#,0") 건</a></td>
<td class="link text-center @(Model.Data.intval5 > 0 ? "emphasis":"")"><a href="/croom/deliveries">@Model.Data.intval5.ToString("#,0") 건</a></td>
@*<td class="link text-center @(Model.Data.intval5 > 0 ? "emphasis":"")"><a href="/croom/deliveries">@Model.Data.intval5.ToString("#,0") 건</a></td>*@
<td class="link text-center @(Model.Data.intval6 > 0 ? "emphasis":"")"><a href="/croom/tax">@Model.Data.intval6.ToString("#,0") 건</a></td>
</tr>
</tbody>

View File

@ -232,6 +232,7 @@
// (es[5] != "" ? ("분류5: " + es[5]) : ""));
//}
else if (capResult.code == 123) {
$('#file').val("");
var es = capResult.msg.split(';');
msg2("존재하지 않는 문제유형코드가 있습니다. 확인후 다시 업로드해주세요.<br />" +
(es[0] != "" ? ("분류1: " + es[0] + "<br />") : "") +
@ -241,6 +242,7 @@
(es[4] != "" ? ("분류5: " + es[4]) : ""));
}
else {
$('#file').val("");
console.log(capResult.msg);
msg2("업로드가 실패했습니다.<br /><br /><br />" + capResult.msg, null, true);
}

View File

@ -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 + "()"));
}

View File

@ -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(" ", ""))))

View File

@ -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("영남건설기술교육원입니다.<br><br>{0}님이 수강중인 [{1}] 자격검정이 [{2}]에 영남건설기술교육원 대회의실에서 이뤄질 예정입니다.<br><br>☞사이트: https://ynicte.nptc.kr/",
"test", "테스트", DateTime.Now.ToString("yyyy-MM-dd HH:mm")));
string.Format("영남건설기술교육원입니다.<br><br>{0}님이 수강중인 [{1}] 자격검정이 [{2}]에 영남건설기술교육원 대회의실에서 이뤄질 예정입니다.<br><br>☞사이트: https://ynicte.nptc.kr/",
"test", "테스트", DateTime.Now.ToString("yyyy-MM-dd HH:mm")));
}
}
return JsonOK(1);
}

View File

@ -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<NP.Model.MemoUser> Users, String tmplkey)
{
IList<MemoUser> m = new List<MemoUser>() { };
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<NP.Model.MemoUser> 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);
}
/// <summary>
///
/// </summary>

View File

@ -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>("pay.mypay", new System.Collections.Hashtable() { { "userno", SUserInfo.UserNo }, { "payno", vm.payno } }).FirstOrDefault();
if (vm.Pay == null)
{

View File

@ -76,19 +76,19 @@
{
if (Model.PayRfd.rstatus == 0 && (Model.PayRfd.fgnob == null || Model.PayRfd.fgnor == null))
{
<label>서류접수대기</label> <a href="#" style="color:blue" onclick="refund();">[서류등록/취소]</a> <a href="#" style="color:blue">[신청서출력]</a>
<label>서류접수대기</label> <a href="#" style="color:blue" onclick="refund();">[서류등록/취소]</a> <a href="#" onclick="rfdrequest(@(Model.PayRfd.rfdno));" style="color:blue">[신청서출력]</a>
}
else if (Model.PayRfd.rstatus == 0 && (Model.PayRfd.fgnob != null && Model.PayRfd.fgnor != null))
{
<label>접수완료</label><label id="rfdDate">(@Model.PayRfd.udt) 서류심사중</label> <a href="#" style="color:blue" onclick="refund();">[상세내용조회/취소]</a> <a href="#" style="color:blue">[신청서출력]</a>
<label>접수완료</label><label id="rfdDate">(@Model.PayRfd.udt) 서류심사중</label> <a href="#" style="color:blue" onclick="refund();">[상세내용조회/취소]</a> <a href="#" onclick="rfdrequest(@(Model.PayRfd.rfdno));" style="color:blue">[신청서출력]</a>
}
else if (Model.PayRfd.rstatus == 1 && (Model.PayRfd.fgnob != null && Model.PayRfd.fgnor != null))
{
<label>환불불가</label><label id="rfdDate">(@Model.PayRfd.udt)</label> <a href="#" style="color:blue" onclick="refund();">[상세내용조회]</a> <a href="#" style="color:blue">[신청서출력]</a>
<label>환불불가</label><label id="rfdDate">(@Model.PayRfd.udt)</label> <a href="#" style="color:blue" onclick="refund();">[상세내용조회]</a> <a href="#" onclick="rfdrequest(@(Model.PayRfd.rfdno));" style="color:blue">[신청서출력]</a>
}
else if (Model.PayRfd.rstatus == 2 && (Model.PayRfd.fgnob != null && Model.PayRfd.fgnor != null))
{
<label>환불완료</label><label id="rfdDate">(@Model.PayRfd.udt)</label> <a href="#" style="color:blue" onclick="refund();">[상세내용조회]</a> <a href="#" style="color:blue">[신청서출력]</a>
<label>환불완료</label><label id="rfdDate">(@Model.PayRfd.udt)</label> <a href="#" style="color:blue" onclick="refund();">[상세내용조회]</a> <a href="#" onclick="rfdrequest(@(Model.PayRfd.rfdno));" style="color:blue">[신청서출력]</a>
}
}
</td>
@ -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("팝업이 차단되어 있습니다. 차단을 해제해 주세요.");
}
}
</script>
@if (ViewBag.isPayTest == "1")
{

View File

@ -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; }
}