Ejemplo n.º 1
0
Archivo: Add.ashx.cs Proyecto: uvbs/mmp
        public void ProcessRequest(HttpContext context)
        {
            try
            {
                ZentCloud.BLLJIMP.Model.Project model = bll.ConvertRequestToModel <ZentCloud.BLLJIMP.Model.Project>(new ZentCloud.BLLJIMP.Model.Project());
                model.UserId       = CurrentUserInfo.UserID;
                model.WebsiteOwner = bll.WebsiteOwner;
                model.InsertDate   = DateTime.Now;
                model.Status       = "待审核";
                model.ProjectId    = int.Parse(bll.GetGUID(BLLJIMP.TransacType.CommAdd));
                model.ProjectType  = "DistributionOffLine";

                string msg = "";
                if (!bll.CheckProjectInfo(model, out msg))
                {
                    apiResp.code = (int)APIErrCode.PrimaryKeyIncomplete;
                    apiResp.msg  = msg;
                    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                    return;
                }
                if (bll.Add(model))
                {
                    apiResp.status = true;
                    apiResp.msg    = "ok";
                    ZentCloud.BLLJIMP.Model.ProjectLog log = new ZentCloud.BLLJIMP.Model.ProjectLog();
                    log.InsertDate   = DateTime.Now;
                    log.ProjectId    = model.ProjectId;
                    log.ProjectName  = model.ProjectName;
                    log.Remark       = string.Format("提交了项目{0} 操作人:{1}", model.ProjectName, bllUser.GetUserDispalyName(CurrentUserInfo));
                    log.Status       = model.Status = model.Status;
                    log.UserId       = CurrentUserInfo.UserID;
                    log.WebsiteOwner = bll.WebsiteOwner;
                    bll.Add(log);

                    #region 给管理员发送消息
                    var currWebSiteUserInfo = bll.GetCurrWebSiteUserInfo();
                    if (!string.IsNullOrEmpty(currWebSiteUserInfo.WeiXinKeFuOpenId))
                    {
                        bllWeixin.SendTemplateMessageNotifyComm(currWebSiteUserInfo, string.Format("提交项目申请"), string.Format("用户:{0}\\n提交了项目{1}", CurrentUserInfo.TrueName, model.ProjectName));
                    }
                    #endregion
                }
                else
                {
                    apiResp.msg = "提交失败";
                }
            }
            catch (Exception ex)
            {
                apiResp.code = (int)APIErrCode.OperateFail;
                apiResp.msg  = ex.Message;
            }
            context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
        }
Ejemplo n.º 2
0
        public void ProcessRequest(HttpContext context)
        {
            if (!string.IsNullOrEmpty(CurrentUserInfo.DistributionOffLinePreUserId))
            {
                apiResp.msg = "您已经是分销员";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }
            string           activityId = bll.GetDistributionOffLineApplyActivityID();
            ActivityDataInfo model      = bllActivity.GetActivityDataInfo(activityId, CurrentUserInfo.UserID);

            if (model == null)
            {
                apiResp.msg = "您还未申请";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }
            if (model.Status != 4003)//不是微转发审核通过的不给继续操作
            {
                apiResp.msg = "审核未通过";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }
            UserInfo commendUserInfo = bllUser.GetUserInfoByAutoID(int.Parse(model.DistributionOffLineRecommendCode));

            if (commendUserInfo == null)
            {
                apiResp.msg = "推荐人不存在";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }

            CurrentUserInfo.DistributionOffLinePreUserId = commendUserInfo.UserID;
            CurrentUserInfo.TrueName = model.Name;
            if (bllUser.Update(CurrentUserInfo))
            {
                //申请通过向申请人和上级提醒通过申请
                bllWeixin.SendTemplateMessageNotifyComm(commendUserInfo, string.Format("恭喜您的会员“{0}”申请财富会员成功", model.Name), "请提醒他关注公众号并帮助他熟悉系统操作吧。", string.Format("http://{0}/App/Distribution/m/index.aspx", context.Request.Url.Host));

                apiResp.status = true;
                apiResp.msg    = "ok ";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
            }
            else
            {
                apiResp.msg = "操作失败";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
            }
        }
Ejemplo n.º 3
0
        public void ProcessRequest(HttpContext context)
        {
            string orderSn = context.Request["order_sn"];                  //订单号
            string status  = context.Request["status"];                    //状态 0不同意 1同意
            string remark  = context.Request["remark"];                    //备注
            string type    = context.Request["type"];                      //类型 1 退款 2退押金

            string tpMsgTitle = string.Empty, tpMsgContent = string.Empty; //模板消息

            if (string.IsNullOrEmpty(type))
            {
                resp.code = (int)APIErrCode.PrimaryKeyIncomplete;
                resp.msg  = "type 参数必传";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                return;
            }
            if (string.IsNullOrEmpty(orderSn))
            {
                resp.code = (int)APIErrCode.PrimaryKeyIncomplete;
                resp.msg  = "order_sn 参数必传";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                return;
            }
            if (string.IsNullOrEmpty(status))
            {
                resp.code = (int)APIErrCode.PrimaryKeyIncomplete;
                resp.msg  = "status 参数必传";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                return;
            }
            if (status != "1" && status != "0")
            {
                resp.code = (int)APIErrCode.OperateFail;
                resp.msg  = "status 参数值不合法";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                return;
            }
            if (string.IsNullOrEmpty(remark))
            {
                resp.code = (int)APIErrCode.PrimaryKeyIncomplete;
                resp.msg  = "remark 参数必传";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                return;
            }

            var orderInfo = bllMall.GetOrderInfoByOutOrderId(orderSn);

            if (orderInfo == null)
            {
                resp.code = (int)APIErrCode.PrimaryKeyIncomplete;
                resp.msg  = "order_sn 不存在,请检查";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                return;
            }
            //using (System.IO.StreamWriter sw = new System.IO.StreamWriter(@"D:\wifilog.txt", true, System.Text.Encoding.GetEncoding("gb2312")))
            //{
            //    sw.WriteLine(string.Format("type:{0}", type));
            //}
            switch (type)
            {
            case "1":                                                  //退款
                orderInfo.Ex18 = status;
                if (status == "0")                                     //拒绝后用户可申请退款
                {
                    if (string.IsNullOrEmpty(orderInfo.ExpressNumber)) //发货前可重新申请退款
                    {
                        orderInfo.Ex11     = "0";                      //退款
                        orderInfo.IsRefund = 0;
                    }
                    tpMsgTitle = "已经拒绝您的退款申请";
                }
                else
                {
                    tpMsgTitle = "已经同意您的退款申请";
                }
                orderInfo.Ex19 = HttpUtility.UrlDecode(remark);
                break;

            case "2":    //退押金
                orderInfo.Ex20 = status;
                orderInfo.Ex21 = HttpUtility.UrlDecode(remark);

                if (status == "0")
                {
                    tpMsgTitle = "已经拒绝您的退押金申请";
                }
                else
                {
                    tpMsgTitle = "已经同意您的退押金申请";
                }


                break;

            default:
                resp.code = (int)APIErrCode.PrimaryKeyIncomplete;
                resp.msg  = "不合法的 type 值";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                return;
            }


            orderInfo.LastUpdateTime = DateTime.Now;
            if (bllMall.Update(orderInfo))
            {
                resp.msg    = "ok";
                resp.status = true;

                tpMsgContent = "订单号 " + orderInfo.OrderID;

                if (status == "0")
                {
                    tpMsgContent += "\\n" + HttpUtility.UrlDecode(remark);
                }

                var orderUserInfo = bllUser.GetUserInfo(orderInfo.OrderUserID);
                if (orderUserInfo != null && !string.IsNullOrWhiteSpace(orderUserInfo.WXOpenId))
                {
                    string url = string.Empty;

                    if (bllMall.WebsiteOwner == "jikuwifi")
                    {
                        url = string.Format("http://jikuwifi.comeoncloud.net/customize/jikuwifi/Index.aspx?v=1.0&ngroute=/orderDetail/{0}#/orderDetail/{0}", orderInfo.OrderID);
                    }

                    bllWeixin.SendTemplateMessageNotifyComm(orderUserInfo, tpMsgTitle, tpMsgContent, url);
                }
            }
            else
            {
                resp.code = (int)APIErrCode.OperateFail;
                resp.msg  = "操作失败";
            }
            context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
        }
