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); }
/// <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); }
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); }
/// <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); }
/// <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); }