public static int SetPrize( Dal.Models.Prize prize, List <int> LstPrizeLimitNum, OleDbConnection conn, OleDbTransaction tran) { if (prize == null || string.IsNullOrEmpty(prize.PrizeName) || prize.SpecialtyID == null) { throw new Exception("参数错误!"); } Dal.Models.Specialty specialty = Specialty.GetSpecialty(prize.SpecialtyID.Value, conn, tran); // 所选专业不存在 if (specialty == null) { throw new Exception("所选专业不存在!"); } if ((specialty.ChildCount ?? 0) > 0) { throw new Exception("奖项创建失败,该专业下已存在子专业,无法创建奖项。"); } // 同一专业中,奖项不允许重名 Dal.Models.Prize prizeOriginal = GetPrize(prize.PrizeName, prize.SpecialtyID.Value, conn, tran); if (prizeOriginal != null && prize.PrizeID != prizeOriginal.PrizeID) { throw new Exception("同一专业中,奖项不允许重名!"); } //奖项类别为空时,默认类别为综合奖 if (string.IsNullOrEmpty(prize.PrizeTypeCode) || !(new string[] { "0301", "0302", "0303", "0304" }).Contains(prize.PrizeTypeCode)) { prize.PrizeTypeCode = "0301"; } if (prize.ParticipantLimit == null) { prize.ParticipantLimit = Convert.ToInt32( SysConstant.GetConstant(prize.PrizeTypeCode, conn, tran).CorrelationValue); } if (string.IsNullOrEmpty(prize.TemplateCode)) { prize.TemplateCode = specialty.TemplateCode; } StringBuilder sbSql = new StringBuilder(); if (prize.PrizeID == null) { sbSql.Append(" INSERT INTO Prize ( "); sbSql.Append(" PrizeName"); sbSql.Append(" ,SpecialtyID "); sbSql.Append(" ,PrizeTypeCode "); sbSql.Append(" ,TemplateCode "); sbSql.Append(" ,IsMultipleVoting "); sbSql.Append(" ,VoteType "); sbSql.Append(" ,ParticipantLimit "); sbSql.Append(" ,AppendixDiscription "); sbSql.Append(" ,CreateTime "); sbSql.Append(" ,LastUpdateTime "); sbSql.Append(" ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, GETDATE(), GETDATE() ) "); int iResult = Dal.OleDbHlper.ExecuteNonQuery( sbSql.ToString(), conn, CommandType.Text, tran , new OleDbParameter("@PrizeName", OleDbType.VarWChar) { Value = prize.PrizeName } , new OleDbParameter("@SpecialtyID", OleDbType.Integer) { Value = prize.SpecialtyID } , new OleDbParameter("@PrizeTypeCode", OleDbType.VarWChar) { Value = prize.PrizeTypeCode } , new OleDbParameter("@TemplateCode", OleDbType.VarWChar) { Value = prize.TemplateCode } , new OleDbParameter("@IsMultipleVoting", OleDbType.Boolean) { Value = prize.IsMultipleVoting } , new OleDbParameter("@VoteType", OleDbType.VarWChar) { Value = prize.VoteType } , new OleDbParameter("@ParticipantNumber", OleDbType.Integer) { Value = prize.ParticipantLimit } , new OleDbParameter("@AppendixDiscription", OleDbType.VarWChar) { Value = prize.AppendixDiscription } ); prize.PrizeID = GetPrize(prize.PrizeName, prize.SpecialtyID.Value, conn, tran).PrizeID; } else { sbSql.Append(" UPDATE Prize "); sbSql.Append(" SET PrizeName = ? "); sbSql.Append(" ,IsMultipleVoting = ? "); sbSql.Append(" ,VoteType = ? "); sbSql.Append(" ,ParticipantLimit = ? "); sbSql.Append(" ,AppendixDiscription = ? "); sbSql.Append(" ,LastUpdateTime = GETDATE() "); sbSql.Append(" WHERE PrizeID = ? "); int iResult = Dal.OleDbHlper.ExecuteNonQuery( sbSql.ToString(), conn, CommandType.Text, tran , new OleDbParameter("@PrizeName", OleDbType.VarWChar) { Value = prize.PrizeName } , new OleDbParameter("@IsMultipleVoting", OleDbType.Boolean) { Value = prize.IsMultipleVoting } , new OleDbParameter("@VoteType", OleDbType.VarWChar) { Value = prize.VoteType } , new OleDbParameter("@ParticipantLimit", OleDbType.Integer) { Value = prize.ParticipantLimit } , new OleDbParameter("@AppendixDiscription", OleDbType.VarWChar) { Value = prize.AppendixDiscription } , new OleDbParameter("@PrizeID", OleDbType.Integer) { Value = prize.PrizeID } ); } //奖项数量 SetPrizeLevel(prize, LstPrizeLimitNum, conn, tran); SetOrdinal(prize, conn, tran); return(prize.PrizeID.Value); }
/// <summary> /// 创建活动 /// </summary> /// <param name="activity"></param> /// <returns>活动编号</returns> public static int CreateActivity(Dal.Models.Activity activity, OleDbConnection conn, OleDbTransaction trans = null) { if (string.IsNullOrEmpty(activity.ActivityTypeCode)) { throw new Exception("参数错误"); } if (GetActivity(activity.ActivityTypeCode, conn, trans) != null) { throw new Exception("当前活动类型已经有激活的活动,不能重复创建"); } if (activity.CreateTime == null || activity.LastUpdateTime == null) { activity.CreateTime = DateTime.Now; activity.LastUpdateTime = activity.CreateTime; } if (string.IsNullOrEmpty(activity.ActivityName)) { activity.ActivityName = activity.CreateTime.Value.ToString("yyyy届") + SysConstant.GetConstant(activity.ActivityTypeCode, conn, trans).ConstantValue + "评选活动"; } activity.ActivityStatus = "1101"; StringBuilder sbSql = new StringBuilder(); int? iResult = 0; sbSql.Append(" INSERT INTO Activity ( "); sbSql.Append(" ActivityName "); sbSql.Append(" ,ActivityTypeCode "); sbSql.Append(" ,ActivityStatus "); sbSql.Append(" ,CreateTime "); sbSql.Append(" ,LastUpdateTime "); sbSql.Append(" )VALUES(?, ?, '1101', GETDATE(), GETDATE()) "); iResult = Dal.OleDbHlper.ExecuteNonQuery(sbSql.ToString(), conn, CommandType.Text, trans , new OleDbParameter("@ActivityName", OleDbType.VarWChar) { Value = activity.ActivityName } , new OleDbParameter("@ActivityTypeCode", OleDbType.VarWChar) { Value = activity.ActivityTypeCode }); if (iResult != 1) { throw new Exception("创建失败"); } else { activity.ActivityID = GetActivity(activity.ActivityTypeCode, conn, trans).ActivityID; } // 创建活动的同时,创建基础专业 sbSql.Clear(); sbSql.Append(" INSERT INTO Specialty ( "); sbSql.Append(" ActivityID ,SpecialtyCode ,SpecialtyName ,SpecialtyLevel ,SpecialtyIcon "); sbSql.Append(" , TemplateCode, IsShareQuota, IsInheritSchedule, IsInheritTemplet, IsAllowUpdate "); sbSql.Append(" , ParentID, CreateTime, LastUpdateTime "); sbSql.Append(" , IsSendReceivePost, IsSendUpdatePost, IsSendDeletePost, IsInheritAppendix,IsInheritAtlas "); sbSql.Append(" , Ordinal, TotalOrdinal) "); sbSql.Append(" SELECT ? , SubString(ConstantCode, 3, 2) + '0000', ConstantValue, '一级', CorrelationValue "); sbSql.Append(" , '02' + SubString(ConstantCode, 3, 2), 0, 1, 1, 0 "); sbSql.Append(" , NULL, GETDATE(), GETDATE() "); sbSql.Append(" , 0, 0, 0, 1, 1 "); sbSql.Append(" , SubString(ConstantCode,3,2) , SubString(ConstantCode,3,2) "); sbSql.Append(" FROM SysConstant where ConstantType = '17' "); Dal.OleDbHlper.ExecuteNonQuery(sbSql.ToString(), conn, CommandType.Text, trans , new OleDbParameter("@ActivityID", OleDbType.Integer) { Value = activity.ActivityID }); return activity.ActivityID.Value; }