示例#1
0
        public async Task <List <ApplyProcess> > GetApplyLogByOrderSnAsync(string order_sn)
        {
            string             sql            = g_sqlMaker.Select <t_apply_log>().Where("order_sn", "=", "@order_sn").ToSQL();
            List <t_apply_log> apply_log_list = await g_dbHelper.QueryListAsync <t_apply_log>(sql, new { order_sn });

            IPositionServer     positionServer = new PositionServerImpl(g_dbHelper, g_logServer);
            IUserServer         userServer     = new UserServerImpl(g_dbHelper, g_logServer);
            List <ApplyProcess> apply_list     = new List <ApplyProcess>();

            foreach (var item in apply_log_list)
            {
                t_position position_model = await positionServer.GetPosition(s => new { s.position_name }, item.position_id);

                t_user user_model = await userServer.GetUserById(s => new { s.real_name }, item.user_id);

                apply_list.Add(new ApplyProcess
                {
                    audit_status  = item.apply_status,
                    audit_time    = item.add_time.Value.ToString("yyyy-MM-dd hh:mm"),
                    remark        = item.remark,
                    position_name = position_model.position_name,
                    auditer       = user_model.real_name
                });
            }

            return(apply_list);
        }
示例#2
0
        /// <summary>
        /// @xis 模糊查询入库单
        /// </summary>
        /// <param name="selector">列选择器</param>
        /// <param name="order_sn">订单号</param>
        /// <param name="position_id">职位id</param>
        /// <param name="page_index">页码</param>
        /// <param name="page_size">数量</param>
        /// <returns></returns>
        public async Task <PaginerData <t_stock_in> > GetStockHasByVagueOrderSn(Func <t_stock_in, dynamic> selector, string order_sn, int position_id, int page_index, int page_size = 15)
        {
            ISelect <t_stock_in> select       = g_sqlMaker.Select(selector);
            ISelect <t_stock_in> select_count = g_sqlMaker.Select <t_stock_in>(null);
            IWhere <t_stock_in>  where_data;
            IWhere <t_stock_in>  where_count;

            if (!string.IsNullOrWhiteSpace(order_sn))
            {
                where_data  = select.Where("order_sn", "like", "@order_sn");
                where_count = select_count.Count().Where("order_sn", "like", "@order_sn");
            }
            else
            {
                where_data  = select.Where();
                where_count = select_count.Count().Where();
            }
            string sql_data = where_data
                              .And("position_id", "in", "@position_ids")
                              .And("status", "=", "@status")
                              .OrderByDesc("add_time")
                              .Pager(page_index, page_size)
                              .ToSQL();

            string sql_count = where_count
                               .And("status", "=", "@status")
                               .ToSQL();

            IPositionServer positionServer = new PositionServerImpl(g_dbHelper, g_logServer);
            List <int>      position_ids   = (await positionServer.GetSubordinatePositions(s => new { s.id }, position_id)).Select(s => s.id).ToList();

            position_ids.Insert(0, position_id);
            PaginerData <t_stock_in> paginer_data = new PaginerData <t_stock_in>
            {
                Data       = await g_dbHelper.QueryListAsync <t_stock_in>(sql_data, new { order_sn = $"%{order_sn}%", position_ids = position_ids, status = (int)EnumStatus.Enable, state = (int)EnumState.Normal }),
                page_index = page_index,
                page_size  = page_size,
                total      = await g_dbHelper.QueryAsync <int>(sql_count, new { order_sn = $"%{order_sn}%", status = (int)EnumStatus.Enable, state = (int)EnumState.Normal })
            };

            return(paginer_data);
        }
示例#3
0
        public async Task <List <ApplyProcess> > GetApplyLogByOrderSnAsync(EnumOrderType _ot, string order_sn, int _depart, int _start_position)
        {
            string             sql            = g_sqlMaker.Select <t_apply_log>().Where("order_sn", "=", "@order_sn").ToSQL();
            List <t_apply_log> apply_log_list = await g_dbHelper.QueryListAsync <t_apply_log>(sql, new { order_sn });

            IPositionServer     positionServer  = new PositionServerImpl(g_dbHelper, g_logServer);
            IUserServer         userServer      = new UserServerImpl(g_dbHelper, g_logServer);
            List <ApplyProcess> apply_list      = new List <ApplyProcess>();
            IEnumerable <int>   apply_proc_list = GetApplyList(_ot, _depart, _start_position);

            foreach (var item in apply_proc_list)
            {
                t_apply_log apply_log_model = apply_log_list.FirstOrDefault(f => f.position_id == item);
                t_position  position_model  = await positionServer.GetPosition(s => new { s.position_name }, item);

                if (apply_log_model != null)
                {
                    t_user user_model = await userServer.GetUserById(s => new { s.real_name }, apply_log_model.user_id);

                    apply_list.Add(new ApplyProcess
                    {
                        audit_status      = apply_log_model.apply_status,
                        audit_status_desc = ((EnumAuditStatus)apply_log_model.apply_status).GetDesc(),
                        audit_time        = apply_log_model.add_time.Value.ToString("yyyy-MM-dd hh:mm") ?? "",
                        remark            = apply_log_model.remark,
                        position_name     = position_model.position_name,
                        auditer           = user_model.real_name,
                    });
                }
                else
                {
                    apply_list.Add(new ApplyProcess
                    {
                        position_name = position_model.position_name
                    });
                }
            }

            return(apply_list);
        }
