Beispiel #1
0
        /// <summary>
        /// 未支付时仅修改内容表
        /// </summary>
        /// <param name="newsId"></param>
        /// <param name="setTop"></param>
        /// <param name="money"></param>
        /// <returns></returns>
        public static bool UpdateSetTop(int newsId, int setTop, decimal money, string pay, out string orderno)
        {
            using (Entities db = new Entities())
            {
                var news = db.ht_news.Find(newsId);
                orderno = string.Empty;
                if (news != null)
                {
                    orderno             = news.order_no;
                    news.set_top        = setTop;
                    news.set_top_money += money;
                    news.total         += money;
                }
                if (!string.IsNullOrWhiteSpace(pay))
                {
                    if (pay == "余额")
                    {
                        ht_user_money_log log = new ht_user_money_log();
                        log.userid  = news.add_userid;
                        log.type    = (int)Model.Enum.UserMoneyDetails.SetTopPay;
                        log.money   = -money;
                        log.remark  = string.Format("余额支出{0}元", money);
                        log.addtime = DateTime.Now;
                        db.ht_user_money_log.Add(log);

                        ht_user user = db.ht_user.Find(news.add_userid);
                        user.money = user.money - money;
                    }
                }
                return(db.SaveChanges() > 0 ? true : false);
            }
        }
