Example #1
0
        /// <summary>
        /// 增加一条数据
        /// </summary>

        public int Add(USR_CustomerMod model)
        {
            int ret = 0;
            TransactionOptions options = new TransactionOptions();

            options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
            options.Timeout        = TransactionManager.DefaultTimeout;

            using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options))
            {
                ret = dal.Add(model);
                USR_MessageMod m_notice = new USR_MessageMod();
                m_notice.CustomerSysNo = ret;
                m_notice.Context       = AppConst.NewUserWelcome.Replace("@nickname", model.NickName)
                                         .Replace("@userinfourl", AppConfig.HomeUrl() + "Qin/UserInfo.aspx?id=" + model.SysNo)
                                         .Replace("@pointhelpurl", AppConfig.HomeUrl() + "About/HelpCenter.aspx?memo=POINTANDCREDIT");
                m_notice.DR     = 0;
                m_notice.IsRead = 0;
                m_notice.Title  = "欢迎加入上上签";
                m_notice.TS     = DateTime.Now;
                m_notice.Type   = (int)AppEnum.MessageType.notice;
                USR_MessageBll.GetInstance().AddMessage(m_notice);
                scope.Complete();
            }
            return(ret);
        }
Example #2
0
        public ReturnValue <PageInfo <USR_MessageMod> > GetMessageByCustomer(int pagesize, int pageindex, int customersysno)
        {
            int                       total = 0;
            DataTable                 m_dt  = USR_MessageBll.GetInstance().GetMessageByCustomer(customersysno, pagesize, pageindex, AppConst.IntNull, 1, ref total);
            List <USR_MessageMod>     ret   = new List <USR_MessageMod>();
            PageInfo <USR_MessageMod> rett  = new PageInfo <USR_MessageMod>();

            if (m_dt == null || m_dt.Rows.Count == 0)
            {
                rett.List        = ret;
                rett.Total       = total;
                rett.HasNextPage = false;
                return(ReturnValue <PageInfo <USR_MessageMod> > .Get200OK(rett));
            }
            for (int i = 0; i < m_dt.Rows.Count; i++)
            {
                USR_MessageMod tmp_message = MapUSR_Message(m_dt.Rows[i]);
                ret.Add(tmp_message);
            }

            rett.List  = ret;
            rett.Total = total;
            if (pagesize * pageindex >= total)
            {
                rett.HasNextPage = false;
            }
            else
            {
                rett.HasNextPage = true;
            }
            return(ReturnValue <PageInfo <USR_MessageMod> > .Get200OK(rett));
        }
Example #3
0
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public int Add(USR_CustomerMod model)
        {
            int ret = 0;
            TransactionOptions options = new TransactionOptions();
            options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
            options.Timeout = TransactionManager.DefaultTimeout;

            using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options))
            {

                ret =  dal.Add(model);
                USR_MessageMod m_notice = new USR_MessageMod();
                m_notice.CustomerSysNo = ret;
                m_notice.Context = AppConst.NewUserWelcome.Replace("@nickname", model.NickName)
                    .Replace("@userinfourl", AppConfig.HomeUrl() + "Qin/UserInfo.aspx?id="+model.SysNo)
                    .Replace("@pointhelpurl", AppConfig.HomeUrl() + "About/HelpCenter.aspx?memo=POINTANDCREDIT");
                m_notice.DR = 0;
                m_notice.IsRead = 0;
                m_notice.Title = "欢迎加入上上签";
                m_notice.TS = DateTime.Now;
                m_notice.Type = (int)AppEnum.MessageType.notice;
                USR_MessageBll.GetInstance().AddMessage(m_notice);
                scope.Complete();
            }
            return ret;
        }
