Example #1
0
        /// <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));
        }
Example #2
0
 /// <summary>
 /// 新增产品分类方法接口
 /// </summary>
 /// <returns></returns>
 public string AddMeth(Mcoupon model)
 {
     if (!base.CheckIsLogin())
     {
         return("-1");
     }
     return(new CouponBus().Add(model));
 }
Example #3
0
        /// <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);
        }
Example #4
0
        /// <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);
        }
Example #5
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);
        }
Example #6
0
        /// <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);
        }
Example #7
0
        /// <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);
        }
Example #8
0
        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);
        }
Example #9
0
        /// <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);
        }
Example #10
0
        /// <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);
        }
Example #11
0
        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);
        }
Example #12
0
        /// <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);
                }
            }
        }
Example #13
0
        /// <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));
 }
Example #15
0
        /// <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);
        }