public static bool 添加供应商计费项目扣费记录(供应商计费项目扣费记录 content) { return Mongo.添加(content); }
public static bool 更新供应商计费项目扣费记录(供应商计费项目扣费记录 content, bool f = true) { return Mongo.更新(content, f); }
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;//开通成功并扣费 } }