Example #4
0
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public int Add(USR_MessageMod model)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("insert into USR_Message(");
            strSql.Append("CustomerSysNo,Title,Type,Context,IsRead,DR,TS)");
            strSql.Append(" values (");
            strSql.Append("@CustomerSysNo,@Title,@Type,@Context,@IsRead,@DR,@TS)");
            strSql.Append(";select @@IDENTITY");
            SqlCommand cmd = new SqlCommand(strSql.ToString());
            SqlParameter[] parameters = {
                 new SqlParameter("@CustomerSysNo",SqlDbType.Int,4),
                 new SqlParameter("@Title",SqlDbType.NVarChar,200),
                 new SqlParameter("@Type",SqlDbType.TinyInt,1),
                 new SqlParameter("@Context",SqlDbType.VarChar,1000),
                 new SqlParameter("@IsRead",SqlDbType.TinyInt,1),
                 new SqlParameter("@DR",SqlDbType.TinyInt,1),
                 new SqlParameter("@TS",SqlDbType.DateTime),
             };
            if (model.CustomerSysNo != AppConst.IntNull)
                parameters[0].Value = model.CustomerSysNo;
            else
                parameters[0].Value = System.DBNull.Value;
            cmd.Parameters.Add(parameters[0]);
            if (model.Title != AppConst.StringNull)
                parameters[1].Value = model.Title;
            else
                parameters[1].Value = System.DBNull.Value;
            cmd.Parameters.Add(parameters[1]);
            if (model.Type != AppConst.IntNull)
                parameters[2].Value = model.Type;
            else
                parameters[2].Value = System.DBNull.Value;
            cmd.Parameters.Add(parameters[2]);
            if (model.Context != AppConst.StringNull)
                parameters[3].Value = model.Context;
            else
                parameters[3].Value = System.DBNull.Value;
            cmd.Parameters.Add(parameters[3]);
            if (model.IsRead != AppConst.IntNull)
                parameters[4].Value = model.IsRead;
            else
                parameters[4].Value = System.DBNull.Value;
            cmd.Parameters.Add(parameters[4]);
            if (model.DR != AppConst.IntNull)
                parameters[5].Value = model.DR;
            else
                parameters[5].Value = System.DBNull.Value;
            cmd.Parameters.Add(parameters[5]);
            if (model.TS != AppConst.DateTimeNull)
                parameters[6].Value = model.TS;
            else
                parameters[6].Value = System.DBNull.Value;
            cmd.Parameters.Add(parameters[6]);

            return SqlHelper.ExecuteNonQuery(cmd,parameters);
        }
Example #5
0
        public void AddMessage(USR_MessageMod model)
        {
            TransactionOptions options = new TransactionOptions();
            options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
            options.Timeout = TransactionManager.DefaultTimeout;

            using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options))
            {
                Add(model);
                USR_CustomerBll.GetInstance().AddUnReadInfo(model.CustomerSysNo);

                scope.Complete();
            }
        }
Example #6
0
        /// <summary>
        /// 得到一个对象实体
        /// </summary>

        public USR_MessageMod GetModel(int SysNo)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("select SysNo, CustomerSysNo, Title, Type, Context, IsRead, DR, TS from  USR_Message");
            strSql.Append(" where SysNo=@SysNo ");
            SqlParameter[] parameters =
            {
                new SqlParameter("@SysNo", SqlDbType.Int, 4)
            };
            parameters[0].Value = SysNo;
            USR_MessageMod model = new USR_MessageMod();
            DataSet        ds    = SqlHelper.ExecuteDataSet(strSql.ToString(), parameters);

            if (ds.Tables[0].Rows.Count > 0)
            {
                if (ds.Tables[0].Rows[0]["SysNo"].ToString() != "")
                {
                    model.SysNo = int.Parse(ds.Tables[0].Rows[0]["SysNo"].ToString());
                }
                if (ds.Tables[0].Rows[0]["CustomerSysNo"].ToString() != "")
                {
                    model.CustomerSysNo = int.Parse(ds.Tables[0].Rows[0]["CustomerSysNo"].ToString());
                }
                model.Title = ds.Tables[0].Rows[0]["Title"].ToString();
                if (ds.Tables[0].Rows[0]["Type"].ToString() != "")
                {
                    model.Type = int.Parse(ds.Tables[0].Rows[0]["Type"].ToString());
                }
                model.Context = ds.Tables[0].Rows[0]["Context"].ToString();
                if (ds.Tables[0].Rows[0]["IsRead"].ToString() != "")
                {
                    model.IsRead = int.Parse(ds.Tables[0].Rows[0]["IsRead"].ToString());
                }
                if (ds.Tables[0].Rows[0]["DR"].ToString() != "")
                {
                    model.DR = int.Parse(ds.Tables[0].Rows[0]["DR"].ToString());
                }
                if (ds.Tables[0].Rows[0]["TS"].ToString() != "")
                {
                    model.TS = DateTime.Parse(ds.Tables[0].Rows[0]["TS"].ToString());
                }
                return(model);
            }
            else
            {
                return(null);
            }
        }
Example #7
0
        public void AddMessage(USR_MessageMod model)
        {
            TransactionOptions options = new TransactionOptions();

            options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
            options.Timeout        = TransactionManager.DefaultTimeout;

            using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options))
            {
                Add(model);
                USR_CustomerBll.GetInstance().AddUnReadInfo(model.CustomerSysNo);

                scope.Complete();
            }
        }
