服务端的TigerApi 框架,基于.NET6 2024 版本
Rodney Chen
2024-08-29 3cab868262d5e84cd1000851c07cce43a459f3ea
Tiger.Business/SYS/Biz.SYS_BS_LOGIN.cs
@@ -7,6 +7,7 @@
using System.Threading.Tasks;
using Rhea.Common;
using Tiger.IBusiness;
using Dm.filter.log;
namespace Tiger.Business
{
@@ -18,7 +19,7 @@
        /// <param name="token"></param>
        /// <param name="Async"></param>
        /// <returns></returns>
        public async Task<SYS_BS_LOGIN> GetLoginInfo(string token, bool Async = true)
        public async Task<SYS_BS_LOGIN> GetBSLoginInfo(string token, bool Async = true)
        {
            SYS_BS_LOGIN query = null;
            try
@@ -69,7 +70,7 @@
        /// <param name="action"></param>
        /// <param name="Async"></param>
        /// <returns></returns>
        public async Task<ApiAction<SYS_BS_LOGIN>> Login(ApiAction<UserInfo> action, bool Async = true)
        public async Task<ApiAction<SYS_BS_LOGIN>> BSLogin(ApiAction<UserInfo> action, bool Async = true)
        {
            var res = new ApiAction<SYS_BS_LOGIN>();
            try
@@ -81,63 +82,72 @@
                {
                    if (user.STATUS_CODE == "ENABLE")
                    {
                        var org_code=Db.Queryable<V_USER_ORG>().Where(q=>q.USER_ID == userInfo.USER_CODE && q.ORG_CODE==userInfo.ORG_CODE).First();
                        if (org_code !=null)
                        MES_FACTORY _factory = Db.Queryable<MES_FACTORY>()
                                                .WhereIF(!userInfo.FTY_CODE.IsNullOrEmpty(),x => x.FTY_CODE == userInfo.FTY_CODE)
                                                .First();
                        SYS_BS_LOGIN logininfo = new SYS_BS_LOGIN
                        {
                            var fty = userInfo.FTY_CODE ?? "QXXC";
                            MES_FACTORY _factory = Db.Queryable<MES_FACTORY>()
                                                    .Where(x => x.FTY_CODE == fty)
                                                    .ToList()[0];
                            SYS_BS_LOGIN logininfo = new SYS_BS_LOGIN
                            {
                                USER_ID = user.USER_ID,
                                USER_NAME = user.USER_NAME,
                                LAST_ACCESS = DateTime.Now,
                                CREATE_TIME = DateTime.Now,
                                STATUS_CODE = user.STATUS_CODE,
                                CLIENT_IP = userInfo?.ip,
                                FTY_CODE = _factory.FTY_CODE,
                                FTY_NAME = _factory.FTY_NAME,
                                TOKEN = userInfo.Token ?? Guid.NewGuid().ToString("N"),
                                ID = Guid.NewGuid().ToString("N"),
                                ACCOUNT_TYPE = 0,
                                ORG_CODE = userInfo.ORG_CODE
                            };
                            LOG_BS_LOGIN loginlog = new()
                            {
                                //FACTORY = _factory.FTY_CODE,
                                USER_ID = user.USER_ID,
                                LOGIN_FROM = $"{userInfo?.ad_info?.nation}->{userInfo?.ad_info?.province}->{userInfo?.ad_info?.city};IP:{userInfo?.ip}",
                                LOGIN_TIME = DateTime.Now
                            };
                            //保存登录日志
                            var db = Business.Biz.Db;
                            var dbTran = db.UseTran(() =>
                            {
                                db.Insertable(loginlog).ExecuteCommand();
                                if (logininfo != null)
                                {
                                    var deres = db.Storageable(logininfo).ExecuteCommand();
                                }
                                res.Data = logininfo;
                            });
                            if (!dbTran.IsSuccess)
                            {
                                res.IsSuccessed = false;
                                res.Data = null;
                                res.LocaleMsg = L("SYS.Login.dbTranError");
                            }
                            res.Data = logininfo;
                            USER_ID = user.USER_ID,
                            USER_NAME = user.USER_NAME,
                            LAST_ACCESS = DateTime.Now,
                            CREATE_TIME = DateTime.Now,
                            STATUS_CODE = user.STATUS_CODE,
                            CLIENT_IP = userInfo?.ip,
                            FTY_CODE = _factory?.FTY_CODE,
                            FTY_NAME = _factory?.FTY_NAME,
                            TOKEN = userInfo.Token ?? Guid.NewGuid().ToString("N"),
                            ID = Guid.NewGuid().ToString("N"),
                            ACCOUNT_TYPE = 0,
                            ORG_CODE = userInfo.ORG_CODE
                        };
                        var org_code=Db.Queryable<V_USER_ORG>().Where(q=>q.USER_ID == userInfo.USER_CODE && q.ORG_CODE==userInfo.ORG_CODE).First();
                        if (org_code != null)
                        {
                            logininfo.ORG_CODE = org_code.ORG_CODE;
                        }
                        else
                        {
                            var prod_code = Db.Queryable<V_USER_PROD>().Where(q => q.USER_ID == userInfo.USER_CODE && q.PROD_CODE == userInfo.PROD_CODE).First();
                            if (prod_code != null)
                            {
                                logininfo.FTY_CODE = prod_code.PROD_CODE;
                                logininfo.FTY_NAME = prod_code.PROD_NAME;
                            }
                            else
                            {
                                res.IsSuccessed = false;
                                res.Data = null;
                                res.LocaleMsg = L("SYS.Login.isNotOrgCode");//用户没有该据点的权限 }
                            }
                        }
                        LOG_BS_LOGIN loginlog = new()
                        {
                            //FACTORY = _factory.FTY_CODE,
                            USER_ID = user.USER_ID,
                            LOGIN_FROM = $"{userInfo?.ad_info?.nation}->{userInfo?.ad_info?.province}->{userInfo?.ad_info?.city};IP:{userInfo?.ip}",
                            LOGIN_TIME = DateTime.Now
                        };
                        //保存登录日志
                        var db = Business.Biz.Db;
                        var dbTran = db.UseTran(() =>
                        {
                            db.Insertable(loginlog).ExecuteCommand();
                            if (logininfo != null)
                            {
                                var deres = db.Storageable(logininfo).ExecuteCommand();
                            }
                            res.Data = logininfo;
                        });
                        if (!dbTran.IsSuccess)
                        {
                            res.IsSuccessed = false;
                            res.Data = null;
                            res.LocaleMsg = L("SYS.Login.isNotOrgCode");//用户没有该据点的权限
                            res.LocaleMsg = L("SYS.Login.dbTranError");
                        }
                        res.Data = logininfo;
                    }
                    else
                    {
@@ -159,13 +169,14 @@
            }
            return await Task.FromResult(res);
        }
        /// <summary>
        /// 切换据点
        /// </summary>
        /// <param name="action"></param>
        /// <param name="Async"></param>
        /// <returns></returns>
        public async Task<ApiAction> SwitchOrgCode(string token,string org)
        public async Task<ApiAction> BSSwitchOrgCode(string token,string org, string fty)
        {
            var action = new ApiAction();
            try
@@ -174,6 +185,7 @@
                var  query = Db.Queryable<SYS_BS_LOGIN>().Where(x => x.TOKEN == token).First();
                query.ORG_CODE = org;
                query.FTY_CODE = fty;
                var db = Business.Biz.Db;
                var dbTran = db.UseTran(() =>
                {
@@ -198,7 +210,7 @@
        /// </summary>
        /// <param name="token"></param>
        /// <returns></returns>
        public async Task<ApiAction> Logout(string token)
        public async Task<ApiAction> BSLogout(string token)
        {
            var res = new ApiAction();
            try