Example #1
0
        public IHttpActionResult Get(string guid, string select)
        {
            var result = ClientResult.Error("获取数据失败");

            try
            {
                var cache             = new CacheHelper();
                var cache_selectIndex = cache.Get <List <int> >("captcha_" + guid);
                var selectIndex       = select.Split(',');
                if (cache_selectIndex.Count == selectIndex.Length)
                {
                    foreach (var item in selectIndex)
                    {
                        if (cache_selectIndex.IndexOf(int.Parse(item)) < 0)
                        {
                            throw new Exception("请选择正确的图案");
                        }
                    }
                    result = ClientResult.Success("恭喜,选择正确");
                }
                else
                {
                    result = ClientResult.Error("请选择正确的图案");
                }
            }
            catch (Exception)
            {
                result = ClientResult.Error("请选择正确的图案");
            }
            return(Json(result));
        }
        public ClientResult Get(string guid, string select)
        {
            var result = ClientResult.Error("获取数据失败");

            try
            {
                List <int> cache_selectIndex = new List <int>();
                if (_cache.TryGetValue(CACHE_KEY + guid, out cache_selectIndex))
                {
                    var selectIndex = select.Split(',');
                    if (cache_selectIndex.Count == selectIndex.Length)
                    {
                        foreach (var item in selectIndex)
                        {
                            if (cache_selectIndex.IndexOf(int.Parse(item)) < 0)
                            {
                                throw new Exception("请选择正确的图案");
                            }
                        }
                        result = ClientResult.Success("恭喜,选择正确");
                    }
                    else
                    {
                        result = ClientResult.Error("请选择正确的图案");
                    }
                }
            }
            catch (Exception)
            {
                result = ClientResult.Error("请选择正确的图案");
            }
            return(result);
        }
Example #3
0
        /// <summary>
        /// 通过指定的ids获取实例列表
        /// </summary>
        /// <param name="ids"></param>
        /// <returns></returns>
        public ClientResult GetModelByIds(string ids)
        {
            var result = ClientResult.Error("");

            if (!string.IsNullOrWhiteSpace(ids))
            {
                int temp;
                var idList = ids.Split(',').Where(id => int.TryParse(id, out temp)).Select(id => Convert.ToInt32(id)).Distinct().ToList();
                if (idList.Count > 0)
                {
                    //调用wcf,获取解密数据
                    var modelRet = _user_listVistor.GetModelByIds(idList);

                    var data = modelRet.Data;

                    if (data != null && data.Count > 0)
                    {
                        var list = data.OrderBy(d => idList.IndexOf(d.UserId ?? 0)).Select(m => m.UserId.Value).ToList();
                        result = ReturnUsers(list, data.Count, _httpContext.Request.GetKey("check") ?? "");
                    }
                    else
                    {
                        result = ReturnUsers(new List <int>(), 0, _httpContext.Request.GetKey("check") ?? "");
                    }
                }
            }

            return(result);
        }
        public IHttpActionResult demo()
        {
            var result = ClientResult.Error("获取数据失败");

            try
            {
                var myapi = new MyAPI();
                result = ClientResult.Success(myapi.GetCaptcha("123456"));
            }
            catch (Exception ex)
            {
                result = ClientResult.Error("获取数据失败");
            }
            return(Json(result));
        }