Beispiel #2
0
        /// <summary>
        /// 批量更新审核状态
        /// </summary>
        /// <param name="id">id</param>
        /// <param name="status">0待审核1审核通过2审核不通过</param>
        /// <returns></returns>
        public static bool UpdateStatus(List <int> ids, int status)
        {
            using (Entities db = new Entities())
            {
                db.ht_user_money_log.Where(p => ids.Contains(p.id)).ToList().ForEach(item => {
                    item.status = status;

                    if (status == (int)Model.Enum.WithDraw.NotPassAudit)
                    {
                        db.ht_user.Find(item.userid).money -= item.money;

                        ht_user_money_log model = new ht_user_money_log();
                        model.addtime           = DateTime.Now;
                        model.userid            = item.userid;
                        model.remark            = "余额提现审核未通过";
                        model.money             = item.money * -1;
                        model.type   = (int)Model.Enum.UserMoneyDetails.RefundMoney;
                        model.status = 0;
                        db.ht_user_money_log.Add(model);
                    }
                });

                if (db.SaveChanges() > 0)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
        }
Beispiel #3
0
        /// <summary>
        /// 微信支付成功
        /// </summary>
        /// <param name="orderNo">订单号</param>
        /// <param name="tradeNo">交易号</param>
        /// <returns></returns>
        public static bool WXPaySuccess(string orderNo, string tradeNo)
        {
            using (Entities db = new Entities())
            {
                var details = db.ht_news.FirstOrDefault(p => p.order_no == orderNo);
                if (details.pay_status == 1)
                {
                    return(false);
                }
                ht_user_money_log log = new ht_user_money_log();
                log.userid  = details.add_userid;
                log.type    = (int)Model.Enum.UserMoneyDetails.PayNews;
                log.money   = details.total;
                log.remark  = string.Format("微信支付充值{0}元", details.total);
                log.addtime = DateTime.Now;
                db.ht_user_money_log.Add(log);

                ht_user_money_log log2 = new ht_user_money_log();
                log2.userid  = details.add_userid;
                log2.type    = (int)Model.Enum.UserMoneyDetails.PayNews;
                log2.money   = -details.total;
                log2.remark  = string.Format("发布{1}支出{0}元", details.total, details.cate);
                log2.addtime = DateTime.Now;
                db.ht_user_money_log.Add(log2);

                details.pay_status   = 1;
                details.status       = 1;//自动审核通过
                details.pay_time     = DateTime.Now;
                details.pay          = "微信";
                details.pay_trade_no = tradeNo;
                return(db.SaveChanges() > 0);
            }
        }
Beispiel #4
0
        /// <summary>
        /// 余额支付
        /// </summary>
        /// <param name="order_no">订单号</param>
        /// <param name="pay">支付方式</param>
        /// <param name="pay_trade_no">交易号</param>
        /// <returns></returns>
        public static int PayNews(string order_no, string pay, string pay_trade_no, out string msg)
        {
            msg = "支付失败";
            using (Entities db = new Entities())
            {
                var details = db.ht_news.FirstOrDefault(p => p.order_no == order_no);
                if (details.pay_status == 1)
                {
                    msg = "已支付过";
                    return(0);
                }

                ht_user_money_log log = new ht_user_money_log();
                log.userid  = details.add_userid;
                log.type    = (int)Model.Enum.UserMoneyDetails.PayNews;
                log.money   = -details.total;
                log.remark  = string.Format("余额支出{0}元", details.total);
                log.addtime = DateTime.Now;
                db.ht_user_money_log.Add(log);

                ht_user user = db.ht_user.Find(details.add_userid);
                user.money           = user.money - details.total;
                details.pay_status   = 1;
                details.status       = 1;//自动审核通过
                details.pay_time     = DateTime.Now;
                details.pay          = pay;
                details.pay_trade_no = pay_trade_no;
                // var tran = db.Database.BeginTransaction();
                return(db.SaveChanges());
            }
        }
Beispiel #5
0
        public static bool AddUserMoneyLogData(int id, decimal money, string remark, int type)
        {
            using (Entities db = new Entities())
            {
                ht_user_money_log model = new ht_user_money_log();
                model.addtime = DateTime.Now;
                model.userid  = id;
                model.remark  = remark;
                model.money   = -money;
                model.type    = type;
                model.status  = 0;
                db.ht_user_money_log.Add(model);

                db.ht_user.Find(id).money -= money;

                return(db.SaveChanges() > 0 ? true : false);
            }
        }
Beispiel #6
0
        /// <summary>
        /// 微信支付成功
        /// </summary>
        /// <param name="orderNo">订单号</param>
        /// <param name="tradeNo">交易号</param>
        /// <returns></returns>
        public static bool WXPaySuccess(string orderNo, string tradeNo)
        {
            using (Entities db = new Entities())
            {
                var order = db.ht_news_order.FirstOrDefault(p => p.order_no == orderNo);
                if (order.pay_status == 1)
                {
                    return(false);
                }

                var news = db.ht_news.FirstOrDefault(p => p.id == order.news_id);

                ht_user_money_log log = new ht_user_money_log();
                log.userid  = order.add_userid;
                log.type    = (int)Model.Enum.UserMoneyDetails.SetTopPay;
                log.money   = order.money;
                log.remark  = string.Format("微信支付充值{0}元", order.money);
                log.addtime = DateTime.Now;
                db.ht_user_money_log.Add(log);

                ht_user_money_log log2 = new ht_user_money_log();
                log2.userid  = order.add_userid;
                log.type     = (int)Model.Enum.UserMoneyDetails.SetTopPay;
                log2.money   = -order.money;
                log2.remark  = string.Format("{0}支出{1}元", order.type, order.money);
                log2.addtime = DateTime.Now;
                db.ht_user_money_log.Add(log2);

                order.pay_status   = 1;
                order.pay_time     = DateTime.Now;
                order.pay_trade_no = tradeNo;

                news.set_top        = Convert.ToInt32(order.value);
                news.set_top_money += order.money;
                news.total         += order.money;

                return(db.SaveChanges() > 0);
            }
        }
Beispiel #7
0
        /// <summary>
        /// 分佣
        /// </summary>
        /// <param name="newsId">newsId</param>
        /// <returns></returns>
        public bool Maid(int newsId)
        {
            using (Entities db = new Entities())
            {
                try
                {
                    var     model         = db.ht_news.Single(p => p.id == newsId);
                    var     sourceUser    = db.ht_user.Single(p => p.id == model.add_userid);
                    ht_user preUserLevel1 = null; //上一级
                    ht_user preUserLevel2 = null; //上两级
                    if (sourceUser.parent_id != null && sourceUser.parent_id != 0)
                    {
                        preUserLevel1 = db.ht_user.Single(p => p.id == sourceUser.parent_id);
                    }
                    if (preUserLevel1 != null && preUserLevel1.parent_id != 0)
                    {
                        preUserLevel2 = db.ht_user.Single(p => p.id == preUserLevel1.parent_id);
                    }
                    if (preUserLevel1 == null && preUserLevel2 == null)//一二级都没有
                    {
                        return(true);
                    }
                    decimal level1Rate   = decimal.Parse(db.ht_sys_config.Single(p => p.xkey == "distribution_level1").xvalue) / 100; //上一级分佣比例
                    decimal level2Rate   = decimal.Parse(db.ht_sys_config.Single(p => p.xkey == "distribution_level2").xvalue) / 100; //上两级分佣比例
                    decimal level1Amount = Math.Round(model.total.Value * level1Rate, 2);                                             //分给上一级的金额
                    decimal level2Amount = Math.Round(model.total.Value * level2Rate, 2);                                             //分给上两级的金额
                    if (preUserLevel1 != null)                                                                                        //给上一级分佣
                    {
                        preUserLevel1.money += level1Amount;
                        ht_user_money_log level1Log = new ht_user_money_log();
                        level1Log.addtime = DateTime.Now;
                        level1Log.userid  = preUserLevel1.id;
                        level1Log.money   = level1Amount;
                        level1Log.type    = 1;
                        level1Log.remark  = string.Format("一级分佣获得{0}元", level1Amount);
                        db.ht_user_money_log.Add(level1Log);

                        ht_distribution_log disLevel1Log = new ht_distribution_log();
                        disLevel1Log.userid            = preUserLevel1.id;
                        disLevel1Log.title             = "一级推荐人订单返利";
                        disLevel1Log.order_no          = model.order_no;
                        disLevel1Log.money             = level1Amount;
                        disLevel1Log.source_userid     = model.add_userid;
                        disLevel1Log.source_pre_userid = preUserLevel1.id;
                        disLevel1Log.news_id           = model.id;
                        disLevel1Log.add_time          = DateTime.Now;
                        db.ht_distribution_log.Add(disLevel1Log);

                        ht_commission comLevel1 = db.ht_commission.SingleOrDefault(p => p.userid == preUserLevel1.id && p.source_userid == model.add_userid);
                        if (comLevel1 != null)
                        {
                            comLevel1.total_money += level1Amount;
                        }
                        else
                        {
                            comLevel1                    = new ht_commission();
                            comLevel1.userid             = preUserLevel1.id;
                            comLevel1.add_time           = DateTime.Now;
                            comLevel1.source_userid      = model.add_userid;
                            comLevel1.source_user_nick   = sourceUser.nickname;
                            comLevel1.source_user_avatar = sourceUser.avatar;
                            comLevel1.source_pre_userid  = preUserLevel1.id;
                            comLevel1.total_money        = level1Amount;
                            db.ht_commission.Add(comLevel1);
                        }
                    }

                    if (preUserLevel2 != null)//给上两级分佣
                    {
                        preUserLevel2.money += level2Amount;
                        ht_user_money_log level2Log = new ht_user_money_log();
                        level2Log.addtime = DateTime.Now;
                        level2Log.userid  = preUserLevel2.id;
                        level2Log.money   = level2Amount;
                        level2Log.type    = 1;
                        level2Log.remark  = string.Format("二级分佣获得{0}元", level2Amount);
                        db.ht_user_money_log.Add(level2Log);

                        ht_distribution_log disLevel2Log = new ht_distribution_log();
                        disLevel2Log.userid            = preUserLevel2.id;
                        disLevel2Log.title             = "二级推荐人订单返利";
                        disLevel2Log.order_no          = model.order_no;
                        disLevel2Log.money             = level2Amount;
                        disLevel2Log.source_userid     = model.add_userid;
                        disLevel2Log.source_pre_userid = preUserLevel1.id;
                        disLevel2Log.news_id           = model.id;
                        disLevel2Log.add_time          = DateTime.Now;
                        db.ht_distribution_log.Add(disLevel2Log);

                        ht_commission comLevel2 = db.ht_commission.SingleOrDefault(p => p.userid == preUserLevel2.id && p.source_userid == model.add_userid);
                        if (comLevel2 != null)
                        {
                            comLevel2.total_money += level2Amount;
                        }
                        else
                        {
                            comLevel2                    = new ht_commission();
                            comLevel2.userid             = preUserLevel2.id;
                            comLevel2.add_time           = DateTime.Now;
                            comLevel2.source_userid      = model.add_userid;
                            comLevel2.source_user_nick   = sourceUser.nickname;
                            comLevel2.source_user_avatar = sourceUser.avatar;
                            comLevel2.source_pre_userid  = preUserLevel1.id;
                            comLevel2.total_money        = level2Amount;
                            db.ht_commission.Add(comLevel2);
                        }
                    }


                    return(db.SaveChanges() > 0);
                }
                catch (Exception ex)
                {
                    //日志
                    return(false);
                }
            }
        }