Exemple #1
0
        /// <summary>
        /// 删除微秀
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        private string DeletetWxShowInfos(HttpContext context)
        {
            string ids = context.Request["ids"];

            ZentCloud.ZCBLLEngine.BLLTransaction tran = new ZCBLLEngine.BLLTransaction();
            if (string.IsNullOrEmpty(ids))
            {
                resp.Status = -1;
                resp.Msg    = "请至少选择一条!!!";
                goto Outf;
            }
            int count = bllJuactivity.Delete(new BLLJIMP.Model.WXShowInfo(), string.Format(" AutoId in ({0})", ids), tran);

            bllJuactivity.Delete(new BLLJIMP.Model.WXShowImgInfo(), string.Format(" ShowId in ({0})", ids), tran);
            if (count > 0)
            {
                resp.Status = 0;
                resp.Msg    = "删除成功。";
                tran.Commit();
            }
            else
            {
                resp.Status = 0;
                resp.Msg    = "删除失败。";
                tran.Rollback();
            }

Outf:
            return(Common.JSONHelper.ObjectToJson(resp));
        }
        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        private string Delete(HttpContext context)
        {
            int    promotionActivityId = int.Parse(context.Request["promotion_activity_id"]);
            string productId           = context.Request["product_id"];

            BLLJIMP.Model.PromotionActivity      promotionActivity = bllMall.GetPromotionActivity(promotionActivityId);
            ZentCloud.ZCBLLEngine.BLLTransaction tran = new ZCBLLEngine.BLLTransaction();
            try
            {
                string sql = string.Format(" Update ZCJ_ProductSku Set PromotionStartTime=0,PromotionStopTime=0,PromotionPrice=0,PromotionStock=0,PromotionSaleStock=0 where ProductId in ({0})", productId);
                sql += string.Format(" Update ZCJ_WXMallProductInfo Set PromotionStartTime=0,PromotionStopTime=0,IsPromotionProduct=0,PromotionActivityId=0 where PID in ({0})", productId);
                ZentCloud.ZCBLLEngine.BLLBase.ExecuteSql(sql, tran);
                resp.errmsg = "ok";
                tran.Commit();
            }
            catch (Exception ex)
            {
                resp.errcode = -1;
                resp.errmsg  = ex.Message;
                tran.Rollback();
            }

            bllMall.ClearProductListCacheByWhere(string.Format(" PID in ({0}) ", productId));

            return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
        }
Exemple #3
0
        public void ProcessRequest(HttpContext context)
        {
            string orderId = context.Request["order_id"];
            string cardNum = context.Request["card_num"];

            var orderPay = bllOrder.GetOrderPay(orderId);

            ZentCloud.ZCBLLEngine.BLLTransaction tran = new ZCBLLEngine.BLLTransaction();


            if (bll.Update(new MeifanMyCard(), string.Format(" CardNum='{0}'", cardNum), string.Format("  UserId='{0}' And CardId='{1}' And CardNum!='{2}'", orderPay.UserId, orderPay.RelationId, cardNum), tran) > 0)
            {
                orderPay.Ex3 = cardNum;
                if (bll.Update(orderPay, tran))
                {
                    tran.Commit();
                    apiResp.status = true;
                    apiResp.msg    = "ok";
                }
                else
                {
                    tran.Rollback();
                }
            }
            else
            {
                tran.Rollback();
                apiResp.msg = "操作失败";
            }

            bll.ContextResponse(context, apiResp);
        }
Exemple #4
0
        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        private string Delete(HttpContext context)
        {
            string ids = context.Request["promotion_activity_ids"];

            ///TODO
            ///1.修改SKU表信息
            ///2.修改商品表信息
            ///3.删除特卖活动表信息
            ZentCloud.ZCBLLEngine.BLLTransaction tran = new ZCBLLEngine.BLLTransaction();
            try
            {
                string sql = "";
                sql += string.Format(" Update  ZCJ_ProductSku Set PromotionPrice=0,PromotionStock=0,PromotionSaleStock=0,PromotionStartTime=0,PromotionStopTime=0 where ProductId  in (select PID from ZCJ_WXMallProductInfo where PromotionActivityId in ({0}) And WebSiteOwner='{1}');", ids, bllMall.WebsiteOwner);
                sql += string.Format(" Update ZCJ_WXMallProductInfo Set IsPromotionProduct=0,PromotionStartTime=0,PromotionStopTime=0,PromotionActivityId='' where PromotionActivityId in ({0}) And WebSiteOwner='{1}';", ids, bllMall.WebsiteOwner);
                sql += string.Format(" Delete from ZCJ_PromotionActivity Where ActivityId in ({0}) And WebSiteOwner='{1}';", ids, bllMall.WebsiteOwner);
                ZentCloud.ZCBLLEngine.BLLBase.ExecuteSql(sql, tran);
                tran.Commit();
                resp.errcode = 0;
                resp.errmsg  = "ok";

                bllMall.ClearProductListCacheByWhere(string.Format(" PromotionActivityId in ({0}) ", ids));
            }
            catch (Exception ex)
            {
                tran.Rollback();
                resp.errcode = -1;
                resp.errmsg  = ex.Message;
            }
            return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
        }
Exemple #5
0
        /// <summary>
        /// 更新
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        private string Update(HttpContext context)
        {
            PromotionActivityRequestModel requestModel;

            try
            {
                string data = context.Request["data"];
                requestModel = ZentCloud.Common.JSONHelper.JsonToModel <PromotionActivityRequestModel>(data);
            }
            catch (Exception)
            {
                resp.errcode = 1;
                resp.errmsg  = "json格式错误,请检查。";
                return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
            }

            ZentCloud.ZCBLLEngine.BLLTransaction tran = new ZCBLLEngine.BLLTransaction();
            try
            {
                BLLJIMP.Model.PromotionActivity model = bllMall.Get <BLLJIMP.Model.PromotionActivity>(string.Format(" WebSiteOwner='{0}' And ActivityId={1}", bllMall.WebsiteOwner, requestModel.promotion_activity_id));
                model.ActivityImage         = requestModel.promotion_activity_image;
                model.ActivityName          = requestModel.promotion_activity_name;
                model.ActivitySummary       = requestModel.promotion_activity_summary;
                model.StartTime             = requestModel.promotion_activity_start_time;
                model.StopTime              = requestModel.promotion_activity_stop_time;
                model.Sort                  = requestModel.promotion_activity_sort;
                model.PromotionActivityType = requestModel.promotion_activity_type;
                model.PromotionActivityRule = requestModel.promotion_activity_rule;
                int limitBuyProductCount = 0;
                if (int.TryParse(requestModel.limit_buy_product_count, out limitBuyProductCount))
                {
                    model.LimitBuyProductCount = limitBuyProductCount;
                }

                if (!bllMall.Update(model, tran))
                {
                    resp.errcode = 1;
                    resp.errmsg  = "更新失败";
                    return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                }
                //TODO
                //更新SKU 表时间
                string sql = string.Format(" Update ZCJ_ProductSku Set PromotionStartTime={0},PromotionStopTime={1} where ProductId in( Select PID from ZCJ_WXMallProductInfo where PromotionActivityId={2});", model.StartTime, model.StopTime, model.ActivityId); //更新SKU表
                sql += string.Format(" Update ZCJ_WXMallProductInfo set IsPromotionProduct=1,PromotionStartTime={0},PromotionStopTime={1} where PromotionActivityId={2}", model.StartTime, model.StopTime, model.ActivityId);                                       //更新商品表
                ZentCloud.ZCBLLEngine.BLLBase.ExecuteSql(sql, tran);
                tran.Commit();
                resp.errcode = 0;
                resp.errmsg  = "ok";

                bllMall.ClearProductListCacheByWhere(string.Format(" PromotionActivityId={0} ", model.ActivityId));
            }
            catch (Exception ex)
            {
                resp.errcode = -1;
                resp.errmsg  = ex.Message;
                tran.Rollback();
            }
            return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
        }
Exemple #6
0
        public void ProcessRequest(HttpContext context)
        {
            string       data = context.Request["data"];
            RequestModel requestModel;

            try
            {
                requestModel = ZentCloud.Common.JSONHelper.JsonToModel <RequestModel>(context.Request["data"]);
            }
            catch (Exception)
            {
                apiResp.code = -1;
                apiResp.msg  = "json格式错误,请检查";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }

            if (requestModel.config_list == null || requestModel.config_list == null)
            {
                apiResp.code = -1;
                apiResp.msg  = "配置不能为空,请检查";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }
            ZentCloud.ZCBLLEngine.BLLTransaction tran = new ZCBLLEngine.BLLTransaction();

            try
            {
                foreach (var item in requestModel.config_list)
                {
                    ProductPriceConfig model = new ProductPriceConfig();
                    model.WebsiteOwner = bllMall.WebsiteOwner;
                    model.Date         = item.date;
                    model.Price        = item.price;
                    model.ProductId    = item.product_id;
                    model.SkuId        = item.sku_id;
                    if (!bllMall.Add(model))
                    {
                        tran.Rollback();
                        apiResp.code = -1;
                        apiResp.msg  = "操作失败";
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                        return;
                    }
                }
                tran.Commit();
                apiResp.msg = "ok";
            }
            catch (Exception ex)
            {
                tran.Rollback();
                apiResp.code = -1;
                apiResp.msg  = ex.Message;
            }

            context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
        }
        /// <summary>
        /// 添加
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        private string Add(HttpContext context)
        {
            int    promotionActivityId = int.Parse(context.Request["promotion_activity_id"]);
            string productIds          = context.Request["product_ids"];

            BLLJIMP.Model.PromotionActivity promotionActivity = bllMall.GetPromotionActivity(promotionActivityId);
            if (promotionActivity == null)
            {
                resp.errcode = 1;
                resp.errmsg  = "限时特卖活动不存在,请检查";
                return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
            }
            if (bllMall.GetCount <BLLJIMP.Model.WXMallProductInfo>(string.Format(" PID in ({0}) And WebsiteOwner='{1}' And IsPromotionProduct=0 And (PromotionActivityId=0 Or PromotionActivityId Is NULL)", productIds, bllMall.WebsiteOwner)) != productIds.Split(',').Length)
            {
                resp.errcode = 1;
                resp.errmsg  = "商品ID不存在或商品已经加入限时特卖,请检查";
                return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
            }


            ZentCloud.ZCBLLEngine.BLLTransaction tran = new ZCBLLEngine.BLLTransaction();
            try
            {
                string sql = string.Format(" Update ZCJ_ProductSku Set PromotionStartTime={0},PromotionStopTime={1} where ProductId in({2})", promotionActivity.StartTime, promotionActivity.StopTime, productIds);                                                                        //更新sku表
                sql += string.Format(" Update ZCJ_WXMallProductInfo Set IsPromotionProduct=1, PromotionStartTime={0},PromotionStopTime={1},PromotionActivityId={2} where PID in({3})", promotionActivity.StartTime, promotionActivity.StopTime, promotionActivity.ActivityId, productIds); //更新sku表
                ZentCloud.ZCBLLEngine.BLLBase.ExecuteSql(sql, tran);
                resp.errmsg = "ok";
                tran.Commit();
            }
            catch (Exception ex)
            {
                resp.errcode = -1;
                resp.errmsg  = ex.Message;
                tran.Rollback();
            }

            bllMall.ClearProductListCacheByWhere(string.Format(" PID in ({0}) ", productIds));

            return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
        }
Exemple #8
0
        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        private string DeleteTheVoteInfo(HttpContext context)
        {
            string ids = context.Request["ids"];

            ZentCloud.ZCBLLEngine.BLLTransaction tran = new ZCBLLEngine.BLLTransaction();
            try
            {
                if (string.IsNullOrEmpty(ids))
                {
                    resp.Status = -1;
                    resp.Msg    = "请至少选择一条!!!";
                    goto Outf;
                }
                int count = bllJuActivity.Delete(new BLLJIMP.Model.TheVoteInfo(), string.Format(" AutoId in ({0})", ids), tran);
                bllJuActivity.Delete(new BLLJIMP.Model.DictionaryInfo(), string.Format(" ForeignKey in ({0})", ids), tran);
                if (count > 0)
                {
                    resp.Status = 0;
                    resp.Msg    = "删除成功。";
                    tran.Commit();
                    bllLog.Add(BLLJIMP.Enums.EnumLogType.Marketing, BLLJIMP.Enums.EnumLogTypeAction.Delete, bllLog.GetCurrUserID(), "删除选题投票[id=" + ids + "]");
                }
                else
                {
                    resp.Status = 0;
                    resp.Msg    = "删除失败。";
                    tran.Rollback();
                }
            }
            catch (Exception ex)
            {
                tran.Rollback();
                resp.Status = -1;
                resp.Msg    = ex.Message;
            }
Outf:
            return(Common.JSONHelper.ObjectToJson(resp));
        }
Exemple #9
0
        protected void btnReCharge_Click(object sender, EventArgs e)
        {
            int addPoit = 0;

            if (!int.TryParse(this.txtReCharge.Text, out addPoit))
            {
                this.ShowMessge("输入点数格式必须为数字!");
                this.txtReCharge.Focus();
                return;
            }

            if (addPoit.Equals(0))
            {
                this.ShowMessge("充值点数必须大于0!");
                return;
            }

            UserInfo selectUser = this.userBll.Get <UserInfo>(string.Format(" UserID = '{0}' ", this.ViewState["userID"].ToString()));

            UTransactionInfo trac = new UTransactionInfo();

            trac.UserID    = selectUser.UserID;
            trac.TracMoney = addPoit;
            trac.TracTime  = DateTime.Now;

            switch (this.rdoReCharge.SelectedItem.Text)
            {
            case "短信":
                trac.Tractype      = "addSmsPoit";
                trac.TracNote      = string.Format("短信充值{0}条,操作员{1}", addPoit, Comm.DataLoadTool.GetCurrUserID());
                selectUser.Points += addPoit;
                break;

            case "邮件":
                trac.Tractype           = "addEmailPoit";
                trac.TracNote           = string.Format("邮件充值{0}条,操作员{1}", addPoit, Comm.DataLoadTool.GetCurrUserID());
                selectUser.EmailPoints += addPoit;
                break;

            default:
                break;
            }

            ZentCloud.ZCBLLEngine.BLLTransaction affair = new ZCBLLEngine.BLLTransaction();

            try
            {
                if (!this.userBll.Add(trac, affair))
                {
                    this.ShowMessge("充值失败!");
                    affair.Rollback();
                    return;
                }

                if (!this.userBll.Update(selectUser, affair))
                {
                    this.ShowMessge("充值失败!");
                    affair.Rollback();
                    return;
                }

                affair.Commit();
                this.txtReCharge.Text = "";
                this.ShowMessge("充值成功!");

                this.LoadData();
            }
            catch (Exception ex)
            {
                this.ShowMessge("充值失败:" + ex.Message);
                affair.Commit();
            }
        }