Ejemplo n.º 4
0
        public void ProcessRequest(HttpContext context)
        {
            if (context.Request.HttpMethod != "POST")
            {
                resp.code = (int)APIErrCode.OperateFail;
                resp.msg  = "请用POST提交";
                bllUser.ContextResponse(context, resp);
                return;
            }
            string openId       = context.Request["openid"];        //openId
            string title        = context.Request["title"];         //标题
            string content      = context.Request["content"];       //备注
            string link         = context.Request["link"];          //网页链接
            string serialNumber = context.Request["serial_number"]; //流水号

            title   = HttpUtility.UrlDecode(title);
            content = HttpUtility.UrlDecode(content);
            if (string.IsNullOrEmpty(openId))
            {
                resp.code = (int)APIErrCode.PrimaryKeyIncomplete;
                resp.msg  = "openid 参数必传";
                bllWeixin.ContextResponse(context, resp);
                return;
            }
            if (string.IsNullOrEmpty(title))
            {
                resp.code = (int)APIErrCode.PrimaryKeyIncomplete;
                resp.msg  = "title 参数必传";
                bllWeixin.ContextResponse(context, resp);
                return;
            }
            if (string.IsNullOrEmpty(content))
            {
                resp.code = (int)APIErrCode.PrimaryKeyIncomplete;
                resp.msg  = "content 参数必传";
                bllWeixin.ContextResponse(context, resp);
                return;
            }
            UserInfo userInfo = bllUser.GetUserInfoByOpenId(openId);

            if (userInfo == null && (bllUser.WebsiteOwner == "dongwu" || bllUser.WebsiteOwner == "dongwudev"))
            {
                userInfo = bllUser.CreateNewUser(bllUser.WebsiteOwner, openId, "");
            }
            if (userInfo == null)
            {
                resp.code = (int)APIErrCode.PrimaryKeyIncomplete;
                resp.msg  = "openid 不存在";
                bllWeixin.ContextResponse(context, resp);
                return;
            }
            var isSuccess = bllWeixin.SendTemplateMessageNotifyComm(userInfo, title, content, link);

            if (isSuccess)
            {
                resp.status = true;
                resp.msg    = "ok";
                bllLog.Add(bllLog.WebsiteOwner, EnumApiModule.WeixinMessage, string.Format("发送微信消息\n标题:{0},内容:{1},链接:{2}", title, content, link), openId, userInfo.UserID, serialNumber);
            }
            else
            {
                resp.code = (int)APIErrCode.OperateFail;
                resp.msg  = "发送失败";
            }
            bllWeixin.ContextResponse(context, resp);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 领取卡券
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        private string ReciveCardCoupon(HttpContext context)
        {
            string      cardCouponId = context.Request["cardcoupon_id"];
            CardCoupons cardCoupon   = bllCardCoupon.GetCardCoupon(int.Parse(cardCouponId));

            if (cardCoupon == null)
            {
                resp.errcode = 1;
                resp.errmsg  = "cardcoupon_id 不存在";
                return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
            }
            cardCoupon = bllCardCoupon.ConvertExpireTime(cardCoupon);
            var myCardCoupon = bllCardCoupon.GetMyCardCouponMainId(int.Parse(cardCouponId), currentUserInfo.UserID);

            if (myCardCoupon != null)
            {
                resp.errcode = 1;
                resp.errmsg  = "已经领取过了";
                return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
            }
            if (DateTime.Now > (DateTime)(cardCoupon.ValidTo))
            {
                resp.errcode = 2;
                resp.errmsg  = "卡券已过期";
                return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
            }
            if (cardCoupon.MaxCount > 0)
            {
                if (bllCardCoupon.GetCardCouponSendCount(cardCoupon.CardId) >= cardCoupon.MaxCount)
                {
                    resp.errcode = 2;
                    resp.errmsg  = "卡券已经领完";
                    return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                }
            }

            if (cardCoupon.GetLimitType != null)
            {
                if (cardCoupon.GetLimitType == "1" && !bllUser.IsDistributionMember(currentUserInfo, true))
                {
                    resp.errcode = (int)BLLJIMP.Enums.APIErrCode.MallGetCardOnlyDistMember;
                    resp.errmsg  = "只有分销员才能领取";
                    return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                }
                if (cardCoupon.GetLimitType == "2" && bllUser.IsDistributionMember(currentUserInfo))
                {
                    resp.errcode = (int)BLLJIMP.Enums.APIErrCode.MallGetCardOnlyNotDistMember;
                    resp.errmsg  = "该券仅新用户(无购买历史)可以领取";
                    return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                }
            }
            if (!string.IsNullOrEmpty(cardCoupon.BindChannelUserId))
            {
                if (string.IsNullOrEmpty(currentUserInfo.DistributionOwner))
                {
                    resp.errcode = (int)BLLJIMP.Enums.APIErrCode.MallGetCardOnlyChannel;
                    resp.errmsg  = "只有指定渠道才能领取";
                    return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                }
                BLLJIMP.BLLDistribution bllDis = new BLLJIMP.BLLDistribution();
                string channelUserId           = bllDis.GetUserChannel(currentUserInfo);

                if (cardCoupon.BindChannelUserId != channelUserId)
                {
                    resp.errcode = (int)BLLJIMP.Enums.APIErrCode.MallGetCardOnlyChannel;
                    resp.errmsg  = "只有指定渠道才能领取";
                    return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                }
            }



            MyCardCoupons model = new MyCardCoupons();

            model.CardCouponNumber = string.Format("No.{0}{1}", DateTime.Now.ToString("yyyyMMddHHmmss"), bllMall.GetGUID(BLLJIMP.TransacType.CommAdd));
            model.CardCouponType   = cardCoupon.CardCouponType;
            model.CardId           = cardCoupon.CardId;
            model.InsertDate       = DateTime.Now;
            model.UserId           = currentUserInfo.UserID;
            model.WebSiteOwner     = bllCardCoupon.WebsiteOwner;
            if (bllCardCoupon.Add(model))
            {
                resp.errmsg = "ok";
                string title   = "您收到了一张优惠券";
                string content = string.Format("{0}", cardCoupon.Name);

                if (cardCoupon.ValidTo.HasValue)
                {
                    content += string.Format("\\n{0}", ((DateTime)cardCoupon.ValidTo).ToString("yyyy-MM-dd"));
                }

                string url = string.Format("http://{0}/customize/shop/?v=1.0&ngroute=/mycoupons#/mycoupons", context.Request.Url.Host);

                if (bllUser.WebsiteOwner == "jikuwifi")
                {
                    url = string.Format("http://{0}/customize/jikuwifi/?v=1.0&ngroute=/mycoupons#/mycoupons", context.Request.Url.Host);
                }

                bllWeixin.SendTemplateMessageNotifyComm(currentUserInfo, title, content, url);

                //#region 同时发放到微信卡包
                //if (!string.IsNullOrEmpty(cardCoupon.WeixinCardId) && (!string.IsNullOrEmpty(CurrentUserInfo.WXOpenId)))
                //{
                //    bllWeixinCard.SendByMass(cardCoupon.WeixinCardId, CurrentUserInfo.WXOpenId);

                //}
                //#endregion
            }
            else
            {
                resp.errcode = 1;
                resp.errmsg  = "领取优惠券失败";
                return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
            }
            return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
        }
Ejemplo n.º 6
0
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                //Tolog("进入支付回调");
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(Request.InputStream);
                xmlDoc.Save(string.Format("C:\\WXPay\\Notify{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);//全部参数排序
                orderInfo = bllMall.GetOrderInfo(parametersAll["out_trade_no"]);
                PayConfig payConfig = bllPay.GetPayConfig();
                if (!bllPay.VerifySignatureWx(parametersAll, payConfig.WXPartnerKey))//验证签名
                {
                    Tolog("验证签名出错");
                    Response.Write(failXml);
                    return;
                }
                if (orderInfo == null)
                {
                    Tolog("订单未找到");
                    Response.Write(failXml);
                    return;
                }
                if (orderInfo.PaymentStatus.Equals(1))
                {
                    //Tolog("已支付");
                    Response.Write(successXml);
                    return;
                }
                orderInfo.PaymentType = 2;

                //更新订单状态
                WXMallProductInfo tProductInfo = new WXMallProductInfo();
                if (parametersAll["return_code"].Equals("SUCCESS") && parametersAll["result_code"].Equals("SUCCESS")) //交易成功
                {
                    UserInfo orderUserInfo = bllUser.GetUserInfo(orderInfo.OrderUserID, bllUser.WebsiteOwner);        //下单用户信息
                    string   hasOrderIDs   = "";
                    int      maxCount      = 1;
                    //Tolog("准备检查更新订单状态");
                    if (BLLJIMP.BLLMall.bookingList.Contains(orderInfo.ArticleCategoryType))
                    {
                        //Tolog("预订类型");
                        #region 预约订单修改状态
                        orderInfo.PaymentStatus = 1;
                        orderInfo.PayTime       = DateTime.Now;
                        orderInfo.Status        = "预约成功";

                        #region 检查是否有预约成功的订单
                        List <WXMallOrderDetailsInfo> tDetailList = bllMall.GetOrderDetailsList(orderInfo.OrderID, null, orderInfo.ArticleCategoryType, null, null);
                        List <WXMallOrderDetailsInfo> oDetailList = bllMall.GetOrderDetailsList(null, tDetailList[0].PID, orderInfo.ArticleCategoryType, tDetailList.Min(p => p.StartDate), tDetailList.Max(p => p.EndDate));
                        tProductInfo = bllMall.GetByKey <WXMallProductInfo>("PID", tDetailList[0].PID);
                        maxCount     = tProductInfo.Stock;
                        List <string> hasOrderIDList = new List <string>();
                        foreach (var item in tDetailList)
                        {
                            List <WXMallOrderDetailsInfo> hasOrderDetailList = oDetailList.Where(p => !((item.StartDate >= p.EndDate && item.EndDate > p.EndDate) || (item.StartDate < p.StartDate && item.EndDate <= p.StartDate))).ToList();
                            if (hasOrderDetailList.Count >= maxCount)
                            {
                                hasOrderIDList.AddRange(hasOrderDetailList.Select(p => p.OrderID).Distinct());
                            }
                        }
                        hasOrderIDList = hasOrderIDList.Where(p => !p.Contains(orderInfo.OrderID)).ToList();
                        if (hasOrderIDList.Count > 0)
                        {
                            hasOrderIDList = hasOrderIDList.Distinct().ToList();
                            hasOrderIDs    = MyStringHelper.ListToStr(hasOrderIDList, "'", ",");
                        }
                        #endregion 检查是否有预约成功的订单

                        #endregion 预约订单修改状态
                    }
                    else
                    {
                        //Tolog("普通类型");
                        #region 原订单修改状态
                        orderInfo.PaymentStatus = 1;
                        orderInfo.Status        = "待发货";
                        orderInfo.PayTime       = DateTime.Now;
                        if (orderInfo.DeliveryType == 1)
                        {
                            orderInfo.Status = "待自提";
                        }
                        Tolog("更改状态start");
                        //if (bllMall.GetWebsiteInfoModelFromDataBase().IsDistributionMall.Equals(1))
                        //{
                        orderInfo.GroupBuyStatus     = "0";
                        orderInfo.DistributionStatus = 1;

                        //if (orderInfo.IsMain==1)
                        //{
                        //    bllMall.Update(orderInfo,string.Format(" DistributionStatus=1"),string.Format("ParentOrderId='{0}'",orderInfo.OrderID));
                        //}



                        #region 活动订单
                        if (orderInfo.OrderType == 4)
                        {
                            ActivityDataInfo data = bllMall.Get <ActivityDataInfo>(string.Format(" OrderId='{0}'", orderInfo.OrderID));
                            if (data != null)
                            {
                                bllMall.Update(data, string.Format(" PaymentStatus=1"), string.Format("  OrderId='{0}'", orderInfo.OrderID));
                            }
                        }
                        #endregion


                        bllMall.Update(orderInfo, string.Format("PaymentStatus=1,Status='待发货',PayTime=GETDATE(),DistributionStatus=1"), string.Format("ParentOrderId='{0}'", orderInfo.OrderID));


                        //}
                        #endregion 原订单修改状态

                        try
                        {
                            //设置交易流水号
                            orderInfo.PayTranNo = parametersAll["transaction_id"];
                        }
                        catch (Exception ex)
                        {
                            Tolog("设置交易流水号失败:" + ex.Message);
                        }
                    }
                    bool result = false;

                    if (BLLJIMP.BLLMall.bookingList.Contains(orderInfo.ArticleCategoryType))
                    {
                        if (string.IsNullOrWhiteSpace(hasOrderIDs))
                        {
                            hasOrderIDs = "'0'";
                        }
                        result = bllMall.Update(new WXMallOrderInfo(),
                                                string.Format("PaymentStatus={0},PayTime=GetDate(),Status='{1}'", 1, "预约成功"),
                                                string.Format("OrderID='{0}' and WebsiteOwner='{4}' AND (select count(1) from [ZCJ_WXMallOrderInfo] where Status='{3}' and WebsiteOwner='{4}' and  OrderID IN({1}))<{2}",
                                                              orderInfo.OrderID, hasOrderIDs, maxCount, "预约成功", bllMall.WebsiteOwner)
                                                ) > 0;
                        if (result)
                        {
                            // #region 交易成功加积分
                            //增加积分 (慧聚不需要)
                            //if (orderInfo.TotalAmount > 0)
                            //{
                            //    ScoreConfig scoreConfig = bllScore.GetScoreConfig();
                            //    int addScore = 0;
                            //    if (scoreConfig != null && scoreConfig.OrderAmount > 0 && scoreConfig.OrderScore > 0)
                            //    {
                            //        addScore = (int)(orderInfo.PayableAmount / (scoreConfig.OrderAmount / scoreConfig.OrderScore));
                            //    }
                            //    if (addScore > 0)
                            //    {
                            //        if (bllUser.Update(new UserInfo(),
                            //            string.Format(" TotalScore+={0},HistoryTotalScore+={0}", addScore),
                            //            string.Format(" UserID='{0}'", orderInfo.OrderUserID)) > 0)
                            //        {
                            //            UserScoreDetailsInfo scoreRecord = new UserScoreDetailsInfo();
                            //            scoreRecord.AddTime = DateTime.Now;
                            //            scoreRecord.Score = addScore;
                            //            scoreRecord.ScoreType = "OrderSuccess";
                            //            scoreRecord.UserID = orderInfo.OrderUserID;
                            //            scoreRecord.AddNote = "预约-交易成功获得积分";
                            //            bllMall.Add(scoreRecord);
                            //        }
                            //    }
                            //}
                            // #endregion

                            #region 修改其他预约订单为预约失败 返还积分

                            if (BLLJIMP.BLLMall.bookingList.Contains(orderInfo.ArticleCategoryType) && !string.IsNullOrWhiteSpace(hasOrderIDs))
                            {
                                int tempCount = 0;
                                List <WXMallOrderInfo> tempList = bllMall.GetOrderList(0, 1, "", out tempCount, "预约成功", null, null, null,
                                                                                       null, null, null, null, null, null, null, orderInfo.ArticleCategoryType, hasOrderIDs);
                                tempCount = tempCount + 1; //加上当前订单的数量
                                if (tempCount >= maxCount)
                                {
                                    tempList = bllMall.GetColOrderListInStatus("'待付款','待审核'", hasOrderIDs, "OrderID,OrderUserID,UseScore", bllMall.WebsiteOwner);
                                    if (tempList.Count > 0)
                                    {
                                        string stopOrderIds = MyStringHelper.ListToStr(tempList.Select(p => p.OrderID).ToList(), "'", ",");
                                        tempList = tempList.Where(p => p.UseScore > 0).ToList();
                                        foreach (var item in tempList)
                                        {
                                            orderUserInfo.TotalScore += item.UseScore;
                                            if (bllUser.Update(new UserInfo(), string.Format(" TotalScore+={0}", item.UseScore),
                                                               string.Format(" UserID='{0}'", item.OrderUserID)) > 0)
                                            {
                                                UserScoreDetailsInfo scoreRecord = new UserScoreDetailsInfo();
                                                scoreRecord.AddTime      = DateTime.Now;
                                                scoreRecord.Score        = item.UseScore;
                                                scoreRecord.TotalScore   = orderUserInfo.TotalScore;
                                                scoreRecord.ScoreType    = "OrderCancel";
                                                scoreRecord.UserID       = item.OrderUserID;
                                                scoreRecord.RelationID   = item.OrderID;
                                                scoreRecord.AddNote      = "预约-订单失败返还积分";
                                                scoreRecord.WebSiteOwner = item.WebsiteOwner;
                                                bllMall.Add(scoreRecord);
                                            }
                                        }
                                        bllMall.Update(new WXMallOrderInfo(),
                                                       string.Format("Status='{0}'", "预约失败"),
                                                       string.Format("OrderID In ({0}) and WebsiteOwner='{1}'", stopOrderIds, bllMall.WebsiteOwner));
                                    }
                                }
                                //Tolog("更改修改其他预约为预约失败");
                            }
                            #endregion
                        }
                    }
                    else
                    {
                        result = bllMall.Update(orderInfo);
                    }
                    if (result)
                    {
                        #region 拼团订单
                        if (orderInfo.OrderType == 2)
                        {
                            try
                            {
                                if (!string.IsNullOrEmpty(orderInfo.GroupBuyParentOrderId))
                                {
                                    var parentOrderInfo = bllMall.GetOrderInfo(orderInfo.GroupBuyParentOrderId);

                                    if (parentOrderInfo.Ex10 == "1")
                                    {
                                        if (bllMall.GetCount <WXMallOrderInfo>(string.Format("PaymentStatus=1 And GroupBuyParentOrderId='{0}' ", parentOrderInfo.OrderID)) >= parentOrderInfo.PeopleCount)
                                        {
                                            bllMall.Update(new WXMallOrderInfo(), string.Format("Status='已取消'"), string.Format("  GroupBuyParentOrderId='{0}' And PaymentStatus=0", parentOrderInfo.OrderID));
                                            parentOrderInfo.GroupBuyStatus = "1";
                                            bllMall.Update(parentOrderInfo);
                                        }
                                    }
                                    else
                                    {
                                        if (bllMall.GetCount <WXMallOrderInfo>(string.Format("PaymentStatus=1 And GroupBuyParentOrderId='{0}' Or OrderId='{0}'", parentOrderInfo.OrderID)) >= parentOrderInfo.PeopleCount)
                                        {
                                            bllMall.Update(new WXMallOrderInfo(), string.Format("Status='已取消'"), string.Format("  GroupBuyParentOrderId='{0}' And PaymentStatus=0", parentOrderInfo.OrderID));
                                            parentOrderInfo.GroupBuyStatus = "1";
                                            bllMall.Update(parentOrderInfo);
                                        }
                                    }
                                }
                            }
                            catch (Exception)
                            {
                            }
                        }
                        #endregion
                        Open.HongWareSDK.Client hongWareClient = new Open.HongWareSDK.Client(orderInfo.WebsiteOwner);

                        //Tolog("更改状态true");

                        #region Efast同步
                        //判读当前站点是否需要同步到驿氪和efast
                        if (bllCommRelation.ExistRelation(BLLJIMP.Enums.CommRelationType.SyncEfast, bllCommRelation.WebsiteOwner, ""))
                        {
                            try
                            {
                                Tolog("开始同步efast");

                                string outOrderId = string.Empty, msg = string.Empty;
                                var    syncResult = bllEfast.CreateOrder(orderInfo.OrderID, out outOrderId, out msg);
                                if (syncResult)
                                {
                                    orderInfo.OutOrderId = outOrderId;
                                    bllMall.Update(orderInfo);
                                }
                                Tolog(string.Format("efast订单同步结果:{0},订单号:{1},提示信息:{2}", syncResult, outOrderId, msg));
                            }
                            catch (Exception ex)
                            {
                                Tolog("efast订单同步异常:" + ex.Message);
                            }
                        }
                        #endregion

                        #region 驿氪同步
                        if (bllCommRelation.ExistRelation(BLLJIMP.Enums.CommRelationType.SyncYike, bllCommRelation.WebsiteOwner, ""))
                        {
                            try
                            {
                                Tolog("开始同步驿氪");
                                //同步成功订单到驿氪

                                //UserInfo orderUserInfo = bllUser.GetUserInfo(orderInfo.OrderUserID);
                                //if ((!string.IsNullOrEmpty(orderUserInfo.Ex1)) && (!string.IsNullOrEmpty(orderUserInfo.Ex2)) && (!string.IsNullOrEmpty(orderUserInfo.Phone)))
                                //{
                                //    client.BonusUpdate(orderUserInfo.Ex2, -(orderInfo.UseScore), "商城下单使用积分" + orderInfo.UseScore);

                                //}
                                var uploadOrderResult = yikeClient.OrderUpload(orderInfo);

                                Tolog(string.Format("驿氪订单同步结果:{0}", Common.JSONHelper.ObjectToJson(uploadOrderResult)));
                            }
                            catch (Exception ex)
                            {
                                Tolog("驿氪订单同步异常:" + ex.Message);
                            }
                        }
                        #endregion

                        #region 付款加积分
                        try
                        {
                            bllUser.AddUserScoreDetail(orderInfo.OrderUserID, CommonPlatform.Helper.EnumStringHelper.ToString(ZentCloud.BLLJIMP.Enums.ScoreDefineType.OrderPay), bllMall.WebsiteOwner, null, null);
                        }
                        catch (Exception)
                        { }

                        #endregion


                        #region 消息通知
                        if (!BLLJIMP.BLLMall.bookingList.Contains(orderInfo.ArticleCategoryType))
                        {
                            try
                            {
                                var    productName = bllMall.GetOrderDetailsList(orderInfo.OrderID)[0].ProductName;
                                string remark      = "";
                                if (!string.IsNullOrEmpty(orderInfo.OrderMemo))
                                {
                                    remark = string.Format("客户留言:{0}", orderInfo.OrderMemo);
                                }
                                bllWeiXin.SendTemplateMessageToKefu("有新的订单", string.Format("订单号:{0}\\n订单金额:{1}元\\n收货人:{2}\\n电话:{3}\\n商品:{4}\\n{5}", orderInfo.OrderID, Math.Round(orderInfo.TotalAmount, 2), orderInfo.Consignee, orderInfo.Phone, productName, remark));
                                if (orderInfo.OrderType != 4)//付费的活动不发消息
                                {
                                    if (orderInfo.WebsiteOwner != "jikuwifi")
                                    {
                                        string url = string.Format("http://{0}/customize/shop/?v=1.0&ngroute=/orderDetail/{1}#/orderDetail/{1}", Request.Url.Host, orderInfo.OrderID);
                                        if (orderInfo.IsMain == 1)
                                        {
                                            url = string.Format("http://{0}/customize/shop/?v=1.0&ngroute=/orderList#/orderList", Request.Url.Host);
                                        }
                                        bllWeiXin.SendTemplateMessageNotifyComm(orderUserInfo, "订单已成功支付,我们将尽快发货,请保持手机畅通等待物流送达!", string.Format("订单号:{0}\\n订单金额:{1}元\\n收货人:{2}\\n电话:{3}\\n商品:{4}...\\n查看详情", orderInfo.OrderID, Math.Round(orderInfo.TotalAmount, 2), orderInfo.Consignee, orderInfo.Phone, productName), url);
                                    }
                                }
                            }
                            catch (Exception)
                            {
                            }
                        }
                        else
                        {
                            try
                            {
                                bllWeiXin.SendTemplateMessageToKefu(orderInfo.Status, string.Format("预约:{2}\\n订单号:{0}\\n订单金额:{1}元\\n预约人:{3}\\n预约人手机:{4}", orderInfo.OrderID, orderInfo.TotalAmount, tProductInfo.PName, orderUserInfo.TrueName, orderUserInfo.Phone));
                                bllWeiXin.SendTemplateMessageNotifyComm(orderUserInfo, orderInfo.Status, string.Format("预约:{2}\\n订单号:{0}\\n订单金额:{1}元", orderInfo.OrderID, orderInfo.TotalAmount, tProductInfo.PName));
                            }
                            catch (Exception)
                            {
                            }
                        }
                        #endregion
                        WebsiteInfo websiteInfo = bllMall.Get <WebsiteInfo>(string.Format(" WebsiteOwner='{0}'", orderInfo.WebsiteOwner));
                        #region 分销相关
                        try
                        {
                            if (bllMenuPermission.CheckUserAndPmsKey(websiteInfo.WebsiteOwner, BLLPermission.Enums.PermissionSysKey.OnlineDistribution, websiteInfo.WebsiteOwner))
                            {
                                if (string.IsNullOrWhiteSpace(orderUserInfo.DistributionOwner))
                                {
                                    if (websiteInfo.DistributionRelationBuildMallOrder == 1)
                                    {
                                        orderUserInfo.DistributionOwner = orderInfo.WebsiteOwner;
                                        bllMall.Update(orderUserInfo);
                                    }
                                }
                                bllDis.AutoUpdateLevel(orderInfo);
                                bllDis.TransfersEstimate(orderInfo);
                                bllDis.SendMessageToUser(orderInfo);
                                bllDis.UpdateDistributionSaleAmountUp(orderInfo);
                            }
                        }
                        catch (Exception ex)
                        {
                            Tolog("设置分销员异常:" + ex.Message + " 用户id:" + orderUserInfo.UserID);
                        }
                        #endregion


                        #region 宏巍通知
                        try
                        {
                            if (websiteInfo.IsUnionHongware == 1)
                            {
                                hongWareClient.OrderNotice(orderUserInfo.WXOpenId, orderInfo.OrderID);
                            }
                        }
                        catch (Exception)
                        {
                        }

                        #endregion

                        bllCard.Give(orderInfo.TotalAmount, orderUserInfo);


                        string v1ProductId = Common.ConfigHelper.GetConfigString("YGBV1ProductId");
                        string v2ProductId = Common.ConfigHelper.GetConfigString("YGBV2ProductId");
                        string v1CouponId  = Common.ConfigHelper.GetConfigString("YGBV1CouponId");
                        string v2CouponId  = Common.ConfigHelper.GetConfigString("YGBV2CouponId");

                        List <WXMallOrderDetailsInfo> orderDetailList = bllMall.GetOrderDetailsList(orderInfo.OrderID);
                        foreach (var item in orderDetailList)
                        {
                            item.IsComplete = 1;
                            bllMall.Update(item);

                            #region 购买指定商品发送指定的优惠券
                            if (!string.IsNullOrEmpty(v1ProductId) && !string.IsNullOrEmpty(v1CouponId) && item.PID == v1ProductId)
                            {
                                bllCard.SendCardCouponsByCurrUserInfo(orderUserInfo, v1CouponId);
                            }

                            if (!string.IsNullOrEmpty(v2ProductId) && !string.IsNullOrEmpty(v2CouponId) && item.PID == v2ProductId)
                            {
                                bllCard.SendCardCouponsByCurrUserInfo(orderUserInfo, v2CouponId);
                            }
                            #endregion
                        }

                        //更新销量
                        bllMall.UpdateProductSaleCount(orderInfo);
                        Response.Write(successXml);
                        return;
                    }
                    else
                    {
                        Tolog("更改状态false");
                        Response.Write(failXml);
                        return;
                    }
                }
                Tolog("返回信息有误");
                Response.Write(failXml);
            }
            catch (Exception ex)
            {
                Tolog("出错了:" + ex.Message);
                Response.Write(failXml);
            }
        }
Ejemplo n.º 7
0
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/html";
            try
            {
                // UserInfo distributionOffLineCommendUser = null;//分销推荐人
                //bool isDistributionOffLineApply = false;//是否线下分销申请
                dicPar = bll.GetRequestParameter();
                string weixinOpenID = null; //微信openid
                string activityId   = null; //活动编号
                dicPar.TryGetValue("ActivityID", out activityId);
                string spreadUserId = null;
                dicPar.TryGetValue("SpreadUserID", out spreadUserId);//推广用户的用户名
                string shareUserId = string.Empty;
                dicPar.TryGetValue("ShareUserID", out shareUserId);
                string shareId = string.Empty;
                dicPar.TryGetValue("ShareID", out shareId);
                string strDistinctKeys = null; //检查重复的字段,多个字段用,分隔, //没有此参数默认用手机检查
                dicPar.TryGetValue("DistinctKeys", out strDistinctKeys);
                string monitorPlanID = null;   //监测任务ID
                dicPar.TryGetValue("MonitorPlanID", out monitorPlanID);
                string name = null;            //姓名
                dicPar.TryGetValue("Name", out name);
                string phone = null;           //手机
                dicPar.TryGetValue("Phone", out phone);
                string isSaveUserInfo = string.Empty;
                dicPar.TryGetValue("IsSaveUserInfo", out isSaveUserInfo);

                //activity = bll.Get<ActivityInfo>(string.Format("ActivityID='{0}'", activityId));

                #region IP限制
                //获取用户IP;
                string userHostAddress = context.Request.UserHostAddress;
                var    count           = DataCache.GetCache(userHostAddress);
                if (count != null)
                {
                    int newCount = int.Parse(count.ToString()) + 1;
                    DataCache.SetCache(userHostAddress, newCount);
                    int limitCount = 1000;
                    //if (activity != null)
                    //{

                    //    //limitCount = activity.LimitCount;

                    //}
                    if (newCount >= limitCount)
                    {
                        resp.Status = 14;
                        resp.Msg    = "您的提交过于频繁,请稍后再试";
                        goto outoff;
                    }
                }
                else
                {
                    DataCache.SetCache(userHostAddress, 1, DateTime.MaxValue, new TimeSpan(4, 0, 0));
                }


                #endregion

                #region 判断必填项
                if (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(phone))
                {
                    resp.Status = 3;
                    resp.Msg    = "姓名和手机不能为空!";
                    goto outoff;
                }
                //if ((!Common.ValidatorHelper.PhoneNumLogicJudge(Phone))&&(!Phone.Equals("systemdefault")))//系统缺省手机号不检查
                //{
                //    resp.Status = 5;
                //    resp.Msg = "手机号码无效!";
                //    goto outoff;
                //}
                if (((!phone.StartsWith("1")) || (!phone.Length.Equals(11))) && (!phone.Equals("systemdefault")))//系统缺省手机号不检查
                {
                    resp.Status = 5;
                    resp.Msg    = "手机号码无效!";
                    goto outoff;
                }
                if (string.IsNullOrEmpty(activityId))
                {
                    resp.Status = 6;
                    resp.Msg    = "活动编号不能为空!";
                    goto outoff;
                }

                //手机注册的重复数据
                UserInfo dicUser = bllUser.Get <UserInfo>(string.Format(" WebsiteOwner='{0}' AND Phone='{1}' AND WXOpenId is null ", bllUser.WebsiteOwner, phone));
                if (dicUser != null)
                {
                    dicUser.Phone3 = phone;
                    dicUser.Phone  = "";
                    bllUser.Update(dicUser);
                }



                #endregion

                #region 活动权限验证
                //if (activity == null)
                //{
                //    resp.Status = 7;
                //    resp.Msg = "活动编号不存在!";
                //    goto outoff;
                //}
                //if (activity.ActivityStatus.Equals(0))
                //{
                //    resp.Status = 8;
                //    resp.Msg = "活动已关闭!";
                //    goto outoff;
                //}

                //if (activity.IsDelete.Equals(1))
                //{
                //    resp.Status = -1;
                //    resp.Msg = "活动已删除!";
                //    goto outoff;
                //}
                #endregion

                #region 是否可以报名
                if (bll.IsLogin)
                {
                    currentUserInfo = bll.GetCurrentUserInfo();
                    if (!string.IsNullOrEmpty(currentUserInfo.WXOpenId))
                    {
                        weixinOpenID = currentUserInfo.WXOpenId;
                    }
                }
                juActivityInfo = bll.Get <JuActivityInfo>(string.Format("SignUpActivityID={0}", dicPar["ActivityID"]));
                if (juActivityInfo != null)
                {
                    #region 活动已经停止
                    if (juActivityInfo.IsHide.Equals(1))
                    {
                        resp.Status = 14;
                        resp.Msg    = "活动已停止";
                        goto outoff;
                    }
                    #endregion

                    #region 检查报名人数
                    if (juActivityInfo.MaxSignUpTotalCount > 0)//检查报名人数
                    {
                        if (juActivityInfo.SignUpTotalCount > (juActivityInfo.MaxSignUpTotalCount - 1))
                        {
                            resp.Status = 15;
                            resp.Msg    = "报名人数已满";
                            goto outoff;
                        }
                    }
                    #endregion

                    #region 检查积分
                    if (juActivityInfo.ActivityIntegral > 0)
                    {
                        if (!bll.IsLogin)
                        {
                            resp.Status = 12;
                            resp.Msg    = "此活动必须登录才能报名";
                            goto outoff;
                        }
                        else
                        {
                            if (currentUserInfo.TotalScore < juActivityInfo.ActivityIntegral)
                            {
                                resp.Status = 13;
                                resp.Msg    = "您的积分不足,无法报名";
                                goto outoff;
                            }
                        }
                    }
                    #endregion

                    #region 指定标签的用户可以报名
                    if (!string.IsNullOrEmpty(juActivityInfo.Tags))
                    {
                        if (!bll.IsLogin)
                        {
                            resp.Status = 12;
                            resp.Msg    = "此活动必须登录才能报名";
                            goto outoff;
                        }
                        if (string.IsNullOrEmpty(currentUserInfo.TagName))
                        {
                            resp.Status = 12;
                            resp.Msg    = "此活动只接受特定用户的报名";
                            goto outoff;
                        }
                        bool checkResult = false;
                        foreach (string item in currentUserInfo.TagName.Split(','))
                        {
                            if (juActivityInfo.Tags.Contains(item))
                            {
                                checkResult = true;
                                break;
                            }
                        }
                        if (!checkResult)
                        {
                            resp.Status = 12;
                            resp.Msg    = "此活动只接受特定用户的报名";
                            goto outoff;
                        }
                    }
                    #endregion
                }
                #endregion

                #region 检查自定义必填项
                List <ActivityFieldMappingInfo> requiredFieldList = bll.GetList <ActivityFieldMappingInfo>(string.Format("ActivityID='{0}' And FieldIsNull=1", juActivityInfo.SignUpActivityID));
                if (requiredFieldList.Count > 0)
                {
                    foreach (var requiredField in requiredFieldList)
                    {
                        if (string.IsNullOrEmpty(dicPar.SingleOrDefault(p => p.Key.Equals(string.Format("K{0}", requiredField.ExFieldIndex))).Value))
                        {
                            resp.Status = 11;
                            resp.Msg    = string.Format(" {0} 必填", requiredField.MappingName);
                            goto outoff;
                        }
                    }
                }
                #endregion

                #region 检查数据格式
                //检查数据格式
                List <ActivityFieldMappingInfo> activityFieldMappingList = bll.GetList <ActivityFieldMappingInfo>(string.Format("ActivityID='{0}'", juActivityInfo.SignUpActivityID));
                foreach (var item in activityFieldMappingList)
                {
                    string value = dicPar.SingleOrDefault(p => p.Key.Equals(string.Format("K{0}", item.ExFieldIndex))).Value;

                    if (string.IsNullOrWhiteSpace(value))
                    {
                        continue;
                    }

                    //检查数据格式
                    if (item.FormatValiFunc == "email")//email检查
                    {
                        if (!Common.ValidatorHelper.EmailLogicJudge(value))
                        {
                            resp.Status = 12;
                            resp.Msg    = string.Format("{0}格式不正确", item.MappingName);
                            goto outoff;
                        }
                    }
                    if (item.FormatValiFunc == "url")                                                                                                             //url检查
                    {
                        System.Text.RegularExpressions.Regex regUrl = new System.Text.RegularExpressions.Regex(@"http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?"); //网址
                        System.Text.RegularExpressions.Match match  = regUrl.Match(value);
                        if (!match.Success)
                        {
                            resp.Status = 13;
                            resp.Msg    = string.Format("{0}格式不正确", item.MappingName);
                            goto outoff;
                        }
                    }
                }
                #endregion

                #region 检查是否已经报名

                //if (activityId != bllDis.GetDistributionOffLineApplyActivityID())//线下分销不检查
                //{
                if (!string.IsNullOrEmpty(strDistinctKeys))
                {
                    if (!strDistinctKeys.Equals("none"))//自定义检查重复
                    {
                        System.Text.StringBuilder sbWhere = new System.Text.StringBuilder("1=1 ");
                        string[] distinctKeys             = strDistinctKeys.Split(',');
                        foreach (var item in distinctKeys)
                        {
                            sbWhere.AppendFormat("And {0}='{1}' ", item, dicPar.Single(p => p.Key.Equals(item)).Value);
                        }
                        sbWhere.Append("  and IsDelete = 0  ");
                        if (bll.GetCount <ActivityDataInfo>(sbWhere.ToString()) > 0)
                        {
                            resp.Status = 1;
                            resp.Msg    = "重复的报名!";
                            goto outoff;
                        }
                    }
                    else//不检查重复
                    {
                    }
                }
                else//默认检查
                {
                    if (bll.GetCount <ActivityDataInfo>(string.Format("ActivityID='{0}' And Phone='{1}' and IsDelete = 0 ", activityId, phone)) > 0)
                    {
                        resp.Status = 1;
                        resp.Msg    = "已经报过名了!";
                        goto outoff;
                    }
                }
                //}



                #endregion

                //if (activityId == bllDis.GetDistributionOffLineApplyActivityID())//如果当前活动是分销
                //{
                //    if (bll.GetCount<ActivityDataInfo>(string.Format("ActivityID='{0}' And UserId='{1}' and IsDelete = 0 ", activityId, currentUserInfo.UserID)) > 0)
                //    {
                //        bll.Update(new ActivityDataInfo(), string.Format("IsDelete=1"), string.Format(" ActivityID='{0}' And UserId='{1}'", activityId, currentUserInfo.UserID));
                //    }
                //}

                //#region 检查手机验证码 特殊化
                ////if (ActivityID.Equals("186135"))
                ////{
                ////    string VerCode = HttpContext.Current.Session["SmsVerificationCode"] == null ? "" : HttpContext.Current.Session["SmsVerificationCode"].ToString();
                ////    if (string.IsNullOrEmpty(context.Request["SmsVerificationCode"]))
                ////    {
                ////        resp.Status = 12;
                ////        resp.Msg = "请输入手机验证码";
                ////        goto outoff;


                ////    }
                ////    if (!context.Request["SmsVerificationCode"].ToString().Equals(VerCode))
                ////    {
                ////            resp.Status = 13;
                ////            resp.Msg = "手机验证码不正确";
                ////            goto outoff;
                ////    }
                ////}
                //#endregion

                var newActivityUID       = 1001;
                var lastActivityDataInfo = bll.Get <ActivityDataInfo>(string.Format("ActivityID='{0}' order by UID DESC", activityId));
                if (lastActivityDataInfo != null)
                {
                    newActivityUID = lastActivityDataInfo.UID + 1;
                }
                ActivityDataInfo model = bll.ConvertRequestToModel <ActivityDataInfo>(new ActivityDataInfo());
                model.UID          = newActivityUID;
                model.WeixinOpenID = weixinOpenID;
                model.SpreadUserID = spreadUserId;
                if (spreadUserId == currentUserInfo.UserID)
                {
                    model.SpreadUserID = bll.WebsiteOwner;
                }
                if (!string.IsNullOrEmpty(monitorPlanID))
                {
                    model.MonitorPlanID = int.Parse(monitorPlanID);
                }
                model.ShareUserID  = string.IsNullOrWhiteSpace(shareUserId) ? "" : shareUserId;
                model.ShareID      = string.IsNullOrWhiteSpace(shareId) ? "" : shareId;
                model.WebsiteOwner = bll.WebsiteOwner;
                if (bll.IsLogin)
                {
                    model.UserId = bll.GetCurrUserID();
                }

                //保存分销推荐码
                // model.DistributionOffLineRecommendCode = context.Request["DistributionOffLineRecommendCode"];


                //if (!string.IsNullOrWhiteSpace(model.DistributionOffLineRecommendCode))
                //{
                //    bool isTrueCode = false;
                //    int userAutoId = 0;
                //    if (int.TryParse(model.DistributionOffLineRecommendCode, out userAutoId))
                //    {
                //        distributionOffLineCommendUser = bllUser.GetUserInfoByAutoID(userAutoId);

                //        if (distributionOffLineCommendUser != null)
                //        {
                //            //是站点用户或者是当前站点的分销员才有效
                //            if (bll.WebsiteOwner.ToLower() == distributionOffLineCommendUser.UserID.ToLower())
                //            {
                //                isTrueCode = true;
                //            }
                //            else if (distributionOffLineCommendUser.WebsiteOwner.ToLower() == bll.WebsiteOwner.ToLower() && !string.IsNullOrWhiteSpace(distributionOffLineCommendUser.DistributionOffLinePreUserId))
                //            {
                //                isTrueCode = true;
                //            }
                //        }
                //    }

                //    if (!isTrueCode)
                //    {
                //        resp.Status = 1;
                //        resp.Msg = "不是有效的推荐码";
                //        goto outoff;
                //    }
                //    else
                //    {
                //        isDistributionOffLineApply = true;
                //    }

                //    ToLog("isDistributionOffLineApply:" + isDistributionOffLineApply);

                //}


                if (bll.Add(model))
                {
                    try
                    {
                        //#region 业务分销员申请消息
                        ////发送模板消息跟系统微客服和他的上级
                        //ToLog("isDistributionOffLineApply:" + isDistributionOffLineApply);
                        //if (isDistributionOffLineApply)
                        //{
                        //    ToLog("申请成为财富会员,发送消息给系统管理员");

                        //    //发送消息给他上级
                        //    //bllWeixin.SendTemplateMessageNotifyComm(distributionOffLineCommendUser.WXOpenId, "财富伙伴申请", string.Format("姓名:{0}\\n手机号:{1}", model.Name, model.Phone));

                        //    //发送消息给系统管理员
                        //    // WXKeFu kefuInfo = bllWeixin.GetDefaultKefu();
                        //    //ToLog("客服实体:" + JSONHelper.ObjectToJson(kefuInfo));
                        //    bllWeixin.SendTemplateMessageToKefu(string.Format("用户“{0}”申请成为财富会员", model.Name), string.Format("姓名:{0}\\n手机号:{1}", model.Name, model.Phone));

                        //}
                        //#endregion

                        #region 个人资料补足
                        if (bll.IsLogin)
                        {
                            //个人资料补足
                            bool isEdit = false;
                            isSaveUserInfo = "1";
                            if (string.IsNullOrWhiteSpace(currentUserInfo.TrueName))
                            {
                                isEdit = true;
                                currentUserInfo.TrueName = model.Name;
                            }
                            if (string.IsNullOrWhiteSpace(currentUserInfo.Phone))
                            {
                                isEdit = true;
                                currentUserInfo.Phone = model.Phone;
                            }
                            List <BLLJIMP.Model.ActivityFieldMappingInfo> mapingList = this.bll.GetList <BLLJIMP.Model.ActivityFieldMappingInfo>(string.Format(" ActivityID = '{0}' ", model.ActivityID));

                            foreach (var item in mapingList)
                            {
                                string value = "";
                                if (item.MappingName.IndexOf("邮箱") > -1 || item.MappingName.IndexOf("邮件") > -1 || item.MappingName.ToLower().IndexOf("email") > -1)
                                {
                                    isEdit = true;

                                    value = dicPar.SingleOrDefault(p => p.Key.Equals(string.Format("K{0}", item.ExFieldIndex))).Value;
                                    if (string.IsNullOrWhiteSpace(currentUserInfo.Email))
                                    {
                                        currentUserInfo.Email = value;
                                    }
                                    continue;
                                }

                                if (item.MappingName.IndexOf("职位") > -1)
                                {
                                    isEdit = true;
                                    value  = dicPar.SingleOrDefault(p => p.Key.Equals(string.Format("K{0}", item.ExFieldIndex))).Value;
                                    if (string.IsNullOrWhiteSpace(currentUserInfo.Postion))
                                    {
                                        currentUserInfo.Postion = value;
                                    }
                                    continue;
                                }

                                if (item.MappingName.IndexOf("公司") > -1)
                                {
                                    isEdit = true;
                                    value  = dicPar.SingleOrDefault(p => p.Key.Equals(string.Format("K{0}", item.ExFieldIndex))).Value;
                                    if (value.Length >= 255)
                                    {
                                        resp.Status = 3;
                                        resp.Msg    = "公司名称过长!";
                                        goto outoff;
                                    }
                                    if (string.IsNullOrWhiteSpace(currentUserInfo.Company))
                                    {
                                        currentUserInfo.Company = value;
                                    }
                                    continue;
                                }
                            }


                            if (isEdit)
                            {
                                this.bll.Update(new UserInfo(),
                                                string.Format(" TrueName='{0}',Phone='{1}',Email='{2}',Postion='{3}',Company='{4}'  ",
                                                              currentUserInfo.TrueName,
                                                              currentUserInfo.Phone,
                                                              currentUserInfo.Email,
                                                              currentUserInfo.Postion,
                                                              currentUserInfo.Company
                                                              ),
                                                string.Format(" AutoID = {0} ", this.currentUserInfo.AutoID)
                                                );
                            }

                            //if (isEdit && !string.IsNullOrWhiteSpace(isSaveUserInfo))
                            //{
                            //    if (isSaveUserInfo == "1")
                            //    {
                            //        this.bll.Update(new UserInfo(),
                            //                string.Format(" TrueName='{0}',Phone='{1}',Email='{2}',Postion='{3}',Company='{4}'  ",
                            //                        currentUserInfo.TrueName,
                            //                        currentUserInfo.Phone,
                            //                        currentUserInfo.Email,
                            //                        currentUserInfo.Postion,
                            //                        currentUserInfo.Company
                            //                    ),
                            //                string.Format(" AutoID = {0} ", this.currentUserInfo.AutoID)
                            //            );
                            //    }
                            //}
                            //if (bll.IsLogin)
                            //{
                            //    var websiteInfo = bll.GetWebsiteInfoModelFromDataBase();
                            //    if (websiteInfo.IsSynchronizationData != null)
                            //    {
                            //        if (websiteInfo.IsSynchronizationData.Value == 1)
                            //        {

                            //            bllUser.Update(currentUserInfo);
                            //        }
                            //    }
                            //}
                        }
                        #endregion

                        #region 检查是否向微信客服号发送通知信息

                        if (juActivityInfo != null)
                        {
                            //if (!string.IsNullOrEmpty(juActivityInfo.ActivityNoticeKeFuId))
                            //{

                            //    WXKeFu keFuInfo = bll.Get<WXKeFu>(string.Format("AutoID={0}", juActivityInfo.ActivityNoticeKeFuId));
                            //    if (keFuInfo != null)
                            //    {

                            //        #region 发送模板消息给客服
                            //        if (juActivityInfo.ArticleType != "greetingcard")
                            //        {
                            //            bllWeixin.SendTemplateMessageNotifyComm(keFuInfo.WeiXinOpenID, string.Format("{0}有新的报名", juActivityInfo.ActivityName), string.Format("姓名:{0}\\n手机号:{1}", model.Name, model.Phone));
                            //        }
                            //        #endregion


                            //    }
                            //}

                            #region 发送模板消息给客服
                            if (juActivityInfo.ArticleType != "greetingcard")
                            {
                                bllWeixin.SendTemplateMessageToKefu(string.Format("{0}有新的报名", juActivityInfo.ActivityName), string.Format("姓名:{0}\\n手机号:{1}", model.Name, model.Phone));
                            }
                            #endregion

                            juActivityInfo.SignUpCount = juActivityInfo.SignUpTotalCount + 1;
                            bll.Update(juActivityInfo);
                        }



                        #endregion

                        #region 更新转发表报名数量
                        MonitorLinkInfo linkModel   = bll.Get <MonitorLinkInfo>(string.Format(" MonitorPlanID={0} AND LinkName='{1}' ", monitorPlanID, spreadUserId));
                        int             signupCount = bll.GetCount <ActivityDataInfo>(string.Format("MonitorPlanID={0} And SpreadUserID='{1}' And IsDelete=0", int.Parse(monitorPlanID), spreadUserId));
                        if (linkModel != null)
                        {
                            linkModel.ActivitySignUpCount = signupCount;
                            bll.Update(linkModel);
                        }
                        #endregion

                        //#region 向报名人发送公众号模板消息-仅五步会有效

                        //if (bll.WebsiteOwner == "wubuhui")
                        //{
                        //    if (bllWeixin.IsLogin)
                        //    {
                        //        string accessToken = bllWeixin.GetAccessToken();
                        //        if (accessToken != string.Empty)
                        //        {
                        //            BLLWeixin.TMSignupNotification notificaiton = new BLLWeixin.TMSignupNotification();

                        //            notificaiton.Url = string.Format("http://{0}/WuBuHui/MyCenter/Index.aspx", System.Web.HttpContext.Current.Request.Url.Host);

                        //            notificaiton.TemplateId = "-eJq0w8PEFQRLnWXwqKn73zWvAah6nJxYHgEK3L4Pek";
                        //            notificaiton.First = "恭喜您成功报名我们的活动";
                        //            notificaiton.Keynote1 = juActivityInfo.ActivityName;
                        //            notificaiton.Keynote2 = juActivityInfo.ActivityStartDate.ToString();
                        //            notificaiton.Keynote3 = juActivityInfo.ActivityAddress;
                        //            notificaiton.Remark = "欢迎您届时参加!";
                        //            bllWeixin.SendTemplateMessage(accessToken, currentUserInfo.WXOpenId, notificaiton);

                        //        }
                        //    }
                        //}



                        //#endregion

                        #region 发送模板消息给用户
                        if ((currentUserInfo != null))
                        {
                            if (juActivityInfo.ArticleType != "greetingcard" && juActivityInfo.IsFee == 0)
                            {
                                bllWeixin.SendTemplateMessageNotifyComm(currentUserInfo, string.Format("您已成功报名{0}", juActivityInfo.ActivityName), string.Format("姓名:{0}\\n手机号:{1}", model.Name, model.Phone));
                            }
                            if (juActivityInfo.IsFee == 1)//收费活动
                            {
                                if (model.Amount > 0)
                                {
                                    bllWeixin.SendTemplateMessageNotifyComm(currentUserInfo, string.Format("您已报名{0},该活动收费,请尽快完成支付。", juActivityInfo.ActivityName), "");
                                }
                            }
                        }
                        #endregion

                        #region 微转发自动成为线上分销员
                        if (!string.IsNullOrEmpty(model.SpreadUserID))
                        {
                            if (bll.IsLogin)
                            {
                                try
                                {
                                    WebsiteInfo websiteInfo = bll.GetWebsiteInfoModelFromDataBase();

                                    if (websiteInfo.DistributionRelationBuildSpreadActivity == 1)
                                    {
                                        UserInfo recommentUserInfo = bllUser.GetUserInfo
                                                                         (spreadUserId);
                                        //ActivityInfo disActivityInfo = bll.GetActivityInfoByActivityID(bllDis.GetDistributionOffLineApplyActivityID());
                                        //bllDis.AutoApply(currentUserInfo, activity, disActivityInfo, recommentUserInfo, model);
                                        if (bllUser.IsDistributionMember(recommentUserInfo) || (recommentUserInfo.UserID == websiteInfo.WebsiteOwner))
                                        {
                                            bllDisOnLine.SetUserDistributionOwner(currentUserInfo.UserID, recommentUserInfo.UserID, currentUserInfo.WebsiteOwner);
                                        }
                                    }
                                }
                                catch (Exception ex)
                                {
                                    ToLog(ex.ToString());
                                }
                            }
                        }
                        #endregion

                        juActivityInfo = bllJuactivity.GetJuActivityByActivityID(activityId);
                    }
                    catch (Exception)
                    {
                    }
                    resp.Msg = "提交成功!";
                    //Dictionary<string, object> exObj = new Dictionary<string, object>();
                    //exObj.Add("Activity", Activity);
                    //exObj.Add("ActivityData", model);
                    //exObj.Add("ActivityFieldMapping", activityFieldMapping);
                    //resp.ExObj = exObj;
                    resp.ExInt = model.UID;
                    if (juActivityInfo != null)
                    {
                        resp.ExStr = juActivityInfo.ActivitySignuptUrl;
                    }

                    // 推荐报名活动加积分
                    if (!string.IsNullOrEmpty(spreadUserId))
                    {
                        if (spreadUserId != currentUserInfo.UserID)
                        {
                            UserInfo recommentUserInfo = bllUser.GetUserInfo(spreadUserId);
                            bllUser.AddUserScoreDetail(recommentUserInfo.UserID, CommonPlatform.Helper.EnumStringHelper.ToString(ZentCloud.BLLJIMP.Enums.ScoreDefineType.RecommendSignUpActivityAddScore), recommentUserInfo.WebsiteOwner, null, null);
                        }
                    }

                    #region MyRegion
                    if (!string.IsNullOrEmpty(context.Request["AutoSignIn"]))
                    {
                        if (context.Request["AutoSignIn"].ToString() == "1")
                        {
                            try
                            {
                                WXSignInInfo signInInfo = new WXSignInInfo();
                                signInInfo.SignInUserID = currentUserInfo.UserID;
                                signInInfo.Name         = model.Name;
                                signInInfo.Phone        = model.Phone;
                                signInInfo.JuActivityID = juActivityInfo.JuActivityID;
                                signInInfo.SignInOpenID = currentUserInfo.WXOpenId;
                                signInInfo.SignInTime   = DateTime.Now;
                                //判断是否已经签到过
                                if (!bllJuactivity.Exists(signInInfo, new List <string>()
                                {
                                    "SignInUserID", "JuActivityID"
                                }))
                                {
                                    if (bllJuactivity.Add(signInInfo))
                                    {
                                        bllUser.AddUserScoreDetail(currentUserInfo.UserID, CommonPlatform.Helper.EnumStringHelper.ToString(ZentCloud.BLLJIMP.Enums.ScoreDefineType.SignIn), currentUserInfo.WebsiteOwner, null, null);
                                    }
                                }
                            }
                            catch (Exception)
                            {
                            }
                        }
                    }
                    #endregion


                    goto outoff;
                }
                else
                {
                    resp.Status = 2;
                    resp.Msg    = "报名失败,请重试或联系管理员!";
                    goto outoff;
                }
            }
            catch (Exception ex)
            {
                //using (StreamWriter sw = new StreamWriter(@"C:\log.txt", true, System.Text.Encoding.GetEncoding("gb2312")))
                //{
                //    sw.WriteLine(ex.Data);
                //}
                resp.Status = 10;
                resp.Msg    = "报名失败:" + ex.ToString();
                goto outoff;
                //日志记录
            }
outoff:
            context.Response.Write(Common.JSONHelper.ObjectToJson(resp));
        }