Example #8
0
        public USR_MessageMod MapUSR_Message(DataRow input)
        {
            USR_MessageMod ret = new USR_MessageMod();

            ret.Title   = input["Title"].ToString();
            ret.Context = input["Context"].ToString();
            if (input["SysNo"].ToString() != "")
            {
                ret.SysNo = int.Parse(input["SysNo"].ToString());
            }
            if (input["CustomerSysNo"].ToString() != "")
            {
                ret.CustomerSysNo = int.Parse(input["CustomerSysNo"].ToString());
            }
            if (input["IsRead"].ToString() != "")
            {
                ret.IsRead = int.Parse(input["IsRead"].ToString());
            }
            if (input["DR"].ToString() != "")
            {
                ret.DR = int.Parse(input["DR"].ToString());
            }
            if (input["Type"].ToString() != "")
            {
                ret.Type = int.Parse(input["Type"].ToString());
            }
            if (input["TS"].ToString() != "")
            {
                ret.TS = DateTime.Parse(input["TS"].ToString());
            }
            else
            {
                ret.TS = AppConst.DateTimeNull;
            }
            return(ret);
        }
Example #9
0
        /// <summary>
        /// 增加一条数据
        /// </summary>

        public void Add(USR_MessageMod model)
        {
            dal.Add(model);
        }
Example #10
0
        /// <summary>
        /// 更新一条数据
        /// </summary>

        public void Update(USR_MessageMod model)
        {
            dal.Update(model);
        }
Example #11
0
        /// <summary>
        /// 增加一条数据
        /// </summary>

        public int Add(USR_MessageMod model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("insert into USR_Message(");
            strSql.Append("CustomerSysNo,Title,Type,Context,IsRead,DR,TS)");
            strSql.Append(" values (");
            strSql.Append("@CustomerSysNo,@Title,@Type,@Context,@IsRead,@DR,@TS)");
            strSql.Append(";select @@IDENTITY");
            SqlCommand cmd = new SqlCommand(strSql.ToString());

            SqlParameter[] parameters =
            {
                new SqlParameter("@CustomerSysNo", SqlDbType.Int,          4),
                new SqlParameter("@Title",         SqlDbType.NVarChar,   200),
                new SqlParameter("@Type",          SqlDbType.TinyInt,      1),
                new SqlParameter("@Context",       SqlDbType.VarChar,   1000),
                new SqlParameter("@IsRead",        SqlDbType.TinyInt,      1),
                new SqlParameter("@DR",            SqlDbType.TinyInt,      1),
                new SqlParameter("@TS",            SqlDbType.DateTime),
            };
            if (model.CustomerSysNo != AppConst.IntNull)
            {
                parameters[0].Value = model.CustomerSysNo;
            }
            else
            {
                parameters[0].Value = System.DBNull.Value;
            }
            cmd.Parameters.Add(parameters[0]);
            if (model.Title != AppConst.StringNull)
            {
                parameters[1].Value = model.Title;
            }
            else
            {
                parameters[1].Value = System.DBNull.Value;
            }
            cmd.Parameters.Add(parameters[1]);
            if (model.Type != AppConst.IntNull)
            {
                parameters[2].Value = model.Type;
            }
            else
            {
                parameters[2].Value = System.DBNull.Value;
            }
            cmd.Parameters.Add(parameters[2]);
            if (model.Context != AppConst.StringNull)
            {
                parameters[3].Value = model.Context;
            }
            else
            {
                parameters[3].Value = System.DBNull.Value;
            }
            cmd.Parameters.Add(parameters[3]);
            if (model.IsRead != AppConst.IntNull)
            {
                parameters[4].Value = model.IsRead;
            }
            else
            {
                parameters[4].Value = System.DBNull.Value;
            }
            cmd.Parameters.Add(parameters[4]);
            if (model.DR != AppConst.IntNull)
            {
                parameters[5].Value = model.DR;
            }
            else
            {
                parameters[5].Value = System.DBNull.Value;
            }
            cmd.Parameters.Add(parameters[5]);
            if (model.TS != AppConst.DateTimeNull)
            {
                parameters[6].Value = model.TS;
            }
            else
            {
                parameters[6].Value = System.DBNull.Value;
            }
            cmd.Parameters.Add(parameters[6]);

            return(SqlHelper.ExecuteNonQuery(cmd, parameters));
        }
