/// <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));
     }
 }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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;
            }
        }
Ejemplo n.º 5
0
        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;
            }
        }
Ejemplo n.º 6
0
        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));
     }
 }
Ejemplo n.º 8
0
        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));
        }
Ejemplo n.º 9
0
 /// <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)
         {
         }
     }
 }