服务端的TigerApi 框架,基于.NET6 2024 版本
Ben Lin
2024-06-05 dc00dcd986589c2f19160e711b819f1080576344
登录更新
已修改8个文件
219 ■■■■ 文件已修改
Tiger.Api/Controllers/SYS/SYSController.Org.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business/SYS/Biz.SYS_BS_LOGIN.cs 111 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business/SYS/Biz.SYS_ORGANIZATION.cs 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business/SYS/Biz.SYS_ROLE.cs 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.IBusiness/Common/ISystem.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/BAS/BAS_ITEM.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/SYS/RoleListItem.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/SYS/USER.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Api/Controllers/SYS/SYSController.Org.cs
@@ -22,5 +22,17 @@
        {
            return Ok(await DI.Resolve<ISystem>().getOrgTreeList(deptName, status));
        }
        /// <summary>
        /// 获取工厂树形列表
        /// </summary>
        /// <param name="deptName"></param>
        /// <param name="status"></param>
        /// <returns></returns>
        [HttpGet]
        public async Task<IActionResult> getProdTreeList(string deptName)
        {
            return Ok(await DI.Resolve<ISystem>().getProdTreeList(deptName));
        }
    }
}
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
{
@@ -81,63 +82,73 @@
                {
                    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)
                        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
                        {
                            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
                    {
Tiger.Business/SYS/Biz.SYS_ORGANIZATION.cs
@@ -98,9 +98,56 @@
            }
        }
        public async Task<string> getProdTreeList(string prodName)
        {
            var data = new List<OrgItem>();
            MES_FACTORY func = null;
            if (!string.IsNullOrEmpty(prodName))
            {
                func = Biz.Db.Queryable<MES_FACTORY>().Where(x => x.FTY_CODE == prodName).First();
            }
            var items = await Biz.Db.Queryable<MES_FACTORY>()
                .Distinct().ToListAsync();
            //没有查询的时候
            if (func == null)
            {
                int i = 0;
                foreach (var item in items)
                {
                    OrgItem deptItem = new();
                    deptItem.id = item.ID;
                    deptItem.deptCode = item.FTY_CODE;
                    deptItem.deptName = item.FTY_NAME;
                    deptItem.PARENT = "";
                    deptItem.createTime = item.CREATE_TIME.ToString("yyyy-MM-dd mm:dd:ss");
                    deptItem.status = 0;
                    deptItem.remark = item.REMARK;
                    deptItem.orderNo = i++;
                    deptItem.children = new();
                    deptItem.DefaultApi = "";
                    data.Add(deptItem);
                }
            }
            //有查询条件的时候
            else
            {
            }
            //string where = page.sqlcmd;
            //action.Data = isAsync ? await Db.Queryable<T>().Where(where).ToPageAsync(page.pageIndex, page.pageSize) : Db.Queryable<T>().Where(where).ToPage(page.pageIndex, page.pageSize);
            //action.Data.draw = page.draw;
            //action.Message = $"Query {typeof(T).Name} entity page from database success";
            //转换Json时,去除值为null的属性
            var jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };
            var json = JsonConvert.SerializeObject(data, Formatting.Indented, jsonSetting);
            return json;
        }
    }
    /// <summary>
    /// 部门树形列表
    /// </summary>
Tiger.Business/SYS/Biz.SYS_ROLE.cs
@@ -128,6 +128,35 @@
                    }
                }
                //保存角色工厂
                List<SYS_ROLE_PROD> rolePrdList = new List<SYS_ROLE_PROD>();
                if (data.fty.Checked != null)
                {
                    foreach (var item in data.fty.Checked)
                    {
                        SYS_ROLE_PROD roleFty = new()
                        {
                            ROLE_CODE = func.ID,
                            PROD_CODE = item,
                            HALF_CHECK = "N"
                        };
                        rolePrdList.Add(roleFty);
                    }
                }
                if (data.fty.halfChecked != null)
                {
                    foreach (var item in data.fty.halfChecked)
                    {
                        SYS_ROLE_PROD roleFty = new()
                        {
                            ROLE_CODE = func.ID,
                            PROD_CODE = item,
                            HALF_CHECK = "Y"
                        };
                        rolePrdList.Add(roleFty);
                    }
                }
                //保存到数据库
                var db = Business.Biz.Db;
                var dbTran = db.UseTran(() =>
@@ -159,6 +188,14 @@
                        }
                        db.Storageable(roleOrgList, "system").ExecuteCommand();
                    }
                    if (rolePrdList.Count > 0)
                    {
                        if (!string.IsNullOrEmpty(data.ID))
                        {
                            db.Deleteable<SYS_ROLE_PROD>().Where(x => x.ROLE_CODE == data.ID).ExecuteCommand();
                        }
                        db.Storageable(rolePrdList, "system").ExecuteCommand();
                    }
                    if (roleWhList.Count > 0)
                    {
                        if (!string.IsNullOrEmpty(data.ID))
Tiger.IBusiness/Common/ISystem.cs
@@ -40,6 +40,11 @@
        /// <returns></returns>
        public Task<string> getOrgTreeList(string orgName, string status);
        /// <summary>
        /// 获取所有工厂列表
        /// </summary>
        /// <returns></returns>
        public Task<string> getProdTreeList(string orgName);
        /// <summary>
        /// 获取菜单列表
        /// </summary>
        /// <param name="userid"></param>
Tiger.Model.Net/Entitys/BAS/BAS_ITEM.cs
@@ -104,11 +104,6 @@
        /// </summary>
        public string REMARK { get; set; }
        /// <summary>
        /// 预存天数
        /// </summary>
        public decimal DepositDays { get; set; }
        #endregion 公共属性
        #region 虚拟属性
Tiger.Model.Net/Entitys/SYS/RoleListItem.cs
@@ -35,6 +35,7 @@
        public string IS_ACTIVE { get; set; }
        public checkedMenu menu { get; set; }
        public checkedMenu org { get; set; }
        public checkedMenu fty { get; set; }
        public checkedMenu wh { get; set; }
        public bool isUpdate { get; set; }
    }
Tiger.Model.Net/Entitys/SYS/USER.cs
@@ -23,6 +23,7 @@
        public string ORG_CODE { get; set; }
        public string FTY_CODE { get; set; }
        public string PROD_CODE { get; set; }
        public string Token { get; set; }
    }