Exemple #10
0
        public void ProcessRequest(HttpContext context)
        {
            string     data       = context.Request["data"];
            decimal    productFee = 0;    //商品总价格
            OrderModel orderRequestModel; //订单模型

            try
            {
                orderRequestModel = ZentCloud.Common.JSONHelper.JsonToModel <OrderModel>(data);
            }
            catch (Exception ex)
            {
                apiResp.code = 1;
                apiResp.msg  = "JSON格式错误,请检查.错误信息:" + ex.Message;
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }
            #region 检查是否可以下单
            if (string.IsNullOrEmpty(orderRequestModel.select_time_type))
            {
                apiResp.code = 1;
                apiResp.msg  = "请选择一种时间预约方式";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }
            int totalHours = 0;                            //预约小时数
            if (orderRequestModel.select_time_type == "0") //直接选择开始时间结束时间方式
            {
                if (string.IsNullOrEmpty(orderRequestModel.start_time) || string.IsNullOrEmpty(orderRequestModel.stop_time))
                {
                    apiResp.code = 1;
                    apiResp.msg  = "请选择开始时间与结束时间";
                    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                    return;
                }
                if (DateTime.Parse(orderRequestModel.start_time) <= DateTime.Now)
                {
                    apiResp.code = 1;
                    apiResp.msg  = "开始时间需要晚于当前时间";
                    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                    return;
                }
                if (DateTime.Parse(orderRequestModel.stop_time) <= DateTime.Parse(orderRequestModel.start_time))
                {
                    apiResp.code = 1;
                    apiResp.msg  = "结束时间需要晚于开始时间";
                    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                    return;
                }

                totalHours = (int)(DateTime.Parse(orderRequestModel.stop_time) - DateTime.Parse(orderRequestModel.start_time)).TotalHours;
            }
            else if (orderRequestModel.select_time_type == "1")//选择某一天的多个时间段的方式
            {
                if (string.IsNullOrEmpty(orderRequestModel.date) || string.IsNullOrEmpty(orderRequestModel.date_time_ranges))
                {
                    apiResp.code = 1;
                    apiResp.msg  = "请选择预约时间段";
                    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                    return;
                }
                if (DateTime.Parse(orderRequestModel.date) <= DateTime.Now)
                {
                    apiResp.code = 1;
                    apiResp.msg  = "开始时间需要晚于当前时间";
                    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                    return;
                }
                totalHours = orderRequestModel.date_time_ranges.Split(';').Count();
            }


            if (!Check(orderRequestModel))
            {
                apiResp.code = 1;
                apiResp.msg  = "您所选的时间段已经被占用,请选择别的时间段";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }
            #endregion



            WXMallOrderInfo orderInfo = new WXMallOrderInfo();//订单表
            orderInfo.OrderID        = bllMall.GetGUID(BLLJIMP.TransacType.AddMallOrder);
            orderInfo.Consignee      = orderRequestModel.receiver_name;
            orderInfo.InsertDate     = DateTime.Now;
            orderInfo.OrderUserID    = CurrentUserInfo.UserID;
            orderInfo.Phone          = orderRequestModel.receiver_phone;
            orderInfo.WebsiteOwner   = bllMall.WebsiteOwner;
            orderInfo.Transport_Fee  = 0;
            orderInfo.OrderMemo      = orderRequestModel.buyer_memo;
            orderInfo.MyCouponCardId = orderRequestModel.cardcoupon_id.ToString();
            orderInfo.UseScore       = orderRequestModel.use_score;
            orderInfo.Status         = "待付款";
            orderInfo.OrderType      = 3;
            orderInfo.Ex3            = orderRequestModel.select_time_type;
            orderInfo.Ex4            = orderRequestModel.start_time;
            orderInfo.Ex5            = orderRequestModel.stop_time;
            orderInfo.Ex6            = orderRequestModel.date;
            orderInfo.Ex7            = orderRequestModel.date_time_ranges;
            orderInfo.LastUpdateTime = DateTime.Now;
            if (!string.IsNullOrEmpty(orderRequestModel.sale_id))//分销ID
            {
                long saleId = 0;
                if (long.TryParse(orderRequestModel.sale_id, out saleId))
                {
                    orderInfo.SellerId = saleId;
                }
            }
            if (orderRequestModel.pay_type == "WEIXIN")//微信支付
            {
                orderInfo.PaymentType = 2;
            }
            else if (orderRequestModel.pay_type == "ALIPAY")//支付宝支付
            {
                orderInfo.PaymentType = 1;
            }

            #region 格式检查
            if (string.IsNullOrEmpty(orderInfo.Consignee))
            {
                apiResp.code = 1;
                apiResp.msg  = "收货人姓名不能为空";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }
            if (string.IsNullOrEmpty(orderRequestModel.receiver_phone))
            {
                apiResp.code = 1;
                apiResp.msg  = "联系手机号不能为空";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }


            if (orderRequestModel.skus == null)
            {
                apiResp.code = 1;
                apiResp.msg  = "skus 参数不能为空";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }

            //相关检查
            #endregion

            #region 商品检查 订单详情生成
            ///订单详情
            List <WXMallOrderDetailsInfo> detailList = new List <WXMallOrderDetailsInfo>();//订单详情
            #region 购买的商品
            List <WXMallProductInfo> productList = new List <WXMallProductInfo>();
            foreach (var sku in orderRequestModel.skus)
            {
                ProductSku        productSku  = bllMall.GetProductSku(sku.sku_id);
                WXMallProductInfo productInfo = bllMall.GetProduct(productSku.ProductId.ToString());
                productList.Add(productInfo);
            }
            productList = productList.Distinct().ToList();
            #endregion
            #region 检查优惠券是否可用
            if (orderRequestModel.cardcoupon_id > 0)
            {
                var mycardCoupon = bllCardCoupon.GetMyCardCoupon(orderRequestModel.cardcoupon_id, CurrentUserInfo.UserID);
                if (mycardCoupon == null)
                {
                    apiResp.code = 1;
                    apiResp.msg  = "无效的优惠券";
                    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp)); return;
                }
                var cardCoupon = bllCardCoupon.GetCardCoupon(mycardCoupon.CardId);
                if (cardCoupon == null)
                {
                    apiResp.code = 1;
                    apiResp.msg  = "无效的优惠券";
                    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp)); return;
                }
                #region 需要购买指定商品
                if ((!string.IsNullOrEmpty(cardCoupon.Ex2)) && (cardCoupon.Ex2 != "0"))
                {
                    if (productList.Count(p => p.PID == cardCoupon.Ex2) == 0)
                    {
                        var productInfo = bllMall.GetProduct(cardCoupon.Ex2);
                        apiResp.code = 1;
                        apiResp.msg  = string.Format("此优惠券需要购买{0}时才可以使用", productInfo.PName);
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp)); return;
                    }
                }


                #endregion

                #region 需要购买指定标签商品
                if (!string.IsNullOrEmpty(cardCoupon.Ex8))
                {
                    if (productList.Where(p => p.Tags == "" || p.Tags == null).Count() == productList.Count)//全部商品都没有标签
                    {
                        apiResp.code = 1;
                        apiResp.msg  = string.Format("使用此优惠券需要购买标签为{0}的商品", cardCoupon.Ex8);
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp)); return;
                    }
                    bool checkResult = false;
                    foreach (var product in productList)
                    {
                        if (!string.IsNullOrEmpty(product.Tags))
                        {
                            foreach (string tag in product.Tags.Split(','))
                            {
                                if (cardCoupon.Ex8.Contains(tag))
                                {
                                    checkResult = true;
                                    break;
                                }
                            }
                        }
                    }
                    if (!checkResult)
                    {
                        apiResp.code = 1;
                        apiResp.msg  = string.Format("使用此优惠券需要购买标签为{0}的商品", cardCoupon.Ex8);
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp)); return;
                    }
                }
                #endregion
            }
            #endregion

            foreach (var sku in orderRequestModel.skus)
            {
                //先检查库存
                ProductSku productSku = bllMall.GetProductSku(sku.sku_id);
                if (productSku == null)
                {
                    apiResp.code = 1;
                    apiResp.msg  = "SKU不存在";
                    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp)); return;
                }
                WXMallProductInfo productInfo = bllMall.GetProduct(productSku.ProductId.ToString());
                if (productInfo.IsOnSale == "0")
                {
                    apiResp.code = 1;
                    apiResp.msg  = string.Format("{0}已下架", productInfo.PName);
                    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                    return;
                }

                WXMallOrderDetailsInfo detailModel = new WXMallOrderDetailsInfo();
                detailModel.OrderID     = orderInfo.OrderID;
                detailModel.PID         = productInfo.PID;
                detailModel.TotalCount  = sku.count;
                detailModel.OrderPrice  = bllMall.GetSkuPrice(productSku) * totalHours;
                detailModel.ProductName = productInfo.PName;
                detailModel.SkuId       = productSku.SkuId;
                detailList.Add(detailModel);
            }
            #endregion
            productFee = detailList.Sum(p => p.OrderPrice * p.TotalCount).Value;   //商品费用
            orderInfo.Transport_Fee = 0;
            orderInfo.Product_Fee   = productFee;
            orderInfo.TotalAmount   = orderInfo.Product_Fee + orderInfo.Transport_Fee;
            #region 优惠券计算
            decimal discountAmount   = 0;//优惠金额
            bool    canUseCardCoupon = false;
            string  msg = "";
            if (orderRequestModel.cardcoupon_id > 0)//有优惠券
            {
                discountAmount = bllMall.CalcDiscountAmount(orderRequestModel.cardcoupon_id.ToString(), data, CurrentUserInfo.UserID, out canUseCardCoupon, out msg);
                if (!canUseCardCoupon)
                {
                    apiResp.code = 1;
                    apiResp.msg  = msg;
                    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp)); return;
                }
                if (discountAmount > productFee)
                {
                    apiResp.code = 1;
                    apiResp.msg  = "优惠券可优惠金额超过了订单总金额";
                    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp)); return;
                }
                orderInfo.CardcouponDisAmount = discountAmount;
            }
            #endregion

            #region 积分计算
            decimal scoreExchangeAmount = 0;///积分抵扣的金额
            //积分计算
            if (orderRequestModel.use_score > 0)
            {
                if (CurrentUserInfo.TotalScore < orderRequestModel.use_score)
                {
                    apiResp.code = 1;
                    apiResp.msg  = "积分不足";
                    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp)); return;
                }
                ScoreConfig scoreConfig = bllScore.GetScoreConfig();
                scoreExchangeAmount = Math.Round(orderRequestModel.use_score / (scoreConfig.ExchangeScore / scoreConfig.ExchangeAmount), 2);
            }



            //积分计算
            #endregion

            #region 合计计算

            orderInfo.TotalAmount  -= discountAmount;        //优惠券优惠金额
            orderInfo.TotalAmount  -= scoreExchangeAmount;   //积分优惠金额
            orderInfo.PayableAmount = orderInfo.TotalAmount; //应付金额
            if ((productFee - discountAmount - scoreExchangeAmount) < orderInfo.TotalAmount)
            {
                apiResp.code = 1;
                apiResp.msg  = "积分兑换金额不能大于订单总金额,请减少积分兑换";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }
            #endregion
            if (orderInfo.TotalAmount < 0)
            {
                apiResp.code = 1;
                apiResp.msg  = "付款金额不能小于0";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }
            if (orderInfo.TotalAmount == 0)
            {
                orderInfo.PaymentStatus = 1;
                orderInfo.PayTime       = DateTime.Now;
                orderInfo.Status        = "待发货";
            }
            ZentCloud.ZCBLLEngine.BLLTransaction tran = new ZCBLLEngine.BLLTransaction();
            try
            {
                if (!this.bllMall.Add(orderInfo, tran))
                {
                    tran.Rollback();
                    apiResp.code = 1;
                    apiResp.msg  = "提交失败";
                    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp)); return;
                }

                #region 更新优惠券使用状态
                //优惠券
                if (orderRequestModel.cardcoupon_id > 0 && (canUseCardCoupon == true))//有优惠券且已经成功使用
                {
                    MyCardCoupons myCardCoupon = bllCardCoupon.GetMyCardCoupon(orderRequestModel.cardcoupon_id, CurrentUserInfo.UserID);
                    myCardCoupon.UseDate = DateTime.Now;
                    myCardCoupon.Status  = 1;
                    if (!bllCardCoupon.Update(myCardCoupon, tran))
                    {
                        tran.Rollback();
                        apiResp.code = 1;
                        apiResp.msg  = "更新优惠券状态失败";
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp)); return;
                    }
                }
                //优惠券
                #endregion

                #region 积分抵扣
                //积分扣除
                if (orderRequestModel.use_score > 0)
                {
                    CurrentUserInfo.TotalScore -= orderRequestModel.use_score;
                    if (bllMall.Update(CurrentUserInfo, string.Format(" TotalScore-={0}", orderRequestModel.use_score), string.Format(" AutoID={0}", CurrentUserInfo.AutoID)) < 0)
                    {
                        tran.Rollback();
                        apiResp.code = 1;
                        apiResp.msg  = "更新用户积分失败";
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp)); return;
                    }
                    //积分记录
                    UserScoreDetailsInfo scoreRecord = new UserScoreDetailsInfo();
                    scoreRecord.AddTime   = DateTime.Now;
                    scoreRecord.Score     = -orderRequestModel.use_score;
                    scoreRecord.ScoreType = "OrderSubmit";
                    scoreRecord.UserID    = CurrentUserInfo.UserID;
                    scoreRecord.AddNote   = "预约使用积分";
                    if (!bllMall.Add(scoreRecord))
                    {
                        tran.Rollback();
                        apiResp.code = 1;
                        apiResp.msg  = "插入积分记录失败";
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                        return;
                    }
                    //积分记录
                }

                //积分扣除
                #endregion

                #region 插入订单详情页
                foreach (var item in detailList)
                {
                    ProductSku        productSku  = bllMall.GetProductSku((int)(item.SkuId));
                    WXMallProductInfo productInfo = bllMall.GetProduct(productSku.ProductId.ToString());
                    if (!this.bllMall.Add(item, tran))
                    {
                        tran.Rollback();
                        apiResp.code = 1;
                        apiResp.msg  = "提交失败";
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp)); return;
                    }
                }
                #endregion

                tran.Commit();//提交订单事务
            }
            catch (Exception ex)
            {
                //回滚事物
                tran.Rollback();
                apiResp.code = 1;
                apiResp.msg  = "提交订单失败,内部错误";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }
            apiResp.status = true;
            apiResp.msg    = "ok";
            apiResp.result = new
            {
                order_id = orderInfo.OrderID
            };
            context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
        }
Exemple #11
0
        /// <summary>
        /// 插入或修改数据
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        private string InsertTheVoteInfo(HttpContext context)
        {
            string autoId             = string.IsNullOrEmpty(context.Request["AutoId"]) ? "0" : context.Request["AutoId"];
            string voteName           = context.Request["VoteName"];
            string isVoteOpen         = context.Request["IsVoteOpen"];
            string votePosition       = context.Request["VotePosition"];
            string answer             = context.Request["Answer"];
            string aotoId             = context.Request["Aid"];
            string voteOverDate       = context.Request["VoteOverDate"];
            string maxSelectItemCount = context.Request["MaxSelectItemCount"];
            string summary            = context.Request["Summary"];
            string thumbnailsPath     = context.Request["ThumbnailsPath"];

            if (string.IsNullOrEmpty(maxSelectItemCount))
            {
                maxSelectItemCount = "0";
            }
            ZentCloud.ZCBLLEngine.BLLTransaction tran = new ZCBLLEngine.BLLTransaction();
            if (string.IsNullOrEmpty(voteName))
            {
                resp.Status = -1;
                resp.Msg    = "请填写完整信息";
                goto OutF;
            }

            BLLJIMP.Model.TheVoteInfo voteInfo = bllJuActivity.Get <BLLJIMP.Model.TheVoteInfo>(" AutoId=" + autoId);
            if (voteInfo != null)
            {
                List <BLLJIMP.Model.DictionaryInfo> dics = new List <BLLJIMP.Model.DictionaryInfo>();
                voteInfo.VoteName           = voteName;
                voteInfo.VoteSelect         = votePosition;
                voteInfo.UserId             = currentUserInfo.UserID;
                voteInfo.websiteOwner       = bll.WebsiteOwner;
                voteInfo.MaxSelectItemCount = int.Parse(maxSelectItemCount);
                voteInfo.TheVoteOverDate    = Convert.ToDateTime(voteOverDate);
                voteInfo.Summary            = summary;
                voteInfo.ThumbnailsPath     = thumbnailsPath;
                if (bllJuActivity.Update(voteInfo, tran))
                {
                    string[] answersArry = answer.Split(',');
                    string[] aotoidArry  = aotoId.Split(',');
                    if (answersArry.Length > 0)
                    {
                        for (int i = 0; i < answersArry.Length; i++)
                        {
                            if (!string.IsNullOrEmpty(answersArry[i]))
                            {
                                if (string.IsNullOrEmpty(aotoidArry[i]))
                                {
                                    bllJuActivity.Add(new BLLJIMP.Model.DictionaryInfo
                                    {
                                        KeyStr     = Guid.NewGuid().ToString(),
                                        ValueStr   = answersArry[i],
                                        ForeignKey = voteInfo.AutoId.ToString()
                                    }, tran);
                                }
                                else
                                {
                                    BLLJIMP.Model.DictionaryInfo model = bll.Get <DictionaryInfo>(string.Format("AutoID={0}", aotoidArry[i]));
                                    if (model != null)
                                    {
                                        model.ValueStr = answersArry[i];
                                        if (bll.Update(model))
                                        {
                                        }
                                    }


                                    //bllJuActivity.Update(new BLLJIMP.Model.DictionaryInfo
                                    //{
                                    //    AutoID = Convert.ToInt32(aotoidArry[i]),
                                    //    KeyStr = Guid.NewGuid().ToString(),
                                    //    ValueStr = answersArry[i],
                                    //    ForeignKey = voteInfo.AutoId.ToString()
                                    //}, tran);
                                }
                            }
                        }
                    }

                    resp.Status = 1;
                    resp.Msg    = "修改成功!!!";
                    tran.Commit();
                    bllLog.Add(BLLJIMP.Enums.EnumLogType.Marketing, BLLJIMP.Enums.EnumLogTypeAction.Update, bllLog.GetCurrUserID(), "编辑选题投票[id=" + autoId + "]");
                }
                else
                {
                    resp.Status = 0;
                    resp.Msg    = "修改失败!!!";
                    tran.Rollback();
                }
            }
            else
            {
                voteInfo = new BLLJIMP.Model.TheVoteInfo
                {
                    VoteName           = voteName,
                    IsVoteOpen         = isVoteOpen,
                    VoteSelect         = votePosition,
                    TheVoteOverDate    = Convert.ToDateTime(voteOverDate),
                    InsetDate          = DateTime.Now,
                    websiteOwner       = bll.WebsiteOwner,
                    UserId             = currentUserInfo.UserID,
                    TheVoteGUID        = this.bllJuActivity.GetGUID(BLLJIMP.TransacType.AddVoteId),
                    MaxSelectItemCount = int.Parse(maxSelectItemCount),
                    Summary            = summary,
                    ThumbnailsPath     = thumbnailsPath
                };
                if (bllJuActivity.Add(voteInfo, tran))
                {
                    tran.Commit();
                    voteInfo = bllJuActivity.Get <BLLJIMP.Model.TheVoteInfo>(string.Format(" VoteName='{0}' and UserId='{1}'", voteName, currentUserInfo.UserID
                                                                                           ));
                    string[] answers = answer.Split(',');
                    if (answers.Length > 0)
                    {
                        for (int i = 0; i < answers.Length; i++)
                        {
                            if (!string.IsNullOrEmpty(answers[i]))
                            {
                                bllJuActivity.Add(new BLLJIMP.Model.DictionaryInfo
                                {
                                    KeyStr     = Guid.NewGuid().ToString(),
                                    ValueStr   = answers[i],
                                    ForeignKey = voteInfo.AutoId.ToString()
                                });
                            }
                        }
                    }
                    resp.Status = 1;
                    resp.Msg    = "添加成功!!!";
                    bllLog.Add(BLLJIMP.Enums.EnumLogType.Marketing, BLLJIMP.Enums.EnumLogTypeAction.Add, bllLog.GetCurrUserID(), "添加选题投票");
                }
                else
                {
                    resp.Status = 0;
                    resp.Msg    = "添加失败!!!";
                    tran.Rollback();
                }
            }

OutF:
            return(Common.JSONHelper.ObjectToJson(resp));
        }