示例#4
0
        /// <summary>
        /// @xis 添加用户
        /// </summary>
        /// <param name="reqmodel"></param>
        /// <returns></returns>
        public async Task <Result> AddUserAsync(reqmodel <RegisterModel> reqmodel)
        {
            const string modelname = "UserServerImpl.AddUserAsync";
            Result       result    = new Result {
                status = ErrorCodeConst.ERROR_403, code = ErrorCodeConst.ERROR_100
            };

            //检查用户名是否存在
            string sql_user_name_exist = g_sqlMaker.Select <t_user>(s => new { s.id })
                                         .Where("user_name", "=", "@user_name")
                                         .And("state", "=", (int)EnumState.Normal)
                                         .ToSQL();

            try
            {
                g_dbHelper.Transaction();
                //检查用户名是否存在
                t_user user = await g_dbHelper.QueryAsync <t_user>(sql_user_name_exist, new { reqmodel.Data.user_name });

                if (user != null && user.id != 0)
                {
                    g_dbHelper.Rollback();
                    g_logServer.Log(modelname, "添加用户失败", new { msg = $"用户名{reqmodel.Data.user_name}已存在" }, EnumLogType.Info);
                    result.code = ErrorCodeConst.ERROR_1005;
                    return(result);
                }

                //职位
                IPositionServer positionServer = new PositionServerImpl(g_dbHelper, g_logServer);

                if (!int.TryParse(reqmodel.Data.position_id, out int position_id))
                {
                    g_dbHelper.Rollback();
                    g_logServer.Log(modelname, "添加用户失败", new { msg = $"parse position_id fail" }, EnumLogType.Info);
                    result.code = ErrorCodeConst.ERROR_1020;
                    return(result);
                }

                if (!await positionServer.ExistPositionAsync(position_id))
                {
                    g_dbHelper.Rollback();
                    g_logServer.Log(modelname, "添加用户失败", new { msg = $"position_id not exist" }, EnumLogType.Info);
                    result.code = ErrorCodeConst.ERROR_1020;
                    return(result);
                }

                user = new t_user
                {
                    user_name   = reqmodel.Data.user_name,
                    real_name   = reqmodel.Data.real_name,
                    position_id = position_id,
                    status      = 1,
                    state       = 1
                };

                string sql_user_insert = g_sqlMaker.Insert <t_user>(i => new { i.user_name, i.real_name, i.position_id, i.state, i.status }).ToSQL();
                user.id = await g_dbHelper.ExecScalarAsync <int>(sql_user_insert, user);

                if (user.id == 0)
                {
                    g_dbHelper.Rollback();
                    g_logServer.Log(modelname, "添加用户失败", new { msg = $"id=0" }, EnumLogType.Info);
                    result.code = ErrorCodeConst.ERROR_1018;
                    return(result);
                }

                //设置密码
                user.salt    = MakeUserSalt();
                user.log_pwd = EncPassword(user.id, reqmodel.Data.log_pwd, user.salt);

                string sql_user_update = g_sqlMaker.Update <t_user>(u => new
                {
                    u.salt,
                    u.log_pwd
                })
                                         .Where("id", "=", "@id")
                                         .And("state", "=", (int)EnumState.Normal)
                                         .ToSQL();
                if (await g_dbHelper.ExecAsync(sql_user_update, user) <= 0)
                {
                    g_dbHelper.Rollback();
                    g_logServer.Log(modelname, "添加用户失败", new { msg = $"update pwd fail" }, EnumLogType.Info);
                    result.code = ErrorCodeConst.ERROR_1018;
                    return(result);
                }

                //权限
                IPrivilegeServer privilegeServer = new PrivilegeServerImpl(g_dbHelper, g_logServer);
                List <t_position_privilege_relation> privilege_list = await privilegeServer.GetPrivilegesByPositionIdAsync(user.id);

                if (!await privilegeServer.SetUserPrivileges(user.id, privilege_list.Select(s => s.privilege_key)))
                {
                    g_dbHelper.Rollback();
                    g_logServer.Log(modelname, "添加用户失败", new { msg = $"insert privilege fail" }, EnumLogType.Info);
                    result.code = ErrorCodeConst.ERROR_1018;
                    return(result);
                }
                g_dbHelper.Commit();

                g_logServer.Log(modelname, "添加用户成功", new { msg = $"用户名:{reqmodel.Data.user_name}" }, EnumLogType.Info);
                result.code   = ErrorCodeConst.ERROR_1019;
                result.status = ErrorCodeConst.ERROR_200;
                return(result);
            }
            catch (Exception ex)
            {
                g_dbHelper.Rollback();
                g_logServer.Log(modelname, "添加用户异常", JsonConvert.SerializeObject(ex), EnumLogType.Error);
                result.code = ErrorCodeConst.ERROR_1018;
            }
            return(result);
        }
