This commit is contained in:
hodong13 2020-12-02 06:15:09 +00:00
parent f85626b127
commit 19e829f775
4 changed files with 39 additions and 90 deletions

View File

@ -10,7 +10,7 @@
<tr>
<th width="50">No</th>
<th>메시지 내용</th>
<th>발송인원(알림톡/친구톡/SMS/LMS/MMS/실패)</th>
<th>발송인원@*(알림톡/친구톡/SMS/LMS/MMS/실패)*@</th>
<th>발송인</th>
<th>발송일</th>
</tr>
@ -21,16 +21,18 @@
<tr>
<td>@item.rnorvt</td>
<td class="text-left" style="text-overflow:initial">@item.mcontents</td>
<td class="link">
<td class="link text-center">
<a href="#" class="link rv" onclick="view(@item.mno)">
@string.Format("{0}({1}/{2}/{3}/{4}/{5}/{6})"
@*@string.Format("{0}({1}/{2}/{3}/{4}/{5}/{6})"*@
@string.Format("{0}"
, item.ccount.ToString("#,0")
, item.ACount.ToString("#,0")
, item.FTCount.ToString("#,0")
, item.SCount.ToString("#,0")
, item.LCount.ToString("#,0")
, item.MCount.ToString("#,0")
, item.ECount.ToString("#,0"))
//, item.ACount.ToString("#,0")
//, item.FTCount.ToString("#,0")
//, item.SCount.ToString("#,0")
//, item.LCount.ToString("#,0")
//, item.MCount.ToString("#,0")
//, item.ECount.ToString("#,0")
)
</a>
</td>
<td>@item.cnoname</td>
@ -55,11 +57,11 @@
<tr>
<th>No</th>
<th>소속</th>
<th>권한</th>
@*<th>권한</th>*@
<th>이름</th>
<th>핸드폰번호</th>
<th>상태</th>
<th>전송방식</th>
@*<th>상태</th>*@
</tr>
</thead>
<tbody class="data" id="tbody2"></tbody>
@ -112,7 +114,8 @@
$("#tbody2 tr").remove();
if (capResult.code == 1000) {
$.each(capResult.obj, function (i, d) {
$("#tbody2").append("<tr><td>" + d.rnorvt + "</td><td>" + d.asname + "</td><td>" + d.usertypestr + "</td><td>" + d.username + "</td><td>" + d.mobile + "</td><td>" + d.smstypename + "</td><td>" + d.isokname + "</td></tr>");
//$("#tbody2").append("<tr><td>" + d.rnorvt + "</td><td>" + d.asname + "</td><td>" + d.usertypestr + "</td><td>" + d.username + "</td><td>" + d.mobile + "</td><td>" + d.smstypename + "</td><td>" + d.isokname + "</td></tr>");
$("#tbody2").append("<tr><td>" + d.rnorvt + "</td><td>" + d.asname + "</td><td>" + d.username + "</td><td>" + d.mobile + "</td><td>" + d.smstypename + "</td></tr>");
});
setTimeout(function () {
bglayer();

View File

@ -72,6 +72,10 @@
<add key="LGD_ESCROW_USEYN" value="N" />
<add key="PAYMENT_CLASSIFICATION" value="te" />
<add key="LGD_MERTKEY" value="e988951b7fe0b7f25ebaa07e54824365" />
<add key="mtssendnum" value="15447660" />
<add key="mtsdb" value="Server=218.232.111.111;Database=mtsyicte;User ID=mtsyicteremote;Password=dev1@#" />
<!--MTS SMSMMS 발신번호-->
</appSettings>
<common>
<logging>

View File

@ -68,6 +68,10 @@
<HintPath>..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="MySql.Data, Version=8.0.19.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\References\MySql.Data.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.12.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>

View File

@ -370,7 +370,7 @@ namespace NP.Base.Controllers
}
foreach(var u in data)
{
m.Users.Add(new MemoUser() { userno = u.userno, smstype = "A", 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("-", "") });
}
}
else
@ -378,90 +378,28 @@ namespace NP.Base.Controllers
var data = Dao.Get<Users>("users.byusernos", m.usernos);
foreach (var u in data)
{
m.Users.Add(new MemoUser() { userno = u.userno, smstype = "A", 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("-", "") });
}
}
//알림톡 발송
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];
System.Text.StringBuilder sb = new System.Text.StringBuilder();
m.mcontents = m.mcontents.Length > 1000 ? m.mcontents.Substring(0, 1000) : m.mcontents;
//System.Text.Encoding.Default.GetBytes("x").Length 90 limit
//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)
{
//System.Net.WebRequest request = System.Net.WebRequest.Create(talkurl);
//request.ContentType = "application/json";
//request.Method = "post";
//request.Headers["ContentType"] = "application/json";//"application /x-www-form-urlencoded";
//request.Headers.Add("userid", talkaccountid);
System.Text.StringBuilder sb = new System.Text.StringBuilder("");
var cbnum = GetConfig("mtssendnum");
for (var i = 0; i < us.Count(); i++)
{
if ((i+1) % 100 == 1)
{
sb.Clear();
sb.Append("[");
}
sb.Append("{\"message_type\": \"AT\", \"" +
"phn\": \"" + us[i].mobile.Replace("-", "") + "\", \"" +
"profile\": \"" + talkprofilekey + "\", \"" +
"reserveDt\": \"00000000000000\", \"" +
//"msg\": \"" + m.mcontents + "\",\"" +
"msg\": \"[카카오뮤직] 회원가입 안내\n박효동님, 카카오뮤직 회원이 되신 것을\n환영합니다.\n\n▶신규 가입 회원 혜택\n\n"+ m.mcontents + "\n카카오톡 이모티콘 증정\", \"" +
"tmplId\": \"alimtalktest_001\",\"" +
"smsKind\": \"N\"" +
//"msgSms\":\"" + m.mcontents + "\",\"" +
//"smsSender\":\"\"}");
"},");
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 {
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;
}
}
}
}
}
}
sb.Append(string.Format(",('{0}','{1}','{2}', now())", us[i].mobile, cbnum, m.mcontents));
}
var strConn = GetConfig("mtsdb");
using (var conn = new MySql.Data.MySqlClient.MySqlConnection(strConn))
{
conn.Open();
var cmd = new MySql.Data.MySqlClient.MySqlCommand();
cmd.Connection = conn;
cmd.CommandText = "insert into mts_sms_msg(tran_phone,tran_callback,tran_msg,tran_date) values"+sb.ToString().Substring(1);
cmd.ExecuteNonQuery();
}
}
m.uno = SUserInfo.UserNo;