/// <summary> /// 会员充值赠送金额读取 /// lz /// 2016-12-12 /// </summary> public override BaseResult Init(Hashtable entity) { Hashtable param = (Hashtable)entity; BaseResult br = new BaseResult() { Success = true }; #region 检查会员状态 br = base.CheckHY(param); if (!br.Success) { throw new CySoftException(br); } Tb_Hy_Detail hy_detail = (Tb_Hy_Detail)br.Data; #endregion #region 检查是否符合充值设置的金额 br = this.CheckCZMaxMoney(param); if (!br.Success) { throw new CySoftException(br); } #endregion #region 获取赠送金额等信息 var czrule_zssp_list = new List <Tb_Hy_Czrule_Zssp_Api_Query>(); hy_detail.Tb_Hy_Shop.id_shop = param["id_shop"].ToString(); decimal je_zs = GetJe_Qm_Zs(hy_detail, decimal.Parse(param["je"].ToString()), ref czrule_zssp_list); #endregion #region 返回 br.Message.Add(String.Format("操作成功!")); br.Success = true; br.Data = new { add_je = decimal.Parse(param["je"].ToString()), add_je_zs = je_zs, czrule_zssp = czrule_zssp_list }; return(br); #endregion }
/// <summary> /// 检查是否符合充值设置的金额 /// </summary> /// <param name="param"></param> /// <returns></returns> public BaseResult CheckCZMaxMoney(Hashtable param) { BaseResult br = new BaseResult(); try { Tb_Hy_Detail hyDetailModel = new Tb_Hy_Detail(); Hashtable ht = new Hashtable(); ht.Add("id_masteruser", param["id_masteruser"].ToString()); ht.Add("id_shop", param["id_shop"].ToString()); ht.Add("id_hy", param["id_hy"].ToString()); ht.Add("bm_djlx", "HY020"); var yczList = DAL.QueryList <Tz_Hy_Je_Flow>(typeof(Tz_Hy_Je_Flow), ht).ToList(); decimal moneyMonthYCZ = 0; if (yczList != null && yczList.Count() > 0) { moneyMonthYCZ = (decimal)yczList.Sum(d => d.je); } var shopParm = GetShopParm(param["id_masteruser"].ToString(), param["id_shop"].ToString()); var shopParmAll = GetShopParm(param["id_masteruser"].ToString(), "0"); if (shopParm != null && shopParm.ContainsKey("success") && shopParm["success"].ToString() == "1") { #region hy_czje_min_onec var hy_czje_min_onec = shopParm["hy_czje_min_onec"].ToString(); if (!string.IsNullOrEmpty(hy_czje_min_onec) && CyVerify.IsNumeric(hy_czje_min_onec)) { if (decimal.Parse(param["je"].ToString()) < decimal.Parse(hy_czje_min_onec)) { br.Success = false; br.Message.Add("操作失败:每次最小金额至少为: " + hy_czje_min_onec + " "); return(br); } } else if (shopParmAll != null && shopParmAll.ContainsKey("success") && shopParmAll["success"].ToString() == "1") { var hy_czje_min_onec_all = shopParmAll["hy_czje_min_onec"].ToString(); if (!string.IsNullOrEmpty(hy_czje_min_onec_all) && CyVerify.IsNumeric(hy_czje_min_onec_all)) { if (decimal.Parse(param["je"].ToString()) < decimal.Parse(hy_czje_min_onec_all)) { br.Success = false; br.Message.Add("操作失败:每次充值金额最小为: " + hy_czje_min_onec_all + " "); return(br); } } } #endregion #region hy_czje_max_onec var hy_czje_max_onec = shopParm["hy_czje_max_onec"].ToString(); if (!string.IsNullOrEmpty(hy_czje_max_onec) && CyVerify.IsNumeric(hy_czje_max_onec)) { if (decimal.Parse(param["je"].ToString()) > decimal.Parse(hy_czje_max_onec)) { br.Success = false; br.Message.Add("操作失败:每次充值金额最大为: " + hy_czje_max_onec + " "); return(br); } } else if (shopParmAll != null && shopParmAll.ContainsKey("success") && shopParmAll["success"].ToString() == "1") { var hy_czje_max_onec_all = shopParmAll["hy_czje_max_onec"].ToString(); if (!string.IsNullOrEmpty(hy_czje_max_onec_all) && CyVerify.IsNumeric(hy_czje_max_onec_all)) { if (decimal.Parse(param["je"].ToString()) > decimal.Parse(hy_czje_max_onec_all)) { br.Success = false; br.Message.Add("操作失败:每次充值金额最大为: " + hy_czje_max_onec_all + " "); return(br); } } } #endregion #region hy_czje_max_month var hy_czje_max_month = shopParm["hy_czje_max_month"].ToString(); if (!string.IsNullOrEmpty(hy_czje_max_month) && CyVerify.IsNumeric(hy_czje_max_month)) { if ((moneyMonthYCZ + decimal.Parse(param["je"].ToString())) > decimal.Parse(hy_czje_max_month)) { br.Success = false; br.Message.Add("操作失败:每月充值最大金额: " + hy_czje_max_month + " 本月已充值: " + moneyMonthYCZ + " "); return(br); } } else if (shopParmAll != null && shopParmAll.ContainsKey("success") && shopParmAll["success"].ToString() == "1") { var hy_czje_max_month_all = shopParmAll["hy_czje_max_month"].ToString(); if (!string.IsNullOrEmpty(hy_czje_max_month_all) && CyVerify.IsNumeric(hy_czje_max_month_all)) { if (moneyMonthYCZ + decimal.Parse(param["je"].ToString()) > decimal.Parse(hy_czje_max_month_all)) { br.Success = false; br.Message.Add("操作失败:每月充值最大金额: " + hy_czje_max_month_all + " 本月已充值: " + moneyMonthYCZ + " "); return(br); } } } #endregion } else if (shopParmAll != null && shopParmAll.ContainsKey("success") && shopParmAll["success"].ToString() == "1") { #region hy_czje_min_onec hy_czje_max_onec hy_czje_max_month var hy_czje_min_onec = shopParm["hy_czje_min_onec"].ToString(); var hy_czje_max_onec = shopParm["hy_czje_max_onec"].ToString(); var hy_czje_max_month = shopParm["hy_czje_max_month"].ToString(); if (!string.IsNullOrEmpty(hy_czje_min_onec) && CyVerify.IsNumeric(hy_czje_min_onec)) { if (decimal.Parse(param["je"].ToString()) < decimal.Parse(hy_czje_min_onec)) { br.Success = false; br.Message.Add("操作失败:每次充值金额最小为: " + hy_czje_min_onec + " "); return(br); } } if (!string.IsNullOrEmpty(hy_czje_max_onec) && CyVerify.IsNumeric(hy_czje_max_onec)) { if (decimal.Parse(param["je"].ToString()) > decimal.Parse(hy_czje_max_onec)) { br.Success = false; br.Message.Add("操作失败:每次充值金额最大为: " + hy_czje_max_onec + " "); return(br); } } if (!string.IsNullOrEmpty(hy_czje_max_month) && CyVerify.IsNumeric(hy_czje_max_month)) { if ((moneyMonthYCZ + decimal.Parse(param["je"].ToString())) > decimal.Parse(hy_czje_max_month)) { br.Success = false; br.Message.Add("操作失败:每月充值最大金额: " + hy_czje_max_month + " 本月已充值: " + moneyMonthYCZ + " "); return(br); } } #endregion } br.Success = true; return(br); } catch (Exception ex) { br.Success = false; br.Message.Add("操作失败:检查是否符合充值设置的金额获取到异常 "); return(br); } }
public BaseResult AddWork(dynamic entity) { #region 获取数据 Hashtable param = (Hashtable)entity; BaseResult br = new BaseResult(); Hashtable ht = new Hashtable(); #endregion #region 验证参数 if (!param.ContainsKey("Type") || string.IsNullOrEmpty(param["Type"].ToString())) { br.Success = false; br.Message.Add("业务数据异常!"); return(br); } if (decimal.Parse(param["je"].ToString()) == 0) { br.Success = false; br.Message.Add("操作金额不能等于0!"); return(br); } #endregion if (param["Type"].ToString() == "CZ") { #region 充值 #region 检查会员是否有效 br = base.CheckHY(param); if (!br.Success) { throw new CySoftException(br); } Tb_Hy_Detail hy_detail = (Tb_Hy_Detail)br.Data; #endregion #region 检查是否符合充值设置的金额 if (decimal.Parse(param["je"].ToString()) > 0) { br = this.CheckCZMaxMoney(param); if (!br.Success) { throw new CySoftException(br); } } #endregion #region 获取赠送金额等信息 hy_detail.Tb_Hy_Shop.id_shop = param["id_shop"].ToString(); var czrule_zssp_list = new List <Tb_Hy_Czrule_Zssp_Api_Query>(); decimal je_zs = GetJe_Qm_Zs(hy_detail, decimal.Parse(param["je"].ToString()), ref czrule_zssp_list); string dh = GetNewDH(param["id_masteruser"].ToString(), param["id_shop"].ToString(), Enums.FlagDJLX.DHCZ); string dh_pay = ""; if (param.ContainsKey("dh") && !string.IsNullOrEmpty(param["dh"].ToString())) { dh = param["dh"].ToString(); } if (param.ContainsKey("dh_pay") && !string.IsNullOrEmpty(param["dh_pay"].ToString())) { dh_pay = param["dh_pay"].ToString(); } string id = GetGuid; decimal je_ye = 0; #endregion #region 更新/插入Tz_Hy_Je表 ht.Clear(); ht.Add("id_shop", param["id_shop"].ToString()); ht.Add("id_masteruser", param["id_masteruser"].ToString()); ht.Add("id_hy", param["id_hy"].ToString()); var brJe = this.GetOne(ht); if (!brJe.Success) { throw new CySoftException(br); } else { var dbJeModel = (Tz_Hy_Je)brJe.Data; if (dbJeModel != null && !string.IsNullOrEmpty(dbJeModel.id)) { #region 更新数据 if (RecordKeyError(dbJeModel)) { br.Success = false; br.Message.Clear(); br.Message.Add("会员金额数据非法!"); throw new CySoftException(br); } else if (ZBError(dbJeModel)) { br.Success = false; br.Message.Clear(); br.Message.Add("会员金额账本数据非法!"); throw new CySoftException(br); } else { if (decimal.Parse(param["je"].ToString()) < 0 && (dbJeModel.je_qm + decimal.Parse(param["je"].ToString())) < 0) { br.Success = false; br.Message.Clear(); br.Message.Add(String.Format("操作失败,账户余额(" + dbJeModel.je_qm + ") + 充值金额(" + decimal.Parse(param["je"].ToString()) + ") 不能为负!")); throw new CySoftException(br); } je_ye = (decimal)dbJeModel.je_qm + (decimal)dbJeModel.je_qm_zs; dbJeModel.je_qm = dbJeModel.je_qm + decimal.Parse(param["je"].ToString()); dbJeModel.je_qm_zs = dbJeModel.je_qm_zs + je_zs; dbJeModel.recodekey = GetRecordKey(dbJeModel); DAL.Update(dbJeModel); } #endregion } else { #region 插入数据 Tz_Hy_Je addModel = new Tz_Hy_Je() { id_masteruser = param["id_masteruser"].ToString(), id = GetGuid, id_hy = param["id_hy"].ToString(), je_qm = 0, je_qm_zs = 0 }; if (ZBError(addModel)) { br.Success = false; br.Message.Clear(); br.Message.Add("会员金额账本数据非法!"); throw new CySoftException(br); } if (decimal.Parse(param["je"].ToString()) < 0) { br.Success = false; br.Message.Clear(); br.Message.Add(String.Format("操作失败,账户余额(0) + 充值金额(" + decimal.Parse(param["je"].ToString()) + ") 不能为负!")); throw new CySoftException(br); } addModel.je_qm = decimal.Parse(param["je"].ToString()); addModel.je_qm_zs = je_zs; addModel.recodekey = GetRecordKey(addModel); DAL.Add(addModel); #endregion } } #endregion #region 插入流水表 ht.Clear(); ht.Add("id", GetGuid); ht.Add("id_masteruser", param["id_masteruser"].ToString()); ht.Add("id_bill", id); ht.Add("bm_djlx", "HY020"); ht.Add("rq", DateTime.Parse(param["rq"].ToString())); ht.Add("id_shop", param["id_shop"].ToString()); ht.Add("id_hy", param["id_hy"].ToString()); ht.Add("je", decimal.Parse(param["je"].ToString())); ht.Add("je_zs", je_zs); ht.Add("bz", param["bz"].ToString()); var addFlowNum = Tz_Hy_Je_FlowDAL.AddFlowWithExists(typeof(Tz_Hy_Je_Flow), ht); if (addFlowNum == 0) { br.Success = false; br.Message.Clear(); br.Message.Add(string.Format("充值单据已存在!")); throw new CySoftException(br); } #endregion #region 插入表头 ht.Clear(); ht.Add("id_masteruser", param["id_masteruser"].ToString()); ht.Add("id", id); ht.Add("dh", dh); ht.Add("rq", DateTime.Parse(param["rq"].ToString())); ht.Add("id_shop", param["id_shop"].ToString()); ht.Add("bm_djlx", "HY020"); ht.Add("id_pay", param["id_pay"].ToString()); ht.Add("id_jbr", param["id_create"].ToString()); ht.Add("je_mxtotal", decimal.Parse(param["je"].ToString())); ht.Add("flag_sh", (byte)Enums.FlagSh.HadSh); ht.Add("flag_cancel", (byte)Enums.FlagCancel.NoCancel); ht.Add("bz", param["bz"].ToString()); ht.Add("id_create", param["id_create"].ToString()); ht.Add("flag_delete", (byte)Enums.FlagDelete.NoDelete); ht.Add("id_user_sh", param["id_create"].ToString()); ht.Add("rq_sh", DateTime.Parse(param["rq"].ToString())); ht.Add("dh_pay", dh_pay); var addHeadNum = Td_Hy_Cz_1DAL.AddWithExists(typeof(Td_Hy_Cz_1), ht); if (addHeadNum == 0) { br.Success = false; br.Message.Clear(); br.Message.Add(string.Format("充值单据已存在!")); throw new CySoftException(br); } #endregion #region 插入表体 var td_Hy_Cz_2 = new Td_Hy_Cz_2() { id_masteruser = param["id_masteruser"].ToString(), id = GetGuid, id_hy = param["id_hy"].ToString(), id_bill = id, sort_id = 1, je = decimal.Parse(param["je"].ToString()), je_zs = je_zs, bz = "接口充值", rq_create = DateTime.Now, je_ye = je_ye }; DAL.Add(td_Hy_Cz_2); #endregion #region 读取充值后金额 并验证 ht.Clear(); ht.Add("id_shop", param["id_shop"].ToString()); ht.Add("id_masteruser", param["id_masteruser"].ToString()); ht.Add("id_hy", param["id_hy"].ToString()); var brJeNow = this.Get(ht); if (!brJeNow.Success) { br.Success = false; br.Message.Add(string.Format("操作失败 查询金额失败 !")); throw new CySoftException(br); } else { //回写 Td_Hy_Cz_2 的 je_ye 为当前的余额 目前取消掉了 var dbJeModel = (Tz_Hy_Je)brJeNow.Data; //ht.Clear(); //ht.Add("id", td_Hy_Cz_2.id); //ht.Add("id_masteruser", param["id_masteruser"].ToString()); //ht.Add("new_je_ye", dbJeModel.je_qm); //DAL.UpdatePart(typeof(Td_Hy_Cz_2), ht); if (ZBError(dbJeModel)) { br.Success = false; br.Message.Clear(); br.Message.Add("操作失败 会员金额账本数据非法 !"); throw new CySoftException(br); } } #endregion #region 返回 var jeNowModel = (Tz_Hy_Je)brJeNow.Data; br.Message.Add(String.Format("操作成功!")); br.Success = true; br.Data = new { add_je = decimal.Parse(param["je"].ToString()), add_je_zs = je_zs, je_qm = jeNowModel.je_qm, je_qm_zs = jeNowModel.je_qm_zs, id = id, czrule_zssp = czrule_zssp_list }; return(br); #endregion #endregion } else if (param["Type"].ToString() == "XF") { #region 消费 #region 检查会员是否有效 br = base.CheckHY(param); if (!br.Success) { throw new CySoftException(br); } var tempModel = new Tz_Hy_Je() { je_qm = decimal.Parse(param["je"].ToString()), je_qm_zs = 0 }; #endregion #region 验证会员金额是否非法 并更新账户以及插入流水帐 ht.Clear(); ht.Add("id_shop", param["id_shop"].ToString()); ht.Add("id_masteruser", param["id_masteruser"].ToString()); ht.Add("id_hy", param["id_hy"].ToString()); var brJe = this.GetOne(ht); if (!brJe.Success) { throw new CySoftException(br); } else { var dbJeModel = (Tz_Hy_Je)brJe.Data; if (dbJeModel != null && !string.IsNullOrEmpty(dbJeModel.id)) { #region 验证会员金额数据是否非法 if (RecordKeyError(dbJeModel)) { br.Success = false; br.Message.Clear(); br.Message.Add("会员金额数据非法!"); throw new CySoftException(br); } #endregion #region 验证会员金额账本数据是否非法 if (ZBError(dbJeModel)) { br.Success = false; br.Message.Clear(); br.Message.Add("会员金额账本数据非法!"); throw new CySoftException(br); } #endregion #region 插入流水表 tempModel = GetMonenyCost(decimal.Parse(param["je"].ToString()), dbJeModel); ht.Clear(); ht.Add("id", GetGuid); ht.Add("id_masteruser", param["id_masteruser"].ToString()); ht.Add("id_bill", param["id_bill"].ToString()); ht.Add("bm_djlx", param["bm_djlx"].ToString()); ht.Add("rq", DateTime.Parse(param["rq"].ToString())); ht.Add("id_shop", param["id_shop"].ToString()); ht.Add("id_hy", param["id_hy"].ToString()); ht.Add("je", tempModel.je_qm * (-1)); ht.Add("je_zs", tempModel.je_qm_zs * (-1)); ht.Add("bz", param["bz"].ToString()); var addFlowNum = Tz_Hy_Je_FlowDAL.AddFlowForXFWithExists(typeof(Tz_Hy_Je_Flow), ht); if (addFlowNum == 0) { br.Success = false; br.Message.Clear(); br.Message.Add("消费单据已存在!"); throw new CySoftException(br); } #endregion #region 验证账户余额是否充足 if (dbJeModel.je_qm < tempModel.je_qm) { br.Success = false; br.Message.Clear(); br.Message.Add(String.Format("操作失败,正常账户余额(" + dbJeModel.je_qm + ") < 正常消费金额(" + tempModel.je_qm + ")!")); throw new CySoftException(br); } if (dbJeModel.je_qm_zs < tempModel.je_qm_zs) { br.Success = false; br.Message.Clear(); br.Message.Add(String.Format("操作失败,赠送账户余额(" + dbJeModel.je_qm_zs + ") < 赠送消费金额(" + tempModel.je_qm_zs + ")!")); throw new CySoftException(br); } #endregion #region 更新数据 dbJeModel.je_qm = dbJeModel.je_qm - tempModel.je_qm; dbJeModel.je_qm_zs = dbJeModel.je_qm_zs - tempModel.je_qm_zs; dbJeModel.recodekey = GetRecordKey(dbJeModel); DAL.Update(dbJeModel); #endregion } else { #region 操作失败 会员还未充值过 br.Success = false; br.Message.Clear(); br.Message.Add(string.Format("操作失败 会员还未充值过!")); throw new CySoftException(br); #endregion } } #endregion #region 查询消费后会员的金额 ht.Clear(); ht.Add("id_shop", param["id_shop"].ToString()); ht.Add("id_masteruser", param["id_masteruser"].ToString()); ht.Add("id_hy", param["id_hy"].ToString()); var brJeNow = this.Get(ht); if (!brJeNow.Success) { br.Success = false; br.Message.Clear(); br.Message.Add(string.Format("操作完毕 查询金额失败!")); throw new CySoftException(br); } else { var dbJeModel = (Tz_Hy_Je)brJeNow.Data; if (ZBError(dbJeModel)) { br.Success = false; br.Message.Clear(); br.Message.Add("操作失败 会员金额账本数据非法 !"); throw new CySoftException(br); } } #endregion #region 返回 var jeNowModel = (Tz_Hy_Je)brJeNow.Data; br.Message.Add(String.Format("操作成功!")); br.Success = true; br.Data = new { add_je = tempModel.je_qm, add_je_zs = tempModel.je_qm_zs, je_qm = jeNowModel.je_qm, je_qm_zs = jeNowModel.je_qm_zs }; return(br); #endregion #endregion } else { #region 返回 br.Message.Add(String.Format("操作失败,无此操作类型!")); br.Success = false; return(br); #endregion } }
/// <summary> /// 获取充值赠送金额 /// lz /// 2016-09-19 /// </summary> /// <returns></returns> public decimal GetJe_Qm_Zs(Tb_Hy_Detail hy_detail, decimal je_cz, ref List <Tb_Hy_Czrule_Zssp_Api_Query> czrule_zssp) { #region 初始过滤条件 if (hy_detail == null || hy_detail.Tb_Hy_Shop == null) { return(0); } var abs_je_cz = Math.Abs(je_cz); #endregion #region 获取符合规则的表头信息 Hashtable ht = new Hashtable(); ht.Add("flag_delete", (byte)Enums.FlagDelete.NoDelete); ht.Add("flag_stop", (byte)Enums.FlagStop.Start); ht.Add("id_masteruser", hy_detail.Tb_Hy_Shop.id_masteruser); var head_list_all = DAL.QueryList <Tb_Hy_Czrule_Query>(typeof(Tb_Hy_Czrule), ht).ToList(); if (head_list_all == null || head_list_all.Count() <= 0) { return(0); } var head_list = head_list_all.Where(d => d.day_b <= DateTime.Now && d.day_e >= DateTime.Now && d.je_cz <= abs_je_cz && (d.id_shop == "0" || d.id_shop == hy_detail.Tb_Hy_Shop.id_shop) && (d.id_hyfl == "0" || d.id_hyfl == hy_detail.Tb_Hy_Shop.id_hyfl)).ToList(); if (head_list == null || head_list.Count() <= 0) { return(0); } var czrule_head = head_list.Where(d => d.id_shop == hy_detail.Tb_Hy_Shop.id_shop && d.id_hyfl == hy_detail.Tb_Hy_Shop.id_hyfl).OrderByDescending(d => d.je_cz).FirstOrDefault(); if (czrule_head == null || string.IsNullOrEmpty(czrule_head.id)) { czrule_head = head_list.Where(d => d.id_shop == "0" && d.id_hyfl == hy_detail.Tb_Hy_Shop.id_hyfl).OrderByDescending(d => d.je_cz).FirstOrDefault(); } if (czrule_head == null || string.IsNullOrEmpty(czrule_head.id)) { czrule_head = head_list.Where(d => d.id_shop == hy_detail.Tb_Hy_Shop.id_shop && d.id_hyfl == "0").OrderByDescending(d => d.je_cz).FirstOrDefault(); } if (czrule_head == null || string.IsNullOrEmpty(czrule_head.id)) { czrule_head = head_list.Where(d => d.id_shop == "0" && d.id_hyfl == "0").OrderByDescending(d => d.je_cz).FirstOrDefault(); } if (czrule_head == null || string.IsNullOrEmpty(czrule_head.id)) { return(0); } //var czrule_head = head_list.OrderByDescending(d => d.je_cz).FirstOrDefault(); #endregion #region 获取符合规则的表体信息 ht.Clear(); ht.Add("id_bill", czrule_head.id_bill); var czrule_body = DAL.QueryList <Tb_Hy_Czrule_Zssp_Query>(typeof(Tb_Hy_Czrule_Zssp), ht).ToList() ?? new List <Tb_Hy_Czrule_Zssp_Query>(); czrule_zssp = new List <Tb_Hy_Czrule_Zssp_Api_Query>(); foreach (var item in czrule_body) { czrule_zssp.Add(new Tb_Hy_Czrule_Zssp_Api_Query() { id_sp = item.id_sp, sl = (decimal)item.sl }); } #endregion #region 获取赠送的金额 decimal zsje = 0; czrule_head.je_cz_zs = czrule_head.je_cz_zs == null ? 0 : (decimal)czrule_head.je_cz_zs; czrule_head.je_cz = czrule_head.je_cz == null ? 0 : (decimal)czrule_head.je_cz; if (czrule_head.je_cz_zs != 0 && czrule_head.je_cz != 0) { int ruleInt = (int)((decimal)(abs_je_cz / czrule_head.je_cz)); zsje = (decimal)czrule_head.je_cz_zs * ruleInt; if (je_cz < 0) { zsje = -1 * zsje; } } #endregion return(zsje); }
/// <summary> /// 积分兑换商品查询 /// lz /// 2016-12-15 /// </summary> public override BaseResult Active(Hashtable entity) { Hashtable param = (Hashtable)entity; BaseResult br = new BaseResult() { Success = true }; #region 检查会员状态 br = base.CheckHY(param); if (!br.Success) { br.Success = false; br.Data = null; return(br); } Tb_Hy_Detail hy_detail = (Tb_Hy_Detail)br.Data; #endregion #region 检查是否符合 if (hy_detail == null || hy_detail.Tb_Hy_Shop == null || string.IsNullOrEmpty(hy_detail.Tb_Hy_Shop.id_hyfl)) { br.Success = false; br.Data = null; br.Message.Clear(); br.Message.Add(String.Format("未查询到会员相关分类信息!")); return(br); } hy_detail.Tb_Hy_Shop.id_shop = param["id_shop"].ToString(); #endregion #region 获取会员积分 Hashtable ht = new Hashtable(); ht.Add("id_hy", hy_detail.Tb_Hy_Shop.id_hy); ht.Add("id_shop", hy_detail.Tb_Hy_Shop.id_shop); ht.Add("id_masteruser", hy_detail.Tb_Hy_Shop.id_masteruser); var brHYJF = Tz_Hy_JfBLL.Get(ht); if (!brHYJF.Success) { br.Success = false; br.Data = null; br.Message.Clear(); br.Message.Add(brHYJF.Message.FirstOrDefault()); return(br); } var dhHYJF = (Tz_Hy_Jf)brHYJF.Data ?? new Tz_Hy_Jf() { jf_qm = 0 }; #endregion #region 获取相关信息 //由于机构和会员类别都有所有值,有四种情况按下列顺序查找 //1、指定机构和指定会员类别 //2、所有机构和指定会员类别 //3、指定机构和所有会员类别 //4、所有机构和所有会员类别 #region 注释 //var list = new List<Tb_Hy_Jfconvertsp_Query>(); //ht.Clear(); //ht.Add("id_masteruser", hy_detail.Tb_Hy_Shop.id_masteruser); //ht.Add("id_shop", hy_detail.Tb_Hy_Shop.id_shop); //ht.Add("id_hyfl", hy_detail.Tb_Hy_Shop.id_hyfl); //ht.Add("flag_delete", (int)Enums.FlagDelete.NoDelete); //list = DAL.QueryList<Tb_Hy_Jfconvertsp_Query>(typeof(Tb_Hy_Jfconvertsp), ht).ToList(); //if (list == null || list.Count() <= 0) //{ // ht.Clear(); // ht.Add("id_masteruser", hy_detail.Tb_Hy_Shop.id_masteruser); // ht.Add("id_shop", "0"); // ht.Add("id_hyfl", hy_detail.Tb_Hy_Shop.id_hyfl); // ht.Add("flag_delete", (int)Enums.FlagDelete.NoDelete); // list = DAL.QueryList<Tb_Hy_Jfconvertsp_Query>(typeof(Tb_Hy_Jfconvertsp), ht).ToList(); //} //if (list == null || list.Count() <= 0) //{ // ht.Clear(); // ht.Add("id_masteruser", hy_detail.Tb_Hy_Shop.id_masteruser); // ht.Add("id_shop", hy_detail.Tb_Hy_Shop.id_shop); // ht.Add("id_hyfl", "0"); // ht.Add("flag_delete", (int)Enums.FlagDelete.NoDelete); // list = DAL.QueryList<Tb_Hy_Jfconvertsp_Query>(typeof(Tb_Hy_Jfconvertsp), ht).ToList(); //} //if (list == null || list.Count() <= 0) //{ // ht.Clear(); // ht.Add("id_masteruser", hy_detail.Tb_Hy_Shop.id_masteruser); // ht.Add("id_shop", "0"); // ht.Add("id_hyfl", "0"); // ht.Add("flag_delete", (int)Enums.FlagDelete.NoDelete); // list = DAL.QueryList<Tb_Hy_Jfconvertsp_Query>(typeof(Tb_Hy_Jfconvertsp), ht).ToList(); //} #endregion var list = new List <Tb_Hy_Jfconvertsp_Query>(); var wList = new List <Tb_Hy_Jfconvertsp_Query>(); ht.Clear(); ht.Add("id_masteruser", hy_detail.Tb_Hy_Shop.id_masteruser); ht.Add("id_shop", hy_detail.Tb_Hy_Shop.id_shop); ht.Add("id_hyfl", hy_detail.Tb_Hy_Shop.id_hyfl); ht.Add("flag_delete", (int)Enums.FlagDelete.NoDelete); list = DAL.QueryList <Tb_Hy_Jfconvertsp_Query>(typeof(Tb_Hy_Jfconvertsp), ht).ToList(); if (list != null && list.Count() > 0) { foreach (var item in list.Where(d => !(from r in wList select r.id_sp).ToArray().Contains(d.id_sp))) { wList.Add(item); } } ht.Clear(); ht.Add("id_masteruser", hy_detail.Tb_Hy_Shop.id_masteruser); ht.Add("id_shop", "0"); ht.Add("id_hyfl", hy_detail.Tb_Hy_Shop.id_hyfl); ht.Add("flag_delete", (int)Enums.FlagDelete.NoDelete); list = DAL.QueryList <Tb_Hy_Jfconvertsp_Query>(typeof(Tb_Hy_Jfconvertsp), ht).ToList(); if (list != null && list.Count() > 0) { foreach (var item in list.Where(d => !(from r in wList select r.id_sp).ToArray().Contains(d.id_sp))) { wList.Add(item); } } ht.Clear(); ht.Add("id_masteruser", hy_detail.Tb_Hy_Shop.id_masteruser); ht.Add("id_shop", hy_detail.Tb_Hy_Shop.id_shop); ht.Add("id_hyfl", "0"); ht.Add("flag_delete", (int)Enums.FlagDelete.NoDelete); list = DAL.QueryList <Tb_Hy_Jfconvertsp_Query>(typeof(Tb_Hy_Jfconvertsp), ht).ToList(); if (list != null && list.Count() > 0) { foreach (var item in list.Where(d => !(from r in wList select r.id_sp).ToArray().Contains(d.id_sp))) { wList.Add(item); } } ht.Clear(); ht.Add("id_masteruser", hy_detail.Tb_Hy_Shop.id_masteruser); ht.Add("id_shop", "0"); ht.Add("id_hyfl", "0"); ht.Add("flag_delete", (int)Enums.FlagDelete.NoDelete); list = DAL.QueryList <Tb_Hy_Jfconvertsp_Query>(typeof(Tb_Hy_Jfconvertsp), ht).ToList(); if (list != null && list.Count() > 0) { foreach (var item in list.Where(d => !(from r in wList select r.id_sp).ToArray().Contains(d.id_sp))) { wList.Add(item); } } #endregion #region 结果处理 if (wList == null) { wList = new List <Tb_Hy_Jfconvertsp_Query>(); } var rList = from r in wList select new { id_masteruser = r.id_masteruser, id_shop = r.id_shop, day_b = (r.day_b == null ? "" : ((DateTime)r.day_b).ToString("yyyy-MM-dd HH:mm:ss")), day_e = (r.day_e == null ? "" : ((DateTime)r.day_e).ToString("yyyy-MM-dd HH:mm:ss")), id_hyfl = r.id_hyfl, weeks = r.weeks, id_sp = r.id_sp, je = r.je, jf = r.jf, dj_ls = r.dj_ls, id_create = r.id_create, rq_create = (r.rq_create == null ? "" : ((DateTime)r.rq_create).ToString("yyyy-MM-dd HH:mm:ss")) }; #endregion #region 返回 br.Message.Add(String.Format("操作成功!")); br.Success = true; br.Data = new { rList = rList, jf_qm = dhHYJF.jf_qm }; return(br); #endregion }