Example #12
0
 /// <summary>
 /// 更新一条数据
 /// </summary>
 public int Update(USR_MessageMod model)
 {
     StringBuilder strSql = new StringBuilder();
     strSql.Append("update USR_Message set ");
     strSql.Append("CustomerSysNo=@CustomerSysNo,");
     strSql.Append("Title=@Title,");
     strSql.Append("Type=@Type,");
     strSql.Append("Context=@Context,");
     strSql.Append("IsRead=@IsRead,");
     strSql.Append("DR=@DR,");
     strSql.Append("TS=@TS");
     strSql.Append(" where SysNo=@SysNo ");
     SqlCommand cmd = new SqlCommand(strSql.ToString());
     SqlParameter[] parameters = {
          new SqlParameter("@SysNo",SqlDbType.Int,4),
          new SqlParameter("@CustomerSysNo",SqlDbType.Int,4),
          new SqlParameter("@Title",SqlDbType.NVarChar,200),
          new SqlParameter("@Type",SqlDbType.TinyInt,1),
          new SqlParameter("@Context",SqlDbType.VarChar,1000),
          new SqlParameter("@IsRead",SqlDbType.TinyInt,1),
          new SqlParameter("@DR",SqlDbType.TinyInt,1),
          new SqlParameter("@TS",SqlDbType.DateTime)
      };
     if (model.SysNo != AppConst.IntNull)
         parameters[0].Value = model.SysNo;
     else
         parameters[0].Value = System.DBNull.Value;
     cmd.Parameters.Add(parameters[0]);
     if (model.CustomerSysNo != AppConst.IntNull)
         parameters[1].Value = model.CustomerSysNo;
     else
         parameters[1].Value = System.DBNull.Value;
     cmd.Parameters.Add(parameters[1]);
     if (model.Title != AppConst.StringNull)
         parameters[2].Value = model.Title;
     else
         parameters[2].Value = System.DBNull.Value;
     cmd.Parameters.Add(parameters[2]);
     if (model.Type != AppConst.IntNull)
         parameters[3].Value = model.Type;
     else
         parameters[3].Value = System.DBNull.Value;
     cmd.Parameters.Add(parameters[3]);
     if (model.Context != AppConst.StringNull)
         parameters[4].Value = model.Context;
     else
         parameters[4].Value = System.DBNull.Value;
     cmd.Parameters.Add(parameters[4]);
     if (model.IsRead != AppConst.IntNull)
         parameters[5].Value = model.IsRead;
     else
         parameters[5].Value = System.DBNull.Value;
     cmd.Parameters.Add(parameters[5]);
     if (model.DR != AppConst.IntNull)
         parameters[6].Value = model.DR;
     else
         parameters[6].Value = System.DBNull.Value;
     cmd.Parameters.Add(parameters[6]);
     if (model.TS != AppConst.DateTimeNull)
         parameters[7].Value = model.TS;
     else
         parameters[7].Value = System.DBNull.Value;
     cmd.Parameters.Add(parameters[7]);
     return SqlHelper.ExecuteNonQuery(cmd, parameters);
 }