Ejemplo n.º 8
0
        public void ProcessRequest(HttpContext context)
        {
            try
            {
                Tolog("京东支付通知start");
                var    payConfig = bllPay.GetPayConfig();
                byte[] byts      = new byte[context.Request.InputStream.Length];
                context.Request.InputStream.Read(byts, 0, byts.Length);
                string req = Encoding.UTF8.GetString(byts);
                Tolog("通知参数" + req);

                //var jdPubKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCKE5N2xm3NIrXON8Zj19GNtLZ8xwEQ6uDIyrS3S03UhgBJMkGl4msfq4Xuxv6XUAN7oU1XhV3/xtabr9rXto4Ke3d6WwNbxwXnK5LSgsQc1BhT5NcXHXpGBdt7P8NMez5qGieOKqHGvT0qvjyYnYA29a8Z4wzNR7vAVHp36uD5RwIDAQAB";

                //req = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?><jdpay><version>V2.0</version><merchant>110226843002</merchant><result><code>000000</code><desc>success</desc></result><encrypt>MDIxZjNkNjI1YjU1NzQ4MWE5N2ExMTg3YjkxNmQ4NzkxYzQyMmFjZjM4YTM1MjZjY2JjNzM1ZDkxY2Q5ZDNmMTMzMGFjYTBkNTI0MzYzNjc3MTVhODI3OWUzZTAxMmY5ODEyOTVmNDNiNWY5MDZhZGJiYTcwYTYyOTFlYzVmYTU2Y2EyN2U1YzhkNzllMGE3ZTUyNDE4NWU4OWMxNjIwNDFkODcyYzJiZDA4ZWY4YWEyMmY5ZWUxNDk3YTg3MTI3YmU1NTMxNjc5NWJiOTlmN2ZmNGU1MTc1YWJhNjNkYjUzYWUwZDQzOTk4ZjIzMjBiYmVkNGJkMDcxOWUzOThjZjU1ODUwNzM4Y2RiNzM2Njc1N2U2ZTcxN2Q0N2ZiYTZmN2M1YzBiYzRmMjc4ZThiZDNhYTkxZTExNzBiYjg2ZDNjNmQ3OWUyZTBlYjUzZWNlZjFjODQ2MzdiN2E5MTQxN2Y3NmRhZmNkNDdiMzMwNjc1MGRhYjhiYzg0NTFkOWNiY2QyMDZhOTJiYzU2YTFiOWEwMjRmNTZhMWZhNTVhNjlmYTA1ZDFlMmI0YTI4MGE1YTU0N2NlMjc3ZWMwM2QyNWE4ODdlOTA0ZGM3YTY2MDViY2I1OTI5MDBlYWU4MGU0Mzc4MmEwOWY3ZjEwZTk5MGZkOGUzYTA4MzNkNGMyZGZkNWM3MDhkOGU4N2NhMmQyZGM1MDgwYzUyOTg3OGNkMzFhZWRkMTE1NDM5ZjExYTM2OGM2OGE4MGZjZTYyMjJkNzlmODcwNGYyNDMzMTYyZThhZTBkODM2ODBjYzg5ZGRjMWY3ZGVmYzQzYjc4MDZiMDNhMTBmZTc2YjI3MThjYjQ0YjQwZDkyY2E3OGUzYmYzZmFlNjBlOTI4OGU1ODVkNjBjMWZiNDBmMjFjNzVmNDkxYmRkYWFlNzQ0YjZkYmU1ODNkOWQ4OGYwN2EyMDViOWQ5MGNjMzViMTE3MDQ4NWVlNTdlN2Y5MTRhZDM3YzFlODY1NDFiZmQyNDg1MzhlZGZiNDNiZWZmZjY3YmE3NWQ5YjI0MzE4ZDMzMDE5NTE3YWM4ZTJiMDZhZWYyM2NhNjMwODc3MDhkNTdkZWI3MWVhMmY2MzA2ZDliZjBmZGFlNzQ3ODgzODg0ZjVhOWFkODIxYWM0NGQ1ZDlmMGRlNDhkMjBiYTJjYmQ4NTlkMmU3NDMxZDExZmRjMzkxMDU3ZmE3NGE0Yzg2OThkMmY0ZWQ1ZjE3MjIwOWQ1ZTBmZGIzZjFhNGYwOTllZWY5YzRiMWYyZDAxZjlhNzhlYWY5ZjU0YmIyZjczNmUxMjJkNWY2NzhlMDFmYjU0YjY3NWRlYTc1ZWZkNmMwNTJhZmY3ZGVhMGM5NjAyMWQwMGQyMjI2NzdhM2RlNDdhMTdkMWI4ZWQxYmEyYWZlZDg1ZjI4NDk2ZmI2MGVjOTc5OTc4MjgzZTEyNzY2ZmI1OWUzZjY1MWI4OTVlMmQ4OGNlNGRhODg0NzJiNTFiN2RmZDc5NzdkNDk4NTY0NGU4ZjBmNGZjMTM3MmUzMGNhMTUwOTFkNDFhODIzMjZiODU0YjMzNmI1N2EwZDVjMjZjOWNjMzBlMjFjZjNkMDA0NjQ4Zjk0NjQzZWRhOTU1MmIyZjJkYzZjNGJmOTU5MDIzNTBlODlmOTNhZDRhYmEyMzZiY2E1OWE4NzY5Mjc0ZTcwN2MyNGFjNGJmOTU5MDIzNTBlODlmNDNlZGE5NTUyYjJmMmRjNjU0MTNlZjYxZTNlODc4MDk3MmNiYjg3NTVjNmU1NWNlZDljNWU0ZDE5ZTRmZjJjZTAxNmJiMGIzYWFlOTdlYTQzYmM5NWVmMGU0ZjUyNzY4NDNlZGE5NTUyYjJmMmRjNmMyOWRiYWZkYTNjYzQ1M2E3ZGJhZWNjZWJmNGIxZmQ5MTMxMmRiMzliOTU2YzBmNmNiODMxMDQ1ZDBiYjM1ZTNmMzlmMGE0ODNiN2M3ODYyZjNjMTFiN2ZiODljNDNkMjE4NGFlNzU5M2JhMmQ2YTJkOWMwMmYxYTBlNTg2MzhkYzU0NzE0NjExNzkyNGU4ZjQ4NDgzMTAyNDY5OGRlNGZiMDVmNGQzNzE3NGMwOGI2NGU2NjkxMmU2NGY5M2I0YjNiMThmMzZiZmY0NTgwN2FjMDAxOWRlY2ZkYTcyOGFmNzIyZTQwNjhlMTViM2UwMmQzMmRiYjJkOTE2MmQzNWMzZWM2OGRkZjJjMjdmOTRhZGNmYzEzOTdlOWY0NjQwODFiYWU0Y2E3Y2NjZDY0NjQzNGFmZWU4ODExYWRiZTBlY2MwY2JlOThmNDliMDZkYjE2YjNjNTZhOTRiOGZkMDU=</encrypt></jdpay>";

                //req = Regex.Replace(req, @"[\t\n\r]", "", RegexOptions.IgnoreCase);

                req = req.Replace("\r", "").Replace("\n", "").Replace("\t", "");

                AsynNotifyResponse anyResponse = Payment.JDPay.XMLUtil.decryptResXml <AsynNotifyResponse>(Payment.JDPay.Config.JDPubKey, payConfig.JDPayDESKey, req);
                // System.Diagnostics.Debug.WriteLine("异步通知订单号:" + anyResponse.tradeNum + ",状态:" + anyResponse.status);
                Tolog("异步通知订单号:" + anyResponse.tradeNum + ",状态:" + anyResponse.status);
                var orderId   = anyResponse.tradeNum;
                var orderInfo = bllMall.GetOrderInfo(orderId);
                if (orderInfo == null)
                {
                    //context.Response.Write("订单未找到");
                    context.Response.StatusCode = 500;
                    context.Response.Write(failStr);
                    return;
                }
                if (orderInfo.PaymentStatus.Equals(1))
                {
                    //Tolog("已支付");
                    // context.Response.Write("订单已支付");
                    context.Response.StatusCode = 200;
                    context.Response.Write(successStr);
                    return;
                }



                if (anyResponse.status == "2")
                {
                    orderInfo.PaymentType = 3;

                    //支付成功
                    WXMallProductInfo tProductInfo  = new WXMallProductInfo();
                    UserInfo          orderUserInfo = bllUser.GetUserInfo(orderInfo.OrderUserID, orderInfo.WebsiteOwner);//下单用户信息
                    string            hasOrderIDs   = "";
                    int maxCount = 1;
                    //Tolog("准备检查更新订单状态");
                    if (BLLJIMP.BLLMall.bookingList.Contains(orderInfo.ArticleCategoryType))
                    {
                        //Tolog("预订类型");
                        #region 预约订单修改状态
                        orderInfo.PaymentStatus = 1;
                        orderInfo.PayTime       = DateTime.Now;
                        orderInfo.Status        = "预约成功";

                        #region 检查是否有预约成功的订单
                        List <WXMallOrderDetailsInfo> tDetailList = bllMall.GetOrderDetailsList(orderInfo.OrderID, null, orderInfo.ArticleCategoryType, null, null);
                        List <WXMallOrderDetailsInfo> oDetailList = bllMall.GetOrderDetailsList(null, tDetailList[0].PID, orderInfo.ArticleCategoryType, tDetailList.Min(p => p.StartDate), tDetailList.Max(p => p.EndDate));
                        tProductInfo = bllMall.GetByKey <WXMallProductInfo>("PID", tDetailList[0].PID);
                        maxCount     = tProductInfo.Stock;
                        List <string> hasOrderIDList = new List <string>();
                        foreach (var item in tDetailList)
                        {
                            List <WXMallOrderDetailsInfo> hasOrderDetailList = oDetailList.Where(p => !((item.StartDate >= p.EndDate && item.EndDate > p.EndDate) || (item.StartDate < p.StartDate && item.EndDate <= p.StartDate))).ToList();
                            if (hasOrderDetailList.Count >= maxCount)
                            {
                                hasOrderIDList.AddRange(hasOrderDetailList.Select(p => p.OrderID).Distinct());
                            }
                        }
                        hasOrderIDList = hasOrderIDList.Where(p => !p.Contains(orderInfo.OrderID)).ToList();
                        if (hasOrderIDList.Count > 0)
                        {
                            hasOrderIDList = hasOrderIDList.Distinct().ToList();
                            hasOrderIDs    = MyStringHelper.ListToStr(hasOrderIDList, "'", ",");
                        }
                        #endregion 检查是否有预约成功的订单

                        #endregion 预约订单修改状态
                    }
                    else
                    {
                        //Tolog("普通类型");
                        #region 原订单修改状态
                        orderInfo.PaymentStatus = 1;
                        orderInfo.Status        = "待发货";
                        orderInfo.PayTime       = DateTime.Now;
                        Tolog("更改状态start");
                        //if (bllMall.GetWebsiteInfoModelFromDataBase().IsDistributionMall.Equals(1))
                        //{
                        orderInfo.GroupBuyStatus     = "0";
                        orderInfo.DistributionStatus = 1;

                        #region 拼团订单
                        if (orderInfo.OrderType == 2)
                        {
                            try
                            {
                                if (!string.IsNullOrEmpty(orderInfo.GroupBuyParentOrderId))
                                {
                                    var parentOrderInfo = bllMall.GetOrderInfo(orderInfo.GroupBuyParentOrderId);

                                    if (bllMall.GetCount <WXMallOrderInfo>(string.Format("PaymentStatus=1 And GroupBuyParentOrderId='{0}' Or OrderId='{0}'", parentOrderInfo.OrderID)) >= parentOrderInfo.PeopleCount)
                                    {
                                        bllMall.Update(new WXMallOrderInfo(), string.Format("Status='已取消'"), string.Format("  GroupBuyParentOrderId='{0}' And PaymentStatus=0", parentOrderInfo.OrderID));
                                        parentOrderInfo.GroupBuyStatus = "1";
                                        bllMall.Update(parentOrderInfo);
                                    }
                                }
                            }
                            catch (Exception)
                            {
                            }
                        }
                        #endregion

                        #region 活动订单
                        if (orderInfo.OrderType == 4)
                        {
                            ActivityDataInfo data = bllMall.Get <ActivityDataInfo>(string.Format(" OrderId='{0}'", orderInfo.OrderID));
                            if (data != null)
                            {
                                bllMall.Update(data, string.Format(" PaymentStatus=1"), string.Format("  OrderId='{0}'", orderInfo.OrderID));
                            }
                        }
                        #endregion

                        bllMall.Update(orderInfo, string.Format("PaymentStatus=1,Status='待发货',PayTime=GETDATE(),DistributionStatus=1"), string.Format("ParentOrderId='{0}'", orderInfo.OrderID));

                        //}
                        #endregion 原订单修改状态

                        //orderInfo.PayTranNo = tradeNo;
                    }
                    bool result = false;

                    if (BLLJIMP.BLLMall.bookingList.Contains(orderInfo.ArticleCategoryType))
                    {
                        if (string.IsNullOrWhiteSpace(hasOrderIDs))
                        {
                            hasOrderIDs = "'0'";
                        }
                        result = bllMall.Update(new WXMallOrderInfo(),
                                                string.Format("PaymentStatus={0},PayTime=GetDate(),Status='{1}'", 1, "预约成功"),
                                                string.Format("OrderID='{0}' and WebsiteOwner='{4}' AND (select count(1) from [ZCJ_WXMallOrderInfo] where Status='{3}' and WebsiteOwner='{4}' and  OrderID IN({1}))<{2}",
                                                              orderInfo.OrderID, hasOrderIDs, maxCount, "预约成功", bllMall.WebsiteOwner)
                                                ) > 0;
                        if (result)
                        {
                            // #region 交易成功加积分
                            //增加积分 (慧聚不需要)
                            //if (orderInfo.TotalAmount > 0)
                            //{
                            //    ScoreConfig scoreConfig = bllScore.GetScoreConfig();
                            //    int addScore = 0;
                            //    if (scoreConfig != null && scoreConfig.OrderAmount > 0 && scoreConfig.OrderScore > 0)
                            //    {
                            //        addScore = (int)(orderInfo.PayableAmount / (scoreConfig.OrderAmount / scoreConfig.OrderScore));
                            //    }
                            //    if (addScore > 0)
                            //    {
                            //        if (bllUser.Update(new UserInfo(),
                            //            string.Format(" TotalScore+={0},HistoryTotalScore+={0}", addScore),
                            //            string.Format(" UserID='{0}'", orderInfo.OrderUserID)) > 0)
                            //        {
                            //            UserScoreDetailsInfo scoreRecord = new UserScoreDetailsInfo();
                            //            scoreRecord.AddTime = DateTime.Now;
                            //            scoreRecord.Score = addScore;
                            //            scoreRecord.ScoreType = "OrderSuccess";
                            //            scoreRecord.UserID = orderInfo.OrderUserID;
                            //            scoreRecord.AddNote = "预约-交易成功获得积分";
                            //            bllMall.Add(scoreRecord);
                            //        }
                            //    }
                            //}
                            // #endregion

                            #region 修改其他预约订单为预约失败 返还积分

                            if (BLLJIMP.BLLMall.bookingList.Contains(orderInfo.ArticleCategoryType) && !string.IsNullOrWhiteSpace(hasOrderIDs))
                            {
                                int tempCount = 0;
                                List <WXMallOrderInfo> tempList = bllMall.GetOrderList(0, 1, "", out tempCount, "预约成功", null, null, null,
                                                                                       null, null, null, null, null, null, null, orderInfo.ArticleCategoryType, hasOrderIDs);
                                tempCount = tempCount + 1; //加上当前订单的数量
                                if (tempCount >= maxCount)
                                {
                                    tempList = bllMall.GetColOrderListInStatus("'待付款','待审核'", hasOrderIDs, "OrderID,OrderUserID,UseScore", bllMall.WebsiteOwner);
                                    if (tempList.Count > 0)
                                    {
                                        string stopOrderIds = MyStringHelper.ListToStr(tempList.Select(p => p.OrderID).ToList(), "'", ",");
                                        tempList = tempList.Where(p => p.UseScore > 0).ToList();
                                        foreach (var item in tempList)
                                        {
                                            orderUserInfo.TotalScore += item.UseScore;
                                            if (bllUser.Update(new UserInfo(), string.Format(" TotalScore+={0}", item.UseScore),
                                                               string.Format(" UserID='{0}'", item.OrderUserID)) > 0)
                                            {
                                                UserScoreDetailsInfo scoreRecord = new UserScoreDetailsInfo();
                                                scoreRecord.AddTime      = DateTime.Now;
                                                scoreRecord.Score        = item.UseScore;
                                                scoreRecord.TotalScore   = orderUserInfo.TotalScore;
                                                scoreRecord.ScoreType    = "OrderCancel";
                                                scoreRecord.UserID       = item.OrderUserID;
                                                scoreRecord.RelationID   = item.OrderID;
                                                scoreRecord.AddNote      = "预约-订单失败返还积分";
                                                scoreRecord.WebSiteOwner = item.WebsiteOwner;
                                                bllMall.Add(scoreRecord);
                                            }
                                        }
                                        bllMall.Update(new WXMallOrderInfo(),
                                                       string.Format("Status='{0}'", "预约失败"),
                                                       string.Format("OrderID In ({0}) and WebsiteOwner='{1}'", stopOrderIds, bllMall.WebsiteOwner));
                                    }
                                }
                                //Tolog("更改修改其他预约为预约失败");
                            }
                            #endregion
                        }
                    }
                    else
                    {
                        result = bllMall.Update(orderInfo);
                    }
                    if (result)
                    {
                        Open.HongWareSDK.Client hongWareClient = new Open.HongWareSDK.Client(orderInfo.WebsiteOwner);

                        //Tolog("更改状态true");

                        #region Efast同步
                        //判读当前站点是否需要同步到驿氪和efast
                        if (bllCommRelation.ExistRelation(BLLJIMP.Enums.CommRelationType.SyncEfast, bllCommRelation.WebsiteOwner, ""))
                        {
                            try
                            {
                                Tolog("开始同步efast");

                                string outOrderId = string.Empty, msg = string.Empty;
                                var    syncResult = bllEfast.CreateOrder(orderInfo.OrderID, out outOrderId, out msg);
                                if (syncResult)
                                {
                                    orderInfo.OutOrderId = outOrderId;
                                    bllMall.Update(orderInfo);
                                }
                                Tolog(string.Format("efast订单同步结果:{0},订单号:{1},提示信息:{2}", syncResult, outOrderId, msg));
                            }
                            catch (Exception ex)
                            {
                                Tolog("efast订单同步异常:" + ex.Message);
                            }
                        }
                        #endregion

                        #region 驿氪同步
                        if (bllCommRelation.ExistRelation(BLLJIMP.Enums.CommRelationType.SyncYike, bllCommRelation.WebsiteOwner, ""))
                        {
                            try
                            {
                                Tolog("开始同步驿氪");
                                //同步成功订单到驿氪

                                //UserInfo orderUserInfo = bllUser.GetUserInfo(orderInfo.OrderUserID);
                                //if ((!string.IsNullOrEmpty(orderUserInfo.Ex1)) && (!string.IsNullOrEmpty(orderUserInfo.Ex2)) && (!string.IsNullOrEmpty(orderUserInfo.Phone)))
                                //{
                                //    client.BonusUpdate(orderUserInfo.Ex2, -(orderInfo.UseScore), "商城下单使用积分" + orderInfo.UseScore);

                                //}
                                var uploadOrderResult = yikeClient.OrderUpload(orderInfo);

                                Tolog(string.Format("驿氪订单同步结果:{0}", Common.JSONHelper.ObjectToJson(uploadOrderResult)));
                            }
                            catch (Exception ex)
                            {
                                Tolog("驿氪订单同步异常:" + ex.Message);
                            }
                        }
                        #endregion

                        #region 付款加积分
                        try
                        {
                            bllUser.AddUserScoreDetail(orderInfo.OrderUserID, CommonPlatform.Helper.EnumStringHelper.ToString(ZentCloud.BLLJIMP.Enums.ScoreDefineType.OrderPay), bllMall.WebsiteOwner, null, null);
                        }
                        catch (Exception)
                        { }

                        #endregion


                        #region 消息通知
                        if (!BLLJIMP.BLLMall.bookingList.Contains(orderInfo.ArticleCategoryType))
                        {
                            try
                            {
                                var    productName = bllMall.GetOrderDetailsList(orderInfo.OrderID)[0].ProductName;
                                string remark      = "";
                                if (!string.IsNullOrEmpty(orderInfo.OrderMemo))
                                {
                                    remark = string.Format("客户留言:{0}", orderInfo.OrderMemo);
                                }
                                bllWeiXin.SendTemplateMessageToKefu("有新的订单", string.Format("订单号:{0}\\n订单金额:{1}元\\n收货人:{2}\\n电话:{3}\\n商品:{4}\\n{5}", orderInfo.OrderID, orderInfo.TotalAmount, orderInfo.Consignee, orderInfo.Phone, productName, remark));
                                if (orderInfo.OrderType != 4)//付费的活动不发消息
                                {
                                    if (orderInfo.WebsiteOwner != "jikuwifi")
                                    {
                                        string url = string.Format("http://{0}/customize/shop/?v=1.0&ngroute=/orderDetail/{1}#/orderDetail/{1}", context.Request.Url.Host, orderInfo.OrderID);
                                        bllWeiXin.SendTemplateMessageNotifyComm(orderUserInfo, "订单已成功支付,我们将尽快发货,请保持手机畅通等待物流送达!", string.Format("订单号:{0}\\n订单金额:{1}元\\n收货人:{2}\\n电话:{3}\\n商品:{4}...\\n查看详情", orderInfo.OrderID, orderInfo.TotalAmount, orderInfo.Consignee, orderInfo.Phone, productName), url);
                                    }
                                }
                            }
                            catch (Exception)
                            {
                            }
                        }
                        else
                        {
                            try
                            {
                                bllWeiXin.SendTemplateMessageToKefu(orderInfo.Status, string.Format("预约:{2}\\n订单号:{0}\\n订单金额:{1}元\\n预约人:{3}\\n预约人手机:{4}", orderInfo.OrderID, orderInfo.TotalAmount, tProductInfo.PName, orderUserInfo.TrueName, orderUserInfo.Phone));
                                bllWeiXin.SendTemplateMessageNotifyComm(orderUserInfo, orderInfo.Status, string.Format("预约:{2}\\n订单号:{0}\\n订单金额:{1}元", orderInfo.OrderID, orderInfo.TotalAmount, tProductInfo.PName));
                            }
                            catch (Exception)
                            {
                            }
                        }
                        #endregion
                        WebsiteInfo websiteInfo = bllMall.Get <WebsiteInfo>(string.Format(" WebsiteOwner='{0}'", orderInfo.WebsiteOwner));
                        #region 分销相关
                        try
                        {
                            if (bllMenuPermission.CheckUserAndPmsKey(websiteInfo.WebsiteOwner, BLLPermission.Enums.PermissionSysKey.OnlineDistribution, websiteInfo.WebsiteOwner))
                            {
                                if (string.IsNullOrWhiteSpace(orderUserInfo.DistributionOwner))
                                {
                                    if (websiteInfo.DistributionRelationBuildMallOrder == 1)
                                    {
                                        orderUserInfo.DistributionOwner = bllMall.WebsiteOwner;
                                        bllMall.Update(orderUserInfo);
                                    }
                                }

                                bllDis.AutoUpdateLevel(orderInfo);
                                bllDis.TransfersEstimate(orderInfo);
                                bllDis.SendMessageToUser(orderInfo);
                                bllDis.UpdateDistributionSaleAmountUp(orderInfo);
                            }
                        }
                        catch (Exception ex)
                        {
                            Tolog("设置分销员异常:" + ex.Message + " 用户id:" + orderUserInfo.UserID);
                        }
                        #endregion


                        #region 宏巍通知
                        try
                        {
                            if (websiteInfo.IsUnionHongware == 1)
                            {
                                hongWareClient.OrderNotice(orderUserInfo.WXOpenId, orderInfo.OrderID);
                            }
                        }
                        catch (Exception)
                        {
                        }

                        #endregion

                        bllCard.Give(orderInfo.TotalAmount, orderUserInfo);


                        string v1ProductId = Common.ConfigHelper.GetConfigString("YGBV1ProductId");
                        string v2ProductId = Common.ConfigHelper.GetConfigString("YGBV2ProductId");
                        string v1CouponId  = Common.ConfigHelper.GetConfigString("YGBV1CouponId");
                        string v2CouponId  = Common.ConfigHelper.GetConfigString("YGBV2CouponId");

                        List <WXMallOrderDetailsInfo> orderDetailList = bllMall.GetOrderDetailsList(orderInfo.OrderID);
                        foreach (var item in orderDetailList)
                        {
                            item.IsComplete = 1;
                            bllMall.Update(item);
                            #region 购买指定商品发送指定的优惠券
                            if (!string.IsNullOrEmpty(v1ProductId) && !string.IsNullOrEmpty(v1CouponId) && item.PID == v1ProductId)
                            {
                                bllCard.SendCardCouponsByCurrUserInfo(orderUserInfo, v1CouponId);
                            }

                            if (!string.IsNullOrEmpty(v2ProductId) && !string.IsNullOrEmpty(v2CouponId) && item.PID == v2ProductId)
                            {
                                bllCard.SendCardCouponsByCurrUserInfo(orderUserInfo, v2CouponId);
                            }
                            #endregion
                        }
                        //更新销量
                        bllMall.UpdateProductSaleCount(orderInfo);

                        context.Response.StatusCode = 200;
                        context.Response.Write(successStr);
                        Tolog("支付成功" + orderInfo.OrderID);
                        return;
                    }
                    else
                    {
                        Tolog("更改状态false");
                        context.Response.StatusCode = 500;
                        context.Response.Write(failStr);
                        return;
                    }
                }
            }
            catch (Exception ex)
            {
                //error = "fail";
                Tolog("京东支付异常:" + ex.ToString());
            }

            context.Response.ContentType = "text/plain";
            context.Response.StatusCode  = 500;
            context.Response.Write(failStr);
        }
