Esempio n. 1
0
        /// <summary>
        /// 获取车友群列表
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public static async Task <CarFriendsGroupInfoResponse> GetCarFriendsGroupListAsync(GetCarFriendsGroupListRequest request)
        {
            using (var client = CacheHelper.CreateCacheClient(GlobalConstant.CarFriendsGroupName))
            {
                var result = new CarFriendsGroupInfoResponse();
                //筛选车型得到的车型群
                if (request.VehicleList != null && request.VehicleList.Count > 0)
                {
                    string key          = string.Format(GlobalConstant.CarFriendsGroupKey, string.Join(":", request.VehicleList));
                    var    clientResult = await client.GetOrSetAsync(SecurityHelper.Hash(key), async() => (await DalCarFriendsGroup.GetFilterCarFriendsGroupListAsync(request.VehicleList)), TimeSpan.FromMinutes(10));

                    if (clientResult.Success && clientResult.Value != null)
                    {
                        result = clientResult.Value;
                    }
                }
                else
                {
                    //热门车友群/热门推荐群/搜索车型得到的车型群/全部车友群
                    string key          = string.Format(GlobalConstant.CarFriendsGroupKey, ":" + request.IsRecommend + ":" + request.SearchVehicleKey);
                    var    clientResult = await client.GetOrSetAsync(SecurityHelper.Hash(key), async() => (await GetSearchCarFriendsGroupResponseAsync(request.IsRecommend, request.SearchVehicleKey)), TimeSpan.FromMinutes(10));

                    if (clientResult.Success && clientResult.Value != null && clientResult.Value.groupCount > 0)
                    {
                        result = clientResult.Value;
                    }
                }
                return(result);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 获取热门车友群/热门推荐群/搜索车型得到的车型群/全部车友群
        /// </summary>
        /// <param name="isRecommend"></param>
        /// <param name="searchVehicleKey"></param>
        /// <returns></returns>
        private static async Task <CarFriendsGroupInfoResponse> GetSearchCarFriendsGroupResponseAsync(bool isRecommend, string searchVehicleKey)
        {
            var result = new CarFriendsGroupInfoResponse();
            var carFriendsGroupInfoResponse = await DalCarFriendsGroup.GetIsRecommendCarFriendsGroupListAsync(isRecommend);

            if (string.IsNullOrWhiteSpace(searchVehicleKey))
            {
                result = carFriendsGroupInfoResponse;
            }
            else
            {
                result.groupList  = carFriendsGroupInfoResponse.groupList.Where(t => t.BindVehicleType.Contains(searchVehicleKey)).ToList();
                result.groupCount = result.groupList.Count;
            }
            return(result);
        }
Esempio n. 3
0
        /// <summary>
        /// 根据pkid获取车友群
        /// </summary>
        /// <param name="pkid"></param>
        /// <returns></returns>
        public static async Task <OperationResult <CarFriendsGroupInfoResponse> > GetCarFriendsGroupModelAsync(int pkid)
        {
            if (pkid == 0)
            {
                return(OperationResult.FromError <CarFriendsGroupInfoResponse>("-31", string.Format(Resource.ParameterError_NotZero, "pkid")));
            }
            using (var client = CacheHelper.CreateCacheClient(GlobalConstant.CarFriendsGroupName))
            {
                var    result       = new CarFriendsGroupInfoResponse();
                string key          = string.Format(GlobalConstant.CarFriendsGroupKey, pkid);
                var    clientResult = await client.GetOrSetAsync(key, async() => (await DalCarFriendsGroup.GetCarFriendsGroupModelAsync(pkid)), TimeSpan.FromMinutes(10));

                if (clientResult.Success && clientResult.Value != null && clientResult.Value.groupCount > 0)
                {
                    result = clientResult.Value;
                }
                return(OperationResult.FromResult(result));
            }
        }
        /// <summary>
        /// 根据pkid获取车友群
        /// </summary>
        /// <param name="pkid"></param>
        /// <returns></returns>
        public static async Task <CarFriendsGroupInfoResponse> GetCarFriendsGroupModelAsync(int pkid)
        {
            var carFriendsGroupInfoResponse = new CarFriendsGroupInfoResponse();
            var carFriendsGroupList         = new List <CarFriendsGroup>();

            try
            {
                string sql = @"
                             SELECT [PKID] ,
                                    [GroupName] ,
                                    [GroupDesc] ,
                                    [BindVehicleType] ,
                                    [BindVehicleTypeID] ,
                                    [GroupHeadPortrait] ,
                                    [GroupQRCode] ,
                                    [GroupCategory] ,
                                    [GroupWeight] ,
                                    [IsRecommend] ,
                                    [Is_Deleted] ,
                                    [GroupCreateTime] ,
                                    [GroupOverdueTime] ,
                                    [CreateDatetime] ,
                                    [LastUpdateDateTime] ,
                                    [CreateBy] ,
                                    [LastUpdateBy]
                             FROM   Activity.[dbo].[CarFriendsWeChatGroup] WITH ( NOLOCK )
                             WHERE  PKID = @PKID;";
                using (var cmd = new SqlCommand(sql))
                {
                    cmd.Parameters.AddWithValue("@PKID", pkid);
                    carFriendsGroupList = (await DbHelper.ExecuteSelectAsync <CarFriendsGroup>(true, cmd)).ToList();
                    carFriendsGroupInfoResponse.groupList  = carFriendsGroupList;
                    carFriendsGroupInfoResponse.groupCount = carFriendsGroupList.Count;
                }
            }
            catch (Exception e)
            {
                Logger.Error($"GetCarFriendsGroupModelAsync -> {pkid}", e);
                throw;
            }
            return(carFriendsGroupInfoResponse);
        }
        /// <summary>
        /// 筛选车型得到的车型群
        /// </summary>
        /// <param name="VehicleList"></param>
        /// <returns></returns>
        public static async Task <CarFriendsGroupInfoResponse> GetFilterCarFriendsGroupListAsync(List <string> VehicleList)
        {
            var carFriendsGroupInfoResponse = new CarFriendsGroupInfoResponse();
            var carFriendsGroupList         = new List <CarFriendsGroup>();
            int carFriendsGroupCount        = 0;

            try
            {
                string        sql           = @"
                                SELECT  [PKID] ,
                                        [GroupName] ,
                                        [GroupDesc] ,
                                        [BindVehicleType] ,
                                        [BindVehicleTypeID] ,
                                        [GroupHeadPortrait] ,
                                        [GroupQRCode] ,
                                        [GroupCategory] ,
                                        [GroupWeight] ,
                                        [IsRecommend] ,
                                        [Is_Deleted] ,
                                        [GroupCreateTime] ,
                                        [GroupOverdueTime] ,
                                        [CreateDatetime] ,
                                        [LastUpdateDateTime] ,
                                        [CreateBy] ,
                                        [LastUpdateBy]
                                FROM    Activity.[dbo].[CarFriendsWeChatGroup] WITH(NOLOCK)
                                WHERE   GroupCategory = 0
                                        AND Is_Deleted=0
                                        AND (";
                StringBuilder stringBuilder = new StringBuilder();
                stringBuilder.Append(sql);
                for (int i = 0; i < VehicleList.Count; i++)
                {
                    string parameter = "@BindVehicleType" + i;
                    stringBuilder.Append("BindVehicleType=" + parameter + " or ");
                }
                stringBuilder.Remove(stringBuilder.Length - 3, 3);
                stringBuilder.Append(" ) ORDER BY GroupWeight;");

                string        sqlCount           = @"
                                    SELECT  COUNT(*)
                                    FROM    Activity.[dbo].[CarFriendsWeChatGroup] WITH(NOLOCK)
                                    WHERE   GroupCategory = 0
                                            AND Is_Deleted=0
                                            AND (";
                StringBuilder stringBuilderCount = new StringBuilder();
                stringBuilderCount.Append(sqlCount);
                for (int i = 0; i < VehicleList.Count; i++)
                {
                    string parameter = "@BindVehicleType" + i;
                    stringBuilderCount.Append("BindVehicleType=" + parameter + " or ");
                }
                stringBuilderCount.Remove(stringBuilderCount.Length - 3, 3);
                stringBuilderCount.Append(" ) ;");

                var parameterList = new List <SqlParameter>();
                for (int i = 0; i < VehicleList.Count; i++)
                {
                    parameterList.Add(new SqlParameter($"@BindVehicleType{i}", VehicleList[i]));
                }
                using (var cmd = new SqlCommand(stringBuilder.ToString()))
                {
                    cmd.Parameters.AddRange(parameterList.ToArray());
                    carFriendsGroupList = (await DbHelper.ExecuteSelectAsync <CarFriendsGroup>(true, cmd)).ToList();
                    cmd.Parameters.Clear();
                    ;
                }
                using (var cmd = new SqlCommand(stringBuilderCount.ToString()))
                {
                    cmd.Parameters.AddRange(parameterList.ToArray());
                    carFriendsGroupCount = Convert.ToInt32(await DbHelper.ExecuteScalarAsync(true, cmd));
                }
            }
            catch (Exception e)
            {
                Logger.Error($"GetFilterCarFriendsGroupListAsync -> {string.Join("','", VehicleList)}", e);
            }
            carFriendsGroupInfoResponse.groupList  = carFriendsGroupList;
            carFriendsGroupInfoResponse.groupCount = carFriendsGroupCount;
            return(carFriendsGroupInfoResponse);
        }
        /// <summary>
        /// 热门车友群/热门推荐群/全部车友群
        /// </summary>
        /// <param name="isRecommend"></param>
        /// <returns></returns>
        public static async Task <CarFriendsGroupInfoResponse> GetIsRecommendCarFriendsGroupListAsync(bool isRecommend)
        {
            var carFriendsGroupInfoResponse = new CarFriendsGroupInfoResponse();
            var carFriendsGroupList         = new List <CarFriendsGroup>();
            int carFriendsGroupCount        = 0;

            try
            {
                string sql = @"
                                SELECT  [PKID] ,
                                        [GroupName] ,
                                        [GroupDesc] ,
                                        [BindVehicleType] ,
                                        [BindVehicleTypeID] ,
                                        [GroupHeadPortrait] ,
                                        [GroupQRCode] ,
                                        [GroupCategory] ,
                                        [GroupWeight] ,
                                        [IsRecommend] ,
                                        [Is_Deleted] ,
                                        [GroupCreateTime] ,
                                        [GroupOverdueTime] ,
                                        [CreateDatetime] ,
                                        [LastUpdateDateTime] ,
                                        [CreateBy] ,
                                        [LastUpdateBy]
                                FROM    Activity.[dbo].[CarFriendsWeChatGroup] WITH(NOLOCK)
                                WHERE   GroupCategory = 0
                                        AND Is_Deleted = 0";
                if (isRecommend)
                {
                    sql += " AND isRecommend=1";
                }
                sql += " ORDER BY GroupWeight";

                string sqlCount = @"
                                    SELECT  COUNT(*)
                                    FROM    Activity.[dbo].[CarFriendsWeChatGroup] WITH(NOLOCK)
                                    WHERE   GroupCategory = 0
                                            AND Is_Deleted = 0";
                if (isRecommend)
                {
                    sqlCount += " AND isRecommend=1";
                }
                using (var cmd = new SqlCommand(sql))
                {
                    carFriendsGroupList = (await DbHelper.ExecuteSelectAsync <CarFriendsGroup>(true, cmd)).ToList();
                }
                using (var cmd = new SqlCommand(sqlCount))
                {
                    carFriendsGroupCount = Convert.ToInt32(await DbHelper.ExecuteScalarAsync(true, cmd));
                }
            }
            catch (Exception e)
            {
                Logger.Error($"GetIsRecommendCarFriendsGroupListAsync -> {isRecommend}", e);
            }
            carFriendsGroupInfoResponse.groupList  = carFriendsGroupList;
            carFriendsGroupInfoResponse.groupCount = carFriendsGroupCount;
            return(carFriendsGroupInfoResponse);
        }