Exemple #12
0
        public void ProcessRequest(HttpContext context)
        {
            WebsiteInfo websiteInfo = bllMall.GetWebsiteInfoModelFromDataBase();

            Open.HongWareSDK.Client     hongWareClient        = new Open.HongWareSDK.Client(websiteInfo.WebsiteOwner);
            Open.HongWareSDK.MemberInfo hongWeiWareMemberInfo = null;
            if (websiteInfo.IsUnionHongware == 1)
            {
                hongWeiWareMemberInfo = hongWareClient.GetMemberInfo(CurrentUserInfo.WXOpenId);
                if (hongWeiWareMemberInfo.member == null)
                {
                    apiResp.code = (int)APIErrCode.OperateFail;
                    apiResp.msg  = "您尚未绑定宏巍账号,请先绑定";
                    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                    return;
                }
            }
            string data = context.Request["data"];

            if (string.IsNullOrEmpty(data))
            {
                apiResp.code = (int)APIErrCode.OperateFail;
                apiResp.msg  = "data 参数必传";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }
            decimal    productFee = 0;    //商品总价格 不包含邮费
            OrderModel orderRequestModel; //订单模型

            try
            {
                orderRequestModel = ZentCloud.Common.JSONHelper.JsonToModel <OrderModel>(data);
            }
            catch (Exception ex)
            {
                apiResp.code = (int)APIErrCode.OperateFail;
                apiResp.msg  = "JSON格式错误,请检查。错误信息:" + ex.Message;
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }
            if (string.IsNullOrEmpty(orderRequestModel.order_id))
            {
                apiResp.code = (int)APIErrCode.OperateFail;
                apiResp.msg  = "order_id 必传";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }



            WXMallOrderInfo parentOrderInfo = bllMall.GetOrderInfo(orderRequestModel.order_id);//父订单

            if (parentOrderInfo == null)
            {
                apiResp.code = (int)APIErrCode.OperateFail;
                apiResp.msg  = "订单不存在";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }
            if (parentOrderInfo.OrderUserID == CurrentUserInfo.UserID)
            {
                apiResp.code = (int)APIErrCode.OperateFail;
                apiResp.msg  = "团长不可以参加";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }
            if (parentOrderInfo.OrderType != 2)
            {
                apiResp.code = (int)APIErrCode.OperateFail;
                apiResp.msg  = "不是拼团订单";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }
            if (!string.IsNullOrEmpty(parentOrderInfo.GroupBuyParentOrderId))
            {
                apiResp.code = (int)APIErrCode.OperateFail;
                apiResp.msg  = "订单无效";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }
            if (parentOrderInfo.PaymentStatus == 0)
            {
                apiResp.code = (int)APIErrCode.OperateFail;
                apiResp.msg  = "团长订单未付款";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }
            if (bllMall.GetCount <WXMallOrderInfo>(string.Format("PaymentStatus=1 And GroupBuyParentOrderId='{0}' Or OrderId='{0}'", parentOrderInfo.OrderID)) >= parentOrderInfo.PeopleCount)
            {
                apiResp.code = (int)APIErrCode.OperateFail;
                apiResp.msg  = "团购人数已满";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }
            if (bllMall.GetCount <WXMallOrderInfo>(string.Format("GroupBuyParentOrderId='{0}' And OrderUserId='{1}' And PaymentStatus=0", parentOrderInfo.OrderID, CurrentUserInfo.UserID)) > 0)
            {
                apiResp.code = (int)APIErrCode.OperateFail;
                apiResp.msg  = "您还有未支付的订单,请先支付";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }
            if (DateTime.Now >= (((DateTime)parentOrderInfo.PayTime).AddDays(parentOrderInfo.ExpireDay)))
            {
                parentOrderInfo.GroupBuyStatus = "2";
                bllMall.Update(parentOrderInfo);
                apiResp.code = (int)APIErrCode.OperateFail;
                apiResp.msg  = "拼团已过期";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }

            #region 分销关系建立
            if (websiteInfo.DistributionRelationBuildMallOrder == 1)
            {
                UserInfo orderUserInfo = bllUser.GetUserInfo(parentOrderInfo.OrderUserID, parentOrderInfo.WebsiteOwner);
                if (bllUser.IsDistributionMember(orderUserInfo))
                {
                    if (string.IsNullOrEmpty(CurrentUserInfo.DistributionOwner))
                    {
                        var setUserDistributionOwnerResult = bllDis.SetUserDistributionOwner(CurrentUserInfo.UserID, orderUserInfo.UserID, CurrentUserInfo.WebsiteOwner);
                        if (setUserDistributionOwnerResult)
                        {
                            CurrentUserInfo.DistributionOwner = orderUserInfo.UserID;
                            CurrentUserInfo.Channel           = orderUserInfo.Channel;
                        }
                    }
                }
            }
            #endregion


            WXMallOrderInfo orderInfo = new WXMallOrderInfo();//订单表
            orderInfo.Address       = orderRequestModel.receiver_address;
            orderInfo.Consignee     = orderRequestModel.receiver_name;
            orderInfo.InsertDate    = DateTime.Now;
            orderInfo.OrderUserID   = CurrentUserInfo.UserID;
            orderInfo.Phone         = orderRequestModel.receiver_phone;
            orderInfo.WebsiteOwner  = bllMall.WebsiteOwner;
            orderInfo.Transport_Fee = 0;
            orderInfo.OrderID       = bllMall.GetGUID(BLLJIMP.TransacType.AddMallOrder);
            if (bllMall.WebsiteOwner != "mixblu")
            {
                orderInfo.OutOrderId = orderInfo.OrderID;
            }
            orderInfo.OrderMemo            = orderRequestModel.buyer_memo;
            orderInfo.ReceiverProvince     = orderRequestModel.receiver_province;
            orderInfo.ReceiverProvinceCode = orderRequestModel.receiver_province_code.ToString();
            orderInfo.ReceiverCity         = orderRequestModel.receiver_city;
            orderInfo.ReceiverCityCode     = orderRequestModel.receiver_city_code.ToString();
            orderInfo.ReceiverDist         = orderRequestModel.receiver_dist;
            orderInfo.ReceiverDistCode     = orderRequestModel.receiver_dist_code.ToString();
            orderInfo.ZipCode               = orderRequestModel.receiver_zip;
            orderInfo.Status                = "待付款";
            orderInfo.OrderType             = 2;
            orderInfo.GroupBuyParentOrderId = parentOrderInfo.OrderID;
            orderInfo.MyCouponCardId        = orderRequestModel.cardcoupon_id.ToString();
            orderInfo.UseScore              = orderRequestModel.use_score;
            orderInfo.UseAmount             = orderRequestModel.use_amount;
            orderInfo.LastUpdateTime        = DateTime.Now;

            if (orderRequestModel.pay_type == "WEIXIN")//微信支付
            {
                orderInfo.PaymentType = 2;
            }
            else if (orderRequestModel.pay_type == "ALIPAY")//支付宝支付
            {
                orderInfo.PaymentType = 1;
            }

            #region 格式检查

            if (string.IsNullOrEmpty(orderInfo.Consignee))
            {
                apiResp.code = (int)APIErrCode.OperateFail;
                apiResp.msg  = "收货人姓名不能为空";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }
            if (string.IsNullOrEmpty(orderInfo.Phone))
            {
                apiResp.code = (int)APIErrCode.OperateFail;
                apiResp.msg  = "收货人联系电话不能为空";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }
            if (string.IsNullOrEmpty(orderInfo.ReceiverProvince))
            {
                apiResp.code = (int)APIErrCode.OperateFail;
                apiResp.msg  = "省份名称不能为空";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }
            if (string.IsNullOrEmpty(orderInfo.ReceiverProvinceCode))
            {
                apiResp.code = (int)APIErrCode.OperateFail;
                apiResp.msg  = "省份代码不能为空";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }
            if (string.IsNullOrEmpty(orderInfo.ReceiverCity))
            {
                apiResp.code = (int)APIErrCode.OperateFail;
                apiResp.msg  = "城市名称不能为空";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }
            if (string.IsNullOrEmpty(orderInfo.ReceiverCityCode))
            {
                apiResp.code = (int)APIErrCode.OperateFail;
                apiResp.msg  = "城市代码不能为空";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }
            if (string.IsNullOrEmpty(orderInfo.ReceiverDist))
            {
                apiResp.code = (int)APIErrCode.OperateFail;
                apiResp.msg  = "城市区域名称不能为空";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }
            if (string.IsNullOrEmpty(orderInfo.ReceiverCityCode))
            {
                apiResp.code = (int)APIErrCode.OperateFail;
                apiResp.msg  = "城市区域代码不能为空";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }
            if (string.IsNullOrEmpty(orderInfo.Address))
            {
                apiResp.code = (int)APIErrCode.OperateFail;
                apiResp.msg  = "收货地址不能为空";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }



            //相关检查
            #endregion


            #region 商品检查 订单详情生成


            var     needUseScore = 0; //必须使用的积分
            decimal needUseCash  = 0; //必须使用的现金

            var parentOrderDetailList = bllMall.GetOrderDetailsList(parentOrderInfo.OrderID);

            //先检查库存
            ProductSku productSku = bllMall.GetProductSku((int)parentOrderDetailList[0].SkuId);
            if (productSku == null)
            {
                apiResp.code = (int)APIErrCode.OperateFail;
                apiResp.msg  = "SKU不存在";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }

            WXMallProductInfo productInfo    = bllMall.GetProduct(productSku.ProductId.ToString());
            string            cardCouponType = "";//优惠券类型

            #region 检查优惠券是否可用
            if (orderRequestModel.cardcoupon_id > 0)
            {
                var mycardCoupon = bllCardCoupon.GetMyCardCoupon(orderRequestModel.cardcoupon_id, CurrentUserInfo.UserID);
                if (mycardCoupon == null)
                {
                    apiResp.code = (int)APIErrCode.OperateFail;
                    apiResp.msg  = "无效的优惠券";
                    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                    return;
                }
                var cardCoupon = bllCardCoupon.GetCardCoupon(mycardCoupon.CardId);
                if (cardCoupon == null)
                {
                    apiResp.code = (int)APIErrCode.OperateFail;
                    apiResp.msg  = "无效的优惠券";
                    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                    return;
                }
                cardCouponType = cardCoupon.CardCouponType;
                #region 需要购买指定商品
                if ((!string.IsNullOrEmpty(cardCoupon.Ex2)) && (cardCoupon.Ex2 != "0"))
                {
                    if (productInfo.PID != cardCoupon.Ex2)
                    {
                        var productInfoCard = bllMall.GetProduct(cardCoupon.Ex2);
                        apiResp.code = (int)APIErrCode.OperateFail;
                        apiResp.msg  = string.Format("此优惠券需要购买{0}时才可以使用", productInfoCard.PName);
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                        return;
                    }
                }
                #endregion

                #region 需要购买指定标签商品
                if (!string.IsNullOrEmpty(cardCoupon.Ex8))
                {
                    if (string.IsNullOrEmpty(productInfo.Tags))//全部商品都没有标签
                    {
                        apiResp.code = (int)APIErrCode.OperateFail;
                        apiResp.msg  = string.Format("使用此优惠券需要购买标签为{0}的商品", cardCoupon.Ex8);
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                        return;
                    }
                    bool checkResult = true;

                    if (!string.IsNullOrEmpty(productInfo.Tags))
                    {
                        bool tempResult = false;
                        foreach (string tag in productInfo.Tags.Split(','))
                        {
                            if (cardCoupon.Ex8.Contains(tag))
                            {
                                tempResult = true;
                                break;
                            }
                        }
                        if (!tempResult)
                        {
                            checkResult = false;
                        }
                    }
                    else//商品不包含标签
                    {
                        checkResult = false;
                    }
                    if (!checkResult)
                    {
                        apiResp.code = (int)APIErrCode.OperateFail;
                        apiResp.msg  = string.Format("使用此优惠券需要购买标签为{0}的商品", cardCoupon.Ex8);
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                        return;
                    }
                }
                #endregion
            }
            #endregion


            if (productInfo.IsOnSale == "0")
            {
                apiResp.code = (int)APIErrCode.OperateFail;
                apiResp.msg  = string.Format("{0}已下架", productInfo.PName);
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }
            if (productSku.Stock < 1)
            {
                apiResp.code = (int)APIErrCode.OperateFail;
                apiResp.msg  = string.Format("{0}{1}库存余量为{2},库存不足", productInfo.PName, bllMall.GetProductShowProperties(productSku.SkuId), productSku.Stock);
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }

            if (productInfo.Score > 0)//必须使用的积分
            {
                needUseScore = productInfo.Score;
            }
            if (productInfo.IsCashPayOnly == 1)                                                                            //必须使用的现金
            {
                needUseCash = Math.Round((decimal)(productSku.Price * (decimal)(parentOrderInfo.MemberDiscount / 10)), 2); //四舍五入
            }

            WXMallOrderDetailsInfo detailModel = new WXMallOrderDetailsInfo();
            detailModel.OrderID     = orderInfo.OrderID;
            detailModel.PID         = productInfo.PID;
            detailModel.TotalCount  = 1;
            detailModel.OrderPrice  = Math.Round((decimal)(productSku.Price * (decimal)(parentOrderInfo.MemberDiscount / 10)), 2);//四舍五入
            detailModel.ProductName = productInfo.PName;
            detailModel.SkuId       = productSku.SkuId;
            detailModel.SkuShowProp = bllMall.GetProductShowProperties(productSku.SkuId);
            detailModel.IsComplete  = 1;//拼团的只要下单就算销量


            #endregion
            #region 纯积分购买
            if (needUseScore > 0)
            {
                if ((CurrentUserInfo.TotalScore < needUseScore) || (orderRequestModel.use_score < needUseScore))
                {
                    apiResp.code = (int)APIErrCode.OperateFail;
                    apiResp.msg  = string.Format("您需要使用{0}积分来兑换, 可用积分不足", needUseScore);
                    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                    return;
                }
            }
            #endregion



            productFee = (decimal)detailModel.OrderPrice;
            //物流费用
            #region 运费计算

            List <SkuModel> skus = new List <SkuModel>();
            skus.Add(new SkuModel
            {
                sku_id = productSku.SkuId,
                count  = 1
            });
            FreightModel freightModel = new FreightModel();
            freightModel.receiver_province_code = orderRequestModel.receiver_province_code;
            freightModel.receiver_city_code     = orderRequestModel.receiver_city_code;
            freightModel.receiver_dist_code     = orderRequestModel.receiver_dist_code;
            freightModel.skus = skus;
            decimal freight    = 0;//运费
            string  freightMsg = "";
            if (!bllMall.CalcFreight(freightModel, out freight, out freightMsg))
            {
                apiResp.code = (int)APIErrCode.OperateFail;
                apiResp.msg  = freightMsg;
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp)); return;
            }
            orderInfo.Transport_Fee = freight;
            #endregion

            #region 优惠券计算

            decimal discountAmount   = 0;//优惠金额
            bool    canUseCardCoupon = false;
            string  msg = "";
            if (orderRequestModel.cardcoupon_id > 0)//有优惠券
            {
                discountAmount = bllMall.CalcDiscountAmount(orderRequestModel.cardcoupon_id.ToString(), data, CurrentUserInfo.UserID, out canUseCardCoupon, out msg);
                if (!canUseCardCoupon)
                {
                    apiResp.code = (int)APIErrCode.OperateFail;
                    apiResp.msg  = msg;
                    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                    return;
                }
                if (cardCouponType == "MallCardCoupon_FreeFreight")//免邮券
                {
                    orderInfo.Transport_Fee = 0;
                }
            }
            //优惠券计算
            #endregion


            #region 积分计算
            decimal scoreExchangeAmount = 0;///积分抵扣的金额
            //积分计算
            if (orderRequestModel.use_score > 0)
            {
                #region 使用宏巍积分
                if (websiteInfo.IsUnionHongware == 1)
                {
                    CurrentUserInfo.TotalScore = hongWeiWareMemberInfo.member.point;
                }
                #endregion
                orderInfo.UseScore = orderRequestModel.use_score;
                if (CurrentUserInfo.TotalScore < orderRequestModel.use_score)
                {
                    apiResp.code = (int)APIErrCode.OperateFail;
                    apiResp.msg  = "积分不足";
                    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp)); return;
                }

                ScoreConfig scoreConfig = bllScore.GetScoreConfig();
                if (scoreConfig != null && scoreConfig.ExchangeAmount > 0)
                {
                    scoreExchangeAmount = Math.Round(orderRequestModel.use_score / (scoreConfig.ExchangeScore / scoreConfig.ExchangeAmount), 2);
                }
                //scoreExchangeAmount = Math.Round(orderRequestModel.use_score / (scoreConfig.ExchangeScore / scoreConfig.ExchangeAmount), 2);
            }



            //积分计算
            #endregion

            #region 使用账户余额
            if (orderRequestModel.use_amount > 0)
            {
                if (!bllMall.IsEnableAccountAmountPay())
                {
                    apiResp.msg = "尚未启用余额支付功能";
                    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                    return;
                }
                #region 使用宏巍余额
                if (websiteInfo.IsUnionHongware == 1)
                {
                    CurrentUserInfo.AccountAmount = (decimal)hongWeiWareMemberInfo.member.balance;
                }
                #endregion
                if (CurrentUserInfo.AccountAmount < orderRequestModel.use_amount)
                {
                    apiResp.code = (int)APIErrCode.OperateFail;
                    apiResp.msg  = "您的账户余额不足";
                    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                    return;
                }
            }
            #endregion

            //合计计算
            orderInfo.Product_Fee   = productFee;
            orderInfo.TotalAmount   = orderInfo.Product_Fee + orderInfo.Transport_Fee;
            orderInfo.TotalAmount  -= discountAmount;                  //优惠券优惠金额
            orderInfo.TotalAmount  -= scoreExchangeAmount;             //积分优惠金额
            orderInfo.TotalAmount  -= orderRequestModel.use_amount;    //余额
            orderInfo.PayableAmount = orderInfo.TotalAmount - freight; //应付金额

            orderInfo.HeadDiscount          = parentOrderInfo.HeadDiscount;
            orderInfo.MemberDiscount        = parentOrderInfo.MemberDiscount;
            orderInfo.PeopleCount           = parentOrderInfo.PeopleCount;
            orderInfo.ExpireDay             = parentOrderInfo.ExpireDay;
            orderInfo.GroupBuyParentOrderId = parentOrderInfo.OrderID;

            orderInfo.ScoreExchangAmount  = scoreExchangeAmount; //优惠券抵扣金额
            orderInfo.CardcouponDisAmount = discountAmount;      //卡券抵扣金额

            if (orderInfo.TotalAmount <= 0)
            {
                orderInfo.TotalAmount   = 0;
                orderInfo.PaymentStatus = 1;
                orderInfo.PayTime       = DateTime.Now;
                orderInfo.Status        = "待发货";
            }
            if (orderInfo.TotalAmount < needUseCash)
            {
                apiResp.code = (int)APIErrCode.OperateFail;
                apiResp.msg  = string.Format("最少需要支付{0}元" + needUseCash);
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }
            ZentCloud.ZCBLLEngine.BLLTransaction tran = new ZCBLLEngine.BLLTransaction();
            try
            {
                if (!this.bllMall.Add(orderInfo, tran))
                {
                    tran.Rollback();
                    apiResp.code = (int)APIErrCode.OperateFail;
                    apiResp.msg  = "提交失败";
                    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                    return;
                }

                #region 更新优惠券使用状态
                //优惠券
                if (orderRequestModel.cardcoupon_id > 0 && (canUseCardCoupon == true))//有优惠券且已经成功使用
                {
                    MyCardCoupons myCardCoupon = bllCardCoupon.GetMyCardCoupon(orderRequestModel.cardcoupon_id, CurrentUserInfo.UserID);
                    myCardCoupon.UseDate = DateTime.Now;
                    myCardCoupon.Status  = 1;
                    if (!bllCardCoupon.Update(myCardCoupon, tran))
                    {
                        tran.Rollback();
                        apiResp.code = (int)APIErrCode.OperateFail;
                        apiResp.msg  = "更新优惠券状态失败";
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                        return;
                    }
                }
                //优惠券
                #endregion

                #region 积分抵扣
                //积分扣除
                if (orderRequestModel.use_score > 0)
                {
                    CurrentUserInfo.TotalScore -= orderRequestModel.use_score;
                    if (bllMall.Update(CurrentUserInfo, string.Format(" TotalScore-={0}", orderRequestModel.use_score), string.Format(" AutoID={0}", CurrentUserInfo.AutoID), tran) < 0)
                    {
                        tran.Rollback();
                        apiResp.code = (int)APIErrCode.OperateFail;
                        apiResp.msg  = "更新用户积分失败";
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                        return;
                    }

                    //积分记录
                    UserScoreDetailsInfo scoreRecord = new UserScoreDetailsInfo();
                    scoreRecord.AddTime      = DateTime.Now;
                    scoreRecord.Score        = -orderRequestModel.use_score;
                    scoreRecord.TotalScore   = CurrentUserInfo.TotalScore;
                    scoreRecord.ScoreType    = "OrderSubmit";
                    scoreRecord.UserID       = CurrentUserInfo.UserID;
                    scoreRecord.AddNote      = "微商城-参加团购使用积分";
                    scoreRecord.WebSiteOwner = CurrentUserInfo.WebsiteOwner;
                    if (!bllMall.Add(scoreRecord, tran))
                    {
                        tran.Rollback();
                        apiResp.code = (int)APIErrCode.OperateFail;
                        apiResp.msg  = "插入积分记录失败";
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                        return;
                    }
                    #region 更新宏巍积分
                    if (websiteInfo.IsUnionHongware == 1)
                    {
                        if (!hongWareClient.UpdateMemberScore(hongWeiWareMemberInfo.member.mobile, CurrentUserInfo.WXOpenId, -orderRequestModel.use_score))
                        {
                            tran.Rollback();
                            apiResp.code = (int)APIErrCode.OperateFail;
                            apiResp.msg  = "更新宏巍积分失败";
                            context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                            return;
                        }
                    }
                    #endregion
                }

                //积分扣除
                #endregion

                #region 余额抵扣

                if (orderRequestModel.use_amount > 0 && bllMall.IsEnableAccountAmountPay())
                {
                    CurrentUserInfo.AccountAmount -= orderRequestModel.use_amount;
                    if (bllMall.Update(CurrentUserInfo, string.Format(" AccountAmount={0}", CurrentUserInfo.AccountAmount), string.Format(" AutoID={0}", CurrentUserInfo.AutoID)) < 0)
                    {
                        tran.Rollback();
                        apiResp.code = (int)APIErrCode.OperateFail;
                        apiResp.msg  = "更新用户余额失败";
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                        return;
                    }


                    UserScoreDetailsInfo scoreRecord = new UserScoreDetailsInfo();
                    scoreRecord.AddTime      = DateTime.Now;
                    scoreRecord.Score        = -(double)orderRequestModel.use_amount;
                    scoreRecord.TotalScore   = (double)CurrentUserInfo.AccountAmount;
                    scoreRecord.UserID       = CurrentUserInfo.UserID;
                    scoreRecord.AddNote      = "拼团-参团使用余额";
                    scoreRecord.RelationID   = orderInfo.OrderID;
                    scoreRecord.WebSiteOwner = bllUser.WebsiteOwner;
                    scoreRecord.ScoreType    = "AccountAmount";
                    if (!bllMall.Add(scoreRecord))
                    {
                        tran.Rollback();
                        apiResp.code = (int)APIErrCode.OperateFail;
                        apiResp.msg  = "插入余额记录失败";
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                        return;
                    }

                    UserCreditAcountDetails record = new UserCreditAcountDetails();
                    record.WebsiteOwner = bllUser.WebsiteOwner;
                    record.Operator     = CurrentUserInfo.UserID;
                    record.UserID       = CurrentUserInfo.UserID;
                    record.CreditAcount = -orderRequestModel.use_amount;
                    record.SysType      = "AccountAmount";
                    record.AddTime      = DateTime.Now;
                    record.AddNote      = "账户余额变动-" + orderRequestModel.use_amount;
                    if (!bllMall.Add(record))
                    {
                        tran.Rollback();
                        apiResp.code = (int)APIErrCode.OperateFail;
                        apiResp.msg  = "插入余额记录失败";
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                        return;
                    }
                    #region 更新宏巍余额
                    if (websiteInfo.IsUnionHongware == 1)
                    {
                        if (!hongWareClient.UpdateMemberBlance(hongWeiWareMemberInfo.member.mobile, CurrentUserInfo.WXOpenId, -(float)orderRequestModel.use_amount))
                        {
                            tran.Rollback();
                            apiResp.code = (int)APIErrCode.OperateFail;
                            apiResp.msg  = "更新宏巍余额失败";
                            context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                            return;
                        }
                    }
                    #endregion
                }


                #endregion

                #region 插入订单详情表及更新库存

                if (!this.bllMall.Add(detailModel, tran))
                {
                    tran.Rollback();
                    apiResp.code = (int)APIErrCode.OperateFail;
                    apiResp.msg  = "提交失败";
                    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                    return;
                }
                //更新 SKU库存
                System.Text.StringBuilder sbUpdateStock = new StringBuilder();//更新库存sql
                sbUpdateStock.AppendFormat(" Update ZCJ_ProductSku Set Stock-={0} ", 1);
                sbUpdateStock.AppendFormat(" Where SkuId={0} And Stock>0 ", productSku.SkuId);
                if (ZentCloud.ZCBLLEngine.BLLBase.ExecuteSql(sbUpdateStock.ToString(), tran) <= 0)
                {
                    tran.Rollback();
                    apiResp.code = (int)APIErrCode.OperateFail;
                    apiResp.msg  = "提交订单失败,库存不足";
                    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                    return;
                }

                #endregion

                tran.Commit();//提交订单事务
                #region 宏巍通知
                if (websiteInfo.IsUnionHongware == 1)
                {
                    hongWareClient.OrderNotice(CurrentUserInfo.WXOpenId, orderInfo.OrderID);
                }
                #endregion
                try
                {
                    //团购完成取消其它未付款订单
                    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);
                        }
                    }

                    #region 微信模板消息
                    string title = "订单已成功提交";
                    if (orderInfo.TotalAmount > 0)
                    {
                        title += ",请尽快付款";
                    }
                    bllWeiXin.SendTemplateMessageNotifyComm(CurrentUserInfo, title, string.Format("订单号:{0}\\n订单金额:{1}元\\n收货人:{2}\\n电话:{3}", orderInfo.OrderID, orderInfo.TotalAmount, orderInfo.Consignee, orderInfo.Phone));
                    #endregion
                }
                catch
                {
                }
            }
            catch (Exception ex)
            {
                //回滚事物
                tran.Rollback();
                apiResp.code = (int)APIErrCode.OperateFail;
                apiResp.msg  = "提交订单失败";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                return;
            }
            apiResp.status = true;
            apiResp.msg    = "ok";
            apiResp.result = new
            {
                order_id = orderInfo.OrderID
            };
            context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
        }
