public static bool 添加供应商计费项目扣费记录(供应商计费项目扣费记录 content)
 {
     return Mongo.添加(content);
 }
 public static bool 更新供应商计费项目扣费记录(供应商计费项目扣费记录 content, bool f = true)
 {
     return Mongo.更新(content, f);
 }
예제 #3
0
        public int OpenAddValue()
        {
            var kd = Request.Params["str"];//待开通服务及其时长

            var kf = new List<供应商计费项目扣费记录>();
            var 余额 = 供应商充值余额管理.查询供应商充值余额(0, 0, Query<供应商充值余额>.Where(o => o.所属供应商.用户ID == currentUser.Id)).First();
            var arr = kd.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
            foreach (var jk in arr)
            {
                var 开通服务名 = jk.Split(':')[0];
                var 开通时长 = jk.Split(':')[1];
                var account = 扣费规则.规则列表.Where(o => o.扣费项目名 == 开通服务名).First();

                var kfj = new 供应商计费项目扣费记录();
                kfj.所属供应商.用户ID = currentUser.Id;
                kfj.扣费服务项目 = 开通服务名;
                kfj.扣费金额 = account.扣费金额;
                kfj.扣费类型 = account.扣费类型;
                kfj.扣费时间 = DateTime.Now;
                if (account.扣费类型 == 扣费类型.按年扣费) { kfj.所属年 = int.Parse(开通时长); }
                if (account.扣费类型 == 扣费类型.按月扣费) { kfj.所属月 = int.Parse(开通时长); }
                if (account.扣费类型 == 扣费类型.按次扣费) { kfj.所属日 = int.Parse(开通时长); }
                kf.Add(kfj);
            }
            var 待扣费金额 = kf.Where(o => o.扣费类型 == 扣费类型.按年扣费).Sum(o => o.扣费金额 * o.所属年);
            待扣费金额 += kf.Where(o => o.扣费类型 == 扣费类型.按月扣费).Sum(o => o.扣费金额 * o.所属月);
            待扣费金额 += kf.Where(o => o.扣费类型 == 扣费类型.按次扣费).Sum(o => o.扣费金额 * o.所属日);

            if (余额.可用余额 < 待扣费金额)
            {
                return 0;//开通失败
            }
            else
            {
                余额.可用余额 -= 待扣费金额;
                var 服务 = new 供应商服务记录();
                var 供应商服务 = 供应商服务记录管理.查询供应商服务记录(0, 0, Query<供应商服务记录>.Where(o => o.所属供应商.用户ID == currentUser.Id));
                if (供应商服务.Count() > 0)
                {
                    服务 = 供应商服务.First();
                }
                else
                {
                    服务.所属供应商.用户ID = currentUser.Id;
                    foreach (var j in 扣费规则.规则列表)
                    {
                        var b = new 供应商增值服务申请记录();
                        b.所申请项目名 = j.扣费项目名;
                        b.所属供应商.用户ID = currentUser.Id;
                        服务.可申请的服务.Add(b);
                    }
                    供应商服务记录管理.添加供应商服务记录(服务);
                }
                foreach (var m in kf)
                {
                    供应商计费项目扣费记录管理.添加供应商计费项目扣费记录(m);
                    var p = 服务.可申请的服务.Find(o => o.所申请项目名 == m.扣费服务项目);
                    服务.可申请的服务.Remove(p);
                    if (m.扣费类型 == 扣费类型.按年扣费) { p.服务期限 = m.所属年; }
                    if (m.扣费类型 == 扣费类型.按月扣费) { p.服务期限 = m.所属月; }
                    if (m.扣费类型 == 扣费类型.按次扣费) { p.服务期限 = m.所属日; }
                    p.是否通过 = 通过状态.通过;
                    if (m.扣费服务项目.Contains("企业主页商品展示"))
                    {
                        var qyzsck = 服务.已开通的服务.Find(o => o.所申请项目名.Contains("企业主页商品展示"));
                        if (qyzsck != null)
                        {
                            服务.已开通的服务.Remove(qyzsck);
                            服务.可申请的服务.Add(qyzsck);
                        }
                    }
                    if (m.扣费服务项目.Contains("企业推广服务B1"))
                    {
                        var qytgfw = 服务.已开通的服务.Find(o => o.所申请项目名.Contains("企业推广服务B1"));
                        if (qytgfw != null)
                        {
                            服务.已开通的服务.Remove(qytgfw);
                            服务.可申请的服务.Add(qytgfw);
                        }
                    }
                    if (m.扣费服务项目.Contains("标准会员"))
                    {
                        var rzhy = 服务.已开通的服务.Find(o => o.所申请项目名.Contains("商务会员"));
                        if (rzhy != null)
                        {
                            服务.已开通的服务.Remove(rzhy);
                            服务.可申请的服务.Add(rzhy);
                        }
                    }
                    if (m.扣费服务项目.Contains("商务会员"))
                    {
                        var swhy = 服务.已开通的服务.Find(o => o.所申请项目名.Contains("标准会员"));
                        if (swhy != null)
                        {
                            服务.已开通的服务.Remove(swhy);
                            服务.可申请的服务.Add(swhy);
                        }
                    }
                    服务.已开通的服务.Add(p);
                }
                供应商服务记录管理.更新供应商服务记录(服务);
                供应商充值余额管理.更新供应商充值余额(余额);
                return 1;//开通成功并扣费
            }
        }