Ejemplo n.º 9
0
        public void ProcessRequest(HttpContext context)
        {
            string userId    = context.Request["user_id"];
            string amountStr = context.Request["amount"];
            string orderSn   = context.Request["order_sn"];

            if (string.IsNullOrEmpty(userId) && string.IsNullOrEmpty(orderSn))
            {
                resp.code = (int)APIErrCode.PrimaryKeyIncomplete;
                resp.msg  = "user_id,order_sn 不能同时为空";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                return;
            }
            if ((!string.IsNullOrEmpty(userId)) && (!string.IsNullOrEmpty(orderSn)))
            {
                resp.code = (int)APIErrCode.PrimaryKeyIncomplete;
                resp.msg  = "user_id,order_sn 不能同时传入";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                return;
            }
            if (string.IsNullOrEmpty(amountStr))
            {
                resp.code = (int)APIErrCode.PrimaryKeyIncomplete;
                resp.msg  = "amount 参数必传";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                return;
            }
            decimal amount = 0;

            if (!decimal.TryParse(amountStr, out amount))
            {
                resp.code = (int)APIErrCode.OperateFail;
                resp.msg  = "amount 参数错误";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                return;
            }
            if (amount <= 0)
            {
                resp.code = (int)APIErrCode.OperateFail;
                resp.msg  = "amount 需大于0";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                return;
            }

            UserInfo        userInfo  = new UserInfo();
            WXMallOrderInfo orderInfo = null;

            if (string.IsNullOrEmpty(userId) && (!string.IsNullOrEmpty(orderSn)))//给指定订单号打款
            {
                orderInfo = bllMall.GetOrderInfoByOutOrderId(orderSn);
                if (orderInfo == null)
                {
                    resp.code = (int)APIErrCode.OperateFail;
                    resp.msg  = "订单号不存在";
                    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                    return;
                }
                if (amount > orderInfo.TotalAmount)
                {
                    resp.code = (int)APIErrCode.OperateFail;
                    resp.msg  = "amount 不能大于订单总金额" + orderInfo.TotalAmount + "元";
                    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                    return;
                }
                userInfo = bllUser.GetUserInfo(orderInfo.OrderUserID);
            }
            else if ((!string.IsNullOrEmpty(userId)) && (string.IsNullOrEmpty(orderSn)))//给指定用户打款
            {
                userInfo = bllUser.GetUserInfo(userId);
            }
            if (userInfo == null)//指定用户不存在
            {
                resp.code = (int)APIErrCode.OperateFail;
                resp.msg  = "指定的用户不存在";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                return;
            }
            if (string.IsNullOrEmpty(userInfo.WXOpenId))
            {
                resp.code = (int)APIErrCode.OperateFail;
                resp.msg  = "用户微信 OpenId不存在";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                return;
            }
            ZentCloud.BLLJIMP.Model.PayConfig payConfig = bllPay.GetPayConfig();
            if (payConfig == null)
            {
                resp.code = (int)APIErrCode.OperateFail;
                resp.msg  = "未配置支付信息";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                return;
            }
            if (string.IsNullOrEmpty(payConfig.WXAppId) || string.IsNullOrEmpty(payConfig.WXMCH_ID) || string.IsNullOrEmpty(payConfig.WXPartnerKey))
            {
                resp.code = (int)APIErrCode.OperateFail;
                resp.msg  = "支付配置信息不完整";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                return;
            }

            Log(string.Format("准备打款:订单号{0}金额{1}", orderInfo.OutOrderId, amountStr));
            string msg            = "";
            string weiXinRefundId = "";//微信退款单号
            string refundNumber   = orderInfo.OutOrderId + System.Math.Round(bllMall.GetTimeStamp(DateTime.Now), 0).ToString();
            bool   isSuccess      = bllPay.WeixinRefund(orderInfo.OrderID, refundNumber, orderInfo.TotalAmount, amount, payConfig.WXAppId, payConfig.WXMCH_ID, payConfig.WXPartnerKey, out msg, out weiXinRefundId);

            if ((!string.IsNullOrEmpty(msg)) && (msg.Contains("请使用可用余额退款")))
            {
                isSuccess = bllPay.WeixinRefundYuEr(orderInfo.OrderID, refundNumber, orderInfo.TotalAmount, amount, payConfig.WXAppId, payConfig.WXMCH_ID, payConfig.WXPartnerKey, out msg, out weiXinRefundId);
            }
            if (isSuccess)
            {
                resp.status = true;
                resp.msg    = "ok";
                if (orderInfo != null)

                {
                    if (orderInfo.Status == "待退押金中")
                    {
                        orderInfo.Ex10   = "";
                        orderInfo.Status = "交易成功";
                    }
                    else
                    {
                        orderInfo.Status = "已取消";
                    }
                    if (orderInfo.IsRefund == 1)
                    {
                        orderInfo.Status   = "已取消";
                        orderInfo.IsRefund = 0;
                        orderInfo.Ex11     = "";
                    }
                    orderInfo.Ex8            = "";
                    orderInfo.Ex9            = "";
                    orderInfo.LastUpdateTime = DateTime.Now;
                    orderInfo.Ex17           = weiXinRefundId;
                    if (!bllMall.Update(orderInfo))
                    {
                        var orderUserInfo = bllUser.GetUserInfo(orderInfo.OrderUserID);
                        if (orderUserInfo != null)
                        {
                            string title   = "您收到打款";
                            string content = string.Format("金额:{0}\\n备注:{1}", amount, orderInfo.Ex14);
                            bllWeixin.SendTemplateMessageNotifyComm(orderUserInfo, title, content);
                        }
                        resp.msg = "更新订单状态失败";
                        Log(string.Format("更新订单状态失败:订单号{0}金额{1}", orderInfo.OutOrderId, amountStr));
                    }
                    Log(string.Format("打款成功:订单号{0}金额{1}", orderInfo.OutOrderId, amountStr));
                }
            }
            else
            {
                resp.code = (int)APIErrCode.OperateFail;
                resp.msg  = msg;
                Log(string.Format("打款失败:订单号{0}金额{1}信息{2}", orderInfo.OutOrderId, amountStr, msg));
            }
            context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
        }
