/// <summary> /// 答问卷,分配参数 /// </summary> /// <param name="model"></param> /// <param name="joinLink"></param> /// <returns></returns> public bool JoinSurvey(M_ProjectJoin model, out string joinLink) { /* * 参与流程 * 1.分配参数 * 2.更新参数 * 3.添加参与记录 * 4.更新抽样 */ lock (_lock) { var res = false; joinLink = ""; //获取一个未使用的参数 string query = "select top 1 * from dbo.ProjectPara where [ProjectID]=@ProjectID and [ParaUse]=@ParaUse Order By ID"; SqlParameter[] parameters = { new SqlParameter("@ProjectID", model.ProjectId), new SqlParameter("@ParaUse", "0"), }; var dt = DbHelperSQL.Query(query.ToString(), parameters).Tables[0]; var paraInfo = CommonTool.DataTableConvertToModel <M_ProjectPara>(dt); if (paraInfo == null) { joinLink = "参数已分配完"; return(res); } //更新参数使用状态 string update1 = "update dbo.ProjectPara set [ParaUse]=@ParaUseNew where ID=@ID and ParaUse=@ParaUseOld"; SqlParameter[] parameters1 = { new SqlParameter("@ParaUseNew", "1"), new SqlParameter("@ID", paraInfo.ID), new SqlParameter("@ParaUseOld", "0"), }; //添加参与记录 string add1 = "insert into ProjectJoin(ProjectId,MemberId,JoinTime,Integral,State,ParaID,JoinType,IsJoin,ReturnTime,IsCheck) values (@ProjectId,@MemberId,@JoinTime,@Integral,@State,@ParaID,@JoinType,@IsJoin,@ReturnTime,@IsCheck);"; SqlParameter[] parameters2 = { new SqlParameter("@ProjectId", model.ProjectId), new SqlParameter("@MemberId", model.MemberId), new SqlParameter("@JoinTime", model.JoinTime), new SqlParameter("@Integral", model.Integral), new SqlParameter("@State", model.State), new SqlParameter("@ParaID", paraInfo.ID), new SqlParameter("@JoinType", model.JoinType), new SqlParameter("@IsJoin", model.IsJoin), new SqlParameter("@ReturnTime", model.ReturnTime), new SqlParameter("@IsCheck", model.IsCheck), }; //更新抽样信息 string update2 = "update dbo.ProjectSample set [ParaID]=@ParaID,[IsJoin]=@IsJoin where [ProjectID]=@ProjectID and [MemberID]=@MemberID"; SqlParameter[] parameters3 = { new SqlParameter("@ParaID", paraInfo.ID), new SqlParameter("@IsJoin", 1), new SqlParameter("@ProjectID", model.ProjectId), new SqlParameter("@MemberID", model.MemberId), }; List <string> sqlList = new List <string>(); List <SqlParameter[]> spaList = new List <SqlParameter[]>(); sqlList.AddRange(new string[] { update1, add1, update2 }); spaList.AddRange(new List <SqlParameter[]> { parameters1, parameters2, parameters3 }); var msg = ""; var num = DbHelperSQL.ExecuteSqlTran(sqlList, spaList, out msg); if (num > 0) { res = true; joinLink = paraInfo.ParaS; } else { joinLink = msg; } return(res); } }
/// <summary> /// 参与项目 /// </summary> /// <returns></returns> public string JoinSurvey() { if (Session["userId"] == null) { return(Json("-1", "登录超时,请重新登录!")); } var id = Request["id"] ?? "0"; if (CommonTool.IsNumber(id)) { //是否参与过项目 B_Project b_Project = new B_Project(); var m_pjoin = b_Project.GetProjectJoinModel(id, Session["userId"] + ""); if (m_pjoin != null)//重新参与 { if (m_pjoin.State > 0) { return(Json("0", "您已参与过本次调查")); } else { var paraInfo = b_Project.GetProjectParaModel(m_pjoin.ParaID ?? 0); if (paraInfo == null) { return(Json("0", "参数不存在")); } else { return(Json("1", "[{\"link\":\"" + paraInfo.ParaS + "\"}]", "问卷继续跳转")); } } } else { //新参与的 m_pjoin = new M_ProjectJoin(); string joinLink = ""; m_pjoin.MemberId = Convert.ToInt32(Session["userId"]); m_pjoin.ProjectId = Convert.ToInt32(id); m_pjoin.JoinTime = DateTime.Now; m_pjoin.Integral = 0; m_pjoin.State = 0; m_pjoin.ParaID = 0;//事务分配 m_pjoin.JoinType = 1; m_pjoin.IsJoin = true; m_pjoin.ReturnTime = DateTime.Parse("1900-01-01"); m_pjoin.IsCheck = false; var res = b_Project.JoinSurvey(m_pjoin, out joinLink); if (res && !string.IsNullOrEmpty(joinLink)) { return(Json("1", "[{\"link\":\"" + joinLink + "\"}]", "问卷跳转")); } else { return(Json("0", "参与问卷失败!", joinLink)); } } } else { return(Json("0", "调查ID有误!")); } }
/// <summary> /// 参与问卷 /// </summary> /// <param name="model"></param> /// <param name="joinLink"></param> /// <returns></returns> public bool JoinSurvey(M_ProjectJoin model, out string joinLink) { return(da.JoinSurvey(model, out joinLink)); }