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

            VoteProjectItemInfoModel voteprojectiteminfo = new VoteProjectItemInfoModel();

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

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

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

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

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

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

            ret = DbUtil.Current.Update(voteprojectiteminfo);

            return(ret);
        }
        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="voteitemid"></param>
        /// <returns>影响的记录行数</returns>
        public int Delete(string voteitemid)
        {
            int ret = 0;

            VoteProjectItemInfoModel voteprojectiteminfo = new VoteProjectItemInfoModel();

            voteprojectiteminfo.VoteItemId = voteitemid;

            ret = DbUtil.Current.Delete(voteprojectiteminfo);

            return(ret);
        }
        // 在此添加你的代码...

        public List <VoteProjectItemInfoModel> GetVoteItemListByProjectId(string projectId)
        {
            string sql = "select * from [vote_project_item_info] where vote_project_id = $projectId$ order by sort_order asc";
            List <VoteProjectItemInfoModel> list = null;
            VoteProjectItemInfoModel        mod  = null;

            ParameterCollection pc = new ParameterCollection();

            pc.Add("projectId", projectId);

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

            VoteProjectItemInfoModel voteprojectiteminfo = new VoteProjectItemInfoModel();
            DataTable dt = DbUtil.Current.RetrieveMultiple(voteprojectiteminfo, pc, obc);

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                voteprojectiteminfo = new VoteProjectItemInfoModel();
                voteprojectiteminfo.ConvertFrom(dt, i);
                voteprojectiteminfos.Add(voteprojectiteminfo);
            }

            return(voteprojectiteminfos);
        }
        /// <summary>
        /// 根据主键获取实体
        /// </summary>
        /// <param name="voteitemid"></param>
        /// <returns>实体</returns>
        public VoteProjectItemInfoModel Retrieve(string voteitemid)
        {
            VoteProjectItemInfoModel voteprojectiteminfo = new VoteProjectItemInfoModel();

            voteprojectiteminfo.VoteItemId = voteitemid;

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

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

            voteprojectiteminfo.ConvertFrom(dt);

            return(voteprojectiteminfo);
        }
        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);
        }