Example #5
0
        public ClientResult GetUserList()
        {
            var result = ClientResult.Error("");

            try
            {
                #region 参数处理
                //TODO:OK,当前用户信息,从cookie中获取newframeuid
                int UserId = _httpContext.Request.GetCookieKeyInt("newframeuid");
                //TODO:暂时如果未登录,使用模拟数据orgid=22
                var LoginUser = _userCache.GetUser(UserId) ?? new WebComponentStore.Models.User_Detail()
                {
                    UserId = 58988, orgid = 22
                };

                var    current  = _httpContext.Request.GetKeyInt("page");
                var    pagesize = _httpContext.Request.GetKeyInt("size");
                var    orgidstr = _httpContext.Request.GetKey("orgId");
                string action   = _httpContext.Request.GetKey("type");
                //TODO:OK,如果传入字符串是有问题的,修正如下
                //string orgId = orgidstr.Int() > 0 ? orgidstr : LoginUser.orgid.ToString();
                int        query_Orgid       = 0;
                var        query_Orgid_IsInt = int.TryParse(orgidstr, out query_Orgid);
                string     orgId             = query_Orgid_IsInt ? (orgidstr.Int() > 0 ? orgidstr : LoginUser.orgid.ToString()) : orgidstr;
                int        isPower           = _httpContext.Request.GetKeyInt("ispowerorg");
                int        isShowDel         = _httpContext.Request.GetKeyInt("isShowDeleted");
                string     isJJr             = _httpContext.Request.GetKey("isJJr");
                string     mastOrg           = _httpContext.Request.GetKey("mastOrg");
                string     selectIds         = _httpContext.Request.GetKey("selectIds");
                List <int> isJJrList         = !string.IsNullOrEmpty(isJJr) ? isJJr
                                               .Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)
                                               .Select(TypeHelper.IntConvert).ToList() : null;
                List <int> mastOrgId = !string.IsNullOrEmpty(mastOrg) ? mastOrg
                                       .Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)
                                       .Select(TypeHelper.IntConvert).ToList() : null;
                List <int> idsIn = !string.IsNullOrEmpty(selectIds) ? selectIds
                                   .Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)
                                   .Select(TypeHelper.IntConvert).ToList() : null;

                #endregion 参数处理

                #region 条件过滤处理
                var tempList   = new List <int>();
                var selectList = new List <User_list>();

                Org_List myorg = new Org_List();
                //所有组织名称拼音包含搜索关键字拼音的组织
                var orgs = new List <int>();

                //wcf查询过滤条件及排序方式
                var filterList = new List <CommonFilterModel>();
                var orderby    = new List <CommonOrderModel>()
                {
                    new CommonOrderModel()
                    {
                        Name = "UserId", Order = 0
                    }
                };

                if (action == "otherOrg" && !string.IsNullOrEmpty(orgId))
                {
                    int num;//判断查询组织传入的orgId是否为数字
                    if (int.TryParse(orgId, out num))
                    {
                        action = "myorg";
                        //TODO:OK,获取指定的组织
                        myorg = new Org_List()
                        {
                            OrgID = num
                        };
                    }
                    else
                    {
                        //var orglike = MisCommonCache.OrgStore.Get(o => o.OrgName.Contains(orgId) && o.isdel == 0);
                        //TODO:OK,通过模糊查询获取orglist
                        var otherOrgfilterList = new List <CommonFilterModel>();
                        otherOrgfilterList.Add(new CommonFilterModel("OrgName", "like", $"%{orgId}%"));

                        var otherOrgOrderby = new List <CommonOrderModel>()
                        {
                            new CommonOrderModel()
                            {
                                Name = "OrgID", Order = 0
                            }
                        };

                        var orglike = _org_ListVistor.GetIdList(1, 5, otherOrgfilterList, otherOrgOrderby).Data;
                        orgs = orglike == null ? new List <int>() : orglike.ToList();
                    }
                }
                else
                {
                    //TODO:OK,当前用户的组织
                    myorg = new Org_List()
                    {
                        OrgID = LoginUser.orgid.Value
                    };
                    //filterList.Add(new CommonFilterModel("orgid", "=", LoginUser.orgid.ToString()));
                }

                if (action == "otherOrg" && orgId == "0")
                {
                    action = "myorg";
                }
                if (orgs.Count <= 0)
                {
                    if (myorg == null || myorg.OrgID == null)
                    {
                        result = ReturnUsers(null, -3, "本组织信息异常(系统取不到您所在的组织.组织编号" + LoginUser.orgid + "或您传入的组织Id不存在)!");
                        return(result);
                    }
                }
                int number = 0;

                //显示离职员工 (限制类)
                //isshowdelete;0=在职(flag=1),1=全部;2=(flag in (0,1,9))
                var strWhereFlag2 = "0,1,9".Split(',').Select(s => (object)s).ToList();
                switch (isShowDel)
                {
                case 0:
                    filterList.Add(new CommonFilterModel("flag", "=", "1"));
                    break;

                case 2:
                    filterList.Add(new CommonFilterModel("flag", "in", strWhereFlag2));
                    break;
                }
                //限制经纪人等级 (限制类)
                if (isJJrList != null && isJJrList.Count > 0)
                {
                    filterList.Add(new CommonFilterModel("isjjr", "in", isJJrList.Select(s => (object)s).ToList()));
                }

                //TODO:OK,必须在指定组织内,此处有待确认
                if (mastOrgId != null && mastOrgId.Count > 0)
                {
                    filterList.Add(new CommonFilterModel("orgid", "in", mastOrgId.Select(s => (object)s).ToList()));
                }

                #endregion 条件过滤处理

                switch (action)
                {
                case "myorg":
                    //获取我所在组织的用户
                    var users = new List <int>();
                    //增加过滤条件
                    filterList.Add(new CommonFilterModel("orgid", "=", myorg.OrgID.Value.ToString()));
                    var wcfUsers = _user_listVistor.GetIdListLock(current, pagesize, filterList, orderby);
                    users  = wcfUsers.Data;
                    number = wcfUsers.RetInt;
                    tempList.AddRange(users);
                    break;

                case "otherOrg":
                    //获取组织Ids的用户
                    var usersList = new List <int>();
                    //增加过滤条件
                    if (orgs.Count > 0)
                    {
                        filterList.Add(new CommonFilterModel("orgid", "in", orgs.Select(s => (object)s).ToList()));
                    }
                    else
                    {
                        filterList.Add(new CommonFilterModel("orgid", "=", LoginUser.orgid.ToString()));
                    }
                    var wcfUsersList = _user_listVistor.GetIdListLock(current, pagesize, filterList, orderby);
                    usersList = wcfUsersList.Data;
                    number    = wcfUsersList.RetInt;
                    tempList.AddRange(usersList);
                    break;

                case "myarea":
                case "mydian":
                    //TODO:OK,mydian
                    var myorgDetail = _orgStore.GetModel(myorg.OrgID.Value);
                    if (myorgDetail == null)
                    {
                        break;
                    }
                    int key = action == "mydian" ? 800 : 700;
                    if (myorg.OrgLevelKey <= key || myorg.OrgLevelKey == 900)
                    {
                        filterList.Add(new CommonFilterModel("orgid", "=", myorg.OrgLevelKey == 900 ? myorg.OrgParentID.ToString() : myorg.OrgID.ToString()));
                    }
                    else if (myorg.OrgLevelKey > key && !string.IsNullOrEmpty(myorg.OrgParentIDALL))
                    {
                        //MisCommonCache.OrgStore.Get(e => myorg.OrgParentIDALL.Contains("|" + e.OrgID + "|")).FirstOrDefault().OrgID.GetValueOrDefault(1);

                        var myorgArea = FindOrgArea(myorg.OrgID.GetValueOrDefault(1));
                        if (myorgArea.OrgID == null)
                        {
                            break;
                        }
                        else
                        {
                            filterList.Add(new CommonFilterModel("orgid", "=", myorgArea.OrgID.ToString()));
                        }
                    }
                    else
                    {
                        break;
                    }
                    //根据过滤条件查询处理
                    var wcfUsermydianChildList = _user_listVistor.GetIdListLock(current, pagesize, filterList, orderby);
                    var mydianUserList         = wcfUsermydianChildList.Data;
                    number = wcfUsermydianChildList.RetInt;
                    tempList.AddRange(mydianUserList);

                    break;

                case "myareachild":
                    //TODO:OK,myareachild
                    var orgArea = FindOrgArea(myorg.OrgID.GetValueOrDefault(1));
                    if (orgArea.OrgID == null)
                    {
                        break;
                    }
                    List <int> orgids = FindOrgChilds(orgArea.OrgID.GetValueOrDefault(1)).Select(o => o.OrgID.GetValueOrDefault()).ToList();
                    if (orgids.Count > 0)
                    {
                        filterList.Add(new CommonFilterModel("orgid", "in", orgids.Select(s => (object)s).ToList()));
                        var wcfUserOrgChildList = _user_listVistor.GetIdListLock(current, pagesize, filterList, orderby);

                        var userOrgChildList = wcfUserOrgChildList.Data;
                        number = wcfUserOrgChildList.RetInt;
                        tempList.AddRange(userOrgChildList);
                    }

                    break;

                case "selectIds":
                    //获取指定Ids的用户
                    var usersIdList = new List <int>();
                    //增加过滤条件
                    filterList.Add(new CommonFilterModel("orgid", "in", idsIn.Select(id => (object)id).ToList()));
                    var wcfUsersIdList = _user_listVistor.GetIdListLock(current, pagesize, filterList, orderby);
                    usersIdList = wcfUsersIdList.Data;
                    number      = wcfUsersIdList.RetInt;
                    tempList.AddRange(usersIdList);

                    break;

                default:
                    #region default
                    int temp;
                    if (int.TryParse(action, out temp))
                    {
                        if (temp > 10000 && temp < 99999)
                        {
                            filterList.Add(new CommonFilterModel("UserId", "=", action));

                            var wcfdefaultUserList = _user_listVistor.GetIdListLock(current, pagesize, filterList, orderby);
                            var defaultUserList    = wcfdefaultUserList.Data;
                            number = wcfdefaultUserList.RetInt;
                            tempList.AddRange(defaultUserList);
                        }
                    }
                    else
                    {
                        var arr = action.Split(',');
                        if (arr.Length > 1)
                        {
                            var userids = arr.Select(a => a.Int()).Where(a => a != 0).Distinct().ToList();
                            filterList.Add(new CommonFilterModel("UserId", "in", userids.Cast <object>().ToList()));

                            var wcfdefaultUserList = _user_listVistor.GetIdListLock(current, pagesize, filterList, orderby);
                            var defaultUserList    = wcfdefaultUserList.Data;
                            number = wcfdefaultUserList.RetInt;
                            tempList.AddRange(defaultUserList);
                        }
                        else
                        {
                            if (action.Length < 1)
                            {
                                return(ReturnUsers(null, -1, "请使用1个以上的拼音进行查询"));
                            }

                            List <PinYinResult> pinyinResult;
                            ////TODO:wcf获取指定条件的用户信息,此处数据如何实现,待商榷
                            //List<string> columns = new List<string>() {
                            //    "UserId",
                            //    "UserName2"
                            //};
                            //var wcfdefaultUserList = _user_listVistor.GetColumnsNoCount(1, 200, filterList, orderby, columns);
                            //var defaultUserList = wcfdefaultUserList.Data;
                            //number = wcfdefaultUserList.RetInt;


                            var defaultUserList = UserCacheList();

                            #region 特殊数据过滤

                            //显示离职员工 (限制类)
                            switch (isShowDel)
                            {
                            case 0:
                                defaultUserList = defaultUserList.Where(m => m.flag == 1).ToList();
                                break;

                            case 2:
                                defaultUserList = defaultUserList.Where(m => strWhereFlag2.Contains(m.flag)).ToList();
                                break;
                            }
                            //限制经纪人等级 (限制类)
                            if (isJJrList != null && isJJrList.Count > 0)
                            {
                                defaultUserList = defaultUserList.Where(m => isJJrList.Contains(m.isjjr)).ToList();
                            }

                            //必须在指定组织内
                            if (mastOrgId != null && mastOrgId.Count > 0)
                            {
                                defaultUserList = defaultUserList.Where(m => mastOrgId.Contains(m.orgid.Value)).ToList();
                            }

                            #endregion 特殊数据过滤


                            var pinYinSourceList = new List <PinYinSource>();
                            foreach (var userDetail in defaultUserList)
                            {
                                if (userDetail != null && !string.IsNullOrWhiteSpace(userDetail.UserName2))
                                {
                                    pinYinSourceList.Add(new PinYinSource
                                    {
                                        ID   = userDetail.UserId,
                                        Name = userDetail.UserName2
                                    });
                                }
                            }

                            pinyinResult = _pinYinLibraryHelper.GetPinYinAndHanZiResult("UserSelectionData", pinYinSourceList, action, pagesize, out number, current);

                            if (pinyinResult != null && pinyinResult.Count > 0)
                            {
                                tempList.AddRange(pinyinResult.Select(p => p.ID).ToList());
                            }
                        }
                    }

                    #endregion default

                    break;
                }

                #region 历史记录及常用信息
                List <int> history   = null;
                List <int> changyong = null;
                if (action == "history")
                {
                    //TODO:历史记录
                    history = new List <int>();
                    action  = string.Join(",", history);
                    if (_httpContext.Request.GetKeyInt("ischangyong") == 1)
                    {
                        //TODO:常用历史记录
                        changyong = new List <int>();
                        action   += "," + string.Join(",", changyong);
                    }
                }
                #endregion 历史记录及常用信息

                result = ReturnUsers(tempList, number, _httpContext.Request.GetKey("check") ?? "", history, changyong);
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("(redis)选人插件代码错误:{0}", ex.ToString());
                result = ReturnUsers(null, -2, "(redis)选人插件代码错误");
            }
            return(result);
        }
