/// <summary> /// 发送忘记密码短信验证码 /// </summary> /// <param name="requestObject"></param> /// <returns></returns> public ResponseObject <string> SendForgetVerificationCode(RequestObject <VerificationInputModel> requestObject) { string result = string.Empty; if (requestObject.PostData == null) { return(ResponseUtil <string> .FailResult("PostData不能都为null")); } List <SingleReceiverMessage> messageList = new List <SingleReceiverMessage>(); string templateId = @"595c42190cf847caadb0822b3685bcb6"; string randCode = RandCodeCreate.GenerateRandomOnlyNumber(6); result = randCode; string[] templateParas = { randCode }; SingleReceiverMessage singleReceiverMessage = new SingleReceiverMessage(requestObject.PostData.Mobile, templateId, templateParas); messageList.Add(singleReceiverMessage); //发送短信 Task.Factory.StartNew(() => { try { HuaWeiShortMessageProvider.SendDiffContentMessages(messageList); } catch { } }); //写 登陆状态到redis var redis = CacheFactory.Instance(CacheType.Redis); string redisKey = string.Format(CacheKeyString.ForgetMsgCode, requestObject.PostData.Mobile); redis.AddOrUpdateKey <string>(redisKey, result, 300); return(ResponseUtil <string> .SuccessResult("发送成功")); }
/// <summary> /// 发邮箱验证码 /// </summary> /// <param name="requestObject"></param> /// <returns></returns> public ResponseObject <VerificationInputEmaiModel, string> SendVerificationEmailCode(RequestObject <VerificationInputEmaiModel> requestObject) { string result = string.Empty; string randCode = RandCodeCreate.GenerateRandomOnlyNumber(6); result = randCode; //预留发邮件的接口 return(ResponseUtil <VerificationInputEmaiModel, string> .SuccessResult(requestObject, result)); }
public SubmitResult Post(RequestObject <VerificationEditModel> requestObject) { List <SingleReceiverMessage> messageList = new List <SingleReceiverMessage>(); string templateId = @"1bb04f68ab6247ac904c2b8269420b32"; string randCode = RandCodeCreate.GenerateRandomOnlyNumber(6); string[] templateParas = { randCode }; SingleReceiverMessage singleReceiverMessage = new SingleReceiverMessage(requestObject.PostData.Mobile, templateId, templateParas); messageList.Add(singleReceiverMessage); //发送短信 SubmitResult result = HuaWeiShortMessageProvider.SendDiffContentMessages(messageList); return(result); }
/// <summary> /// 修改T_Users数据 /// </summary> /// <param name="requestObject">返回响应结果对象,包括响应代码,修改操作结果</param> /// <returns></returns> public async Task <ResponseObject <TUsersModel, bool> > PutAsync(RequestObject <TUsersModel> requestObject) { try { //执行结果 var result = false; //没有修改信息,返回错误信息 if (requestObject.PostDataList == null && requestObject.PostData == null) { return(ResponseUtil <TUsersModel, bool> .FailResult(requestObject, false, "PostData,PostDataList不能都为null")); } //批量更新优先级高于单记录更新 if (requestObject.PostDataList != null && requestObject.PostDataList.Count > 0) { requestObject.PostDataList.ForEach(x => { x.Salt = RandCodeCreate.GenerateRandomNumber(32); x.LoginPwd = EncryptUtil.EnAESBykey(x.LoginPwd, Encoding.UTF8, x.Salt); }); //批量更新 result = await _db.Instance.Updateable(requestObject.PostDataList).ExecuteCommandAsync() > 0; } else { requestObject.PostData.Salt = RandCodeCreate.GenerateRandomNumber(32); requestObject.PostData.LoginPwd = EncryptUtil.EnAESBykey(requestObject.PostData.LoginPwd, Encoding.UTF8, requestObject.PostData.Salt); //单记录更新 result = await _db.Instance.Updateable(requestObject.PostData).ExecuteCommandAsync() > 0; } //返回执行结果 if (result) { return(ResponseUtil <TUsersModel, bool> .SuccessResult(requestObject, true)); } return(ResponseUtil <TUsersModel, bool> .FailResult(requestObject, false, "修改数据失败!")); } catch (Exception ex) { //返回异常结果 return(ResponseUtil <TUsersModel, bool> .FailResult(requestObject, false, ex.Message)); } }
/// <summary> /// /// </summary> /// <param name="aimData">分配到的所有菜单</param> /// <param name="menuButtons">平台管理里面配置的菜单与按钮的对应</param> /// <param name="buttonsModels">平台所有的按钮</param> /// <param name="allbuttonsModels">分配的所有菜单与按钮</param> /// <param name="pid">上级ID</param> /// <returns></returns> private List <MenuViewModel> GetMenuTree(List <TPMMenusDbModel> aimData, Dictionary <int, string> menuButtons, List <TButtonsModel> buttonsModels, Dictionary <int, string> allbuttonsModels, int pid) { List <MenuViewModel> tree = new List <MenuViewModel>(); var children = aimData.Where(p => p.ParentID == pid).ToList(); if (children.Count > 0) { foreach (var item in aimData.Where(p => p.ParentID == pid).OrderBy(p => p.Seq)) { string code = RandCodeCreate.CreateCodeByID(item.Id); MenuViewModel node = new MenuViewModel(); node.path = "/" + code; node.component = item.IsMenu ? item.MenuPath : "Layout"; node.meta = new MenuNodeViewModel() { icon = item.MenuIcon, title = item.MenuName }; node.alwaysShow = item.IsMenu ? false : true; node.name = node.component.Replace("/", "").Replace(".", ""); if (menuButtons.Keys.Any(p => p == item.Id)) { if (!string.IsNullOrEmpty(menuButtons[item.Id])) { List <int> idsALL = allbuttonsModels[item.Id].Split(",").Select(p => Convert.ToInt32(p)).ToList(); List <int> ids = menuButtons[item.Id].Split(",").Select(p => Convert.ToInt32(p)).ToList(); //交集 var newids = ids.Intersect(idsALL).ToList(); node.buttons = buttonsModels.Where(p => newids.Contains(p.Id)).ToList(); } } node.children = GetMenuTree(aimData, menuButtons, buttonsModels, allbuttonsModels, item.Id); tree.Add(node); } } return(tree); }
/// <summary> /// 个人设置修改密码 /// </summary> /// <param name="requestObject"></param> /// <param name="UserID"></param> /// <returns></returns> public async Task <ResponseObject <TSMUserAccountPassWord, bool> > ModifyPassWordAsync(RequestObject <TSMUserAccountPassWord> requestObject, int UserID) { try { if (requestObject.PostData == null) { return(ResponseUtil <TSMUserAccountPassWord, bool> .FailResult(requestObject, false, "PostData不能为null")); } var entity = requestObject.PostData; var enditModel = await _db.Instance.Queryable <TSMUserAccountDbModel>().Where(p => p.ID == UserID).FirstAsync(); string Passwd = EncryptUtil.DeAESbyKey(enditModel.Passwd, enditModel.Salt); if (!string.Equals(Passwd, entity.OldPasswd)) { return(ResponseUtil <TSMUserAccountPassWord, bool> .FailResult(requestObject, false, "原密码不正确")); } else { enditModel.Salt = RandCodeCreate.GenerateRandomNumber(32); enditModel.Passwd = EncryptUtil.EnAESBykey(entity.Passwd, enditModel.Salt); } _db.Instance.Updateable <TSMUserAccountDbModel>(enditModel).UpdateColumns(p => new { p.Salt, p.Passwd }).ExecuteCommand(); return(ResponseUtil <TSMUserAccountPassWord, bool> .SuccessResult(requestObject, true)); } catch (Exception ex) { //返回查询异常结果 return(ResponseUtil <TSMUserAccountPassWord, bool> .FailResult(requestObject, false, ex.Message)); } }
/// <summary> /// 修改密码 /// </summary> /// <param name="requestObject">返回响应结果对象,包括响应代码,修改操作结果</param> /// <returns></returns> public async Task <ResponseObject <TSMUserResetPassWordModel, bool> > ResetPassWd(RequestObject <TSMUserResetPassWordModel> requestObject) { try { //执行结果 var result = false; //没有修改信息,返回错误信息 if (requestObject.PostDataList == null && requestObject.PostData == null) { return(ResponseUtil <TSMUserResetPassWordModel, bool> .FailResult(requestObject, false, "PostData不能都为null")); } //批量更新优先级高于单记录更新 if (requestObject.PostDataList != null && requestObject.PostDataList.Count > 0) { } else { if (string.IsNullOrWhiteSpace(requestObject.PostData.EmailAccount) && string.IsNullOrWhiteSpace(requestObject.PostData.TelAccount)) { return(ResponseUtil <TSMUserResetPassWordModel, bool> .FailResult(requestObject, false, "邮箱和手机号必须填写一个")); } TSMUserAccountDbModel tempDB = null; if (!string.IsNullOrWhiteSpace(requestObject.PostData.TelAccount)) { tempDB = _db.Instance.Queryable <TSMUserAccountDbModel>().Where(p => p.TelAccount == requestObject.PostData.TelAccount).First(); } else { if (!string.IsNullOrWhiteSpace(requestObject.PostData.EmailAccount)) { tempDB = _db.Instance.Queryable <TSMUserAccountDbModel>().Where(p => p.EmailAccount == requestObject.PostData.EmailAccount).First(); } } if (tempDB != null) { tempDB.Salt = RandCodeCreate.GenerateRandomNumber(32); tempDB.Passwd = EncryptUtil.EnAESBykey(requestObject.PostData.Passwd, tempDB.Salt); if (string.IsNullOrWhiteSpace(tempDB.EmailAccount)) { tempDB.EmailAccount = null; } if (string.IsNullOrWhiteSpace(tempDB.TelAccount)) { tempDB.TelAccount = null; } result = await _db.Instance.Updateable(tempDB).ExecuteCommandAsync() > 0; } else { return(ResponseUtil <TSMUserResetPassWordModel, bool> .FailResult(requestObject, false, "用户不存在,不能修改")); } } //返回执行结果 if (result) { return(ResponseUtil <TSMUserResetPassWordModel, bool> .SuccessResult(requestObject, true)); } return(ResponseUtil <TSMUserResetPassWordModel, bool> .FailResult(requestObject, false, "修改数据失败!")); } catch (Exception ex) { //返回异常结果 return(ResponseUtil <TSMUserResetPassWordModel, bool> .FailResult(requestObject, false, ex.Message)); } }
/// <summary> /// 修改T_SM_UserAccount数据 /// </summary> /// <param name="requestObject">返回响应结果对象,包括响应代码,修改操作结果</param> /// <returns></returns> public async Task <ResponseObject <TSMUserAccountEditModel, bool> > PutAsync(RequestObject <TSMUserAccountEditModel> requestObject) { try { //执行结果 var result = false; //没有修改信息,返回错误信息 if (requestObject.PostDataList == null && requestObject.PostData == null) { return(ResponseUtil <TSMUserAccountEditModel, bool> .FailResult(requestObject, false, "PostData,PostDataList不能都为null")); } //批量更新优先级高于单记录更新 if (requestObject.PostDataList != null && requestObject.PostDataList.Count > 0) { if (requestObject.PostDataList.Any(p => string.IsNullOrWhiteSpace(p.TelAccount) && string.IsNullOrWhiteSpace(p.EmailAccount))) { return(ResponseUtil <TSMUserAccountEditModel, bool> .FailResult(requestObject, false, "邮箱和手机号必须填写一个")); } //批量更新 var editList = _mapper.Map <List <TSMUserAccountEditModel>, List <TSMUserAccountDbModel> >(requestObject.PostDataList); List <TSMUserAccountDbModel> editDBLiat = new List <TSMUserAccountDbModel>(); editList.ForEach(x => { TSMUserAccountDbModel tempDB = null; if (!string.IsNullOrWhiteSpace(x.TelAccount)) { tempDB = _db.Instance.Queryable <TSMUserAccountDbModel>().Where(p => p.TelAccount == x.TelAccount).First(); } else { if (!string.IsNullOrWhiteSpace(x.EmailAccount)) { tempDB = _db.Instance.Queryable <TSMUserAccountDbModel>().Where(p => p.EmailAccount == x.EmailAccount).First(); } } if (tempDB != null) { tempDB.Salt = RandCodeCreate.GenerateRandomNumber(32); tempDB.Passwd = EncryptUtil.EnAESBykey(x.Passwd, tempDB.Salt); if (string.IsNullOrWhiteSpace(tempDB.EmailAccount)) { tempDB.EmailAccount = null; } if (string.IsNullOrWhiteSpace(tempDB.TelAccount)) { tempDB.TelAccount = null; } editDBLiat.Add(tempDB); } }); if (editDBLiat.Count() > 0) { result = await _db.Instance.Updateable(editDBLiat).UpdateColumns(p => new { p.Salt, p.Passwd }).ExecuteCommandAsync() > 0; } else { return(ResponseUtil <TSMUserAccountEditModel, bool> .FailResult(requestObject, false, "用户不存在,不能修改")); } } else { if (string.IsNullOrWhiteSpace(requestObject.PostData.EmailAccount) && string.IsNullOrWhiteSpace(requestObject.PostData.TelAccount)) { return(ResponseUtil <TSMUserAccountEditModel, bool> .FailResult(requestObject, false, "邮箱和手机号必须填写一个")); } //单记录更新 var editModel = _mapper.Map <TSMUserAccountDbModel>(requestObject.PostData); TSMUserAccountDbModel tempDB = null; if (!string.IsNullOrWhiteSpace(editModel.TelAccount)) { tempDB = _db.Instance.Queryable <TSMUserAccountDbModel>().Where(p => p.TelAccount == editModel.TelAccount).First(); } else { if (!string.IsNullOrWhiteSpace(editModel.EmailAccount)) { tempDB = _db.Instance.Queryable <TSMUserAccountDbModel>().Where(p => p.EmailAccount == editModel.EmailAccount).First(); } } if (tempDB != null) { tempDB.Salt = RandCodeCreate.GenerateRandomNumber(32); tempDB.Passwd = EncryptUtil.EnAESBykey(editModel.Passwd, tempDB.Salt); if (string.IsNullOrWhiteSpace(tempDB.EmailAccount)) { tempDB.EmailAccount = null; } if (string.IsNullOrWhiteSpace(tempDB.TelAccount)) { tempDB.TelAccount = null; } result = await _db.Instance.Updateable(tempDB).UpdateColumns(p => new { p.Salt, p.Passwd }).ExecuteCommandAsync() > 0; } else { return(ResponseUtil <TSMUserAccountEditModel, bool> .FailResult(requestObject, false, "用户不存在,不能修改")); } } //返回执行结果 if (result) { return(ResponseUtil <TSMUserAccountEditModel, bool> .SuccessResult(requestObject, true)); } return(ResponseUtil <TSMUserAccountEditModel, bool> .FailResult(requestObject, false, "修改数据失败!")); } catch (Exception ex) { //返回异常结果 return(ResponseUtil <TSMUserAccountEditModel, bool> .FailResult(requestObject, false, ex.Message)); } }
/// <summary> /// 新增T_SM_UserAccount数据 /// </summary> /// <param name="requestObject">返回响应结果对象,包括响应代码,新增操作结果</param> /// <returns></returns> public async Task <ResponseObject <string> > PostAsync(RequestPost <TSMUserAccountAddModel> requestObject) { var currDb = _db.Instance; try { //如果没有新增数据,返回错误信息 if (requestObject.PostData == null && requestObject.PostDataList == null) { return(ResponseUtil <string> .FailResult(null, "PostData,PostDataList不能都为null")); } var result = false; string token = string.Empty; currDb.BeginTran(); //批量新增的优先级高于单条数据新增,且只会执行一个新增操作 if (requestObject.PostDataList != null && requestObject.PostDataList.Count > 0) { } else { //注册账号信息 var addModel = _mapper.Map <TSMUserAccountDbModel>(requestObject.PostData); addModel.Salt = RandCodeCreate.GenerateRandomNumber(32); addModel.Passwd = EncryptUtil.EnAESBykey(addModel.Passwd, addModel.Salt); addModel.Status = 1; if (string.IsNullOrWhiteSpace(addModel.EmailAccount)) { addModel.EmailAccount = null; } if (string.IsNullOrWhiteSpace(addModel.TelAccount)) { addModel.TelAccount = null; } //生成用户详情记录 TSMUserInfoDbModel tSMUserInfoDbModel = new TSMUserInfoDbModel(); int cid = await _db.Instance.Insertable(tSMUserInfoDbModel).ExecuteReturnIdentityAsync(); addModel.UserInfoId = cid; int id = _db.Instance.Insertable(addModel).ExecuteReturnIdentity(); var palyloads = new Dictionary <string, object> { { "UserID", id }, { "ID", Guid.NewGuid().ToString() }, { "CompanyID", 0 }, { "UserName", addModel.AccountName } }; token = TokenManager.CreateTokenByHandler(palyloads, 60 * 24); currDb.CommitTran(); } //返回执行结果 return(ResponseUtil <string> .SuccessResult(token)); } catch (Exception ex) { //返回异常结果 currDb.RollbackTran(); return(ResponseUtil <string> .FailResult(null, ex.Message)); } }
/// <summary> /// 修改 /// </summary> /// <param name="requestObject"></param> /// <returns></returns> public async Task <ResponseObject <TSMUserAccountEditAllModel, bool> > PutAsync(RequestObject <TSMUserAccountEditAllModel> requestObject) { var currDb = _db.Instance;//事务需要使用同一个 SqlSugarClient对象实例 try { //没有新增数据,返回错误信息 if (requestObject.PostData == null) { return(ResponseUtil <TSMUserAccountEditAllModel, bool> .FailResult(requestObject, false, "PostData不能为null")); } //开启事务 currDb.BeginTran(); TSMUserAccountDbModel dbMain = ExpressionGenericMapper <TSMUserAccountEditAllModel, TSMUserAccountDbModel> .Trans(requestObject.PostData); dbMain.Salt = RandCodeCreate.GenerateRandomNumber(32); dbMain.Passwd = EncryptUtil.EnAESBykey(dbMain.Passwd, dbMain.Salt); if (string.IsNullOrWhiteSpace(dbMain.EmailAccount)) { dbMain.EmailAccount = null; } if (string.IsNullOrWhiteSpace(dbMain.TelAccount)) { dbMain.TelAccount = null; } TSMUserInfoDbModel dbDeatail = ExpressionGenericMapper <TSMUserAccountEditAllModel, TSMUserInfoDbModel> .Trans(requestObject.PostData); dbDeatail.ID = requestObject.PostData.CId; await currDb.Updateable(dbMain).IgnoreColumns(p => new { p.CreateTime, p.CompanyId, p.UserInfoId }).ExecuteCommandAsync(); await currDb.Updateable(dbDeatail).ExecuteCommandAsync(); currDb.Deleteable <TSMRoleUserRelationDbModel>().Where(p => p.UserId == dbMain.ID).ExecuteCommand(); if (requestObject.PostData.RoleId != null && requestObject.PostData.RoleId > 0) { TSMRoleUserRelationDbModel itemEntity = new TSMRoleUserRelationDbModel(); itemEntity.RoleId = requestObject.PostData.RoleId.Value; itemEntity.UserId = dbMain.ID; currDb.Insertable <TSMRoleUserRelationDbModel>(itemEntity).ExecuteCommand(); } currDb.Deleteable <TSMDeptUserRelationDbModel>().Where(p => p.UserAccountId == dbMain.ID).ExecuteCommand(); if (requestObject.PostData.DeptId != null && requestObject.PostData.DeptId > 0) { TSMDeptUserRelationDbModel itemEntity = new TSMDeptUserRelationDbModel(); itemEntity.DeptId = requestObject.PostData.DeptId.Value; itemEntity.UserAccountId = dbMain.ID; currDb.Insertable <TSMDeptUserRelationDbModel>(itemEntity).ExecuteCommand(); } //提交事务 currDb.CommitTran(); //返回执行结果 return(ResponseUtil <TSMUserAccountEditAllModel, bool> .SuccessResult(requestObject, true)); } catch (Exception ex) { //回滚事务 currDb.RollbackTran(); //返回异常结果 return(ResponseUtil <TSMUserAccountEditAllModel, bool> .FailResult(requestObject, false, ex.Message)); } }
/// <summary> /// 新增 /// </summary> /// <param name="requestObject"></param> /// <param name="UserID">操作人ID</param> /// <returns></returns> public async Task <ResponseObject <TSMUserAccountAddAllModel, bool> > PostAsync(RequestObject <TSMUserAccountAddAllModel> requestObject, int UserID) { var currDb = _db.Instance;//事务需要使用同一个 SqlSugarClient对象实例 try { //没有新增数据,返回错误信息 if (requestObject.PostData == null) { return(ResponseUtil <TSMUserAccountAddAllModel, bool> .FailResult(requestObject, false, "PostData不能为null")); } //开启事务 currDb.BeginTran(); var user = _db.Instance.Queryable <TSMUserAccountDbModel, TSMCompanyDbModel>( (t, t1) => new object[] { JoinType.Left, t.CompanyId == t1.ID, }).Where((t, t1) => t.ID == UserID).Select((t, t1) => new { CompanyId = t.CompanyId, Name = t1.CompanyName }).First(); TSMUserAccountDbModel dbMain = ExpressionGenericMapper <TSMUserAccountAddAllModel, TSMUserAccountDbModel> .Trans(requestObject.PostData); //处理密码 dbMain.Salt = RandCodeCreate.GenerateRandomNumber(32); dbMain.Passwd = EncryptUtil.EnAESBykey(dbMain.Passwd, dbMain.Salt); dbMain.CreateTime = DateTime.Now; dbMain.CompanyId = user.CompanyId.Value; if (string.IsNullOrWhiteSpace(dbMain.EmailAccount)) { dbMain.EmailAccount = null; } if (string.IsNullOrWhiteSpace(dbMain.TelAccount)) { dbMain.TelAccount = null; } TSMUserInfoDbModel dbDeatail = ExpressionGenericMapper <TSMUserAccountAddAllModel, TSMUserInfoDbModel> .Trans(requestObject.PostData); //插入主表数据 var cId = await currDb.Insertable(dbDeatail).ExecuteReturnIdentityAsync(); dbMain.UserInfoId = cId; //插入从表数据 var mId = await currDb.Insertable(dbMain).ExecuteReturnIdentityAsync(); if (requestObject.PostData.RoleId != null && requestObject.PostData.RoleId > 0) { TSMRoleUserRelationDbModel itemEntity = new TSMRoleUserRelationDbModel(); itemEntity.RoleId = requestObject.PostData.RoleId.Value; itemEntity.UserId = mId; currDb.Insertable <TSMRoleUserRelationDbModel>(itemEntity).ExecuteCommand(); } if (requestObject.PostData.DeptId != null && requestObject.PostData.DeptId > 0) { TSMDeptUserRelationDbModel itemEntity = new TSMDeptUserRelationDbModel(); itemEntity.DeptId = requestObject.PostData.DeptId.Value; itemEntity.UserAccountId = mId; currDb.Insertable <TSMDeptUserRelationDbModel>(itemEntity).ExecuteCommand(); } //提交事务 currDb.CommitTran(); //返回执行结果 return(ResponseUtil <TSMUserAccountAddAllModel, bool> .SuccessResult(requestObject, true)); } catch (Exception ex) { //回滚事务 currDb.RollbackTran(); //返回异常结果 return(ResponseUtil <TSMUserAccountAddAllModel, bool> .FailResult(requestObject, false, ex.Message)); } }
public string GerRandom() { return(RandCodeCreate.GenerateRandomNumber(6)); }