You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
472 lines
20 KiB
472 lines
20 KiB
|
|
using EasyBL.WebApi;
|
|
using EasyBL.WebApi.Common;
|
|
using EasyBL.WebApi.Message;
|
|
using EasyNet;
|
|
using Entity;
|
|
using Entity.ShowEasyDtos;
|
|
using Entity.Sugar;
|
|
using Entity.ViewModels;
|
|
using Newtonsoft.Json;
|
|
using SqlSugar;
|
|
using SqlSugar.Base;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Net.Http;
|
|
using System.Web;
|
|
|
|
namespace EasyBL.WEBAPP.SYS
|
|
{
|
|
public class TestService : ServiceBase
|
|
{
|
|
|
|
public HttpResponseMessage GetAllCity()
|
|
{
|
|
SuccessResponseMessage srm = null;
|
|
string sError = null;
|
|
var db = SugarBase.GetIntance();
|
|
try
|
|
{
|
|
do
|
|
{
|
|
var saCountry = db.Queryable<SETB_SYS_Country>()
|
|
//搜尋條件
|
|
.Where(x => x.Effective == "Y" && x.DelStatus == "N")
|
|
.ToList();
|
|
//返回token信息
|
|
srm = new SuccessResponseMessage(null, null);
|
|
srm.DATA.Add(BLWording.REL, saCountry);
|
|
//rm.DATA.Add(BLWording.REL, pml);
|
|
|
|
|
|
|
|
|
|
} while (false);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
sError = Util.GetLastExceptionMsg(ex);
|
|
srm = new SuccessResponseMessage(null, null)
|
|
{
|
|
STATUSCODE = (int)StatusCodeEnum.Error,
|
|
MSG = StatusCodeEnum.Error.GetEnumText()
|
|
};
|
|
srm.DATA.Add(BLWording.REL, "");
|
|
}
|
|
return HttpResponseExtension.ToJson(JsonConvert.SerializeObject(srm));
|
|
}
|
|
|
|
public HttpResponseMessage GetAllCityByID(string ID, string Name)
|
|
{
|
|
SuccessResponseMessage srm = null;
|
|
string sError = null;
|
|
var db = SugarBase.GetIntance();
|
|
try
|
|
{
|
|
do
|
|
{
|
|
var saCountry = db.Queryable<SETB_SYS_Country>()
|
|
//搜尋條件
|
|
.Where(x => x.Effective == "Y" && x.DelStatus == "N")
|
|
.Where(x => x.CountryName == Name)
|
|
.ToList();
|
|
//返回token信息
|
|
srm = new SuccessResponseMessage(null, null);
|
|
srm.DATA.Add(BLWording.REL, saCountry);
|
|
//rm.DATA.Add(BLWording.REL, pml);
|
|
|
|
|
|
|
|
|
|
} while (false);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
sError = Util.GetLastExceptionMsg(ex);
|
|
srm = new SuccessResponseMessage(null, null)
|
|
{
|
|
STATUSCODE = (int)StatusCodeEnum.Error,
|
|
MSG = StatusCodeEnum.Error.GetEnumText()
|
|
};
|
|
srm.DATA.Add("token", "");
|
|
//LogAndSendEmail(sError + " Param:" , "AuthorizeService", nameof(GetToken), "GetToken(获取token)", "", "", "");
|
|
}
|
|
return HttpResponseExtension.ToJson(JsonConvert.SerializeObject(srm));
|
|
}
|
|
|
|
public HttpResponseMessage DeleteCity(string ID)
|
|
{
|
|
|
|
SuccessResponseMessage rm = null;
|
|
string sMsg = null;
|
|
try
|
|
{
|
|
rm = SugarBase.ExecTran(db =>
|
|
{
|
|
do
|
|
{
|
|
var iRel = db.Deleteable<SETB_UTL_City>().Where(x => x.CityID == ID).ExecuteCommand();
|
|
rm = new SuccessResponseMessage(null, null);
|
|
rm.DATA.Add(BLWording.REL, iRel);
|
|
} while (false);
|
|
|
|
return rm;
|
|
});
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
sMsg = Util.GetLastExceptionMsg(ex);
|
|
rm = new SuccessResponseMessage(null, null)
|
|
{
|
|
STATUSCODE = (int)StatusCodeEnum.Error,
|
|
MSG = StatusCodeEnum.Error.GetEnumText()
|
|
};
|
|
}
|
|
|
|
return HttpResponseExtension.ToJson(JsonConvert.SerializeObject(rm));
|
|
}
|
|
|
|
public HttpResponseMessage InsertUser(TestUser i_crm)
|
|
{
|
|
string sMsg = null;
|
|
SuccessResponseMessage srm = SugarBase.ExecTran(db =>
|
|
{
|
|
do
|
|
{
|
|
|
|
var iRel = db.Insertable(i_crm).ExecuteCommand();
|
|
srm = new SuccessResponseMessage(null, null);
|
|
srm.DATA.Add(BLWording.REL, iRel);
|
|
} while (false);
|
|
|
|
return srm;
|
|
});
|
|
|
|
return HttpResponseExtension.ToJson(JsonConvert.SerializeObject(srm));
|
|
}
|
|
|
|
public HttpResponseMessage Insert(SETB_CMS_Member i_crm)
|
|
{
|
|
string sMsg = null;
|
|
SuccessResponseMessage srm = SugarBase.ExecTran(db =>
|
|
{
|
|
do
|
|
{
|
|
|
|
var iRel = db.Insertable(i_crm).ExecuteCommand();
|
|
srm = new SuccessResponseMessage(null, null);
|
|
srm.DATA.Add(BLWording.REL, iRel);
|
|
} while (false);
|
|
|
|
return srm;
|
|
});
|
|
|
|
return HttpResponseExtension.ToJson(JsonConvert.SerializeObject(srm));
|
|
}
|
|
|
|
public HttpResponseMessage UpdStatus( string OrgID, string MemberID)
|
|
{
|
|
string sMsg = null;
|
|
|
|
SuccessResponseMessage srm = SugarBase.ExecTran(db =>
|
|
{
|
|
do
|
|
{
|
|
var oUser = db.Queryable<SETB_CMS_Member>().Single(x => x.OrgID == OrgID && x.MemberID == MemberID);
|
|
oUser.Status = "1";//注冊成功
|
|
var iRel = db.Updateable(oUser).ExecuteCommand();
|
|
//注冊成功后默認登錄
|
|
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 == 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);
|
|
|
|
return srm;
|
|
});
|
|
|
|
return HttpResponseExtension.ToJson(JsonConvert.SerializeObject(srm));
|
|
}
|
|
public HttpResponseMessage GetMemberInfo(string OrgID, string Account)
|
|
{
|
|
SuccessResponseMessage srm = null;
|
|
string sError = null;
|
|
var db = SugarBase.GetIntance();
|
|
try
|
|
{
|
|
do
|
|
{
|
|
var saCountry = db.Queryable<SETB_CMS_Member>()
|
|
//搜尋條件
|
|
.Where(x => x.OrgID == OrgID && x.Account == Account)
|
|
|
|
.First();
|
|
//返回user信息
|
|
srm = new SuccessResponseMessage(null, null);
|
|
srm.DATA.Add(BLWording.REL, saCountry);
|
|
|
|
} while (false);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
sError = Util.GetLastExceptionMsg(ex);
|
|
srm = new SuccessResponseMessage(null, null)
|
|
{
|
|
STATUSCODE = (int)StatusCodeEnum.Error,
|
|
MSG = StatusCodeEnum.Error.GetEnumText()
|
|
};
|
|
}
|
|
return HttpResponseExtension.ToJson(JsonConvert.SerializeObject(srm));
|
|
}
|
|
public HttpResponseMessage GetToken(string orgId, string userId, string pasWd)
|
|
{
|
|
SuccessResponseMessage srm = null;
|
|
string sError = null;
|
|
var db = SugarBase.GetIntance();
|
|
try
|
|
{
|
|
do
|
|
{
|
|
//判断参数是否合法
|
|
if (string.IsNullOrEmpty(orgId) || string.IsNullOrEmpty(userId) || string.IsNullOrEmpty(pasWd))
|
|
{
|
|
srm = new SuccessResponseMessage(null, null)
|
|
{
|
|
STATUSCODE = (int)StatusCodeEnum.ParameterError,
|
|
MSG = StatusCodeEnum.ParameterError.GetEnumText()
|
|
};
|
|
srm.DATA.Add("token", "");
|
|
return HttpResponseExtension.ToJson(JsonConvert.SerializeObject(srm));
|
|
}
|
|
|
|
var oTicket = (OTB_SYS_TicketAuth)HttpRuntimeCache.Get(orgId + userId);
|
|
if (oTicket == null || oTicket.ExpireTime < DateTime.Now)
|
|
{
|
|
var sEncryptPwd = SecurityUtil.Encrypt(pasWd);//將輸入之密碼轉換驗證格式
|
|
var oUser = db.Queryable<SETB_CMS_Member>().Single(it => it.OrgID == orgId && it.Account == userId && it.Password == sEncryptPwd);
|
|
|
|
if (oUser != null)
|
|
{
|
|
oTicket = db.Queryable<OTB_SYS_TicketAuth>().Single(it => it.OrgID == orgId && it.UserID == userId);
|
|
|
|
if (oTicket == null)
|
|
{
|
|
oTicket = new OTB_SYS_TicketAuth();
|
|
}
|
|
//oTicket.Token = SignExtension.CreateToken();
|
|
//var iExpireTime = 240;
|
|
//var sExpireTime = Common.GetSystemSetting(db, orgId, "ExpireTime");
|
|
//if (!string.IsNullOrEmpty(sExpireTime))
|
|
//{
|
|
// iExpireTime = int.Parse(sExpireTime);
|
|
//}
|
|
//else
|
|
//{
|
|
// iExpireTime = int.Parse(WebSettingsConfig.ExpireTime);
|
|
//}
|
|
//oTicket.ExpireTime = DateTime.Now.AddMinutes(iExpireTime); //30分钟过期
|
|
//if (oTicket.UserID != null && oTicket.OrgID != null)
|
|
//{
|
|
// var iRel = db.Updateable(oTicket).IgnoreColumns(it => new { it.NO })
|
|
// .Where(it => it.NO == oTicket.NO).ExecuteCommand();
|
|
//}
|
|
//else
|
|
//{
|
|
// oTicket.OrgID = orgId;
|
|
// oTicket.UserID = userId;
|
|
// oTicket.UserName = "";
|
|
// oTicket.LoginIp = "";
|
|
// oTicket.LoginTime = DateTime.Now;
|
|
// oTicket.CreateTime = DateTime.Now;
|
|
// db.Insertable(oTicket).ExecuteCommand();
|
|
//}
|
|
// HttpRuntimeCache.Set(oTicket.OrgID + oTicket.UserID, oTicket, iExpireTime * 60, true);
|
|
}
|
|
else
|
|
{
|
|
oTicket = new OTB_SYS_TicketAuth();
|
|
}
|
|
}
|
|
|
|
//返回token信息
|
|
srm = new SuccessResponseMessage(null, null);
|
|
srm.DATA.Add("token", oTicket.Token);
|
|
} while (false);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
sError = Util.GetLastExceptionMsg(ex);
|
|
srm = new SuccessResponseMessage(null, null)
|
|
{
|
|
STATUSCODE = (int)StatusCodeEnum.Error,
|
|
MSG = StatusCodeEnum.Error.GetEnumText()
|
|
};
|
|
srm.DATA.Add("token", "");
|
|
LogAndSendEmail(sError + " Param:" + orgId + "|" + userId + "|" + pasWd, ex, orgId, userId, "TestService", nameof(GetToken), "GetToken(获取token)", "", "", "");
|
|
}
|
|
return HttpResponseExtension.ToJson(JsonConvert.SerializeObject(srm));
|
|
}
|
|
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));
|
|
}
|
|
|
|
}
|
|
}
|