public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; string historyTotalScore = context.Request["history_total_score"]; if (string.IsNullOrEmpty(historyTotalScore)) { resp.errcode = 1; resp.errmsg = "参数错误"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } UserLevelConfig userLevel = bll.Get <UserLevelConfig>(string.Format(" WebSiteOwner='{0}' AND FromHistoryScore<={1} AND ToHistoryScore>={1}", bll.WebsiteOwner, historyTotalScore)); if (userLevel == null) { resp.errcode = 1; resp.errmsg = "没有查到用户等级"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } RequestModel requesrModel = new RequestModel(); requesrModel.level_number = userLevel.LevelNumber; requesrModel.level_string = userLevel.LevelString; requesrModel.level_icon = userLevel.LevelIcon; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(requesrModel)); }
/// <summary> /// 支付升级 /// </summary> /// <param name="orderPay"></param> /// <returns></returns> public bool PayUpgrade(OrderPay orderPay, string tradeNo) { string msg = ""; BLLJIMP.Model.API.User.PayUpgrade payUpgrade = JsonConvert.DeserializeObject <BLLJIMP.Model.API.User.PayUpgrade>(orderPay.Ex1); orderPay.Trade_No = tradeNo; UserLevelConfig levelConfig = bll.QueryUserLevel(orderPay.WebsiteOwner, "DistributionOnLine", payUpgrade.toLevel.ToString()); UserInfo currUser = bllUser.GetUserInfo(orderPay.UserId, orderPay.WebsiteOwner); if (!string.IsNullOrEmpty(levelConfig.CouponId)) { BLLCardCoupon bllCardCoupon = new BLLCardCoupon(); bllCardCoupon.SendCardCouponsByCurrUserInfo(currUser, levelConfig.CouponId); } return(bll.PayUpgradeTransfers(orderPay, payUpgrade, "", tradeNo, out msg)); }
public void ProcessRequest(HttpContext context) { var websiteInfo = bll.GetWebsiteInfoModelFromDataBase(); var websiteLogo = websiteInfo.WebsiteLogo; if (string.IsNullOrEmpty(websiteInfo.WebsiteLogo)) { websiteLogo = ConfigHelper.GetConfigString("WebsiteLogo"); } string nextLevelName = string.Empty; //下一等级名称 double distanceNextLevelScore = 0; //距离下一等级差值 UserLevelConfig currUserLevel = bll.GetUserLevel(CurrentUserInfo, out nextLevelName, out distanceNextLevelScore); apiResp.result = new { user_show_name = bllUser.GetUserDispalyName(CurrentUserInfo), website_logo = websiteLogo, website_name = websiteInfo.WebsiteName, is_distribution_member = IsDistributionMember(CurrentUserInfo, websiteInfo), //是否是分销会员 recommend_id = CurrentUserInfo.AutoID, //我的推荐码 recommend_count = bll.GetUserCommendCount(CurrentUserInfo.UserID), //推荐人数 nick_name = CurrentUserInfo.WXNickname, //昵称 true_name = CurrentUserInfo.TrueName, //真实姓名 head_img_url = bllUser.GetUserDispalyAvatar(CurrentUserInfo), //头像 history_commission_total_amount = CurrentUserInfo.HistoryDistributionOffLineTotalAmount, //累计佣金 can_use_amount = bll.GetUserCanUseAmount(CurrentUserInfo), //可提现金额 level_name = currUserLevel.LevelString, direct_rate = bll.GetUserLevel(CurrentUserInfo).DistributionRateLevel0, //直销佣金比例 direct_sale_amount = bll.GetDirectSaleAmount(CurrentUserInfo.UserID), //累计直接销售 down_user_total_count = bll.GetDownUserTotalCount(CurrentUserInfo.UserID, bll.GetDistributionLevel()), //下级用户总和 down_user_level1_count = bll.GetDownUserCount(CurrentUserInfo.UserID, 1), //一级分销用户数 down_user_level2_count = bll.GetDownUserCount(CurrentUserInfo.UserID, 2), //二级分销用户数 down_user_level3_count = bll.GetDownUserCount(CurrentUserInfo.UserID, 3), //三级分销用户数 distribution_level1_rate = bll.GetUserLevel(CurrentUserInfo).DistributionRateLevel1, //一级分销佣金比例 distribution_level2_rate = bll.GetUserLevel(CurrentUserInfo).DistributionRateLevel2, //二级分销佣金比例 distribution_level3_rate = bll.GetUserLevel(CurrentUserInfo).DistributionRateLevel3, //三级分销佣金比例 next_level_name = nextLevelName, //下个等级名称 distance_next_level_score = distanceNextLevelScore //距离下个等级的积分 }; apiResp.status = true; apiResp.msg = "ok"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp)); }
protected void Page_Load(object sender, EventArgs e) { uinfo = DataLoadTool.GetCurrUserModel(); bllUserScore = new BLLJIMP.BLLUserScore(uinfo.UserID); UserLevel = bllUserScore.GetUserLevelByTotalScore(uinfo.HistoryTotalScore); NextUserLevel = bllUserScore.Get <UserLevelConfig>(string.Format("LevelNumber={0}", UserLevel + 1)); if (NextUserLevel == null) { NextUserLevel = new UserLevelConfig(); NextUserLevel.LevelNumber = 1; NextUserLevel.FromHistoryScore = 0; } Percent = (int)((uinfo.HistoryTotalScore / NextUserLevel.FromHistoryScore) * 100); if (Percent < 0) { Percent = 0; } if (Percent > 100) { Percent = 100; } }
public void ProcessRequest(HttpContext context) { BLLJIMP.Model.API.User.PayUpgrade payUpgrade = bll.ConvertRequestToModel <BLLJIMP.Model.API.User.PayUpgrade>(new BLLJIMP.Model.API.User.PayUpgrade()); payUpgrade.level = CurrentUserInfo.MemberLevel; string websiteOwner = bll.WebsiteOwner; UserLevelConfig levelConfig = bll.QueryUserLevel(websiteOwner, "DistributionOnLine", payUpgrade.level.ToString()); if (levelConfig == null) { payUpgrade.userTotalAmount = 0; } else { payUpgrade.userTotalAmount = Convert.ToDecimal(levelConfig.FromHistoryScore); } UserLevelConfig toLevelConfig = bll.QueryUserLevel(websiteOwner, "DistributionOnLine", payUpgrade.toLevel.ToString()); if (toLevelConfig == null) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = "会员等级未找到"; bll.ContextResponse(context, apiResp); return; } if (toLevelConfig.IsDisable == 1) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = "会员级别禁止升级"; bll.ContextResponse(context, apiResp); return; } payUpgrade.needAmount = Convert.ToDecimal(toLevelConfig.FromHistoryScore); payUpgrade.amount = payUpgrade.needAmount - payUpgrade.userTotalAmount; if (payUpgrade.amount < 0) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "暂时不支持降级"; bll.ContextResponse(context, apiResp); return; } if (string.IsNullOrWhiteSpace(CurrentUserInfo.WXOpenId)) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = "请先绑定微信"; bll.ContextResponse(context, apiResp); return; } PayConfig payConfig = bllPay.GetPayConfig(); if (payConfig == null || string.IsNullOrEmpty(payConfig.WXAppId) || string.IsNullOrEmpty(payConfig.WXMCH_ID) || string.IsNullOrEmpty(payConfig.WXPartnerKey)) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "该商户微信支付还没有配置"; bll.ContextResponse(context, apiResp); return; } OrderPay orderPay = new OrderPay(); orderPay.OrderId = bll.GetGUID(TransacType.PayRegisterOrder); orderPay.InsertDate = DateTime.Now; orderPay.Subject = "支付升级"; orderPay.Total_Fee = payUpgrade.amount; orderPay.Type = "6"; orderPay.WebsiteOwner = websiteOwner; orderPay.UserId = CurrentUserInfo.UserID; orderPay.Ex1 = JsonConvert.SerializeObject(payUpgrade); if (!bll.Add(orderPay)) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "生成支付订单失败"; bll.ContextResponse(context, apiResp); return; } string appId = payConfig.WXAppId; //微信AppId string mchId = payConfig.WXMCH_ID; //商户号 string key = payConfig.WXPartnerKey; //api密钥 string openId = CurrentUserInfo.WXOpenId; //openid string ip = context.Request.UserHostAddress; //ip string notifyUrl = string.Format("http://{0}/WxPayNotify/PayUpgradeNotify.aspx", context.Request.Url.Authority); //支付升级通知地址 string body = ""; //订单内容 string payReqStr = bllPay.GetBrandWcPayRequest(orderPay.OrderId, orderPay.Total_Fee, appId, mchId, key, openId, ip, notifyUrl, body); BllPay.WXPayReq payReqModel = ZentCloud.Common.JSONHelper.JsonToModel <BllPay.WXPayReq>(payReqStr); if (string.IsNullOrEmpty(payReqModel.paySign)) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "构造支付信息失败"; bll.ContextResponse(context, apiResp); return; } apiResp.code = (int)APIErrCode.IsSuccess; apiResp.status = true; apiResp.result = new { pay_req = payReqModel }; bllUser.ContextResponse(context, apiResp); }
protected void Page_Load(object sender, EventArgs e) { try { //Tolog("进入支付回调"); XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(Request.InputStream); //xmlDoc.Load(@"D:\PayRegisterNotify20170613203329981.xml"); xmlDoc.Save(string.Format("C:\\WXPay\\PayRegisterNotify{0}.xml", DateTime.Now.ToString("yyyyMMddHHmmssfff")));//写入日志 //全部参数 Dictionary <string, string> parametersAll = new Dictionary <string, string>(); foreach (XmlElement item in xmlDoc.DocumentElement.ChildNodes) { string key = item.Name; string value = item.InnerText; if ((!string.IsNullOrEmpty(key)) && (!string.IsNullOrEmpty(value))) { parametersAll.Add(key, value); } } parametersAll = (from entry in parametersAll orderby entry.Key ascending select entry).ToDictionary(pair => pair.Key, pair => pair.Value); //全部参数排序 PayConfig payConfig = bllPay.GetPayConfig(); if (!bllPay.VerifySignatureWx(parametersAll, payConfig.WXPartnerKey)) //验证签名 { Tolog("验证签名出错"); Response.Write(failXml); return; } OrderPay orderPay = bllOrder.GetOrderPay(parametersAll["out_trade_no"]); if (orderPay == null) { Tolog("订单未找到"); Response.Write(failXml); return; } if (orderPay.Status.Equals(1)) { Tolog("已支付"); Response.Write(successXml); return; } BLLJIMP.Model.API.User.PayRegisterUser requestUser = JsonConvert.DeserializeObject <BLLJIMP.Model.API.User.PayRegisterUser>(orderPay.Ex1); UserLevelConfig levelConfig = bll.QueryUserLevel(orderPay.WebsiteOwner, "DistributionOnLine", requestUser.level.ToString()); if (levelConfig == null) { Tolog("会员等级未找到"); Response.Write(failXml); return; } //更新订单状态 if (parametersAll["return_code"].Equals("SUCCESS") && parametersAll["result_code"].Equals("SUCCESS"))//交易成功 { UserInfo regUser = bllUser.GetUserInfoByPhone(requestUser.phone, orderPay.WebsiteOwner); if (regUser != null && regUser.MemberLevel >= 10) { Tolog("该手机已注册会员"); Response.Write(failXml); return; } if (regUser != null && regUser.MemberLevel > requestUser.level) { Tolog("该会员有更高级别"); Response.Write(failXml); return; } if (regUser != null) { regUser.UserType = 2; regUser.TrueName = requestUser.truename; regUser.DistributionOwner = requestUser.spreadid; regUser.MemberLevel = requestUser.level; regUser.MemberStartTime = DateTime.Now; regUser.MemberApplyTime = orderPay.InsertDate; regUser.RegIP = requestUser.regIP; regUser.Password = requestUser.password; regUser.MemberApplyStatus = 9; regUser.IdentityCard = requestUser.idcard; regUser.Province = requestUser.province; regUser.City = requestUser.city; regUser.District = requestUser.district; regUser.Town = requestUser.town; regUser.ProvinceCode = requestUser.provinceCode; regUser.CityCode = requestUser.cityCode; regUser.DistrictCode = requestUser.districtCode; regUser.TownCode = requestUser.townCode; regUser.RegUserID = null; regUser.RegisterWay = "线上"; regUser.IsDisable = 0; regUser.RegUserID = null; } else { regUser = new UserInfo(); regUser.UserID = requestUser.userid; regUser.UserType = 2; regUser.TrueName = requestUser.truename; regUser.WebsiteOwner = orderPay.WebsiteOwner; regUser.DistributionOwner = requestUser.spreadid; regUser.Phone = requestUser.phone; regUser.MemberLevel = requestUser.level; regUser.MemberStartTime = DateTime.Now; regUser.MemberApplyTime = orderPay.InsertDate; regUser.Regtime = DateTime.Now; regUser.LastLoginDate = DateTime.Parse("1970-01-01"); regUser.RegIP = requestUser.regIP; regUser.Password = requestUser.password; regUser.MemberApplyStatus = 9; regUser.IdentityCard = requestUser.idcard; regUser.Province = requestUser.province; regUser.City = requestUser.city; regUser.District = requestUser.district; regUser.Town = requestUser.town; regUser.ProvinceCode = requestUser.provinceCode; regUser.CityCode = requestUser.cityCode; regUser.DistrictCode = requestUser.districtCode; regUser.TownCode = requestUser.townCode; regUser.RegisterWay = "线上"; regUser.IsDisable = 0; regUser.RegUserID = null; } string msg = ""; orderPay.Trade_No = parametersAll["transaction_id"]; //线上注册分佣 if (!bll.PayRegisterTransfers(regUser, orderPay, parametersAll["openid"], parametersAll["transaction_id"], levelConfig, out msg)) { Tolog(msg); Response.Write(failXml); return; } //发送优惠券 if (!string.IsNullOrEmpty(levelConfig.CouponId)) { BLLCardCoupon bllCardCoupon = new BLLCardCoupon(); bllCardCoupon.SendCardCouponsByCurrUserInfo(regUser, levelConfig.CouponId); } Response.Write(successXml); return; } Tolog("返回信息有误"); Response.Write(failXml); } catch (Exception ex) { Tolog("出错了:" + ex.ToString()); Response.Write(failXml); } }
public void BuildOrder(HttpContext context, int payType, UserInfo user) { BLLJIMP.Model.API.User.PayUpgrade payUpgrade = bll.ConvertRequestToModel <BLLJIMP.Model.API.User.PayUpgrade>(new BLLJIMP.Model.API.User.PayUpgrade()); payUpgrade.level = user.MemberLevel; string websiteOwner = bll.WebsiteOwner; UserLevelConfig levelConfig = bll.QueryUserLevel(websiteOwner, "DistributionOnLine", payUpgrade.level.ToString()); if (levelConfig == null) { payUpgrade.userTotalAmount = 0; } else { payUpgrade.userTotalAmount = Convert.ToDecimal(levelConfig.FromHistoryScore); } UserLevelConfig toLevelConfig = bll.QueryUserLevel(websiteOwner, "DistributionOnLine", payUpgrade.toLevel.ToString()); if (toLevelConfig == null) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = "会员等级未找到"; bll.ContextResponse(context, apiResp); return; } if (toLevelConfig.IsDisable == 1) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = "会员级别禁止升级"; bll.ContextResponse(context, apiResp); return; } payUpgrade.needAmount = Convert.ToDecimal(toLevelConfig.FromHistoryScore); payUpgrade.amount = payUpgrade.needAmount - payUpgrade.userTotalAmount; if (payUpgrade.amount < 0) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "暂时不支持降级"; bll.ContextResponse(context, apiResp); return; } PayConfig payConfig = bllPay.GetPayConfig(); if (payType == 1 && !bllPay.IsAliPay(payConfig)) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "该商户支付宝支付还没有配置"; bll.ContextResponse(context, apiResp); return; } else if (payType == 2 && !bllPay.IsJDPay(payConfig)) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "该商户京东支付还没有配置"; bll.ContextResponse(context, apiResp); return; } OrderPay orderPay = new OrderPay(); orderPay.OrderId = bll.GetGUID(TransacType.PayRegisterOrder); orderPay.InsertDate = DateTime.Now; orderPay.Subject = "支付升级"; orderPay.Total_Fee = payUpgrade.amount; orderPay.Type = "6"; orderPay.WebsiteOwner = websiteOwner; orderPay.UserId = user.UserID; orderPay.Ex1 = JsonConvert.SerializeObject(payUpgrade); orderPay.PayType = payType; if (!bll.Add(orderPay)) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "生成支付订单失败"; bll.ContextResponse(context, apiResp); return; } apiResp.code = (int)APIErrCode.IsSuccess; apiResp.status = true; apiResp.result = new { user_id = user.AutoID, pay_order_id = orderPay.OrderId }; bllUser.ContextResponse(context, apiResp); }
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; string data = context.Request["data"]; RequestModel requestModel; try { requestModel = ZentCloud.Common.JSONHelper.JsonToModel <RequestModel>(context.Request["data"]); } catch (Exception) { resp.errcode = -1; resp.errmsg = "json格式错误,请检查"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } if (requestModel.level_number <= 0) { resp.errmsg = "level_number参数必填,请检查"; resp.errcode = 1; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } if (string.IsNullOrEmpty(requestModel.level_string)) { resp.errmsg = "requestModel参数必填,请检查"; resp.errcode = 1; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } if (string.IsNullOrEmpty(requestModel.level_icon)) { resp.errmsg = "level_icon参数必填,请检查"; resp.errcode = 1; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } if (requestModel.level_fromhistory_score <= 0) { resp.errmsg = "level_fromhistory_score参数必填,请检查"; resp.errcode = 1; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } if (requestModel.level_tohistory_score <= 0) { resp.errmsg = "level_tohistory_score参数必填,请检查"; resp.errcode = 1; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } UserLevelConfig userLevel = new UserLevelConfig(); userLevel.LevelNumber = requestModel.level_number; userLevel.LevelString = requestModel.level_string; userLevel.LevelIcon = requestModel.level_icon; userLevel.FromHistoryScore = requestModel.level_fromhistory_score; userLevel.ToHistoryScore = requestModel.level_tohistory_score; userLevel.WebSiteOwner = bll.WebsiteOwner; if (bll.Add(userLevel)) { resp.isSuccess = true; resp.errcode = 0; resp.errmsg = "ok"; } else { resp.errmsg = "添加用户等级出错"; resp.errcode = -1; } context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; }
public void ProcessRequest(HttpContext context) { BLLJIMP.Model.API.User.PayRegisterUser requestUser = bll.ConvertRequestToModel <BLLJIMP.Model.API.User.PayRegisterUser>(new BLLJIMP.Model.API.User.PayRegisterUser()); string websiteOwner = bll.WebsiteOwner; BLLJIMP.Model.Flow flow = bllFlow.GetFlowByKey(requestUser.flow_key, websiteOwner); if (flow == null) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = "流程未定义"; bllFlow.ContextResponse(context, apiResp); return; } if (flow.IsDelete == 1) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = flow.FlowName + "已停用"; bllFlow.ContextResponse(context, apiResp); return; } List <BLLJIMP.Model.FlowStep> steps = bllFlow.GetStepList(2, 1, websiteOwner, flow.AutoID); if (steps.Count == 0) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = flow.FlowName + "环节未设置"; bllFlow.ContextResponse(context, apiResp); return; } if (string.IsNullOrWhiteSpace(requestUser.level.ToString())) { apiResp.code = (int)APIErrCode.PrimaryKeyIncomplete; apiResp.msg = "请选择会员级别"; bll.ContextResponse(context, apiResp); return; } if (string.IsNullOrWhiteSpace(requestUser.phone)) { apiResp.code = (int)APIErrCode.PrimaryKeyIncomplete; apiResp.msg = "请输入手机号码"; bll.ContextResponse(context, apiResp); return; } if (string.IsNullOrWhiteSpace(requestUser.spreadid)) { apiResp.code = (int)APIErrCode.PrimaryKeyIncomplete; apiResp.msg = "请输入推荐人编号"; bll.ContextResponse(context, apiResp); return; } if (!ZentCloud.Common.MyRegex.PhoneNumLogicJudge(requestUser.phone)) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "手机号码格式不正确"; bll.ContextResponse(context, apiResp); return; } if (!ZentCloud.Common.MyRegex.IsIDCard(requestUser.idcard)) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "身份证号码必须如实填写"; bll.ContextResponse(context, apiResp); return; } UserLevelConfig levelConfig = bll.QueryUserLevel(websiteOwner, "DistributionOnLine", requestUser.level.ToString()); if (levelConfig == null) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = "会员级别未找到"; bll.ContextResponse(context, apiResp); return; } if (levelConfig.IsDisable == 1) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = "会员级别禁止注册"; bll.ContextResponse(context, apiResp); return; } requestUser.levelname = levelConfig.LevelString; UserInfo spreadUser = bllUser.GetSpreadUser(requestUser.spreadid, websiteOwner); if (spreadUser == null) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = "推荐人未找到"; bll.ContextResponse(context, apiResp); return; } requestUser.spreadid = spreadUser.UserID; //推荐人 if (bllFlow.ExistsMemberPhoneAction(websiteOwner, flow.FlowKey, "0", requestUser.phone)) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "该手机用户正在申请会员"; bll.ContextResponse(context, apiResp); return; } UserInfo oldUserInfo = bllUser.GetUserInfoByPhone(requestUser.phone, websiteOwner); if (oldUserInfo != null && oldUserInfo.MemberLevel >= 10) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "该手机已注册会员"; bll.ContextResponse(context, apiResp); return; } if (oldUserInfo != null && oldUserInfo.MemberLevel > requestUser.level) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "该会员有更高级别"; bll.ContextResponse(context, apiResp); return; } if (oldUserInfo == null) { oldUserInfo = new UserInfo(); oldUserInfo.UserID = string.Format("ZYUser{0}{1}", DateTime.Now.ToString("yyyyMMdd"), Guid.NewGuid().ToString("N").ToUpper()); oldUserInfo.Regtime = DateTime.Now; } oldUserInfo.RegIP = context.Request.UserHostAddress;//ip oldUserInfo.Password = ZentCloud.Common.Rand.Number(6); oldUserInfo.UserType = 2; oldUserInfo.TrueName = requestUser.truename; oldUserInfo.WebsiteOwner = websiteOwner; oldUserInfo.DistributionOwner = requestUser.spreadid; oldUserInfo.Phone = requestUser.phone; oldUserInfo.MemberApplyTime = DateTime.Now; oldUserInfo.MemberLevel = levelConfig.LevelNumber; oldUserInfo.LastLoginDate = DateTime.Parse("1970-01-01"); oldUserInfo.IdentityCard = requestUser.idcard; oldUserInfo.Province = requestUser.province; oldUserInfo.City = requestUser.city; oldUserInfo.District = requestUser.district; oldUserInfo.Town = requestUser.town; oldUserInfo.ProvinceCode = requestUser.provinceCode; oldUserInfo.CityCode = requestUser.cityCode; oldUserInfo.DistrictCode = requestUser.districtCode; oldUserInfo.TownCode = requestUser.townCode; oldUserInfo.RegUserID = currentUserInfo.UserID; if (flow.FlowKey == "RegisterEmptyBill") { oldUserInfo.EmptyBill = 1; oldUserInfo.MemberApplyStatus = 0; } else { oldUserInfo.EmptyBill = 0; oldUserInfo.MemberApplyStatus = 1; } oldUserInfo.RegisterWay = "线下"; oldUserInfo.IsDisable = 0; BLLJIMP.Model.FlowStep step1 = steps[0]; BLLJIMP.Model.FlowStep step2 = null; if (steps.Count == 2) { step2 = steps[1]; } BLLJIMP.Model.FlowAction action = new BLLJIMP.Model.FlowAction(); action.CreateDate = DateTime.Now; action.CreateUserID = currentUserInfo.UserID; action.WebsiteOwner = websiteOwner; action.StartStepID = step1.AutoID; action.FlowID = flow.AutoID; action.FlowKey = flow.FlowKey; action.StartEx2 = JsonConvert.SerializeObject(requestUser); if (!string.IsNullOrWhiteSpace(requestUser.content)) { action.StartContent = requestUser.content; } if (!string.IsNullOrWhiteSpace(requestUser.ex1)) { action.StartEx1 = requestUser.ex1; } action.MemberAutoID = 0; action.MemberID = oldUserInfo.UserID; action.MemberName = oldUserInfo.TrueName; action.MemberPhone = oldUserInfo.Phone; action.MemberLevel = levelConfig.LevelNumber; action.MemberLevelName = levelConfig.LevelString; action.FlowName = flow.FlowName; action.Amount = Convert.ToDecimal(levelConfig.FromHistoryScore); if (step2 != null) { action.StepID = step2.AutoID; action.StepName = step2.StepName; } else { action.Status = 9; action.EndDate = DateTime.Now; } BLLJIMP.Model.FlowActionDetail actionDetail1 = new BLLJIMP.Model.FlowActionDetail(); actionDetail1.WebsiteOwner = websiteOwner; actionDetail1.FlowID = flow.AutoID; actionDetail1.StepID = step1.AutoID; actionDetail1.StepName = step1.StepName; actionDetail1.HandleUserID = currentUserInfo.UserID; actionDetail1.HandleDate = DateTime.Now; actionDetail1.Ex2 = action.StartEx2; if (!string.IsNullOrWhiteSpace(action.StartContent)) { actionDetail1.HandleContent = action.StartContent; } if (!string.IsNullOrWhiteSpace(action.StartEx1)) { actionDetail1.Ex1 = action.StartEx1; } List <BLLJIMP.Model.FlowActionFile> files = new List <BLLJIMP.Model.FlowActionFile>(); List <string> fileUrls = requestUser.files.Split(',').Where(p => !string.IsNullOrWhiteSpace(p)).ToList(); if (fileUrls.Count > 0) { foreach (var item in fileUrls) { files.Add(new BLLJIMP.Model.FlowActionFile() { FlowID = flow.AutoID, StepID = step1.AutoID, WebsiteOwner = websiteOwner, FilePath = item }); } if (fileUrls.Count > 0) { oldUserInfo.Ex6 = fileUrls[0]; } if (fileUrls.Count > 1) { oldUserInfo.Ex7 = fileUrls[1]; } if (fileUrls.Count > 2) { oldUserInfo.Ex8 = fileUrls[2]; } if (fileUrls.Count > 3) { oldUserInfo.Ex9 = fileUrls[3]; } if (fileUrls.Count > 4) { oldUserInfo.Ex10 = fileUrls[4]; } } //WebsiteInfo website = bllUser.GetWebsiteInfoModelFromDataBase(websiteOwner); //int disLevel = 1; //if (website.DistributionLimitLevel > 1) disLevel = website.DistributionLimitLevel; //StringBuilder sbSql = new StringBuilder(); //bool hasProjectCommission = false;//分佣是否存在 //UserInfo upUserLevel1 = null;//分销上一级 //UserInfo upUserLevel2 = null;//分销上二级 //UserInfo upUserLevel3 = null;//分销上三级 //UserLevelConfig levelConfig1 = null;//分销上一级规则 //UserLevelConfig levelConfig2 = null;//分销上二级规则 //UserLevelConfig levelConfig3 = null;//分销上三级规则 //ProjectCommission modelLevel1 = new ProjectCommission(); //ScoreLockInfo scoreLockLevel1Info = new ScoreLockInfo(); //ProjectCommission modelLevel1ex1 = new ProjectCommission(); //ScoreLockInfo scoreLockLevel1ex1Info = new ScoreLockInfo(); //ProjectCommission modelLevel2 = new ProjectCommission(); //ScoreLockInfo scoreLockLevel2Info = new ScoreLockInfo(); //ProjectCommission modelLevel3 = new ProjectCommission(); //ScoreLockInfo scoreLockLevel3Info = new ScoreLockInfo(); //string guId = bll.GetGUID(TransacType.OfflineRegister); ////计算分佣 //bll.ComputeTransfers(disLevel, oldUserInfo, guId, action.Amount, websiteOwner, "线下注册", ref sbSql, ref upUserLevel1, // ref upUserLevel2, ref upUserLevel3, ref levelConfig1, ref levelConfig2, ref levelConfig3, ref modelLevel1, ref scoreLockLevel1Info, // ref modelLevel1ex1, ref scoreLockLevel1ex1Info, ref modelLevel2, ref scoreLockLevel2Info, ref modelLevel3, ref scoreLockLevel3Info, // levelConfig.LevelString); BLLTransaction tran = new BLLTransaction(); //线下注册,扣钱,(实单审核后返) oldUserInfo.AccountAmountEstimate -= action.Amount; oldUserInfo.TotalAmount -= action.Amount; if (oldUserInfo.AutoID == 0) { oldUserInfo.AutoID = Convert.ToInt32(bllFlow.AddReturnID(oldUserInfo, tran)); if (oldUserInfo.AutoID <= 0) { tran.Rollback(); apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "注册失败"; bllFlow.ContextResponse(context, apiResp); return; } action.MemberAutoID = oldUserInfo.AutoID; } else { if (!bllUser.Update(oldUserInfo, tran)) { tran.Rollback(); apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "注册失败"; bllFlow.ContextResponse(context, apiResp); return; } action.MemberAutoID = oldUserInfo.AutoID; } int rId = Convert.ToInt32(bllFlow.AddReturnID(action, tran)); if (rId <= 0) { tran.Rollback(); apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = flow.FlowName + "失败"; bllFlow.ContextResponse(context, apiResp); return; } #region 记录分佣信息 //if (modelLevel1.Amount > 0) //{ // hasProjectCommission = true; // modelLevel1.ProjectId = rId; // int modelLevel1Id = Convert.ToInt32(bll.AddReturnID(modelLevel1, tran)); // if (modelLevel1Id <= 0) // { // tran.Rollback(); // apiResp.code = (int)APIErrCode.OperateFail; // apiResp.msg = "一级返利失败"; // bllFlow.ContextResponse(context, apiResp); // return; // } // scoreLockLevel1Info.ForeignkeyId2 = modelLevel1Id.ToString(); // scoreLockLevel1Info.AutoId = Convert.ToInt32(bll.AddReturnID(scoreLockLevel1Info, tran)); // if (scoreLockLevel1Info.AutoId<=0) // { // tran.Rollback(); // apiResp.code = (int)APIErrCode.OperateFail; // apiResp.msg = "一级返利冻结失败"; // bllFlow.ContextResponse(context, apiResp); // return; // } // string scoreDetailEvent = modelLevel1.ProjectName.Contains("购房补助") ? "返购房补助" : "返利"; // if (bllUser.AddScoreDetail(scoreLockLevel1Info.UserId, websiteOwner, (double)scoreLockLevel1Info.Score, // scoreLockLevel1Info.Memo, "TotalAmount", (double)(upUserLevel1.TotalAmount + scoreLockLevel1Info.Score), // scoreLockLevel1Info.AutoId.ToString(), scoreDetailEvent, "", rId.ToString(), // (double)modelLevel1.SourceAmount, (double)modelLevel1.DeductAmount, // modelLevel1.CommissionUserId, tran, // ex3: levelConfig.LevelNumber.ToString(), ex4: levelConfig.LevelString, // ex5: modelLevel1.CommissionLevel) <= 0) // { // tran.Rollback(); // apiResp.code = (int)APIErrCode.OperateFail; // apiResp.msg = "一级返利明细记录失败"; // bllFlow.ContextResponse(context, apiResp); // return; // } //} //if (modelLevel1ex1.Amount > 0) //{ // hasProjectCommission = true; // modelLevel1ex1.ProjectId = rId; // int modelLevel1ex1Id = Convert.ToInt32(bll.AddReturnID(modelLevel1ex1, tran)); // if (modelLevel1ex1Id <= 0) // { // tran.Rollback(); // apiResp.code = (int)APIErrCode.OperateFail; // apiResp.msg = "一级返购房补助失败"; // bllFlow.ContextResponse(context, apiResp); // return; // } // scoreLockLevel1ex1Info.ForeignkeyId2 = modelLevel1ex1Id.ToString(); // scoreLockLevel1ex1Info.AutoId = Convert.ToInt32(bll.AddReturnID(scoreLockLevel1ex1Info, tran)); // if (scoreLockLevel1ex1Info.AutoId<=0) // { // tran.Rollback(); // apiResp.code = (int)APIErrCode.OperateFail; // apiResp.msg = "一级返购房补助冻结失败"; // bllFlow.ContextResponse(context, apiResp); // return; // } // string scoreDetailEvent = modelLevel1ex1.ProjectName.Contains("购房补助") ? "返购房补助" : "返利"; // if (bllUser.AddScoreDetail(scoreLockLevel1ex1Info.UserId, websiteOwner, (double)scoreLockLevel1ex1Info.Score, // scoreLockLevel1ex1Info.Memo, "TotalAmount", (double)(upUserLevel1.TotalAmount + scoreLockLevel1ex1Info.Score), // scoreLockLevel1ex1Info.AutoId.ToString(), scoreDetailEvent, "", rId.ToString(), // (double)modelLevel1ex1.SourceAmount, (double)modelLevel1ex1.DeductAmount, // modelLevel1ex1.CommissionUserId, // tran, ex3: levelConfig.LevelNumber.ToString(), ex4: levelConfig.LevelString, // ex5: modelLevel1ex1.CommissionLevel) <= 0) // { // tran.Rollback(); // apiResp.code = (int)APIErrCode.OperateFail; // apiResp.msg = "一级返购房补助明细记录失败"; // bllFlow.ContextResponse(context, apiResp); // return; // } //} //if (modelLevel2.Amount > 0) //{ // hasProjectCommission = true; // modelLevel2.ProjectId = rId; // int modelLevel2Id = Convert.ToInt32(bll.AddReturnID(modelLevel2, tran)); // if (modelLevel2Id <= 0) // { // tran.Rollback(); // apiResp.code = (int)APIErrCode.OperateFail; // apiResp.msg = "二级返利失败"; // bllFlow.ContextResponse(context, apiResp); // return; // } // scoreLockLevel2Info.ForeignkeyId2 = modelLevel2Id.ToString(); // scoreLockLevel2Info.AutoId = Convert.ToInt32(bll.AddReturnID(scoreLockLevel2Info, tran)); // if (scoreLockLevel2Info.AutoId<=0) // { // tran.Rollback(); // apiResp.code = (int)APIErrCode.OperateFail; // apiResp.msg = "二级返利冻结失败"; // bllFlow.ContextResponse(context, apiResp); // return; // } // string scoreDetailEvent = modelLevel2.ProjectName.Contains("购房补助") ? "返购房补助" : "返利"; // if (bllUser.AddScoreDetail(scoreLockLevel2Info.UserId, websiteOwner, (double)scoreLockLevel2Info.Score, // scoreLockLevel2Info.Memo, "TotalAmount", (double)(upUserLevel2.TotalAmount + scoreLockLevel2Info.Score), // scoreLockLevel2Info.AutoId.ToString(), scoreDetailEvent, "", rId.ToString(), (double)modelLevel2.SourceAmount, (double)modelLevel2.DeductAmount, // modelLevel2.CommissionUserId, // tran, ex3: levelConfig.LevelNumber.ToString(), ex4: levelConfig.LevelString, // ex5: modelLevel2.CommissionLevel) <= 0) // { // tran.Rollback(); // apiResp.code = (int)APIErrCode.OperateFail; // apiResp.msg = "二级返利明细记录失败"; // bllFlow.ContextResponse(context, apiResp); // return; // } //} //if (modelLevel3.Amount > 0) //{ // hasProjectCommission = true; // modelLevel3.ProjectId = rId; // int modelLevel3Id = Convert.ToInt32(bll.AddReturnID(modelLevel3, tran)); // if (modelLevel3Id<=0) // { // tran.Rollback(); // apiResp.code = (int)APIErrCode.OperateFail; // apiResp.msg = "三级返利失败"; // bllFlow.ContextResponse(context, apiResp); // return; // } // scoreLockLevel3Info.ForeignkeyId2 = modelLevel3Id.ToString(); // scoreLockLevel3Info.AutoId = Convert.ToInt32(bll.AddReturnID(scoreLockLevel3Info, tran)); // if (scoreLockLevel3Info.AutoId<=0) // { // tran.Rollback(); // apiResp.code = (int)APIErrCode.OperateFail; // apiResp.msg = "三级返利冻结失败"; // bllFlow.ContextResponse(context, apiResp); // return; // } // string scoreDetailEvent = modelLevel3.ProjectName.Contains("购房补助") ? "返购房补助" : "返利"; // if (bllUser.AddScoreDetail(scoreLockLevel3Info.UserId, websiteOwner, (double)scoreLockLevel3Info.Score, // scoreLockLevel3Info.Memo, "TotalAmount", (double)(upUserLevel3.TotalAmount + scoreLockLevel3Info.Score), // scoreLockLevel3Info.AutoId.ToString(), scoreDetailEvent, "" ,rId.ToString(), (double)modelLevel3.SourceAmount, (double)modelLevel3.DeductAmount, // modelLevel3.CommissionUserId, // tran, ex3: levelConfig.LevelNumber.ToString(), ex4: levelConfig.LevelString, // ex5: modelLevel3.CommissionLevel) <= 0) // { // tran.Rollback(); // apiResp.code = (int)APIErrCode.OperateFail; // apiResp.msg = "三级返利明细记录失败"; // bllFlow.ContextResponse(context, apiResp); // return; // } //} //if (hasProjectCommission) //{ // int result = BLLBase.ExecuteSql(sbSql.ToString(), tran); // if (result <= 0) // { // tran.Rollback(); // apiResp.code = (int)APIErrCode.OperateFail; // apiResp.msg = "更新分佣账面金额失败"; // bllFlow.ContextResponse(context, apiResp); // return; // } //} #endregion #region 记录余额明细 //自己的消费记录 string note = flow.FlowKey == "RegisterEmptyBill" ? "线下注册空单" : "线下注册"; int mainDetailId = bllUser.AddScoreDetail(oldUserInfo.UserID, websiteOwner, (double)(0 - action.Amount), string.Format("{1}{0}", levelConfig.LevelString, note), "TotalAmount", (double)oldUserInfo.TotalAmount, "", "注册会员", "", rId.ToString(), (double)action.Amount, 0, "", tran, ex3: levelConfig.LevelNumber.ToString(), ex4: levelConfig.LevelString); if (mainDetailId <= 0) { tran.Rollback(); apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "注册明细失败"; bllFlow.ContextResponse(context, apiResp); return; } #endregion actionDetail1.ActionID = rId; if (!bllFlow.Add(actionDetail1, tran)) { tran.Rollback(); apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = flow.FlowName + ",记录失败"; bllFlow.ContextResponse(context, apiResp); return; } foreach (var item in files) { item.ActionID = rId; if (!bllFlow.Add(item, tran)) { tran.Rollback(); apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = flow.FlowName + ",保存附件失败"; bllFlow.ContextResponse(context, apiResp); return; } } tran.Commit(); string msg = ""; #region 短信发送密码 BLLSMS bllSms = new BLLSMS(""); bool smsBool = false; WebsiteInfo website = bllUser.GetWebsiteInfoModelFromDataBase(websiteOwner); string smsString = string.Format("恭喜您成功注册为天下华商月供宝:{1},您的初始密码为:{0}。您可关注公众号:songhetz,登录账户修改密码,并设置支付密码。", oldUserInfo.Password, levelConfig.LevelString); bllSms.SendSmsMisson(oldUserInfo.Phone, smsString, "", website.SmsSignature, out smsBool, out msg); #endregion apiResp.msg = "注册成功" + (smsBool ? "" : ",但短信发送失败:" + msg); apiResp.status = true; apiResp.code = (int)APIErrCode.IsSuccess; bllFlow.ContextResponse(context, apiResp); }
protected void Page_Load(object sender, EventArgs e) { //if (!Request.UserAgent.ToLower().Contains("micromessenger")) //{ // // ToLog("非微信浏览器进入不执行授权"); // Response.Write("请用微信浏览器打开"); // Response.End(); // return;//非微信浏览器进入不执行授权 //} if (!bllUser.IsLogin) { Response.Write("请用微信打开"); Response.End(); return; } var website = bll.GetWebsiteInfoModelFromDataBase(); CompanyWebsite_Config companyWebsiteConfig = bllWebSite.GetCompanyWebsiteConfig();; string indexStr = File.ReadAllText(this.Server.MapPath(@"\App\Distribution\m\app.html")); UserInfo CurrentUserInfo = bllUser.GetCurrentUserInfo(); if (indexStr.Contains("'$$CURRENTUSERINFO$$'")) { var websiteLogo = companyWebsiteConfig.WebsiteImage; if (string.IsNullOrEmpty(websiteLogo)) { websiteLogo = ConfigHelper.GetConfigString("WebsiteLogo"); } else { websiteLogo = bll.GetImgUrl(websiteLogo); } string nextLevelName = string.Empty; double distanceNextLevelScore = 0; UserLevelConfig currUserLevel = bll.GetUserLevel(CurrentUserInfo, out nextLevelName, out distanceNextLevelScore); apiResp.result = new { user_show_name = bllUser.GetUserDispalyName(CurrentUserInfo), website_logo = websiteLogo, website_name = website.WebsiteName, is_distribution_member = IsDistributionMember(CurrentUserInfo, website), //是否是分销会员 recommend_id = CurrentUserInfo.AutoID, //我的推荐码 recommend_count = bll.GetUserCommendCount(CurrentUserInfo.UserID), //推荐人数 nick_name = CurrentUserInfo.WXNickname, //昵称 true_name = CurrentUserInfo.TrueName, //真实姓名 head_img_url = bllUser.GetUserDispalyAvatar(CurrentUserInfo), //头像 history_commission_total_amount = CurrentUserInfo.HistoryDistributionOffLineTotalAmount, //累计佣金 can_use_amount = bll.GetUserCanUseAmount(CurrentUserInfo), //可提现金额 level_name = currUserLevel.LevelString, direct_rate = bll.GetUserLevel(CurrentUserInfo).DistributionRateLevel0, //直销佣金比例 direct_sale_amount = bll.GetDirectSaleAmount(CurrentUserInfo.UserID), //累计直接销售 down_user_total_count = bll.GetDownUserTotalCount(CurrentUserInfo.UserID, bll.GetDistributionLevel()), //下级用户总和 down_user_level1_count = bll.GetDownUserCount(CurrentUserInfo.UserID, 1), //一级分销用户数 down_user_level2_count = bll.GetDownUserCount(CurrentUserInfo.UserID, 2), //二级分销用户数 down_user_level3_count = bll.GetDownUserCount(CurrentUserInfo.UserID, 3), //三级分销用户数 distribution_level1_rate = bll.GetUserLevel(CurrentUserInfo).DistributionRateLevel1, //一级分销佣金比例 distribution_level2_rate = bll.GetUserLevel(CurrentUserInfo).DistributionRateLevel2, //二级分销佣金比例 distribution_level3_rate = bll.GetUserLevel(CurrentUserInfo).DistributionRateLevel3, //三级分销佣金比例 next_level_name = nextLevelName, //下个等级名称 distance_next_level_score = distanceNextLevelScore //距离下个等级的积分 }; apiResp.status = true; apiResp.msg = "ok"; indexStr = indexStr.Replace("'$$CURRENTUSERINFO$$'", ZentCloud.Common.JSONHelper.ObjectToJson(apiResp)); } if (indexStr.Contains("'$$fx-websiteConfig$$'")) { dynamic websiteConfigResult = new { website_name = website.WebsiteName, //站点名称 distribution_level = bll.GetDistributionLevel(), //后台配置的几级 distribution_show_level = bll.GetDistributionShowLevel(), //会员显示分销级别 commission_show_name = string.IsNullOrWhiteSpace(website.CommissionShowName) ? "积分" : website.CommissionShowName, //佣金显示名称 distribution_show_name = string.IsNullOrWhiteSpace(website.DistributionShowName) ? "会员" : website.DistributionShowName, //分销显示名称 is_show_distribution_rate = website.IsShowDistributionOffLineRate, //是否显示分销比例 share_title = companyWebsiteConfig.WebsiteTitle, //分享标题 share_desc = companyWebsiteConfig.WebsiteDescription, //分享描述 share_img_url = companyWebsiteConfig.WebsiteImage, //分享图片 project_field_list = bll.GetProjectFieldMapListF(), //项目自定义字段 slide_type = website.DistributionOffLineSlideType, is_show_member_score = website.DistributionOffLineIsShowMemberScore }; indexStr = indexStr.Replace("'$$fx-websiteConfig$$'", ZentCloud.Common.JSONHelper.ObjectToJson(websiteConfigResult)); } if (indexStr.Contains("$$fx-wrapApplyHeader$$")) { indexStr = indexStr.Replace("$$fx-wrapApplyHeader$$", website.DistributionOffLineDescription); } if (indexStr.Contains("$$fx-wrapApplyWaitInfo$$")) { indexStr = indexStr.Replace("$$fx-wrapApplyWaitInfo$$", website.DistributionOffLineApplyWaitInfo); } //直接返回广告数组 if (indexStr.Contains("'$$fx-slides$$'") && !string.IsNullOrWhiteSpace(website.DistributionOffLineSlideType)) { string slideType = website.DistributionOffLineSlideType; System.Text.StringBuilder sbWhere = new System.Text.StringBuilder(string.Format(" WebsiteOwner='{0}'", bll.WebsiteOwner)); if (!string.IsNullOrEmpty(slideType)) { sbWhere.AppendFormat(" And Type='{0}'", slideType); } sbWhere.Append(" order by Sort DESC"); var sourceData = bll.GetList <BLLJIMP.Model.Slide>(sbWhere.ToString()); var list = from p in sourceData select new { img_url = bll.GetImgUrl(p.ImageUrl), link = p.Link, slide_type = p.Type, link_text = p.LinkText }; var data = new { totalcount = sourceData.Count, proportion = bllKeyValue.GetSlideProportion(slideType), list = list,//列表 }; indexStr = indexStr.Replace("'$$fx-slides$$'", ZentCloud.Common.JSONHelper.ObjectToJson(data)); } this.Response.Write(indexStr); }
public void ProcessRequest(HttpContext context) { int id = Convert.ToInt32(context.Request["id"]); string websiteOwner = bll.WebsiteOwner; string flow_key = context.Request["flow_key"]; string content = context.Request["content"]; BLLJIMP.Model.Flow flow = bllFlow.GetFlowByKey(flow_key, websiteOwner); if (flow == null) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = "流程未定义"; bllFlow.ContextResponse(context, apiResp); return; } if (flow.IsDelete == 1) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = flow.FlowName + "已停用"; bllFlow.ContextResponse(context, apiResp); return; } List <BLLJIMP.Model.FlowStep> steps = bllFlow.GetStepList(2, 1, websiteOwner, flow.AutoID); if (steps.Count == 0) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = flow.FlowName + "环节未设置"; bllFlow.ContextResponse(context, apiResp); return; } UserInfo tUser = bllUser.GetUserInfoByAutoID(id, websiteOwner); if (tUser == null) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = "会员未找到"; bll.ContextResponse(context, apiResp); return; } if (tUser.MemberLevel <= 0) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = "该会员已经撤单"; bll.ContextResponse(context, apiResp); return; } if (bllFlow.ExistsMemberPhoneAction(websiteOwner, flow.FlowKey, "0", memberUserId: tUser.UserID)) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "该会员正在申请撤单"; bll.ContextResponse(context, apiResp); return; } BLLJIMP.Model.FlowStep step1 = steps[0]; BLLJIMP.Model.FlowStep step2 = null; if (steps.Count == 2) { step2 = steps[1]; } BLLJIMP.Model.FlowAction action = new BLLJIMP.Model.FlowAction(); action.CreateDate = DateTime.Now; action.CreateUserID = currentUserInfo.UserID; action.WebsiteOwner = websiteOwner; action.StartStepID = step1.AutoID; action.FlowID = flow.AutoID; action.FlowKey = flow.FlowKey; if (!string.IsNullOrWhiteSpace(content)) { action.StartContent = content; } action.MemberAutoID = tUser.AutoID; action.MemberID = tUser.UserID; action.MemberName = tUser.TrueName; action.MemberPhone = tUser.Phone; action.MemberLevel = tUser.MemberLevel; action.TrueAmount = tUser.TotalAmount; action.Amount = tUser.AccountAmountEstimate; action.DeductAmount = tUser.AccumulationFund; UserLevelConfig levelConfig = bll.QueryUserLevel(websiteOwner, "DistributionOnLine", tUser.MemberLevel.ToString()); action.MemberLevelName = levelConfig == null?"": levelConfig.LevelString; action.FlowName = flow.FlowName; if (step2 != null) { action.StepID = step2.AutoID; action.StepName = step2.StepName; } else { action.Status = 9; action.EndDate = DateTime.Now; } BLLJIMP.Model.FlowActionDetail actionDetail1 = new BLLJIMP.Model.FlowActionDetail(); actionDetail1.WebsiteOwner = websiteOwner; actionDetail1.FlowID = flow.AutoID; actionDetail1.StepID = step1.AutoID; actionDetail1.StepName = step1.StepName; actionDetail1.HandleUserID = currentUserInfo.UserID; actionDetail1.HandleDate = DateTime.Now; if (!string.IsNullOrWhiteSpace(action.StartContent)) { actionDetail1.HandleContent = action.StartContent; } BLLTransaction tran = new BLLTransaction(); if (bllUser.Update(tUser, string.Format("IsDisable=1"), string.Format("WebsiteOwner='{0}' And AutoID={1}", websiteOwner, tUser.AutoID), tran) <= 0) { tran.Rollback(); apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = flow.FlowName + "冻结失败"; bllFlow.ContextResponse(context, apiResp); return; } int rId = Convert.ToInt32(bllFlow.AddReturnID(action, tran)); if (rId <= 0) { tran.Rollback(); apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = flow.FlowName + "失败"; bllFlow.ContextResponse(context, apiResp); return; } actionDetail1.ActionID = rId; if (!bllFlow.Add(actionDetail1, tran)) { tran.Rollback(); apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = flow.FlowName + ",记录失败"; bllFlow.ContextResponse(context, apiResp); return; } tran.Commit(); apiResp.msg = "撤单申请提交成功"; apiResp.status = true; apiResp.code = (int)APIErrCode.IsSuccess; bllFlow.ContextResponse(context, apiResp); }
public void BuildOrder(HttpContext context, int payType) { BLLJIMP.Model.API.User.PayRegisterUser requestUser = bll.ConvertRequestToModel <BLLJIMP.Model.API.User.PayRegisterUser>(new BLLJIMP.Model.API.User.PayRegisterUser()); string websiteOwner = bll.WebsiteOwner; if (string.IsNullOrWhiteSpace(requestUser.level.ToString())) { apiResp.code = (int)APIErrCode.PrimaryKeyIncomplete; apiResp.msg = "请选择会员级别"; bll.ContextResponse(context, apiResp); return; } if (string.IsNullOrWhiteSpace(requestUser.spreadid)) { apiResp.code = (int)APIErrCode.PrimaryKeyIncomplete; apiResp.msg = "请输入推荐人编号"; bll.ContextResponse(context, apiResp); return; } if (string.IsNullOrWhiteSpace(requestUser.phone)) { apiResp.code = (int)APIErrCode.PrimaryKeyIncomplete; apiResp.msg = "请输入手机号码"; bll.ContextResponse(context, apiResp); return; } if (!ZentCloud.Common.MyRegex.PhoneNumLogicJudge(requestUser.phone)) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "手机号码格式不正确"; bll.ContextResponse(context, apiResp); return; } if (!ZentCloud.Common.MyRegex.IsIDCard(requestUser.idcard)) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "身份证号码必须如实填写"; bll.ContextResponse(context, apiResp); return; } UserLevelConfig levelConfig = bll.QueryUserLevel(websiteOwner, "DistributionOnLine", requestUser.level.ToString()); if (levelConfig == null) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = "会员级别未找到"; bll.ContextResponse(context, apiResp); return; } if (levelConfig.IsDisable == 1) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = "会员级别禁止注册"; bll.ContextResponse(context, apiResp); return; } requestUser.levelname = levelConfig.LevelString; UserInfo spreadUser = bllUser.GetSpreadUser(requestUser.spreadid, websiteOwner); if (spreadUser == null) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = "推荐人未找到"; bll.ContextResponse(context, apiResp); return; } requestUser.spreadid = spreadUser.UserID; //推荐人 UserInfo oldUserInfo = bllUser.GetUserInfoByPhone(requestUser.phone, websiteOwner); if (oldUserInfo != null && oldUserInfo.MemberLevel > 0) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "该手机已注册会员"; bll.ContextResponse(context, apiResp); return; } PayConfig payConfig = bllPay.GetPayConfig(); if (payType == 1 && !bllPay.IsAliPay(payConfig)) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "该商户支付宝支付还没有配置"; bll.ContextResponse(context, apiResp); return; } else if (payType == 2 && !bllPay.IsJDPay(payConfig)) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "该商户京东支付还没有配置"; bll.ContextResponse(context, apiResp); return; } if (oldUserInfo != null) { requestUser.userid = oldUserInfo.UserID; } else { requestUser.userid = string.Format("ZYUser{0}{1}", DateTime.Now.ToString("yyyyMMdd"), Guid.NewGuid().ToString("N").ToUpper()); } requestUser.regIP = context.Request.UserHostAddress;//ip requestUser.password = ZentCloud.Common.Rand.Number(6); OrderPay orderPay = new OrderPay(); orderPay.OrderId = bll.GetGUID(TransacType.PayRegisterOrder); orderPay.InsertDate = DateTime.Now; orderPay.Subject = "支付注册会员"; orderPay.Total_Fee = Convert.ToDecimal(levelConfig.FromHistoryScore); orderPay.Type = "5"; orderPay.WebsiteOwner = websiteOwner; orderPay.UserId = requestUser.userid; orderPay.Ex1 = JsonConvert.SerializeObject(requestUser); orderPay.Ex2 = requestUser.phone; orderPay.PayType = payType; if (!bll.Add(orderPay)) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "生成支付订单失败"; bll.ContextResponse(context, apiResp); return; } apiResp.code = (int)APIErrCode.IsSuccess; apiResp.status = true; apiResp.result = new { pay_order_id = orderPay.OrderId }; bllUser.ContextResponse(context, apiResp); }
protected void Page_Load(object sender, EventArgs e) { try { //Tolog("进入支付回调"); XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(Request.InputStream); xmlDoc.Save(string.Format("C:\\WXPay\\PayUpgradeNotify{0}.xml", DateTime.Now.ToString("yyyyMMddHHmmssfff")));//写入日志 //全部参数 Dictionary <string, string> parametersAll = new Dictionary <string, string>(); foreach (XmlElement item in xmlDoc.DocumentElement.ChildNodes) { string key = item.Name; string value = item.InnerText; if ((!string.IsNullOrEmpty(key)) && (!string.IsNullOrEmpty(value))) { parametersAll.Add(key, value); } } parametersAll = (from entry in parametersAll orderby entry.Key ascending select entry).ToDictionary(pair => pair.Key, pair => pair.Value); //全部参数排序 PayConfig payConfig = bllPay.GetPayConfig(); if (!bllPay.VerifySignatureWx(parametersAll, payConfig.WXPartnerKey)) //验证签名 { Tolog("验证签名出错"); Response.Write(failXml); return; } OrderPay orderPay = bllOrder.GetOrderPay(parametersAll["out_trade_no"]); if (orderPay == null) { Tolog("订单未找到"); Response.Write(failXml); return; } if (orderPay.Status.Equals(1)) { Tolog("已支付"); Response.Write(successXml); return; } BLLJIMP.Model.API.User.PayUpgrade payUpgrade = JsonConvert.DeserializeObject <BLLJIMP.Model.API.User.PayUpgrade>(orderPay.Ex1); //更新订单状态 if (parametersAll["return_code"].Equals("SUCCESS") && parametersAll["result_code"].Equals("SUCCESS"))//交易成功 { string msg = ""; orderPay.Trade_No = parametersAll["transaction_id"]; UserLevelConfig levelConfig = bll.QueryUserLevel(orderPay.WebsiteOwner, "DistributionOnLine", payUpgrade.toLevel.ToString()); UserInfo payUser = bllUser.GetUserInfo(orderPay.UserId, orderPay.WebsiteOwner); if (!string.IsNullOrEmpty(levelConfig.CouponId)) { BLLCardCoupon bllCardCoupon = new BLLCardCoupon(); bllCardCoupon.SendCardCouponsByCurrUserInfo(payUser, levelConfig.CouponId); } //支付升级分佣 if (!bll.PayUpgradeTransfers(orderPay, payUpgrade, parametersAll["openid"], parametersAll["transaction_id"], out msg)) { Tolog(msg); Response.Write(failXml); return; } Response.Write(successXml); return; } Tolog("返回信息有误"); Response.Write(failXml); } catch (Exception ex) { Tolog("出错了:" + ex.Message); Response.Write(failXml); } }
public void ProcessRequest(HttpContext context) { BLLJIMP.Model.API.User.PayUpgrade requestUpgrade = bll.ConvertRequestToModel <BLLJIMP.Model.API.User.PayUpgrade>(new BLLJIMP.Model.API.User.PayUpgrade()); string websiteOwner = bll.WebsiteOwner; requestUpgrade.level = CurrentUserInfo.MemberLevel; WebsiteInfo website = bllUser.GetWebsiteInfoModelFromDataBase(websiteOwner); UserLevelConfig levelConfig = bll.QueryUserLevel(websiteOwner, "DistributionOnLine", requestUpgrade.level.ToString()); if (levelConfig == null) { requestUpgrade.userTotalAmount = 0; } else { requestUpgrade.userTotalAmount = Convert.ToDecimal(levelConfig.FromHistoryScore); } UserLevelConfig toLevelConfig = bll.QueryUserLevel(websiteOwner, "DistributionOnLine", requestUpgrade.toLevel.ToString()); if (toLevelConfig == null) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = "会员等级未找到"; bll.ContextResponse(context, apiResp); return; } if (toLevelConfig.IsDisable == 1) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = "会员级别禁止升级"; bll.ContextResponse(context, apiResp); return; } requestUpgrade.needAmount = Convert.ToDecimal(toLevelConfig.FromHistoryScore); requestUpgrade.amount = requestUpgrade.needAmount - requestUpgrade.userTotalAmount; if (requestUpgrade.amount < 0) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "暂时不支持降级"; bll.ContextResponse(context, apiResp); return; } string configV1CouponId = ZentCloud.Common.ConfigHelper.GetConfigString("YGBV1CouponId"); string configV2CouponId = ZentCloud.Common.ConfigHelper.GetConfigString("YGBV2CouponId"); string v1LevelNumber = ZentCloud.Common.ConfigHelper.GetConfigString("V1LevelNumber"); string v2LevelNumber = ZentCloud.Common.ConfigHelper.GetConfigString("V2LevelNumber"); string couponId = string.Empty; CardCoupons cardModel = null; MyCardCoupons myCardCoupon = null; if (requestUpgrade.vType == "V1") { if (string.IsNullOrEmpty(configV1CouponId)) { apiResp.code = (int)APIErrCode.ContentNotFound; apiResp.msg = "V1优惠券未配置"; bllUser.ContextResponse(context, apiResp); return; } couponId = configV1CouponId; cardModel = bllCardCoupon.GetCardCoupon(Convert.ToInt32(couponId)); myCardCoupon = bllCardCoupon.GetMyCardCouponMainId(Convert.ToInt32(couponId), CurrentUserInfo.UserID); if (cardModel == null || myCardCoupon == null) { apiResp.code = (int)APIErrCode.ContentNotFound; apiResp.msg = "优惠券不存在"; bllUser.ContextResponse(context, apiResp); return; } if (requestUpgrade.toLevel.ToString() != v1LevelNumber) { apiResp.code = (int)APIErrCode.ContentNotFound; apiResp.msg = "优惠券不匹配"; bllUser.ContextResponse(context, apiResp); return; } } if (requestUpgrade.vType == "V2") { if (string.IsNullOrEmpty(configV2CouponId)) { apiResp.code = (int)APIErrCode.ContentNotFound; apiResp.msg = "V2优惠券未配置"; bllUser.ContextResponse(context, apiResp); return; } couponId = configV2CouponId; cardModel = bllCardCoupon.GetCardCoupon(Convert.ToInt32(couponId)); myCardCoupon = bllCardCoupon.GetMyCardCouponMainId(Convert.ToInt32(couponId), CurrentUserInfo.UserID); if (cardModel == null || myCardCoupon == null) { apiResp.code = (int)APIErrCode.ContentNotFound; apiResp.msg = "优惠券不存在"; bllUser.ContextResponse(context, apiResp); return; } if (requestUpgrade.toLevel.ToString() != v2LevelNumber) { apiResp.code = (int)APIErrCode.ContentNotFound; apiResp.msg = "优惠券不能用于此升级"; bllUser.ContextResponse(context, apiResp); return; } } BLLTransaction tran = new BLLTransaction(); StringBuilder sbSql = new StringBuilder(); UserInfo upUserLevel1 = null; //分销上一级 UserInfo upUserLevel2 = null; //分销上二级 UserInfo upUserLevel3 = null; //分销上三级 UserLevelConfig levelConfig1 = null; //分销上一级规则 UserLevelConfig levelConfig2 = null; //分销上二级规则 UserLevelConfig levelConfig3 = null; //分销上三级规则 ProjectCommission modelLevel1 = new ProjectCommission(); ScoreLockInfo scoreLockLevel1Info = new ScoreLockInfo(); ProjectCommission modelLevel1ex1 = new ProjectCommission(); ScoreLockInfo scoreLockLevel1ex1Info = new ScoreLockInfo(); ProjectCommission modelLevel2 = new ProjectCommission(); ScoreLockInfo scoreLockLevel2Info = new ScoreLockInfo(); ProjectCommission modelLevel3 = new ProjectCommission(); ScoreLockInfo scoreLockLevel3Info = new ScoreLockInfo(); int disLevel = 1; if (website.DistributionLimitLevel > 1) { disLevel = website.DistributionLimitLevel; } string projectId = bll.GetGUID(TransacType.PayRegisterOrder); CurrentUserInfo.MemberLevel = requestUpgrade.toLevel; CurrentUserInfo.MemberApplyStatus = 9; //计算分佣 bll.ComputeTransfers(disLevel, CurrentUserInfo, projectId, requestUpgrade.amount, websiteOwner, "余额升级", ref sbSql, ref upUserLevel1, ref upUserLevel2, ref upUserLevel3, ref levelConfig1, ref levelConfig2, ref levelConfig3, ref modelLevel1, ref scoreLockLevel1Info, ref modelLevel1ex1, ref scoreLockLevel1ex1Info, ref modelLevel2, ref scoreLockLevel2Info, ref modelLevel3, ref scoreLockLevel3Info, toLevelConfig.LevelString); if (bll.Update(CurrentUserInfo, string.Format(" MemberLevel={0},IsDisable=0,MemberApplyStatus=9 ", CurrentUserInfo.MemberLevel), string.Format(" AutoId='{0}' ", CurrentUserInfo.AutoID), tran) <= 0) { tran.Rollback(); apiResp.msg = "更新用户等级失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } bool hasProjectCommission = false; #region 记录分佣信息 if (modelLevel1.Amount > 0) { hasProjectCommission = true; int modelLevel1Id = Convert.ToInt32(bll.AddReturnID(modelLevel1, tran)); if (modelLevel1Id <= 0) { apiResp.msg = "一级返利失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } scoreLockLevel1Info.ForeignkeyId2 = modelLevel1Id.ToString(); scoreLockLevel1Info.AutoId = Convert.ToInt32(bll.AddReturnID(scoreLockLevel1Info, tran)); if (scoreLockLevel1Info.AutoId <= 0) { apiResp.msg = "一级返利冻结失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } string scoreDetailEvent = modelLevel1.ProjectName.Contains("购房补助") ? "返购房补助" : "返利"; if (bllUser.AddScoreDetail(scoreLockLevel1Info.UserId, websiteOwner, (double)scoreLockLevel1Info.Score, scoreLockLevel1Info.Memo, "TotalAmount", (double)(upUserLevel1.TotalAmount + scoreLockLevel1Info.Score), scoreLockLevel1Info.AutoId.ToString(), scoreDetailEvent, "", projectId, (double)modelLevel1.SourceAmount, (double)modelLevel1.DeductAmount, modelLevel1.CommissionUserId, tran, ex1: levelConfig.LevelNumber.ToString(), ex2: levelConfig.LevelString, ex3: toLevelConfig.LevelNumber.ToString(), ex4: toLevelConfig.LevelString, ex5: modelLevel1.CommissionLevel) <= 0) { tran.Rollback(); apiResp.msg = "一级返利明细记录失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } } if (modelLevel1ex1.Amount > 0) { hasProjectCommission = true; int modelLevel1ex1Id = Convert.ToInt32(bll.AddReturnID(modelLevel1ex1, tran)); if (modelLevel1ex1Id <= 0) { apiResp.msg = "一级返购房补助失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } scoreLockLevel1ex1Info.ForeignkeyId2 = modelLevel1ex1Id.ToString(); scoreLockLevel1ex1Info.AutoId = Convert.ToInt32(bll.AddReturnID(scoreLockLevel1ex1Info, tran)); if (scoreLockLevel1ex1Info.AutoId <= 0) { apiResp.msg = "一级返购房补助冻结失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } string scoreDetailEvent = modelLevel1ex1.ProjectName.Contains("购房补助") ? "返购房补助" : "返利"; if (bllUser.AddScoreDetail(scoreLockLevel1ex1Info.UserId, websiteOwner, (double)scoreLockLevel1ex1Info.Score, scoreLockLevel1ex1Info.Memo, "TotalAmount", (double)(upUserLevel1.TotalAmount + scoreLockLevel1ex1Info.Score), scoreLockLevel1ex1Info.AutoId.ToString(), scoreDetailEvent, "", projectId, (double)modelLevel1ex1.SourceAmount, (double)modelLevel1ex1.DeductAmount, modelLevel1ex1.CommissionUserId, tran, ex1: levelConfig.LevelNumber.ToString(), ex2: levelConfig.LevelString, ex3: toLevelConfig.LevelNumber.ToString(), ex4: toLevelConfig.LevelString, ex5: modelLevel1ex1.CommissionLevel) <= 0) { tran.Rollback(); apiResp.msg = "一级返购房补助明细记录失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } } if (modelLevel2.Amount > 0) { hasProjectCommission = true; int modelLevel2Id = Convert.ToInt32(bll.AddReturnID(modelLevel2, tran)); if (modelLevel2Id <= 0) { apiResp.msg = "二级返利失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } scoreLockLevel2Info.ForeignkeyId2 = modelLevel2Id.ToString(); scoreLockLevel2Info.AutoId = Convert.ToInt32(bll.AddReturnID(scoreLockLevel2Info, tran)); if (scoreLockLevel2Info.AutoId <= 0) { tran.Rollback(); apiResp.msg = "二级返利冻结失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } string scoreDetailEvent = modelLevel2.ProjectName.Contains("购房补助") ? "返购房补助" : "返利"; if (bllUser.AddScoreDetail(scoreLockLevel2Info.UserId, websiteOwner, (double)scoreLockLevel2Info.Score, scoreLockLevel2Info.Memo, "TotalAmount", (double)(upUserLevel2.TotalAmount + scoreLockLevel2Info.Score), scoreLockLevel2Info.AutoId.ToString(), scoreDetailEvent, "", projectId, (double)modelLevel2.SourceAmount, (double)modelLevel2.DeductAmount, modelLevel2.CommissionUserId, tran, ex1: levelConfig.LevelNumber.ToString(), ex2: levelConfig.LevelString, ex3: toLevelConfig.LevelNumber.ToString(), ex4: toLevelConfig.LevelString, ex5: modelLevel2.CommissionLevel) <= 0) { tran.Rollback(); apiResp.msg = "二级返利明细记录失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } } if (modelLevel3.Amount > 0) { hasProjectCommission = true; int modelLevel3Id = Convert.ToInt32(bll.AddReturnID(modelLevel3, tran)); if (!bll.Add(modelLevel3, tran)) { tran.Rollback(); apiResp.msg = "三级返利失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } scoreLockLevel3Info.ForeignkeyId2 = modelLevel3Id.ToString(); scoreLockLevel3Info.AutoId = Convert.ToInt32(bll.AddReturnID(scoreLockLevel3Info, tran)); if (scoreLockLevel3Info.AutoId <= 0) { tran.Rollback(); apiResp.msg = "三级返利冻结失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } string scoreDetailEvent = modelLevel3.ProjectName.Contains("购房补助") ? "返购房补助" : "返利"; if (bllUser.AddScoreDetail(scoreLockLevel3Info.UserId, websiteOwner, (double)scoreLockLevel3Info.Score, scoreLockLevel3Info.Memo, "TotalAmount", (double)(upUserLevel3.TotalAmount + scoreLockLevel3Info.Score), scoreLockLevel3Info.AutoId.ToString(), scoreDetailEvent, "", projectId, (double)modelLevel3.SourceAmount, (double)modelLevel3.DeductAmount, modelLevel3.CommissionUserId, tran, ex1: levelConfig.LevelNumber.ToString(), ex2: levelConfig.LevelString, ex3: toLevelConfig.LevelNumber.ToString(), ex4: toLevelConfig.LevelString, ex5: modelLevel3.CommissionLevel) <= 0) { tran.Rollback(); apiResp.msg = "三级返利明细记录失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } } #endregion #region 更新分佣账面金额 if (hasProjectCommission) { if (BLLBase.ExecuteSql(sbSql.ToString(), tran) <= 0) { tran.Rollback(); apiResp.msg = string.Format("更新分佣账面{0}出错", website.TotalAmountShowName); apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } } #endregion #region 记录余额明细 //自己的消费记录 if (bllUser.AddScoreDetail(CurrentUserInfo.UserID, websiteOwner, (double)(0 - requestUpgrade.amount), string.Format("{1}为{0}", toLevelConfig.LevelString, "升级"), "TotalAmount", (double)(CurrentUserInfo.TotalAmount - requestUpgrade.amount), "", "升级会员", "", "", (double)requestUpgrade.amount, 0, "", tran, ex1: levelConfig.LevelNumber.ToString(), ex2: levelConfig.LevelString, ex3: toLevelConfig.LevelNumber.ToString(), ex4: toLevelConfig.LevelString) <= 0) { tran.Rollback(); apiResp.msg = "升级会员明细出错"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } #endregion #region 修改优惠券 更新支付状态 myCardCoupon.UseDate = DateTime.Now; myCardCoupon.Status = 1; if (!bllCardCoupon.Update(myCardCoupon, tran)) { tran.Rollback(); apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "更新优惠券状态失败"; bll.ContextResponse(context, apiResp); return; } #endregion #region 记录业绩明细 TeamPerformanceDetails perDetail = new TeamPerformanceDetails(); perDetail.AddType = "升级"; perDetail.AddNote = "由" + levelConfig.LevelString + "升级" + toLevelConfig.LevelString; perDetail.AddTime = DateTime.Now; perDetail.DistributionOwner = CurrentUserInfo.DistributionOwner; perDetail.UserId = CurrentUserInfo.UserID; perDetail.UserName = CurrentUserInfo.TrueName; perDetail.UserPhone = CurrentUserInfo.Phone; perDetail.Performance = requestUpgrade.amount; string yearMonthString = perDetail.AddTime.ToString("yyyyMM"); int yearMonth = Convert.ToInt32(yearMonthString); perDetail.WebsiteOwner = websiteOwner; perDetail.YearMonth = yearMonth; if (!bllUser.Add(perDetail, tran)) { tran.Rollback(); apiResp.msg = "记录业绩明细失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } #endregion tran.Commit(); if (hasProjectCommission) { //异步修改积分明细表 Thread th1 = new Thread(delegate() { //计算相关业绩 bll.BuildCurMonthPerformanceByUserID(websiteOwner, CurrentUserInfo.UserID); }); th1.Start(); } apiResp.msg = "升级完成"; apiResp.code = (int)APIErrCode.IsSuccess; apiResp.status = true; bll.ContextResponse(context, apiResp); }
public void ProcessRequest(HttpContext context) { if (CurrentUserInfo.IsLock == 1) { apiResp.code = (int)APIErrCode.NoPms; apiResp.msg = "账号已被锁定"; bllUser.ContextResponse(context, apiResp); return; } if (CurrentUserInfo.MemberApplyStatus != 9) { apiResp.code = (int)APIErrCode.NoPms; apiResp.msg = "您的账号正在审核中"; bllUser.ContextResponse(context, apiResp); return; } BLLJIMP.Model.API.User.PayUpgrade requestUpgrade = bll.ConvertRequestToModel <BLLJIMP.Model.API.User.PayUpgrade>(new BLLJIMP.Model.API.User.PayUpgrade()); string websiteOwner = bll.WebsiteOwner; requestUpgrade.level = CurrentUserInfo.MemberLevel; WebsiteInfo website = bllUser.GetWebsiteInfoModelFromDataBase(websiteOwner); UserLevelConfig levelConfig = bll.QueryUserLevel(websiteOwner, "DistributionOnLine", requestUpgrade.level.ToString()); if (levelConfig == null) { requestUpgrade.userTotalAmount = 0; } else { requestUpgrade.userTotalAmount = Convert.ToDecimal(levelConfig.FromHistoryScore); } UserLevelConfig toLevelConfig = bll.QueryUserLevel(websiteOwner, "DistributionOnLine", requestUpgrade.toLevel.ToString()); if (toLevelConfig == null) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = "会员等级未找到"; bll.ContextResponse(context, apiResp); return; } if (toLevelConfig.IsDisable == 1) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = "会员级别禁止升级"; bll.ContextResponse(context, apiResp); return; } requestUpgrade.needAmount = Convert.ToDecimal(toLevelConfig.FromHistoryScore); requestUpgrade.amount = requestUpgrade.needAmount - requestUpgrade.userTotalAmount; if (requestUpgrade.amount < 0) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "暂时不支持降级"; bll.ContextResponse(context, apiResp); return; } if (CurrentUserInfo.TotalAmount < requestUpgrade.amount) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = string.Format("您的可用{0}不足", website.TotalAmountShowName); bll.ContextResponse(context, apiResp); return; } BLLTransaction tran = new BLLTransaction(); StringBuilder sbSql = new StringBuilder(); UserInfo upUserLevel1 = null; //分销上一级 UserInfo upUserLevel2 = null; //分销上二级 UserInfo upUserLevel3 = null; //分销上三级 UserLevelConfig levelConfig1 = null; //分销上一级规则 UserLevelConfig levelConfig2 = null; //分销上二级规则 UserLevelConfig levelConfig3 = null; //分销上三级规则 ProjectCommission modelLevel1 = new ProjectCommission(); ScoreLockInfo scoreLockLevel1Info = new ScoreLockInfo(); ProjectCommission modelLevel1ex1 = new ProjectCommission(); ScoreLockInfo scoreLockLevel1ex1Info = new ScoreLockInfo(); ProjectCommission modelLevel2 = new ProjectCommission(); ScoreLockInfo scoreLockLevel2Info = new ScoreLockInfo(); ProjectCommission modelLevel3 = new ProjectCommission(); ScoreLockInfo scoreLockLevel3Info = new ScoreLockInfo(); int disLevel = 1; if (website.DistributionLimitLevel > 1) { disLevel = website.DistributionLimitLevel; } string projectId = bll.GetGUID(TransacType.PayRegisterOrder); CurrentUserInfo.MemberLevel = requestUpgrade.toLevel; CurrentUserInfo.MemberApplyStatus = 9; //计算分佣 bll.ComputeTransfers(disLevel, CurrentUserInfo, projectId, requestUpgrade.amount, websiteOwner, "余额升级", ref sbSql, ref upUserLevel1, ref upUserLevel2, ref upUserLevel3, ref levelConfig1, ref levelConfig2, ref levelConfig3, ref modelLevel1, ref scoreLockLevel1Info, ref modelLevel1ex1, ref scoreLockLevel1ex1Info, ref modelLevel2, ref scoreLockLevel2Info, ref modelLevel3, ref scoreLockLevel3Info, toLevelConfig.LevelString); bool hasProjectCommission = false; #region 记录分佣信息 if (modelLevel1.Amount > 0) { hasProjectCommission = true; int modelLevel1Id = Convert.ToInt32(bll.AddReturnID(modelLevel1, tran)); if (modelLevel1Id <= 0) { apiResp.msg = "一级返利失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } scoreLockLevel1Info.ForeignkeyId2 = modelLevel1Id.ToString(); scoreLockLevel1Info.AutoId = Convert.ToInt32(bll.AddReturnID(scoreLockLevel1Info, tran)); if (scoreLockLevel1Info.AutoId <= 0) { apiResp.msg = "一级返利冻结失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } string scoreDetailEvent = modelLevel1.ProjectName.Contains("购房补助") ? "返购房补助" : "返利"; if (bllUser.AddScoreDetail(scoreLockLevel1Info.UserId, websiteOwner, (double)scoreLockLevel1Info.Score, scoreLockLevel1Info.Memo, "TotalAmount", (double)(upUserLevel1.TotalAmount + scoreLockLevel1Info.Score), scoreLockLevel1Info.AutoId.ToString(), scoreDetailEvent, "", projectId, (double)modelLevel1.SourceAmount, (double)modelLevel1.DeductAmount, modelLevel1.CommissionUserId, tran, ex1: levelConfig.LevelNumber.ToString(), ex2: levelConfig.LevelString, ex3: toLevelConfig.LevelNumber.ToString(), ex4: toLevelConfig.LevelString, ex5: modelLevel1.CommissionLevel) <= 0) { tran.Rollback(); apiResp.msg = "一级返利明细记录失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } } if (modelLevel1ex1.Amount > 0) { hasProjectCommission = true; int modelLevel1ex1Id = Convert.ToInt32(bll.AddReturnID(modelLevel1ex1, tran)); if (modelLevel1ex1Id <= 0) { apiResp.msg = "一级返购房补助失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } scoreLockLevel1ex1Info.ForeignkeyId2 = modelLevel1ex1Id.ToString(); scoreLockLevel1ex1Info.AutoId = Convert.ToInt32(bll.AddReturnID(scoreLockLevel1ex1Info, tran)); if (scoreLockLevel1ex1Info.AutoId <= 0) { apiResp.msg = "一级返购房补助冻结失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } string scoreDetailEvent = modelLevel1ex1.ProjectName.Contains("购房补助") ? "返购房补助" : "返利"; if (bllUser.AddScoreDetail(scoreLockLevel1ex1Info.UserId, websiteOwner, (double)scoreLockLevel1ex1Info.Score, scoreLockLevel1ex1Info.Memo, "TotalAmount", (double)(upUserLevel1.TotalAmount + scoreLockLevel1ex1Info.Score), scoreLockLevel1ex1Info.AutoId.ToString(), scoreDetailEvent, "", projectId, (double)modelLevel1ex1.SourceAmount, (double)modelLevel1ex1.DeductAmount, modelLevel1ex1.CommissionUserId, tran, ex1: levelConfig.LevelNumber.ToString(), ex2: levelConfig.LevelString, ex3: toLevelConfig.LevelNumber.ToString(), ex4: toLevelConfig.LevelString, ex5: modelLevel1ex1.CommissionLevel) <= 0) { tran.Rollback(); apiResp.msg = "一级返购房补助明细记录失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } } if (modelLevel2.Amount > 0) { hasProjectCommission = true; int modelLevel2Id = Convert.ToInt32(bll.AddReturnID(modelLevel2, tran)); if (modelLevel2Id <= 0) { apiResp.msg = "二级返利失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } scoreLockLevel2Info.ForeignkeyId2 = modelLevel2Id.ToString(); scoreLockLevel2Info.AutoId = Convert.ToInt32(bll.AddReturnID(scoreLockLevel2Info, tran)); if (scoreLockLevel2Info.AutoId <= 0) { tran.Rollback(); apiResp.msg = "二级返利冻结失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } string scoreDetailEvent = modelLevel2.ProjectName.Contains("购房补助") ? "返购房补助" : "返利"; if (bllUser.AddScoreDetail(scoreLockLevel2Info.UserId, websiteOwner, (double)scoreLockLevel2Info.Score, scoreLockLevel2Info.Memo, "TotalAmount", (double)(upUserLevel2.TotalAmount + scoreLockLevel2Info.Score), scoreLockLevel2Info.AutoId.ToString(), scoreDetailEvent, "", projectId, (double)modelLevel2.SourceAmount, (double)modelLevel2.DeductAmount, modelLevel2.CommissionUserId, tran, ex1: levelConfig.LevelNumber.ToString(), ex2: levelConfig.LevelString, ex3: toLevelConfig.LevelNumber.ToString(), ex4: toLevelConfig.LevelString, ex5: modelLevel2.CommissionLevel) <= 0) { tran.Rollback(); apiResp.msg = "二级返利明细记录失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } } if (modelLevel3.Amount > 0) { hasProjectCommission = true; int modelLevel3Id = Convert.ToInt32(bll.AddReturnID(modelLevel3, tran)); if (!bll.Add(modelLevel3, tran)) { tran.Rollback(); apiResp.msg = "三级返利失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } scoreLockLevel3Info.ForeignkeyId2 = modelLevel3Id.ToString(); scoreLockLevel3Info.AutoId = Convert.ToInt32(bll.AddReturnID(scoreLockLevel3Info, tran)); if (scoreLockLevel3Info.AutoId <= 0) { tran.Rollback(); apiResp.msg = "三级返利冻结失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } string scoreDetailEvent = modelLevel3.ProjectName.Contains("购房补助") ? "返购房补助" : "返利"; if (bllUser.AddScoreDetail(scoreLockLevel3Info.UserId, websiteOwner, (double)scoreLockLevel3Info.Score, scoreLockLevel3Info.Memo, "TotalAmount", (double)(upUserLevel3.TotalAmount + scoreLockLevel3Info.Score), scoreLockLevel3Info.AutoId.ToString(), scoreDetailEvent, "", projectId, (double)modelLevel3.SourceAmount, (double)modelLevel3.DeductAmount, modelLevel3.CommissionUserId, tran, ex1: levelConfig.LevelNumber.ToString(), ex2: levelConfig.LevelString, ex3: toLevelConfig.LevelNumber.ToString(), ex4: toLevelConfig.LevelString, ex5: modelLevel3.CommissionLevel) <= 0) { tran.Rollback(); apiResp.msg = "三级返利明细记录失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } } #endregion #region 更新分佣账面金额 if (hasProjectCommission) { if (BLLBase.ExecuteSql(sbSql.ToString(), tran) <= 0) { tran.Rollback(); apiResp.msg = string.Format("更新分佣账面{0}出错", website.TotalAmountShowName); apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } } #endregion #region 记录余额明细 //自己的消费记录 if (bllUser.AddScoreDetail(CurrentUserInfo.UserID, websiteOwner, (double)(0 - requestUpgrade.amount), string.Format("{1}为{0}", toLevelConfig.LevelString, "升级"), "TotalAmount", (double)(CurrentUserInfo.TotalAmount - requestUpgrade.amount), "", "升级会员", "", "", (double)requestUpgrade.amount, 0, "", tran, ex1: levelConfig.LevelNumber.ToString(), ex2: levelConfig.LevelString, ex3: toLevelConfig.LevelNumber.ToString(), ex4: toLevelConfig.LevelString) <= 0) { tran.Rollback(); apiResp.msg = "升级会员明细出错"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } #endregion #region 修改金额 更新支付状态 if (BLLBase.ExecuteSql(string.Format("UPDATE ZCJ_UserInfo SET MemberLevel={0},IsDisable=0,MemberApplyStatus=9,TotalAmount=ISNULL(TotalAmount,0)-{3},AccountAmountEstimate=ISNULL(AccountAmountEstimate,0)-{3} FROM ZCJ_UserInfo WHERE UserID='{1}' And WebsiteOwner='{2}' And ISNULL(TotalAmount,0)-{3}>=0 ;", requestUpgrade.toLevel, CurrentUserInfo.UserID, websiteOwner, requestUpgrade.amount), tran) <= 0) { tran.Rollback(); apiResp.msg = string.Format("扣除用户可用{0}出错", website.TotalAmountShowName); apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } #endregion #region 记录业绩明细 TeamPerformanceDetails perDetail = new TeamPerformanceDetails(); perDetail.AddType = "升级"; perDetail.AddNote = "由" + levelConfig.LevelString + "升级" + toLevelConfig.LevelString; perDetail.AddTime = DateTime.Now; perDetail.DistributionOwner = CurrentUserInfo.DistributionOwner; perDetail.UserId = CurrentUserInfo.UserID; perDetail.UserName = CurrentUserInfo.TrueName; perDetail.UserPhone = CurrentUserInfo.Phone; perDetail.Performance = requestUpgrade.amount; string yearMonthString = perDetail.AddTime.ToString("yyyyMM"); int yearMonth = Convert.ToInt32(yearMonthString); perDetail.WebsiteOwner = websiteOwner; perDetail.YearMonth = yearMonth; if (!bllUser.Add(perDetail, tran)) { tran.Rollback(); apiResp.msg = "记录业绩明细失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } #endregion tran.Commit(); if (hasProjectCommission) { //异步修改积分明细表 Thread th1 = new Thread(delegate() { //计算相关业绩 bll.BuildCurMonthPerformanceByUserID(websiteOwner, CurrentUserInfo.UserID); }); th1.Start(); } apiResp.msg = "升级完成"; apiResp.code = (int)APIErrCode.IsSuccess; apiResp.status = true; bll.ContextResponse(context, apiResp); }
public void ProcessRequest(HttpContext context) { string id = context.Request["id"]; string websiteOwner = bllFlow.WebsiteOwner; FlowAction act = bllFlow.GetByKey <FlowAction>("AutoID", id, websiteOwner: websiteOwner); List <FlowActionDetail> actDetails = bllFlow.GetActionDetails(websiteOwner, act.AutoID, act.FlowID); string handleUserId = currentUserInfo.UserID; string handleGroupId = currentUserInfo.PermissionGroupID.HasValue ? currentUserInfo.PermissionGroupID.Value.ToString() : ""; bool isCanAction = bllFlow.IsCanAction(websiteOwner, act.AutoID, handleUserId, handleGroupId); List <FlowActionFile> actFiles = bllFlow.GetActionFiles(websiteOwner, act.AutoID, act.FlowID); List <UserInfo> uList = new List <UserInfo>(); UserInfo member = bllUser.GetUserInfo(act.MemberID, websiteOwner); if (member != null) { uList.Add(member); } UserInfo cu = uList.FirstOrDefault(p => p.UserID == act.CreateUserID); if (cu == null) { cu = bllUser.GetUserInfo(act.CreateUserID, websiteOwner); if (cu != null) { uList.Add(cu); } } UserInfo regUser = null; string regUserLevelString = ""; double regUseAmount = 0; if (act.FlowKey == "CancelRegister" && !string.IsNullOrWhiteSpace(member.RegUserID)) { regUser = bllUser.GetUserInfo(member.RegUserID, websiteOwner); UserLevelConfig levelConfig = bll.QueryUserLevel(websiteOwner, "DistributionOnLine", regUser.MemberLevel.ToString()); if (levelConfig != null) { regUserLevelString = levelConfig.LevelString; } UserScoreDetailsInfo regScore = bllScore.GetNewScore(websiteOwner, "TotalAmount", userIDs: member.UserID, colName: "AutoID,Score", scoreEvents: "他人注册转入", startTime: member.Regtime.Value.ToString("yyyy-MM-dd")); if (regScore != null) { regUseAmount = regScore.Score; } } UserInfo upUser = null; string upUserLevelString = ""; if (act.FlowKey == "RegisterOffLine" || act.FlowKey == "CancelRegister" || act.FlowKey == "EmptyBilFill") { upUser = bllUser.GetUserInfo(member.DistributionOwner, websiteOwner); UserLevelConfig upLevelConfig = bll.QueryUserLevel(websiteOwner, "DistributionOnLine", upUser.MemberLevel.ToString()); if (upLevelConfig != null) { upUserLevelString = upLevelConfig.LevelString; } } List <dynamic> handles = new List <dynamic>(); foreach (var item in actDetails) { UserInfo ru = uList.FirstOrDefault(p => p.UserID == item.HandleUserID); if (ru == null) { ru = bllUser.GetUserInfo(item.HandleUserID, websiteOwner); if (ru != null) { uList.Add(ru); } } var files = (from fp in actFiles where fp.StepID.Equals(item.StepID) select new { id = fp.AutoID, url = fp.FilePath }); handles.Add(new { id = item.AutoID, ex1 = item.Ex1, ex2 = item.Ex2, ex3 = item.Ex3, content = item.HandleContent, handle_time = item.HandleDate.ToString("yyyy/MM/dd HH:mm:ss"), stepname = item.StepName, handle_user_id = ru == null ? 0 : ru.AutoID, handle_user_name = ru == null ? "" : bllUser.GetUserDispalyName(ru), select_date = item.HandleSelectDate.ToString("yyyy/MM/dd HH:mm:ss"), files = files }); } apiResp.result = new { id = act.AutoID, flowname = act.FlowName, stepname = act.StepName, amount = act.Amount, true_amount = act.TrueAmount, deduct_amount = act.DeductAmount, status = act.Status, ex1 = act.StartEx1, ex2 = act.StartEx2, ex3 = act.StartEx3, content = act.StartContent, select_date = act.StartSelectDate.ToString("yyyy/MM/dd HH:mm:ss"), member_id = member == null ? act.MemberAutoID : member.AutoID, member_name = member == null ? act.MemberName : bllUser.GetUserDispalyName(member), member_phone = member == null ? act.MemberPhone : member.Phone, member_regtime = member == null ? "" : member.Regtime.Value.ToString("yyyy/MM/dd HH:mm:ss"), lvname = act.MemberLevelName, create_user_id = cu == null ? 0 : cu.AutoID, create_user_name = cu == null ? "" : bllUser.GetUserDispalyName(cu), start = act.CreateDate.ToString("yyyy/MM/dd HH:mm:ss"), end = act.EndDate.ToString("yyyy/MM/dd HH:mm:ss"), handles = handles, can_act = isCanAction, way = member == null ? "":member.RegisterWay, reg = regUser == null ? null:new { uid = regUser.AutoID, name = bllUser.GetUserDispalyName(regUser), level = regUserLevelString, phone = regUser.Phone, amount = regUseAmount }, up = upUser == null ? null : new { uid = upUser.AutoID, name = bllUser.GetUserDispalyName(upUser), level = upUserLevelString, phone = upUser.Phone }, }; apiResp.code = (int)APIErrCode.IsSuccess; apiResp.status = true; apiResp.msg = "查询完成"; bllFlow.ContextResponse(context, apiResp); }
/// <summary> /// 支付注册 /// </summary> /// <param name="orderPay"></param> /// <returns></returns> public bool PayRegister(OrderPay orderPay, string tradeNo) { BLLDistribution bllDist = new BLLDistribution(); string msg = ""; BLLJIMP.Model.API.User.PayRegisterUser requestUser = JsonConvert.DeserializeObject <BLLJIMP.Model.API.User.PayRegisterUser>(orderPay.Ex1); UserLevelConfig levelConfig = bll.QueryUserLevel(orderPay.WebsiteOwner, "DistributionOnLine", requestUser.level.ToString()); if (levelConfig == null) { return(false); } UserInfo regUser = bllUser.GetUserInfoByPhone(requestUser.phone, orderPay.WebsiteOwner); if (regUser != null && regUser.MemberLevel >= 10) { return(false); } if (regUser != null && regUser.MemberLevel >= requestUser.level) { return(false); } if (regUser != null) { regUser.UserType = 2; regUser.TrueName = requestUser.truename; regUser.DistributionOwner = requestUser.spreadid; regUser.MemberLevel = requestUser.level; regUser.MemberStartTime = DateTime.Now; regUser.MemberApplyTime = orderPay.InsertDate; regUser.RegIP = requestUser.regIP; regUser.Password = requestUser.password; regUser.MemberApplyStatus = 9; regUser.IdentityCard = requestUser.idcard; regUser.Province = requestUser.province; regUser.City = requestUser.city; regUser.District = requestUser.district; regUser.Town = requestUser.town; regUser.ProvinceCode = requestUser.provinceCode; regUser.CityCode = requestUser.cityCode; regUser.DistrictCode = requestUser.districtCode; regUser.TownCode = requestUser.townCode; regUser.RegUserID = null; regUser.RegisterWay = "线上"; } else { regUser = new UserInfo(); regUser.UserID = requestUser.userid; regUser.UserType = 2; regUser.TrueName = requestUser.truename; regUser.WebsiteOwner = orderPay.WebsiteOwner; regUser.DistributionOwner = requestUser.spreadid; regUser.Phone = requestUser.phone; regUser.MemberLevel = requestUser.level; regUser.MemberStartTime = DateTime.Now; regUser.MemberApplyTime = orderPay.InsertDate; regUser.Regtime = DateTime.Now; regUser.LastLoginDate = DateTime.Parse("1970-01-01"); regUser.RegIP = requestUser.regIP; regUser.Password = requestUser.password; regUser.MemberApplyStatus = 9; regUser.IdentityCard = requestUser.idcard; regUser.Province = requestUser.province; regUser.City = requestUser.city; regUser.District = requestUser.district; regUser.Town = requestUser.town; regUser.ProvinceCode = requestUser.provinceCode; regUser.CityCode = requestUser.cityCode; regUser.DistrictCode = requestUser.districtCode; regUser.TownCode = requestUser.townCode; regUser.RegisterWay = "线上"; } orderPay.Trade_No = tradeNo; if (!string.IsNullOrEmpty(levelConfig.CouponId)) { BLLCardCoupon bllCardCoupon = new BLLCardCoupon(); bllCardCoupon.SendCardCouponsByCurrUserInfo(regUser, levelConfig.CouponId); } return(bll.PayRegisterTransfers(regUser, orderPay, "", tradeNo, levelConfig, out msg)); }
public void ProcessRequest(HttpContext context) { BLLJIMP.Model.API.Flow.PostAction requestPost = bllFlow.ConvertRequestToModel <BLLJIMP.Model.API.Flow.PostAction>(new BLLJIMP.Model.API.Flow.PostAction()); string[] limit = new string[] { "OfflineRecharge", "OfflineUpgrade" }; if (!limit.Contains(requestPost.flow_key)) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = "该流程不支持"; bllFlow.ContextResponse(context, apiResp); return; } string websiteOwner = bllFlow.WebsiteOwner; BLLJIMP.Model.Flow flow = bllFlow.GetFlowByKey(requestPost.flow_key, websiteOwner); if (flow == null) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = "流程未定义"; bllFlow.ContextResponse(context, apiResp); return; } if (flow.IsDelete == 1) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = flow.FlowName + "已停用"; bllFlow.ContextResponse(context, apiResp); return; } List <BLLJIMP.Model.FlowStep> steps = bllFlow.GetStepList(2, 1, websiteOwner, flow.AutoID); if (steps.Count == 0) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = flow.FlowName + "环节未设置"; bllFlow.ContextResponse(context, apiResp); return; } UserInfo member = bllUser.GetUserInfo(requestPost.member_userid, websiteOwner); if (requestPost.flow_key == "OfflineUpgrade") { if (member.MemberLevel >= Convert.ToInt32(requestPost.ex2)) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "所选级别低于会员当前级别"; bllFlow.ContextResponse(context, apiResp); return; } UserLevelConfig mlevelConfig = bll.QueryUserLevel(websiteOwner, "DistributionOnLine", member.MemberLevel.ToString()); UserLevelConfig toLevelConfig = bll.QueryUserLevel(websiteOwner, "DistributionOnLine", requestPost.ex2.ToString()); if (toLevelConfig == null) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = "等级未找到"; bll.ContextResponse(context, apiResp); return; } if (toLevelConfig.IsDisable == 1) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = "级别禁止升级"; bll.ContextResponse(context, apiResp); return; } requestPost.amount = Convert.ToDecimal(toLevelConfig.FromHistoryScore) - Convert.ToDecimal(mlevelConfig.FromHistoryScore); if (requestPost.amount < 0) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "所选级别低于会员当前级别"; bllFlow.ContextResponse(context, apiResp); return; } requestPost.ex3 = toLevelConfig.LevelString; } WebsiteInfo website = bllUser.GetWebsiteInfoModelFromDataBase(websiteOwner); BLLJIMP.Model.FlowStep step1 = steps[0]; BLLJIMP.Model.FlowStep step2 = null; if (steps.Count == 2) { step2 = steps[1]; } BLLJIMP.Model.FlowAction action = new BLLJIMP.Model.FlowAction(); action.CreateDate = DateTime.Now; action.CreateUserID = currentUserInfo.UserID; action.WebsiteOwner = websiteOwner; action.StartStepID = step1.AutoID; action.FlowID = flow.AutoID; action.FlowKey = flow.FlowKey; if (requestPost.amount > 0) { action.Amount = requestPost.amount; } if (!string.IsNullOrWhiteSpace(requestPost.content)) { action.StartContent = requestPost.content; } if (!string.IsNullOrWhiteSpace(requestPost.ex1)) { action.StartEx1 = requestPost.ex1; } if (!string.IsNullOrWhiteSpace(requestPost.ex2)) { action.StartEx2 = requestPost.ex2; } if (!string.IsNullOrWhiteSpace(requestPost.ex3)) { action.StartEx3 = requestPost.ex3; } if (requestPost.select_date.HasValue) { action.StartSelectDate = requestPost.select_date.Value; } action.MemberAutoID = member.AutoID; action.MemberID = member.UserID; action.MemberName = bllUser.GetUserDispalyName(member); action.MemberAvatar = bllUser.GetUserDispalyAvatar(member); action.MemberPhone = member.Phone; ZentCloud.BLLJIMP.Model.UserLevelConfig levelConfig = bll.QueryUserLevel(websiteOwner, "DistributionOnLine", member.MemberLevel.ToString()); action.MemberLevel = levelConfig.LevelNumber; action.MemberLevelName = levelConfig.LevelString; action.FlowName = flow.FlowName; if (step2 != null) { action.StepID = step2.AutoID; action.StepName = step2.StepName; } else { action.Status = 9; action.EndDate = DateTime.Now; } BLLJIMP.Model.FlowActionDetail actionDetail1 = new BLLJIMP.Model.FlowActionDetail(); actionDetail1.WebsiteOwner = websiteOwner; actionDetail1.FlowID = flow.AutoID; actionDetail1.StepID = step1.AutoID; actionDetail1.StepName = step1.StepName; actionDetail1.HandleUserID = currentUserInfo.UserID; actionDetail1.HandleDate = DateTime.Now; if (!string.IsNullOrWhiteSpace(action.StartContent)) { actionDetail1.HandleContent = action.StartContent; } if (requestPost.select_date.HasValue) { actionDetail1.HandleSelectDate = requestPost.select_date.Value; } if (!string.IsNullOrWhiteSpace(action.StartEx1)) { actionDetail1.Ex1 = action.StartEx1; } if (!string.IsNullOrWhiteSpace(action.StartEx2)) { actionDetail1.Ex2 = action.StartEx2; } if (!string.IsNullOrWhiteSpace(action.StartEx3)) { actionDetail1.Ex3 = action.StartEx3; } List <BLLJIMP.Model.FlowActionFile> files = new List <BLLJIMP.Model.FlowActionFile>(); if (!string.IsNullOrWhiteSpace(requestPost.files)) { List <string> fileUrls = requestPost.files.Split(',').Where(p => !string.IsNullOrWhiteSpace(p)).ToList(); if (fileUrls.Count > 0) { foreach (var item in fileUrls) { files.Add(new BLLJIMP.Model.FlowActionFile() { FlowID = flow.AutoID, StepID = step1.AutoID, WebsiteOwner = websiteOwner, FilePath = item }); } } } BLLTransaction tran = new BLLTransaction(); int rId = Convert.ToInt32(bllFlow.AddReturnID(action, tran)); if (rId <= 0) { tran.Rollback(); apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = flow.FlowName + "失败"; bllFlow.ContextResponse(context, apiResp); return; } actionDetail1.ActionID = rId; if (!bllFlow.Add(actionDetail1, tran)) { tran.Rollback(); apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = flow.FlowName + ",记录失败"; bllFlow.ContextResponse(context, apiResp); return; } foreach (var item in files) { item.ActionID = rId; if (!bllFlow.Add(item, tran)) { tran.Rollback(); apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = flow.FlowName + ",保存附件失败"; bllFlow.ContextResponse(context, apiResp); return; } } tran.Commit(); apiResp.status = true; apiResp.code = (int)APIErrCode.IsSuccess; apiResp.msg = flow.FlowName + "提交成功"; bllFlow.ContextResponse(context, apiResp); }
public void ProcessRequest(HttpContext context) { if (CurrentUserInfo.IsLock == 1) { apiResp.code = (int)APIErrCode.NoPms; apiResp.msg = "账号已被锁定"; bllUser.ContextResponse(context, apiResp); return; } if (CurrentUserInfo.MemberApplyStatus != 9) { apiResp.code = (int)APIErrCode.NoPms; apiResp.msg = "您的账号正在审核中"; bllUser.ContextResponse(context, apiResp); return; } BLLJIMP.Model.API.User.PayRegisterUser requestUser = bll.ConvertRequestToModel <BLLJIMP.Model.API.User.PayRegisterUser>(new BLLJIMP.Model.API.User.PayRegisterUser()); string websiteOwner = bll.WebsiteOwner; WebsiteInfo website = bllUser.GetWebsiteInfoModelFromDataBase(websiteOwner); if (string.IsNullOrWhiteSpace(requestUser.level.ToString())) { apiResp.code = (int)APIErrCode.PrimaryKeyIncomplete; apiResp.msg = "请选择会员级别"; bll.ContextResponse(context, apiResp); return; } if (string.IsNullOrWhiteSpace(requestUser.phone)) { apiResp.code = (int)APIErrCode.PrimaryKeyIncomplete; apiResp.msg = "请输入手机号码"; bll.ContextResponse(context, apiResp); return; } if (string.IsNullOrWhiteSpace(requestUser.spreadid)) { apiResp.code = (int)APIErrCode.PrimaryKeyIncomplete; apiResp.msg = "请输入推荐人编号"; bll.ContextResponse(context, apiResp); return; } if (!ZentCloud.Common.MyRegex.PhoneNumLogicJudge(requestUser.phone)) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "手机号码格式不正确"; bll.ContextResponse(context, apiResp); return; } if (!ZentCloud.Common.MyRegex.IsIDCard(requestUser.idcard)) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "身份证号码必须如实填写"; bll.ContextResponse(context, apiResp); return; } UserLevelConfig levelConfig = bll.QueryUserLevel(websiteOwner, "DistributionOnLine", requestUser.level.ToString()); if (levelConfig == null) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = "会员级别未找到"; bll.ContextResponse(context, apiResp); return; } if (levelConfig.IsDisable == 1) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = "会员级别禁止注册"; bll.ContextResponse(context, apiResp); return; } decimal levelAmount = Convert.ToDecimal(levelConfig.FromHistoryScore); if (CurrentUserInfo.TotalAmount < levelAmount) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = string.Format("您的{0}不足", website.TotalAmountShowName); bll.ContextResponse(context, apiResp); return; } UserInfo spreadUser = bllUser.GetSpreadUser(requestUser.spreadid, websiteOwner); if (spreadUser == null) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = "推荐人未找到"; bll.ContextResponse(context, apiResp); return; } requestUser.spreadid = spreadUser.UserID; //推荐人 UserInfo regUser = bllUser.GetUserInfoByPhone(requestUser.phone, websiteOwner); if (regUser != null && regUser.MemberLevel >= 10) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "该手机已注册会员"; bll.ContextResponse(context, apiResp); return; } if (regUser != null && regUser.MemberLevel >= requestUser.level) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "该会员有更高级别"; bll.ContextResponse(context, apiResp); return; } if (regUser == null) { regUser = new UserInfo(); regUser.UserID = string.Format("ZYUser{0}{1}", DateTime.Now.ToString("yyyyMMdd"), Guid.NewGuid().ToString("N").ToUpper()); regUser.UserType = 2; regUser.WebsiteOwner = websiteOwner; regUser.Regtime = DateTime.Now; regUser.LastLoginDate = DateTime.Parse("1970-01-01"); } regUser.TrueName = requestUser.truename; regUser.DistributionOwner = requestUser.spreadid; regUser.Phone = requestUser.phone; regUser.MemberLevel = requestUser.level; regUser.MemberApplyTime = DateTime.Now; regUser.MemberStartTime = DateTime.Now; regUser.MemberApplyStatus = 9; regUser.IdentityCard = requestUser.idcard; regUser.Province = requestUser.province; regUser.City = requestUser.city; regUser.District = requestUser.district; regUser.Town = requestUser.town; regUser.ProvinceCode = requestUser.provinceCode; regUser.CityCode = requestUser.cityCode; regUser.DistrictCode = requestUser.districtCode; regUser.TownCode = requestUser.townCode; regUser.RegIP = context.Request.UserHostAddress;//ip regUser.Password = ZentCloud.Common.Rand.Number(6); regUser.RegUserID = CurrentUserInfo.UserID; regUser.EmptyBill = 0; regUser.RegisterWay = "余额"; regUser.IsDisable = 0; int disLevel = 1; if (website.DistributionLimitLevel > 1) { disLevel = website.DistributionLimitLevel; } StringBuilder sbSql = new StringBuilder(); UserInfo upUserLevel1 = null; //分销上一级 UserInfo upUserLevel2 = null; //分销上二级 UserInfo upUserLevel3 = null; //分销上三级 UserLevelConfig levelConfig1 = null; //分销上一级规则 UserLevelConfig levelConfig2 = null; //分销上二级规则 UserLevelConfig levelConfig3 = null; //分销上三级规则 ProjectCommission modelLevel1 = new ProjectCommission(); ScoreLockInfo scoreLockLevel1Info = new ScoreLockInfo(); ProjectCommission modelLevel1ex1 = new ProjectCommission(); ScoreLockInfo scoreLockLevel1ex1Info = new ScoreLockInfo(); ProjectCommission modelLevel2 = new ProjectCommission(); ScoreLockInfo scoreLockLevel2Info = new ScoreLockInfo(); ProjectCommission modelLevel3 = new ProjectCommission(); ScoreLockInfo scoreLockLevel3Info = new ScoreLockInfo(); string projectId = bll.GetGUID(TransacType.PayRegisterOrder); //计算分佣 bll.ComputeTransfers(disLevel, regUser, projectId, levelAmount, websiteOwner, "他人代替注册", ref sbSql, ref upUserLevel1, ref upUserLevel2, ref upUserLevel3, ref levelConfig1, ref levelConfig2, ref levelConfig3, ref modelLevel1, ref scoreLockLevel1Info, ref modelLevel1ex1, ref scoreLockLevel1ex1Info, ref modelLevel2, ref scoreLockLevel2Info, ref modelLevel3, ref scoreLockLevel3Info, levelConfig.LevelString); BLLTransaction tran = new BLLTransaction(); #region 注册会员 if (regUser.AutoID == 0) { regUser.AutoID = Convert.ToInt32(bllUser.AddReturnID(regUser, tran)); if (regUser.AutoID <= 0) { tran.Rollback(); apiResp.msg = "注册用户出错"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } } else { if (!bllUser.Update(regUser, tran)) { tran.Rollback(); apiResp.msg = "注册用户出错"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } } #endregion #region 消耗报单人金额 if (bllUser.AddScoreDetail(CurrentUserInfo.UserID, websiteOwner, (double)(0 - levelAmount), string.Format("替{0}[{1}]注册{2}", regUser.TrueName, regUser.Phone, levelConfig.LevelString), "TotalAmount", (double)(CurrentUserInfo.TotalAmount - levelAmount), "", "替他人注册", "", "", (double)levelAmount, 0, regUser.UserID, tran, ex3: levelConfig.LevelNumber.ToString(), ex4: levelConfig.LevelString) <= 0) { tran.Rollback(); apiResp.msg = "记录明细出错"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } if (bllUser.Update(CurrentUserInfo, string.Format("TotalAmount=ISNULL(TotalAmount,0)-{0},AccountAmountEstimate=ISNULL(AccountAmountEstimate,0)-{0}", levelAmount), string.Format("UserID='{0}' And WebsiteOwner='{1}' And TotalAmount-{2}>=0 ", CurrentUserInfo.UserID, websiteOwner, levelAmount), tran) <= 0) { tran.Rollback(); apiResp.msg = string.Format("消耗报单人可用{0}出错", website.TotalAmountShowName); apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } #endregion #region 注册账号余额明细 //自己的消费记录 if (bllUser.AddScoreDetail(regUser.UserID, websiteOwner, (double)(levelAmount), string.Format("{0}[{1}]转入", CurrentUserInfo.TrueName, CurrentUserInfo.Phone, (double)levelAmount), "TotalAmount", (double)(levelAmount), "", "他人注册转入", "", "", (double)levelAmount, 0, CurrentUserInfo.UserID, tran, ex3: levelConfig.LevelNumber.ToString(), ex4: levelConfig.LevelString) <= 0) { tran.Rollback(); apiResp.msg = "他人注册转入记录出错"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } int mainDetailId = bllUser.AddScoreDetail(regUser.UserID, websiteOwner, (double)(0 - levelAmount), string.Format("{0}[{1}]替您注册{2}", CurrentUserInfo.TrueName, CurrentUserInfo.Phone, levelConfig.LevelString), "TotalAmount", 0, "", "他人代替注册", "", "", (double)levelAmount, 0, CurrentUserInfo.UserID, tran, ex3: levelConfig.LevelNumber.ToString(), ex4: levelConfig.LevelString); if (mainDetailId <= 0) { tran.Rollback(); apiResp.msg = "他人注册记录出错"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } #endregion bool hasProjectCommission = false; #region 记录分佣信息 if (modelLevel1.Amount > 0) { hasProjectCommission = true; int modelLevel1Id = Convert.ToInt32(bll.AddReturnID(modelLevel1, tran)); if (modelLevel1Id <= 0) { tran.Rollback(); apiResp.msg = "一级返利失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } scoreLockLevel1Info.ForeignkeyId2 = modelLevel1Id.ToString(); scoreLockLevel1Info.AutoId = Convert.ToInt32(bll.AddReturnID(scoreLockLevel1Info, tran)); if (scoreLockLevel1Info.AutoId <= 0) { tran.Rollback(); apiResp.msg = "一级返利冻结失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } string scoreDetailEvent = modelLevel1.ProjectName.Contains("购房补助") ? "返购房补助" : "返利"; if (bllUser.AddScoreDetail(scoreLockLevel1Info.UserId, websiteOwner, (double)scoreLockLevel1Info.Score, scoreLockLevel1Info.Memo, "TotalAmount", (double)(upUserLevel1.TotalAmount + scoreLockLevel1Info.Score), scoreLockLevel1Info.AutoId.ToString(), scoreDetailEvent, "", projectId, (double)modelLevel1.SourceAmount, (double)modelLevel1.DeductAmount, modelLevel1.CommissionUserId, tran, ex3: levelConfig.LevelNumber.ToString(), ex4: levelConfig.LevelString, ex5: modelLevel1.CommissionLevel) <= 0) { tran.Rollback(); apiResp.msg = "一级返利明细记录失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } } if (modelLevel1ex1.Amount > 0) { hasProjectCommission = true; int modelLevel1ex1Id = Convert.ToInt32(bll.AddReturnID(modelLevel1ex1, tran)); if (modelLevel1ex1Id <= 0) { tran.Rollback(); apiResp.msg = "一级返购房补助失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } scoreLockLevel1ex1Info.ForeignkeyId2 = modelLevel1ex1Id.ToString(); scoreLockLevel1ex1Info.AutoId = Convert.ToInt32(bll.AddReturnID(scoreLockLevel1ex1Info, tran)); if (scoreLockLevel1ex1Info.AutoId <= 0) { tran.Rollback(); apiResp.msg = "一级返购房补助冻结失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } string scoreDetailEvent = modelLevel1ex1.ProjectName.Contains("购房补助") ? "返购房补助" : "返利"; if (bllUser.AddScoreDetail(scoreLockLevel1ex1Info.UserId, websiteOwner, (double)scoreLockLevel1ex1Info.Score, scoreLockLevel1ex1Info.Memo, "TotalAmount", (double)(upUserLevel1.TotalAmount + scoreLockLevel1ex1Info.Score), scoreLockLevel1ex1Info.AutoId.ToString(), scoreDetailEvent, "", projectId, (double)modelLevel1ex1.SourceAmount, (double)modelLevel1ex1.DeductAmount, modelLevel1ex1.CommissionUserId, tran, ex3: levelConfig.LevelNumber.ToString(), ex4: levelConfig.LevelString, ex5: modelLevel1ex1.CommissionLevel) <= 0) { tran.Rollback(); apiResp.msg = "一级返购房补助明细记录失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } } if (modelLevel2.Amount > 0) { hasProjectCommission = true; int modelLevel2Id = Convert.ToInt32(bll.AddReturnID(modelLevel2, tran)); if (modelLevel2Id <= 0) { tran.Rollback(); apiResp.msg = "二级返利失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } scoreLockLevel2Info.ForeignkeyId2 = modelLevel2Id.ToString(); scoreLockLevel2Info.AutoId = Convert.ToInt32(bll.AddReturnID(scoreLockLevel2Info, tran)); if (scoreLockLevel2Info.AutoId <= 0) { tran.Rollback(); apiResp.msg = "二级返利冻结失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } string scoreDetailEvent = modelLevel2.ProjectName.Contains("购房补助") ? "返购房补助" : "返利"; if (bllUser.AddScoreDetail(scoreLockLevel2Info.UserId, websiteOwner, (double)scoreLockLevel2Info.Score, scoreLockLevel2Info.Memo, "TotalAmount", (double)(upUserLevel2.TotalAmount + scoreLockLevel2Info.Score), scoreLockLevel2Info.AutoId.ToString(), scoreDetailEvent, "", projectId, (double)modelLevel2.SourceAmount, (double)modelLevel2.DeductAmount, modelLevel2.CommissionUserId, tran, ex3: levelConfig.LevelNumber.ToString(), ex4: levelConfig.LevelString, ex5: modelLevel2.CommissionLevel) <= 0) { tran.Rollback(); apiResp.msg = "二级返利明细记录失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } } if (modelLevel3.Amount > 0) { hasProjectCommission = true; int modelLevel3Id = Convert.ToInt32(bll.AddReturnID(modelLevel3, tran)); if (!bll.Add(modelLevel3, tran)) { tran.Rollback(); apiResp.msg = "三级返利失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } scoreLockLevel3Info.ForeignkeyId2 = modelLevel3Id.ToString(); scoreLockLevel3Info.AutoId = Convert.ToInt32(bll.AddReturnID(scoreLockLevel3Info, tran)); if (scoreLockLevel3Info.AutoId <= 0) { tran.Rollback(); apiResp.msg = "三级返利冻结失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } string scoreDetailEvent = modelLevel3.ProjectName.Contains("购房补助") ? "返购房补助" : "返利"; if (bllUser.AddScoreDetail(scoreLockLevel3Info.UserId, websiteOwner, (double)scoreLockLevel3Info.Score, scoreLockLevel3Info.Memo, "TotalAmount", (double)(upUserLevel3.TotalAmount + scoreLockLevel3Info.Score), scoreLockLevel3Info.AutoId.ToString(), scoreDetailEvent, "", projectId, (double)modelLevel3.SourceAmount, (double)modelLevel3.DeductAmount, modelLevel3.CommissionUserId, tran, ex3: levelConfig.LevelNumber.ToString(), ex4: levelConfig.LevelString, ex5: modelLevel3.CommissionLevel) <= 0) { tran.Rollback(); apiResp.msg = "三级返利明细记录失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } } if (hasProjectCommission) { if (BLLBase.ExecuteSql(sbSql.ToString(), tran) <= 0) { tran.Rollback(); apiResp.msg = string.Format("更新分佣账面{0}出错", website.TotalAmountShowName); apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } } #endregion #region 记录业绩明细 TeamPerformanceDetails perDetail = new TeamPerformanceDetails(); perDetail.AddType = "注册"; perDetail.AddNote = "注册" + levelConfig.LevelString; perDetail.AddTime = DateTime.Now; perDetail.DistributionOwner = regUser.DistributionOwner; perDetail.UserId = regUser.UserID; perDetail.UserName = regUser.TrueName; perDetail.UserPhone = regUser.Phone; perDetail.Performance = levelAmount; string yearMonthString = perDetail.AddTime.ToString("yyyyMM"); int yearMonth = Convert.ToInt32(yearMonthString); perDetail.YearMonth = yearMonth; perDetail.WebsiteOwner = websiteOwner; if (!bllUser.Add(perDetail, tran)) { tran.Rollback(); apiResp.msg = "记录业绩明细失败"; apiResp.code = (int)APIErrCode.OperateFail; bll.ContextResponse(context, apiResp); return; } #endregion tran.Commit(); if (hasProjectCommission) { //异步修改积分明细表 Thread th1 = new Thread(delegate() { //计算相关业绩 bll.BuildCurMonthPerformanceByUserID(websiteOwner, regUser.UserID); }); th1.Start(); } string msg = ""; #region 短信发送密码 BLLSMS bllSms = new BLLSMS(""); bool smsBool = false; string smsString = string.Format("恭喜您成功注册为天下华商月供宝:{1},您的初始密码为:{0}。您可关注公众号:songhetz,登录账户修改密码,并设置支付密码。", regUser.Password, levelConfig.LevelString); bllSms.SendSmsMisson(regUser.Phone, smsString, "", website.SmsSignature, out smsBool, out msg); #endregion if (string.IsNullOrWhiteSpace(msg)) { msg = "注册成功"; } apiResp.msg = msg; apiResp.code = (int)APIErrCode.IsSuccess; apiResp.status = true; apiResp.result = new { password = regUser.Password }; bll.ContextResponse(context, apiResp); }
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; string data = context.Request["data"]; RequestModel requestModel; try { requestModel = ZentCloud.Common.JSONHelper.JsonToModel <RequestModel>(context.Request["data"]); } catch (Exception) { resp.errcode = -1; resp.errmsg = "json格式错误,请检查"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } if (requestModel.level_id <= 0) { resp.errmsg = "level_id参数必填,请检查"; resp.errcode = 1; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } if (requestModel.level_number <= 0) { resp.errmsg = "level_number参数必填,请检查"; resp.errcode = 1; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } if (string.IsNullOrEmpty(requestModel.level_string)) { resp.errmsg = "requestModel参数必填,请检查"; resp.errcode = 1; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } if (string.IsNullOrEmpty(requestModel.level_icon)) { resp.errmsg = "level_icon参数必填,请检查"; resp.errcode = 1; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } if (requestModel.level_fromhistory_score <= 0) { resp.errmsg = "level_fromhistory_score参数必填,请检查"; resp.errcode = 1; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } if (requestModel.level_tohistory_score <= 0) { resp.errmsg = "level_tohistory_score参数必填,请检查"; resp.errcode = 1; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } UserLevelConfig userlevel = bll.Get <UserLevelConfig>(string.Format(" WebsiteOwner='{0}' and AutoID={1}", bll.WebsiteOwner, requestModel.level_id)); if (userlevel == null) { resp.errcode = -1; resp.errmsg = "用户等级对象不存在"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } userlevel.LevelNumber = requestModel.level_number; userlevel.LevelString = requestModel.level_string; userlevel.LevelIcon = requestModel.level_icon; userlevel.FromHistoryScore = requestModel.level_fromhistory_score; userlevel.ToHistoryScore = requestModel.level_tohistory_score; if (bll.Update(userlevel)) { resp.errcode = 0; resp.errmsg = "ok"; resp.isSuccess = true; } else { resp.errcode = -1; resp.errmsg = "修改用户等级出错"; } context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; }
public void ProcessRequest(HttpContext context) { BLLJIMP.Model.API.User.PayRegisterUser requestUser = bll.ConvertRequestToModel <BLLJIMP.Model.API.User.PayRegisterUser>(new BLLJIMP.Model.API.User.PayRegisterUser()); string websiteOwner = bll.WebsiteOwner; if (context.Session["currWXOpenId"] == null) { apiResp.code = (int)APIErrCode.PrimaryKeyIncomplete; apiResp.msg = "仅支持微信注册"; bll.ContextResponse(context, apiResp); return; } if (string.IsNullOrWhiteSpace(requestUser.spreadid)) { apiResp.code = (int)APIErrCode.PrimaryKeyIncomplete; apiResp.msg = "请输入推荐人编号"; bll.ContextResponse(context, apiResp); return; } string currWXOpenId = context.Session["currWXOpenId"].ToString(); if (string.IsNullOrWhiteSpace(requestUser.level.ToString())) { apiResp.code = (int)APIErrCode.PrimaryKeyIncomplete; apiResp.msg = "请选择会员级别"; bll.ContextResponse(context, apiResp); return; } if (string.IsNullOrWhiteSpace(requestUser.phone)) { apiResp.code = (int)APIErrCode.PrimaryKeyIncomplete; apiResp.msg = "请输入手机号码"; bll.ContextResponse(context, apiResp); return; } if (!ZentCloud.Common.MyRegex.PhoneNumLogicJudge(requestUser.phone)) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "手机号码格式不正确"; bll.ContextResponse(context, apiResp); return; } if (!ZentCloud.Common.MyRegex.IsIDCard(requestUser.idcard)) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "身份证号码必须如实填写"; bll.ContextResponse(context, apiResp); return; } UserLevelConfig levelConfig = bll.QueryUserLevel(websiteOwner, "DistributionOnLine", requestUser.level.ToString()); if (levelConfig == null) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = "会员级别未找到"; bll.ContextResponse(context, apiResp); return; } if (levelConfig.IsDisable == 1) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = "会员级别禁止注册"; bll.ContextResponse(context, apiResp); return; } requestUser.levelname = levelConfig.LevelString; UserInfo spreadUser = spreadUser = bllUser.GetSpreadUser(requestUser.spreadid, websiteOwner); if (spreadUser == null) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = "推荐人未找到"; bll.ContextResponse(context, apiResp); return; } requestUser.spreadid = spreadUser.UserID; //推荐人 UserInfo oldUserInfo = bllUser.GetUserInfoByPhone(requestUser.phone, websiteOwner); if (oldUserInfo != null && oldUserInfo.MemberLevel >= 10) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "该手机已注册会员"; bll.ContextResponse(context, apiResp); return; } if (oldUserInfo != null && oldUserInfo.MemberLevel > requestUser.level) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "该会员有更高级别"; bll.ContextResponse(context, apiResp); return; } PayConfig payConfig = bllPay.GetPayConfig(); if (payConfig == null || string.IsNullOrEmpty(payConfig.WXAppId) || string.IsNullOrEmpty(payConfig.WXMCH_ID) || string.IsNullOrEmpty(payConfig.WXPartnerKey)) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "该商户微信支付还没有配置"; bll.ContextResponse(context, apiResp); return; } if (oldUserInfo != null) { requestUser.userid = oldUserInfo.UserID; } else { requestUser.userid = string.Format("ZYUser{0}{1}", DateTime.Now.ToString("yyyyMMdd"), Guid.NewGuid().ToString("N").ToUpper()); } requestUser.regIP = context.Request.UserHostAddress;//ip requestUser.password = ZentCloud.Common.Rand.Number(6); OrderPay orderPay = new OrderPay(); orderPay.OrderId = bll.GetGUID(TransacType.PayRegisterOrder); orderPay.InsertDate = DateTime.Now; orderPay.Subject = "支付注册会员"; orderPay.Total_Fee = Convert.ToDecimal(levelConfig.FromHistoryScore); orderPay.Type = "5"; orderPay.WebsiteOwner = websiteOwner; orderPay.UserId = requestUser.userid; orderPay.Ex1 = JsonConvert.SerializeObject(requestUser); orderPay.Ex2 = requestUser.phone; if (!bll.Add(orderPay)) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "生成支付订单失败"; bll.ContextResponse(context, apiResp); return; } string appId = payConfig.WXAppId; //微信AppId string mchId = payConfig.WXMCH_ID; //商户号 string key = payConfig.WXPartnerKey; //api密钥 string openId = currWXOpenId; //openid string notifyUrl = string.Format("http://{0}/WxPayNotify/PayRegisterNotify.aspx", context.Request.Url.Authority); //支付注册通知地址 string body = ""; //订单内容 string payReqStr = bllPay.GetBrandWcPayRequest(orderPay.OrderId, orderPay.Total_Fee, appId, mchId, key, openId, requestUser.regIP, notifyUrl, body); BllPay.WXPayReq payReqModel = ZentCloud.Common.JSONHelper.JsonToModel <BllPay.WXPayReq>(payReqStr); if (string.IsNullOrEmpty(payReqModel.paySign)) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "构造支付信息失败"; bll.ContextResponse(context, apiResp); return; } apiResp.code = (int)APIErrCode.IsSuccess; apiResp.status = true; apiResp.result = new { pay_req = payReqModel }; bllUser.ContextResponse(context, apiResp); }