Example #13
0
        /// <summary>
        /// 更新一条数据
        /// </summary>

        public int Update(USR_MessageMod model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("update USR_Message set ");
            strSql.Append("CustomerSysNo=@CustomerSysNo,");
            strSql.Append("Title=@Title,");
            strSql.Append("Type=@Type,");
            strSql.Append("Context=@Context,");
            strSql.Append("IsRead=@IsRead,");
            strSql.Append("DR=@DR,");
            strSql.Append("TS=@TS");
            strSql.Append(" where SysNo=@SysNo ");
            SqlCommand cmd = new SqlCommand(strSql.ToString());

            SqlParameter[] parameters =
            {
                new SqlParameter("@SysNo",         SqlDbType.Int,         4),
                new SqlParameter("@CustomerSysNo", SqlDbType.Int,         4),
                new SqlParameter("@Title",         SqlDbType.NVarChar,  200),
                new SqlParameter("@Type",          SqlDbType.TinyInt,     1),
                new SqlParameter("@Context",       SqlDbType.VarChar,  1000),
                new SqlParameter("@IsRead",        SqlDbType.TinyInt,     1),
                new SqlParameter("@DR",            SqlDbType.TinyInt,     1),
                new SqlParameter("@TS",            SqlDbType.DateTime)
            };
            if (model.SysNo != AppConst.IntNull)
            {
                parameters[0].Value = model.SysNo;
            }
            else
            {
                parameters[0].Value = System.DBNull.Value;
            }
            cmd.Parameters.Add(parameters[0]);
            if (model.CustomerSysNo != AppConst.IntNull)
            {
                parameters[1].Value = model.CustomerSysNo;
            }
            else
            {
                parameters[1].Value = System.DBNull.Value;
            }
            cmd.Parameters.Add(parameters[1]);
            if (model.Title != AppConst.StringNull)
            {
                parameters[2].Value = model.Title;
            }
            else
            {
                parameters[2].Value = System.DBNull.Value;
            }
            cmd.Parameters.Add(parameters[2]);
            if (model.Type != AppConst.IntNull)
            {
                parameters[3].Value = model.Type;
            }
            else
            {
                parameters[3].Value = System.DBNull.Value;
            }
            cmd.Parameters.Add(parameters[3]);
            if (model.Context != AppConst.StringNull)
            {
                parameters[4].Value = model.Context;
            }
            else
            {
                parameters[4].Value = System.DBNull.Value;
            }
            cmd.Parameters.Add(parameters[4]);
            if (model.IsRead != AppConst.IntNull)
            {
                parameters[5].Value = model.IsRead;
            }
            else
            {
                parameters[5].Value = System.DBNull.Value;
            }
            cmd.Parameters.Add(parameters[5]);
            if (model.DR != AppConst.IntNull)
            {
                parameters[6].Value = model.DR;
            }
            else
            {
                parameters[6].Value = System.DBNull.Value;
            }
            cmd.Parameters.Add(parameters[6]);
            if (model.TS != AppConst.DateTimeNull)
            {
                parameters[7].Value = model.TS;
            }
            else
            {
                parameters[7].Value = System.DBNull.Value;
            }
            cmd.Parameters.Add(parameters[7]);
            return(SqlHelper.ExecuteNonQuery(cmd, parameters));
        }
Example #14
0
 /// <summary>
 /// 更新一条数据
 /// </summary>
 public void Update(USR_MessageMod model)
 {
     dal.Update(model);
 }