Ejemplo n.º 10
0
        public void ProcessRequest(HttpContext context)
        {
            string orderSn   = context.Request["order_sn"]; //订单号
            string type      = context.Request["type"];     //类型 1 退款 2退押金
            string outSn     = context.Request["out_sn"];   //外部交易号
            string amountStr = context.Request["amount"];   //金额
            string remark    = context.Request["remark"];   //备注
            //decimal amount = 0;

            string title   = "";
            string content = string.Format("订单号:{0}\\n备注:", orderSn);

            if (string.IsNullOrEmpty(orderSn))
            {
                resp.code = (int)APIErrCode.PrimaryKeyIncomplete;
                resp.msg  = "order_sn 参数必传";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                return;
            }
            if (string.IsNullOrEmpty(type))
            {
                resp.code = (int)APIErrCode.PrimaryKeyIncomplete;
                resp.msg  = "type 参数必传";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                return;
            }
            if (string.IsNullOrEmpty(outSn))
            {
                resp.code = (int)APIErrCode.PrimaryKeyIncomplete;
                resp.msg  = "out_sn 参数必传";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                return;
            }
            //if (string.IsNullOrEmpty(amountStr))
            //{
            //    resp.code = (int)APIErrCode.PrimaryKeyIncomplete;
            //    resp.msg = "amount 参数必传";
            //    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
            //    return;
            //}
            //if (string.IsNullOrEmpty(remark))
            //{
            //    resp.code = (int)APIErrCode.PrimaryKeyIncomplete;
            //    resp.msg = "remark 参数必传";
            //    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
            //    return;
            //}
            if (!string.IsNullOrEmpty(remark))
            {
                remark = HttpUtility.UrlDecode(remark);
            }
            //if (!decimal.TryParse(amountStr, out amount))
            //{
            //    resp.code = (int)APIErrCode.OperateFail;
            //    resp.msg = "amount 参数错误,请检查";
            //    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
            //    return;
            //}
            //if (amount <= 0)
            //{
            //    resp.code = (int)APIErrCode.OperateFail;
            //    resp.msg = "amount 参数不能小于等于0";
            //    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
            //    return;
            //}
            var orderInfo = bllMall.GetOrderInfoByOutOrderId(orderSn);

            if (orderInfo == null)
            {
                resp.code = (int)APIErrCode.PrimaryKeyIncomplete;
                resp.msg  = "order_sn 不存在,请检查";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                return;
            }
            orderInfo.OutTranNo = outSn;
            orderInfo.Ex14      = remark;
            //orderInfo.Ex15 = amountStr;//
            orderInfo.LastUpdateTime = DateTime.Now;
            orderInfo.Ex8            = "0";
            orderInfo.Ex9            = "";
            switch (type)
            {
            case "1":
                orderInfo.Ex12 = "1";    //可以退款
                //title = "订单" + orderInfo.OrderID + "可以进行退款啦";
                break;

            case "2":
                orderInfo.Ex13   = "1";  //可以退押金
                orderInfo.Status = "待退押金中";
                title            = "可以退押金啦";
                break;

            default:
                resp.code = (int)APIErrCode.PrimaryKeyIncomplete;
                resp.msg  = "不合法的 type 值";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                return;
            }
            if (bllMall.Update(orderInfo))
            {
                if (type == "2")
                {
                    var orderUserInfo = bllUser.GetUserInfo(orderInfo.OrderUserID);
                    if (orderUserInfo != null && !string.IsNullOrWhiteSpace(orderUserInfo.WXOpenId))
                    {
                        string tbMsg = "可退押金的订单号 " + orderInfo.OrderID;

                        //if (!string.IsNullOrWhiteSpace(amountStr))
                        //{
                        //    tbMsg += "\\n可退金额:" + amountStr;
                        //}
                        string url = string.Empty;

                        if (bllMall.WebsiteOwner == "jikuwifi")
                        {
                            url = string.Format("http://jikuwifi.comeoncloud.net/customize/jikuwifi/Index.aspx?v=1.0&ngroute=/orderDetail/{0}#/orderDetail/{0}", orderInfo.OrderID);
                        }

                        bllWeixin.SendTemplateMessageNotifyComm(orderUserInfo, title, tbMsg, url);
                    }
                }
                //
                resp.msg    = "ok";
                resp.status = true;
            }
            else
            {
                resp.code = (int)APIErrCode.OperateFail;
                resp.msg  = "操作失败";
            }
            //using (System.IO.StreamWriter sw = new System.IO.StreamWriter(@"D:\jikudevlog.txt", true, System.Text.Encoding.GetEncoding("gb2312")))
            //{

            //    sw.WriteLine(string.Format("orderSn{0}type{1}outSn{2}amountStr{3}remark{4}", orderSn, type, outSn, amountStr, remark));
            //    sw.WriteLine(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
            //}

            context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
        }
