/// <summary>
        /// 修改单个商铺收藏信息
        /// </summary>
        /// <param name="userId">请求者Id</param>
        /// <param name="shopsFavoriteRequest">请求数据</param>
        /// <param name="cancellationToken">验证</param>
        /// <returns></returns>
        public virtual async Task UpdateAsync(string userId, ShopsFavoriteRequest shopsFavoriteRequest, CancellationToken cancellationToken = default(CancellationToken))
        {
            if (shopsFavoriteRequest == null)
            {
                throw new ArgumentNullException(nameof(shopsFavoriteRequest));
            }
            var shopsFavorite = await _ishopsFavoritesStore.GetAsync(a => a.Where(b => b.Id == shopsFavoriteRequest.Id && !b.IsDeleted));

            if (shopsFavorite == null)
            {
                return;
            }
            var newshopsFavorite = _mapper.Map <ShopsFavorite>(shopsFavoriteRequest);

            newshopsFavorite.IsDeleted  = shopsFavorite.IsDeleted;
            newshopsFavorite.CreateTime = shopsFavorite.CreateTime;
            newshopsFavorite.CreateUser = shopsFavorite.CreateUser;
            newshopsFavorite.UpdateTime = DateTime.Now;
            newshopsFavorite.UpdateUser = userId;
            newshopsFavorite.UserId     = shopsFavorite.UserId;
            try
            {
                await _ishopsFavoritesStore.UpdateAsync(newshopsFavorite, cancellationToken);
            }
            catch { }
        }
        public async Task <ResponseMessage> PutShopsFavorite(UserInfo user, [FromBody] ShopsFavoriteRequest shopsFavoriteRequest)
        {
            Logger.Trace($"用户{user?.UserName ?? ""}({user?.Id ?? ""})修改商铺收藏信息(PutShopsFavorite):\r\n请求参数为:\r\n" + (shopsFavoriteRequest != null ? JsonHelper.ToJson(shopsFavoriteRequest) : ""));

            var response = new ResponseMessage();

            if (!ModelState.IsValid)
            {
                var error  = "";
                var errors = ModelState.Values.ToList();
                foreach (var item in errors)
                {
                    foreach (var e in item.Errors)
                    {
                        error += e.ErrorMessage + "  ";
                    }
                }
                response.Code    = ResponseCodeDefines.ModelStateInvalid;
                response.Message = error;
                Logger.Warn($"用户{user?.UserName ?? ""}({user?.Id ?? ""})修改商铺收藏信息(PutShopsFavorite)模型验证失败:\r\n{response.Message ?? ""},\r\n请求参数为:\r\n" + (shopsFavoriteRequest != null ? JsonHelper.ToJson(shopsFavoriteRequest) : ""));
                return(response);
            }
            try
            {
                var dictionaryGroup = await _shopsFavoriteManager.FindByIdAsync(shopsFavoriteRequest.Id, HttpContext.RequestAborted);

                if (dictionaryGroup == null)
                {
                    await _shopsFavoriteManager.CreateAsync(user, shopsFavoriteRequest, HttpContext.RequestAborted);
                }
                await _shopsFavoriteManager.UpdateAsync(user.Id, shopsFavoriteRequest, HttpContext.RequestAborted);

                response.Code    = ResponseCodeDefines.SuccessCode;
                response.Message = "修改成功";
            }
            catch (Exception e)
            {
                response.Code    = ResponseCodeDefines.ServiceError;
                response.Message = e.ToString();
                Logger.Error($"用户{user?.UserName ?? ""}({user?.Id ?? ""})修改商铺收藏信息(PutShopsFavorite)请求失败:\r\n{response.Message ?? ""},\r\n请求参数为:\r\n" + (shopsFavoriteRequest != null ? JsonHelper.ToJson(shopsFavoriteRequest) : ""));
            }
            return(response);
        }
        /// <summary>
        /// 新增商铺收藏信息
        /// </summary>
        /// <param name="userId">创建者</param>
        /// <param name="shopsFavoriteResponse">请求实体</param>
        /// <param name="cancellationToken">验证</param>
        /// <returns></returns>
        public virtual async Task <ShopsFavoriteResponse> CreateAsync(UserInfo user, ShopsFavoriteRequest shopsFavoriteRequest, CancellationToken cancellationToken = default(CancellationToken))
        {
            if (shopsFavoriteRequest == null)
            {
                throw new ArgumentNullException(nameof(shopsFavoriteRequest));
            }
            var shopsFavorite = _mapper.Map <ShopsFavorite>(shopsFavoriteRequest);

            shopsFavorite.Id         = Guid.NewGuid().ToString();
            shopsFavorite.CreateUser = user.Id;
            shopsFavorite.CreateTime = DateTime.Now;
            shopsFavorite.UserId     = user.Id;
            try
            {
                await _ishopsFavoritesStore.CreateAsync(shopsFavorite, cancellationToken);
            }
            catch
            {
            }
            return(_mapper.Map <ShopsFavoriteResponse>(shopsFavorite));
        }
        public async Task <ResponseMessage <ShopsFavoriteResponse> > PostShopsFavorite(UserInfo user, [FromBody] ShopsFavoriteRequest shopsFavoriteRequest)
        {
            Logger.Trace($"用户{user?.UserName ?? ""}({user?.Id ?? ""})新增商铺收藏信息(PostShopsFavorite):\r\n请求参数为:\r\n" + (shopsFavoriteRequest != null ? JsonHelper.ToJson(shopsFavoriteRequest) : ""));

            var response = new ResponseMessage <ShopsFavoriteResponse>();

            if (!ModelState.IsValid)
            {
                var error  = "";
                var errors = ModelState.Values.ToList();
                foreach (var item in errors)
                {
                    foreach (var e in item.Errors)
                    {
                        error += e.ErrorMessage + "  ";
                    }
                }
                response.Code    = ResponseCodeDefines.ModelStateInvalid;
                response.Message = error;
                Logger.Warn($"用户{user?.UserName ?? ""}({user?.Id ?? ""})新增商铺收藏信息(PostShopsFavorite)模型验证失败:\r\n{response.Message ?? ""},\r\n请求参数为:\r\n" + (shopsFavoriteRequest != null ? JsonHelper.ToJson(shopsFavoriteRequest) : ""));
                return(response);
            }
            try
            {
                if (await _shopsFavoriteManager.FindByUserIdAndShopsIdAsync(user.Id, shopsFavoriteRequest.ShopsId) != null)
                {
                    response.Code    = ResponseCodeDefines.NotAllow;
                    response.Message = "当前已收藏该商铺";
                    Logger.Info($"用户{user?.UserName ?? ""}({user?.Id ?? ""})新增商铺收藏信息(PostShopsFavorite)失败:该商铺已经被收藏,\r\n请求的参数为:\r\n" + (shopsFavoriteRequest != null ? JsonHelper.ToJson(shopsFavoriteRequest) : ""));
                    return(response);
                }
                response.Extension = await _shopsFavoriteManager.CreateAsync(user, shopsFavoriteRequest, HttpContext.RequestAborted);
            }
            catch (Exception e)
            {
                response.Code    = ResponseCodeDefines.ServiceError;
                response.Message = e.ToString();
                Logger.Error($"用户{user?.UserName ?? ""}({user?.Id ?? ""})新增商铺收藏信息(PostShopsFavorite)请求失败:\r\n{response.Message ?? ""},\r\n请求参数为:\r\n" + (shopsFavoriteRequest != null ? JsonHelper.ToJson(shopsFavoriteRequest) : ""));
            }
            return(response);
        }