Exemple #13
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="curUser"></param>
        /// <param name="author"></param>
        /// <param name="activity"></param>
        /// <returns></returns>
        public bool RewardJuActivity(UserInfo curUser, UserInfo author, JuActivityInfo activity, double score, string websiteOwner, out string msg,
                                     string scoreName = "积分", string actionName = "赠送")
        {
            msg = "";
            msg = string.Format("{0}{1}完成", actionName, scoreName);

            if (author == null && activity == null)
            {
                msg = string.Format("{0}目标不能为空", actionName);
                return(false);
            }
            DateTime        curTime         = DateTime.Now;
            BLLSystemNotice bllSystemNotice = new BLLSystemNotice();
            BLLUser         bllUser         = new BLLUser();

            UserScoreDetailsInfo scoreModel = new UserScoreDetailsInfo();

            #region 打赏明细
            scoreModel.Score        = 0 - score;
            scoreModel.ScoreType    = "Reward";
            scoreModel.UserID       = curUser.UserID;
            scoreModel.WebSiteOwner = websiteOwner;
            scoreModel.AddTime      = curTime;
            scoreModel.AddNote      = string.Format("{0}消耗{1}", actionName, scoreName);
            if (activity != null)
            {
                scoreModel.RelationID = activity.JuActivityID.ToString();
            }
            if (author != null)
            {
                scoreModel.Ex1 = author.AutoID.ToString();
            }
            #endregion

            SystemNotice systemNotice = new SystemNotice();
            #region 打赏通知
            systemNotice.Title = scoreModel.AddNote;
            if (activity != null)
            {
                systemNotice.Ncontent = string.Format("您{0}了<a href=\"{6}\">{7}</a>{1}{2}{3} : <a href=\"{4}\">{5}</a>", actionName,
                                                      bllSystemNotice.GetArticleTypeName(activity.ArticleType, websiteOwner),
                                                      score,
                                                      scoreName,
                                                      bllSystemNotice.GetArticleLink(activity.JuActivityID, websiteOwner, activity.ArticleType),
                                                      bllSystemNotice.GetArticleLinkText(activity),
                                                      bllSystemNotice.GetUserLink(author.AutoID, websiteOwner),
                                                      bllUser.GetUserDispalyName(author)
                                                      );
            }
            else
            {
                systemNotice.Ncontent = string.Format("您{0}了<a href=\"{4}\">{1}</a>{2}{3}",
                                                      actionName,
                                                      bllUser.GetUserDispalyName(author),
                                                      score,
                                                      scoreName,
                                                      bllSystemNotice.GetUserLink(author.AutoID, websiteOwner));
            }
            systemNotice.NoticeType   = (int)BLLSystemNotice.NoticeType.Reward;
            systemNotice.InsertTime   = curTime;
            systemNotice.WebsiteOwner = websiteOwner;
            systemNotice.SendType     = 2;
            systemNotice.UserId       = curUser.UserID;
            systemNotice.Receivers    = curUser.UserID;
            #endregion 打赏通知

            UserScoreDetailsInfo scoreGetModel   = new UserScoreDetailsInfo();
            SystemNotice         systemNoticeGet = new SystemNotice();
            #region 获赏明细
            if (author != null)
            {
                scoreGetModel.Score        = score;
                scoreGetModel.ScoreType    = "GetReward";
                scoreGetModel.UserID       = author.UserID;
                scoreGetModel.WebSiteOwner = websiteOwner;
                scoreGetModel.AddTime      = curTime;
                scoreGetModel.AddNote      = string.Format("获得{0}{1}", actionName, scoreName);
                if (activity != null)
                {
                    scoreGetModel.RelationID = activity.JuActivityID.ToString();
                }
                scoreGetModel.Ex1 = curUser.AutoID.ToString();

                #region 获赏通知
                systemNoticeGet.Title = scoreGetModel.AddNote;
                if (activity != null)
                {
                    systemNoticeGet.Ncontent = string.Format("您的{0}获得了<a href=\"{1}\">{2}</a>{3}的{4}{5} : <a href=\"{6}\">{7}</a>",
                                                             bllSystemNotice.GetArticleTypeName(activity.ArticleType, websiteOwner),
                                                             bllSystemNotice.GetUserLink(curUser.AutoID, websiteOwner),
                                                             bllUser.GetUserDispalyName(curUser),
                                                             actionName,
                                                             score,
                                                             scoreName,
                                                             bllSystemNotice.GetArticleLink(activity.JuActivityID, websiteOwner, activity.ArticleType),
                                                             bllSystemNotice.GetArticleLinkText(activity));
                }
                else
                {
                    systemNoticeGet.Ncontent = string.Format("您获得了<a href=\"{0}\">{1}</a>{2}的{3}{4}",
                                                             bllSystemNotice.GetUserLink(curUser.AutoID, websiteOwner),
                                                             bllUser.GetUserDispalyName(curUser),
                                                             actionName,
                                                             score,
                                                             scoreName);
                }
                systemNoticeGet.NoticeType   = (int)BLLSystemNotice.NoticeType.GetReward;
                systemNoticeGet.InsertTime   = curTime;
                systemNoticeGet.WebsiteOwner = websiteOwner;
                systemNoticeGet.SendType     = 2;
                systemNoticeGet.UserId       = author.UserID;
                systemNoticeGet.Receivers    = author.UserID;

                #endregion 打赏通知
            }
            #endregion

            ZCBLLEngine.BLLTransaction tran = new ZCBLLEngine.BLLTransaction();
            #region 打赏用户积分处理
            if (Update(curUser,
                       string.Format(" TotalScore = TotalScore - {0}", score),
                       string.Format(" AutoID = {0} And  TotalScore>= {1}", curUser.AutoID, score),
                       tran) <= 0)
            {
                tran.Rollback();
                msg = string.Format("{0}失败,可能是{1}不足", actionName, scoreName);
                return(false);
            }
            curUser = GetByKey <UserInfo>("AutoID", curUser.AutoID.ToString(), false, tran: tran);
            scoreModel.TotalScore = curUser.TotalScore;
            if (!Add(scoreModel, tran))
            {
                tran.Rollback();
                msg = string.Format("{0}记录{1}明细出错", actionName, scoreName);
                return(false);
            }

            systemNotice.SerialNum = GetGUID(TransacType.SendSystemNotice);
            if (!Add(systemNotice, tran))
            {
                tran.Rollback();
                msg = string.Format("{0}{1}通知出错", actionName, scoreName);
                return(false);
            }

            #endregion

            #region 打赏目标用户积分处理
            if (author != null)
            {
                if (Update(author,
                           string.Format(" TotalScore = TotalScore + {0}", score),
                           string.Format(" AutoID = {0} ", author.AutoID),
                           tran) <= 0)
                {
                    tran.Rollback();
                    msg = string.Format("{0}目标用户加{1}出错", actionName, scoreName);
                    return(false);
                }
                author = GetByKey <UserInfo>("AutoID", author.AutoID.ToString(), false, tran: tran);
                scoreGetModel.TotalScore = author.TotalScore;
                if (!Add(scoreGetModel, tran))
                {
                    tran.Rollback();
                    msg = string.Format("{0}目标用户记录{1}明细出错", actionName, scoreName);
                    return(false);
                }
                systemNoticeGet.SerialNum = GetGUID(TransacType.SendSystemNotice);
                if (!Add(systemNoticeGet, tran))
                {
                    tran.Rollback();
                    msg = string.Format("获得{0}{1}通知出错", actionName, scoreName);
                    return(false);
                }
            }
            #endregion
            #region 打赏目标积分处理
            if (activity != null)
            {
                double sumScore = GetSumScore(websiteOwner, "GetReward", activity.JuActivityID.ToString(), "", tran);

                if (Update(activity,
                           string.Format(" RewardTotal={0}", sumScore),
                           string.Format(" JuActivityID = {0} ", activity.JuActivityID),
                           tran) <= 0)
                {
                    tran.Rollback();
                    msg = string.Format("{0}目标加{1}出错", actionName, scoreName);
                    return(false);
                }
            }
            #endregion

            tran.Commit();
            return(true);
        }
Exemple #14
0
        /// <summary>
        /// 更新
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        private string Update(HttpContext context)
        {
            RequestModel requestModel;

            try
            {
                requestModel = ZentCloud.Common.JSONHelper.JsonToModel <RequestModel>(context.Request["data"]);
            }
            catch (Exception)
            {
                resp.errcode = -1;
                resp.errmsg  = "json格式错误,请检查";
                return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
            }

            //检查必填项
            if (string.IsNullOrEmpty(requestModel.crowdfund_title))
            {
                resp.errcode = 1;
                resp.errmsg  = "crowdfund_title 参数必填";
                return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
            }
            if (string.IsNullOrEmpty(requestModel.crowdfund_img_url))
            {
                resp.errcode = 1;
                resp.errmsg  = "crowdfund_img_url 参数必填";
                return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
            }
            if (requestModel.crowdfund_amount <= 0)
            {
                resp.errcode = 1;
                resp.errmsg  = "crowdfund_amount 参数须大于0";
                return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
            }
            if (string.IsNullOrEmpty(requestModel.crowdfund_intro))
            {
                resp.errcode = 1;
                resp.errmsg  = "crowdfund_intro 参数必填";
                return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
            }
            if (requestModel.crowdfund_stoptime <= 0)
            {
                resp.errcode = 1;
                resp.errmsg  = "crowdfund_stoptime 参数必填";
                return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
            }
            if (requestModel.item_list == null || requestModel.item_list.Count == 0)
            {
                resp.errcode = -1;
                resp.errmsg  = "item_list 元素个数需大于0";
                return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
            }

            ZentCloud.ZCBLLEngine.BLLTransaction tran = new ZCBLLEngine.BLLTransaction();
            try
            {
                CrowdFundInfo crowdFundInfo = bll.Get <CrowdFundInfo>(string.Format(" CrowdFundID={0} And WebSiteOwner='{1}'", requestModel.crowdfund_id, bll.WebsiteOwner));
                if (crowdFundInfo == null)
                {
                    resp.errcode = 1;
                    resp.errmsg  = "众筹活动不存在";
                    return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                }

                var itemList      = bll.GetList <CrowdFundItem>(string.Format(" CrowdFundID={0}", crowdFundInfo.CrowdFundID));
                var delItemIdList = new List <int>();
                if (itemList.Count != requestModel.item_list.Where(p => p.item_id > 0).Count())
                {
                    //有删除的item 检查是否可以删除
                    var delItemList = from req in itemList
                                      where !(from old in requestModel.item_list
                                              select old.item_id).Contains(req.ItemId)
                                      select req;
                    if (delItemList.Count() > 0)
                    {
                        foreach (var item in delItemList)
                        {
                            if (bll.GetCount <CrowdFundRecord>(string.Format(" ItemId={0}", item.ItemId)) > 0)
                            {
                                resp.errcode = 1;
                                resp.errmsg  = string.Format("{0}已经有下单记录,不能删除。", item.ProductName);
                                return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                            }
                            delItemIdList.Add(item.ItemId);
                        }
                    }
                }



                crowdFundInfo.Type         = requestModel.crowdfund_type;
                crowdFundInfo.Title        = requestModel.crowdfund_title;
                crowdFundInfo.CoverImage   = requestModel.crowdfund_img_url;
                crowdFundInfo.FinancAmount = requestModel.crowdfund_amount;
                crowdFundInfo.Introduction = requestModel.crowdfund_intro;
                crowdFundInfo.Originator   = requestModel.crowdfund_originator;
                crowdFundInfo.StopTime     = bll.GetTime(requestModel.crowdfund_stoptime);
                if (!bll.Update(crowdFundInfo, tran))
                {
                    tran.Rollback();
                    resp.errcode = 1;
                    resp.errmsg  = "操作失败";
                    return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                }
                foreach (var item in requestModel.item_list)
                {
                    CrowdFundItem model;
                    if (item.item_id == 0)
                    {
                        model              = new CrowdFundItem();
                        model.Amount       = item.item_amount;
                        model.CrowdFundID  = crowdFundInfo.CrowdFundID;
                        model.Description  = item.item_desc;
                        model.ItemId       = int.Parse(bll.GetGUID(BLLJIMP.TransacType.CommAdd));
                        model.WebsiteOwner = bll.WebsiteOwner;
                        model.ProductName  = item.item_productname;
                        if (!bll.Add(model, tran))
                        {
                            tran.Rollback();
                            resp.errcode = 1;
                            resp.errmsg  = "操作失败";
                            return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                        }
                    }
                    else
                    {
                        model = bll.Get <CrowdFundItem>(string.Format(" ItemId={0} And WebSiteOwner='{1}'", item.item_id, bll.WebsiteOwner));
                        if (model == null)
                        {
                            tran.Rollback();
                            resp.errcode = 1;
                            resp.errmsg  = " item 不存在";
                            return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                        }
                        model.Amount      = item.item_amount;
                        model.Description = item.item_desc;
                        model.ProductName = item.item_productname;
                        if (!bll.Update(model, tran))
                        {
                            tran.Rollback();
                            resp.errcode = 1;
                            resp.errmsg  = "操作失败";
                            return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                        }
                    }
                }
                tran.Commit();
                if (delItemIdList.Count > 0)
                {
                    foreach (var itemId in delItemIdList)
                    {
                        if (bll.Delete(new CrowdFundItem(), string.Format(" ItemId={0}", itemId)) <= 0)
                        {
                            resp.errcode = 1;
                            resp.errmsg  = "删除旧选项失败";
                            return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                        }
                    }
                }
                resp.errmsg = "ok";
            }
            catch (Exception ex)
            {
                tran.Rollback();
                resp.errcode = -1;
                resp.errmsg  = ex.Message;
            }
            return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
        }
Exemple #15
0
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(Request.InputStream);
                xmlDoc.Save(string.Format("C:\\WXPay\\NotifyCrowdFund{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);//全部参数排序

                //验签参数 不包括 sign 参数
                Dictionary <string, string> parametersSign = (from entry in parametersAll
                                                              where !entry.Key.Equals("sign")
                                                              orderby entry.Key ascending
                                                              select entry).ToDictionary(pair => pair.Key, pair => pair.Value);
                CrowdFundRecord record    = bllPay.Get <CrowdFundRecord>(string.Format(" RecordID={0}", parametersAll["out_trade_no"]));
                var             payConfig = bllPay.GetPayConfig();
                string          strSign   = Payment.WeiXin.CommonUtil.FormatBizQueryParaMap(parametersSign, false);
                if (!MD5SignUtil.VerifySignature(strSign, parametersAll["sign"], payConfig.WXPartnerKey))//验证签名
                {
                    Response.Write("<xml><return_code><![CDATA[FAIL]]></return_code></xml>");
                    return;
                }
                if (record == null)
                {
                    Response.Write("<xml><return_code><![CDATA[FAIL]]></return_code></xml>");
                    return;
                }
                if (record.Status.Equals(1))
                {
                    Response.Write("<xml><return_code><![CDATA[SUCCESS]]></return_code></xml>");
                    return;
                }
                if (record.Status.Equals(0))//只有未付款状态
                {
                    ZentCloud.ZCBLLEngine.BLLTransaction tran = new ZCBLLEngine.BLLTransaction();
                    try
                    {
                        record.Status = 1;
                        if (!bllPay.Update(record, tran))
                        {
                            tran.Rollback();
                            Response.Write("<xml><return_code><![CDATA[FAIL]]></return_code></xml>");
                        }
                        tran.Commit();
                        Response.Write("<xml><return_code><![CDATA[SUCCESS]]></return_code></xml>");
                        return;
                    }
                    catch
                    {
                        tran.Rollback();
                        Response.Write("<xml><return_code><![CDATA[FAIL]]></return_code></xml>");
                    }
                }
                Response.Write("<xml><return_code><![CDATA[SUCCESS]]></return_code></xml>");
            }
            catch (Exception)
            {
                Response.Write("<xml><return_code><![CDATA[FAIL]]></return_code></xml>");
            }
        }
Exemple #16
0
        protected void Page_Load(object sender, EventArgs e)
        {
            BLLJIMP.BllOrder            bllOrder = new BLLJIMP.BllOrder();
            BLLJIMP.BLLUser             bllUser  = new BLLJIMP.BLLUser("");
            Dictionary <string, string> dicAll   = GetRequestGet();

            if (dicAll.Count > 0)//判断是否有带返回参数
            {
                Notify notify       = new Notify();
                bool   verifyResult = notify.VerifyReturn(dicAll, Request.QueryString["sign"]);
                if (verifyResult)//验证成功
                {
                    try
                    {
                        /////////////////////////////////////////////////////////////////////////////////////////////////////////////
                        //请在这里加上商户的业务逻辑程序代码



                        //——请根据您的业务逻辑来编写程序(以下代码仅作参考)——
                        //获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表

                        //商户订单号
                        string outTrade_no = Request.QueryString["out_trade_no"];

                        //支付宝交易号
                        string tradeNo = Request.QueryString["trade_no"];

                        //交易状态
                        string result   = Request.QueryString["result"];
                        var    orderPay = bllOrder.GetOrderPay(outTrade_no);
                        if (orderPay.Status.Equals(0))     //只有未付款状态
                        {
                            if (orderPay.Type.Equals("1")) //投票充值
                            {
                                ZentCloud.ZCBLLEngine.BLLTransaction tran = new ZCBLLEngine.BLLTransaction();
                                try
                                {
                                    UserInfo userInfo = bllUser.GetUserInfo(orderPay.UserId);
                                    if (userInfo.AvailableVoteCount == null)
                                    {
                                        userInfo.AvailableVoteCount = 0;
                                    }
                                    userInfo.AvailableVoteCount += int.Parse(orderPay.Ex1);
                                    orderPay.Status              = 1;
                                    orderPay.Trade_No            = tradeNo;
                                    if (!bllOrder.Update(orderPay, tran))
                                    {
                                        tran.Rollback();
                                        Hmsg.InnerHtml = "更新订单失败";
                                    }
                                    if (bllUser.Update(userInfo, string.Format(" AvailableVoteCount={0}", userInfo.AvailableVoteCount), string.Format(" AutoID={0}", userInfo.AutoID), tran) < 1)
                                    {
                                        tran.Rollback();
                                        Hmsg.InnerHtml = "更新用户信息失败";
                                    }
                                    tran.Commit();
                                    Hmsg.InnerHtml = "交易成功!";
                                }
                                catch (Exception ex)
                                {
                                    Log(DateTime.Now.ToString() + ex.ToString());
                                    tran.Rollback();
                                    Hmsg.InnerHtml = ex.ToString();
                                }
                            }
                            else
                            {
                            }
                        }
                        if (orderPay.Status.Equals(1))
                        {
                            Hmsg.InnerHtml = "交易成功!";
                        }



                        //——请根据您的业务逻辑来编写程序(以上代码仅作参考)——

                        /////////////////////////////////////////////////////////////////////////////////////////////////////////////
                    }
                    catch (Exception ex)
                    {
                        Log(DateTime.Now.ToString() + ex.ToString());
                        Hmsg.InnerHtml = ex.ToString();
                    }
                }
                else//验证失败
                {
                    Hmsg.InnerHtml = "验证失败";
                }
            }
            else
            {
                Hmsg.InnerHtml = "无返回参数";
            }
        }