示例#5
0
        /// <summary>
        /// @xis 登录 2020-3-25 07:52:00
        /// </summary>
        /// <param name="reqmodel"></param>
        /// <returns></returns>
        public async Task <Result> LoginAsync(reqmodel <LoginModel> reqmodel)
        {
            const string         modelname = "UserServerImpl.LoginAsync";
            Result <LoginResult> result    = new Result <LoginResult> {
                status = ErrorCodeConst.ERROR_403, code = ErrorCodeConst.ERROR_100
            };

            string sql_user_select = g_sqlMaker.Select <t_user>(s => new
            {
                s.id,
                s.user_name,
                s.real_name,
                s.salt,
                s.log_pwd,
                s.position_id
            })
                                     .Where($"user_name", "=", "@user_name")
                                     .And("state", "=", "@state")
                                     .ToSQL();

            t_user user = await g_dbHelper.QueryAsync <t_user>(sql_user_select, new { reqmodel.Data.user_name, state = (int)EnumState.Normal });

            if (user == null)
            {
                g_logServer.Log(modelname, "登录失败", new { msg = $"用户名:{reqmodel.Data.user_name}" }, EnumLogType.Debug);
                result.code = ErrorCodeConst.ERROR_1004;
                return(result);
            }

            string pwd = EncPassword(user.id, reqmodel.Data.password, user.salt);

            if (user.log_pwd != pwd)
            {
                g_logServer.Log(modelname, "登录失败", new { msg = $"用户名:{reqmodel.Data.user_name}" }, EnumLogType.Debug);
                result.code = ErrorCodeConst.ERROR_1004;
                return(result);
            }

            //获取职位信息
            IPositionServer positionServer = new PositionServerImpl(g_dbHelper, g_logServer);
            t_position      position_model = await positionServer.GetPosition(s => new { s.id, s.position_name, s.department_id }, user.position_id);

            if (position_model == null)
            {
                g_logServer.Log(modelname, "登录失败", new { msg = $"用户名:{reqmodel.Data.user_name},获取职位信息失败" }, EnumLogType.Debug);
                result.code = ErrorCodeConst.ERROR_1022;
                return(result);
            }

            //获取部门信息
            IDepartmentServer departmentServer = new DepartmentServerImpl(g_dbHelper, g_logServer);
            t_department      depart_model     = await departmentServer.GetDepartment(s => new { s.id, s.department_name }, position_model.department_id);

            if (depart_model == null)
            {
                g_logServer.Log(modelname, "登录失败", new { msg = $"用户名:{reqmodel.Data.user_name},获取部门信息失败" }, EnumLogType.Debug);
                result.code = ErrorCodeConst.ERROR_1022;
                return(result);
            }

            //token
            string token = Common.AESEncrypt(Common.MakeMd5(Common.MakeGuid()), Common.MakeGuid());

            LoginResult login_info = new LoginResult
            {
                user_id         = user.id,
                user_name       = user.user_name,
                avatar          = user.avatar,
                real_name       = user.real_name,
                department_id   = depart_model.id,
                department_name = depart_model.department_name,
                position_id     = position_model.id,
                position_name   = position_model.position_name,
                token           = token
            };

            bool login_flag = await TokenRenewalAsync(token, login_info);

            if (!login_flag)
            {
                g_logServer.Log(modelname, "登录失败", new { msg = $"用户名:{reqmodel.Data.user_name},存Redis失败" }, EnumLogType.Debug);
                result.code = ErrorCodeConst.ERROR_1022;
                return(result);
            }

            result.data   = login_info;
            result.status = ErrorCodeConst.ERROR_200;
            result.code   = ErrorCodeConst.ERROR_1008;
            return(result);
        }