PMS(6431) : SMS 발송 오류 수정 (전문건설도 동시에 적용 해야 합니다.)
This commit is contained in:
parent
a05e4dccd8
commit
afabafaea8
|
|
@ -2069,96 +2069,47 @@ namespace NP.Base.Controllers
|
||||||
}
|
}
|
||||||
else if (type == 3)
|
else if (type == 3)
|
||||||
{
|
{
|
||||||
//SMS
|
//알림톡 -> SMS 발송으로 수정
|
||||||
var data = Dao.Get<Users>("users.byusernos", usernos);
|
var data = Dao.Get<Users>("users.byusernos", usernos);
|
||||||
foreach (var u in data)
|
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("-", "") });
|
m.Users.Add(new MemoUser() { userno = u.userno, smstype = "S", isok = string.IsNullOrEmpty(u.mobile) ? -1 : 1, mobile = (u.mobile ?? "").Replace("-", "") });
|
||||||
}
|
}
|
||||||
|
|
||||||
//SMS 발송
|
//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();
|
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("\"", "'");
|
m.mcontents = (m.mcontents.Length > 1000 ? m.mcontents.Substring(0, 1000) : m.mcontents).Replace("\"", "'");
|
||||||
var us = m.Users.Where(w => w.isok == 1).ToList();
|
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)
|
if (us.Count() > 0)
|
||||||
{
|
{
|
||||||
for (var i = 0; i < us.Count(); i++)
|
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();
|
conn.Open();
|
||||||
sb.Append("[");
|
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\", \"" +
|
return JsonOK(Dao.Save("common.smsuser.in", m));
|
||||||
"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;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else
|
return JsonOK(0);
|
||||||
{
|
|
||||||
System.Web.Script.Serialization.JavaScriptSerializer js = new System.Web.Script.Serialization.JavaScriptSerializer();
|
//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()) });
|
||||||
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()) });
|
|
||||||
}
|
}
|
||||||
else if (type == 1)
|
else if (type == 1)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1442,13 +1442,15 @@ namespace NP.Base
|
||||||
for (var i = 0; i < us.Count(); i++)
|
for (var i = 0; i < us.Count(); i++)
|
||||||
{
|
{
|
||||||
us[i].ismms = System.Text.Encoding.Default.GetBytes(us[i].mcontents).Length > 90;
|
us[i].ismms = System.Text.Encoding.Default.GetBytes(us[i].mcontents).Length > 90;
|
||||||
|
var phn = us[i].mobile.Replace("-", "");
|
||||||
|
|
||||||
if (us[i].ismms)
|
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
|
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");
|
var strConn = GetConfig("mtsdb");
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue