public ContentResult bindplayer(BindTempPlayerRequest request)
        {
            request.MemberId = UserContext.WebUserContext.Id;
            string msg     = string.Empty;
            int    orderId = _memberTempService.BindTempPlayer(request, out msg);

            return(Result(orderId > 0, msg, orderId.ToString()));
        }
Beispiel #2
0
        //临时选手绑定 生成支付订单
        public int BindTempPlayer(BindTempPlayerRequest request, out string msg)
        {
            int orderId = 0;

            msg = string.Empty;
            try
            {
                //校验数据的真实性
                if (request.EventCode.IsEmpty())
                {
                    msg = "赛事编码不能为空";
                    return(orderId);
                }
                if (request.GroupNum.IsEmpty())
                {
                    msg = "队伍编码不能为空";
                    return(orderId);
                }
                if (request.PlayerName.IsEmpty())
                {
                    msg = "选手姓名不能为空";
                    return(orderId);
                }
                if (request.ContactMobile.IsEmpty())
                {
                    msg = "联系电话不能为空";
                    return(orderId);
                }

                var tevent = _dbContext.Select <t_event>(c => c.code == request.EventCode).FirstOrDefault();
                if (tevent == null)
                {
                    msg = "赛事编码有误";
                    return(orderId);
                }

                if (tevent.eventStatus != EventStatusEm.比赛完成)
                {
                    msg = "赛事未完成不能进行绑定";
                    return(orderId);
                }

                var data = _dbContext.Select <t_member_temp>(c => c.name == request.PlayerName && c.contactmobile == request.ContactMobile && c.code == request.GroupNum && c.tempType == TempTypeEm.临时选手 && c.tempStatus == TempStatusEm.待绑定 && c.eventId == tevent.id).FirstOrDefault();
                if (data == null)
                {
                    msg = "数据不存在,请核对后再操作";
                    return(orderId);
                }

                //if (data.tomemberId != null && data.tomemberId > 0)
                //{
                //    if (data.tomemberId != request.MemberId)
                //    {
                //        msg = "此信息已绑定过";
                //        return orderId;
                //    }
                //}

                t_order order = _dbContext.Select <t_order>(c => c.memberId == data.memberId && c.orderType == OrderTypeEm.临时选手绑定 && c.sourceId == data.id).FirstOrDefault();
                if (order == null)//没创建过订单
                {
                    try
                    {
                        _dbContext.BeginTransaction();
                        //创建订单
                        var orderid = _dbContext.Insert(new t_order
                        {
                            isNeedInvoice = false,
                            mainOrderId   = null,
                            memberId      = data.memberId,
                            money         = tevent.signfee,
                            orderStatus   = OrderStatusEm.等待支付,
                            orderType     = OrderTypeEm.临时选手绑定,
                            payExpiryDate = DateTime.Now.AddYears(3),
                            remark        = "临时选手绑定",
                            sourceId      = data.id,
                            totalcoupon   = 0,
                            totaldiscount = 0
                        }).ToObjInt();
                        _dbContext.Insert(new t_order_detail
                        {
                            memberId      = data.memberId,
                            orderId       = orderid,
                            coupon        = 0,
                            discountprice = 0,
                            money         = tevent.signfee,
                            productId     = 0,
                            name          = $"{tevent.name}报名费",
                            number        = 1,
                            unitprice     = tevent.signfee
                        });
                        //生成支付链接
                        data.tomemberId = request.MemberId;
                        data.updatetime = DateTime.Now;
                        _dbContext.Update(data);
                        _dbContext.CommitChanges();
                        orderId = orderid;
                    }
                    catch (Exception ex)
                    {
                        msg = "服务异常";
                        _dbContext.Rollback();
                        LogUtils.LogError("MemberTempService.BindTempPlayerTran", ex);
                    }
                }
                else//创建过订单
                {
                    if (order.orderStatus != OrderStatusEm.等待支付 && order.orderStatus != OrderStatusEm.支付失败)
                    {
                        orderId = order.id;
                    }
                    else
                    {
                        msg = "状态已改变";
                    }
                }
            }
            catch (Exception ex)
            {
                msg = "服务异常";
                LogUtils.LogError("MemberTempService.BindTempPlayer", ex);
            }
            return(orderId);
        }