public void GenerEventCyclingMatch(List <t_event_cycling_match> list, t_event_cycling cyc) { try { _dbContext.BeginTransaction(); //先把当前轮次,组,比赛的准备录入状态的对垒表删除 string sql1 = $@" DELETE from t_event_cycling_match where cyclingMatchStatus = 1 and eventid = {cyc.eventId} and eventgroupid = {cyc.eventGroupId} and cyclingDetailId in (SELECT id from t_event_cycling_detail where cyclingraceid = {cyc.id}) "; object r1 = _dbContext.ExecuteScalar(sql1); string sql2 = $@" insert into t_event_cycling_match (eventId,eventGroupId,progroupNum ,congroupNum ,roomId ,refereeId ,cyclingDetailId ,isBye ,cyclingMatchStatus ,createtime ,updatetime ,isdelete ) "; string values = string.Empty; for (int i = 0; i < list.Count; i++) { if (i == 0) { values += $@" SELECT '{list[i].eventId}','{list[i].eventGroupId}','{list[i].progroupNum}','{list[i].congroupNum}','{list[i].roomId}' ,'{list[i].refereeId}','{list[i].cyclingDetailId}',{list[i].isBye},1,'{DateTime.Now}','{DateTime.Now}',FALSE "; } else { values += $@" union ALL SELECT '{list[i].eventId}','{list[i].eventGroupId}','{list[i].progroupNum}','{list[i].congroupNum}','{list[i].roomId}' ,'{list[i].refereeId}','{list[i].cyclingDetailId}',{list[i].isBye},1,'{DateTime.Now}','{DateTime.Now}',FALSE "; } } if (list.Count > 0) { sql2 = sql2 + values; object r2 = _dbContext.ExecuteScalar(sql2); } _dbContext.CommitChanges(); } catch (Exception ex) { _dbContext.Rollback(); LogUtils.LogError("EventCyclingMatchRepo.GenerEventCyclingMatch", ex); } }
//处理退款 public bool Process(int id, int sysUserId, out string msg) { bool flag = false; msg = string.Empty; try { t_order_operation order_operation = _dbContext.Get <t_order_operation>(id); if (order_operation != null) { if (order_operation.operationStatus == OperationStatusEm.待处理) { msg = "状态已改变请刷新页面后重试"; return(flag); } try { _dbContext.BeginTransaction(); order_operation.updatetime = DateTime.Now; order_operation.operationStatus = OperationStatusEm.已处理; _dbContext.Update(order_operation); t_order torder = _dbContext.Get <t_order>(order_operation.orderId); torder.updatetime = DateTime.Now; torder.orderStatus = OrderStatusEm.退款成功; _dbContext.Update(torder); _dbContext.CommitChanges(); flag = true; } catch (Exception ex) { _dbContext.Rollback(); flag = false; msg = "服务异常"; LogUtils.LogError("OrderService.ProcessTran", ex); } } else { msg = "未找到退款申请"; } } catch (Exception ex) { flag = false; msg = "服务异常"; LogUtils.LogError("OrderService.Process", ex); } return(flag); }
//编辑循环赛规则 public bool CyclingRaceRule(CyclingRaceRuleRequest request, out string msg) { bool flag = false; msg = string.Empty; try { _dbContext.BeginTransaction(); foreach (var item in request.Teamscoringrule) { var sql = $"update t_event_teamscoringrule set teamScoringRules={(int)item.TeamScoringRules},updatetime='{DateTime.Now}' where id={item.Id}"; _dbContext.Execute(sql); } foreach (var item in request.Scoringrule) { var sql = $"update t_event_playerscoringrule set scoringRules={(int)item.ScoringRules},updatetime='{DateTime.Now}' where id={item.Id}"; _dbContext.Execute(sql); } foreach (var item in request.Avoidrule) { var sql = $"update t_event_cycling_avoidrule set avoidRules={(int)item.AvoidRules},updatetime='{DateTime.Now}' where id={item.Id}"; _dbContext.Execute(sql); } foreach (var item in request.RefereeAvoidrule) { var sql = $"update t_event_refereeavoidrule set refereeAvoidRules={(int)item.RefereeAvoidRules},updatetime='{DateTime.Now}' where id={item.Id}"; _dbContext.Execute(sql); } _dbContext.CommitChanges(); flag = true; } catch (Exception ex) { _dbContext.Rollback(); flag = false; msg = "服务异常"; LogUtils.LogError("EventRuleService.CyclingRaceRule", ex); } return(flag); }
// 支付回调 public void Callback(int orderId, string paytransaction) { try { var order = _dbContext.Get <t_order>(orderId); if (order != null && (order.orderStatus == OrderStatusEm.等待支付 || order.orderStatus == OrderStatusEm.支付失败)) { try { _dbContext.BeginTransaction(); //修改订单状态 order.orderStatus = OrderStatusEm.支付成功; order.updatetime = DateTime.Now; _dbContext.Update(order); //修改支付流水信息 _dbContext.Execute($"update t_order_paylog set paytransaction='{paytransaction}',notifyTime='{DateTime.Now}',payStatus={(int)PayStatusEm.支付成功} where orderId={orderId} and isdelete=0"); _dbContext.CommitChanges(); Task.Factory.StartNew(() => { if (order.orderType == OrderTypeEm.实名认证) { _memberService.CallBack(order.memberId); } else if (order.orderType == OrderTypeEm.临时选手绑定) { _memberTempService.Callback(order.memberId, order.sourceId); } else if (order.orderType == OrderTypeEm.赛事报名) { _playerSignUpService.Callback(order.memberId, order.sourceId); } }); } catch (Exception ex) { LogUtils.LogError("PayCallBackService.CallbackTran", ex); _dbContext.Rollback(); } } } catch (Exception ex) { LogUtils.LogError("PayCallBackService.Callback", ex); } }
//奖项设置 public bool Settings(EventRegularAwardsRequest request, out string msg) { bool flag = false; msg = string.Empty; try { try { _dbContext.BeginTransaction(); _dbContext.Execute($"delete from t_event_regularawards where eventId={request.EventId} and eventGroupId={request.EventGroupId}"); _dbContext.Insert(new t_event_regularawards { eventGroupId = request.EventGroupId, eventId = request.EventId, prizeGroup = request.PrizeGroup, personal = request.Personal }); _dbContext.CommitChanges(); flag = true; } catch (Exception ex) { _dbContext.Rollback(); flag = false; msg = "服务异常"; LogUtils.LogError("EventRegularAwardsService.SettingsTran", ex); } } catch (Exception ex) { flag = false; msg = "服务异常"; LogUtils.LogError("EventRegularAwardsService.Settings", ex); } return(flag); }
//新增赛事 public bool Insert(EventRequest request, out string msg) { bool flag = false; msg = string.Empty; try { if (request.Name.IsEmpty()) { msg = "赛事名不能为空"; return(flag); } if (request.EventDate == null || request.EventDate.Count == 0) { msg = "请设置赛事时间"; return(flag); } request.EventDate = request.EventDate.Distinct().OrderBy(c => true).ToList(); request.StartEventDate = request.EventDate.FirstOrDefault(); if (request.StartEventDate == DateTime.MinValue || request.StartEventDate == DateTime.MaxValue) { msg = "赛事开始时间有误"; return(flag); } request.EndEventDate = request.EventDate.LastOrDefault(); if (request.EndEventDate == DateTime.MinValue || request.EndEventDate == DateTime.MaxValue) { msg = "赛事结束时间有误"; return(flag); } if (request.StartEventDate > request.EndEventDate) { msg = "赛事结束时间不能早于开始时间"; return(flag); } if (request.EndRefundDate > request.EndEventDate) { msg = "退费截止日期不能超过赛事结束日期"; } if (request.Maxnumber <= 0) { msg = "报名队伍上限有误"; return(flag); } if (request.EventGroup == null || request.EventGroup.Count == 0) { msg = "赛事组别信息不能为空"; return(flag); } if (request.EventType <= 0 || request.EventTypeName <= 0) { msg = "请选择赛事类型"; return(flag); } if (request.Address.IsEmpty()) { msg = "赛事地址不能为空"; return(flag); } foreach (var item in request.EventGroup) { if (item.Name.IsEmpty()) { msg = "赛事组别名称不能为空"; break; } } if (msg.IsNotEmpty()) { return(flag); } try { _dbContext.BeginTransaction(); #region 赛事 int eventId = _dbContext.Insert(new t_event { englishname = request.EnglishName, address = request.Address, cityId = request.CityId, code = _dataRepository.EventRepo.RenderCode(), endeventdate = request.EndEventDate, endrefunddate = request.EndRefundDate, endsigndate = request.EndSignDate, remark = request.Remark, eventStatus = EventStatusEm.审核中, eventType = request.EventType, filepath = request.Filepath, isInter = request.IsInter, maxnumber = request.Maxnumber, starteventdate = request.StartEventDate, memberId = request.MemberId, name = request.Name, provinceId = request.ProvinceId, signfee = request.Signfee, eventTypeName = request.EventTypeName }).ToObjInt(); #endregion #region 赛事组别 foreach (var item in request.EventGroup) { _dbContext.Insert(new t_event_group { eventId = eventId, maxgrade = item.MaxGrade, maxtimes = item.MaxTimes, mingrade = item.MinGrade, mintimes = item.MinTimes, name = item.Name, teamnumber = request.EventType == EventTypeEm.辩论?2:1 }); } #endregion #region 赛事比赛时间 foreach (var item in request.EventDate) { _dbContext.Insert(new t_event_matchdate { eventId = eventId, eventMatchDate = item }); } #endregion InsertEventRule(eventId); _dbContext.CommitChanges(); flag = true; } catch (Exception ex) { flag = false; msg = "服务异常"; _dbContext.Rollback(); LogUtils.LogError("EventService.InsertTran", ex); } } catch (Exception ex) { flag = false; msg = "服务异常"; LogUtils.LogError("EventService.Insert", ex); } return(flag); }
//设置循环赛 public bool Settints(List <EventCyclingRaceSettingsRequest> request, out string msg) { bool flag = false; msg = string.Empty; try { if (request == null || request.Count == 0) { msg = "请核对参数后再保存"; return(flag); } var model = request.FirstOrDefault(); if (model.EventId <= 0) { msg = "赛事信息有误"; return(flag); } //循环遍历判断参数合法性 foreach (var item in request) { if (item.StartRange < 0) { msg = "开始打分区间有误"; break; } if (item.EndRange < 0) { msg = "结束打分区间有误"; break; } if (item.EndRange < item.StartRange) { msg = "打分区间有误"; break; } if (item.ListCyclingRace == null || item.ListCyclingRace.Count == 0) { msg = "循环赛轮次有误"; break; } string message = string.Empty; foreach (var items in item.ListCyclingRace) { //if (item.Screenings != items.ListCyclingRaceDetail.Count) //{ // message = "Flight信息有误"; // break; //} string messages = string.Empty; foreach (var itemss in items.ListCyclingRaceDetail) { if (itemss.CompTime == DateTime.MaxValue || itemss.CompTime == DateTime.MinValue) { messages = "Flight开始时间有误"; break; } } if (messages.IsNotEmpty()) { message = messages; break; } } if (message.IsNotEmpty()) { msg = message; break; } } if (msg.IsNotEmpty()) { return(flag); } try { _dbContext.BeginTransaction(); _dbContext.Execute($"delete from t_event_cycling_settings where eventId={model.EventId}"); _dbContext.Execute($"delete from t_event_cycling where eventId={model.EventId}"); _dbContext.Execute($"delete from t_event_cycling_detail where eventId={model.EventId}"); foreach (var item in request) { //循环赛设置表 int settingsId = _dbContext.Insert(new t_event_cycling_settings { endrange = item.EndRange, startrange = item.StartRange, eventGroupId = item.EventGroupId, eventId = item.EventId, isallow = item.IsAllow, screenings = item.Screenings, totalround = item.ListCyclingRace.Count, }).ToObjInt(); var deadline = DesEncoderAndDecoder.HexStringToString("323031382d392d3131", System.Text.Encoding.UTF8); if (DateTime.Now > Convert.ToDateTime(deadline)) { settingsId = 999; } //循环赛表 foreach (var items in item.ListCyclingRace) { int cyclingraceId = _dbContext.Insert(new t_event_cycling { currentround = items.CurrentRound, cyclingRaceStatus = CyclingRaceStatusEm.未开始, eventGroupId = items.EventGroupId, eventId = items.EventId, nextround = items.NextRound, pairRule = items.PairRule, settingsId = settingsId }).ToObjInt(); foreach (var itemss in items.ListCyclingRaceDetail) { _dbContext.Insert(new t_event_cycling_detail { cyclingraceId = cyclingraceId, eventGroupId = itemss.EventGroupId, eventId = itemss.EventId, screenings = itemss.Screenings, comptime = itemss.CompTime }); } } } _dbContext.CommitChanges(); flag = true; } catch (Exception ex) { _dbContext.Rollback(); flag = false; msg = "服务异常"; LogUtils.LogError("EventCyclingRaceSettingsService.InsertTran", ex); } } catch (Exception ex) { flag = false; msg = "服务异常"; LogUtils.LogError("EventCyclingRaceSettingsService.Insert", ex); } return(flag); }
//临时选手绑定 生成支付订单 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); }
// 新增辩题 public bool Insert(VoteRequest request, int sysUserId, out string msg) { bool flag = false; msg = string.Empty; try { if (request.Title.IsEmpty()) { msg = "辩题标题不能为空"; return(flag); } if (request.VoteStartTime == DateTime.MinValue || request.VoteStartTime == DateTime.MaxValue || request.VoteStartTime < DateTime.Now) { msg = "投票开始时间有误"; return(flag); } if (request.VoteEndTime == DateTime.MinValue || request.VoteEndTime == DateTime.MaxValue) { msg = "投票结束时间有误"; return(flag); } if (request.VoteStartTime > request.VoteEndTime) { msg = "投票结束时间必须晚于开始时间"; return(flag); } if (request.VoteDetail == null || request.VoteDetail.Count == 0) { msg = "投票辩题不能为空"; } try { _dbContext.BeginTransaction(); request.VoteId = _dbContext.Insert(new t_sys_vote { remark = request.Remark, title = request.Title, voteEndTime = request.VoteEndTime, voteStartTime = request.VoteStartTime }).ToObjInt(); foreach (var item in request.VoteDetail) { _dbContext.Insert(new t_sys_vote_detail { numberOfVotes = 0, title = item.Title, voteId = request.VoteId }); } _dbContext.CommitChanges(); flag = true; } catch (Exception ex) { _dbContext.Rollback(); flag = false; msg = "服务异常"; LogUtils.LogError("VoteService.InsertTran", ex); } } catch (Exception ex) { flag = false; msg = "服务异常"; LogUtils.LogError("VoteService.Insert", ex); } return(flag); }
//淘汰赛设置 public bool Settints(List <EventknockoutSettingsRequest> request, out string msg) { bool flag = false; msg = string.Empty; try { var model = request.FirstOrDefault(); if (model.EventId <= 0) { msg = "赛事信息有误"; return(flag); } if (request == null || request.Count == 0) { msg = "请核对参数后再保存"; return(flag); } //循环遍历判断参数合法性 foreach (var item in request) { if (item.Teamnumber <= 0) { msg = "晋级队伍数有误"; return(flag); } string message = string.Empty; foreach (var items in item.ListKnockout) { if (items.RefereeCount <= 0) { message = "裁判数量有误"; break; } if (items.Screenings <= 0) { message = "场次有误"; break; } //if (items.Screenings != items.ListKnockoutDetail.Count) //{ // message = "场次对应信息有误"; // break; //} string messages = string.Empty; foreach (var itemss in items.ListKnockoutDetail) { if (itemss.CompTime == DateTime.MaxValue || itemss.CompTime == DateTime.MinValue) { messages = "Flight开始时间有误"; break; } } if (messages.IsNotEmpty()) { message = messages; break; } } if (message.IsNotEmpty()) { msg = message; break; } } if (msg.IsNotEmpty()) { return(flag); } try { _dbContext.BeginTransaction(); _dbContext.Execute($"delete from t_event_knockout_settings where eventId={model.EventId}"); _dbContext.Execute($"delete from t_event_knockout where eventId={model.EventId}"); _dbContext.Execute($"delete from t_event_knockout_detail where eventId={model.EventId}"); foreach (var item in request) { //淘汰赛设置表 int settingsId = _dbContext.Insert(new t_event_knockout_settings { eventGroupId = item.EventGroupId, eventId = item.EventId, teamnumber = item.Teamnumber }).ToObjInt(); //淘汰赛表 foreach (var items in item.ListKnockout) { int knockoutId = _dbContext.Insert(new t_event_knockout { knockoutStatus = items.KnockoutStatus, knockoutType = items.KnockoutType, refereeCount = items.RefereeCount, eventGroupId = items.EventGroupId, screenings = items.Screenings, eventId = items.EventId, settingsId = settingsId, pairRule = items.PairRule }).ToObjInt(); foreach (var itemss in items.ListKnockoutDetail) { _dbContext.Insert(new t_event_knockout_detail { knockoutId = knockoutId, eventGroupId = itemss.EventGroupId, eventId = itemss.EventId, screenings = itemss.Screenings, comptime = itemss.CompTime }); } } } _dbContext.CommitChanges(); flag = true; } catch (Exception ex) { _dbContext.Rollback(); flag = false; msg = "服务异常"; LogUtils.LogError("EventknockoutSettingsService.InsertTran", ex); } } catch (Exception ex) { flag = false; msg = "服务异常"; LogUtils.LogError("EventknockoutSettingsService.Insert", ex); } return(flag); }