IA.Service/OrganizationService.cs

(开头部分) 7KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Collections.Generic;
using System.Linq;
using IA.Core.Caching;
using IA.Core.Domain;
using IA.Interface;
using IA.Models;
using Tonglu.Common.Extensions;

namespace IA.Service
{
    public class OrganizationService : IOrganizationService
    {
        #region 字段

        private readonly IRepository<UserInfo> _userRepository;
        private readonly IRepository<Area> _areaRepository;
        private readonly IRepository<AreaofUser> _areaOfUserRepository;
        private readonly IRepository<t_Organization> _organizationRepository;
        private readonly ICacheManager _cache;

        #endregion

        #region 常量

        private const string cache_GetOrgIdArray_key = "GetOrganizationList.{0}";
        private const string cache_GetOrganizationList_key = "GetOrganizationList.{0}.{1}.{2}.{3}.{4}";

        #endregion

        public OrganizationService(
            IRepository<UserInfo> userRepository,
            IRepository<AreaofUser> areaOfUserRepository,
            IRepository<t_Organization> organizationRepository,
            IRepository<Area> areaRepository, ICacheManager cache)
        {
            _userRepository = userRepository;
            _areaOfUserRepository = areaOfUserRepository;
            _organizationRepository = organizationRepository;
            _areaRepository = areaRepository;
            _cache = cache;
        }

        public IQueryable<t_Organization> GetOrganizationQueryable(int userId)
        {
            string key = string.Format(cache_GetOrgIdArray_key, userId);
            return _cache.Get(key, () =>
            {
                var query = _organizationRepository.TableNoTracking.Where(org => org.FDeleted == 0);
                int?[] orgIdArray;
                var userInfo = _userRepository.GetById(userId) ?? new UserInfo();
                if (userInfo.User_class.TryInt(0) == 3)
                {
                    orgIdArray = new[] { userInfo.User_cust_id };
                }
                else
                {
                    orgIdArray = (from a in query
                                  join b in _areaOfUserRepository.TableNoTracking on a.FProvincecode equals b.Areaid
                                  where b.IsDelete == false
后面还有 109 行代码,购买后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。