/// <summary> /// 消费积分 /// </summary> /// <param name="model"></param> /// <returns></returns> public ActionResult ConsumIntegralReclrd(IntegralRecord model) { using (ClassScheduleDBEntities db = new ClassScheduleDBEntities()) { ResponseMessage msg = new ResponseMessage(); try { var totalNumber = db.IntegralRecord.Where(p => p.ChildrenID == model.ChildrenID).OrderByDescending(p => p.ID).FirstOrDefault()?.TotalNumber ?? 0; model.CreateTime = DateTime.Now.ToString(FormatDateTime.ShortDateTimeStr); if (model.Number > totalNumber) { msg.Status = false; msg.Result = "800"; msg.Msg = "兑换积分超过剩余积分"; return(Json(msg, JsonRequestBehavior.AllowGet)); } model.TotalNumber = totalNumber - model.Number; var entity = db.IntegralRecord.Add(model); db.SaveChanges(); msg.Status = true; } catch (Exception e) { msg.Status = false; msg.Result = "500"; } return(Json(msg, JsonRequestBehavior.AllowGet)); } }
public IHttpActionResult CreateUserStore(IntegralRecord integralRecord) { SimpleResult result = new SimpleResult(); IIntegralRecordService _service = new IntegralRecordService(); try { if (UserAuthorization) { var list = _service.CreateUserStore(integralRecord); result.Resource = list; result.Status = Result.SUCCEED; } else { result.Status = ResultType; result.Resource = ReAccessToken; result.Msg = TokenMessage; } } catch (Exception ex) { LogHelper.WriteLog("CreateUserStore创建积分:" + ex.Message, ex); LogHelper.WriteLog("CreateUserStore创建积分:" + ex.StackTrace, ex); result.Status = Result.FAILURE; result.Msg = ex.Message; } return(Json(result)); }
public IntegralRecord GetStoreByCode(string code) { DynamicParameters paras = new DynamicParameters(); paras.Add("@code", code, System.Data.DbType.String); IntegralRecord list = DapperSqlHelper.FindOne <IntegralRecord>("select * from [dbo].[IntegralRecord] where IntegralRecordCode=@code", null, false); return(list); }
public IntegralRecord IntegralProcess(UserIntegral ui, string activityname, dynamic extdata) { try { var activity = _context.IntegralActivitys.FirstOrDefault(t => t.Name == activityname); if (activity != null) { //var rule = activity.IntegralRule; var useractivity = ui.IntegralUserActivitys.FirstOrDefault(t => t.IntegralActivityID == activity.ID); if (useractivity == null) { //_context.IntegralUserActivitys. ui.IntegralUserActivitys.Add(new IntegralUserActivity { IntegralActivity = activity }); } } var mark = activityname; if (string.IsNullOrEmpty(mark)) { mark = extdata.ShortMark; } IntegralRecord res = new IntegralRecord { IntegralActivity = activity, UserIntegral = ui, ShortMark = mark, //activityname, Points = GetPoints(ui, activity, extdata) //Content = BuildRecordContent(activityname, extdata) }; return(SaveRecord(res)); } catch (Exception ex) { throw ex; } }
public BusinessResultDto SaveExchangeOrder(OrderInfo orderinfo) { try { if (CheckOrder(orderinfo)) { orderinfo = _context.OrderInfos.Add(orderinfo); var bus = new IntegralBus(_context); dynamic extdata = new ExpandoObject(); extdata.Points = -orderinfo.TotalPoints; IntegralRecord ir = bus.IntegralProcess(orderinfo.UserIntegral, "积分兑换", extdata); //orderinfo.OrderIntegralRecords.Add(new OrderIntegralRecord //{ // IntegralRecord = ir //}); _context.OrderIntegralRecords.Add(new OrderIntegralRecord { IntegralRecord = ir, OrderInfo = orderinfo }); _resultdto.issave = bus.IsSave; _resultdto.message = bus.Message; _resultdto.detail = new { orderinfo.OrderSn, orderinfo.ID, orderinfo.OrderUID }; } return(_resultdto); } catch (Exception ex) { throw; } }
public IntegralRecord SaveRecord(IntegralRecord record) { try { if (_isSave) { record.UserIntegral.CurrentPoints += record.Points; if (record.Points > 0) { var iua = record.UserIntegral.IntegralUserActivitys.FirstOrDefault(t => t.IntegralActivity == record.IntegralActivity); if (iua != null) { iua.TotalPoints += record.Points; } record.UserIntegral.TotalPoints += record.Points; record.ValidPoints = record.Points; } if (record.Points < 0) { record.UserIntegral.TotalExpense += (-record.Points); IntegralRecordsExpense(record.UserIntegral, record.Points); } record.TotalPoints = record.UserIntegral.TotalPoints; record.CurrentPoints = record.UserIntegral.CurrentPoints; record = _context.IntegralRecords.Add(record); //_context.SaveChanges();//不允许启动新事务,因为有其他线程正在该会话中运行 外部可能还在循环中 } } catch (Exception ex) { throw ex; } return(record); }
public ActionResult Update(IntegralRecord model) { using (ClassScheduleDBEntities db = new ClassScheduleDBEntities()) { ResponseMessage msg = new ResponseMessage(); try { db.IntegralRecord.Attach(model); db.Entry(model).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); msg.Status = true; } catch (Exception e) { msg.Status = false; msg.Result = "500"; } return(Json(msg, JsonRequestBehavior.AllowGet)); } }
public int CreateUserStore(IntegralRecord record) { DynamicParameters paras = new DynamicParameters(); if (string.IsNullOrEmpty(record.IntegralRecordCode)) { record.IntegralRecordCode = GetMaxCode(); } paras.Add("@IntegralRecordCode", record.IntegralRecordCode, System.Data.DbType.String); paras.Add("@UserCode", record.UserCode, System.Data.DbType.String); paras.Add("@RecordType", record.RecordType, System.Data.DbType.String); paras.Add("@Integral", record.Integral, System.Data.DbType.Int32); paras.Add("@Explain", record.Explain, System.Data.DbType.String); return(DapperSqlHelper.ExcuteNonQuery <IntegralRecord>(@"INSERT INTO [dbo].[IntegralRecord] ([IntegralRecordCode],[UserCode],[RecordType] ,[Integral],[Explain],[CreateTime] ) VALUES ( @IntegralRecordCode, @UserCode, @RecordType, @Integral, @Explain,getdate())", paras, false)); }
/// <summary> /// 添加积分变动 /// </summary> /// <param name="model"></param> /// <param name="calcType"></param> private void AddIntegralRecord(Clock model, EnumUnit.IntegralRecordCalcTypeEnum calcType) { using (ClassScheduleDBEntities db = new ClassScheduleDBEntities()) { try { var totalNumber = db.IntegralRecord.Where(p => p.ChildrenID == model.ChildrenID).OrderByDescending(p => p.ID).FirstOrDefault()?.TotalNumber ?? 0; model.IsComplated = true; IntegralRecord irModel = new IntegralRecord(); irModel.ClockID = model.ID; irModel.CalcType = (int)calcType; irModel.ChildrenID = model.ChildrenID; irModel.CreateTime = DateTime.Now.ToString(FormatDateTime.ShortDateTimeStr); irModel.Number = model.RewardPoints; irModel.Name = model.Name; if (calcType == EnumUnit.IntegralRecordCalcTypeEnum.Plus) { irModel.TotalNumber = totalNumber + irModel.Number; } else { irModel.TotalNumber = totalNumber - irModel.Number; //减到0就不再减了 if (irModel.TotalNumber < 0) { irModel.TotalNumber = 0; } } db.IntegralRecord.Add(irModel); db.SaveChanges(); } catch (Exception e) { } } }