/// <summary> /// 新增 /// </summary> /// <param name="model"></param> /// <returns></returns> public string Add(Mcoupon model) { MwxResult mwxResult = new MwxResult() { errcode = -1 }; try { DateTime dateTimeNow = System.DateTime.Now; model.isDelete = "0"; model.isEffective = "1"; model.great_time = dateTimeNow; model.modify_time = dateTimeNow; model.id = PublicTools.GetRandomNumberByTime(); if (new CouponService().Add(model)) { mwxResult.errcode = 0; mwxResult.errmsg = "操作成功!"; } else { mwxResult.errmsg = "操作失败!"; } } catch (Exception ex) { mwxResult.errmsg = "操作失败!"; } return(JsonHelper.GetJson <MwxResult>(mwxResult)); }
/// <summary> /// 新增产品分类方法接口 /// </summary> /// <returns></returns> public string AddMeth(Mcoupon model) { if (!base.CheckIsLogin()) { return("-1"); } return(new CouponBus().Add(model)); }
/// <summary> /// 获取参数化查询对象 /// </summary> /// <param name="model"></param> /// <returns></returns> private List <MySqlParameter> GetMySqlParameterListByModel(Mcoupon model) { List <MySqlParameter> parameterList = new List <MySqlParameter>(); MySqlParameter parameter = new MySqlParameter("?id", MySqlDbType.VarChar, 25); parameter.Value = model.id; parameterList.Add(parameter); parameter = new MySqlParameter("?name", MySqlDbType.VarChar, 100); parameter.Value = model.name; parameterList.Add(parameter); parameter = new MySqlParameter("?price", MySqlDbType.Decimal); parameter.Value = model.price; parameterList.Add(parameter); parameter = new MySqlParameter("?consumAmount", MySqlDbType.Decimal); parameter.Value = model.consumAmount; parameterList.Add(parameter); parameter = new MySqlParameter("?effectiveStart", MySqlDbType.DateTime); parameter.Value = model.effectiveStart; parameterList.Add(parameter); parameter = new MySqlParameter("?effectiveEnd", MySqlDbType.DateTime); parameter.Value = model.effectiveEnd; parameterList.Add(parameter); parameter = new MySqlParameter("?creatCount", MySqlDbType.Int32); parameter.Value = model.creatCount; parameterList.Add(parameter); parameter = new MySqlParameter("?useCount", MySqlDbType.Int32); parameter.Value = model.useCount; parameterList.Add(parameter); parameter = new MySqlParameter("?isDelete", MySqlDbType.Int16, 1); parameter.Value = model.isDelete; parameterList.Add(parameter); parameter = new MySqlParameter("?isEffective", MySqlDbType.Int16, 1); parameter.Value = model.isEffective; parameterList.Add(parameter); DateTime dateTime = System.DateTime.Now; parameter = new MySqlParameter("?great_time", MySqlDbType.DateTime); parameter.Value = dateTime; parameterList.Add(parameter); parameter = new MySqlParameter("?modify_time", MySqlDbType.DateTime); parameter.Value = dateTime; parameterList.Add(parameter); return(parameterList); }
/// <summary> /// 新增 /// </summary> /// <param name="model"></param> /// <returns></returns> public bool Add(Mcoupon model) { //// sql语句 string sql = "INSERT INTO coupon (id,name,price,consumAmount,effectiveStart,effectiveEnd,creatCount,useCount,isDelete,isEffective,great_time,modify_time) " + "VALUES (?id,?name,?price,?consumAmount,?effectiveStart,?effectiveEnd,?creatCount,?useCount,?isDelete,?isEffective,?great_time,?modify_time)"; List <MySqlParameter> parameterList = GetMySqlParameterListByModel(model); //// 执行操作 return(PKMySqlHelper.ExecuteNonQuery(sql, parameterList.ToArray()) > 0); }
/// <summary> /// 活动加息券 /// </summary> /// 常规活动 加息券奖励 未记录系统信息及奖励流水 //与红包方法一致GeneralActCoupon /// </summary> /// <param name="registerid">用户id</param> /// <param name="investAmt">投资金额</param> /// <param name="hat">活动对象</param> /// <returns>list 用户活动奖励记录集合</returns> /// <returns></returns> ActTypeId=3 private List <hx_UserAct> GeneralActInterestRatesPlus(int registerid, decimal investAmt, hx_ActivityTable hat) { List <hx_UserAct> t = new List <hx_UserAct>(); if (hat != null) { hx_UserAct hua = new hx_UserAct(); Mcoupon mcp = new Mcoupon(); JavaScriptSerializer js = new JavaScriptSerializer(); mcp = js.Deserialize <Mcoupon>(hat.ActRule); //获取用户活动表对象 t = OPMcoupon(mcp, hat, registerid, investAmt); } return(t); }
/// <summary> /// 常规活动 加息券奖励 未记录系统信息及奖励流水 //与红包方法一致GeneralActCoupon /// </summary> /// <param name="registerid">用户id</param> /// <param name="investAmt">投资金额</param> /// <param name="hat">活动对象</param> /// <returns>list 用户活动奖励记录集合</returns> /// <returns></returns> private List <hx_UserAct> GeneralActInterestRatesPlus(int registerid, decimal investAmt, hx_ActivityTable hat) { List <hx_UserAct> t = new List <hx_UserAct>(); //hx_ActivityTable hat = GetActTableInfo(ActTypeId, ActUser, 1); if (hat != null) { Mcoupon mcp = new Mcoupon(); JavaScriptSerializer js = new JavaScriptSerializer(); mcp = js.Deserialize <Mcoupon>(hat.ActRule); //发放加息券奖励 t = OPMcoupon(mcp, hat, registerid, investAmt); } return(t); }
/// <summary> /// 活动加息券 /// </summary> /// <param name="registerid"></param> /// <param name="investAmt"></param> /// <param name="ActTypeId">活动类型</param> /// <param name="ActUser"></param> /// <returns></returns> private List <hx_UserAct> InviteActInterestRatesPlus(int registerid, string targetPlatform, decimal investAmt, int ActTypeId = 3, int ActUser = 0) { List <hx_UserAct> t = new List <hx_UserAct>(); hx_ActivityTable hat = GetActTableInfo(ActTypeId, targetPlatform, ActUser, 1); if (hat != null) { hx_UserAct hua = new hx_UserAct(); Mcoupon mcp = new Mcoupon(); JavaScriptSerializer js = new JavaScriptSerializer(); mcp = js.Deserialize <Mcoupon>(hat.ActRule); //获取用户活动表对象 t = OPMcoupon(mcp, hat, registerid, investAmt); } return(t); }
private decimal GetCouponAmtByInvestAmt(Mcoupon mcp, decimal InvestAmt) { decimal amt = 0.00M; foreach (MAmtList item in mcp.MAmtList) { if (item.startAmt <= InvestAmt && (item.endAmt == 0 || item.endAmt >= InvestAmt)) { if (mcp.rule == 2) //按投资赠送 ,随机赠送逻辑单独进行 { amt = item.percent; break; } } } return(amt); }
/// <summary> /// 根据id获取 /// </summary> /// <param name="id"></param> /// <returns></returns> public Mcoupon GetById(string id) { Mcoupon model = null; string sql = " SELECT id,name,price,consumAmount,effectiveStart,effectiveEnd,creatCount,useCount,isDelete,isEffective,great_time,modify_time " + $" FROM coupon WHERE id=?id ; "; MySqlParameter[] parameterList = new MySqlParameter[1]; MySqlParameter parameter = new MySqlParameter("?id", MySqlDbType.VarChar, 25); parameter.Value = id; parameterList[0] = parameter; using (MySqlDataReader sqlDataReader = PKMySqlHelper.ExecuteReader(sql, parameterList)) { if (sqlDataReader.Read()) { model = new Mcoupon(); model.id = sqlDataReader["id"] != DBNull.Value ? sqlDataReader["id"].ToString() : string.Empty; model.name = sqlDataReader["name"] != DBNull.Value ? sqlDataReader["name"].ToString() : string.Empty; model.price = sqlDataReader["price"] != DBNull.Value ? Convert.ToDecimal(sqlDataReader["price"].ToString()) : 0M; model.consumAmount = sqlDataReader["consumAmount"] != DBNull.Value ? Convert.ToDecimal(sqlDataReader["consumAmount"].ToString()) : 0M; model.effectiveStart = sqlDataReader["effectiveStart"] != DBNull.Value ? Convert.ToDateTime(sqlDataReader["effectiveStart"].ToString()) : DateTime.MinValue; model.effectiveEnd = sqlDataReader["effectiveEnd"] != DBNull.Value ? Convert.ToDateTime(sqlDataReader["effectiveEnd"].ToString()) : DateTime.MinValue; model.creatCount = sqlDataReader["creatCount"] != DBNull.Value ? Convert.ToInt32(sqlDataReader["creatCount"].ToString()) : 0; model.useCount = sqlDataReader["useCount"] != DBNull.Value ? Convert.ToInt32(sqlDataReader["useCount"].ToString()) : 0; model.isEffective = sqlDataReader["isEffective"] != DBNull.Value ? sqlDataReader["isEffective"].ToString() : string.Empty; model.isDelete = sqlDataReader["isEffective"] != DBNull.Value ? sqlDataReader["isEffective"].ToString() : string.Empty; model.great_time = sqlDataReader["great_time"] != DBNull.Value ? Convert.ToDateTime(sqlDataReader["great_time"].ToString()) : DateTime.MinValue; model.modify_time = sqlDataReader["modify_time"] != DBNull.Value ? Convert.ToDateTime(sqlDataReader["modify_time"].ToString()) : DateTime.MinValue; } } return(model); }
/// <summary> /// 分页获取新闻信息 /// </summary> /// <param name="pagIndex">页码(第一页从1 开始)</param> /// <param name="pagCount">每页数据条数</param> /// <returns></returns> public List <Mcoupon> GetNewsPagList(int pagIndex, int pagCount) { string sql = " SELECT id,name,price,consumAmount,effectiveStart,effectiveEnd,creatCount,useCount,isDelete,isEffective,great_time,modify_time " + $" FROM coupon WHERE 1=1 and isDelete=0 ORDER BY 1 desc ,1 desc limit {((pagIndex - 1) * pagCount)}, {pagCount}; "; List <Mcoupon> listModel = null; using (MySqlDataReader sqlDataReader = PKMySqlHelper.ExecuteReader(sql, null)) { if (sqlDataReader != null) { listModel = new List <Mcoupon>(); while (sqlDataReader.Read()) { Mcoupon model = new Mcoupon(); model.id = sqlDataReader["id"] != DBNull.Value ? sqlDataReader["id"].ToString() : string.Empty; model.name = sqlDataReader["name"] != DBNull.Value ? sqlDataReader["name"].ToString() : string.Empty; model.price = sqlDataReader["price"] != DBNull.Value ? Convert.ToDecimal(sqlDataReader["price"].ToString()) : 0M; model.consumAmount = sqlDataReader["consumAmount"] != DBNull.Value ? Convert.ToDecimal(sqlDataReader["consumAmount"].ToString()) : 0M; model.effectiveStart = sqlDataReader["effectiveStart"] != DBNull.Value ? Convert.ToDateTime(sqlDataReader["effectiveStart"].ToString()) : DateTime.MinValue; model.effectiveEnd = sqlDataReader["effectiveEnd"] != DBNull.Value ? Convert.ToDateTime(sqlDataReader["effectiveEnd"].ToString()) : DateTime.MinValue; model.creatCount = sqlDataReader["creatCount"] != DBNull.Value ? Convert.ToInt32(sqlDataReader["creatCount"].ToString()) : 0; model.useCount = sqlDataReader["useCount"] != DBNull.Value ? Convert.ToInt32(sqlDataReader["useCount"].ToString()) : 0; model.isEffective = sqlDataReader["isEffective"] != DBNull.Value ? sqlDataReader["isEffective"].ToString() : string.Empty; model.isDelete = sqlDataReader["isEffective"] != DBNull.Value ? sqlDataReader["isEffective"].ToString() : string.Empty; model.great_time = sqlDataReader["great_time"] != DBNull.Value ? Convert.ToDateTime(sqlDataReader["great_time"].ToString()) : DateTime.MinValue; model.modify_time = sqlDataReader["modify_time"] != DBNull.Value ? Convert.ToDateTime(sqlDataReader["modify_time"].ToString()) : DateTime.MinValue; listModel.Add(model); } } } return(listModel); }
public bool SendCash(int actID, int Registerid) { bool t = false; chuangtouEntities ef = new chuangtouEntities(); hx_ActivityTable hat = new ActFacade().GetActivityModel(actID); //GetActTableInfo(ActTypeId, ActUser, 1); if (hat != null) { //判是否过期 if (hat.ActStarttime <= DateTime.Now && DateTime.Now <= hat.ActEndtime) { string ActRule = hat.ActRule; List <MAmtList> mlist = new List <MAmtList>(); JavaScriptSerializer js = new JavaScriptSerializer(); //MActCash mc = new MActCash(); Mcoupon mcp = new Mcoupon(); mcp = js.Deserialize <Mcoupon>(ActRule); //mlist = js.Deserialize<List<MAmtList>>(ActRule); //检查分发奖励是否超过顶限,如果超过直接跳过 //int TopNum = B_usercenter.GetTopNum(hat.ActID); //项目已经发放的金额 //decimal totalAmt = B_usercenter.GetTopAmtCount(hat.ActID); //第一次投资获取对应奖励 decimal actamt = mcp.cash;//GetActAmt(mc, InvestAmt, TopNum); //if (mc.TopAmt > totalAmt && mc.TopNum > TopNum) //{ t = true; if (actamt > 0)//大于 0里写入对应的奖励数据 { hx_UserAct hua = new hx_UserAct(); hua.ActTypeId = hat.ActTypeId; hua.registerid = Registerid; hua.RewTypeID = hat.RewTypeID; hua.ActID = hat.ActID; hua.Amt = actamt; hua.Uselower = 0.00M; hua.Usehight = 0.00M; hua.AmtEndtime = DateTime.Parse(hat.ActEndtime.ToString()).AddMonths(1); hua.AmtUses = 1; //没指定情况下默认为单独使用 hua.UseState = 5; //现金未转账 hua.UseTime = DateTime.Now; hua.AmtProid = 0; //未使用默认为0 hua.ISSmsOne = 0; hua.IsSmsThree = 0; hua.isSmsFifteen = 0; hua.IsSmsSeven = 0; hua.isSmsSixteen = 0; hua.OrderID = decimal.Parse(Utils.Createcode()); hua.Createtime = DateTime.Now; hua.Title = hat.ActName; hua.UseLifeLoan = ""; ef.hx_UserAct.Add(hua); int i = ef.SaveChanges(); if (i > 0) { //录入成功,后进行转账操作 //1.获取用户对向 M_member_table p = new M_member_table(); B_member_table o = new B_member_table(); p = o.GetModel(Registerid); if (p != null) { //2.调用商户向用户转账接口 Transfer tf = new Transfer(); ReTransfer retf = tf.ToUserTransfer(p.UsrCustId, actamt, hua.OrderID.ToString(), hua.ActID.ToString(), "/Thirdparty/ToUserTransfer"); if (retf != null) { if (retf.RespCode == "000") { //3.事务处理操作账户及插入流水 #region 验签缓存处理 string cachename = retf.OrdId + "ToUserTransfer" + retf.InCustId; if (Utils.GeTThirdCache(cachename) == 0) { Utils.SetThirdCache(cachename); B_usercenter BUC = new B_usercenter(); int ic = BUC.UpateActToUserTransfer(retf, 0); //用户余更新 if (ic > 0) { string sql = "SELECT registerid,username,mobile from hx_member_table where UsrCustId='" + retf.InCustId + "'"; DataTable dt = DbHelperSQL.GET_DataTable_List(sql); if (dt.Rows.Count > 0) { /*短信接口*/ #region 流水信息 B_usercenter ors = new B_usercenter(); decimal di = ors.GetUsridAvailable_balance(int.Parse(dt.Rows[0]["registerid"].ToString())); // di = di + decimal.Parse(hua.Amt.ToString()); StringBuilder strSql = new StringBuilder(); strSql.Append("insert into hx_Capital_account_water("); strSql.Append("membertable_registerid,income,expenditure,time_of_occurrence,account_balance,types_Finance,createtime,keyid,remarks)"); strSql.Append(" values ("); strSql.Append("" + int.Parse(dt.Rows[0]["registerid"].ToString()) + "," + decimal.Parse(hua.Amt.ToString()) + ",0,'" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "'," + di + "," + (int)Enum.Parse(typeof(EnumTypesFinance), EnumTypesFinance.现金奖励.ToString()) + ",'" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "',0,'" + "现金奖励" + "')"); DbHelperSQL.RunSql(strSql.ToString()); strSql.Clear(); #endregion #region 奖励流水 M_bonus_account_water mbaw = new M_bonus_account_water(); B_bonus_account_water bbaw = new B_bonus_account_water(); DateTime dte = DateTime.Now; mbaw.bonus_account_id = int.Parse(hua.ActID.ToString()); mbaw.membertable_registerid = int.Parse(dt.Rows[0]["registerid"].ToString()); mbaw.income = decimal.Parse(retf.TransAmt); mbaw.expenditure = 0.00M; mbaw.time_of_occurrence = DateTime.Now; mbaw.award_description = hat.ActName + "奖励已汇入个人账户"; mbaw.water_type = 0; bbaw.Add(mbaw); #endregion #region MyRegion 系统消息 DateTime dti = DateTime.Now; M_td_System_message pm = new M_td_System_message(); pm.MReg = int.Parse(dt.Rows[0]["registerid"].ToString()); pm.Mstate = 0; pm.MTitle = hat.ActName; pm.MContext = "尊敬的用户" + dt.Rows[0]["username"].ToString() + ":您好!恭喜您成功" + hat.ActName + ",现金奖励 " + retf.TransAmt + "元。如有问题可咨询创利投的客服!"; pm.PubTime = dti; B_usercenter.AddMessage(pm); #endregion } } t = true; } #endregion } } } } } //} } } return(t); }
/// <summary> /// 发放奖励 /// </summary> /// <param name="activity"></param> /// <param name="registerID"></param> private void DrawBonus(hx_ActivityTable activity, int registerID) { chuangtouEntities ef = new chuangtouEntities(); B_bonus_account bb = new B_bonus_account(); M_bonus_account mb = new M_bonus_account(); M_bonus_account_water mbaw = new M_bonus_account_water(); B_bonus_account_water bbaw = new B_bonus_account_water(); DateTime dte = DateTime.Now;//当前时间截点 //hx_ActivityTable act = ef.hx_ActivityTable.Where(c => c.ActID == activity.ActID).FirstOrDefault();//添加奖励类型 if (activity.ActEndtime >= dte && activity.ActStarttime <= dte) { Mcoupon mcp = new Mcoupon(); JavaScriptSerializer js = new JavaScriptSerializer(); mcp = js.Deserialize <Mcoupon>(activity.ActRule); hx_UserAct hua = new hx_UserAct(); hua.ActTypeId = activity.ActTypeId; hua.registerid = registerID; hua.RewTypeID = activity.RewTypeID; hua.ActID = activity.ActID; hua.Amt = mcp.cash; hua.Uselower = mcp.Msplitarr == null || mcp.Msplitarr.Count <= 0 ? 0 : mcp.Msplitarr[0].startAmt; hua.Usehight = mcp.Msplitarr == null || mcp.Msplitarr.Count <= 0 ? 0 : mcp.Msplitarr[0].endAmt; hua.AmtEndtime = activity.ActEndtime; hua.AmtUses = mcp.Uses; //没指定情况下默认为单独使用 hua.UseState = 0; //现金未转账 hua.AmtProid = 0; //未使用默认为0 hua.ISSmsOne = 0; hua.IsSmsThree = 0; hua.isSmsFifteen = 0; hua.IsSmsSeven = 0; hua.isSmsSixteen = 0; hua.Createtime = DateTime.Now; ef.hx_UserAct.Add(hua); int i = ef.SaveChanges(); mb.activity_schedule_id = activity.ActID; mb.membertable_registerid = registerID; mb.activity_schedule_name = activity.ActName; mb.amount_of_reward = decimal.Parse(hua.Amt.ToString()); mb.use_lower_limit = Convert.ToDecimal(hua.Uselower); mb.reward = 0; mb.start_date = Convert.ToDateTime(hua.Createtime); mb.end_date = Convert.ToDateTime(hua.AmtEndtime); mb.entry_time = dte; int bbid = bb.Add(mb); if (bbid > 0) //奖励记录成功后插入明细记录 { mbaw.bonus_account_id = bbid; mbaw.membertable_registerid = registerID; mbaw.income = decimal.Parse(hua.Amt.ToString()); mbaw.expenditure = 0.00M; mbaw.time_of_occurrence = DateTime.Now; mbaw.award_description = activity.ActName; mbaw.water_type = 0; bbaw.Add(mbaw); } } }
/// <summary> /// 发放奖励 /// </summary> /// <param name="activity"></param> /// <param name="registerID"></param> public static void DrawBonus(hx_ActivityTable activity, int registerID, int effectiveDays) { //chuangtouEntities ef = new chuangtouEntities(); M_bonus_account_water mbaw = new M_bonus_account_water(); B_bonus_account_water bbaw = new B_bonus_account_water(); DateTime dte = DateTime.Now;//当前时间截点 //if (activity.ActEndtime >= dte && activity.ActStarttime <= dte) //发布的时候要释放 if (true) { Mcoupon mcp = new Mcoupon(); JavaScriptSerializer js = new JavaScriptSerializer(); mcp = js.Deserialize <Mcoupon>(activity.ActRule); hx_UserAct hua = new hx_UserAct(); hua.ActTypeId = activity.ActTypeId; hua.registerid = registerID; hua.RewTypeID = activity.RewTypeID; if (activity.RewTypeID == 3) { hua.UseLifeLoan = "3-0"; } hua.ActID = activity.ActID; hua.Amt = mcp.cash; hua.Uselower = mcp.Msplitarr == null || mcp.Msplitarr.Count <= 0 ? 0 : mcp.Msplitarr[0].startAmt; hua.Usehight = mcp.Msplitarr == null || mcp.Msplitarr.Count <= 0 ? 0 : mcp.Msplitarr[0].endAmt; hua.AmtEndtime = Convert.ToDateTime(dte.AddDays(effectiveDays).ToShortDateString() + " 23:59:59"); //有效期为10天 hua.AmtUses = 1; //没指定情况下默认为单独使用 hua.UseState = activity.RewTypeID == 1 ? 5 : 0; hua.AmtProid = 0; //未使用默认为0 hua.ISSmsOne = 0; hua.IsSmsThree = 0; hua.isSmsFifteen = 0; hua.IsSmsSeven = 0; hua.isSmsSixteen = 0; hua.Title = activity.ActName; hua.Createtime = dte; hua.OrderID = decimal.Parse(Utils.Createcode());//根据日期生成单号 ef.hx_UserAct.Add(hua); ef.SaveChanges(); if (activity.RewTypeID == 1) //当奖品为现金时 { Transfer tf = new Transfer(); M_member_table p = new M_member_table(); B_member_table o = new B_member_table(); p = o.GetModel(registerID); ReTransfer retf = tf.ToUserTransfer(p.UsrCustId, mcp.cash, hua.OrderID.ToString(), hua.ActID.ToString(), "/Thirdparty/ToUserTransfer"); if (retf != null) { if (retf.RespCode == "000") { //3.事务处理操作账户及插入流水 #region 验签缓存处理 string cachename = retf.OrdId + "ToUserTransfer" + retf.InCustId; if (Utils.GeTThirdCache(cachename) == 0) { Utils.SetThirdCache(cachename); B_usercenter BUC = new B_usercenter(); BUC.UpateActToUserTransfer(retf, 0); //增加账户资金流水 hx_Capital_account_water Caw = new hx_Capital_account_water(); Caw.membertable_registerid = registerID; Caw.income = mcp.cash; Caw.expenditure = 0; Caw.time_of_occurrence = dte; Caw.account_balance = p.available_balance + mcp.cash; Caw.types_Finance = 43; Caw.createtime = dte; Caw.keyid = 0; Caw.remarks = "现金奖励"; ef.hx_Capital_account_water.Add(Caw); ef.SaveChanges(); } #endregion } } } } }
/// <summary> /// 新增 /// </summary> /// <param name="model"></param> /// <returns></returns> public bool Add(Mcoupon model) { return(opertService.Add(model)); }
/// <summary> /// 按照投资金额进行红包或加息券奖励发放(常规投资 红包或加息券) 未记录系统信息及奖励流水 /// 返回用户活动表hx_UserAct 对象 /// </summary> /// <param name="mcp">规则对象</param> /// <param name="hua">活动项目表</param> /// <param name="Registerid">用户id</param> /// <param name="investAmt">投资金额</param> protected List <hx_UserAct> OPMcoupon(Mcoupon mcp, hx_ActivityTable hat, int Registerid, decimal investAmt) { List <hx_UserAct> t = new List <hx_UserAct>(); List <Msplitarr> msp = new List <Msplitarr>(); List <MAmtList> mat = new List <MAmtList>(); JavaScriptSerializer js = new JavaScriptSerializer(); if (mcp.rule == 1) //统一赠送 { #region 统一赠送 t.Clear(); string msplitarrc = ""; //经过比对拆分不拆分代码逻辑一样,所以合并处理 //if (mcp.ISsplit == 1) try { msplitarrc = mcp.Msplitarr.SerializeJSON(); msp = js.Deserialize <List <Msplitarr> >(msplitarrc); } catch { msp = null; } foreach (var item in msp) { hx_UserAct hua = new hx_UserAct(); hua.ActTypeId = hat.ActTypeId; hua.registerid = Registerid; hua.RewTypeID = hat.RewTypeID; hua.ActID = hat.ActID; hua.Amt = item.cashAmt; hua.Uselower = item.startAmt; hua.Usehight = item.endAmt; if (item.validity > 0) //有效天数大于0 { hua.AmtEndtime = DateTime.Now.Date.AddDays(item.validity + 1).AddSeconds(-1); } else { hua.AmtEndtime = item.endTime; } hua.AmtUses = mcp.Uses; //没指定情况下默认为单独使用 hua.UseState = 0; //现金未转账 hua.AmtProid = 0; //未使用默认为0 hua.ISSmsOne = 0; hua.IsSmsThree = 0; hua.isSmsFifteen = 0; hua.IsSmsSeven = 0; hua.isSmsSixteen = 0; hua.Createtime = DateTime.Now; hua.Title = hat.ActName; hua.UseLifeLoan = string.IsNullOrWhiteSpace(item.UseLifeLoan) ? "" : item.UseLifeLoan; ef.hx_UserAct.Add(hua); int i = ef.SaveChanges(); t.Add(hua); } #endregion } else if (mcp.rule == 2)//按投资赠送,需要判断投资金额区间,不支持拆分 只赠送一张代金券或加息券,使用限制按照金额在拆分中匹配 { #region 投资赠送 hx_UserAct hua = new hx_UserAct(); t.Clear(); string msplitarrc = ""; hua.ActTypeId = hat.ActTypeId; hua.registerid = Registerid; hua.RewTypeID = hat.RewTypeID; hua.ActID = hat.ActID; try { msplitarrc = mcp.Msplitarr.SerializeJSON(); msp = js.Deserialize <List <Msplitarr> >(msplitarrc); } catch { msp = null; } hua.Amt = GetCouponAmtByInvestAmt(mcp, investAmt); hua.Uselower = GetCouponUseConByAmt(msp, decimal.Parse(hua.Amt.ToString()), 0); hua.Usehight = GetCouponUseConByAmt(msp, decimal.Parse(hua.Amt.ToString()), 1); hua.AmtEndtime = GetCouponEndTimeByAmt(msp, decimal.Parse(hua.Amt.ToString())); hua.AmtUses = mcp.Uses; //没指定情况下默认为单独使用 hua.UseState = 0; //现金未转账 hua.AmtProid = 0; //未使用默认为0 hua.ISSmsOne = 0; hua.IsSmsThree = 0; hua.isSmsFifteen = 0; hua.IsSmsSeven = 0; hua.isSmsSixteen = 0; hua.Createtime = DateTime.Now; hua.Title = hat.ActName; hua.UseLifeLoan = msp == null ? "" : msp[0].UseLifeLoan; if (hua.Uselower >= 0 || hua.Usehight >= 0 || hua.Amt <= 0) { ef.hx_UserAct.Add(hua); int i = ef.SaveChanges(); if (i > 0) { t.Add(hua); } } #endregion } else if (mcp.rule == 3) //随机赠送,需要判断投资金额区间,不支持拆分 只赠送一张代金券或加息券,使用限制按照金额在拆分中匹配 { #region 随机赠送 t.Clear(); foreach (var item in mcp.MAmtList) { if (item.startAmt <= investAmt && (item.endAmt == 0 || item.endAmt >= investAmt)) { for (int i = 0; i < item.num; i++) { hx_UserAct hua = new hx_UserAct(); string msplitarrc = ""; hua.ActTypeId = hat.ActTypeId; hua.registerid = Registerid; hua.RewTypeID = hat.RewTypeID; hua.ActID = hat.ActID; try { msplitarrc = mcp.Msplitarr.SerializeJSON(); msp = js.Deserialize <List <Msplitarr> >(msplitarrc); } catch { msp = null; } hua.Amt = Utils.GetActRandom(item.Amtstr); hua.Uselower = GetCouponUseConByAmt(msp, decimal.Parse(hua.Amt.ToString()), 0); hua.Usehight = GetCouponUseConByAmt(msp, decimal.Parse(hua.Amt.ToString()), 1); hua.AmtEndtime = GetCouponEndTimeByAmt(msp, decimal.Parse(hua.Amt.ToString())); hua.AmtUses = mcp.Uses; //没指定情况下默认为单独使用 hua.UseState = 0; //现金未转账 hua.AmtProid = 0; //未使用默认为0 hua.ISSmsOne = 0; hua.IsSmsThree = 0; hua.isSmsFifteen = 0; hua.IsSmsSeven = 0; hua.isSmsSixteen = 0; hua.Createtime = DateTime.Now; hua.Title = hat.ActName; hua.UseLifeLoan = msp == null ? "" : msp[0].UseLifeLoan; if (hua.Uselower >= 0 || hua.Usehight >= 0 || hua.Amt <= 0) { ef.hx_UserAct.Add(hua); int c1 = ef.SaveChanges(); if (c1 > 0) { t.Add(hua); } } } break; } } #endregion } return(t); }