Ejemplo n.º 1
0
        protected override GetScoreRecoveryInformationRD ProcessRequest(APIRequest <GetQuestionnaireAnswerRecordRP> pRequest)
        {
            var rd   = new GetScoreRecoveryInformationRD();
            var para = pRequest.Parameters;
            T_QN_QuestionnaireAnswerRecordEntity model_QuestionnaireAnswerRecordEntity = null;


            var QuestionnaireAnswerRecordBLL = new T_QN_QuestionnaireAnswerRecordBLL(this.CurrentUserInfo);
            var QuestionnaireOptionCountBLL  = new T_QN_QuestionnaireOptionCountBLL(this.CurrentUserInfo);

            var ScoreRecoveryInformationBLL = new T_QN_ScoreRecoveryInformationBLL(this.CurrentUserInfo);


            if (para != null)
            {
                if (para.VipID == null || para.VipID == "")
                {
                    para.VipID = Guid.NewGuid().ToString();
                }
                var SumScore = 0;

                var createqoc = new List <T_QN_QuestionnaireOptionCountEntity>();
                var updateqoc = new List <T_QN_QuestionnaireOptionCountEntity>();
                var createqar = new List <T_QN_QuestionnaireAnswerRecordEntity>();

                for (int i = 0; i < para.QuestionnaireAnswerRecordlist.Count; i++)
                {
                    var qarl = para.QuestionnaireAnswerRecordlist[i];

                    string AnswerOptionIDs = "";

                    #region 答题选项统计
                    if (qarl.optionlist != null)
                    {
                        for (int j = 0; j < qarl.optionlist.Count; j++)
                        {
                            var option = qarl.optionlist[j];
                            if (!(option.OptionID == null || option.OptionID == "" || option.OptionName == null || option.OptionName == ""))
                            {
                                AnswerOptionIDs += option.OptionID + ",";
                                var model_qoce = QuestionnaireOptionCountBLL.isExist(option.OptionID, para.ActivityID);

                                if (model_qoce != null)
                                {
                                    model_qoce.SelectedCount += 1;
                                }
                                else
                                {
                                    model_qoce                   = new T_QN_QuestionnaireOptionCountEntity();
                                    model_qoce.CustomerID        = this.CurrentUserInfo.ClientID;
                                    model_qoce.ActivityID        = para.ActivityID;
                                    model_qoce.ActivityName      = para.ActivityName;
                                    model_qoce.QuestionID        = qarl.QuestionID;
                                    model_qoce.QuestionnaireID   = para.QuestionnaireID;
                                    model_qoce.QuestionnaireName = para.QuestionnaireName;
                                    model_qoce.QuestionName      = qarl.QuestionName;
                                    model_qoce.OptionID          = option.OptionID;
                                    model_qoce.OptionName        = option.OptionName;
                                    model_qoce.SelectedCount     = 1;
                                }


                                if (model_qoce.QuestionnaireOptionCountID == null)
                                {
                                    createqoc.Add(model_qoce);
                                }
                                else
                                {
                                    updateqoc.Add(model_qoce);
                                }
                            }
                        }
                    }

                    #endregion

                    #region 新增答题记录
                    model_QuestionnaireAnswerRecordEntity = new T_QN_QuestionnaireAnswerRecordEntity
                    {
                        CustomerID        = this.CurrentUserInfo.ClientID,
                        ActivityID        = para.ActivityID,
                        ActivityName      = para.ActivityName,
                        AnswerAddress     = qarl.AnswerAddress,
                        AnswerCity        = qarl.AnswerCity,
                        AnswerCounty      = qarl.AnswerCounty,
                        AnswerDate        = qarl.AnswerDate,
                        AnswerOption      = qarl.AnswerOption,
                        AnswerOptionId    = AnswerOptionIDs,
                        AnswerProvince    = qarl.AnswerProvince,
                        AnswerText        = qarl.AnswerText,
                        QuestionID        = qarl.QuestionID,
                        QuestionidType    = qarl.QuestionidType,
                        QuestionnaireID   = para.QuestionnaireID,
                        QuestionnaireName = para.QuestionnaireName,
                        QuestionName      = qarl.QuestionName,
                        QuestionScore     = qarl.QuestionScore,
                        VipID             = para.VipID,
                        Status            = 1
                    };
                    SumScore += qarl.SumScore;

                    createqar.Add(model_QuestionnaireAnswerRecordEntity);

                    #endregion
                }


                #region 新增答题记录和修改记录数
                var pTran = QuestionnaireAnswerRecordBLL.GetTran();

                using (pTran.Connection)
                {
                    try
                    {
                        for (int j = 0; j < createqoc.Count; j++)
                        {
                            QuestionnaireOptionCountBLL.Create(createqoc[j], pTran);
                        }

                        for (int j = 0; j < updateqoc.Count; j++)
                        {
                            QuestionnaireOptionCountBLL.Update(updateqoc[j], pTran);
                        }

                        for (int j = 0; j < createqar.Count; j++)
                        {
                            QuestionnaireAnswerRecordBLL.Create(createqar[j], pTran);
                        }

                        pTran.Commit();//提交事物
                    }
                    catch (Exception ex)
                    {
                        pTran.Rollback();

                        throw new APIException(ex.Message);
                    }

                    #endregion
                }



                var QuestionnaireAnswerRecordID = model_QuestionnaireAnswerRecordEntity.QuestionnaireAnswerRecordID;

                #region 获取结束页展示数据
                if (SumScore > 0)
                {
                    T_QN_ScoreRecoveryInformationEntity[] list_ScoreRecoveryInformation = ScoreRecoveryInformationBLL.getScoreRecoveryInformationByScore(para.QuestionnaireID, SumScore.ToString());

                    if (list_ScoreRecoveryInformation.Length > 0)
                    {
                        T_QN_ScoreRecoveryInformationEntity tempentity = list_ScoreRecoveryInformation[0];

                        rd.RecoveryContent = tempentity.RecoveryContent;
                        rd.RecoveryImg     = tempentity.RecoveryImg;
                        rd.RecoveryType    = tempentity.RecoveryType;
                    }
                }
                #endregion
            }



            return(rd);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// 更新
 /// </summary>
 /// <param name="pEntity">实体实例</param>
 /// <param name="pTran">事务实例,可为null,如果为null,则不使用事务来更新</param>
 public void Update(T_QN_QuestionnaireOptionCountEntity pEntity, IDbTransaction pTran)
 {
     _currentDAO.Update(pEntity, pTran);
 }
Ejemplo n.º 3
0
 /// <summary>
 /// 创建一个新实例
 /// </summary>
 /// <param name="pEntity">实体实例</param>
 public void Create(T_QN_QuestionnaireOptionCountEntity pEntity)
 {
     _currentDAO.Create(pEntity);
 }
Ejemplo n.º 4
0
 /// <summary>
 /// 分页根据实体条件查询实体
 /// </summary>
 /// <param name="pQueryEntity">以实体形式传入的参数</param>
 /// <param name="pOrderBys">排序组合</param>
 /// <returns>符合条件的实体集</returns>
 public PagedQueryResult <T_QN_QuestionnaireOptionCountEntity> PagedQueryByEntity(T_QN_QuestionnaireOptionCountEntity pQueryEntity, OrderBy[] pOrderBys, int pPageSize, int pCurrentPageIndex)
 {
     return(_currentDAO.PagedQueryByEntity(pQueryEntity, pOrderBys, pPageSize, pCurrentPageIndex));
 }
Ejemplo n.º 5
0
 /// <summary>
 /// 根据实体条件查询实体
 /// </summary>
 /// <param name="pQueryEntity">以实体形式传入的参数</param>
 /// <param name="pOrderBys">排序组合</param>
 /// <returns>符合条件的实体集</returns>
 public T_QN_QuestionnaireOptionCountEntity[] QueryByEntity(T_QN_QuestionnaireOptionCountEntity pQueryEntity, OrderBy[] pOrderBys)
 {
     return(_currentDAO.QueryByEntity(pQueryEntity, pOrderBys));
 }
Ejemplo n.º 6
0
 /// <summary>
 /// 删除
 /// </summary>
 /// <param name="pEntity"></param>
 public void Delete(T_QN_QuestionnaireOptionCountEntity pEntity)
 {
     _currentDAO.Delete(pEntity);
 }