using System; using System.Text; using System.Text.RegularExpressions; using System.Data; using BP.DA; using BP.En; using BP.Sys; using BP.GPM; using BP.Port; namespace BP.Cloud { /// /// 操作员 属性 /// public class EmpWebAttr : BP.En.EntityNoNameAttr { #region 基本属性 /// /// 用户ID /// public const string UserID = "UserID"; /// /// 部门 /// public const string FK_Dept = "FK_Dept"; /// /// 密码 /// public const string Pass = "Pass"; /// /// sid /// public const string SID = "Token"; /// /// 电话 /// public const string Tel = "Tel"; /// /// 邮箱 /// public const string Email = "Email"; /// /// 序号 /// public const string Idx = "Idx"; /// /// 拼音 /// public const string PinYin = "PinYin"; #endregion /// /// QQAppID /// public const string QQAppID = "QQAppID"; /// /// QQ号 /// public const string QQ = "QQ"; /// /// 组织结构编码 /// public const string OrgNo = "OrgNo"; /// /// 人员状态 /// public const string EmpSta = "EmpSta"; } /// /// 操作员 的摘要说明。 /// public class EmpWeb : EntityNoName { #region 扩展属性 /// /// 该人员是否被禁用. /// public bool IsEnable { get { if (this.No == "admin") return true; string sql = "SELECT COUNT(FK_EmpWeb) FROM Port_DeptEmpWebStation WHERE FK_EmpWeb='" + this.No + "'"; if (DBAccess.RunSQLReturnValInt(sql, 0) == 0) return false; sql = "SELECT COUNT(FK_EmpWeb) FROM Port_DeptEmpWeb WHERE FK_EmpWeb='" + this.No + "'"; if (DBAccess.RunSQLReturnValInt(sql, 0) == 0) return false; return true; } } /// /// 用户ID. /// public string UserID { get { return this.GetValStrByKey(EmpWebAttr.UserID); } set { this.SetValByKey(EmpWebAttr.UserID, value); } } public string SID { get { return this.GetValStrByKey(EmpWebAttr.SID); } set { this.SetValByKey(EmpWebAttr.SID, value); } } /// /// 拼音 /// public string PinYin { get { return this.GetValStrByKey(EmpWebAttr.PinYin); } set { this.SetValByKey(EmpWebAttr.PinYin, value); } } /// /// 主要的部门。 /// public Dept HisDept { get { try { return new Dept(this.FK_Dept); } catch (Exception ex) { throw new Exception("@获取操作员" + this.No + "部门[" + this.FK_Dept + "]出现错误,可能是系统管理员没有给他维护部门.@" + ex.Message); } } } /// /// 部门 /// public string FK_Dept { get { return this.GetValStrByKey(EmpWebAttr.FK_Dept); } set { this.SetValByKey(EmpWebAttr.FK_Dept, value); } } public string FK_DeptText { get { return this.GetValRefTextByKey(EmpWebAttr.FK_Dept); } } public string Tel { get { return this.GetValStrByKey(EmpWebAttr.Tel); } set { this.SetValByKey(EmpWebAttr.Tel, value); } } public string Email { get { return this.GetValStrByKey(EmpWebAttr.Email); } set { this.SetValByKey(EmpWebAttr.Email, value); } } /// /// 密码 /// public string Pass { get { return this.GetValStrByKey(EmpWebAttr.Pass); } set { this.SetValByKey(EmpWebAttr.Pass, value); } } public string QQ { get { return this.GetValStrByKey(EmpWebAttr.QQ); } set { this.SetValByKey(EmpWebAttr.QQ, value); } } public string QQAppID { get { return this.GetValStringByKey(EmpWebAttr.QQAppID); } set { this.SetValByKey(EmpWebAttr.QQAppID, value); } } /// /// 顺序号 /// public int Idx { get { return this.GetValIntByKey(EmpWebAttr.Idx); } set { this.SetValByKey(EmpWebAttr.Idx, value); } } /// /// 组织结构编码 /// public string OrgNo { get { return this.GetValStrByKey(EmpWebAttr.OrgNo); } set { this.SetValByKey(EmpWebAttr.OrgNo, value); } } #endregion #region 公共方法 /// /// 检查密码(可以重写此方法) /// /// 密码 /// 是否匹配成功 public bool CheckPass(string pass) { //启用加密 if (BP.Difference.SystemConfig.IsEnablePasswordEncryption == true) pass = BP.Tools.Cryptography.EncryptString(pass); /*使用数据库校验.*/ if (this.Pass.Equals(pass) == true) return true; return false; } #endregion 公共方法 #region 构造函数 /// /// 操作员 /// public EmpWeb() { } /// /// 操作员 /// /// 编号 public EmpWeb(string no) { try { //如果小于11位估计不是一个手机号. if (BP.DA.DataType.IsMobile(no) == false) this.No = BP.Web.WebUser.OrgNo + "_" + no; else this.No = no; this.Retrieve(); // this.No = no; } catch (Exception ex) { int i = this.RetrieveFromDBSources(); if (i == 0) throw new Exception("err@用户账号[" + this.No + "]错误:" + ex.Message); } } public override UAC HisUAC { get { UAC uac = new UAC(); if (BP.Web.WebUser.IsAdmin == true) { uac.IsDelete = false; uac.IsInsert = false; uac.IsUpdate = true; uac.IsView = true; } else { uac.Readonly(); uac.IsView = false; } return uac; } } /// /// 重写基类方法 /// public override Map EnMap { get { if (this._enMap != null) return this._enMap; Map map = new Map("Port_Emp", "用户"); map.setEnType(EnType.App); map.IndexField = EmpWebAttr.FK_Dept; #region 字段 /*关于字段属性的增加 */ map.AddTBStringPK(EmpAttr.No, null, "登陆账号", false, false, 1, 50, 90); map.AddTBString(EmpAttr.UserID, null, "用户ID", true, true, 0, 100, 10); map.AddTBString(EmpAttr.Name, null, "名称", true, false, 0, 200, 130); //密码. map.AddTBString(EmpAttr.Pass, null, "Pass", false, false, 0, 200, 130); map.AddDDLEntities(EmpAttr.FK_Dept, null, "主部门", new BP.Port.Depts(), false); map.AddTBString(EmpAttr.Tel, null, "电话", true, false, 0, 20, 130); map.AddTBString(EmpAttr.Email, null, "邮箱", true, false, 0, 100, 132, true); map.AddTBString(EmpAttr.PinYin, null, "拼音", false, false, 0, 500, 132, true); map.AddTBString(EmpAttr.Leader, null, "直属主管", true, false, 0, 500, 132, false); //状态. map.AddDDLSysEnum(EmpWebAttr.EmpSta, 0, "状态", false, false, EmpWebAttr.EmpSta, "@0=正常@1=禁止登陆"); //// 0=不签名 1=图片签名, 2=电子签名. //map.AddDDLSysEnum(EmpAttr.SignType, 0, "签字类型", true, true, EmpAttr.SignType, // "@0=不签名@1=图片签名@2=电子签名"); map.AddTBString(EmpAttr.OrgNo, null, "组织编号", true, true, 0, 50, 50); map.AddTBInt(EmpAttr.Idx, 0, "序号", false, false); #endregion 字段 //字段查询. map.AddSearchAttr(EmpAttr.FK_Dept); //增加隐藏查询条件. if (BP.Web.WebUser.No.Equals("admin") == true) { map.AddDDLEntities(EmpAttr.OrgNo, null, "组织", new BP.Cloud.Orgs(), false); } else { map.AddTBString(EmpAttr.OrgNo, null, "OrgNo", false, false, 0, 50, 36); map.AddHidden(StationTypeAttr.OrgNo, "=", BP.Web.WebUser.OrgNo); } RefMethod rm = new RefMethod(); rm.Title = "设置图片签名"; rm.ClassMethodName = this.ToString() + ".DoSinger"; rm.RefMethodType = RefMethodType.RightFrameOpen; map.AddRefMethod(rm); rm = new RefMethod(); rm.Title = "部门角色"; rm.ClassMethodName = this.ToString() + ".DoEmpDepts"; rm.RefMethodType = RefMethodType.RightFrameOpen; map.AddRefMethod(rm); ////节点绑定部门. 节点绑定部门. //map.AttrsOfOneVSM.AddBranches(new DeptEmps(), new BP.Cloud.Depts(), // DeptEmpAttr.EmpNo, // DeptEmpAttr.FK_Dept, "部门维护", EmpAttr.Name, EmpAttr.No, "@WebUser.FK_Dept"); ////用户组 //map.AttrsOfOneVSM.Add(new TeamEmps(), new Teams(), TeamEmpAttr.FK_Emp, TeamEmpAttr.FK_Team, // TeamAttr.Name, TeamAttr.No, "用户组", Dot2DotModel.Default); rm = new RefMethod(); rm.Title = "修改密码"; rm.ClassMethodName = this.ToString() + ".DoResetpassword"; //rm.RefMethodType = RefMethodType.RightFrameOpen; rm.HisAttrs.AddTBString("pass1", null, "输入密码", true, false, 0, 100, 100); rm.HisAttrs.AddTBString("pass2", null, "再次输入", true, false, 0, 100, 100); map.AddRefMethod(rm); rm = new RefMethod(); rm.Title = "修改主部门"; rm.ClassMethodName = this.ToString() + ".DoEditMainDept"; rm.RefAttrKey = EmpAttr.FK_Dept; rm.RefMethodType = RefMethodType.LinkModel; map.AddRefMethod(rm); this._enMap = map; return this._enMap; } } public string DoEditMainDept() { return "/App/Org/EmpDeptMainDept.htm?FK_Emp=" + this.No + "&FK_Dept=" + this.FK_Dept + "&UserID=" + this.UserID; } public string DoEmpDepts() { return "/App/Org/EmpDepts.htm?FK_Emp=" + this.No; } public string DoSinger() { //路径 return "/App/Org/Siganture.htm?EmpNo=" + this.UserID+"&OrgNo="+this.OrgNo; } protected override bool beforeInsert() { string pass1 = "123"; if (BP.Difference.SystemConfig.IsEnablePasswordEncryption == true) pass1 = BP.Tools.Cryptography.EncryptString(pass1); this.Pass = pass1; return base.beforeInsert(); } protected override bool beforeUpdateInsertAction() { //增加拼音,以方便查找. if (DataType.IsNullOrEmpty(this.Name) == true) throw new Exception("err@名称不能为空."); string pinyinQP = BP.DA.DataType.ParseStringToPinyin(this.Name).ToLower(); string pinyinJX = BP.DA.DataType.ParseStringToPinyinJianXie(this.Name).ToLower(); this.PinYin = "," + pinyinQP + "," + pinyinJX + ","; ////处理角色信息. //DeptEmpWebStations des = new DeptEmpWebStations(); //des.Retrieve(DeptEmpWebStationAttr.FK_EmpWeb, this.No); //string depts = ""; //string stas = ""; //foreach (DeptEmpWebStation item in des) //{ // BP.Port.Dept dept = new BP.Port.Dept(); // dept.No = item.FK_Dept; // if (dept.RetrieveFromDBSources() == 0) // { // item.Delete(); // continue;D:\CCFlowCloud\BP.Cloud\Port\EmpWeb.cs // } // //给拼音重新定义值,让其加上部门的信息. // this.PinYin = this.PinYin + pinyinJX + "/" + BP.DA.DataType.ParseStringToPinyinJianXie(dept.Name).ToLower()+","; // BP.Port.Station sta = new BP.Port.Station(); // sta.No = item.FK_Station; // if (sta.RetrieveFromDBSources() == 0) // { // item.Delete(); // continue; // } // stas += "@" + dept.NameOfPath + "|" + sta.Name; // depts += "@" + dept.NameOfPath; //} return base.beforeUpdateInsertAction(); } protected override void afterDelete() { DeptEmps des = new DeptEmps(); des.Retrieve(DeptEmpAttr.FK_Emp, this.UserID, DeptEmpAttr.OrgNo, this.OrgNo); des.Delete(); DeptEmpStations ensD = new DeptEmpStations(); ensD.Delete(DeptEmpAttr.FK_Emp, this.UserID, DeptEmpAttr.OrgNo, this.OrgNo); base.afterDelete(); } protected override bool beforeDelete() { if (this.OrgNo != BP.Web.WebUser.OrgNo) throw new Exception("err@您不能删除别人的数据."); DeptEmps des = new DeptEmps(); des.Retrieve(DeptEmpAttr.FK_Emp, this.UserID, DeptEmpAttr.OrgNo, this.OrgNo); des.Delete(); DeptEmpStations ensD = new DeptEmpStations(); ensD.Delete(DeptEmpAttr.FK_Emp, this.UserID, DeptEmpAttr.OrgNo, this.OrgNo); return base.beforeDelete(); } /// /// 向上移动 /// public string DoUp() { this.DoOrderUp(EmpWebAttr.FK_Dept, this.FK_Dept, EmpWebAttr.Idx); return "执行成功."; } /// /// 向下移动 /// public string DoDown() { this.DoOrderDown(EmpWebAttr.FK_Dept, this.FK_Dept, EmpWebAttr.Idx); return "执行成功."; } public string DoResetpassword(string pass1, string pass2) { if (pass1.Equals(pass2) == false) return "两次密码不一致"; if (BP.Difference.SystemConfig.IsEnablePasswordEncryption == true) pass1 = BP.Tools.Cryptography.EncryptString(pass1); this.Pass = pass1; this.Update("Pass", pass1); return "密码设置成功"; } /// /// 获取集合 /// public override Entities GetNewEntities { get { return new EmpWebs(); } } #endregion 构造函数 } /// /// 操作员s // public class EmpWebs : EntitiesNoName { #region 构造方法 /// /// 得到它的 Entity /// public override Entity GetNewEntity { get { return new EmpWeb(); } } /// /// 操作员s /// public EmpWebs() { } #endregion 构造方法 #region 为了适应自动翻译成java的需要,把实体转换成List. /// /// 转化成 java list,C#不能调用. /// /// List public System.Collections.Generic.IList ToJavaList() { return (System.Collections.Generic.IList)this; } /// /// 转化成list /// /// List public System.Collections.Generic.List Tolist() { System.Collections.Generic.List list = new System.Collections.Generic.List(); for (int i = 0; i < this.Count; i++) { list.Add((EmpWeb)this[i]); } return list; } #endregion 为了适应自动翻译成java的需要,把实体转换成List. } }