Ejemplo n.º 11
0
        /// <summary>
        /// 接收活动转赠
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        private string ReceiveActivity(HttpContext context)
        {
            if (currentUserInfo==null)
            {
                resp.Msg = "请在微信中打开";
                return ZentCloud.Common.JSONHelper.ObjectToJson(resp);
            }
            string activityId = context.Request["ActivityId"];//活动ID
            string fromUserAutoId = context.Request["FromUserAutoId"];//赠送用户ID
            JuActivityInfo juActivityInfo = bllJuactivity.GetJuActivityByActivityID(activityId);

            //检查
            if (juActivityInfo == null)
            {
                resp.Msg = "转赠活动不存在";
                return ZentCloud.Common.JSONHelper.ObjectToJson(resp);
            }

            UserInfo fromUserInfo = bllUser.GetUserInfoByAutoID(int.Parse(fromUserAutoId));
            if (fromUserInfo == null)
            {
                resp.Msg = "转赠用户不存在";
                return ZentCloud.Common.JSONHelper.ObjectToJson(resp);
            }
            WXSignInInfo signInfo = bllActivity.Get<WXSignInInfo>(string.Format(" JuActivityID='{0}' And SignInUserID='{1}'", juActivityInfo.JuActivityID, fromUserInfo.UserID));
            if (signInfo!=null)
            {
                resp.Msg = "不能接受此转赠";
                return ZentCloud.Common.JSONHelper.ObjectToJson(resp);
            }
            ActivityDataInfo dataInfo = bllActivity.Get<ActivityDataInfo>(string.Format(" ActivityID='{0}' And UserId='{1}' And IsDelete=0 And OrderId!=''  And PaymentStatus=1", activityId, fromUserInfo.UserID));

            if (dataInfo == null)
            {
                resp.Msg = " 不能接受此转赠";
                return ZentCloud.Common.JSONHelper.ObjectToJson(resp);
            }
            if (fromUserInfo.UserID==currentUserInfo.UserID)
            {
                resp.Msg = "不能接收自己的转赠";
                return ZentCloud.Common.JSONHelper.ObjectToJson(resp);
            }
            if (!string.IsNullOrEmpty(dataInfo.ToUserId))
            {
                if (dataInfo.ToUserId == currentUserInfo.UserID)
                {
                    resp.Msg = " 您已经接收过转赠";
                    return ZentCloud.Common.JSONHelper.ObjectToJson(resp);
                }
                else
                {
                    resp.Msg = " 此活动已经转赠过了";
                    return ZentCloud.Common.JSONHelper.ObjectToJson(resp);
                }
            }
            ActivityDataInfo dataCurrentInfo = bllActivity.Get<ActivityDataInfo>(string.Format(" ActivityID='{0}' And UserId='{1}' And IsDelete=0", activityId,currentUserInfo.UserID));
            if (dataCurrentInfo!=null)
            {
                    resp.Msg = " 您已经报名过此活动,不能再接受转赠";
                    return ZentCloud.Common.JSONHelper.ObjectToJson(resp);
            }

            WXMallOrderInfo fromUserOrderInfo = bllMall.GetOrderInfo(dataInfo.OrderId);
            ZentCloud.ZCBLLEngine.BLLTransaction tran = new ZCBLLEngine.BLLTransaction();
            try
            {
                //订单
                WXMallOrderInfo orderInfo = new WXMallOrderInfo();//订单表
                orderInfo.Consignee = bllUser.GetUserDispalyName(currentUserInfo);
                orderInfo.InsertDate = DateTime.Now;
                orderInfo.OrderUserID = currentUserInfo.UserID;
                orderInfo.Phone = currentUserInfo.Phone;
                orderInfo.WebsiteOwner = bllMall.WebsiteOwner;
                orderInfo.OrderID = bllMall.GetGUID(BLLJIMP.TransacType.AddMallOrder);
                orderInfo.MyCouponCardId = fromUserOrderInfo.MyCouponCardId;
                orderInfo.UseScore = fromUserOrderInfo.UseScore;
                orderInfo.Status = "待发货";
                orderInfo.ArticleCategoryType = "Mall";
                orderInfo.OrderType = 4;
                orderInfo.Ex1 = juActivityInfo.ActivityName;
                orderInfo.Ex2 = orderInfo.Ex2;
                orderInfo.Ex3 = orderInfo.Ex3;
                orderInfo.OrderMemo = orderInfo.OrderMemo;
                orderInfo.TotalAmount = fromUserOrderInfo.TotalAmount;
                orderInfo.PaymentStatus = 1;
                orderInfo.PayTime = DateTime.Now;

                //订单
                if (!bllMall.Add(orderInfo,tran))
                {
                    tran.Rollback();
                    resp.Msg = " 插入订单表失败";
                    return ZentCloud.Common.JSONHelper.ObjectToJson(resp);
                }
                ActivityDataInfo newData = new ActivityDataInfo();
                newData.ActivityID = dataInfo.ActivityID;
                newData.UserId = currentUserInfo.UserID;
                newData.WebsiteOwner = bllUser.WebsiteOwner;
                newData.OrderId =orderInfo.OrderID;
                newData.PaymentStatus = 1;
                newData.Name = bllUser.GetUserDispalyName(currentUserInfo);
                newData.Phone = currentUserInfo.Phone;
                newData.FromUserId = fromUserInfo.UserID;
                newData.InsertDate = DateTime.Now;
                newData.UID = bllJuactivity.Get<ActivityDataInfo>(string.Format(" ActivityID='{0}'  Order By UID DESC",activityId)).UID + 1;
                if (!bllJuactivity.Add(newData, tran))
                {
                    tran.Rollback();
                    resp.Msg = " 插入报名表失败";
                    return ZentCloud.Common.JSONHelper.ObjectToJson(resp);
                }
                dataInfo.ToUserId = currentUserInfo.UserID;
                if (!bllJuactivity.Update(dataInfo,tran))
                {
                    tran.Rollback();
                    resp.Msg = " 转赠失败";
                    return ZentCloud.Common.JSONHelper.ObjectToJson(resp);
                }


                string showName = "活动";
                var config = bllActivity.Get<BLLJIMP.Model.ActivityConfig>(string.Format(" WebsiteOwner='{0}'", bllActivity.WebsiteOwner));
                if (config!=null)
                {
                    if (!string.IsNullOrEmpty(config.ShowName))
                    {
                        showName = config.ShowName;
                    }
                }

                bllWeixin.SendTemplateMessageNotifyComm(fromUserInfo, string.Format("{0}转赠通知",showName), string.Format(" {0}已接收你转赠的{1}{2}", bllUser.GetUserDispalyName(currentUserInfo),showName,juActivityInfo.ActivityName));

                bllWeixin.SendTemplateMessageNotifyComm(currentUserInfo, string.Format("{0}接收通知",showName), string.Format(" 您已接收了{0}转赠的{1}{2}", bllUser.GetUserDispalyName(fromUserInfo), showName,juActivityInfo.ActivityName));
               

                tran.Commit();
                resp.Status = 1;
                resp.Msg = "ok";
            }
            catch (Exception ex)
            {
                resp.Msg = ex.Message;
                tran.Rollback();

            }
            return ZentCloud.Common.JSONHelper.ObjectToJson(resp);

        }