/// <summary> /// 添加编辑医生 /// </summary> /// <param name="context"></param> /// <returns></returns> private string DoctorAddEdit(HttpContext context) { WXMallProductInfo model = bllMall.ConvertRequestToModel <WXMallProductInfo>(new WXMallProductInfo()); if (model.PID == "0")//添加 { model.PID = bllMall.GetGUID(BLLJIMP.TransacType.AddWXMallProductID); model.WebsiteOwner = bllMall.WebsiteOwner; model.UserID = currentUserInfo.UserID; model.InsertDate = DateTime.Now; if (model.ArticleCategoryType == "BookingDoctorFuYou") { model.ArticleCategoryType = "BookingDoctorFuYou"; } else { model.ArticleCategoryType = "BookingDoctor"; } if (bllMall.Add(model)) { apiResp.status = true; apiResp.msg = "添加成功"; } else { apiResp.msg = "添加失败"; } } else//编辑 { WXMallProductInfo productInfo = bllMall.GetProduct(model.PID); productInfo.PName = model.PName; productInfo.RecommendImg = model.RecommendImg; productInfo.Stock = model.Stock; productInfo.ExArticleTitle_1 = model.ExArticleTitle_1; productInfo.ExArticleTitle_2 = model.ExArticleTitle_2; productInfo.ExArticleTitle_3 = model.ExArticleTitle_3; productInfo.ExArticleTitle_4 = model.ExArticleTitle_4; productInfo.Sort = model.Sort; productInfo.CategoryId = model.CategoryId; productInfo.SaleCount = model.SaleCount; productInfo.PDescription = model.PDescription; productInfo.ShowImage1 = model.ShowImage1; productInfo.Summary = model.Summary; productInfo.IsOnSale = model.IsOnSale; productInfo.Tags = model.Tags; if (bllMall.Update(productInfo)) { apiResp.status = true; apiResp.msg = "修改成功"; } else { apiResp.msg = "修改失败"; } } return(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp)); }
public void ProcessRequest(HttpContext context) { bllMall.ToLog("进入 add 接口", "D:\\jikudevlog.txt"); string getAddressName = HttpUtility.UrlDecode(context.Request["name"]); string getAddressLocation = HttpUtility.UrlDecode(context.Request["address"]); string imgUrl = HttpUtility.UrlDecode(context.Request["imgurl"]); if (string.IsNullOrEmpty(getAddressName)) { resp.code = (int)APIErrCode.PrimaryKeyIncomplete; resp.msg = "name 参数必传"; bllMall.ToLog("进入 add 接口异常:" + ZentCloud.Common.JSONHelper.ObjectToJson(resp), "D:\\jikudevlog.txt"); context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } if (string.IsNullOrEmpty(getAddressLocation)) { resp.code = (int)APIErrCode.PrimaryKeyIncomplete; resp.msg = "address 参数必传"; bllMall.ToLog("进入 add 接口异常:" + ZentCloud.Common.JSONHelper.ObjectToJson(resp), "D:\\jikudevlog.txt"); context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } string getAddressId = bllMall.GetGUID(BLLJIMP.TransacType.CommAdd); string msg = ""; bool result = bllMall.AddGetAddress(getAddressId, getAddressName, getAddressLocation, out msg, imgUrl); if (result) { resp.status = true; resp.msg = "ok"; resp.result = new { id = getAddressId }; } else { resp.msg = msg; resp.code = (int)APIErrCode.OperateFail; } bllMall.ToLog("进入 add 接口结束 : " + ZentCloud.Common.JSONHelper.ObjectToJson(resp), "D:\\jikudevlog.txt"); context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); }
/// <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)); }
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 ReciveCardCoupon(HttpContext context) { string cardCouponId = context.Request["cardcoupon_id"]; CardCoupons cardCoupon = bllCardCoupon.GetCardCoupon(int.Parse(cardCouponId)); if (cardCoupon == null) { resp.errcode = 1; resp.errmsg = "cardcoupon_id 不存在"; return(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); } cardCoupon = bllCardCoupon.ConvertExpireTime(cardCoupon); var myCardCoupon = bllCardCoupon.GetMyCardCouponMainId(int.Parse(cardCouponId), currentUserInfo.UserID); if (myCardCoupon != null) { resp.errcode = 1; resp.errmsg = "已经领取过了"; return(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); } if (DateTime.Now > (DateTime)(cardCoupon.ValidTo)) { resp.errcode = 2; resp.errmsg = "卡券已过期"; return(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); } if (cardCoupon.MaxCount > 0) { if (bllCardCoupon.GetCardCouponSendCount(cardCoupon.CardId) >= cardCoupon.MaxCount) { resp.errcode = 2; resp.errmsg = "卡券已经领完"; return(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); } } if (cardCoupon.GetLimitType != null) { if (cardCoupon.GetLimitType == "1" && !bllUser.IsDistributionMember(currentUserInfo, true)) { resp.errcode = (int)BLLJIMP.Enums.APIErrCode.MallGetCardOnlyDistMember; resp.errmsg = "只有分销员才能领取"; return(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); } if (cardCoupon.GetLimitType == "2" && bllUser.IsDistributionMember(currentUserInfo)) { resp.errcode = (int)BLLJIMP.Enums.APIErrCode.MallGetCardOnlyNotDistMember; resp.errmsg = "该券仅新用户(无购买历史)可以领取"; return(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); } } if (!string.IsNullOrEmpty(cardCoupon.BindChannelUserId)) { if (string.IsNullOrEmpty(currentUserInfo.DistributionOwner)) { resp.errcode = (int)BLLJIMP.Enums.APIErrCode.MallGetCardOnlyChannel; resp.errmsg = "只有指定渠道才能领取"; return(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); } BLLJIMP.BLLDistribution bllDis = new BLLJIMP.BLLDistribution(); string channelUserId = bllDis.GetUserChannel(currentUserInfo); if (cardCoupon.BindChannelUserId != channelUserId) { resp.errcode = (int)BLLJIMP.Enums.APIErrCode.MallGetCardOnlyChannel; resp.errmsg = "只有指定渠道才能领取"; return(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); } } MyCardCoupons model = new MyCardCoupons(); model.CardCouponNumber = string.Format("No.{0}{1}", DateTime.Now.ToString("yyyyMMddHHmmss"), bllMall.GetGUID(BLLJIMP.TransacType.CommAdd)); model.CardCouponType = cardCoupon.CardCouponType; model.CardId = cardCoupon.CardId; model.InsertDate = DateTime.Now; model.UserId = currentUserInfo.UserID; model.WebSiteOwner = bllCardCoupon.WebsiteOwner; if (bllCardCoupon.Add(model)) { resp.errmsg = "ok"; string title = "您收到了一张优惠券"; string content = string.Format("{0}", cardCoupon.Name); if (cardCoupon.ValidTo.HasValue) { content += string.Format("\\n{0}", ((DateTime)cardCoupon.ValidTo).ToString("yyyy-MM-dd")); } string url = string.Format("http://{0}/customize/shop/?v=1.0&ngroute=/mycoupons#/mycoupons", context.Request.Url.Host); if (bllUser.WebsiteOwner == "jikuwifi") { url = string.Format("http://{0}/customize/jikuwifi/?v=1.0&ngroute=/mycoupons#/mycoupons", context.Request.Url.Host); } bllWeixin.SendTemplateMessageNotifyComm(currentUserInfo, title, content, url); //#region 同时发放到微信卡包 //if (!string.IsNullOrEmpty(cardCoupon.WeixinCardId) && (!string.IsNullOrEmpty(CurrentUserInfo.WXOpenId))) //{ // bllWeixinCard.SendByMass(cardCoupon.WeixinCardId, CurrentUserInfo.WXOpenId); //} //#endregion } else { resp.errcode = 1; resp.errmsg = "领取优惠券失败"; return(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); } return(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); }
/// <summary> /// 添加订单 /// </summary> public void AddOrder(string oorderInfo, string websiteOwner) { OOrder oorder = ZentCloud.Common.JSONHelper.JsonToModel <OOrder>(oorderInfo); WXMallOrderInfo mallOrder = bllMall.Get <WXMallOrderInfo>(string.Format(" WebsiteOwner='{0}' AND OutOrderId='{1}'", websiteOwner, oorder.orderId)); if (mallOrder == null) { mallOrder = new WXMallOrderInfo(); ZentCloud.ZCBLLEngine.BLLTransaction tran = new ZentCloud.ZCBLLEngine.BLLTransaction(); mallOrder.OrderID = bllMall.GetGUID(ZentCloud.BLLJIMP.TransacType.AddMallOrder); mallOrder.OutOrderId = oorder.orderId; mallOrder.Address = oorder.address; mallOrder.OrderType = 8; mallOrder.WebsiteOwner = websiteOwner; mallOrder.TakeOutType = "Eleme"; mallOrder.OrderMemo = oorder.description; if (!string.IsNullOrEmpty(oorder.createdAt)) { mallOrder.InsertDate = GetDate(oorder.createdAt); } if (!string.IsNullOrEmpty(oorder.activeAt)) { mallOrder.PayTime = GetDate(oorder.activeAt); } if (oorder.deliverFee.HasValue) { mallOrder.Transport_Fee = (decimal)oorder.deliverFee; } if (!string.IsNullOrEmpty(oorder.deliverTime)) { mallOrder.Ex2 = GetDate(oorder.deliverTime).ToString(); } mallOrder.Ex3 = oorder.invoice; mallOrder.Ex4 = oorder.book.ToString(); mallOrder.Ex5 = oorder.onlinePaid.ToString(); List <string> phoneList = oorder.phoneList; if (phoneList.Count > 0) { for (int i = 0; i < phoneList.Count; i++) { if (i == 0) { mallOrder.Phone = phoneList[i]; } mallOrder.Ex6 += phoneList[i] + ","; } mallOrder.Ex6 = mallOrder.Ex6.Remove(mallOrder.Ex6.Length - 1, 1); } mallOrder.Ex7 = oorder.shopId.ToString(); mallOrder.Ex9 = oorder.shopName; mallOrder.OrderUserID = oorder.userId.ToString(); if (oorder.totalPrice.HasValue) { mallOrder.TotalAmount = (decimal)oorder.totalPrice; } if (oorder.originalPrice.HasValue) { mallOrder.Ex10 = oorder.originalPrice.ToString(); } mallOrder.Consignee = oorder.consignee; mallOrder.Ex11 = oorder.deliveryGeo; mallOrder.Ex12 = oorder.deliveryPoiAddress; mallOrder.Ex13 = oorder.invoiced.ToString(); if (oorder.income.HasValue) { mallOrder.Ex14 = oorder.income.ToString(); } if (oorder.serviceRate.HasValue) { mallOrder.Ex15 = oorder.serviceRate.ToString(); } if (oorder.serviceFee.HasValue) { mallOrder.Ex16 = oorder.serviceFee.ToString(); } if (oorder.hongbao.HasValue) { mallOrder.Ex17 = oorder.hongbao.ToString(); } if (oorder.packageFee.HasValue) { mallOrder.Ex18 = oorder.packageFee.ToString(); } if (oorder.activityTotal.HasValue) { mallOrder.Ex19 = oorder.activityTotal.ToString(); } if (oorder.shopPart.HasValue) { mallOrder.Ex20 = oorder.shopPart.ToString(); } if (oorder.elemePart.HasValue) { mallOrder.Ex21 = oorder.elemePart.ToString(); } if (mallOrder.TotalAmount > 0) { mallOrder.PaymentStatus = 1; } mallOrder.Ex22 = oorder.downgraded.ToString(); mallOrder.OutOrderStatus = GetOrderStatus(oorder.status); mallOrder.Status = "待发货"; mallOrder.OutRefundStatus = GetRefStatus(oorder.refundStatus); mallOrder.Ex8 = oorder.openId; if (oorder.vipDeliveryFeeDiscount.HasValue) { mallOrder.Ex10 = oorder.vipDeliveryFeeDiscount.ToString(); } if (!bllWebsite.Add(mallOrder, tran)) { tran.Rollback(); resp.msg = "添加订单出错"; Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } List <OGoodsGroup> goodsGroupList = oorder.groups; foreach (var item in goodsGroupList) { WXMallOrderDetailsInfo oorderDetail = new WXMallOrderDetailsInfo(); oorderDetail.Ex1 = item.name; oorderDetail.Ex2 = item.type; oorderDetail.OrderID = mallOrder.OrderID; List <OGoodsItem> goodItems = item.items; foreach (var good in goodItems) { oorderDetail.PID = good.id.ToString(); oorderDetail.Ex3 = good.id.ToString(); oorderDetail.Ex9 = good.skuId.ToString(); oorderDetail.ProductName = good.name; oorderDetail.Ex4 = good.categoryId.ToString(); if (good.price.HasValue) { oorderDetail.OrderPrice = (decimal)good.price; } oorderDetail.TotalCount = good.quantity; if (good.total.HasValue) { oorderDetail.TotalPrice = (decimal)good.total; } oorderDetail.Ex7 = good.extendCode; oorderDetail.Ex8 = good.barCode; if (good.userPrice.HasValue) { oorderDetail.Ex10 = good.userPrice.ToString(); } if (good.shopPrice.HasValue) { oorderDetail.Ex11 = good.shopPrice.ToString(); } if (good.weight.HasValue) { oorderDetail.Wegith = (decimal)good.weight; } oorderDetail.Unit = "元"; if (good.newSpecs != null) { List <OGroupItemSpec> specList = good.newSpecs; oorderDetail.Ex5 = ZentCloud.Common.JSONHelper.ListToJson <OGroupItemSpec>(specList); } if (good.attributes != null) { List <OGroupItemAttribute> attrList = good.attributes; oorderDetail.Ex6 = ZentCloud.Common.JSONHelper.ListToJson <OGroupItemAttribute>(attrList); } if (!bllWebsite.Add(oorderDetail, tran)) { tran.Rollback(); resp.msg = "添加商品出错"; Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } } } tran.Commit(); } }
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; currentUserInfo = bllUser.GetCurrentUserInfo(); string data = context.Request["data"]; decimal productFee = 0; //商品总价格 不包含邮费 OrderRequestModel orderRequestModel = new OrderRequestModel(); //订单模型 try { orderRequestModel = ZentCloud.Common.JSONHelper.JsonToModel <OrderRequestModel>(data); } catch (Exception ex) { resp.errcode = 1; resp.errmsg = "JSON格式错误,请检查。错误信息:" + ex.Message; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); } WXMallOrderInfo orderInfo = new WXMallOrderInfo();//订单表 orderInfo.InsertDate = DateTime.Now; orderInfo.OrderUserID = currentUserInfo.UserID; orderInfo.WebsiteOwner = bllMall.WebsiteOwner; orderInfo.Transport_Fee = 0; orderInfo.OrderID = bllMall.GetGUID(BLLJIMP.TransacType.AddMallOrder); orderInfo.OrderMemo = orderRequestModel.buyer_memo; orderInfo.MyCouponCardId = orderRequestModel.cardcoupon_id.ToString(); orderInfo.UseScore = orderRequestModel.use_score; orderInfo.Status = "待付款"; orderInfo.OrderType = 1; if (orderRequestModel.pay_type == "WEIXIN")//微信支付 { orderInfo.PaymentType = 2; } else if (orderRequestModel.pay_type == "ALIPAY")//支付宝支付 { orderInfo.PaymentType = 1; } #region 格式检查 //相关检查 if (orderRequestModel.skus == null) { resp.errcode = 1; resp.errmsg = "参数skus 不能为空"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } //相关检查 #endregion #region 商品检查 订单详情生成 ///订单详情 List <WXMallOrderDetailsInfo> detailList = new List <WXMallOrderDetailsInfo>();//订单详情 orderRequestModel.skus = orderRequestModel.skus.Distinct().ToList(); 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.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 (bllMall.IsPromotionTime(productSku)) { if (sku.count > productSku.PromotionStock) { resp.errcode = 1; resp.errmsg = string.Format("{0}{1}特卖库存余量为{2},库存不足,请减少购买数量", productInfo.PName, bllMall.GetProductShowProperties(productSku.SkuId), productSku.PromotionStock); 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; detailModel.OrderPrice = bllMall.GetSkuPrice(productSku); detailModel.ProductName = productInfo.PName; detailModel.SkuId = productSku.SkuId; detailModel.SkuShowProp = bllMall.GetProductShowProperties(productSku.SkuId); detailList.Add(detailModel); } #endregion productFee = detailList.Sum(p => p.OrderPrice * p.TotalCount).Value;//商品费用 //物流费用 #region 运费计算 FreightModel freightModel = new FreightModel(); freightModel.skus = orderRequestModel.skus; decimal freight = 0;//运费 string freightMsg = ""; 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 #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) { 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; } } //优惠券计算 #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); } #region 驿氪积分同步 #endregion //积分计算 #endregion //合计计算 orderInfo.Product_Fee = productFee; orderInfo.TotalAmount = orderInfo.Product_Fee + orderInfo.Transport_Fee; 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; } 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; } //积分记录 WXMallScoreRecord scoreRecord = new WXMallScoreRecord(); scoreRecord.InsertDate = DateTime.Now; scoreRecord.OrderID = orderInfo.OrderID; scoreRecord.Score = orderRequestModel.use_score; scoreRecord.Type = 1; scoreRecord.UserId = currentUserInfo.UserID; scoreRecord.WebsiteOwner = bllMall.WebsiteOwner; scoreRecord.Remark = "积分抵扣"; 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库存 productSku.Stock -= item.TotalCount; if (bllMall.IsPromotionTime(productSku)) { productSku.PromotionStock -= item.TotalCount; } if (!bllMall.Update(productSku, tran)) { tran.Rollback(); resp.errcode = 1; resp.errmsg = "更新SKU失败"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } } #endregion tran.Commit();//提交订单事务 } catch (Exception ex) { //回滚事物 tran.Rollback(); resp.errcode = 1; resp.errmsg = ex.Message; 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 })); }
/// <summary> /// 接收活动转赠 /// </summary> /// <param name="context"></param> /// <returns></returns> private string ReceiveActivity(HttpContext context) { if (currentUserInfo==null) { resp.Msg = "请在微信中打开"; return ZentCloud.Common.JSONHelper.ObjectToJson(resp); } string activityId = context.Request["ActivityId"];//活动ID string fromUserAutoId = context.Request["FromUserAutoId"];//赠送用户ID JuActivityInfo juActivityInfo = bllJuactivity.GetJuActivityByActivityID(activityId); //检查 if (juActivityInfo == null) { resp.Msg = "转赠活动不存在"; return ZentCloud.Common.JSONHelper.ObjectToJson(resp); } UserInfo fromUserInfo = bllUser.GetUserInfoByAutoID(int.Parse(fromUserAutoId)); if (fromUserInfo == null) { resp.Msg = "转赠用户不存在"; return ZentCloud.Common.JSONHelper.ObjectToJson(resp); } WXSignInInfo signInfo = bllActivity.Get<WXSignInInfo>(string.Format(" JuActivityID='{0}' And SignInUserID='{1}'", juActivityInfo.JuActivityID, fromUserInfo.UserID)); if (signInfo!=null) { resp.Msg = "不能接受此转赠"; return ZentCloud.Common.JSONHelper.ObjectToJson(resp); } ActivityDataInfo dataInfo = bllActivity.Get<ActivityDataInfo>(string.Format(" ActivityID='{0}' And UserId='{1}' And IsDelete=0 And OrderId!='' And PaymentStatus=1", activityId, fromUserInfo.UserID)); if (dataInfo == null) { resp.Msg = " 不能接受此转赠"; return ZentCloud.Common.JSONHelper.ObjectToJson(resp); } if (fromUserInfo.UserID==currentUserInfo.UserID) { resp.Msg = "不能接收自己的转赠"; return ZentCloud.Common.JSONHelper.ObjectToJson(resp); } if (!string.IsNullOrEmpty(dataInfo.ToUserId)) { if (dataInfo.ToUserId == currentUserInfo.UserID) { resp.Msg = " 您已经接收过转赠"; return ZentCloud.Common.JSONHelper.ObjectToJson(resp); } else { resp.Msg = " 此活动已经转赠过了"; return ZentCloud.Common.JSONHelper.ObjectToJson(resp); } } ActivityDataInfo dataCurrentInfo = bllActivity.Get<ActivityDataInfo>(string.Format(" ActivityID='{0}' And UserId='{1}' And IsDelete=0", activityId,currentUserInfo.UserID)); if (dataCurrentInfo!=null) { resp.Msg = " 您已经报名过此活动,不能再接受转赠"; return ZentCloud.Common.JSONHelper.ObjectToJson(resp); } WXMallOrderInfo fromUserOrderInfo = bllMall.GetOrderInfo(dataInfo.OrderId); ZentCloud.ZCBLLEngine.BLLTransaction tran = new ZCBLLEngine.BLLTransaction(); try { //订单 WXMallOrderInfo orderInfo = new WXMallOrderInfo();//订单表 orderInfo.Consignee = bllUser.GetUserDispalyName(currentUserInfo); orderInfo.InsertDate = DateTime.Now; orderInfo.OrderUserID = currentUserInfo.UserID; orderInfo.Phone = currentUserInfo.Phone; orderInfo.WebsiteOwner = bllMall.WebsiteOwner; orderInfo.OrderID = bllMall.GetGUID(BLLJIMP.TransacType.AddMallOrder); orderInfo.MyCouponCardId = fromUserOrderInfo.MyCouponCardId; orderInfo.UseScore = fromUserOrderInfo.UseScore; orderInfo.Status = "待发货"; orderInfo.ArticleCategoryType = "Mall"; orderInfo.OrderType = 4; orderInfo.Ex1 = juActivityInfo.ActivityName; orderInfo.Ex2 = orderInfo.Ex2; orderInfo.Ex3 = orderInfo.Ex3; orderInfo.OrderMemo = orderInfo.OrderMemo; orderInfo.TotalAmount = fromUserOrderInfo.TotalAmount; orderInfo.PaymentStatus = 1; orderInfo.PayTime = DateTime.Now; //订单 if (!bllMall.Add(orderInfo,tran)) { tran.Rollback(); resp.Msg = " 插入订单表失败"; return ZentCloud.Common.JSONHelper.ObjectToJson(resp); } ActivityDataInfo newData = new ActivityDataInfo(); newData.ActivityID = dataInfo.ActivityID; newData.UserId = currentUserInfo.UserID; newData.WebsiteOwner = bllUser.WebsiteOwner; newData.OrderId =orderInfo.OrderID; newData.PaymentStatus = 1; newData.Name = bllUser.GetUserDispalyName(currentUserInfo); newData.Phone = currentUserInfo.Phone; newData.FromUserId = fromUserInfo.UserID; newData.InsertDate = DateTime.Now; newData.UID = bllJuactivity.Get<ActivityDataInfo>(string.Format(" ActivityID='{0}' Order By UID DESC",activityId)).UID + 1; if (!bllJuactivity.Add(newData, tran)) { tran.Rollback(); resp.Msg = " 插入报名表失败"; return ZentCloud.Common.JSONHelper.ObjectToJson(resp); } dataInfo.ToUserId = currentUserInfo.UserID; if (!bllJuactivity.Update(dataInfo,tran)) { tran.Rollback(); resp.Msg = " 转赠失败"; return ZentCloud.Common.JSONHelper.ObjectToJson(resp); } string showName = "活动"; var config = bllActivity.Get<BLLJIMP.Model.ActivityConfig>(string.Format(" WebsiteOwner='{0}'", bllActivity.WebsiteOwner)); if (config!=null) { if (!string.IsNullOrEmpty(config.ShowName)) { showName = config.ShowName; } } bllWeixin.SendTemplateMessageNotifyComm(fromUserInfo, string.Format("{0}转赠通知",showName), string.Format(" {0}已接收你转赠的{1}{2}", bllUser.GetUserDispalyName(currentUserInfo),showName,juActivityInfo.ActivityName)); bllWeixin.SendTemplateMessageNotifyComm(currentUserInfo, string.Format("{0}接收通知",showName), string.Format(" 您已接收了{0}转赠的{1}{2}", bllUser.GetUserDispalyName(fromUserInfo), showName,juActivityInfo.ActivityName)); tran.Commit(); resp.Status = 1; resp.Msg = "ok"; } catch (Exception ex) { resp.Msg = ex.Message; tran.Rollback(); } return ZentCloud.Common.JSONHelper.ObjectToJson(resp); }