PMS(6431) : SMS 발송 오류 수정 (전문건설도 동시에 적용 해야 합니다.)
This commit is contained in:
parent
a05e4dccd8
commit
afabafaea8
|
|
@ -2069,96 +2069,47 @@ namespace NP.Base.Controllers
|
|||
}
|
||||
else if (type == 3)
|
||||
{
|
||||
//SMS
|
||||
//알림톡 -> SMS 발송으로 수정
|
||||
var data = Dao.Get<Users>("users.byusernos", usernos);
|
||||
foreach (var u in data)
|
||||
{
|
||||
m.Users.Add(new MemoUser() { userno = u.userno, smstype = "S", isok = string.IsNullOrEmpty(u.mobile) ? -1 : 1, mobile = (u.mobile ?? "").Replace("-", "") });
|
||||
}
|
||||
|
||||
//SMS 발송
|
||||
var t = GetConfig("talk");
|
||||
var talkurl = t.Split(',')[0];
|
||||
var talkid = t.Split(',')[1];
|
||||
var talkpw = t.Split(',')[2];
|
||||
var talkaccountkey = t.Split(',')[3];
|
||||
var talkaccountid = t.Split(',')[4];
|
||||
var talkprofilekey = t.Split(',')[5];
|
||||
var talksender = t.Split(',')[6];
|
||||
System.Text.StringBuilder sb = new System.Text.StringBuilder();
|
||||
var cbnum = GetConfig("mtssendnum");
|
||||
var ismms = System.Text.Encoding.Default.GetBytes(m.mcontents).Length > 90;
|
||||
m.mcontents = (m.mcontents.Length > 1000 ? m.mcontents.Substring(0, 1000) : m.mcontents).Replace("\"", "'");
|
||||
var us = m.Users.Where(w => w.isok == 1).ToList();
|
||||
|
||||
m.uno = SUserInfo.UserNo;
|
||||
m.uip = GetUserIP();
|
||||
Dao.Insert("common.sms.in", m);
|
||||
|
||||
if (us.Count() > 0)
|
||||
{
|
||||
for (var i = 0; i < us.Count(); i++)
|
||||
{
|
||||
if ((i + 1) % 100 == 1)
|
||||
|
||||
var phn = us[i].mobile.Replace("-", "");
|
||||
sb.Append(string.Format(",('{0}','{1}','{2}', now(),{5},'{3}','{4}')", phn, cbnum, m.mcontents, m.mno, us[i].userno, ismms ? 4 : 0));
|
||||
}
|
||||
|
||||
var strConn = GetConfig("mtsdb");
|
||||
using (var conn = new MySql.Data.MySqlClient.MySqlConnection(strConn))
|
||||
{
|
||||
sb.Clear();
|
||||
sb.Append("[");
|
||||
conn.Open();
|
||||
var cmd = new MySql.Data.MySqlClient.MySqlCommand("insert into mts_" + (ismms ? "m" : "s") + "ms_msg(tran_phone,tran_callback,tran_msg,tran_date,tran_type,tran_etc1,tran_etc2) values" + sb.ToString().Substring(1), conn);
|
||||
cmd.ExecuteNonQuery();
|
||||
}
|
||||
sb.Append("{\"message_type\": \"AT\", \"" +
|
||||
"phn\": \"" + us[i].mobile.Replace("-", "") + "\", \"" +
|
||||
"profile\": \"" + talkprofilekey + "\", \"" +
|
||||
"reserveDt\": \"00000000000000\", \"" +
|
||||
"smsLmsTit\": \"[영남건설기술교육원 알림톡]\", \"" +
|
||||
"msg\": \"" + m.mcontents + "\",\"" +
|
||||
"smsKind\": \""+(System.Text.Encoding.Default.GetBytes(m.mcontents).Length > 90 ? "L" : "S") +"\", \"" +
|
||||
"msgSms\": \"" + m.mcontents + "\", \"" +
|
||||
"smsSender\": \"" + talksender + "\", \"" +
|
||||
"smsOnly\": \"Y\"" +
|
||||
"},");
|
||||
if ((i + 1) % 100 == 0 || i == us.Count() - 1)
|
||||
{
|
||||
String rtntalk = "";
|
||||
System.Net.HttpWebRequest request = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(talkurl);
|
||||
request.Method = "POST";
|
||||
request.ContentType = "application/json";
|
||||
request.Accept = "application/json";
|
||||
request.Headers.Add("userid", talkaccountid);
|
||||
rtntalk = ApiCall(request, sb.ToString().Substring(0, sb.Length - 1) + "]");
|
||||
if (rtntalk.StartsWith("nptecherr:"))
|
||||
{
|
||||
foreach (var d in us)
|
||||
{
|
||||
d.isok = -2;
|
||||
return JsonOK(Dao.Save("common.smsuser.in", m));
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
System.Web.Script.Serialization.JavaScriptSerializer js = new System.Web.Script.Serialization.JavaScriptSerializer();
|
||||
TalkRtn[] rtn = js.Deserialize<TalkRtn[]>(rtntalk.StartsWith("[") ? rtntalk : ("[" + rtntalk + "]"));
|
||||
foreach (var d in rtn)
|
||||
{
|
||||
if (d.data == null)
|
||||
{
|
||||
foreach (var u2 in us)
|
||||
{
|
||||
u2.isok = 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var u = us.Where(w => w.mobile.Replace("-", "") == d.data.phn).FirstOrDefault();
|
||||
if (u != null)
|
||||
{
|
||||
u.msgid = d.data.msgid;
|
||||
u.message = d.message;
|
||||
if ("fail".Equals(d.code.ToLower()))
|
||||
{
|
||||
u.isok = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
m.uno = SUserInfo.UserNo;
|
||||
m.uip = GetUserIP();
|
||||
Dao.Insert("common.sms.in", m);
|
||||
Dao.Save("common.smsuser.in", m);
|
||||
return JsonBack(new JsonRtn() { code = 1000, obj = us.Where(w => w.isok == 1).Count(), msg = string.Format("<br />전체대상: {0}<br />발송성공: {1}<br />휴대폰번호오류: {2}", data.Count(), us.Where(w => w.isok == 1).Count(), us.Where(w => w.isok != 1).Count()) });
|
||||
|
||||
return JsonOK(0);
|
||||
|
||||
//return JsonBack(new JsonRtn() { code = 1000, obj = us.Where(w => w.isok == 1).Count(), msg = string.Format("<br />전체대상: {0}<br />발송성공: {1}<br />휴대폰번호오류: {2}", data.Count(), us.Where(w => w.isok == 1).Count(), us.Where(w => w.isok != 1).Count()) });
|
||||
}
|
||||
else if (type == 1)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1442,13 +1442,15 @@ namespace NP.Base
|
|||
for (var i = 0; i < us.Count(); i++)
|
||||
{
|
||||
us[i].ismms = System.Text.Encoding.Default.GetBytes(us[i].mcontents).Length > 90;
|
||||
var phn = us[i].mobile.Replace("-", "");
|
||||
|
||||
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));
|
||||
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}')", us[i].mobile, cbnum, us[i].mcontents, m.mno, us[i].userno, us[i].ismms ? 4 : 0));
|
||||
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");
|
||||
|
|
|
|||
Loading…
Reference in New Issue