Exemple #17
0
        /// <summary>
        /// 添加
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        private string Add(HttpContext context)
        {
            RequestModel requestModel;

            try
            {
                requestModel = ZentCloud.Common.JSONHelper.JsonToModel <RequestModel>(context.Request["data"]);
            }
            catch (Exception)
            {
                resp.errcode = -1;
                resp.errmsg  = "json格式错误,请检查";
                return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
            }

            //检查必填项

            if (string.IsNullOrEmpty(requestModel.crowdfund_title))
            {
                resp.errcode = 1;
                resp.errmsg  = "crowdfund_title 参数必填";
                return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
            }
            if (requestModel.crowdfund_stoptime <= 0)
            {
                resp.errcode = 1;
                resp.errmsg  = "crowdfund_stoptime 参数必填";
                return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
            }
            if (string.IsNullOrEmpty(requestModel.crowdfund_img_url))
            {
                resp.errcode = 1;
                resp.errmsg  = "crowdfund_img_url 参数必填";
                return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
            }
            if (requestModel.crowdfund_amount <= 0)
            {
                resp.errcode = 1;
                resp.errmsg  = "crowdfund_amount 参数须大于0";
                return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
            }
            if (requestModel.crowdfund_stoptime <= 0)
            {
                resp.errcode = 1;
                resp.errmsg  = "crowdfund_stoptime 参数必填";
                return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
            }
            if (string.IsNullOrEmpty(requestModel.crowdfund_intro))
            {
                resp.errcode = 1;
                resp.errmsg  = "crowdfund_intro 参数必填";
                return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
            }
            if (string.IsNullOrEmpty(requestModel.crowdfund_originator))
            {
                resp.errcode = 1;
                resp.errmsg  = "crowdfund_originator 参数必填";
                return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
            }
            if (requestModel.item_list == null || requestModel.item_list.Count == 0)
            {
                resp.errcode = -1;
                resp.errmsg  = "item_list 元素个数需大于0";
                return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
            }
            ZentCloud.ZCBLLEngine.BLLTransaction tran = new ZCBLLEngine.BLLTransaction();
            try
            {
                CrowdFundInfo crowdFundInfo = new CrowdFundInfo();
                crowdFundInfo.CrowdFundID  = int.Parse(bll.GetGUID(BLLJIMP.TransacType.CommAdd));
                crowdFundInfo.Type         = requestModel.crowdfund_type;
                crowdFundInfo.Title        = requestModel.crowdfund_title;
                crowdFundInfo.CoverImage   = requestModel.crowdfund_img_url;
                crowdFundInfo.FinancAmount = requestModel.crowdfund_amount;
                crowdFundInfo.Introduction = requestModel.crowdfund_intro;
                crowdFundInfo.WebSiteOwner = bll.WebsiteOwner;
                crowdFundInfo.StopTime     = bll.GetTime(requestModel.crowdfund_stoptime);
                crowdFundInfo.Originator   = requestModel.crowdfund_originator;
                crowdFundInfo.Status       = 1;
                if (!bll.Add(crowdFundInfo, tran))
                {
                    tran.Rollback();
                    resp.errcode = 1;
                    resp.errmsg  = "操作失败";
                    return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                }
                foreach (var item in requestModel.item_list)
                {
                    CrowdFundItem model = new CrowdFundItem();
                    model.Amount       = item.item_amount;
                    model.CrowdFundID  = crowdFundInfo.CrowdFundID;
                    model.Description  = item.item_desc;
                    model.ItemId       = int.Parse(bll.GetGUID(BLLJIMP.TransacType.CommAdd));
                    model.WebsiteOwner = bll.WebsiteOwner;
                    model.ProductName  = item.item_productname;
                    if (!bll.Add(model, tran))
                    {
                        tran.Rollback();
                        resp.errcode = 1;
                        resp.errmsg  = "操作失败";
                        return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                    }
                }
                tran.Commit();
                resp.errmsg = "ok";
            }
            catch (Exception ex)
            {
                tran.Rollback();
                resp.errcode = -1;
                resp.errmsg  = ex.Message;
            }
            return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
        }
Exemple #18
0
        protected void Page_Load(object sender, EventArgs e)
        {
            BLLJIMP.BllOrder            bllOrder = new BLLJIMP.BllOrder();
            BLLJIMP.BLLUser             bllUser  = new BLLJIMP.BLLUser("");
            Dictionary <string, string> dicAll   = bllOrder.GetRequestParameter();

            if (dicAll.Count > 0)//判断是否有带返回参数
            {
                Notify notify       = new Notify();
                bool   verifyResult = notify.VerifyNotify(dicAll, dicAll["sign"]);
                if (verifyResult)//验证成功
                {
                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////
                    //请在这里加上商户的业务逻辑程序代码

                    //——请根据您的业务逻辑来编写程序(以下代码仅作参考)——
                    //获取支付宝的通知返回参数,可参考技术文档中服务器异步通知参数列表

                    //解密(如果是RSA签名需要解密,如果是MD5签名则下面一行清注释掉)
                    //sPara = aliNotify.Decrypt(sPara);

                    //XML解析notify_data数据
                    try
                    {
                        XmlDocument xmlDoc = new XmlDocument();
                        xmlDoc.LoadXml(dicAll["notify_data"]);
                        xmlDoc.Save(string.Format("C:\\Alipay\\notify{0}.xml", DateTime.Now.ToString("yyyyMMddHHmmssfff")));
                        //商户订单号
                        string outTradeNo = xmlDoc.SelectSingleNode("/notify/out_trade_no").InnerText;
                        //支付宝交易号
                        string tradeNo = xmlDoc.SelectSingleNode("/notify/trade_no").InnerText;
                        //交易状态
                        string tradeStatus = xmlDoc.SelectSingleNode("/notify/trade_status").InnerText;
                        var    orderPay    = bllOrder.GetOrderPay(outTradeNo);
                        if (tradeStatus == "TRADE_FINISHED")
                        {
                            //判断该笔订单是否在商户网站中已经做过处理
                            //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
                            //如果有做过处理,不执行商户的业务程序

                            //注意:
                            //该种交易状态只在两种情况下出现
                            //1、开通了普通即时到账,买家付款成功后。
                            //2、开通了高级即时到账,从该笔交易成功时间算起,过了签约时的可退款时限(如:三个月以内可退款、一年以内可退款等)后。

                            if (orderPay.Status.Equals(0))     //只有未付款状态
                            {
                                if (orderPay.Type.Equals("1")) //投票充值
                                {
                                    ZentCloud.ZCBLLEngine.BLLTransaction tran = new ZCBLLEngine.BLLTransaction();
                                    try
                                    {
                                        UserInfo userInfo = bllUser.GetUserInfo(orderPay.UserId);
                                        if (userInfo.AvailableVoteCount == null)
                                        {
                                            userInfo.AvailableVoteCount = 0;
                                        }
                                        userInfo.AvailableVoteCount += int.Parse(orderPay.Ex1);
                                        orderPay.Status              = 1;
                                        orderPay.Trade_No            = tradeNo;
                                        if (!bllOrder.Update(orderPay, tran))
                                        {
                                            tran.Rollback();
                                            Response.Write("fail");
                                        }
                                        if (bllUser.Update(userInfo, string.Format(" AvailableVoteCount={0}", userInfo.AvailableVoteCount), string.Format(" AutoID={0}", userInfo.AutoID), tran) < 1)
                                        {
                                            tran.Rollback();
                                            Response.Write("fail");
                                        }
                                        tran.Commit();
                                        Response.Write("success");  //请不要修改或删除
                                    }
                                    catch (Exception ex)
                                    {
                                        tran.Rollback();
                                        Response.Write("fail");
                                    }
                                }
                                else
                                {
                                }
                            }


                            Response.Write("success");  //请不要修改或删除
                        }
                        else if (tradeStatus == "TRADE_SUCCESS")
                        {
                            //判断该笔订单是否在商户网站中已经做过处理
                            //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
                            //如果有做过处理,不执行商户的业务程序

                            //注意:
                            //该种交易状态只在一种情况下出现——开通了高级即时到账,买家付款成功后。
                            if (orderPay.Status.Equals(0))   //只有未付款状态
                            {
                                if (orderPay.Type.Equals(1)) //投票充值
                                {
                                    ZentCloud.ZCBLLEngine.BLLTransaction tran = new ZCBLLEngine.BLLTransaction();
                                    try
                                    {
                                        UserInfo userInfo = bllUser.GetUserInfo(orderPay.UserId);
                                        if (userInfo.AvailableVoteCount == null)
                                        {
                                            userInfo.AvailableVoteCount = 0;
                                        }
                                        userInfo.AvailableVoteCount += int.Parse(orderPay.Ex1);
                                        orderPay.Status              = 1;
                                        orderPay.Trade_No            = tradeNo;
                                        if (!bllOrder.Update(orderPay, tran))
                                        {
                                            tran.Rollback();
                                            Response.Write("fail");
                                        }
                                        if (bllUser.Update(userInfo, string.Format(" AvailableVoteCount={0}", userInfo.AvailableVoteCount), string.Format(" AutoID={0}", userInfo.AutoID), tran) < 1)
                                        {
                                            tran.Rollback();
                                            Response.Write("fail");
                                        }
                                        tran.Commit();
                                        Response.Write("success");  //请不要修改或删除
                                    }
                                    catch (Exception Ex)
                                    {
                                        tran.Rollback();
                                        Response.Write("fail");
                                    }
                                }
                                else
                                {
                                }
                            }

                            Response.Write("success");  //请不要修改或删除
                        }
                        else
                        {
                            Response.Write(tradeStatus);
                        }
                    }
                    catch (Exception Ex)
                    {
                        Response.Write("fail");
                    }



                    //——请根据您的业务逻辑来编写程序(以上代码仅作参考)——

                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////
                }
                else//验证失败
                {
                    Response.Write("fail");
                }
            }
            else
            {
                Response.Write("无通知参数");
            }
        }
Exemple #19
0
        public void ProcessRequest(HttpContext context)
        {
            string userId    = context.Request["user_id"];
            string cardId    = context.Request["card_id"];
            string validDate = context.Request["valid_date"];
            string orderId   = context.Request["order_id"];

            if (string.IsNullOrEmpty(orderId))
            {
                apiResp.msg = "order_id 必传";
                bll.ContextResponse(context, apiResp);
                return;
            }
            if (string.IsNullOrEmpty(cardId))
            {
                apiResp.msg = "card_id 必传";
                bll.ContextResponse(context, apiResp);
                return;
            }
            if (string.IsNullOrEmpty(userId))
            {
                apiResp.msg = "user_id 必传";
                bll.ContextResponse(context, apiResp);
                return;
            }
            var userInfo = bllUser.GetUserInfo(userId, bll.WebsiteOwner);

            if (userInfo == null)
            {
                apiResp.msg = "user_id 错误";
                bll.ContextResponse(context, apiResp);
                return;
            }
            var card = bll.GetCard(cardId);

            if (cardId == null)
            {
                apiResp.msg = "card_id 错误";
                bll.ContextResponse(context, apiResp);
                return;
            }

            if (bll.GetCount <MeifanMyCard>(string.Format(" CardId='{0}' And UserId='{1}'", cardId, userId)) > 0)
            {
                apiResp.msg = "已经开过卡了";
                bll.ContextResponse(context, apiResp);
                return;
            }
            ZentCloud.ZCBLLEngine.BLLTransaction tran = new ZCBLLEngine.BLLTransaction();
            MeifanMyCard model = new MeifanMyCard();

            model.CardId     = card.CardId;
            model.CardNum    = string.Format("No.{0}{1}", DateTime.Now.ToString("yyyyMMddHHmmss"), userInfo.AutoID);
            model.InsertDate = DateTime.Now;
            model.UserId     = userInfo.UserID;
            model.ValidMonth = card.ValidMonth;
            model.ValidDate  = Convert.ToDateTime(validDate);
            if (bll.Add(model, tran))
            {
                //Ex1 开卡状态
                //Ex2 过期时间
                //Ex3 会员卡号
                //Ex4 到期日期
                if (bll.Update(new OrderPay(), string.Format("Ex1='1',Ex2='{0}',RelationId='{1}',Ex3='{2}',Ex4='{3}'", validDate, model.CardId, model.CardNum, (model.ValidDate.AddMonths(model.ValidMonth).ToString())), string.Format(" OrderId='{0}'", orderId), tran) > 0)
                {
                    apiResp.status = true;
                    apiResp.msg    = "ok";
                    tran.Commit();
                }
                else
                {
                    tran.Rollback();
                    apiResp.msg = "发卡失败";
                }
            }
            else
            {
                apiResp.msg = "发卡失败";
            }
            bll.ContextResponse(context, apiResp);
        }
Exemple #20
0
        /// <summary>
        /// 保存投票信息
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        private string SaveDataInfo(HttpContext context)
        {
            string autoId = context.Request["AutoId"];
            string ids    = context.Request["Ids"];

            if (string.IsNullOrEmpty(ids))
            {
                resp.Status = -1;
                resp.Msg    = "请选择投票内容";
                goto OutF;
            }
            ids = ids.Replace("0,", "");
            BLLJIMP.Model.TheVoteInfo voteInfo = bllUser.Get <BLLJIMP.Model.TheVoteInfo>(string.Format(" AutoId=" + autoId));
            if (voteInfo.MaxSelectItemCount > 0)
            {
                if (ids.Split(',').Length > voteInfo.MaxSelectItemCount)
                {
                    resp.Status = -1;
                    resp.Msg    = "最多可以同时选中" + voteInfo.MaxSelectItemCount + "个选项";
                    goto OutF;
                }
            }
            if (DateTime.Now > voteInfo.TheVoteOverDate)
            {
                resp.Status = -1;
                resp.Msg    = "投票结束";
                goto OutF;
            }


            ZentCloud.ZCBLLEngine.BLLTransaction tran = new ZCBLLEngine.BLLTransaction();

            int count = 0;

            if (currentUserInfo != null)
            {
                count = bllJuActivity.GetCount <BLLJIMP.Model.UserVoteInfo>(string.Format(" UserId='{0}' AND VoteId='{1}'", currentUserInfo.UserID, autoId));
            }
            else
            {
                //currentUserInfo = new BLLJIMP.Model.UserInfo()
                //{

                //    UserID = "user"
                //};
            }
            if (count > 0)
            {
                resp.Status = -1;
                resp.Msg    = "您已经投过票,不可再次投票。";
                goto OutF;
            }
            bool isSuccess = bllUser.Add(new BLLJIMP.Model.UserVoteInfo()
            {
                UserId   = currentUserInfo.UserID,
                VoteId   = autoId,
                DiInfoId = ids
            }, tran);

            string[] idsArry = ids.Split(',');
            voteInfo.PNumber = voteInfo.PNumber + 1;
            //int num = idsArry.Length;
            //if (idsArry.Length > 1)
            //{
            //    num = idsArry.Length - 1;
            //}
            //else
            //{
            //    num = idsArry.Length;
            //}

            //voteInfo.VoteNumbers = (voteInfo.VoteNumbers + num);
            bll.Update(voteInfo, string.Format(" PNumber+=1,VoteNumbers+={0}", idsArry.Length), string.Format(" AutoId={0}", voteInfo.AutoId));


            //bllUser.Update(voteInfo, tran);
            for (int i = 0; i < idsArry.Length; i++)
            {
                BLLJIMP.Model.DictionaryInfo diInfo = bllUser.Get <BLLJIMP.Model.DictionaryInfo>(" AutoID=" + idsArry[i]);
                if (diInfo != null)
                {
                    diInfo.VoteNums = diInfo.VoteNums + 1;
                    bll.Update(diInfo, string.Format("VoteNums+=1"), string.Format(" AutoID={0}", diInfo.AutoID));
                    //bllUser.Update(diInfo, tran);
                }
            }
            if (isSuccess)
            {
                resp.Status = 0;
                resp.Msg    = "投票成功";
                tran.Commit();
            }
            else
            {
                resp.Status = -1;
                resp.Msg    = "投票失败";
                tran.Rollback();
            }

OutF:
            return(Common.JSONHelper.ObjectToJson(resp));
        }
Exemple #21
0
        /// <summary>
        /// 积分变动
        /// </summary>
        /// <param name="openId"></param>
        /// <param name="score"></param>
        /// <returns></returns>
        public bool Update(string websiteOwner, string openId, double score, string remark, out string msg, string serialNumber = "")
        {
            msg = "";
            ZentCloud.ZCBLLEngine.BLLTransaction tran = new ZCBLLEngine.BLLTransaction();
            try
            {
                score = Math.Ceiling(score);
                UserInfo userInfo = bllUser.GetUserInfoByOpenId(openId);
                if (userInfo == null && (websiteOwner == "dongwu" || websiteOwner == "dongwudev"))
                {
                    userInfo = bllUser.CreateNewUser(websiteOwner, openId, "");
                }
                if (userInfo == null)
                {
                    //创建新用户
                    msg = "openid不存在";
                    return(false);
                }
                if ((userInfo.TotalScore + score) < 0)
                {
                    msg = "积分不足";
                    return(false);
                }
                StringBuilder sbSql             = new StringBuilder();
                double        historyTotalScore = 0;
                if (score > 0)
                {
                    historyTotalScore = score;
                }
                if (string.IsNullOrEmpty(remark))
                {
                    remark = string.Format("积分变动,变动值{0}", score);
                }
                sbSql.AppendFormat(" Update ZCJ_UserInfo Set TotalScore+={0},HistoryTotalScore+={1} Where WxOpenId='{2}' And WebsiteOwner='{3}' ;", score, historyTotalScore, openId, userInfo.WebsiteOwner);//积分变动
                sbSql.AppendFormat(" Insert Into ZCJ_UserScoreDetailsInfo (UserID,OpenId,Score,AddTime,AddNote,ScoreType,WebSiteOwner,SerialNumber) values('{0}','{1}',{2},'{3}','{4}','{5}','{6}','{7}');", userInfo.UserID, openId, score, DateTime.Now.ToString(), remark, "Update", userInfo.WebsiteOwner, serialNumber);
                if (ZentCloud.ZCBLLEngine.BLLBase.ExecuteSql(sbSql.ToString(), tran) < 2)
                {
                    msg = "操作失败";
                    tran.Rollback();
                    return(false);
                }

                #region 日志记录
                BLLApiLog bllApiLog = new BLLApiLog();
                if (!bllApiLog.Add(userInfo.WebsiteOwner, Enums.EnumApiModule.Score, string.Format("积分变动,变动值{0}", score), userInfo.WXOpenId, userInfo.UserID, serialNumber))
                {
                    msg = "日志记录失败";
                    tran.Rollback();
                    return(false);
                }

                #endregion

                tran.Commit();
                return(true);
            }
            catch (Exception ex)
            {
                msg = ex.ToString();
                tran.Rollback();
            }
            return(false);
        }