Example #6
0
        /// <summary>
        /// 返回用户数据格式封装
        /// </summary>
        /// <param name="users"></param>
        /// <param name="number"></param>
        /// <param name="info"></param>
        /// <param name="history"></param>
        /// <param name="changyong"></param>
        /// <returns></returns>
        private ClientResult ReturnUsers(IEnumerable <int> userIds, int number, string info, List <int> history = null, List <int> changyong = null)
        {
            var result = ClientResult.Error("");

            if (userIds == null)
            {
                result = ClientResult.Ok(new { data = new List <object>(), count = 0, msg = info });
            }
            else
            {
                //TODO:OK,在职状态字典缓存,从wcf获取
                var flag_Dics = _pub_DictVistor.GetListByClassId(77).Data;
                //TODO:OK,isyunying从wcf扩展字典中获取
                var dictExtendItem      = _pub_DicExtendItemVistor.GetItemWithOutIsdel("isjjr_extend", "isyunying").Data;
                var isYunYing_isjjrList = dictExtendItem.Select(e => (object)e.ItemKey).ToList();
                var list = new List <object>();

                foreach (var item in userIds)
                {
                    if (item != 0)
                    {
                        //TODO:OK,组织结构,从用户缓存获取
                        //TODO:OK,User_list中不存在mobile,从用户缓存获取

                        #region 方案一
                        ////直接通过redis获取用户数据
                        //var user_detail = _userStore.GetUser(item) ?? new WebComponentStore.Models.User_Detail();
                        //list.Add(new
                        //{
                        //    user_detail.UserId,
                        //    ZaiZhiZhuangTai = flag_Dics.FirstOrDefault(m => m.DictUseId == user_detail.flag)?.DicName ?? "",
                        //    UserName = user_detail.UserName2,
                        //    user_detail.orgid,
                        //    user_detail.isjjr,
                        //    user_detail.OrgName,
                        //    user_detail.mobile,
                        //    RzRuzhiDate = string.Format("{0:yyyy-MM-dd}", user_detail.RzRuzhiDate),
                        //    isyunying = isYunYing_isjjrList.Contains(user_detail.isjjr)
                        //});

                        #endregion

                        #region 方案二
                        ////直接通过Cache获取用户数据
                        var user_detail = _userCache.GetUser(item) ?? new WebComponentStore.Models.User_Detail();
                        list.Add(new
                        {
                            user_detail.UserId,
                            ZaiZhiZhuangTai = flag_Dics.FirstOrDefault(m => m.DictUseId == user_detail.flag)?.DicName ?? "",
                            UserName        = user_detail.UserName2,
                            user_detail.orgid,
                            user_detail.isjjr,
                            user_detail.OrgName,
                            user_detail.mobile,
                            RzRuzhiDate = string.Format("{0:yyyy-MM-dd}", user_detail.RzRuzhiDate),
                            isyunying   = isYunYing_isjjrList.Contains(user_detail.isjjr)
                        });
                        #endregion
                    }
                }
                result = ClientResult.Ok(new { data = list, count = number, msg = info, history, changyong });
            }

            return(result);
        }