/// <summary> /// 获取订单所属的团信息 /// </summary> /// <param name="OrderCode"></param> /// <returns></returns> public TeamInfoEntity GetTeamInfoEntity(string OrderCode) { TeamInfoEntity entity = new TeamInfoEntity(); entity = teamDal.GetTeamInfoEntity(OrderCode); return(entity); }
/// <summary> /// 团订单支付处理 /// </summary> /// <param name="entity"></param> /// <param name="OrderCode"></param> /// <param name="teamInfoEntity"></param> /// <param name="TradeNo"></param> /// <param name="PayBackRemark"></param> /// <param name="DeliveryRegion"></param> /// <param name="language"></param> /// <returns></returns> public bool TeamOrderPay(OrderPaymentEntity entity, string OrderCode, TeamInfoEntity teamInfoEntity , string TradeNo, string PayBackRemark, int DeliveryRegion, int language) { if (entity.PayStatus != 1) { //LogHelper.Error("订单异常 发给支付宝的支付号为:" + OrderCode); return(false); } else { if (teamInfoEntity.TeamStatus == 2 || teamInfoEntity.TeamStatus == 3) { //LogHelper.Error("团订单异常 发给支付宝的支付号为:" + OrderCode); return(false); } // 组件订单支付信息对象 OrderPaymentEntity orderPaymentEntity = BuildOrderPaymentEntity(TradeNo, entity, PayBackRemark); // 更新库存、支付和订单等信息 UpdatePayInfo(TradeNo, entity, PayBackRemark, orderPaymentEntity, 2); //LogHelper.Info("--------TeamPayAfter----2-----" + teamInfoEntity); /// 获取团详情信息 var teamDetailList = teamBll.GetTeamDetailListForStatus(teamInfoEntity.TeamCode); //LogHelper.Info("--------TeamPayAfter----3-----" + teamDetailList.Count()); if (teamDetailList == null) { return(false); } // 获得参团成功的团员数量 int teamSucStatusCount = GetTeamSucStatusCount(teamDetailList); /// 团订单中最后一人支付成功 if (teamSucStatusCount == (teamDetailList.First().TeamNumbers - 1)) { //LogHelper.Info("--------TeamPayAfter----4-----最后一人支付成功" + teamSucStatusCount); // 团订单最后一人支付 TeamOrderLastPay(teamInfoEntity, entity, orderPaymentEntity , DeliveryRegion, language, teamDetailList); } /// 不是最后一人支付成功 else { //LogHelper.Info("--------TeamPayAfter----5-----" + teamSucStatusCount); // 团订单不是最后一人支付 TeamOrderNotLastPay(teamInfoEntity, entity, orderPaymentEntity); } return(true); } }
/// <summary> /// 查看团的状态 /// </summary> public JsonResult checkTeamStatus(string orderCode) { //判断团的状态 TeamInfoEntity teamInfoEntity = teamBll.GetTeamInfoEntity(orderCode); if (teamInfoEntity != null) { return(Json(new { Type = 1, status = teamInfoEntity.TeamStatus }, JsonRequestBehavior.AllowGet)); } return(Json(new { Type = 1, status = 0 }, JsonRequestBehavior.AllowGet)); }
/// <summary> /// 团订单不是最后一人支付 /// </summary> /// <param name="teamInfoEntity"></param> /// <param name="entity"></param> /// <param name="orderPaymentEntity"></param> /// <returns></returns> public void TeamOrderNotLastPay(TeamInfoEntity teamInfoEntity, OrderPaymentEntity entity, OrderPaymentEntity orderPaymentEntity) { /// 订单状态为6 int OrderStatus = 6; /// 更新TeamInfo表的TeamStatus字段为1,参团中 teamInfoEntity.TeamStatus = 1; //LogHelper.Info("--------TeamPayAfter----15-----不是最后支付" + teamInfoEntity.TeamStatus); /// 团订单更新库存和订单信息表 buyOrderManager.TeamOrderPayOK(entity.OrderCode, orderPaymentEntity.PaidAmount, "", OrderStatus, teamInfoEntity); }
/// <summary> /// 关闭没有支付的订单 /// </summary> /// <param name="teamInfoEntity"></param> /// <param name="DeliveryRegion"></param> /// <param name="language"></param> public void CloseNotPayOrderInfo(TeamInfoEntity teamInfoEntity, int DeliveryRegion, int language) { //LogHelper.Info("--------TeamPayAfter----close OrderInfo--111-----开始---团code:" + teamInfoEntity.TeamCode); /// 将下了订单没有支付的订单状态置为关闭 IList <OrderInfoEntity> NeedCloseOrderInfoList = orderManager.GetNeedCloseOrderInfoByCode(teamInfoEntity.TeamCode); //LogHelper.Info("--------TeamPayAfter----close OrderInfo-----开始---需要关闭订单的数量:" + NeedCloseOrderInfoList.Count()); foreach (OrderInfoEntity orderInfo in NeedCloseOrderInfoList) { var model = Bll.CancelOrder(orderInfo.UserId, DeliveryRegion, language, orderInfo.OrderCode); //LogHelper.Info("--------TeamPayAfter----close OrderInfo-----结束---关闭订单结果:" + model); } }
/// <summary> /// 团订单情况展示团详情页面逻辑 /// </summary> /// <param name="OrderCode"></param> /// <param name="DeliveryRegion"></param> /// <returns></returns> public IList <TeamDetailEntity> TeamOrderPage(string OrderCode, int DeliveryRegion) { /// 获取订单所属的团信息 TeamInfoEntity teamInfoEntity = GetTeamInfoEntity(OrderCode); if (teamInfoEntity == null) { //LogHelper.Info("----Team----" + "订单号:" + OrderCode + ",查询的团信息为null,teamInfoEntity=" + teamInfoEntity); return(null); } /// 获取团详情信息 var teamDetailList = GetTeamDetailList(teamInfoEntity.TeamCode); return(teamDetailList); }
/// <summary> /// 团订单最后一人支付 /// </summary> /// <param name="teamInfoEntity"></param> /// <param name="entity"></param> /// <param name="orderPaymentEntity"></param> /// <param name="DeliveryRegion"></param> /// <param name="language"></param> /// <param name="teamDetailList"></param> /// <returns></returns> public void TeamOrderLastPay(TeamInfoEntity teamInfoEntity, OrderPaymentEntity entity, OrderPaymentEntity orderPaymentEntity , int DeliveryRegion, int language, IList <TeamDetailEntity> teamDetailList) { /// 订单状态为6 int OrderStatus = 6; /// 更新TeamInfo表的TeamStatus字段为3,组团成功 teamInfoEntity.TeamStatus = 3; /// 团订单更新库存、订单信息表和团信息表状态 buyOrderManager.TeamOrderPayOK(entity.OrderCode, orderPaymentEntity.PaidAmount, "", OrderStatus, teamInfoEntity); // 根据团Code获得订单信息集合 IList <OrderInfoEntity> OrderInfoList = orderManager.GetOrderInfoByTeamCode(teamInfoEntity.TeamCode); if (OrderInfoList != null && OrderInfoList.Count() != 0) { //LogHelper.Info("--------TeamPayAfter----4.1-----" + OrderInfoList.Count()); // 更新订单相关信息和保存Push信息表 UpdateAndSavePushOrderInfo(OrderInfoList, orderPaymentEntity, teamInfoEntity); int count = OrderInfoList.Where(d => d.OrderStatus != 6).Count(); //LogHelper.Info("--------TeamPayAfter----4.0.1-----状态不是6的集合长度:" + count); if (count != 0) { // 关闭没有支付的订单 CloseNotPayOrderInfo(teamInfoEntity, DeliveryRegion, language); } // 添加团订单消息信息 AddTeamOrderInformationInfo(teamDetailList); // 团长订单的订单来源类型和订单来源值处理 UpdateTeamHeadSource(teamDetailList); } }
/// <summary> /// 获得团详情页分享Json /// </summary> /// <param name="URL"></param> /// <returns></returns> private JsonResult TeamJoinDetail(string URL) { string TeamCodeStr = ""; string OrderCodeStr = ""; JsonResult json = null; Uri uri = new Uri(URL); int index = uri.Query.IndexOf("?"); string urlQuery = uri.Query.Substring(index + 1, uri.Query.Length - 1); string[] urlParams = urlQuery.Split('&'); foreach (string param in urlParams) { string[] items = param.Split('='); if (items[0].Equals("TeamCode")) { TeamCodeStr = items[1]; } else if (items[0].Equals("OrderCode")) { OrderCodeStr = items[1]; } } //LogHelper.Info("------------Shared-----URL1:" + URL); IList <TeamDetailEntity> teamDetailList = null; if (!string.IsNullOrEmpty(TeamCodeStr)) { /// 获取团详情信息 teamDetailList = teamBll.GetTeamDetailList(TeamCodeStr); //LogHelper.Info("------------Shared-----teamDetailList:" + teamDetailList); } else if (!string.IsNullOrEmpty(OrderCodeStr)) { TeamInfoEntity teamInfoEntity = teamBll.GetTeamInfoEntity(OrderCodeStr); //LogHelper.Info("------------Shared-----teamInfoEntity:" + teamInfoEntity); if (teamInfoEntity != null) { TeamCodeStr = teamInfoEntity.TeamCode; //LogHelper.Info("------------Shared-----TeamCodeStr:" + TeamCodeStr); /// 获取团详情信息 teamDetailList = teamBll.GetTeamDetailList(TeamCodeStr); //LogHelper.Info("------------Shared-----teamDetailList:" + teamDetailList); } } else { return(Json(new { type = (int)ShareUtils.JsonType.typeFailed, content = ShareUtils.JsonContent_TeamCodeIsNull }, JsonRequestBehavior.AllowGet)); } /// 判断集合是否为空 if (teamDetailList == null || teamDetailList.Count() == 0) { return(Json(new { type = (int)ShareUtils.JsonType.typeFailed, content = ShareUtils.JsonContent_TeamListIsNull }, JsonRequestBehavior.AllowGet)); } //LogHelper.Info("------------Shared-----URL2:" + URL); //LogHelper.Info("------------Shared-----ImagePath:" + teamDetailList.First().ImagePath); // 获得商品净重、净含量信息,再重新装配数据集合 List <TeamDetailEntity> teamDetailProductList = new List <TeamDetailEntity>(); foreach (TeamDetailEntity product in teamDetailList) { string neight = commonBll.getProductDetailName(product.MainDicValue, product.SubDicValue, product.NetWeightUnit); product.NetWeightUnit = neight; teamDetailProductList.Add(product); } /// 获得团详情页分享对象 TeamSharedModel teamSharedModel = GetTeamSharedInfo(teamDetailProductList); /// 获得微信配置信息 JSSDKModel JsSdkModel = GetWechatParams(URL); if (JsSdkModel.type == (int)ShareUtils.JsonType.typeFailed) { return(Json(new { type = JsSdkModel.type, content = JsSdkModel.content }, JsonRequestBehavior.AllowGet)); } //LogHelper.Info("------------Shared-------TeamCode:" + TeamCodeStr); // 获得团成员剩余数量 int value = teamSharedModel.RestTeamMemberNum; /*LogHelper.Info("------------Shared----RestTeamMemberNum-----RestTeamMemberNum:" + value); * LogHelper.Info("------------Shared-----Title:" + teamSharedModel.Title); * LogHelper.Info("------------Shared-----ImagePath:" + teamSharedModel.ImagePath); * LogHelper.Info("------------Shared-----Description:" + teamSharedModel.Description); * LogHelper.Info("------------Shared-----URL3:" + teamSharedModel.Url);*/ json = Json(new { type = JsSdkModel.type, data = new { appId = JsSdkModel.appId, timestamp = JsSdkModel.timestamp, nonceStr = JsSdkModel.nonceStr, signature = JsSdkModel.signature, jsApiList = JsSdkModel.jsApiList, Title = teamSharedModel.Title, ImagePath = teamSharedModel.ImagePath, Description = teamSharedModel.Description, Url = URL } }, JsonRequestBehavior.AllowGet); return(json); }
/// <summary> /// 团详情页 /// </summary> /// <param name="TeamCode"></param> /// <returns></returns> public ActionResult TeamDetail(string TeamCode, string OrderCode, int Flag) { try { string teamCodeStr = ""; if (OrderCode != null) { /// 获取订单所属的团信息 TeamInfoEntity teamInfoEntity = teamBll.GetTeamInfoEntity(OrderCode); teamCodeStr = teamInfoEntity.TeamCode; /// 获得团成员UserId int TeamUserId = teamBll.GetTeamUserId(OrderCode, teamCodeStr); ViewBag.TeamUserId = TeamUserId; /// 团成员UserId ViewBag.IsOrderCodeInput = 1; /// OrderCode有值 } else { teamCodeStr = TeamCode; } if (string.IsNullOrEmpty(teamCodeStr)) { return(View("Error")); } /// 获取团详情信息 var teamDetailListInfo = teamBll.GetTeamDetailList(teamCodeStr); List <TeamDetailEntity> teamDetailList = new List <TeamDetailEntity>(); foreach (TeamDetailEntity product in teamDetailListInfo) { string neight = commonBll.getProductDetailName(product.MainDicValue, product.SubDicValue, product.NetWeightUnit); product.NetWeightUnit = neight; teamDetailList.Add(product); } /// 登录用户ID int LoginUserId = 0; if (base.LoginUser != null) { LoginUserId = base.LoginUser.UserID; } /// 倒计时秒数 double sec = 0.0; DateTime dtStartTime = DateTime.Now; DateTime dtEndTime = Convert.ToDateTime(teamDetailList.First().EndTime); sec = dtEndTime.Subtract(dtStartTime).TotalSeconds; /// 组团成功 if (teamDetailList.First().TeamStatus == 3) { ViewBag.TeamStatus = 3; } /// 参团中 else if (teamDetailList.First().TeamStatus == 1) { if (sec > 0) { ViewBag.restTime = sec; } else { ViewBag.restTime = 0; } ViewBag.TeamStatus = teamDetailList.First().TeamStatus;/// 组团状态 } /// 参团失败 else { ViewBag.TeamStatus = teamDetailList.First().TeamStatus;/// 组团状态 } /// 设置页面属性值 ViewBag.LoginUserId = LoginUserId; ViewBag.TeamHead = teamDetailList.First().TeamHead; /// 团长 ViewBag.TeamNumbers = teamDetailList.First().TeamNumbers; /// 几人团 ViewBag.ListLength = teamDetailList.Count(); /// 团详情集合长度 ViewBag.productPrice = (teamDetailList.First().DiscountPrice *base.ExchangeRate).ToNumberRoundStringWithPoint(); /// 拼团价格 ViewBag.RestNumber = teamDetailList.First().TeamNumbers - teamDetailList.Count(); /// 组团剩余人数 ViewBag.Flag = Flag; ///ViewBag.restTime = restTime; return(View(teamDetailList)); } catch (Exception ex) { return(HandleError(ex)); } }
/// <summary> /// 更新订单相关信息和保存Push信息表 /// </summary> /// <param name="OrderInfoList"></param> /// <param name="orderPaymentEntity"></param> /// <param name="teamInfoEntity"></param> public void UpdateAndSavePushOrderInfo(IList <OrderInfoEntity> OrderInfoList, OrderPaymentEntity orderPaymentEntity, TeamInfoEntity teamInfoEntity) { foreach (OrderInfoEntity orderInfo in OrderInfoList) { //LogHelper.Info("--------TeamPayAfter----4.1.1-----" + orderInfo.OrderCode); //LogHelper.Info("--------TeamPayAfter----4.1.1-----状态:" + orderInfo.OrderStatus); if (orderInfo.OrderStatus == 6) { // 订单状态设置为1 int OrderStatus = 1; /// 团订单更新订单信息表和团信息表状态 buyOrderManager.TeamOrderPayOKForStatus(orderInfo.OrderCode, orderPaymentEntity.PaidAmount, "", OrderStatus, teamInfoEntity); /// 添加需要推送的订单信息到push表中 orderManager.AddPushOrderInfo(orderInfo.OrderCode); } } }