Example #15
0
        /// <summary>
        /// 任务实体
        /// </summary>
        /// <param name="lastExecuteTime"></param>
        public override void Execute(DateTime?lastExecuteTime)
        {
            try
            {
                LogService.Info("任务开始", LogInfoCategory);

                DataTable m_dt = QA_QuestionBll.GetInstance().GetToEndList();
                if (m_dt != null && m_dt.Rows.Count > 0)
                {
                    int total = 0;
                    for (int i = 0; i < m_dt.Rows.Count; i++)
                    {
                        int       sysno    = int.Parse(m_dt.Rows[i]["sysno"].ToString());
                        DataTable m_answer = QA_AnswerBll.GetInstance().GetListByQuest(1, 10000, sysno, ref total);
                        m_answer.Columns.Add("commcount");
                        m_answer.Columns.Add("score");
                        int totalcomm  = 0;
                        int totallenth = 0;
                        int totallove  = 0;
                        int[,] tmpresult = new int[3, 2];
                        for (int j = 0; j < m_answer.Rows.Count; j++)
                        {
                            totallenth += m_answer.Rows[j]["Context"].ToString().Length;
                            totallove  += int.Parse(m_answer.Rows[j]["Love"].ToString());
                            DataTable m_comm = QA_CommentBll.GetInstance().GetListByAnswer(int.Parse(m_answer.Rows[j]["SysNo"].ToString()));
                            totalcomm += m_comm.Rows.Count;
                            m_answer.Rows[j]["commcount"] = m_comm.Rows.Count.ToString();
                            m_answer.Rows[j]["score"]     = 0;
                        }

                        for (int j = 0; j < m_answer.Rows.Count; j++)
                        {
                            double tmp = Convert.ToDouble(m_answer.Rows[j]["Context"].ToString().Length *m_answer.Rows.Count) / Convert.ToDouble(totallenth);
                            tmp -= 1;
                            if (tmp > 0)
                            {
                                m_answer.Rows[j]["score"] = int.Parse(m_answer.Rows[j]["score"].ToString()) + Math.Floor(tmp * 10) * Math.Floor(tmp * 10) * 10;
                            }

                            tmp  = Convert.ToDouble(m_answer.Rows[j]["Love"].ToString()) * Convert.ToDouble(m_answer.Rows.Count) / Convert.ToDouble(totallove);
                            tmp -= 1;
                            if (tmp > 0)
                            {
                                m_answer.Rows[j]["score"] = int.Parse(m_answer.Rows[j]["score"].ToString()) + Math.Floor(tmp * 10) * Math.Floor(tmp * 10) * 5;
                            }

                            tmp  = Convert.ToDouble(m_answer.Rows[j]["commcount"].ToString()) * Convert.ToDouble(m_answer.Rows.Count) / Convert.ToDouble(totalcomm);
                            tmp -= 1;
                            if (tmp > 0)
                            {
                                m_answer.Rows[j]["score"] = int.Parse(m_answer.Rows[j]["score"].ToString()) + Math.Floor(tmp * 10) * Math.Floor(tmp * 10) * 3;
                            }
                        }

                        TransactionOptions options = new TransactionOptions();
                        options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
                        options.Timeout        = TransactionManager.DefaultTimeout;

                        using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options))
                        {
                            m_answer.DefaultView.Sort = "award asc, score desc";
                            DataTable dtTemp = m_answer.DefaultView.ToTable();
                            if (dtTemp.Rows.Count == 1)
                            {
                                QA_AnswerBll.GetInstance().SetAward(QA_AnswerBll.GetInstance().GetModel(int.Parse(dtTemp.Rows[0]["SysNo"].ToString())), QA_QuestionBll.GetInstance().GetModel(int.Parse(m_dt.Rows[i]["SysNo"].ToString())), int.Parse(m_dt.Rows[i]["Award"].ToString()) - QA_AnswerBll.GetInstance().GetUsedAward(int.Parse(dtTemp.Rows[0]["SysNo"].ToString())));
                            }
                            else
                            {
                                int awardremain = int.Parse(m_dt.Rows[i]["Award"].ToString()) - QA_AnswerBll.GetInstance().GetUsedAward(int.Parse(dtTemp.Rows[0]["SysNo"].ToString()));
                                int award1      = awardremain * int.Parse(m_dt.Rows[0]["score"].ToString()) / (int.Parse(m_dt.Rows[0]["score"].ToString()) + int.Parse(m_dt.Rows[1]["score"].ToString()));
                                int award2      = awardremain - award1;
                                QA_AnswerBll.GetInstance().SetAward(QA_AnswerBll.GetInstance().GetModel(int.Parse(dtTemp.Rows[0]["SysNo"].ToString())), QA_QuestionBll.GetInstance().GetModel(int.Parse(m_dt.Rows[i]["SysNo"].ToString())), award1);
                                QA_AnswerBll.GetInstance().SetAward(QA_AnswerBll.GetInstance().GetModel(int.Parse(dtTemp.Rows[1]["SysNo"].ToString())), QA_QuestionBll.GetInstance().GetModel(int.Parse(m_dt.Rows[i]["SysNo"].ToString())), award2);
                            }

                            USR_MessageMod m_notice = new USR_MessageMod();
                            m_notice.CustomerSysNo = int.Parse(m_dt.Rows[i]["CustomerSysNo"].ToString());
                            m_notice.Title         = AppConst.AutoSendAward.Replace("@url", Container.ConfigService.GetAppSetting <string>("HomeUrl", "") + "Quest/Question.aspx?id=" + m_dt.Rows[i]["SysNo"].ToString())
                                                     .Replace("@question", m_dt.Rows[i]["Title"].ToString());
                            m_notice.DR      = 0;
                            m_notice.IsRead  = 0;
                            m_notice.Context = "";
                            m_notice.TS      = DateTime.Now;
                            m_notice.Type    = (int)AppEnum.MessageType.notice;
                            USR_MessageBll.GetInstance().AddMessage(m_notice);

                            scope.Complete();
                            //EventLog.WriteEntry("Hi,I'm wiseman");
                        }
                    }
                }
                LogService.Info("任务结束", LogInfoCategory);
            }
            catch (Exception ex)
            {
                LogService.Error("RewardTask 任务失败", LogInfoCategory);
                LogService.Error(ex, LogInfoCategory);
            }
            finally
            {
                this.NextExecuteTime = DateTime.Now.AddHours(1);
            }
        }
