public ResultModel GoBack(UserModel user, int stopLossId) { ResultModel result = new ResultModel(); try { using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required)) { result = stoplossDAL.Get(user, stopLossId); if (result.ResultStatus != 0) return result; Model.StopLoss stopLoss = result.ReturnValue as StopLoss; if (stopLoss == null) { result.ResultStatus = -1; result.Message = "该数据不存在,不能撤返"; return result; } //获取止损申请实体 DAL.StopLossApplyDAL stopLossApplyDAL = new StopLossApplyDAL(); result = stopLossApplyDAL.Get(user, stopLoss.StopLossApplyId); if (result.ResultStatus != 0) return result; Model.StopLossApply stopLossApply = result.ReturnValue as Model.StopLossApply; //获取申请实体 NFMT.Operate.DAL.ApplyDAL applyDAl = new Operate.DAL.ApplyDAL(); result = applyDAl.Get(user, stopLossApply.ApplyId); if (result.ResultStatus != 0) return result; NFMT.Operate.Model.Apply apply = result.ReturnValue as NFMT.Operate.Model.Apply; if (apply.Status != StatusEnum.已生效) { result.ResultStatus = -1; result.Message = "止损对应的申请非已生效,不能进行撤返操作"; return result; } result = stoplossDAL.Goback(user, stopLoss); if (result.ResultStatus != 0) return result; //同步工作流状态 NFMT.WorkFlow.BLL.DataSourceBLL dataSourceBLL = new WorkFlow.BLL.DataSourceBLL(); result = dataSourceBLL.SynchronousStatus(user, stopLoss); if (result.ResultStatus != 0) return result; if (result.ResultStatus == 0) result.Message = "撤返成功"; scope.Complete(); } } catch (Exception ex) { result.Message = ex.Message; } finally { if (result.ResultStatus != 0) log.ErrorFormat("{0} {1},类型序号:{2}", user.EmpName, result.Message, result.ReturnValue); else if (log.IsInfoEnabled) log.InfoFormat("{0} {1},类型序号:{2}", user.EmpName, result.Message, result.ReturnValue); } return result; }
public ResultModel Update(UserModel user, NFMT.DoPrice.Model.StopLoss stopLoss, List<NFMT.DoPrice.Model.StopLossDetail> details) { ResultModel result = new ResultModel(); DAL.StopLossApplyDAL stopLossApplyDAL = new StopLossApplyDAL(); DAL.StopLossDetailDAL stopLossDetailDAL = new StopLossDetailDAL(); try { using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required)) { result = stoplossDAL.Get(user, stopLoss.StopLossId); if (result.ResultStatus != 0) return result; NFMT.DoPrice.Model.StopLoss stopLossResult = result.ReturnValue as NFMT.DoPrice.Model.StopLoss; if (stopLossResult == null) { result.ResultStatus = -1; result.Message = "获取止损信息错误"; return result; } result = stopLossApplyDAL.Get(user, stopLoss.StopLossApplyId); if (result.ResultStatus != 0) return result; NFMT.DoPrice.Model.StopLossApply stopLossApply = result.ReturnValue as NFMT.DoPrice.Model.StopLossApply; if (stopLossApply == null) { result.ResultStatus = -1; result.Message = "获取止损申请信息错误"; return result; } result = stoplossDAL.IsWeightCanStopLoss(user, stopLoss.StopLossApplyId, stopLoss.FuturesCodeId, stopLossApply.StopLossWeight, stopLoss.StopLossWeight, true, stopLossResult.StopLossWeight); if (result.ResultStatus != 0) return result; stopLossResult.StopLossWeight = stopLoss.StopLossWeight; stopLossResult.ExchangeId = stopLoss.ExchangeId; stopLossResult.FuturesCodeId = stopLoss.FuturesCodeId; stopLossResult.AvgPrice = stopLoss.AvgPrice; stopLossResult.PricingTime = DateTime.Now; stopLossResult.StopLosser = user.EmpId; //写入止损信息 result = stoplossDAL.Update(user, stopLossResult); if (result.ResultStatus != 0) return result; if (details != null && details.Any()) { //作废明细 result = stopLossDetailDAL.InvalidAll(user, stopLoss.StopLossId); if (result.ResultStatus != 0) return result; //写入明细信息 foreach (Model.StopLossDetail detail in details) { result = stopLossDetailDAL.Insert(user, detail); if (result.ResultStatus != 0) return result; } } scope.Complete(); } } catch (Exception e) { result.ResultStatus = -1; result.Message = e.Message; } return result; }
public ResultModel Create(UserModel user, NFMT.DoPrice.Model.StopLoss stopLoss, List<NFMT.DoPrice.Model.StopLossDetail> details) { ResultModel result = new ResultModel(); DAL.StopLossApplyDAL stopLossApplyDAL = new StopLossApplyDAL(); DAL.StopLossDetailDAL stopLossDetailDAL = new StopLossDetailDAL(); try { using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required)) { result = stopLossApplyDAL.Get(user, stopLoss.StopLossApplyId); if (result.ResultStatus != 0) return result; NFMT.DoPrice.Model.StopLossApply stopLossApply = result.ReturnValue as NFMT.DoPrice.Model.StopLossApply; if (stopLossApply == null) { result.Message = "获取止损申请失败"; result.ResultStatus = -1; return result; } result = stoplossDAL.IsWeightCanStopLoss(user, stopLoss.StopLossApplyId, stopLoss.FuturesCodeId, stopLossApply.StopLossWeight, stopLoss.StopLossWeight, false, 0); if (result.ResultStatus != 0) return result; stopLoss.PricingDirection = stopLossApply.PricingDirection; stopLoss.PricingTime = DateTime.Now; stopLoss.StopLosser = user.EmpId; stopLoss.StopLossStatus = Common.StatusEnum.已录入; //写入止损信息 result = stoplossDAL.Insert(user, stopLoss); if (result.ResultStatus != 0) return result; //写入明细信息 if (details != null && details.Any()) { int StopLossId = (int)result.ReturnValue; foreach (Model.StopLossDetail detail in details) { detail.StopLossId = StopLossId; result = stopLossDetailDAL.Insert(user, detail); if (result.ResultStatus != 0) return result; } } scope.Complete(); } } catch (Exception e) { result.ResultStatus = -1; result.Message = e.Message; } return result; }