/// <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)); }
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); }
/// <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)); }
/// <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)); }
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)); }
/// <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)); }
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(); } }
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)); }
/// <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)); }
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)); }
/// <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); }
/// <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)); }
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>"); } }
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 = "无返回参数"; } }
/// <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)); }
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("无通知参数"); } }
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); }
/// <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)); }
/// <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); }
/// <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); }
/// <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)); }
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; } }
/// <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)); }
///// <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); } }
/// <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)); }
/// <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); } }
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); }
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; } }