Example #16
0
        /// <summary>
        /// 任务实体
        /// </summary>
        /// <param name="lastExecuteTime"></param>
        public override void Execute(DateTime? lastExecuteTime)
        {
            try
            {
                LogService.Info("任务开始", LogInfoCategory);

                DataTable m_dt = QA_QuestionBll.GetInstance().GetToEndList();
                if (m_dt != null && m_dt.Rows.Count > 0)
                {

                    int total = 0;
                    for (int i = 0; i < m_dt.Rows.Count; i++)
                    {
                        int sysno = int.Parse(m_dt.Rows[i]["sysno"].ToString());
                        DataTable m_answer = QA_AnswerBll.GetInstance().GetListByQuest(1, 10000, sysno, ref total);
                        m_answer.Columns.Add("commcount");
                        m_answer.Columns.Add("score");
                        int totalcomm = 0;
                        int totallenth = 0;
                        int totallove = 0;
                        int[,] tmpresult = new int[3, 2];
                        for (int j = 0; j < m_answer.Rows.Count; j++)
                        {
                            totallenth += m_answer.Rows[j]["Context"].ToString().Length;
                            totallove += int.Parse(m_answer.Rows[j]["Love"].ToString());
                            DataTable m_comm = QA_CommentBll.GetInstance().GetListByAnswer(int.Parse(m_answer.Rows[j]["SysNo"].ToString()));
                            totalcomm += m_comm.Rows.Count;
                            m_answer.Rows[j]["commcount"] = m_comm.Rows.Count.ToString();
                            m_answer.Rows[j]["score"] = 0;
                        }

                        for (int j = 0; j < m_answer.Rows.Count; j++)
                        {
                            double tmp = Convert.ToDouble(m_answer.Rows[j]["Context"].ToString().Length * m_answer.Rows.Count) / Convert.ToDouble(totallenth);
                            tmp -= 1;
                            if (tmp > 0)
                            {
                                m_answer.Rows[j]["score"] = int.Parse(m_answer.Rows[j]["score"].ToString()) + Math.Floor(tmp * 10) * Math.Floor(tmp * 10) * 10;
                            }

                            tmp = Convert.ToDouble(m_answer.Rows[j]["Love"].ToString()) * Convert.ToDouble(m_answer.Rows.Count) / Convert.ToDouble(totallove);
                            tmp -= 1;
                            if (tmp > 0)
                            {
                                m_answer.Rows[j]["score"] = int.Parse(m_answer.Rows[j]["score"].ToString()) + Math.Floor(tmp * 10) * Math.Floor(tmp * 10) * 5;
                            }

                            tmp = Convert.ToDouble(m_answer.Rows[j]["commcount"].ToString()) * Convert.ToDouble(m_answer.Rows.Count) / Convert.ToDouble(totalcomm);
                            tmp -= 1;
                            if (tmp > 0)
                            {
                                m_answer.Rows[j]["score"] = int.Parse(m_answer.Rows[j]["score"].ToString()) + Math.Floor(tmp * 10) * Math.Floor(tmp * 10) * 3;
                            }

                        }

                        TransactionOptions options = new TransactionOptions();
                        options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
                        options.Timeout = TransactionManager.DefaultTimeout;

                        using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options))
                        {

                            m_answer.DefaultView.Sort = "award asc, score desc";
                            DataTable dtTemp = m_answer.DefaultView.ToTable();
                            if (dtTemp.Rows.Count == 1)
                            {
                                QA_AnswerBll.GetInstance().SetAward(QA_AnswerBll.GetInstance().GetModel(int.Parse(dtTemp.Rows[0]["SysNo"].ToString())), QA_QuestionBll.GetInstance().GetModel(int.Parse(m_dt.Rows[i]["SysNo"].ToString())), int.Parse(m_dt.Rows[i]["Award"].ToString()) - QA_AnswerBll.GetInstance().GetUsedAward(int.Parse(dtTemp.Rows[0]["SysNo"].ToString())));
                            }
                            else
                            {
                                int awardremain = int.Parse(m_dt.Rows[i]["Award"].ToString()) - QA_AnswerBll.GetInstance().GetUsedAward(int.Parse(dtTemp.Rows[0]["SysNo"].ToString()));
                                int award1 = awardremain * int.Parse(m_dt.Rows[0]["score"].ToString()) / (int.Parse(m_dt.Rows[0]["score"].ToString()) + int.Parse(m_dt.Rows[1]["score"].ToString()));
                                int award2 = awardremain - award1;
                                QA_AnswerBll.GetInstance().SetAward(QA_AnswerBll.GetInstance().GetModel(int.Parse(dtTemp.Rows[0]["SysNo"].ToString())), QA_QuestionBll.GetInstance().GetModel(int.Parse(m_dt.Rows[i]["SysNo"].ToString())), award1);
                                QA_AnswerBll.GetInstance().SetAward(QA_AnswerBll.GetInstance().GetModel(int.Parse(dtTemp.Rows[1]["SysNo"].ToString())), QA_QuestionBll.GetInstance().GetModel(int.Parse(m_dt.Rows[i]["SysNo"].ToString())), award2);
                            }

                            USR_MessageMod m_notice = new USR_MessageMod();
                            m_notice.CustomerSysNo = int.Parse(m_dt.Rows[i]["CustomerSysNo"].ToString());
                            m_notice.Title = AppConst.AutoSendAward.Replace("@url", AppConfig.HomeUrl() + "Quest/Question.aspx?id=" + m_dt.Rows[i]["SysNo"].ToString())
                                .Replace("@question", m_dt.Rows[i]["Title"].ToString());
                            m_notice.DR = 0;
                            m_notice.IsRead = 0;
                            m_notice.Context = "";
                            m_notice.TS = DateTime.Now;
                            m_notice.Type = (int)AppEnum.MessageType.notice;
                            USR_MessageBll.GetInstance().AddMessage(m_notice);

                            scope.Complete();
                            //EventLog.WriteEntry("Hi,I'm wiseman");
                        }
                    }
                }
                LogService.Info("任务结束", LogInfoCategory);
            }
            catch (Exception ex)
            {
                LogService.Error("RewardTask 任务失败", LogInfoCategory);
                LogService.Error(ex, LogInfoCategory);
            }
            finally
            {
                this.NextExecuteTime = DateTime.Now.AddHours(1);
            }
        }
