|
|
@ -22,6 +22,119 @@ namespace EasyBL.WEBAPP.SYS |
|
|
|
public class MembersService : ServiceBase |
|
|
|
{ |
|
|
|
|
|
|
|
//會員登入
|
|
|
|
public HttpResponseMessage Login(TestUser dto) |
|
|
|
{ |
|
|
|
SuccessResponseMessage srm = null; |
|
|
|
string sError = null; |
|
|
|
var db = SugarBase.GetIntance(); |
|
|
|
try |
|
|
|
{ |
|
|
|
do |
|
|
|
{ |
|
|
|
var sUserID = dto.Account; |
|
|
|
var sPassword = dto.Password; |
|
|
|
if (string.IsNullOrWhiteSpace(sUserID)) |
|
|
|
{ |
|
|
|
sError = @"帳號不能為空"; //帳號不能為空
|
|
|
|
break; |
|
|
|
} |
|
|
|
if (string.IsNullOrWhiteSpace(sPassword)) |
|
|
|
{ |
|
|
|
sError = @"密碼不能為空"; //密碼不能為空
|
|
|
|
break; |
|
|
|
} |
|
|
|
var sEncryptPwd = SecurityUtil.Encrypt(sPassword);//將輸入之密碼轉換驗證格式
|
|
|
|
//string sPwd1 = SecurityUtil.Decrypt("wTBo6uXVBlVH8Ms76xiE4w==");
|
|
|
|
//string sPwd1 = SecurityUtil.Decrypt("3EOyqH52VBUg3pj5Wy0rwQ==");
|
|
|
|
var oUser = db.Queryable<SETB_CMS_Member>().Single(x => x.Account == sUserID && x.Password == sEncryptPwd); |
|
|
|
|
|
|
|
if (oUser == null) |
|
|
|
{ |
|
|
|
sError = @"帳號或密碼不正確"; //帳號或密碼不正確
|
|
|
|
break; |
|
|
|
} |
|
|
|
|
|
|
|
if (oUser.Status != @"1") |
|
|
|
{ |
|
|
|
sError = @"該帳號未啓用"; //該帳號無效
|
|
|
|
break; |
|
|
|
} |
|
|
|
|
|
|
|
var ticket = new OTB_SYS_TicketAuth |
|
|
|
{ |
|
|
|
OrgID = oUser.OrgID, |
|
|
|
UserID = oUser.Account, |
|
|
|
UserName = oUser.FirstName, |
|
|
|
Token = SignExtension.CreateToken(), |
|
|
|
// LoginIp = i_crm.ClientIP,
|
|
|
|
LoginTime = DateTime.Now |
|
|
|
}; |
|
|
|
var iExpireTime = 240; |
|
|
|
var sExpireTime = Common.GetSystemSetting(db, oUser.OrgID, @"ExpireTime"); |
|
|
|
if (!string.IsNullOrEmpty(sExpireTime)) |
|
|
|
{ |
|
|
|
iExpireTime = int.Parse(sExpireTime); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
iExpireTime = int.Parse(Common.GetAppSettings(@"ExpireTime")); |
|
|
|
} |
|
|
|
ticket.ExpireTime = DateTime.Now.AddMinutes(iExpireTime); //30分钟过期
|
|
|
|
ticket.IsVerify = @"Y"; |
|
|
|
var oTicket = db.Queryable<OTB_SYS_TicketAuth>().Single(x => x.OrgID == oUser.OrgID && x.UserID == oUser.Account); |
|
|
|
if (oTicket != null) |
|
|
|
{ |
|
|
|
db.Updateable(ticket).IgnoreColumns(x => x.OutlookId).Where(x => x.NO == oTicket.NO).ExecuteCommand(); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
ticket.CreateTime = DateTime.Now; |
|
|
|
db.Insertable(ticket).ExecuteCommand(); |
|
|
|
} |
|
|
|
//記錄log日誌
|
|
|
|
db.Insertable(new OTB_SYS_LoginLog |
|
|
|
{ |
|
|
|
OrgId = ticket.OrgID, |
|
|
|
UserId = ticket.UserID, |
|
|
|
UserName = ticket.UserName, |
|
|
|
LoginIp = ticket.LoginIp, |
|
|
|
LoginTime = ticket.LoginTime |
|
|
|
}).ExecuteCommand(); |
|
|
|
HttpRuntimeCache.Set(ticket.OrgID + ticket.UserID, ticket, iExpireTime * 60, true); |
|
|
|
HttpContext.Current.Session.Add(@"orgid", ticket.OrgID); |
|
|
|
HttpContext.Current.Session.Add(@"userid", ticket.UserID); |
|
|
|
HttpCookie cookie = new HttpCookie("EURO_COOKIE");//初始化並設置Cookie的名稱
|
|
|
|
DateTime dt = DateTime.Now; |
|
|
|
TimeSpan ts = new TimeSpan(0, 0, 1, 0, 0);//過期時間為1分鐘
|
|
|
|
cookie.Expires = dt.Add(ts);//設置過期時間
|
|
|
|
cookie.Values.Add("orgid", ticket.OrgID); |
|
|
|
cookie.Values.Add("userid", ticket.UserID); |
|
|
|
HttpContext.Current.Response.AppendCookie(cookie); |
|
|
|
var strtoken = string.Format(@"orgid:{0},userid:{1},token:{2}", ticket.OrgID, ticket.UserID, ticket.Token); |
|
|
|
srm = new SuccessResponseMessage(null, null); |
|
|
|
srm.DATA.Add("authtoken", SecurityUtil.Encrypt(strtoken)); |
|
|
|
} while (false); |
|
|
|
} |
|
|
|
catch (Exception ex) |
|
|
|
{ |
|
|
|
sError = Util.GetLastExceptionMsg(ex); |
|
|
|
} |
|
|
|
finally |
|
|
|
{ |
|
|
|
if (null != sError) |
|
|
|
{ |
|
|
|
srm = new SuccessResponseMessage(null, null) |
|
|
|
{ |
|
|
|
STATUSCODE = (int)StatusCodeEnum.Error, |
|
|
|
MSG = sError |
|
|
|
}; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
return HttpResponseExtension.ToJson(JsonConvert.SerializeObject(srm)); |
|
|
|
} |
|
|
|
|
|
|
|
//會員個人訊息查詢
|
|
|
|
public HttpResponseMessage GetMemberInfo(string OrgID, string Account) |
|
|
|
{ |
|
|
|