示例#1
0
        /// <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;
 }