Example #17
0
        public USR_MessageMod MapUSR_Message(DataRow input)
        {
            USR_MessageMod ret = new USR_MessageMod();

            ret.Title = input["Title"].ToString();
            ret.Context = input["Context"].ToString();
            if (input["SysNo"].ToString() != "")
            {
                ret.SysNo = int.Parse(input["SysNo"].ToString());
            }
            if (input["CustomerSysNo"].ToString() != "")
            {
                ret.CustomerSysNo = int.Parse(input["CustomerSysNo"].ToString());
            }
            if (input["IsRead"].ToString() != "")
            {
                ret.IsRead = int.Parse(input["IsRead"].ToString());
            }
            if (input["DR"].ToString() != "")
            {
                ret.DR = int.Parse(input["DR"].ToString());
            }
            if (input["Type"].ToString() != "")
            {
                ret.Type = int.Parse(input["Type"].ToString());
            }
            if (input["TS"].ToString() != "")
            {
                ret.TS = DateTime.Parse(input["TS"].ToString());
            }
            else
            {
                ret.TS = AppConst.DateTimeNull;
            }
            return ret;
        }
Example #18
0
 /// <summary>
 /// 得到一个对象实体
 /// </summary>
 public USR_MessageMod GetModel(int SysNo)
 {
     StringBuilder strSql = new StringBuilder();
     strSql.Append("select SysNo, CustomerSysNo, Title, Type, Context, IsRead, DR, TS from  USR_Message");
     strSql.Append(" where SysNo=@SysNo ");
     SqlParameter[] parameters = {
     new SqlParameter("@SysNo", SqlDbType.Int,4 )
      		};
     parameters[0].Value = SysNo;
     USR_MessageMod model = new USR_MessageMod();
     DataSet ds = SqlHelper.ExecuteDataSet(strSql.ToString(), parameters);
     if (ds.Tables[0].Rows.Count > 0)
     {
         if (ds.Tables[0].Rows[0]["SysNo"].ToString() != "")
         {
             model.SysNo = int.Parse(ds.Tables[0].Rows[0]["SysNo"].ToString());
         }
         if (ds.Tables[0].Rows[0]["CustomerSysNo"].ToString() != "")
         {
             model.CustomerSysNo = int.Parse(ds.Tables[0].Rows[0]["CustomerSysNo"].ToString());
         }
         model.Title = ds.Tables[0].Rows[0]["Title"].ToString();
         if (ds.Tables[0].Rows[0]["Type"].ToString() != "")
         {
             model.Type = int.Parse(ds.Tables[0].Rows[0]["Type"].ToString());
         }
         model.Context = ds.Tables[0].Rows[0]["Context"].ToString();
         if (ds.Tables[0].Rows[0]["IsRead"].ToString() != "")
         {
             model.IsRead = int.Parse(ds.Tables[0].Rows[0]["IsRead"].ToString());
         }
         if (ds.Tables[0].Rows[0]["DR"].ToString() != "")
         {
             model.DR = int.Parse(ds.Tables[0].Rows[0]["DR"].ToString());
         }
         if (ds.Tables[0].Rows[0]["TS"].ToString() != "")
         {
             model.TS = DateTime.Parse(ds.Tables[0].Rows[0]["TS"].ToString());
         }
         return model;
     }
     else
     {
         return null;
     }
 }
Example #19
0
 /// <summary>
 /// 增加一条数据
 /// </summary>
 public void Add(USR_MessageMod model)
 {
     dal.Add(model);
 }