/// <summary> /// 新增客户 /// </summary> public void AddCustomer(SessionContext passport, string userName, string password, string tenantName, string phoneNumber, string email) { var selected = this.GetSelectedTenant(passport); var parentMerchant = DACFacade.Movo.TenantDAC.Select(selected.TenantCode); if (parentMerchant == null) throw new BusinessException("父级运营商不存在!"); //if (parentMerchant.OperatorLevel + 1 > 5) throw new BusinessException("新增失败,子运营商不能多于5级!"); var existUser = DACFacade.Movo.UserDAC.SelectByName(userName); if (existUser != null) { throw new BusinessException("用户名" + userName + "已经存在,请重新输入!"); } var existTenant = DACFacade.Movo.TenantDAC.SelectByName(tenantName); if (existTenant != null) { throw new BusinessException("公司名称" + tenantName + "已经存在,请重新输入!"); } // 构建Tenant var tenant = new ETenant(); tenant.TenantCode = DACFacade.Movo.IdentityNoDAC.GetTenantSerialNo(); tenant.TenantName = tenantName; tenant.SuperTenantID = parentMerchant.TenantCode; tenant.CreateTime = DateTime.Now; tenant.ExpireTime = null; tenant.ContactName = string.Empty; tenant.PhoneNumber = phoneNumber; tenant.TenantType = EnumTenantType.EndCustomer; tenant.IsFreeze = false; tenant.QQ = string.Empty; tenant.Email = email; tenant.RegisterUserCode = DACFacade.Movo.IdentityNoDAC.GetUserSerialNo(); tenant.RegisterUserName = userName; tenant.OperatorLevel = null; tenant.LogoUrl = null; // 构建UserGroup var userGroup = new EUserGroup() { UserGroupID = DACFacade.Movo.IdentityNoDAC.GetUserGroupID(), UserGroupName = "管理员", TenantCode = tenant.TenantCode, IsAdminGroup = true, }; // 构建User var user = new EUser(); user.UserCode = tenant.RegisterUserCode; user.UserName = userName; user.UserGroupID = userGroup.UserGroupID; user.TenantCode = tenant.TenantCode; if (!string.IsNullOrEmpty(password)) user.PassWord = password; user.RealName = userName; user.Mobile = string.Empty; user.IsRegisterUser = true; user.LastLoginTime = null; user.CreateTime = DateTime.Now; // 构建VehicleGroup var vehGroup = new EVehicleGroup() { GroupID = DACFacade.Movo.IdentityNoDAC.GetVehicleGroupID(), GroupName = userName, TenantCode = tenant.TenantCode, }; using (var trans = DACFacade.Movo.TenantDAC.BeginTransaction()) { try { DACFacade.Movo.UserDAC.Insert(trans, user); DACFacade.Movo.UserGroupDAC.Insert(trans, userGroup); DACFacade.Movo.VehicleGroupDAC.Insert(trans, vehGroup); DACFacade.Movo.TenantDAC.Insert(trans, tenant); DACFacade.Movo.TenantDAC.CommitTransaction(trans); } catch { DACFacade.Movo.TenantDAC.RollbackTransaction(trans); throw; } } }
/// <summary> /// 添加车辆组 /// </summary> /// <param name="groupID"></param> /// <param name="childGroupName"></param> /// <param name="msg"></param> /// <returns></returns> public bool AddGroup(string groupID, string childGroupName, string tenanetCode, out string msg, out ulong outGroupID) { try { EVehicleGroup modelGroup = new EVehicleGroup(); modelGroup.GroupName = childGroupName; modelGroup.ParentGroupID = (ulong)Convert.ToInt64(groupID); modelGroup.TenantCode = tenanetCode; modelGroup.GroupID = DACFacade.Movo.IdentityNoDAC.GetVehicleGroupID(); modelGroup.Remark = ""; DACFacade.Movo.VehicleGroupDAC.Insert(null, modelGroup); outGroupID = modelGroup.GroupID; msg = "添加成功"; return true; }catch(Exception ex) { msg = ex.Message; outGroupID = 0; return false; } }
//对象模型转换 private EVehicleGroup ConvertToVM(EVehicleGroup organize) { return new EVehicleGroup() { GroupID = organize.GroupID, GroupName = organize.GroupName, ParentGroupID = organize.ParentGroupID, //Remark = organize.Remark, TenantCode = organize.TenantCode }; }
/// <summary> /// 保存车辆组 /// </summary> /// <param name="entity"></param> /// <param name="msg"></param> /// <returns></returns> public bool SaveVehicleGroup(EVehicleGroup entity,out string msg) { try { DACFacade.Movo.VehicleGroupDAC.Update(entity); msg = ""; return true; }catch(Exception ex) { msg = ex.Message; return false; } }
//子机构树 private VVehicleGroupWithRelation GetOrganizeChildTree(IList<EVehicleGroup> ltOrganize, EVehicleGroup rootOrganize) { VVehicleGroupWithRelation relation = new VVehicleGroupWithRelation(); if (rootOrganize != null) { relation.Self = ConvertToVM(rootOrganize); } relation.ChildList = new List<VVehicleGroupWithRelation>(); var listChild = ltOrganize.Where(s => s.ParentGroupID == rootOrganize.GroupID); foreach (EVehicleGroup organize in listChild) { VVehicleGroupWithRelation organizeChildTree = this.GetOrganizeChildTree(ltOrganize, organize); relation.ChildList.Add(organizeChildTree); } return relation; }