Exemple #22
0
        /// <summary>
        /// 积分转移
        /// </summary>
        /// <param name="fromOpenId">原OpenId</param>
        /// <param name="toOpenId">新OpenId</param>
        /// <returns></returns>
        public bool Move(string websiteOwner, string fromOpenId, string toOpenId, out string msg, string serialNumber, string remark = "")
        {
            msg = "";
            UserInfo fromUserInfo = bllUser.GetUserInfoByOpenId(fromOpenId);

            if (fromUserInfo == null && (websiteOwner == "dongwu" || websiteOwner == "dongwudev"))
            {
                fromUserInfo = bllUser.CreateNewUser(websiteOwner, fromOpenId, "");
            }
            if (fromUserInfo == null)
            {
                msg = "from_openid不存在";
                return(false);
            }
            if (fromUserInfo.TotalScore == 0)
            {
                msg = string.Format("{0}积分为0,不能转移", fromOpenId);
                return(false);
            }
            UserInfo toUserInfo = bllUser.GetUserInfoByOpenId(toOpenId);

            if (toUserInfo == null && (websiteOwner == "dongwu" || websiteOwner == "dongwudev"))
            {
                toUserInfo = bllUser.CreateNewUser(websiteOwner, toOpenId, "");
            }
            if (toUserInfo == null)
            {
                msg = "to_openid不存在";
                return(false);
            }
            ZentCloud.ZCBLLEngine.BLLTransaction tran = new ZCBLLEngine.BLLTransaction();
            try
            {
                string scoreTitle1 = string.Format("积分转移,减掉积分{0}", fromUserInfo.TotalScore);
                string scoreTitle2 = string.Format("积分转移,增加积分{0}", fromUserInfo.TotalScore);
                if (!string.IsNullOrEmpty(remark))
                {
                    scoreTitle1 = remark;
                    scoreTitle2 = remark;
                }
                StringBuilder sbSql = new StringBuilder();
                sbSql.AppendFormat(" Update ZCJ_UserInfo Set TotalScore+=(Select TotalScore from ZCJ_UserInfo where AutoId={0}),HistoryTotalScore+=(Select HistoryTotalScore from ZCJ_UserInfo where AutoId={0}) Where AutoId={1};", fromUserInfo.AutoID, toUserInfo.AutoID); //把旧用户积分转移到新用户下
                sbSql.AppendFormat(" Update ZCJ_UserInfo Set TotalScore=0 Where AutoId={0};", fromUserInfo.AutoID);                                                                                                                                                           //旧用户积分清零
                sbSql.AppendFormat("Insert Into ZCJ_UserScoreDetailsInfo (UserID,OpenId,Score,AddTime,AddNote,ScoreType,WebSiteOwner,SerialNumber) values('{0}','{1}',{2},'{3}','{4}','{5}','{6}','{7}');", fromUserInfo.UserID, fromOpenId, -fromUserInfo.TotalScore, DateTime.Now.ToString(), scoreTitle1, "Move", WebsiteOwner, serialNumber);
                sbSql.AppendFormat("Insert Into ZCJ_UserScoreDetailsInfo (UserID,OpenId,Score,AddTime,AddNote,ScoreType,WebSiteOwner,SerialNumber) values('{0}','{1}',{2},'{3}','{4}','{5}','{6}','{7}');", toUserInfo.UserID, toOpenId, fromUserInfo.TotalScore, DateTime.Now.ToString(), scoreTitle2, "Move", WebsiteOwner, serialNumber);
                if (ZentCloud.ZCBLLEngine.BLLBase.ExecuteSql(sbSql.ToString(), tran) != 4)
                {
                    msg = "操作失败";
                    tran.Rollback();
                    return(false);
                }

                #region 日志记录
                BLLApiLog bllApiLog = new BLLApiLog();
                if (!bllApiLog.Add(fromUserInfo.WebsiteOwner, Enums.EnumApiModule.Score, string.Format("积分清零,清除积分:{0}", fromUserInfo.TotalScore), fromUserInfo.WXOpenId, fromUserInfo.UserID, serialNumber))
                {
                    msg = "日志记录失败";
                    tran.Rollback();
                    return(false);
                }
                if (!bllApiLog.Add(toUserInfo.WebsiteOwner, Enums.EnumApiModule.Score, string.Format("积分转移,增加积分:{0}", fromUserInfo.TotalScore), toUserInfo.WXOpenId, toUserInfo.UserID, serialNumber))
                {
                    msg = "日志记录失败";
                    tran.Rollback();
                    return(false);
                }
                #endregion

                tran.Commit();
                return(true);
            }
            catch (Exception ex)
            {
                msg = ex.ToString();
                tran.Rollback();
            }
            return(false);
        }
