<기능개선>

1. PMS NO :
2. (주요)작업내용 : 학습독려 알림톡 발송 오류 처리
    Base/Controller/BasePartialController.cs
    BO/Controllers/AccountController.cs
This commit is contained in:
shjang 2022-08-24 07:56:17 +00:00
parent 1b31ac3228
commit c03fc2ff3f
2 changed files with 175 additions and 55 deletions

View File

@ -319,7 +319,12 @@ namespace NP.BO.Controllers
if ("nptech1234".Equals(sss)) if ("nptech1234".Equals(sss))
{ {
//시간불규칙 대비해야 함 //시간불규칙 대비해야 함
var lects = Dao.Get<SCDLect>("lect.encourages", new Hashtable() { { "dtime", DateTime.Now.Minute > 30 ? (DateTime.Now.Hour + 1) : DateTime.Now.Hour }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } }); Hashtable hsData = new Hashtable();
hsData.Add("dtime", DateTime.Now.Minute > 30 ? (DateTime.Now.Hour + 1) : DateTime.Now.Hour);
hsData.Add("uno", SUserInfo.UserNo);
hsData.Add("uip", GetUserIP());
var lects = Dao.Get<SCDLect>("lect.encourages", hsData);
//1~7. 온라인/혼합 출석 80% 미만, 진행평가, 최종평가, 과제, 토론, 강의평가 미참여 //1~7. 온라인/혼합 출석 80% 미만, 진행평가, 최종평가, 과제, 토론, 강의평가 미참여
{ {
foreach (var u in lects.Where(w => w.scdno < 8 && w.istalk == 1)) foreach (var u in lects.Where(w => w.scdno < 8 && w.istalk == 1))
@ -338,6 +343,7 @@ namespace NP.BO.Controllers
u.username, u.cname, u.dday) u.username, u.cname, u.dday)
}); });
} }
if (m.Users.Where(w => w.isok == 1).Count() > 0) if (m.Users.Where(w => w.isok == 1).Count() > 0)
{ {
SaveTalk(m.Users.Where(w => w.isok == 1).ToList(), "encourage001"); SaveTalk(m.Users.Where(w => w.isok == 1).ToList(), "encourage001");
@ -358,6 +364,7 @@ namespace NP.BO.Controllers
u.username, u.cname, u.dday) u.username, u.cname, u.dday)
}); });
} }
if (m.Users.Where(w => w.isok == 1).Count() > 0) if (m.Users.Where(w => w.isok == 1).Count() > 0)
{ {
SaveSmsMulti(m.Users.Where(w => w.isok == 1).ToList()); SaveSmsMulti(m.Users.Where(w => w.isok == 1).ToList());
@ -377,6 +384,7 @@ namespace NP.BO.Controllers
} }
} }
} }
//8. 오프라인 출석 //8. 오프라인 출석
{ {
foreach (var u in lects.Where(w => w.scdno == 8 && w.istalk == 1)) foreach (var u in lects.Where(w => w.scdno == 8 && w.istalk == 1))
@ -411,6 +419,7 @@ namespace NP.BO.Controllers
u.username, u.cname, u.stime.ToString("yyyy-MM-dd"), u.studyplace) u.username, u.cname, u.stime.ToString("yyyy-MM-dd"), u.studyplace)
}); });
} }
if (m.Users.Where(w => w.isok == 1).Count() > 0) if (m.Users.Where(w => w.isok == 1).Count() > 0)
{ {
SaveSmsMulti(m.Users.Where(w => w.isok == 1).ToList()); SaveSmsMulti(m.Users.Where(w => w.isok == 1).ToList());

View File

@ -1391,33 +1391,86 @@ namespace NP.Base
/// <param name="tmplkey"></param> /// <param name="tmplkey"></param>
public void SaveTalk(IList<NP.Model.MemoUser> Users, String tmplkey) public void SaveTalk(IList<NP.Model.MemoUser> Users, String tmplkey)
{ {
Memo m = new Memo() { Users = Users ,uno = SUserInfo.UserNo,uip = GetUserIP()}; Memo m = new Memo(); /*{ Users = Users ,uno = SUserInfo.UserNo,uip = GetUserIP()};*/
m.Users = Users;
m.uno = SUserInfo.UserNo;
m.uip = GetUserIP();
var us = m.Users.Where(w => w.isok == 1).ToList(); var us = m.Users.Where(w => w.isok == 1).ToList();
if (us.Count() > 0) if (us.Count() > 0)
{ {
m.mcontents = us.FirstOrDefault().mcontents; //20220824 건별로 등록한다.
Dao.Insert("common.sms.in", m); foreach (MemoUser talkUser in us)
System.Text.StringBuilder sb = new System.Text.StringBuilder("");
for (var i = 0; i < us.Count(); i++)
{ {
Memo mTmp = m;
mTmp.Users.Clear();
mTmp.Users.Add(talkUser);
mTmp.mcontents = us.FirstOrDefault().mcontents;
Dao.Insert("common.sms.in", mTmp);
//common.smsuser.in 쿼리가 array형태이기에 List변수를 선언함
List<MemoUser> talkUserTmp = new List<MemoUser>();
talkUserTmp.Add(talkUser);
talkUserTmp[0].mno = m.mno;
System.Text.StringBuilder sb = new System.Text.StringBuilder("");
var cbnum = GetConfig("mtssendnum"); var cbnum = GetConfig("mtssendnum");
var talkkey = GetConfig("mastersms"); var talkkey = GetConfig("mastersms");
var ismms = System.Text.Encoding.Default.GetBytes(us[i].mcontents).Length > 90; var ismms = System.Text.Encoding.Default.GetBytes(talkUserTmp[0].mcontents).Length > 90;
for (var j = 0; j < us.Count(); j++) sb.Append(string.Format(",('{0}','{1}','{2}','{3}','{4}','{5}',now(),5,'1','{6}','{7}')"
, talkkey, tmplkey, cbnum, talkUserTmp[0].mobile.Replace(" ", "").Replace("-", ""), talkUserTmp[0].title
, talkUserTmp[0].mcontents, (ismms ? "L" : "S"), talkUserTmp[0].mcontents));
var strConn = GetConfig("mtsdb");
using (var conn = new MySql.Data.MySqlClient.MySqlConnection(strConn))
{ {
sb.Append(string.Format(",('{0}','{1}','{2}','{3}','{4}','{5}',now(),5,'1','{6}','{7}')", talkkey, tmplkey, cbnum, us[i].mobile.Replace(" ","").Replace("-",""), us[i].title, us[i].mcontents, (ismms ? "L" : "S"), us[i].mcontents)); conn.Open();
string strQeury = "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);
var cmd = new MySql.Data.MySqlClient.MySqlCommand(strQeury, conn);
cmd.ExecuteNonQuery();
} }
Dao.Save("common.smsuser.in", mTmp);
} }
var strConn = GetConfig("mtsdb");
using (var conn = new MySql.Data.MySqlClient.MySqlConnection(strConn))
{
conn.Open();
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);
} }
#region 20220824
//if (us.Count() > 0)
//{
// m.mcontents = us.FirstOrDefault().mcontents;
// Dao.Insert("common.sms.in", m);
// System.Text.StringBuilder sb = new System.Text.StringBuilder("");
// for (var i = 0; i < us.Count(); i++)
// {
// var cbnum = GetConfig("mtssendnum");
// var talkkey = GetConfig("mastersms");
// var ismms = System.Text.Encoding.Default.GetBytes(us[i].mcontents).Length > 90;
// for (var j = 0; j < us.Count(); j++)
// {
// sb.Append(string.Format(",('{0}','{1}','{2}','{3}','{4}','{5}',now(),5,'1','{6}','{7}')"
// , talkkey, tmplkey, cbnum, us[i].mobile.Replace(" ", "").Replace("-", ""), us[i].title
// , us[i].mcontents, (ismms ? "L" : "S"), us[i].mcontents));
// }
// }
// var strConn = GetConfig("mtsdb");
// using (var conn = new MySql.Data.MySqlClient.MySqlConnection(strConn))
// {
// conn.Open();
// string strQeury = "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);
// var cmd = new MySql.Data.MySqlClient.MySqlCommand(strQeury, conn);
// cmd.ExecuteNonQuery();
// }
// Dao.Save("common.smsuser.in", m);
//}
#endregion
} }
/// <summary> /// <summary>
/// sms,mms 발송 /// sms,mms 발송
@ -1432,51 +1485,109 @@ namespace NP.Base
var us = m.Users.Where(w => w.isok == 1).ToList(); var us = m.Users.Where(w => w.isok == 1).ToList();
if (us.Count() > 0) if (us.Count() > 0)
{ {
m.uno = SUserInfo.UserNo; //20220824 건별 발송
m.uip = GetUserIP(); foreach (MemoUser talkUser in us)
m.mcontents = us.FirstOrDefault().mcontents;
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; Memo mTmp = m;
var phn = us[i].mobile.Replace("-", ""); mTmp.Users.Clear();
mTmp.Users.Add(talkUser);
if (us[i].ismms) mTmp.uno = SUserInfo.UserNo;
{ mTmp.uip = GetUserIP();
sbm.Append(string.Format(",('{0}','{1}','{2}', now(),{5},'{3}','{4}')", phn, cbnum, us[i].mcontents, m.mno, us[i].userno, us[i].ismms ? 4 : 0)); mTmp.mcontents = us.FirstOrDefault().mcontents;
Dao.Insert("common.sms.in", m);
List<MemoUser> talkUserTmp = new List<MemoUser>();
talkUserTmp.Add(talkUser);
talkUserTmp[0].mno = m.mno;
//System.Text.StringBuilder sbm = new System.Text.StringBuilder("");
//System.Text.StringBuilder sbs = new System.Text.StringBuilder("");
var cbnum = GetConfig("mtssendnum");
talkUserTmp[0].ismms = System.Text.Encoding.Default.GetBytes(talkUserTmp[0].mcontents).Length > 90;
var phn = talkUserTmp[0].mobile.Replace("-", "");
string strQuery = "";
StringBuilder sb = new StringBuilder();
sb.Append(string.Format(",('{0}','{1}','{2}', now(),{5},'{3}','{4}')", phn, cbnum, talkUserTmp[0].mcontents, m.mno, talkUserTmp[0].userno, talkUserTmp[0].ismms ? 4 : 0));
var strConn = GetConfig("mtsdb");
if (talkUserTmp[0].ismms == false)
{//sms일경우
strQuery = "insert into mts_sms_msg(tran_phone,tran_callback,tran_msg,tran_date,tran_type,tran_etc1,tran_etc2) values" + sb.ToString().Substring(1);
using (var conn = new MySql.Data.MySqlClient.MySqlConnection(strConn))
{
conn.Open();
var cmd = new MySql.Data.MySqlClient.MySqlCommand(strQuery, conn);
cmd.ExecuteNonQuery();
}
} }
else else
{ { //mms일경우
sbs.Append(string.Format(",('{0}','{1}','{2}', now(),{5},'{3}','{4}')", phn, cbnum, us[i].mcontents, m.mno, us[i].userno, us[i].ismms ? 4 : 0)); strQuery = "insert into mts_mms_msg(tran_phone,tran_callback,tran_msg,tran_date,tran_type,tran_etc1,tran_etc2) values" + sb.ToString().Substring(1);
using (var conn = new MySql.Data.MySqlClient.MySqlConnection(strConn))
{
conn.Open();
var cmd = new MySql.Data.MySqlClient.MySqlCommand(strQuery, conn);
cmd.ExecuteNonQuery();
}
} }
}
var strConn = GetConfig("mtsdb"); Dao.Save("common.smsuser.in", mTmp);
//sms일경우 }
if(us.Where(w=>!w.ismms).Count()> 0)
{ #region 20220824
using (var conn = new MySql.Data.MySqlClient.MySqlConnection(strConn)) //m.uno = SUserInfo.UserNo;
{ //m.uip = GetUserIP();
conn.Open(); //m.mcontents = us.FirstOrDefault().mcontents;
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); //Dao.Insert("common.sms.in", m);
cmd.ExecuteNonQuery(); //System.Text.StringBuilder sbm = new System.Text.StringBuilder("");
} //System.Text.StringBuilder sbs = new System.Text.StringBuilder("");
} //var cbnum = GetConfig("mtssendnum");
//mms일경우 //for (var i = 0; i < us.Count(); i++)
if(us.Where(w=>w.ismms).Count() > 0) //{
{ // us[i].ismms = System.Text.Encoding.Default.GetBytes(us[i].mcontents).Length > 90;
using (var conn = new MySql.Data.MySqlClient.MySqlConnection(strConn)) // var phn = us[i].mobile.Replace("-", "");
{
conn.Open(); // if (us[i].ismms)
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(); // sbm.Append(string.Format(",('{0}','{1}','{2}', now(),{5},'{3}','{4}')", phn, 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}')", phn, 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));
#endregion
return JsonOK(Dao.Save("common.smsuser.in", m));
} }
return JsonOK(0); return JsonOK(0);
} }
/// <summary> /// <summary>