コード例 #1
0
        /// <summary>
        /// 删除重复问卷答题记录和获取问卷记录
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="objectId"></param>
        /// <returns></returns>
        public static async Task DelExistRecord(Guid userId, int objectId, int questionnaireType)
        {
            //判断当前用户和投诉是否已答
            var answerRecordInfo = await DalQuestionnaireAnswerRecord.GetQuestionnaireAnswerRecordInfo(userId, objectId);

            if (answerRecordInfo != null)
            {
                //删除之前答题记录
                await DalQuestionnaireAnswerRecord.DeleteQuestionnaireAnswerRecord(userId, objectId);
            }

            UserQuestionnaireURLModel userInfo = null;

            if (questionnaireType < 2)//售后问卷
            {
                userInfo = await DalUserQuestionnaireURL.GetUserQuestionnaireURLInfo(objectId);
            }
            else if (questionnaireType == 2)//售前问卷
            {
                userInfo = await DalUserQuestionnaireURL.GetUserQuestionnaireURLInfoByOrderID(objectId);
            }
            if (userInfo != null)
            {
                //删除之前问卷记录
                await DalUserQuestionnaireURL.DeleteUserQuestionnaireURL(userInfo.PageID);
            }
        }
コード例 #2
0
        /// <summary>
        /// 创建用户的问卷链接信息
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static async Task <int> AddUserQuestionnaireURL(UserQuestionnaireURLModel model)
        {
            #region SQL

            string sql = @" INSERT INTO [Activity].[dbo].[UserQuestionnaireURL] WITH(ROWLOCK)
                                       ([PageID]
                                       ,[QuestionnaireNo]
                                       ,[OrderID]
                                       ,[ComplaintsID]
                                       ,[ComplaintsType]
                                       ,[IsAtStore]
                                       ,[Department]
                                       ,[UserID]
                                       ,[UserPhone]
                                       ,[StaffEmail]
                                       ,[ShortURL]
                                       ,[OriginalURL])
                                 VALUES
                                       (@PageID
                                       ,@QuestionnaireNo
                                       ,@OrderID
                                       ,@ComplaintsID
                                       ,ISNULL(@ComplaintsType,'')
                                       ,@IsAtStore
                                       ,ISNULL(@Department,'')
                                       ,@UserID
                                       ,ISNULL(@UserPhone,'')
                                       ,ISNULL(@StaffEmail,'')
                                       ,@ShortURL
                                       ,@OriginalURL) ";
            #endregion

            BaseDbHelper dbHelper = null;
            SqlCommand   sqlCmd   = null;

            SqlParameter[] paras = new SqlParameter[]
            {
                new SqlParameter("@PageID", model.PageID),
                new SqlParameter("@QuestionnaireNo", model.QuestionnaireNo),
                new SqlParameter("@OrderID", model.OrderID),
                new SqlParameter("@ComplaintsID", model.ComplaintsID),
                new SqlParameter("@ComplaintsType", model.ComplaintsType),
                new SqlParameter("@IsAtStore", model.IsAtStore),
                new SqlParameter("@Department", model.Department),
                new SqlParameter("@UserID", model.UserID),
                new SqlParameter("@UserPhone", model.UserPhone),
                new SqlParameter("@StaffEmail", model.StaffEmail),
                new SqlParameter("@ShortURL", model.ShortURL),
                new SqlParameter("@OriginalURL", model.OriginalURL)
            };
            try
            {
                dbHelper = DbHelper.CreateDbHelper(false);
                sqlCmd   = new SqlCommand(sql);
                sqlCmd.Parameters.AddRange(paras);
                return(await dbHelper.ExecuteNonQueryAsync(sqlCmd));
            }
            catch (Exception ex)
            {
                Logger.Error($"DB异常=>AddUserQuestionnaireURL=>{ex.ToString()}");
                return(0);
            }
            finally
            {
                dbHelper?.Dispose();
                sqlCmd?.Dispose();
            }
        }
コード例 #3
0
        /// <summary>
        /// 获取用户的问卷链接信息
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static async Task <OperationResult <string> > GetQuestionnaireURLAsync(Models.Requests.GetQuestionnaireURLRequest model)
        {
            //AutoMapper初始化配置文件
            var config = new MapperConfiguration(cfg =>
            {
                cfg.CreateMap <Models.Requests.GetQuestionnaireURLRequest, UserQuestionnaireURLModel>();
            });
            var mapper   = config.CreateMapper();
            int objectId = 0;//业务对象ID

            UserQuestionnaireURLModel userModel = mapper.Map <UserQuestionnaireURLModel>(model);

            userModel.PageID      = Guid.NewGuid();
            userModel.OriginalURL = ConfigurationManager.AppSettings["QuestionnaireURL"].ToString() + "pageId=" + userModel.PageID;

            if (model.QuestionnaireType < 2)//售后问卷
            {
                //获取问卷和定责部门关系信息
                var mappingInfo = await DalQuestionnaireDptMapping.GetQuestionnaireDptMappingInfo(userModel.Department, userModel.ComplaintsType, userModel.IsAtStore);

                if (mappingInfo != null)
                {
                    userModel.QuestionnaireNo = mappingInfo.QuestionnaireNo;
                }
                else
                {
                    return(OperationResult.FromError <string>(nameof(Resource.Error_GetQuestionnaireURL_Failure), string.Format(Resource.Error_GetQuestionnaireURL_Failure)));
                }
                objectId = model.ComplaintsID;
            }
            else if (model.QuestionnaireType == 2)//售前问卷
            {
                var questionnaireInfo = await DalQuestionnaire.GetQuestionnaireInfoByType(model.QuestionnaireType);

                userModel.QuestionnaireNo = questionnaireInfo.QuestionnaireNo;
                objectId = model.OrderID.Value;
            }
            //获取短连接
            using (var client = new UtilityClient())
            {
                var shortUrlResult = await client.GetTuhuDwzAsync(userModel.OriginalURL, "投诉问卷");

                if (shortUrlResult.Success)
                {
                    userModel.ShortURL = shortUrlResult.Result;
                }
                else
                {
                    return(OperationResult.FromError <string>(nameof(Resource.Error_GetQuestionnaireURL_Failure), string.Format(Resource.Error_GetQuestionnaireURL_Failure)));
                }
            }
            //删除重复问卷答题记录和获取问卷记录
            await QuestionnaireManager.DelExistRecord(model.UserID, objectId, model.QuestionnaireType);

            int result = await DalUserQuestionnaireURL.AddUserQuestionnaireURL(userModel);

            if (result > 0)
            {
                return(OperationResult.FromResult(userModel.ShortURL));
            }

            return(OperationResult.FromError <string>(nameof(Resource.Error_GetQuestionnaireURL_Failure), string.Format(Resource.Error_GetQuestionnaireURL_Failure)));
        }