/// <summary>
        /// 删除
        /// </summary>
        /// <param name="pc">pc</param>
        /// <returns>影响的记录行数</returns>
        public int DeleteMultiple(ParameterCollection pc)
        {
            int ret = 0;

            RelUserVoteitemModel reluservoteitem = new RelUserVoteitemModel();

            ret = DbUtil.Current.DeleteMultiple(reluservoteitem, pc);

            return(ret);
        }
        /// <summary>
        /// 更新
        /// </summary>
        /// <param name="reluservoteitem">实体</param>
        /// <param name="pc">pc</param>
        /// <returns>影响的记录行数</returns>
        public int UpdateMultiple(RelUserVoteitemModel reluservoteitem, ParameterCollection pc)
        {
            int ret = 0;

            reluservoteitem.ModifiedBy = SessionUtil.Current.UserId;
            reluservoteitem.ModifiedOn = DateTime.Now;

            ret = DbUtil.Current.UpdateMultiple(reluservoteitem, pc);

            return(ret);
        }
        /// <summary>
        /// 更新
        /// </summary>
        /// <param name="reluservoteitem">实体</param>
        /// <returns>影响的记录行数</returns>
        public int Update(RelUserVoteitemModel reluservoteitem)
        {
            int ret = 0;

            reluservoteitem.ModifiedBy = SessionUtil.Current.UserId;
            reluservoteitem.ModifiedOn = DateTime.Now;

            ret = DbUtil.Current.Update(reluservoteitem);

            return(ret);
        }
