Beispiel #1
0
        private FaUserInfoRelativeItem InfoToItem(fa_user_info userInfo, int x, int y)
        {
            var ent = Mapper.Map <FaUserInfoRelativeItem>(userInfo);

            ent.x = x;
            ent.y = y;
            return(ent);
        }
Beispiel #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="mainList"></param>
        /// <param name="inSon"></param>
        /// <param name="levelId"></param>
        /// <param name="maxLevelId"></param>
        /// <param name="xyz">z:width</param>
        /// <returns></returns>
        private bool AddFatherItem(IList <FaUserInfoRelativeItem> mainList, fa_user_info inSon, int levelId, int maxLevelId, XYZ xyz, int toLeft, int toRigth)
        {
            if (levelId > maxLevelId)
            {
                return(true);
            }
            if (inSon.fa_user_info2 == null)
            {
                return(true);
            }
            var allSon  = inSon.fa_user_info2.fa_user_info1.OrderBy(x => x.LEVEL_ID).ToList();
            var sonList = Mapper.Map <IList <FaUserInfoRelativeItem> >(allSon);

            #region 计算坐标
            var myPlace = 0;
            for (var i = 0; i < sonList.Count; i++)
            {
                if (sonList[i].Id == inSon.ID)
                {
                    myPlace = i;
                }
            }
            //表示开始的位置
            sonList[myPlace].x = xyz.X;
            sonList[myPlace].y = xyz.Y;
            for (var i = 0; i < myPlace; i++)
            {
                var thisItme = sonList[myPlace - i - 1];
                thisItme.y = xyz.Y;
                thisItme.x = toLeft - i * 2 - 2;
                mainList.Add(thisItme);
            }

            int startX = toRigth + 2;
            for (var i = myPlace + 1; i < sonList.Count; i++)
            {
                var tmpXY = AddSonItem(mainList, allSon[i], 1, 1, new XYZ {
                    X = startX, Y = xyz.Y
                });
                startX       = tmpXY[1] + 2;
                sonList[i].x = (tmpXY[0] + tmpXY[1]) / 2;
                sonList[i].y = xyz.Y;
                mainList.Add(sonList[i]);
            }
            #endregion

            var minX   = sonList.Min(x => x.x);
            var maxX   = sonList.Max(x => x.x);
            var father = InfoToItem(inSon.fa_user_info2, (minX + maxX) / 2, xyz.Y + 1);
            mainList.Add(father);

            AddFatherItem(mainList, inSon.fa_user_info2, levelId + 1, maxLevelId, new XYZ {
                X = father.x, Y = father.y
            }, minX, maxX);
            return(true);
        }
Beispiel #3
0
        private IList <int> AddSonItem(IList <FaUserInfoRelativeItem> mainList, fa_user_info inFather, int levelId, int maxLevelId, XYZ xyz)
        {
            if (levelId > maxLevelId)
            {
                return new[] { xyz.X, xyz.X, xyz.X }
            }
            ;
            var allSon = inFather.fa_user_info1.OrderBy(x => x.LEVEL_ID).ToList();

            if (allSon.Count() == 0)
            {
                return new[] { xyz.X, xyz.X, xyz.X }
            }
            ;
            var allSonItem = Mapper.Map <IList <FaUserInfoRelativeItem> >(allSon);

            int startX = xyz.X;

            for (var i = 0; i < allSonItem.Count(); i++)
            {
                var tmpXY = AddSonItem(mainList, allSon[i], levelId + 1, maxLevelId, new XYZ {
                    X = startX, Y = xyz.Y - 1
                });
                startX = tmpXY[1] + 2;
                if (tmpXY[2] > startX)
                {
                    startX = tmpXY[2];
                }
                allSonItem[i].x = (tmpXY[0] + tmpXY[1]) / 2;
                allSonItem[i].y = xyz.Y - 1;
                mainList.Add(allSonItem[i]);
            }
            var maxX = allSonItem.Max(x => x.x);

            if (maxX < startX)
            {
                maxX = startX;
            }
            return(new[] { allSonItem.Min(x => x.x), allSonItem.Max(x => x.x), maxX });
        }
Beispiel #4
0
        public string UserInfoAddMultiSon(ref ErrorInfo err, ApiRequesSaveEntityBean <string> inEnt)
        {
            GlobalUser gu = Global.GetUser(inEnt.authToken);

            if (gu == null)
            {
                err.IsError = true;
                err.Message = "登录超时";
                return(null);
            }
            if (string.IsNullOrEmpty(inEnt.entity))
            {
                err.IsError = true;
                err.Message = "参数有误";
                return(null);
            }
            //调用用户保存
            using (DBEntities db = new DBEntities())
            {
                var allUserNameArr = inEnt.entity.Split(',').Where(x => !string.IsNullOrWhiteSpace(x)).ToList();

                var parentUser = db.fa_user_info.SingleOrDefault(x => x.ID == inEnt.userId);
                if (parentUser == null)
                {
                    err.IsError = true;
                    err.Message = "当前用户不存在";
                    return(null);
                }
                if (string.IsNullOrEmpty(parentUser.fa_user.NAME))
                {
                    err.IsError = true;
                    err.Message = "当前用户不存在";
                    return(null);
                }
                var fristName = parentUser.fa_user.NAME.Substring(0, 1);

                foreach (var userName in allUserNameArr)
                {
                    TUser inUser = new TUser();
                    if (userName.Substring(0, 1).Equals(fristName))
                    {
                        inUser.NAME = userName;
                    }
                    else
                    {
                        inUser.NAME = string.Format("{0}{1}", fristName, userName);
                    }
                    inUser.DISTRICT_ID  = parentUser.fa_user.DISTRICT_ID;
                    inUser.RoleAllIDStr = string.Join(",", parentUser.fa_user.fa_role.Select(x => x.ID).ToList());
                    var user = api.UserApi.UserSave(db, inEnt.authToken, ref err, inUser, new List <string> {
                        "NAME", "DISTRICT_ID", "RoleAllIDStr"
                    });
                    if (err.IsError)
                    {
                        return(null);
                    }
                    var userInfo = db.fa_user_info.SingleOrDefault(x => x.ID == user.ID);
                    if (userInfo == null)
                    {
                        userInfo                  = new fa_user_info();
                        userInfo.ID               = user.ID;
                        userInfo.STATUS           = "正常";
                        userInfo.CREATE_TIME      = DateTime.Now;
                        userInfo.CREATE_USER_ID   = gu.UserId;
                        userInfo.CREATE_USER_NAME = gu.UserName;
                        userInfo.UPDATE_TIME      = DateTime.Now;
                        userInfo.UPDATE_USER_ID   = gu.UserId;
                        userInfo.UPDATE_USER_NAME = gu.UserName;

                        userInfo.FATHER_ID = parentUser.ID;
                        UpdataLog <FaUserInfo> updataLog = new UpdataLog <FaUserInfo>(db);
                        updataLog.UpdataLogSaveCreate(gu, Mapper.Map <FaUserInfo>(userInfo));
                        db.fa_user_info.Add(userInfo);
                    }
                }
                if (err.IsError)
                {
                    return(null);
                }
                Fun.DBEntitiesCommit(db, ref err);
                return(allUserNameArr.Count().ToString());
            }
        }