Exemple #23
0
        /// <summary>
        /// 卡券转赠
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        private string Give(HttpContext context)
        {
            string cardcouponId = context.Request["cardcoupon_id"];//我的卡券ID

            if (string.IsNullOrEmpty(cardcouponId))
            {
                apiResp.code = (int)BLLJIMP.Enums.APIErrCode.PrimaryKeyIncomplete;
                apiResp.msg  = "cardcoupon_id 参数必传";
                return(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
            }
            MyCardCoupons fromMyCardCoupon = bllCardCoupon.GetMyCardCoupon(int.Parse(cardcouponId));//要赠送的卡券信息
            CardCoupons   cardCoupon       = bllCardCoupon.GetCardCoupon(fromMyCardCoupon.CardId);

            if (fromMyCardCoupon == null)
            {
                apiResp.code = (int)BLLJIMP.Enums.APIErrCode.PrimaryKeyIncomplete;
                apiResp.msg  = "卡券不存在";
                return(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
            }
            if (fromMyCardCoupon.UserId == currentUserInfo.UserID)
            {
                apiResp.code = (int)BLLJIMP.Enums.APIErrCode.NoFollow;
                apiResp.msg  = "不能接收自己的卡券";
                return(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
            }
            if (!string.IsNullOrEmpty(fromMyCardCoupon.FromUserId))
            {
                apiResp.code = (int)BLLJIMP.Enums.APIErrCode.NoFollow;
                apiResp.msg  = "优惠券不能多次转赠";
                return(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
            }
            if (cardCoupon.GetLimitType != null)
            {
                if (cardCoupon.GetLimitType == "1" && !bllUser.IsDistributionMember(currentUserInfo, true))
                {
                    apiResp.code = (int)BLLJIMP.Enums.APIErrCode.MallGetCardOnlyDistMember;
                    apiResp.msg  = "只有分销员才能领取";
                    return(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                }
                if (cardCoupon.GetLimitType == "2" && bllUser.IsDistributionMember(currentUserInfo))
                {
                    apiResp.code = (int)BLLJIMP.Enums.APIErrCode.MallGetCardOnlyNotDistMember;
                    apiResp.msg  = "该券仅新用户(无购买历史)可以领取";
                    return(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                }
            }
            if (!string.IsNullOrEmpty(cardCoupon.BindChannelUserId))
            {
                if (string.IsNullOrEmpty(currentUserInfo.DistributionOwner))
                {
                    apiResp.code = (int)BLLJIMP.Enums.APIErrCode.MallGetCardOnlyChannel;
                    apiResp.msg  = "只有指定渠道才能领取";
                    return(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                }
                BLLJIMP.BLLDistribution bllDis = new BLLJIMP.BLLDistribution();
                string channelUserId           = bllDis.GetUserChannel(currentUserInfo);
                if (cardCoupon.BindChannelUserId != channelUserId)
                {
                    apiResp.code = (int)BLLJIMP.Enums.APIErrCode.MallGetCardOnlyChannel;
                    apiResp.msg  = "只有指定渠道才能领取";
                    return(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                }
            }
            string msg = "";

            if (!bllCardCoupon.IsCanGiveCoupon(fromMyCardCoupon, out msg))//无法转赠给他人
            {
                apiResp.msg = msg;
                return(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
            }

            ZentCloud.ZCBLLEngine.BLLTransaction tran = new ZCBLLEngine.BLLTransaction();
            try
            {
                MyCardCoupons model = new MyCardCoupons();
                model.CardCouponNumber = string.Format("No.{0}{1}", DateTime.Now.ToString("yyyyMMddHHmmss"), bllMall.GetGUID(BLLJIMP.TransacType.CommAdd));
                model.CardCouponType   = fromMyCardCoupon.CardCouponType;
                model.CardId           = fromMyCardCoupon.CardId;
                model.InsertDate       = DateTime.Now;
                model.UserId           = currentUserInfo.UserID;
                model.WebSiteOwner     = currentUserInfo.WebsiteOwner;
                model.FromUserId       = fromMyCardCoupon.UserId;
                if (!bllCardCoupon.Add(model))
                {
                    tran.Rollback();
                    apiResp.msg = "接收失败";
                    return(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                }

                fromMyCardCoupon.Status   = 2;
                fromMyCardCoupon.ToUserId = currentUserInfo.UserID;
                if (!bllCardCoupon.Update(fromMyCardCoupon))
                {
                    tran.Rollback();
                    apiResp.msg = "接收失败";
                    return(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                }

                // CardCoupons cardCoupon = bllCardCoupon.GetCardCoupon(fromMyCardCoupon.CardId);
                //if (cardCoupon == null)
                //{
                //    tran.Rollback();
                //    apiResp.msg = "卡券不存在";
                //    return ZentCloud.Common.JSONHelper.ObjectToJson(apiResp);
                //}
                UserInfo fromUserInfo = bllUser.GetUserInfo(fromMyCardCoupon.UserId);
                if (fromUserInfo == null)
                {
                    tran.Rollback();
                    apiResp.msg = "赠送用户不存在";
                    return(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                }
                bllWeixin.SendTemplateMessageNotifyComm(fromUserInfo, "优惠券转赠通知", string.Format(" {0}已领取你转赠的优惠券{1}", bllUser.GetUserDispalyName(currentUserInfo), cardCoupon.Name));
                bllWeixin.SendTemplateMessageNotifyComm(currentUserInfo, "优惠券领取通知", string.Format(" 您已经领取来自{0}转赠的优惠券{1}", bllUser.GetUserDispalyName(fromUserInfo), cardCoupon.Name));
                tran.Commit();

                #region 分销关系建立
                BLLPermission.BLLMenuPermission bllMenuPermission = new BLLPermission.BLLMenuPermission("");
                if (bllMenuPermission.CheckUserAndPmsKey(currentUserInfo.WebsiteOwner, BLLPermission.Enums.PermissionSysKey.OnlineDistribution))
                {
                    if (string.IsNullOrWhiteSpace(currentUserInfo.DistributionOwner))
                    {
                        WebsiteInfo websiteInfo = bllMall.GetWebsiteInfoModelFromDataBase();
                        if (websiteInfo.DistributionRelationBuildMallOrder == 1)
                        {
                            if (bllUser.IsDistributionMember(fromUserInfo) || (fromUserInfo.UserID == websiteInfo.WebsiteOwner))//上级符合分销员标准
                            {
                                BLLJIMP.BLLDistribution bllDis = new BLLJIMP.BLLDistribution();

                                var setUserDistributionOwnerResult = bllDis.SetUserDistributionOwner(currentUserInfo.UserID, fromUserInfo.UserID, currentUserInfo.WebsiteOwner);
                            }
                        }
                    }
                }
                #endregion


                apiResp.status = true;
                apiResp.msg    = "ok";
            }
            catch (Exception ex)
            {
                apiResp.msg = ex.Message;
                return(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
            }
            return(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
        }
Exemple #24
0
        public void ProcessRequest(HttpContext context)
        {
            try
            {
                string     data       = context.Request["data"];
                decimal    productFee = 0;    //商品总价格 不包含邮费
                decimal    deviceFee  = 0;    //租金总金额,不包含押金
                OrderModel orderRequestModel; //订单模型
                try
                {
                    orderRequestModel = ZentCloud.Common.JSONHelper.JsonToModel <OrderModel>(data);
                }
                catch (Exception ex)
                {
                    resp.errcode = 1;
                    resp.errmsg  = "JSON格式错误,请检查.错误信息:" + ex.Message;
                    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                    return;
                }
                if (string.IsNullOrEmpty(orderRequestModel.departure_date))
                {
                    resp.errcode = 1;
                    resp.errmsg  = "请选择出发日期";
                    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                    return;
                }
                if (string.IsNullOrEmpty(orderRequestModel.backhome_date))
                {
                    resp.errcode = 1;
                    resp.errmsg  = "请选择回国日期";
                    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                    return;
                }

                WXMallOrderInfo orderInfo = new WXMallOrderInfo(); //订单表
                string          orderId   = bllMall.GetGUID(BLLJIMP.TransacType.AddMallOrder);
                orderInfo.OrderID        = CreateOrderId(orderId); //内部订单号
                orderInfo.OutOrderId     = CreateOrderId(orderId); //外部订单号
                orderInfo.Consignee      = orderRequestModel.receiver_name;
                orderInfo.InsertDate     = DateTime.Now;
                orderInfo.OrderUserID    = CurrentUserInfo.UserID;
                orderInfo.Phone          = orderRequestModel.receiver_phone;
                orderInfo.WebsiteOwner   = bllMall.WebsiteOwner;
                orderInfo.Transport_Fee  = 0;
                orderInfo.OrderMemo      = orderRequestModel.buyer_memo;
                orderInfo.ZipCode        = orderRequestModel.receiver_zip;
                orderInfo.MyCouponCardId = orderRequestModel.cardcoupon_id.ToString();
                orderInfo.UseScore       = orderRequestModel.use_score;
                orderInfo.Status         = "待付款";
                orderInfo.Email          = orderRequestModel.email;
                orderInfo.Tel            = orderRequestModel.receiver_tel;
                orderInfo.DeliveryType   = orderRequestModel.delivery_type;
                orderInfo.Ex1            = bllMall.GetTime(long.Parse(orderRequestModel.departure_date)).ToString(); //出国时间
                orderInfo.Ex2            = bllMall.GetTime(long.Parse(orderRequestModel.backhome_date)).ToString();  //回国时间
                orderInfo.LastUpdateTime = DateTime.Now;
                if (!string.IsNullOrEmpty(orderRequestModel.sale_id))                                                //分销ID
                {
                    long saleId = 0;
                    if (long.TryParse(orderRequestModel.sale_id, out saleId))
                    {
                        orderInfo.SellerId = saleId;
                    }
                }
                if (orderRequestModel.pay_type == "WEIXIN")//微信支付
                {
                    orderInfo.PaymentType = 2;
                }
                else if (orderRequestModel.pay_type == "ALIPAY")//支付宝支付
                {
                    orderInfo.PaymentType = 1;
                }

                #region 格式检查
                if (string.IsNullOrEmpty(orderInfo.Consignee))
                {
                    resp.errcode = 1;
                    resp.errmsg  = "收货人姓名不能为空";
                    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                    return;
                }
                if (string.IsNullOrEmpty(orderRequestModel.receiver_phone))
                {
                    resp.errcode = 1;
                    resp.errmsg  = "收货人联系手机号不能为空";
                    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                    return;
                }
                #region 快递
                if (orderRequestModel.delivery_type == 0)//快递
                {
                    //相关检查
                    if (string.IsNullOrEmpty(orderRequestModel.receiver_province))
                    {
                        resp.errcode = 1;
                        resp.errmsg  = "省份名称不能为空";
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                        return;
                    }
                    if (string.IsNullOrEmpty(orderRequestModel.receiver_province_code))
                    {
                        resp.errcode = 1;
                        resp.errmsg  = "省份代码不能为空";
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                        return;
                    }
                    if (string.IsNullOrEmpty(orderRequestModel.receiver_city))
                    {
                        resp.errcode = 1;
                        resp.errmsg  = "城市名称不能为空";
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                        return;
                    }
                    if (string.IsNullOrEmpty(orderRequestModel.receiver_city_code))
                    {
                        resp.errcode = 1;
                        resp.errmsg  = "城市代码不能为空";
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                        return;
                    }
                    if (string.IsNullOrEmpty(orderRequestModel.receiver_dist))
                    {
                        resp.errcode = 1;
                        resp.errmsg  = "城市区域名称不能为空";
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                        return;
                    }
                    if (string.IsNullOrEmpty(orderRequestModel.receiver_dist_code))
                    {
                        resp.errcode = 1;
                        resp.errmsg  = "城市区域代码不能为空";
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                        return;
                    }
                    if (string.IsNullOrEmpty(orderRequestModel.receiver_address))
                    {
                        resp.errcode = 1;
                        resp.errmsg  = "街道地址不能为空";
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                        return;
                    }
                    orderInfo.ReceiverProvince     = orderRequestModel.receiver_province;
                    orderInfo.ReceiverProvinceCode = orderRequestModel.receiver_province_code;
                    orderInfo.ReceiverCity         = orderRequestModel.receiver_city;
                    orderInfo.ReceiverCityCode     = orderRequestModel.receiver_city_code;
                    orderInfo.ReceiverDist         = orderRequestModel.receiver_dist;
                    orderInfo.ReceiverDistCode     = orderRequestModel.receiver_dist_code;
                    orderInfo.Address = orderRequestModel.receiver_address;
                    orderInfo.ZipCode = orderRequestModel.receiver_zip;
                }
                #endregion

                #region  门自提
                if (orderRequestModel.delivery_type == 1)//自提点
                {
                    if (string.IsNullOrEmpty(orderRequestModel.get_address_id))
                    {
                        resp.errcode = 1;
                        resp.errmsg  = "自提点ID为必填项,请检查";
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                        return;
                    }
                    if (string.IsNullOrEmpty(orderRequestModel.get_address_name))
                    {
                        resp.errcode = 1;
                        resp.errmsg  = "自提点名称为必填项,请检查";
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                        return;
                    }
                    //if (string.IsNullOrEmpty(orderRequestModel.ex7))
                    //{
                    //    resp.errcode = 1;
                    //    resp.errmsg = "自提时间为必填项,请检查";
                    //    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                    //    return;
                    //}
                    orderInfo.Ex3 = orderRequestModel.get_address_id;
                    orderInfo.Ex4 = orderRequestModel.get_address_name;
                    orderInfo.Ex5 = bllMall.GetGetAddress(orderRequestModel.get_address_id).GetAddressLocation;
                    //orderInfo.Ex7 = orderRequestModel.ex7;//自提时间
                }
                #endregion

                if (orderRequestModel.skus == null)
                {
                    resp.errcode = 1;
                    resp.errmsg  = "skus 参数不能为空";
                    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                    return;
                }
                DateTime startTime  = DateTime.Parse(bllMall.GetTime(long.Parse(orderRequestModel.departure_date)).ToString("yyyy/MM/dd"));
                DateTime returnTime = bllMall.GetTime(long.Parse(orderRequestModel.backhome_date));
                if (returnTime <= startTime)
                {
                    resp.errcode = 1;
                    resp.errmsg  = "回国日期不能晚于或等于出发日期";
                    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                    return;
                }

                int day = (int)(returnTime - startTime).TotalDays + 1;
                if (day < 3)
                {
                    resp.errcode = (int)BLLJIMP.Enums.APIErrCode.OperateFail;
                    resp.errmsg  = "起租最低为3天";
                    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                    return;
                }


                //相关检查
                #endregion

                #region 商品检查 订单详情生成
                ///订单详情
                List <WXMallOrderDetailsInfo> detailList = new List <WXMallOrderDetailsInfo>();//订单详情
                //orderRequestModel.skus = orderRequestModel.skus.Distinct().ToList();
                #region 购买的商品
                List <WXMallProductInfo> productList = new List <WXMallProductInfo>();
                foreach (var sku in orderRequestModel.skus)
                {
                    ProductSku        productSku  = bllMall.GetProductSku(sku.sku_id);
                    WXMallProductInfo productInfo = bllMall.GetProduct(productSku.ProductId.ToString());
                    productList.Add(productInfo);
                }
                productList = productList.Distinct().ToList();
                #endregion
                #region 检查优惠券是否可用
                if (orderRequestModel.cardcoupon_id > 0)
                {
                    var mycardCoupon = bllCardCoupon.GetMyCardCoupon(orderRequestModel.cardcoupon_id, CurrentUserInfo.UserID);
                    if (mycardCoupon == null)
                    {
                        resp.errcode = 1;
                        resp.errmsg  = "无效的优惠券";
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return;
                    }
                    var cardCoupon = bllCardCoupon.GetCardCoupon(mycardCoupon.CardId);
                    if (cardCoupon == null)
                    {
                        resp.errcode = 1;
                        resp.errmsg  = "无效的优惠券";
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return;
                    }
                    #region 需要购买指定商品
                    if ((!string.IsNullOrEmpty(cardCoupon.Ex2)) && (cardCoupon.Ex2 != "0"))
                    {
                        if (productList.Count(p => p.PID == cardCoupon.Ex2) == 0)
                        {
                            var productInfo = bllMall.GetProduct(cardCoupon.Ex2);
                            resp.errcode = 1;
                            resp.errmsg  = string.Format("此优惠券需要购买{0}时才可以使用", productInfo.PName);
                            context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return;
                        }
                    }


                    #endregion

                    #region 需要购买指定标签商品
                    if (!string.IsNullOrEmpty(cardCoupon.Ex8))
                    {
                        if (productList.Where(p => p.Tags == "" || p.Tags == null).Count() == productList.Count)//全部商品都没有标签
                        {
                            resp.errcode = 1;
                            resp.errmsg  = string.Format("使用此优惠券需要购买标签为{0}的商品", cardCoupon.Ex8);
                            context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return;
                        }
                        bool checkResult = false;
                        foreach (var product in productList)
                        {
                            if (!string.IsNullOrEmpty(product.Tags))
                            {
                                foreach (string tag in product.Tags.Split(','))
                                {
                                    if (cardCoupon.Ex8.Contains(tag))
                                    {
                                        checkResult = true;
                                        break;
                                    }
                                }
                            }
                        }
                        if (!checkResult)
                        {
                            resp.errcode = 1;
                            resp.errmsg  = string.Format("使用此优惠券需要购买标签为{0}的商品", cardCoupon.Ex8);
                            context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return;
                        }
                    }
                    #endregion
                }
                #endregion

                List <int> relationSkuList = new List <int>();//关联的SKU
                foreach (var sku in orderRequestModel.skus)
                {
                    //先检查库存
                    ProductSku productSku = bllMall.GetProductSku(sku.sku_id);
                    if (productSku == null)
                    {
                        resp.errcode = 1;
                        resp.errmsg  = "SKU不存在";
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return;
                    }
                    WXMallProductInfo productInfo = bllMall.GetProduct(productSku.ProductId.ToString());
                    if (productInfo.IsDelete == 1)
                    {
                        resp.errcode = 1;
                        resp.errmsg  = string.Format("{0}已下架", productInfo.PName);
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                        return;
                    }
                    if (productInfo.IsOnSale == "0")
                    {
                        resp.errcode = 1;
                        resp.errmsg  = string.Format("{0}已下架", productInfo.PName);
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                        return;
                    }
                    if (bllMall.GetSkuCount(productSku) < sku.count)
                    {
                        resp.errcode = 1;
                        resp.errmsg  = string.Format("{0}{1}库存余量为{2},库存不足,请减少购买数量", productInfo.PName, bllMall.GetProductShowProperties(productSku.SkuId), productSku.Stock);
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                        return;
                    }

                    if (!string.IsNullOrEmpty(productInfo.RelationProductId))
                    {
                        WXMallProductInfo relationProductInfo = bllMall.GetProduct(productInfo.RelationProductId);
                        var relationProductSkuList            = bllMall.GetProductSkuList(int.Parse(relationProductInfo.PID));
                        if (orderRequestModel.skus.Where(p => p.sku_id == relationProductSkuList[0].SkuId).Count() == 0)
                        {
                            resp.errcode = 1;
                            resp.errmsg  = string.Format("{0}必须有关联商品下单", productInfo.PName);
                            context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                            return;
                        }
                        else
                        {
                            relationSkuList.Add(relationProductSkuList[0].SkuId);//关联的Sku商品不参与运费计算
                        }
                    }
                    //if (bllMall.IsLimitProductTime(productInfo, orderInfo.Ex1, orderInfo.Ex2))
                    //{
                    //    resp.errcode = 1;
                    //    resp.errmsg = string.Format("{0} 暂时不能购买", productInfo.PName);
                    //    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                    //    return;
                    //}


                    WXMallOrderDetailsInfo detailModel = new WXMallOrderDetailsInfo();
                    detailModel.OrderID    = orderInfo.OrderID;
                    detailModel.PID        = productInfo.PID;
                    detailModel.TotalCount = sku.count;
                    if (!string.IsNullOrEmpty(productInfo.RelationProductId))//
                    {
                        //detailModel.OrderPrice = bllMall.GetSkuPrice(productSku) * day;
                        //List<string> dateRange = new List<string>();//时间范围
                        //startTime = DateTime.Parse(startTime.ToString("yyyy/MM/dd"));
                        //returnTime = DateTime.Parse(returnTime.ToString("yyyy/MM/dd"));
                        //for (int i = 1; i < (returnTime - startTime).TotalDays; i++)
                        //{
                        //    dateRange.Add(startTime.AddDays(i).ToString("yyyy/MM/dd"));
                        //}
                        //dateRange.Add(startTime.ToString("yyyy/MM/dd"));
                        //dateRange.Add(returnTime.ToString("yyyy/MM/dd"));
                        //dateRange = dateRange.Distinct().ToList();
                        //detailModel.OrderPrice = 0;
                        //foreach (var date in dateRange)//
                        //{
                        detailModel.OrderPrice = bllMall.GetSkuPriceByDate(productSku, startTime.ToString("yyyy/MM/dd")) * day;
                        //}
                        deviceFee += (decimal)detailModel.OrderPrice * detailModel.TotalCount;
                    }
                    else//设备租金
                    {
                        detailModel.OrderPrice = bllMall.GetSkuPrice(productSku);
                    }
                    detailModel.ProductName     = productInfo.PName;
                    detailModel.SkuId           = productSku.SkuId;
                    detailModel.ParentProductId = sku.parent_product_id;
                    detailList.Add(detailModel);
                }
                #endregion
                productFee = detailList.Sum(p => p.OrderPrice * p.TotalCount).Value;   //商品费用
                #region 运费计算

                List <ZentCloud.BLLJIMP.Model.API.Mall.SkuModel> skuList = new List <ZentCloud.BLLJIMP.Model.API.Mall.SkuModel>();
                foreach (var item in orderRequestModel.skus)
                {
                    ZentCloud.BLLJIMP.Model.API.Mall.SkuModel sku = new BLLJIMP.Model.API.Mall.SkuModel();
                    sku.sku_id = item.sku_id;
                    sku.count  = item.count;
                    skuList.Add(sku);
                }
                decimal freight    = 0;                   //运费
                string  freightMsg = "";
                if (orderRequestModel.delivery_type == 0) //配送方式为快递时才计算运费
                {
                    FreightModel freightModel = new FreightModel();
                    freightModel.receiver_province_code = int.Parse(orderRequestModel.receiver_province_code);
                    freightModel.receiver_city_code     = int.Parse(orderRequestModel.receiver_city_code);
                    freightModel.receiver_dist_code     = int.Parse(orderRequestModel.receiver_dist_code);
                    freightModel.skus = skuList;
                    foreach (int relationSku in relationSkuList)
                    {
                        //关联SKU不参与运费计算
                        freightModel.skus = freightModel.skus.Where(p => p.sku_id != relationSku).ToList();
                    }
                    if (!bllMall.CalcFreight(freightModel, out freight, out freightMsg))
                    {
                        resp.errcode = 1;
                        resp.errmsg  = freightMsg;
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                        return;
                    }
                }



                orderInfo.Transport_Fee = freight;
                #endregion

                orderInfo.Product_Fee = productFee;
                orderInfo.TotalAmount = orderInfo.Product_Fee + orderInfo.Transport_Fee;
                #region 优惠券计算
                decimal discountAmount   = 0;//优惠金额
                bool    canUseCardCoupon = false;
                string  msg = "";
                if (orderRequestModel.cardcoupon_id > 0)//有优惠券
                {
                    discountAmount = bllMall.CalcDiscountAmountWifi(orderRequestModel.cardcoupon_id.ToString(), data, CurrentUserInfo.UserID, out canUseCardCoupon, deviceFee, out msg);
                    if (!canUseCardCoupon)
                    {
                        resp.errcode = 1;
                        resp.errmsg  = msg;
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return;
                    }
                    if (discountAmount > productFee + orderInfo.Transport_Fee)
                    {
                        resp.errcode = 1;
                        resp.errmsg  = "优惠券可优惠金额超过了订单总金额";
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return;
                    }
                    orderInfo.CardcouponDisAmount = discountAmount;
                }
                #endregion

                #region 积分计算
                decimal scoreExchangeAmount = 0;///积分抵扣的金额
                //积分计算
                if (orderRequestModel.use_score > 0)
                {
                    if (CurrentUserInfo.TotalScore < orderRequestModel.use_score)
                    {
                        resp.errcode = 1;
                        resp.errmsg  = "积分不足";
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return;
                    }
                    ScoreConfig scoreConfig = bllScore.GetScoreConfig();
                    scoreExchangeAmount = Math.Round(orderRequestModel.use_score / (scoreConfig.ExchangeScore / scoreConfig.ExchangeAmount), 2);
                }



                //积分计算
                #endregion

                #region 合计计算

                orderInfo.TotalAmount  -= discountAmount;                  //优惠券优惠金额
                orderInfo.TotalAmount  -= scoreExchangeAmount;             //积分优惠金额
                orderInfo.PayableAmount = orderInfo.TotalAmount - freight; //应付金额
                if ((productFee + orderInfo.Transport_Fee - discountAmount - scoreExchangeAmount) < orderInfo.TotalAmount)
                {
                    resp.errcode = 1;
                    resp.errmsg  = "积分兑换金额不能大于订单总金额,请减少积分兑换";
                    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                    return;
                }
                #endregion
                if (orderInfo.TotalAmount <= 0)
                {
                    //resp.errcode = 1;
                    //resp.errmsg = "付款金额不能小于0";
                    //context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                    //return;
                    orderInfo.TotalAmount   = 0;
                    orderInfo.PaymentStatus = 1;
                    orderInfo.PayTime       = DateTime.Now;
                    orderInfo.Status        = "待发货";
                }

                ZentCloud.ZCBLLEngine.BLLTransaction tran = new ZCBLLEngine.BLLTransaction();
                try
                {
                    if (!this.bllMall.Add(orderInfo, tran))
                    {
                        tran.Rollback();
                        resp.errcode = 1;
                        resp.errmsg  = "提交失败";
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return;
                    }

                    #region 更新优惠券使用状态
                    //优惠券
                    if (orderRequestModel.cardcoupon_id > 0 && (canUseCardCoupon == true))//有优惠券且已经成功使用
                    {
                        MyCardCoupons myCardCoupon = bllCardCoupon.GetMyCardCoupon(orderRequestModel.cardcoupon_id, CurrentUserInfo.UserID);
                        myCardCoupon.UseDate = DateTime.Now;
                        myCardCoupon.Status  = 1;
                        if (!bllCardCoupon.Update(myCardCoupon, tran))
                        {
                            tran.Rollback();
                            resp.errcode = 1;
                            resp.errmsg  = "更新优惠券状态失败";
                            context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return;
                        }
                    }
                    //优惠券
                    #endregion

                    #region 积分抵扣
                    //积分扣除
                    if (orderRequestModel.use_score > 0)
                    {
                        CurrentUserInfo.TotalScore -= orderRequestModel.use_score;
                        if (bllMall.Update(CurrentUserInfo, string.Format(" TotalScore-={0}", orderRequestModel.use_score), string.Format(" AutoID={0}", CurrentUserInfo.AutoID)) < 0)
                        {
                            tran.Rollback();
                            resp.errcode = 1;
                            resp.errmsg  = "更新用户积分失败";
                            context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return;
                        }
                        //积分记录
                        UserScoreDetailsInfo scoreRecord = new UserScoreDetailsInfo();
                        scoreRecord.AddTime    = DateTime.Now;
                        scoreRecord.Score      = -orderRequestModel.use_score;
                        scoreRecord.TotalScore = CurrentUserInfo.TotalScore;
                        scoreRecord.ScoreType  = "OrderSubmit";
                        scoreRecord.UserID     = CurrentUserInfo.UserID;
                        scoreRecord.AddNote    = "微商城-下单使用积分";
                        if (!bllMall.Add(scoreRecord))
                        {
                            tran.Rollback();
                            resp.errcode = 1;
                            resp.errmsg  = "插入积分记录失败";
                            context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                            return;
                        }
                        //积分记录
                    }

                    //积分扣除
                    #endregion

                    #region 插入订单详情页及更新库存
                    foreach (var item in detailList)
                    {
                        ProductSku        productSku  = bllMall.GetProductSku((int)(item.SkuId));
                        WXMallProductInfo productInfo = bllMall.GetProduct(productSku.ProductId.ToString());
                        if (!this.bllMall.Add(item, tran))
                        {
                            tran.Rollback();
                            resp.errcode = 1;
                            resp.errmsg  = "提交失败";
                            context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return;
                        }
                        //更新 SKU库存
                        if (ZentCloud.ZCBLLEngine.BLLBase.ExecuteSql(string.Format("update ZCJ_ProductSku set Stock-={0} where SkuId={1} And Stock>0", item.TotalCount, productSku.SkuId), tran) <= 0)
                        {
                            tran.Rollback();
                            resp.errcode = 1;
                            resp.errmsg  = "提交订单失败,库存不足";
                            context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                            return;
                        }
                    }
                    #endregion
                    bllMall.DeleteShoppingCart(CurrentUserInfo.UserID, skuList);
                    bllLog.Add(BLLJIMP.Enums.EnumLogType.Mall, BLLJIMP.Enums.EnumLogTypeAction.Add, bllLog.GetCurrUserID(), "提交订单", orderInfo.OrderID);
                    tran.Commit();//提交订单事务
                }
                catch (Exception ex)
                {
                    //回滚事物
                    tran.Rollback();
                    resp.errcode = 1;
                    resp.errmsg  = "提交订单失败,内部错误";
                    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                    return;
                }
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(new
                {
                    errcode      = 0,
                    errmsg       = "ok",
                    order_id     = orderInfo.OrderID,
                    total_amount = orderInfo.TotalAmount
                }));
            }
            catch (Exception ex)
            {
                resp.errcode = 1;
                resp.errmsg  = ex.ToString();
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                return;
            }
        }
Exemple #25
0
        /// <summary>
        /// 增加运费模板
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        private string Add(HttpContext context)
        {
            string data = context.Request["data"];

            try
            {
                FreightTemplateModel requestModel = ZentCloud.Common.JSONHelper.JsonToModel <FreightTemplateModel>(data);

                ZentCloud.ZCBLLEngine.BLLTransaction tran = new ZCBLLEngine.BLLTransaction();
                try
                {
                    #region 数据有效性检查
                    if (string.IsNullOrEmpty(requestModel.freight_template_name))
                    {
                        resp.errcode = 1;
                        resp.errmsg  = "模板名称不能为空";
                        return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                    }
                    if (requestModel.valuation_rules.Count == 0)
                    {
                        resp.errcode = 1;
                        resp.errmsg  = "配送区域不能为空";
                        return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                    }
                    foreach (var rule in requestModel.valuation_rules)
                    {
                        if (rule.area_code_list.Count == 0)
                        {
                            resp.errcode = 1;
                            resp.errmsg  = "配送区域不能为空";
                            return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                        }
                    }
                    List <string> areaCodeList = new List <string>();
                    foreach (var rule in requestModel.valuation_rules)
                    {
                        foreach (string areaCode in rule.area_code_list)
                        {
                            areaCodeList.Add(areaCode);
                        }
                    }

                    if (areaCodeList.Count != areaCodeList.Distinct().Count())
                    {
                        resp.errcode = 1;
                        resp.errmsg  = "配送区域重复,请检查";
                        return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                    }

                    #endregion

                    BLLJIMP.Model.FreightTemplate freightTemplateInfo = new BLLJIMP.Model.FreightTemplate();
                    freightTemplateInfo.InsertDate            = DateTime.Now;
                    freightTemplateInfo.IsEnable              = requestModel.is_enable;
                    freightTemplateInfo.TemplateId            = int.Parse(bllMall.GetGUID(BLLJIMP.TransacType.AddFreightTemplate));
                    freightTemplateInfo.TemplateName          = requestModel.freight_template_name;
                    freightTemplateInfo.WebsiteOwner          = bllMall.WebsiteOwner;
                    freightTemplateInfo.CalcType              = !string.IsNullOrEmpty(requestModel.calc_type)?requestModel.calc_type:"count";//默认按件数计费
                    freightTemplateInfo.LastModifyDate        = DateTime.Now;
                    freightTemplateInfo.FreightFreeLimitValue = requestModel.freight_free_limit;
                    freightTemplateInfo.FreightFreeLimitType  = requestModel.freight_limit_type;
                    if (!bllMall.Add(freightTemplateInfo, tran))
                    {
                        tran.Rollback();
                        resp.errcode = 1;
                        resp.errmsg  = "插入模板表失败";
                        return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                    }

                    foreach (var rule in requestModel.valuation_rules)
                    {
                        BLLJIMP.Model.FreightTemplateRule freightTemplateRule = new BLLJIMP.Model.FreightTemplateRule();
                        freightTemplateRule.InitialProductCount = rule.initial_product_count;
                        freightTemplateRule.InitialAmount       = rule.initial_amount;
                        freightTemplateRule.AddProductCount     = rule.add_product_count;
                        freightTemplateRule.AddAmount           = rule.add_amount;
                        freightTemplateRule.AreaCodes           = string.Join(",", rule.area_code_list);
                        freightTemplateRule.TemplateId          = freightTemplateInfo.TemplateId;
                        freightTemplateRule.WebsiteOwner        = bllMall.WebsiteOwner;
                        if (freightTemplateRule.AddProductCount == 0)
                        {
                            freightTemplateRule.AddProductCount = 1;
                        }
                        if (!bllMall.Add(freightTemplateRule))
                        {
                            tran.Rollback();
                            resp.errcode = 1;
                            resp.errmsg  = "插入模板规则表失败";
                            return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                        }
                    }



                    tran.Commit();
                    resp.errcode = 0;
                    resp.errmsg  = "ok";
                    return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                }
                catch (Exception ex)
                {
                    tran.Rollback();
                    resp.errcode = 1;
                    resp.errmsg  = ex.Message;
                }
            }
            catch (Exception)
            {
                resp.errcode = 1;
                resp.errmsg  = "JSON 格式错误,请检查";
            }

            return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
        }
Exemple #26
0
        ///// <summary>
        ///// 更新投票数 OLD VERSION
        ///// </summary>
        ///// <returns></returns>
        //public bool UpdateVoteObjectVoteCount(int voteId,int voteObjectId,string userId,int count){
        //    ZentCloud.ZCBLLEngine.BLLTransaction tran = new ZCBLLEngine.BLLTransaction();
        //    try
        //    {
        //        VoteInfo VoteInfo = GetSingleVoteInfo(voteId);
        //        int VoteLogCount = GetVoteLogCount(voteId, userId);
        //        int AddCount = 0;
        //        if (VoteLogCount<=VoteInfo.FreeVoteCount)
        //        {
        //            AddCount = VoteInfo.FreeVoteCount - VoteLogCount;
        //        }

        //        if (VoteInfo==null||VoteInfo.VoteStatus.Equals(0))
        //        {
        //            return false;
        //        }

        //        bool logresult = false;
        //        int logcount = 0;
        //        for (int i =1; i <=count; i++)
        //        {
        //            VoteLogInfo log = new VoteLogInfo();
        //            log.UserID = userId;
        //            log.VoteID = voteId;
        //            log.VoteObjectID = voteObjectId;
        //            log.InsertDate = DateTime.Now;
        //            log.CreateUserID = VoteInfo.CreateUserID;
        //            log.WebsiteOwner = WebsiteOwner;
        //            log.VoteCount = count;
        //            if (Add(log,tran))
        //            {
        //                logcount++;
        //                VoteLogCount++;

        //            }

        //        }
        //        if (count!=logcount)
        //        {
        //            tran.Rollback();
        //            return false;
        //        }
        //        else
        //        {
        //            logresult = true;
        //        }

        //        if (logresult)
        //        {
        //            VoteObjectInfo model = GetSingleVoteObjectInfo(voteObjectId);
        //            model.VoteCount += count;
        //            if (Update(model))
        //            {

        //                if (VoteInfo.IsFree.Equals(0))//收费 检查是否需要扣除用户剩余票数
        //                {

        //                    int FreeVoteCount = VoteInfo.FreeVoteCount-VoteLogCount;
        //                    //计算应该扣除的点数



        //                    //计算应该扣除的点数
        //                    if (FreeVoteCount<0)//剩余票数不够,减掉用户购买的的票数
        //                    {

        //                        //
        //                        UserInfo userInfo = new BLLUser("").GetUserInfo(userId);
        //                        userInfo.AvailableVoteCount -=count-AddCount;

        //                        if (userInfo.AvailableVoteCount<0)
        //                        {
        //                            userInfo.AvailableVoteCount = 0;
        //                        }
        //                        if (Update(userInfo,tran))
        //                        {
        //                            tran.Commit();
        //                            return true;
        //                        }
        //                        else
        //                        {
        //                            tran.Rollback();
        //                            return false;
        //                        }


        // /                    }
        //                    else
        //                    {
        //                        tran.Commit();
        //                        return true;

        //                    }


        //                }
        //                else
        //                {
        //                    tran.Commit();
        //                    return true;

        //                }


        //            }
        //            else
        //            {
        //                tran.Rollback();
        //                return false;

        //            }
        //        }
        //        else
        //        {
        //            tran.Rollback();
        //            return false;

        //        }

        //    }
        //    catch (Exception)
        //    {

        //        tran.Rollback();
        //        return false;
        //    }


        //}


        /// <summary>
        /// 更新投票数 20140917
        /// </summary>
        /// <returns></returns>
        public bool UpdateVoteObjectVoteCount(int voteId, int voteObjectId, string userId, int count)
        {
            ZentCloud.ZCBLLEngine.BLLTransaction tran = new ZCBLLEngine.BLLTransaction();
            try
            {
                VoteInfo voteInfo = GetVoteInfo(voteId);



                //int voteLogCount = GetVoteLogCount(voteId, userId);
                //int addCount = 0;
                //if (voteLogCount <= voteInfo.FreeVoteCount)
                //{
                //    addCount = voteInfo.FreeVoteCount - voteLogCount;
                //}

                if (voteInfo == null || voteInfo.VoteStatus.Equals(0))
                {
                    return(false);
                }

                bool        logResult = false;//是否可以投票标识
                VoteLogInfo log       = new VoteLogInfo();
                log.UserID       = userId;
                log.VoteID       = voteId;
                log.VoteObjectID = voteObjectId;
                log.InsertDate   = DateTime.Now;
                log.CreateUserID = voteInfo.CreateUserID;
                log.WebsiteOwner = WebsiteOwner;
                log.VoteCount    = count;
                log.IP           = System.Web.HttpContext.Current.Request.UserHostAddress;
                log.IPLocation   = Common.MySpider.GetIPLocation(log.IP);
                if (!Add(log, tran))
                {
                    tran.Rollback();
                    return(false);
                }
                else
                {
                    //voteLogCount += count;
                    logResult = true;
                }



                if (logResult)
                {
                    VoteObjectInfo model = GetVoteObjectInfo(voteObjectId);
                    model.VoteCount += count;
                    if (Update(model))
                    {
                        //if (voteInfo.IsFree.Equals(0))//收费 检查是否需要扣除用户剩余票数
                        //{

                        //    int freeVoteCount = voteInfo.FreeVoteCount - voteLogCount;
                        //    //计算应该扣除的点数



                        //    //计算应该扣除的点数
                        //    if (freeVoteCount < 0)//剩余票数不够,减掉用户购买的的票数
                        //    {

                        //        //
                        //        UserInfo userInfo =  bllUser.GetUserInfo(userId);
                        //        userInfo.AvailableVoteCount -= count - addCount;
                        //        if (userInfo.AvailableVoteCount < 0)
                        //        {
                        //            userInfo.AvailableVoteCount = 0;
                        //        }
                        //        if (Update(userInfo, string.Format(" AvailableVoteCount={0}", userInfo.AvailableVoteCount), string.Format(" AutoID={0}", userInfo.AutoID), tran) > 0)
                        //        {
                        //            tran.Commit();
                        //            return true;
                        //        }
                        //        else
                        //        {
                        //            tran.Rollback();
                        //            return false;
                        //        }


                        //    }
                        //    else
                        //    {
                        //        tran.Commit();
                        //        return true;

                        //    }


                        //}
                        //else
                        //{
                        tran.Commit();
                        return(true);

                        //}
                    }
                    else
                    {
                        tran.Rollback();
                        return(false);
                    }
                }
                else
                {
                    tran.Rollback();
                    return(false);
                }
            }
            catch (Exception)
            {
                tran.Rollback();
                return(false);
            }
        }
Exemple #27
0
        /// <summary>
        /// 添加预约
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        private string AddOrder(HttpContext context)
        {
            try
            {
                string   id  = context.Request["id"]; //多个医生id
                string[] ids = new string[] { };      //多个医生id
                if (!string.IsNullOrEmpty(id))
                {
                    id  = id.TrimStart(',').TrimEnd(',');
                    ids = id.Split(',');
                }
                if (ids.Length >= 1)//检查是否可以预约
                {
                    foreach (var item in ids)
                    {
                        WXMallProductInfo productInfoCheck = bllMall.GetProduct(item);
                        if (productInfoCheck != null)
                        {
                            if (productInfoCheck.Stock <= 0)
                            {
                                apiResp.msg = string.Format("专家{0}的预约已满", productInfoCheck.PName);
                                return(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                            }
                        }
                    }
                }

                WXMallProductInfo productInfo = new WXMallProductInfo();
                WXMallOrderInfo   orderInfo   = bllMall.ConvertRequestToModel <WXMallOrderInfo>(new WXMallOrderInfo());
                if (string.IsNullOrEmpty(orderInfo.Consignee))
                {
                    apiResp.msg = "请填写姓名";
                    return(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                }
                if (string.IsNullOrEmpty(orderInfo.Ex1))
                {
                    apiResp.msg = "请填写年龄";
                    return(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                }
                if (string.IsNullOrEmpty(orderInfo.Ex2))
                {
                    apiResp.msg = "请选择性别";
                    return(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                }
                if (string.IsNullOrEmpty(orderInfo.Phone))
                {
                    apiResp.msg = "请填写手机号";
                    return(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                }
                if (!Common.MyRegex.PhoneNumLogicJudge(orderInfo.Phone))
                {
                    apiResp.msg = "请输入正确手机号";
                    return(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                }

                StringBuilder sbWhere = new StringBuilder();
                sbWhere.AppendFormat("  WebsiteOwner='{0}' And TableName ='ZCJ_WXMallOrderInfo' Order by Sort DESC", bllMall.WebsiteOwner);
                var fieldList = bllMall.GetList <TableFieldMapping>(sbWhere.ToString());
                if (fieldList != null && fieldList.Count > 0)
                {
                    Type type = orderInfo.GetType();
                    fieldList = fieldList.Where(p => p.FieldIsNull == 0).ToList();
                    foreach (var field in fieldList)
                    {
                        System.Reflection.PropertyInfo propertyInfo = type.GetProperty(field.Field); //获取指定名称的属性
                        var value = propertyInfo.GetValue(orderInfo, null);                          //获取属性值
                        if (value == null || string.IsNullOrEmpty(value.ToString()))
                        {
                            switch (field.FieldType)
                            {
                            case "text":
                                apiResp.msg = "请填写 " + field.MappingName;
                                break;

                            case "combox":    //下拉框
                                apiResp.msg = "请选择 " + field.MappingName;
                                break;

                            case "checkbox":    //下拉框
                                apiResp.msg = "请选择 " + field.MappingName;
                                break;

                            default:
                                break;
                            }

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



                orderInfo.OrderID      = bllMall.GetGUID(BLLJIMP.TransacType.AddMallOrder);
                orderInfo.WebsiteOwner = bllMall.WebsiteOwner;
                orderInfo.InsertDate   = DateTime.Now;
                orderInfo.OrderUserID  = "defualt";
                orderInfo.Status       = "未确认";
                if (bllMall.IsLogin)
                {
                    orderInfo.OrderUserID = bllUser.GetCurrUserID();
                }
                if (!string.IsNullOrEmpty(orderInfo.Ex6))//科系
                {
                    //推荐
                    int categoryId;
                    if (int.TryParse(orderInfo.Ex6, out categoryId))
                    {
                        WXMallCategory category = bllMall.Get <WXMallCategory>(string.Format(" AutoId={0}", categoryId));
                        if (category != null)
                        {
                            orderInfo.Ex6 = category.CategoryName;
                        }
                    }
                }
                else
                {
                    //正常预约
                    if (ids.Length == 1)
                    {
                        productInfo = bllMall.GetProduct(ids[0]);
                        if (productInfo != null)
                        {
                            if (!string.IsNullOrEmpty(productInfo.CategoryId))
                            {
                                WXMallCategory category = bllMall.Get <WXMallCategory>(string.Format(" AutoId={0}", productInfo.CategoryId));
                                if (category != null)
                                {
                                    orderInfo.Ex6 = category.CategoryName;
                                }
                            }
                        }
                    }
                }
                if (!string.IsNullOrEmpty(orderInfo.Ex5))//医生 名字或多个Id
                {
                    orderInfo.Ex5 = orderInfo.Ex5.TrimStart(',').TrimEnd(',');
                    string names = "";
                    foreach (var item in orderInfo.Ex5.Split(','))
                    {
                        int pId;
                        if (int.TryParse(item, out pId))
                        {
                            productInfo = bllMall.GetProduct(pId.ToString());
                            if (productInfo != null)
                            {
                                names += productInfo.PName + ",";
                                if (productInfo.Stock <= 0)
                                {
                                    apiResp.msg = string.Format("专家{0}的预约已满", productInfo.PName);
                                    return(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                                }
                            }
                        }
                    }
                    if (orderInfo.Ex5.Split(',').Length >= 1 && (!string.IsNullOrEmpty(names)))
                    {
                        orderInfo.Ex5 = names.TrimEnd(',');
                    }
                }

                ZentCloud.ZCBLLEngine.BLLTransaction tran = new ZCBLLEngine.BLLTransaction();
                if (!bllMall.Add(orderInfo, tran))
                {
                    apiResp.msg = "操作失败";
                    return(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                }
                if (ids.Length > 0)
                {
                    if (bllMall.Update(productInfo, string.Format("Stock-=1,SaleCount+=1"), string.Format("PID in({0})", id)) < ids.Length)
                    {
                        tran.Rollback();
                        apiResp.msg = "操作失败";
                        return(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
                    }
                }

                tran.Commit();
                apiResp.status = true;
                bllWeixin.SendTemplateMessageToKefu("有新的预约", string.Format("姓名:{0}\\n手机:{1}", orderInfo.Consignee, orderInfo.Phone));
            }
            catch (Exception ex)
            {
                apiResp.msg = ex.Message;
            }

            return(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp));
        }
Exemple #28
0
        /// <summary>
        /// 投票
        /// </summary>
        /// <param name="voteId">投票ID</param>
        /// <param name="voteObjectId">选手ID</param>
        /// <param name="userId">用户ID</param>
        /// <param name="count">票数</param>
        /// <param name="msg">信息</param>
        /// <returns></returns>
        public bool UpdateVoteObjectVoteCount(int voteId, int voteObjectId, string userId, int count, out string msg)
        {
            msg = "false";
            VoteInfo voteInfo = GetVoteInfo(voteId);

            if (voteInfo.VoteStatus.Equals(0))
            {
                msg = "投票停止";
                return(false);
            }
            if (!string.IsNullOrEmpty(voteInfo.StopDate))
            {
                if (DateTime.Now >= (DateTime.Parse(voteInfo.StopDate)))
                {
                    msg = "投票结束";
                    return(false);
                }
            }

            VoteObjectInfo voteObj = GetVoteObjectInfo(voteObjectId);

            if (!voteObj.Status.Equals(1))
            {
                msg = "审核通过的选手才能投票";
                return(false);
            }
            //检查是否可以投票
            if (voteInfo.LimitType == 0)//每人最多可以投多少票
            {
                if ((GetCount <VoteLogInfo>(string.Format(" VoteId={0} And UserID='{1}' ", voteInfo.AutoID, userId)) >= voteInfo.FreeVoteCount))
                {
                    msg = "您已经投过票了";//总票数已经用完
                    return(false);
                }
            }
            else if (voteInfo.LimitType == 1)//每人每天可以投多少票
            {
                string toDay    = DateTime.Now.ToString("yyyy-MM-dd");
                string tomorrow = DateTime.Now.AddDays(1).ToString("yyyy-MM-dd");
                if (GetCount <VoteLogInfo>(string.Format(" VoteId={0} And UserID='{1}' And InsertDate>='{2}' And InsertDate<'{3}'", voteInfo.AutoID, userId, toDay, tomorrow)) >= voteInfo.FreeVoteCount)
                {
                    msg = "今天票数已经用完,明天再来吧";//总票数已经用完
                    return(false);
                }
            }
            if ((voteInfo.LimitType == 0) && GetCount <VoteLogInfo>(string.Format(" VoteId={0} And UserID='{1}' And VoteObjectID={2}", voteInfo.AutoID, userId, voteObjectId)) >= voteInfo.VoteObjectLimitVoteCount)
            {
                msg = "您已经投过票了";//每个选手最多可以投多少票
                return(false);
            }
            //检查是否可以投票
            ZentCloud.ZCBLLEngine.BLLTransaction tran = new ZCBLLEngine.BLLTransaction();
            try
            {
                VoteLogInfo log = new VoteLogInfo();
                log.UserID       = userId;
                log.VoteID       = voteId;
                log.VoteObjectID = voteObjectId;
                log.InsertDate   = DateTime.Now;
                log.CreateUserID = voteInfo.CreateUserID;
                log.WebsiteOwner = WebsiteOwner;
                log.VoteCount    = count;
                log.IP           = System.Web.HttpContext.Current.Request.UserHostAddress;
                log.IPLocation   = Common.MySpider.GetIPLocation(log.IP);
                if (!Add(log, tran))
                {
                    tran.Rollback();
                    return(false);
                }

                if (Update(voteObj, string.Format(" VoteCount+={0}", count), string.Format(" AutoID={0}", voteObj.AutoID)) > 0)
                {
                    tran.Commit();
                    msg = "投票成功";
                    return(true);
                }
                else
                {
                    tran.Rollback();
                    return(false);
                }
            }
            catch (Exception ex)
            {
                tran.Rollback();
                msg = ex.Message;
                return(false);
            }
        }
Exemple #29
0
        public void ProcessRequest(HttpContext context)
        {
            ZentCloud.ZCBLLEngine.BLLTransaction tran = new ZCBLLEngine.BLLTransaction();
            try
            {
                string        json         = context.Request["data"];
                ActivityModel requestModel = ZentCloud.Common.JSONHelper.JsonToModel <ActivityModel>(json);//jSON 反序

                JuActivityInfo model = new JuActivityInfo();
                model.JuActivityID        = int.Parse(bll.GetGUID(BLLJIMP.TransacType.CommAdd));
                model.ThumbnailsPath      = requestModel.activity_img;
                model.ActivityName        = requestModel.activity_name;
                model.ArticleType         = "train";
                model.ActivityDescription = requestModel.description;
                model.CreateDate          = DateTime.Now;
                model.IsDelete            = 0;
                model.IsFee        = 1;
                model.IsPublish    = 0;
                model.MainPoints   = requestModel.main_points;
                model.Summary      = requestModel.summary;
                model.WebsiteOwner = bll.WebsiteOwner;
                model.UserID       = currentUserInfo.UserID;
                if (!bll.Add(model, tran))
                {
                    tran.Rollback();
                    apiResp.msg = "添加失败";
                    bll.ContextResponse(context, apiResp);
                    return;
                }
                List <MeifanActivityItem> activityItems = new List <MeifanActivityItem>();
                foreach (var item in requestModel.items)
                {
                    if (string.IsNullOrEmpty(item.from_date))
                    {
                        tran.Rollback();
                        apiResp.msg = "请输入开始时间";
                        bll.ContextResponse(context, apiResp);
                        return;
                    }
                    if (string.IsNullOrEmpty(item.from_date))
                    {
                        tran.Rollback();
                        apiResp.msg = "请输入结束时间";
                        bll.ContextResponse(context, apiResp);
                        return;
                    }
                    if (string.IsNullOrEmpty(item.amount))
                    {
                        tran.Rollback();
                        apiResp.msg = "请输入金额";
                        bll.ContextResponse(context, apiResp);
                        return;
                    }

                    if (requestModel.items.Count(p => p.from_date == item.from_date && p.to_date == item.to_date && p.group_type == item.group_type && p.is_member == item.is_member) > 1)
                    {
                        tran.Rollback();
                        apiResp.msg = "时间,组别,会员类型不能重复";
                        bll.ContextResponse(context, apiResp);
                        return;
                    }

                    MeifanActivityItem itemModel = new MeifanActivityItem();
                    itemModel.ActivityId = model.JuActivityID.ToString();
                    itemModel.Amount     = decimal.Parse(item.amount);
                    itemModel.FromDate   = Convert.ToDateTime(item.from_date).ToString("yyyy/MM/dd HH:mm");
                    itemModel.ToDate     = Convert.ToDateTime(item.to_date).ToString("yyyy/MM/dd HH:mm");
                    itemModel.GroupType  = item.group_type;
                    itemModel.IsMember   = item.is_member;
                    activityItems.Add(itemModel);
                }
                if (!bll.AddList <MeifanActivityItem>(activityItems))
                {
                    tran.Rollback();
                    apiResp.msg = "添加失败";
                    bll.ContextResponse(context, apiResp);
                    return;
                }

                tran.Commit();
                apiResp.status = true;
            }
            catch (Exception ex)
            {
                tran.Rollback();
                apiResp.msg = ex.ToString();
                bll.ContextResponse(context, apiResp);
            }
            bll.ContextResponse(context, apiResp);
        }
Exemple #30
0
        public void ProcessRequest(HttpContext context)
        {
            string       data = context.Request["data"];
            RequestModel requestModel;

            try
            {
                requestModel = ZentCloud.Common.JSONHelper.JsonToModel <RequestModel>(context.Request["data"]);
            }
            catch (Exception)
            {
                resp.errcode = -1;
                resp.errmsg  = "json格式错误,请检查";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                return;
            }
            #region 检查
            if (string.IsNullOrEmpty(requestModel.user_id))
            {
                resp.errmsg  = "user_id 为必填项,请检查";
                resp.errcode = (int)BLLJIMP.Enums.APIErrCode.IsNotFound;
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                return;
            }
            if (string.IsNullOrEmpty(requestModel.user_pwd))
            {
                resp.errmsg  = "user_pwd 为必填项,请检查";
                resp.errcode = (int)BLLJIMP.Enums.APIErrCode.IsNotFound;
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                return;
            }
            if (string.IsNullOrEmpty(requestModel.isdelete) || string.IsNullOrEmpty(requestModel.isexport))
            {
                resp.errmsg  = "isdelete、isexport 为必填项,请检查";
                resp.errcode = (int)BLLJIMP.Enums.APIErrCode.IsNotFound;
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                return;
            }
            #endregion
            UserInfo userModel = new UserInfo();
            userModel.UserID          = requestModel.user_id;
            userModel.Password        = requestModel.user_pwd;
            userModel.TrueName        = requestModel.true_name;
            userModel.Company         = requestModel.user_company;
            userModel.Phone           = requestModel.user_phone;
            userModel.Postion         = requestModel.user_postion;
            userModel.WXHeadimgurl    = requestModel.wx_head_img_url;
            userModel.WebsiteOwner    = bllUser.WebsiteOwner;
            userModel.UserType        = 2;
            userModel.RegIP           = ZentCloud.Common.MySpider.GetClientIP();
            userModel.Regtime         = DateTime.Now;
            userModel.LoginTotalCount = 0;
            userModel.IsSubAccount    = "1";
            userModel.VoteCount       = requestModel.user_vote_count;
            userModel.LastLoginDate   = DateTime.Now;
            if (bllUser.Exists(userModel, "UserID"))
            {
                resp.errcode = (int)BLLJIMP.Enums.APIErrCode.IsRepeat;
                resp.errmsg  = "用户名" + userModel.UserID + "已存在!";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                return;
            }
            if (string.IsNullOrEmpty(userModel.WebsiteOwner))
            {
                userModel.WebsiteOwner = userModel.UserID;
            }
            ZentCloud.ZCBLLEngine.BLLTransaction tran = new ZCBLLEngine.BLLTransaction();
            try
            {
                if (this.bllUser.Add(userModel, tran))
                {
                    var group = new ZentCloud.BLLPermission.Model.UserPmsGroupRelationInfo()
                    {
                        UserID  = userModel.UserID,
                        GroupID = 130273//管理员组
                    };
                    if (Convert.ToBoolean(requestModel.isdelete))
                    {
                        var relation = new ZentCloud.BLLPermission.Model.PermissionRelationInfo()
                        {
                            RelationID   = userModel.UserID,
                            PermissionID = -1,
                            RelationType = 1
                        };
                        if (!bllUser.Add(relation, tran))
                        {
                            tran.Rollback();
                            resp.errcode = (int)BLLJIMP.Enums.APIErrCode.OperateFail;
                            resp.errmsg  = "权限关系添加失败";
                            context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                            return;
                        }
                    }
                    if (Convert.ToBoolean(requestModel.isexport))
                    {
                        var relations = new ZentCloud.BLLPermission.Model.PermissionRelationInfo()
                        {
                            RelationID   = userModel.UserID,
                            PermissionID = -2,
                            RelationType = 1
                        };
                        if (!bllUser.Add(relations, tran))
                        {
                            tran.Rollback();
                            resp.errcode = (int)BLLJIMP.Enums.APIErrCode.OperateFail;
                            resp.errmsg  = "权限关系添加失败";
                            context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                            return;
                        }
                    }
                    if (bllUser.Add(group, tran))//添加权限组
                    {
                        tran.Commit();
                        resp.isSuccess = true;
                        resp.errmsg    = "添加成功!";
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                        return;
                    }
                    else
                    {
                        tran.Rollback();
                        resp.errcode = (int)BLLJIMP.Enums.APIErrCode.OperateFail;
                        resp.errmsg  = "添加用户组失败!";
                        context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                        return;
                    }
                }
                else
                {
                    tran.Rollback();
                    resp.errcode = (int)BLLJIMP.Enums.APIErrCode.OperateFail;
                    resp.errmsg  = "添加用户信息失败!";
                    context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                    return;
                }
            }
            catch (Exception ex)
            {
                tran.Rollback();
                resp.errcode = (int)BLLJIMP.Enums.APIErrCode.OperateFail;
                resp.errmsg  = ex.Message;
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                return;
            }
        }