Example #4
0
        protected void gvVoteItem_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            if (SessionUtil.Current == null)
            {
                ShowLoginBox();
                return;
            }

            if (SessionUtil.Current.IsLogin == false)
            {
                ShowLoginBox();
                return;
            }

            GridViewRow row      = gvVoteItem.Rows[e.RowIndex];
            TextBox     txtScore = (TextBox)row.Cells[3].FindControl("txtScore");

            if (CharacterUtil.isNumber(txtScore.Text.Trim()) == false)
            {
                ShowMessageBox("请填写一个0至100的数字分数值");
                return;
            }

            int score = Convert.ToInt32(txtScore.Text.Trim());

            if (score < 0 || score > 100)
            {
                ShowMessageBox("请填写一个0至100的数字分数值");
                return;
            }

            string message = "操作失败,请与管理员联系";
            //HiddenField hidVoteItemId = (HiddenField)row.Cells[5].FindControl("hidVoteItemId");

            RelUserVoteitemModel voteInfo = new RelUserVoteitemModel();

            voteInfo.UserId        = SessionUtil.Current.UserId;
            voteInfo.VoteProjectId = "A0B4B4C5-B196-48E2-B00D-7E50921E0675";
            voteInfo.VoteItemId    = gvVoteItem.DataKeys[e.RowIndex].Value.ToString();
            voteInfo.Score         = txtScore.Text;
            voteInfo.Status        = 0;

            if (VoteProjectItemInfoService.Instance.ProjectItemVote(voteInfo, out message))
            {
                ShowMessageBox(message);
                gvVoteItem.EditIndex = -1;
                BindVoteItemData();
            }
            else
            {
                ShowMessageBox(message);
            }
        }
        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="uservoteid"></param>
        /// <returns>影响的记录行数</returns>
        public int Delete(string uservoteid)
        {
            int ret = 0;

            RelUserVoteitemModel reluservoteitem = new RelUserVoteitemModel();

            reluservoteitem.UserVoteId = uservoteid;

            ret = DbUtil.Current.Delete(reluservoteitem);

            return(ret);
        }
        /// <summary>
        /// 根据条件获取实体集合
        /// </summary>
        /// <param name="pc">pc</param>
        /// <param name="obc">obc</param>
        /// <returns>实体</returns>
        public List <RelUserVoteitemModel> RetrieveMultiple(ParameterCollection pc, OrderByCollection obc)
        {
            List <RelUserVoteitemModel> reluservoteitems = new List <RelUserVoteitemModel>();

            RelUserVoteitemModel reluservoteitem = new RelUserVoteitemModel();
            DataTable            dt = DbUtil.Current.RetrieveMultiple(reluservoteitem, pc, obc);

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                reluservoteitem = new RelUserVoteitemModel();
                reluservoteitem.ConvertFrom(dt, i);
                reluservoteitems.Add(reluservoteitem);
            }

            return(reluservoteitems);
        }
        /// <summary>
        /// 根据主键获取实体
        /// </summary>
        /// <param name="uservoteid"></param>
        /// <returns>实体</returns>
        public RelUserVoteitemModel Retrieve(string uservoteid)
        {
            RelUserVoteitemModel reluservoteitem = new RelUserVoteitemModel();

            reluservoteitem.UserVoteId = uservoteid;

            DataTable dt = DbUtil.Current.Retrieve(reluservoteitem);

            if (dt.Rows.Count < 1)
            {
                return(null);
            }

            reluservoteitem.ConvertFrom(dt);

            return(reluservoteitem);
        }
        public bool ProjectItemVote(RelUserVoteitemModel voteInfo, out string message)
        {
            bool result = false;

            message = "操作失败,请与管理员联系";

            if (voteInfo == null)
            {
                message = "参数错误,请与管理员联系";
                return(false);
            }

            if (voteInfo.VoteProjectId == null || voteInfo.VoteItemId == null || voteInfo.Score == null)
            {
                message = "参数错误,未能正确获取投票项目ID, 请与管理员联系";
                return(false);
            }

            VoteProjectInfoModel projectInfo = VoteProjectInfoService.Instance.Retrieve(voteInfo.VoteProjectId);

            if (projectInfo == null)
            {
                message = "未能正确获取投票项目信息,请与管理员联系";
                return(false);
            }

            if (projectInfo.CanAnonymous == 1)
            {
                if (SessionUtil.Current == null || SessionUtil.Current.IsLogin == false)
                {
                    message = "本投票项目设置为不能进行匿名投票,请登录系统";
                    return(false);
                }
            }

            VoteProjectItemInfoModel itemInfo = Retrieve(voteInfo.VoteItemId);

            if (itemInfo == null)
            {
                message = "未能正确获取投票栏目信息,请与管理员联系";
                return(false);
            }



            string sql             = "select * from rel_user_voteitem where [USER_ID]= $userId$ and vote_item_id = $voteId$";
            ParameterCollection pc = new ParameterCollection();

            pc.Add("userId", SessionUtil.Current.UserId);
            pc.Add("voteId", voteInfo.VoteItemId);

            List <RelUserVoteitemModel> userVoteList = ModelConvertFrom <RelUserVoteitemModel>(ExecuteDataTable(sql, pc));

            if (projectInfo.CanMuiltVote == 1 && projectInfo.CanModifyVote == 1 && userVoteList != null && userVoteList.Count > 0)
            {
                message = "操作中止,本项目设置不可重复投票评分";
                return(false);
            }

            try
            {
                BeginTransaction();

                voteInfo.UserVoteId = GetGuid();
                voteInfo.UserId     = SessionUtil.Current.UserId;

                // 如果可以重复投票
                if (projectInfo.CanMuiltVote == 0)
                {
                    if (RelUserVoteitemService.Instance.Create(voteInfo) != 1)
                    {
                        RollbackTransaction();
                        message = "保存用户投票信息失败,请与管理员联系";
                        return(false);
                    }

                    itemInfo.VoteTotal++;
                    itemInfo.VoteScore += Convert.ToInt32(voteInfo.Score);

                    if (Update(itemInfo) != 1)
                    {
                        RollbackTransaction();
                        message = "更新投票栏目信息失败,请与管理员联系";
                        return(false);
                    }
                }
                else
                {
                    if (userVoteList == null || userVoteList.Count == 0)
                    {
                        // 如果未还进行过投票
                        if (RelUserVoteitemService.Instance.Create(voteInfo) != 1)
                        {
                            RollbackTransaction();
                            message = "保存用户投票信息失败,请与管理员联系";
                            return(false);
                        }

                        itemInfo.VoteTotal++;
                        itemInfo.VoteScore += Convert.ToInt32(voteInfo.Score);

                        if (Update(itemInfo) != 1)
                        {
                            RollbackTransaction();
                            message = "更新投票栏目信息失败,请与管理员联系";
                            return(false);
                        }
                    }
                    else
                    {
                        if (projectInfo.CanModifyVote == 0)
                        {
                            // 如果已经投过票,并允许修改
                            voteInfo.UserVoteId = userVoteList[0].UserVoteId;

                            if (RelUserVoteitemService.Instance.Update(voteInfo) != 1)
                            {
                                RollbackTransaction();
                                message = "更新用户投票信息失败,请与管理员联系";
                                return(false);
                            }

                            itemInfo.VoteScore = itemInfo.VoteScore - Convert.ToInt32(userVoteList[0].Score);
                            itemInfo.VoteScore = itemInfo.VoteScore + Convert.ToInt32(voteInfo.Score);

                            if (Update(itemInfo) != 1)
                            {
                                RollbackTransaction();
                                message = "更新投票栏目信息失败,请与管理员联系";
                                return(false);
                            }
                        }
                        else
                        {
                            RollbackTransaction();
                            message = "操作中止,栏目设置不可修改投票评分";
                            return(false);
                        }
                    }
                }

                CommitTransaction();
                message = "操作成功";
                result  = true;
            }
            catch (Exception ex)
            {
                RollbackTransaction();
                message = string.Format("提交投票评分信息异常! {0}。请与管理员联系", ex.Message);
                result  = false;
            }

            return(result);
        }