<추가사사항 - LMS구축 지적사항 보강>
1. 스케줄링 작업 1) 조회시점 => (휴면테이블.cdt + 1년) 인 컬럼 2) 조회시점 => (최근로그인일시 + 1년) 인 컬럼 (휴먼 테이블에 저장) 3) 조회시점 = (휴면테이블.cdt + 335일)<년월일> 인 컬럼 4) 조회시점 = (최근로그인일시 + 335일)<년월일> 인 컬럼 # 커밋 파일 Base\Controller\BasePartialController.cs BO\Controllers\AccountController.cs Dao\MyBatis\Maps\User.xml # 테스트 결과 - 이상없음 # 특이사항 및 이슈사항 - 이상없음
This commit is contained in:
parent
0f77cbf087
commit
7da1e64a55
|
|
@ -477,6 +477,140 @@ namespace NP.BO.Controllers
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 윈도우스케쥴러 매일 새벽 4 시
|
||||||
|
/// 휴면, 탈퇴처리전 메시지
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sss"></param>
|
||||||
|
/// <param name="time"></param>
|
||||||
|
/// <param name="test"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public ActionResult Dormant(String sss, String time, int test = 0)
|
||||||
|
{
|
||||||
|
if (test == 1)
|
||||||
|
{
|
||||||
|
SetError("encouragetest: " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if ("nptech1234".Equals(sss))
|
||||||
|
{
|
||||||
|
// 조회시점 => (휴면테이블.cdt + 1년) 인 컬럼
|
||||||
|
if (time == "0400")
|
||||||
|
{
|
||||||
|
Dao.Save("users.dormant.del", new Hashtable() { { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } });
|
||||||
|
}
|
||||||
|
// 조회시점 => (최근로그인일시 + 1년) 인 컬럼 (휴먼 테이블에 저장)
|
||||||
|
else if (time == "0430")
|
||||||
|
{
|
||||||
|
Dao.Save("users.dormant.insert", new Hashtable() { { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } });
|
||||||
|
}
|
||||||
|
|
||||||
|
// 조회시점 = (휴면테이블.cdt + 335일)<년월일> 인 컬럼
|
||||||
|
else if (time == "1000")
|
||||||
|
{
|
||||||
|
var m = new Memo() { Users = new List<MemoUser>() { } };
|
||||||
|
|
||||||
|
var select_del = Dao.Get<Data>("users.dormants.del", new Hashtable() { { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } });
|
||||||
|
foreach (var u in select_del.Where(w => w.intval == 1))
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrEmpty(u.strval2))
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* SaveSmsMulti 함수 사용 -> 메시지 정보 sms 테이블에 저장, 모니터링 테이블 mts_sms_msg 에 저장
|
||||||
|
*/
|
||||||
|
m.Users.Add(new MemoUser()
|
||||||
|
{
|
||||||
|
userno = u.longval,
|
||||||
|
smstype = "S",
|
||||||
|
isok = string.IsNullOrEmpty(u.strval2) ? -1 : 1,
|
||||||
|
mcontents = string.Format("[영남건설기술교육원] 장기미접속 회원ID 삭제안내\n\n " +
|
||||||
|
"안녕하세요 회원님, 영남건설기술교육원은 소중한 회원님의 개인정보 보호를 위해 회원이 2년간 로그인하지 않는 경우," +
|
||||||
|
"회원탈퇴 처리 및 개인정보가 파기됨을 안내해드립니다.\n\n" +
|
||||||
|
"회원계정 : {0}\n" +
|
||||||
|
"적용일 : {1}\n\n" +
|
||||||
|
"서비스를 계속 이용하시려면, 위 적용일 이전에 로그인을 진행해주세요!",
|
||||||
|
u.strval, u.time.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();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
SendSms(u.strval2, null, null, string.Format("[영남건설기술교육원] 장기미접속 회원ID 삭제안내\n\n " +
|
||||||
|
"안녕하세요 회원님, 영남건설기술교육원은 소중한 회원님의 개인정보 보호를 위해 회원이 2년간 로그인하지 않는 경우," +
|
||||||
|
"회원탈퇴 처리 및 개인정보가 파기됨을 안내해드립니다.\n\n" +
|
||||||
|
"회원계정 : {0}\n" +
|
||||||
|
"적용일 : {1}\n\n" +
|
||||||
|
"서비스를 계속 이용하시려면, 위 적용일 이전에 로그인을 진행해주세요!",
|
||||||
|
u.strval, u.time.ToString("yyyy년 MM월 dd일")), null
|
||||||
|
);
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 조회시점 = (최근로그인일시 + 335일)<년월일> 인 컬럼
|
||||||
|
else if (time == "1030")
|
||||||
|
{
|
||||||
|
var m = new Memo() { Users = new List<MemoUser>() { } };
|
||||||
|
|
||||||
|
var select_save = Dao.Get<Data>("users.dormants.save", new Hashtable() { { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } });
|
||||||
|
|
||||||
|
foreach (var u in select_save.Where(w => w.intval == 1))
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrEmpty(u.strval2))
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* SaveSmsMulti 함수 사용 -> 메시지 정보 sms 테이블에 저장, 모니터링 테이블 mts_sms_msg 에 저장
|
||||||
|
*/
|
||||||
|
m.Users.Add(new MemoUser()
|
||||||
|
{
|
||||||
|
userno = u.longval,
|
||||||
|
smstype = "S",
|
||||||
|
isok = string.IsNullOrEmpty(u.strval2) ? -1 : 1,
|
||||||
|
mcontents = string.Format("[영남건설기술교육원] 휴면계정 전환 예정 안내\n\n " +
|
||||||
|
"안녕하세요 회원님, 영남건설기술교육원은 소중한 회원님의 개인정보 보호를 위해 " +
|
||||||
|
"개인정보보호법 제 39조의6(개인정보의 파기에 대한 특례)에 의거하여 " +
|
||||||
|
"고객님의 계정을 휴면상태로 변경하고 소중한 개인정보를 안전한 공간에 분리하여 보관할 예정입니다.\n\n" +
|
||||||
|
"회원계정 : {0}\n" +
|
||||||
|
"휴면계정 전환예정일 : {1}\n\n" +
|
||||||
|
"서비스를 계속 이용하시려면, 위 전환예정일 이전에 로그인을 진행해주세요!",
|
||||||
|
u.strval, u.time.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();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
SendSms(u.strval2, null, null, string.Format("[영남건설기술교육원] 휴면계정 전환 예정 안내\n\n " +
|
||||||
|
"안녕하세요 회원님, 영남건설기술교육원은 소중한 회원님의 개인정보 보호를 위해 " +
|
||||||
|
"개인정보보호법 제 39조의6(개인정보의 파기에 대한 특례)에 의거하여 " +
|
||||||
|
"고객님의 계정을 휴면상태로 변경하고 소중한 개인정보를 안전한 공간에 분리하여 보관할 예정입니다.\n\n" +
|
||||||
|
"회원계정 : {0}\n" +
|
||||||
|
"휴면계정 전환예정일 : {1}\n\n" +
|
||||||
|
"서비스를 계속 이용하시려면, 위 전환예정일 이전에 로그인을 진행해주세요!",
|
||||||
|
u.strval, u.time.ToString("yyyy년 MM월 dd일")), null
|
||||||
|
);
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
public String KFCFLOGINAUTH(String userid)
|
public String KFCFLOGINAUTH(String userid)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(userid))
|
if (string.IsNullOrEmpty(userid))
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ using System.Web.Compilation;
|
||||||
using NP.Model;
|
using NP.Model;
|
||||||
using System.Net.Http;
|
using System.Net.Http;
|
||||||
using OfficeOpenXml;
|
using OfficeOpenXml;
|
||||||
|
using System.Collections;
|
||||||
|
|
||||||
namespace NP.Base
|
namespace NP.Base
|
||||||
{
|
{
|
||||||
|
|
@ -1138,8 +1139,35 @@ namespace NP.Base
|
||||||
protected int SendSms(String SendNo, String RcvNo, String Subject, String Msg, String time, bool IsMMS = false, String mmstype = "0")
|
protected int SendSms(String SendNo, String RcvNo, String Subject, String Msg, String time, bool IsMMS = false, String mmstype = "0")
|
||||||
{
|
{
|
||||||
SendNo = string.IsNullOrEmpty(SendNo) ? "02-551-2097" : SendNo;
|
SendNo = string.IsNullOrEmpty(SendNo) ? "02-551-2097" : SendNo;
|
||||||
|
|
||||||
|
/* SMS 메시지 작업1 */
|
||||||
|
var mtype = (int?)null;
|
||||||
|
var CMID = "";
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(Msg))
|
||||||
|
{
|
||||||
|
SendNo = SendNo.Replace("-", "");
|
||||||
|
Msg = (Msg.Length > 1000 ? Msg.Substring(0, 1000) : Msg).Replace("\"", "'");
|
||||||
|
mtype = System.Text.Encoding.Default.GetBytes(Msg).Length <= 90 ? 0 : System.Text.Encoding.Default.GetBytes(Msg).Length <= 2000 ? 5 : (int?)null;
|
||||||
|
}
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
/* SMS 메시지 작업2 */
|
||||||
|
if(!string.IsNullOrEmpty(Msg) && mtype != null)
|
||||||
|
{
|
||||||
|
var uno = SUserInfo.UserNo;
|
||||||
|
var uip = GetUserIP();
|
||||||
|
|
||||||
|
// sms 테이블에 저장 to-do !!!!!!!!!!!!!!!!!
|
||||||
|
//Dao.Insert("common.sms.in", new Hashtable() { { } });
|
||||||
|
|
||||||
|
var title = "[영남건설기술교육원 LMS]";
|
||||||
|
CMID = DateTime.Now.ToString("yyMMddHHmmss0000");
|
||||||
|
string strConn = GetConfig("smsserver");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//return Sms.Save(IsMMS?"mms":"sms", new System.Collections.Hashtable() { {"SendNo", SendNo}, { "RcvNo", RcvNo.Replace("-", "") }, { "Subject", Subject }, { "Msg", Msg }, { "SendTime", time }, {"MType", mmstype } });
|
//return Sms.Save(IsMMS?"mms":"sms", new System.Collections.Hashtable() { {"SendNo", SendNo}, { "RcvNo", RcvNo.Replace("-", "") }, { "Subject", Subject }, { "Msg", Msg }, { "SendTime", time }, {"MType", mmstype } });
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
@ -1288,6 +1316,11 @@ namespace NP.Base
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 알림톡발송
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="Users"></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()};
|
||||||
|
|
@ -1318,6 +1351,11 @@ namespace NP.Base
|
||||||
Dao.Save("common.smsuser.in", m);
|
Dao.Save("common.smsuser.in", m);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// sms,mms 발송
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="Users"></param>
|
||||||
|
/// <returns></returns>
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public JsonResult SaveSmsMulti(IList<NP.Model.MemoUser> Users)
|
public JsonResult SaveSmsMulti(IList<NP.Model.MemoUser> Users)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -408,6 +408,23 @@
|
||||||
|
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
|
<update id="users.dormant.insert" parameterClass="hashtable">
|
||||||
|
insert into userdormant(userno,username,usernameeng,email,isacceptemail,mobile
|
||||||
|
,telno,userpno,bankno,post,address1,address2,birthday,cdt)
|
||||||
|
select a.userno,a.username,a.usernameeng,a.email,a.isacceptemail,a.mobile
|
||||||
|
,a.telno,a.userpno,a.bankno,a.post,a.address1,a.address2, a.birthday,<include refid="sql.now"></include> cdt
|
||||||
|
from users a
|
||||||
|
left outer join userdormant b on b.userno = a.userno
|
||||||
|
where date_add(a.logintime,interval 1 year) < now();
|
||||||
|
and a.status != 99
|
||||||
|
|
||||||
|
update users set <include refid="sql.up"></include>
|
||||||
|
,username='삭제됨',usernameeng=null,email=null,mobile=null,telno=null,userpno=null,bankno=null,post=null,address1=null,address2=null,birthday=null,status=8
|
||||||
|
where date_add(a.logintime,interval 1 year) < now();
|
||||||
|
and a.status != 99
|
||||||
|
|
||||||
|
</update>
|
||||||
|
|
||||||
<select id="users.ee" parameterClass="int" resultClass="users">
|
<select id="users.ee" parameterClass="int" resultClass="users">
|
||||||
update users set eastereggkey=FLOOR(10000000 + (RAND() * 99999999)),eetime=<include refid="sql.now"></include> where userno=#userno#;
|
update users set eastereggkey=FLOOR(10000000 + (RAND() * 99999999)),eetime=<include refid="sql.now"></include> where userno=#userno#;
|
||||||
select a.userno,a.eastereggkey,a.usertype,a.username
|
select a.userno,a.eastereggkey,a.usertype,a.username
|
||||||
|
|
@ -856,14 +873,15 @@
|
||||||
<update id="users.dormant.del" parameterClass="hashtable">
|
<update id="users.dormant.del" parameterClass="hashtable">
|
||||||
update users a
|
update users a
|
||||||
left outer join userdormant b on b.userno = a.userno
|
left outer join userdormant b on b.userno = a.userno
|
||||||
set status = 99
|
set set <include refid="sql.up"></include>
|
||||||
|
,status = 99,username='삭제됨',usernameeng=null,email=null,mobile=null,telno=null,userpno=null,bankno=null,post=null,address1=null,address2=null,birthday=null,di=null,ci=null,vssn=null,authplatform=0
|
||||||
where date_add(b.cdt,interval 1 year) < now();
|
where date_add(b.cdt,interval 1 year) < now();
|
||||||
|
|
||||||
delete from userdormant where date_add(cdt,interval 1 year) < now();
|
delete from userdormant where date_add(cdt,interval 1 year) < now();
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<select id="users.dormants.del" parameterClass="hashtable" resultClass="data">
|
<select id="users.dormants.del" parameterClass="hashtable" resultClass="data">
|
||||||
select regexp_replace(b.userid , '(?<=.{3}).','*') strval
|
select a.userno longval, regexp_replace(b.userid , '(?<=.{3}).','*') strval
|
||||||
,CAST(AES_DECRYPT(UNHEX(a.mobile),<include refid="sql.digest"></include>) AS char) strval2
|
,CAST(AES_DECRYPT(UNHEX(a.mobile),<include refid="sql.digest"></include>) AS char) strval2
|
||||||
,date_add(a.cdt, interval 335 day) time
|
,date_add(a.cdt, interval 335 day) time
|
||||||
,b.isacceptmobile intval
|
,b.isacceptmobile intval
|
||||||
|
|
@ -873,9 +891,9 @@
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="users.dormants.save" parameterClass="hashtable" resultClass="data">
|
<select id="users.dormants.save" parameterClass="hashtable" resultClass="data">
|
||||||
select regexp_replace(a.userid , '(?<=.{3}).' , '*') strval
|
select a.userno longval, regexp_replace(a.userid , '(?<=.{3}).' , '*') strval
|
||||||
,CAST(AES_DECRYPT(UNHEX(a.mobile),<include refid="sql.digest"></include>) AS char) strval2
|
,CAST(AES_DECRYPT(UNHEX(a.mobile),<include refid="sql.digest"></include>) AS char) strval2
|
||||||
,date_add(a.logintime, interval 366 day) time
|
,date_add(a.logintime, interval 335 day) time
|
||||||
,a.isacceptmobile intval
|
,a.isacceptmobile intval
|
||||||
from users a
|
from users a
|
||||||
where a.usertype =1 and a.status=1
|
where a.usertype =1 and a.status=1
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue