コード例 #1
0
        public async Task <ActionResult <BaseResponse> > Get(int typeId, [FromQuery] TypeDataDefinePageRequest req)
        {
            //string user = User.Identity.Name;
            //if (string.IsNullOrWhiteSpace(user))
            //{
            //    return Unauthorized("用户凭证缺失");
            //}
            //UserMessage um = JsonConvert.DeserializeObject<UserMessage>(user);
            //string GroupId;
            //var ret = _ts.IsExist(a => a.Id == typeId, out GroupId);
            //if (!ret)
            //{
            //    return new BaseResponse { Success = false, Message = "输入的类型不存在" };
            //}
            ////用户所在的组和超级管理员可以查看
            //if (um.GroupId != GroupId || (!um.IsAdmin && um.Code != _config["Group"]))
            //{
            //    return Unauthorized("用户没有权限");
            //}
            var rm = await _td.GetTypeDataDefines(typeId, req);

            return(rm);
        }
コード例 #2
0
ファイル: TypeDataDefineService.cs プロジェクト: qkxyk/hxcore
        //对datakey或者dataname进行查询
        public async Task<BaseResponse> GetTypeDataDefines(int typeId, TypeDataDefinePageRequest req)
        {
            var data = _td.Find(a => a.TypeId == typeId);
            if (!string.IsNullOrWhiteSpace(req.Search))
            {
                data = data.Where(a => a.DataKey.Contains(req.Search) || a.DataName.Contains(req.Search));
            }
            //单个标签查找,第一步先查找包含的id,第二步查找id包含的,如果是多个标签的或查找需要根据标签或
            //Regex r = new Regex(@"(?=(,|\b)1\b)|(?=(,|\b)2\b)")
            if (req.CategoryId != 0)
            {
                string txt = $@"(?=(,|\b){req.CategoryId}\b)";
                Regex r = new Regex(@txt);
                var Ids = _td.Find(a => a.TypeId == typeId).ToList().Where(a =>
                {
                    if (a.Category == null)
                    {
                        return false;
                    }
                    else
                    {
                        return r.Match(a.Category).Success == true;
                    }
                }).Select(a => a.Id).ToList();
                data = data.Where(a => Ids.Contains(a.Id));
            }
            int count = data.Count();
            string OrderExpression = "";
            if (string.IsNullOrEmpty(req.OrderBy))
            {
                OrderExpression = "Id Asc";
                //UserQuery = UserQuery.OrderBy(a => a.Id);
            }
            else
            {
                OrderExpression = string.Format("{0} {1}", req.OrderBy, req.OrderType);
            }

            var entityList = await data.OrderBy(OrderExpression).Skip((req.PageNo - 1) * req.PageSize).Take(req.PageSize).ToListAsync();
            var dtos = _mapper.Map<List<TypeDataDefineData>>(entityList);
            #region 替换category
            var cr = await _cr.Find(a => true).ToListAsync();
            if (cr.Count > 0)
            {
                foreach (var item in dtos)
                {
                    if (item.Category != null && item.Category.Length > 0)
                    {
                        var cid = item.Category.Split(',');
                        string cname = "";
                        for (int i = 0; i < cid.Length; i++)
                        {
                            if (cid[i].Trim() != "")
                            {
                                if (cname == "")
                                {
                                    cname += cr.FirstOrDefault(a => a.Id.ToString() == cid[i]).Name;
                                }
                                else
                                {
                                    cname += "," + cr.FirstOrDefault(a => a.Id.ToString() == cid[i]).Name;
                                }
                            }
                        }
                        item.Category = cname;
                    }//end if
                }
            }
            #endregion
            var ret = new BasePageResponse<List<TypeDataDefineData>>
            {
                Success = true,
                Message = "获取数据成功",
                Count = count,
                CurrentPage = req.PageNo,
                PageSize = req.PageSize,
                TotalPage = (int)Math.Ceiling((decimal)count / req.PageSize),
                Data = dtos
            };
            return ret;
        }