/// <summary> /// 申请一个参数标识号 /// </summary> /// <param name="paramID">输出参数,申请到的参数标识号</param> /// <returns>IRAP系统通用错误对象,如果其中的ErrCode:0-执行成功;非0执行失败</returns> private IRAPError RequestParameterID(out int paramID) { #region 获取 ParameterID string sequenceName = "NextParameterID"; SequenceValueDTO rtnSequence = IRAPSequence.GetSequence(sequenceName, 1); if (rtnSequence.ErrCode != 0) { string msg = rtnSequence.ErrText; Log.InstanceID.WriteMsg <IRAPParameterSet>(Enums.LogType.ERROR, msg); paramID = 0; return (new IRAPError() { ErrCode = 9999, ErrText = rtnSequence.ErrText, }); } else { paramID = (int)rtnSequence.SequenceValue; Log.InstanceID.WriteMsg <IRAPParameterSet>( Enums.LogType.DEBUG, $"获得ParameterID={paramID}"); return (new IRAPError() { ErrCode = 0, ErrText = "申请参数标识成功", }); } #endregion }
/// <summary> /// 申请事实编号,如有错误会抛出异常,请捕捉异常 /// </summary> /// <param name="cnt">申请数量</param> /// <returns>事实编号</returns> public long GetFactNo(int cnt = 1) { var resDTO = IRAPSequence.GetSequence("NextFactNo", cnt); if (resDTO.ErrCode != 0) { throw new Exception(resDTO.ErrText); } return(resDTO.SequenceValue); }
/// <summary> /// 申请序列号 /// </summary> /// <param name="seqName">序列名称</param> /// <param name="cnt">申请数量</param> /// <returns></returns> public long GetSequenceValue(string seqName, int cnt = 1) { SequenceValueDTO error = IRAPSequence.GetSequence(seqName, cnt); if (error.ErrCode != 0) { throw new Exception($"申请序列号异常:{error.ErrText}"); } return(error.SequenceValue); }
/// <summary> /// 申请交易号 /// </summary> /// <param name="cnt">申请数量</param> /// <param name="remark">交易备注</param> /// <param name="opNodes">操作类型清单,多个用逗号隔开</param> /// <param name="voucherNo">票据号</param> /// <returns></returns> public long GetTransactNo(int cnt = 1, string remark = "", string opNodes = "", string voucherNo = "") { try { if (opNodes == "") { opNodes = (-_opID).ToString(); } LoginEntity log = new IRAPLog().GetLogIDByToken(access_token); if (log == null) { throw new Exception("申请交易号时出错,令牌无效!"); } long transactNo = IRAPSequence.GetTransactNo(); TransactEntity e = new TransactEntity() { AgencyLeaf1 = log.AgencyLeaf, IPAddress = log.IPAddress, Operator = log.UserCode, OperTime = DateTime.Now, OpNodes = _opID.ToString(), PartitioningKey = TransPK, StationID = log.StationID, Status = 1, Remark = remark, TransactNo = transactNo, VoucherNo = voucherNo }; _db.Set <TransactEntity>().Add(e); _db.SaveChanges(); return(transactNo); } catch (Exception err) { throw err; } }
/// <summary> /// 用户登录 /// </summary> /// <param name="clientID">渠道标识</param> /// <param name="plainPWD">密码(明文)</param> /// <param name="veriCode">验证码</param> /// <param name="stationID">站点标识,如果是BS系统调用传CommunityID</param> /// <param name="ipAddress">IP地址</param> /// <param name="agencyLeaf">机构标识</param> /// <param name="roleLeaf">角色标识</param> /// <returns>返回信息DTO类</returns> public BackLoginInfo Login(string clientID, string plainPWD, string veriCode, string stationID, string ipAddress, int agencyLeaf, int roleLeaf) { BackLoginInfo backRes = new BackLoginInfo { UserName = user.UserName, LanguageID = user.LanguageID, NickName = user.UserEnglishName, MPhoneNo = user.MPhoneNo, OPhoneNo = user.OPhoneNo, HPhoneNo = user.HPhoneNo }; try { //验证密码 IRAPError error = VerifyPWD(plainPWD); if (error.ErrCode != 0) { backRes.ErrCode = error.ErrCode; backRes.ErrText = error.ErrText; return(backRes); } //判断信息站点是否注册 if (!Regex.IsMatch(stationID, @"^\d+$")) { IRAPStation station = new IRAPStation(); StationEntity r = station.GetStation(stationID); if (r == null) { backRes.ErrCode = 9999; backRes.ErrText = $"站点{stationID}不存在!"; return(backRes); } backRes.HostName = r.HostName; } //短信验证码是否有效 //申请登录标识 long sysLogID = IRAPSequence.GetSysLogID(); //登录 Repository <LoginEntity> loginRep = _unitOfWork.Repository <LoginEntity>(); LoginEntity loginEntity = new LoginEntity(); loginEntity.PartitioningKey = PK; loginEntity.ClientID = clientID; loginEntity.SysLogID = (int)sysLogID; loginEntity.UserCode = _userCode; loginEntity.AgencyLeaf = agencyLeaf; loginEntity.RoleLeaf = roleLeaf; loginEntity.Access_Token = Guid.NewGuid().ToString(); loginEntity.StationID = stationID; loginEntity.MPhoneNo = user.MPhoneNo; loginEntity.Status = 1; loginEntity.LanguageID = user.LanguageID; loginEntity.IPAddress = ipAddress; loginEntity.LoginMode = 1; loginRep.Insert(loginEntity); _unitOfWork.Commit(); backRes.SysLogID = sysLogID; backRes.access_token = loginEntity.Access_Token; backRes.AgencyName = _unitOfWork.Repository <ETreeSysLeaf>().Table.FirstOrDefault(r => r.LeafID == agencyLeaf).NodeName; backRes.ErrCode = 0; backRes.ErrText = $"登录成功:{sysLogID}"; return(backRes); } catch (Exception err) { backRes.ErrCode = 9999; backRes.ErrText = $"登录遇到异常:{err.Message}"; return(backRes); } }
/// <summary> /// 新增一个名称,并返回名称标识 /// </summary> /// <param name="communityID">社区标识</param> /// <param name="nameDescription">名称</param> /// <param name="languageID">语言标识 (默认: 30 简体中文) </param> /// <param name="nameID">名称标识(返回)</param> /// <returns>名称标识</returns> public IRAPError Add( int communityID, string nameDescription, int languageID, out int nameID) { nameID = FindNameID( communityID, nameDescription, languageID); if (nameID != 0) { return (new IRAPError() { ErrCode = 0, ErrText = "名称已存在,直接返回该名称的标识", }); } else { Repository <BizNameSpaceEntity> names = null; try { names = GetRepository(); } catch (Exception error) { string msg = $"获取[BizNameSpaceEntity]资源库的时候发生错误: {error.Message}"; Console.WriteLine(msg); return (new IRAPError() { ErrCode = 9999, ErrText = msg, }); } #region 获取 nameID string sequenceName = "NextNameID"; SequenceValueDTO rtnSequence = IRAPSequence.GetSequence(sequenceName, 1); if (rtnSequence.ErrCode != 0) { string msg = rtnSequence.ErrText; Console.WriteLine(msg); return (new IRAPError() { ErrCode = 9999, ErrText = rtnSequence.ErrText, }); } else { nameID = (int)rtnSequence.SequenceValue; } #endregion BizNameSpaceEntity entity = new BizNameSpaceEntity() { PartitioningKey = communityID * 10000, LanguageID = (short)languageID, NameDescription = nameDescription, NameID = nameID, }; try { names.Insert(entity); names.SaveChanges(); } catch (Exception error) { string msg = $"保存名称的时候发生错误:{error.Message}"; Console.WriteLine(msg); return (new IRAPError() { ErrCode = 9999, ErrText = msg, }); } return (new IRAPError() { ErrCode = 0, ErrText = "保存名称成功", }); } }