/// <summary> /// 校友信息列表 /// </summary> /// <param name="userID">用户ID</param> /// <param name="alumniList">查询条件实体</param> /// <param name="IsBookMark">查询收藏情况 False:所有校友 True:仅收藏校友</param> /// <returns></returns> public DataSet GetAlumniListByCondition(string userID, AlumniListEntity alumniList, bool IsBookMark) { //Create SQL Text StringBuilder getColumnNamesSB = new StringBuilder(); StringBuilder getAlumniListSB = new StringBuilder(); StringBuilder getAlumnRowCount = new StringBuilder(); StringBuilder getConditionSB = new StringBuilder(); //Is Book Mark string bookMarkCondi = string.Empty; if (IsBookMark) { bookMarkCondi = string.Format("inner join EclubVipBookMark bMark on bMark.ObjectID=R.VIPID and bMark.VipID='{0}' and bMark.CustomerId=R.ClientID and bMark.IsDelete=0 ", userID); } else { bookMarkCondi = ""; } //Get Column Names getColumnNamesSB.Append("select Buss.MobileBussinessDefinedID,Buss.TableName,Buss.ColumnDesc, Buss.ColumnDescEn,Buss.ColumnName from MobileBussinessDefined as Buss "); getColumnNamesSB.Append("inner join MobilePageBlock as Page on Page.MobilePageBlockID=Buss.MobilePageBlockID and Page.CustomerID=Buss.CustomerID and Page.IsDelete = 0 "); getColumnNamesSB.Append("inner join MobileModule as Module on Module.MobileModuleID=Page.MobileModuleID and Module.CustomerID=Page.CustomerID and Module.IsDelete = 0 "); getColumnNamesSB.Append("where Buss.IsDelete = 0 "); getColumnNamesSB.Append("and Buss.ListShowOrder>0 "); getColumnNamesSB.AppendFormat("and Module.MobileModuleID='{0}' and Module.CustomerID='{1}';", alumniList.MobileModuleID, CurrentUserInfo.CurrentLoggingManager.Customer_Id); //获取问卷信息 DataSet columnNamesDT = this.SQLHelper.ExecuteDataset(getColumnNamesSB.ToString()); //创建拼接展示列对象 StringBuilder columnNamesSB = new StringBuilder(); if (columnNamesDT.Tables.Count > 0 && columnNamesDT.Tables[0].Rows.Count > 0) { foreach (DataRow row in columnNamesDT.Tables[0].Rows) { columnNamesSB.AppendFormat(",{0}", row["ColumnName"]); } } //Get Alumni Info List getAlumniListSB.AppendFormat("select VIPID{0},CourseInfoName from(", columnNamesSB.ToString()); getAlumniListSB.AppendFormat("select ROW_NUMBER()over(order by VIPID) as Row ,VipID{0},CourseInfoName from( ", columnNamesSB.ToString()); getAlumniListSB.AppendFormat("select distinct R.VipID{0},Z.CourseInfoName from Vip R ", columnNamesSB.ToString()); getAlumniListSB.Append("inner join EclubVipClassMapping X on X.IsDelete=0 and X.CustomerId=R.ClientID and X.VipID=R.VIPID "); getAlumniListSB.Append("inner join EclubClassInfo as Y on Y.IsDelete=0 and Y.CustomerID=X.CustomerId and Y.ClassInfoID=X.ClassInfoID "); getAlumniListSB.Append("inner join EclubCourseInfo as Z on Z.IsDelete=0 and Z.CustomerID=Y.CustomerId and Z.CourseInfoID=Y.CourseInfoID "); getAlumniListSB.Append(bookMarkCondi); //是否为本班级 StringBuilder sameClassSB = new StringBuilder(); if (alumniList.IsSameClass != null && alumniList.IsSameClass == 1) { sameClassSB.AppendFormat("inner join EclubVipClassMapping as A on A.IsDelete=0 and A.CustomerID=R.ClientID and A.VipID='{0}' ", userID); sameClassSB.Append("inner join EclubVipClassMapping as B on B.IsDelete=0 and B.CustomerID=R.ClientID and B.ClassInfoID=A.ClassInfoID and B.VipID=R.VIPID "); if (IsBookMark) { sameClassSB.AppendFormat("where R.IsDelete=0 and R.ClientID='{0}' ", CurrentUserInfo.CurrentLoggingManager.Customer_Id); } else { //sameClassSB.AppendFormat("where R.IsDelete=0 and R.VIPID != '{0}' and R.ClientID='{1}' ", userID, CurrentUserInfo.CurrentLoggingManager.Customer_Id);//剔除自己 sameClassSB.AppendFormat("where R.IsDelete=0 and R.ClientID='{0}' ", CurrentUserInfo.CurrentLoggingManager.Customer_Id); } } //查询校友信息条件 StringBuilder columnConditionSB = new StringBuilder(); //课程、班级、行业、(省、市、县)、(籍贯、常驻、常往来) StringBuilder sqlRelateSB = new StringBuilder(); //SQL条件 字典集合 Dictionary <string, string> dicSQL = new Dictionary <string, string>(); //根据条件返回关联SQL ColumnCondition(alumniList, columnConditionSB, dicSQL, CurrentUserInfo.CurrentLoggingManager.Customer_Id, userID, IsBookMark); foreach (var item in dicSQL) { sqlRelateSB.Append(item.Value); } //根据请求参数追加SQL Script getAlumniListSB.Append(sqlRelateSB.ToString()); getAlumniListSB.Append(sameClassSB.ToString()); getAlumniListSB.Append(columnConditionSB.ToString()); getAlumniListSB.Append(") as Result "); getAlumniListSB.Append(") as Res "); getAlumniListSB.AppendFormat("where Res.Row between {0}*{1} + 1 and {0}*({1}+1) ;", alumniList.PageSize, alumniList.Page); //获取校友信息总数 getAlumniListSB.Append("select Count(distinct R.VIPID) as RCount from Vip R "); getAlumniListSB.Append(bookMarkCondi); getAlumniListSB.Append(sqlRelateSB.ToString()); getAlumniListSB.Append(sameClassSB.ToString()); getAlumniListSB.Append(columnConditionSB.ToString()); //Return Result return(this.SQLHelper.ExecuteDataset(getAlumniListSB.ToString())); }
/// <summary> /// 我收藏的校友查询列表 /// </summary> /// <param name="userID">用户ID</param> /// <param name="alumniList">查询条件实体</param> /// <returns></returns> public DataSet GetCollectionAlumniLisByCond(string userID, AlumniListEntity alumniList) { return(_currentDAO.GetAlumniListByCondition(userID, alumniList, true)); }
/// <summary> /// Append EclubVip Class Mapping Parameter /// </summary> /// <param name="alumniList">参数实体对象</param> /// <param name="columnConditionSB">StringBuilder拼接对象</param> /// <param name="dicSQL">查询SQL拼接字符串</param> /// <param name="customerID">客户标识</param> /// <param name="userID">用户ID</param> /// <param name="IsBookMark">是否收藏条件</param> private static void ColumnCondition(AlumniListEntity alumniList, StringBuilder columnConditionSB, Dictionary <string, string> dicSQL, string customerID, string userID, bool IsBookMark) { //关联表 StringBuilder classSB = new StringBuilder(); StringBuilder courseSB = new StringBuilder(); StringBuilder citySB = new StringBuilder(); StringBuilder industrySB = new StringBuilder(); if (alumniList.IsSameClass == null || alumniList.IsSameClass == 0) { if (IsBookMark) { columnConditionSB.AppendFormat("where R.IsDelete=0 and R.ClientID='{0}' ", customerID); } else { //columnConditionSB.AppendFormat("where R.IsDelete=0 and R.ClientID='{0}' and R.VIPID != '{1}' ", customerID, userID);//剔除自己 columnConditionSB.AppendFormat("where R.IsDelete=0 and R.ClientID='{0}' ", customerID); } } if (alumniList.Control.Length > 0) { foreach (Control control in alumniList.Control) { if (string.IsNullOrEmpty(control.Value)) { continue; } switch (control.ControlType) { case 1: //文本 case 9: //超文本 columnConditionSB.AppendFormat("and R.{0} like '%{1}%' ", control.ColumnName, control.Value); break; case 2: //数字 case 3: //小数型 case 6: //下拉框 case 7: //单选框 case 27: //省 case 28: //市 case 29: //县 columnConditionSB.AppendFormat("and R.{0}='{1}'", control.ColumnName, control.Value); break; case 4: //日期; columnConditionSB.AppendFormat("and DATEDIFF(DD,R.{0},'{1}') = 0 ", control.ColumnName, control.Value); break; case 5: //时间类型 columnConditionSB.AppendFormat("and DATEDIFF(HH,R.{0},'{1}') = 0 ", control.ColumnName, control.Value); break; case 8: //多选框 { //columnConditionSB.AppendFormat("and R.{0} in({1})", control.ColumnName, TreatQueryPara(control)); if (control != null) { StringBuilder sbCon = new StringBuilder(); sbCon.Append("and ( "); string[] values = control.Value.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < values.Length; i++) { if (i == values.Length - 1) { sbCon.AppendFormat("','+R.{0}+',' like '%,{1},%' ) ", control.ColumnName, values[i]); continue; } sbCon.AppendFormat("','+R.{0}+',' like '%,{1},%' or ", control.ColumnName, values[i]); } columnConditionSB.Append(sbCon.ToString()); } } break; case 10: //密码框 break; case 102: //课程 { courseSB.Clear(); courseSB.Append("inner join EclubVipClassMapping VipMapClass on VipMapClass.VipID=R.VIPID and VipMapClass.IsDelete=0 and VipMapClass.CustomerID=R.ClientID "); courseSB.Append("inner join EclubClassInfo Class on Class.ClassInfoID=VipMapClass.ClassInfoID and Class.IsDelete=0 and Class.CustomerID=VipMapClass.CustomerID "); columnConditionSB.AppendFormat("and Class.CourseInfoID='{0}' ", control.Value); } break; case 103: //班级 { classSB.Clear(); classSB.Append("inner join EclubVipClassMapping VipMapCourse on VipMapCourse.VipID=R.VIPID and VipMapCourse.IsDelete=0 and VipMapCourse.CustomerID=R.ClientID "); columnConditionSB.AppendFormat("and VipMapCourse.ClassInfoID in({0}) ", TreatQueryPara(control)); } break; case 104: //籍贯(市) citySB.Clear(); citySB.Append("inner join EclubVipCityMapping VipMapCity on VipMapCity.VipID=R.VIPID and VipMapCity.IsDelete=0 and VipMapCity.CustomerID=R.ClientID "); columnConditionSB.AppendFormat("and VipMapCity.CityCode='{0}' and VipMapCity.CityType=1 ", control.Value); break; case 105: //常驻 citySB.Clear(); citySB.Append("inner join EclubVipCityMapping VipMapCity on VipMapCity.VipID=R.VIPID and VipMapCity.IsDelete=0 and VipMapCity.CustomerID=R.ClientID "); columnConditionSB.AppendFormat("and VipMapCity.CityCode in({0}) and VipMapCity.CityType=2 ", TreatQueryPara(control)); break; case 106: //常往来 citySB.Clear(); citySB.Append("inner join EclubVipCityMapping VipMapCity on VipMapCity.VipID=R.VIPID and VipMapCity.IsDelete=0 and VipMapCity.CustomerID=R.ClientID "); columnConditionSB.AppendFormat("and VipMapCity.CityCode='{0}' and VipMapCity.CityType=3 ", control.Value); break; case 107: //行业 industrySB.Clear(); industrySB.Append("inner join EclubVipIndustryMapping VipMapIndust on VipMapIndust.VipID=R.VIPID and VipMapIndust.IsDelete=0 and VipMapIndust.CustomerID=R.ClientID "); industrySB.Append("inner join EclubIndustry Industry on Industry.IndustryID=VipMapIndust.IndustryID and VipMapIndust.CustomerID=Industry.CustomerID and Industry.IsDelete=0 "); columnConditionSB.AppendFormat("and Industry.IndustryID in({0}) ", TreatQueryPara(control)); break; default: break; } } //Set Key Value dicSQL.Add("City", citySB.ToString()); dicSQL.Add("Course", courseSB.ToString()); dicSQL.Add("Class", classSB.ToString()); dicSQL.Add("Industry", industrySB.ToString()); } }
/// <summary> /// 校友信息列表 /// </summary> /// <param name="userID">用户ID</param> /// <param name="alumniList">查询条件实体</param> /// <returns></returns> public DataSet GetAlumniListByCondition(string userID, AlumniListEntity alumniList) { return(_currentDAO.GetAlumniListByCondition(userID, alumniList, false)); }