/// <summary> /// 创建订单 /// </summary> /// <returns></returns> public ActionResult <bool> CreateOrder(long userId) { //创建订单成功 OrderEntity orderEntity = new OrderEntity(); Random random = new Random(); orderEntity.OrderId = random.Next(); orderEntity.OrderNo = random.Next(); orderEntity.UserId = userId; orderEntity.OrderInfo = random.Next() + "详情"; //bool isCreateOrderSuccress = orderService.CreateOrder(orderId); //if (!isCreateOrderSuccress) //{ // throw new Exception("创建订单失败"); //} //创建订单成功以后开始入消息记录库 //消息建议设计的冗余一些方便以后好查询 //千万级以后连表太困难 //建议冗余的信息有用户信息、订单信息、方便以后按照这个核对信息 //消息表的建议是按照不同的业务进行分表存储 Random messageRandom = new Random(); OrderMessageLogEntity orderMessageLog = new OrderMessageLogEntity(); orderMessageLog.MessageId = messageRandom.Next(); orderMessageLog.MessageInfo = orderEntity.OrderId + "订单信息"; orderMessageLog.Status = (int)MessageStatusEnum.SENDING; orderMessageLog.OrderId = orderEntity.OrderId; orderMessageLog.UserId = orderEntity.UserId; orderMessageLog.CreateTime = DateTime.Now; orderMessageLog.UpdateTime = DateTime.Now; orderMessageLog.TryCount = 0; orderMessageLog.NextRetryTime = DateTime.Now.AddMinutes(5); //必须保证消息先落库 bool isCreateOrderMessageLosSuccess = orderBaseDal.Insert(orderMessageLog); if (!isCreateOrderMessageLosSuccess) { throw new Exception("消息入库异常"); } Message message = new Message(); message.ExchangeName = EXCHANGENAME; message.QueueName = QUEUENAME; message.MessageId = orderMessageLog.MessageId; message.RoutingKey = ROUTINGKEY; message.Body = Encoding.UTF8.GetBytes(orderMessageLog.MessageInfo); //落库成功以后开始发送消息到MQ messageService.SendMessage(message, orderMessageLog); //发送延时消息 //messageService.SendDelayMessage(message, orderMessageLog); return(true); }
public void Update(OrderMessageLogEntity pEntity, bool pIsUpdateNullField, IDbTransaction pTran) { _currentDAO.Update(pEntity, pIsUpdateNullField, pTran); }
/// <summary> /// 更新 /// </summary> /// <param name="pEntity">实体实例</param> /// <param name="pTran">事务实例,可为null,如果为null,则不使用事务来更新</param> public void Update(OrderMessageLogEntity pEntity, IDbTransaction pTran) { Update(pEntity, true, pTran); }
/// <summary> /// 在事务内创建一个新实例 /// </summary> /// <param name="pEntity">实体实例</param> /// <param name="pTran">事务实例,可为null,如果为null,则不使用事务来更新</param> public void Create(OrderMessageLogEntity pEntity, IDbTransaction pTran) { _currentDAO.Create(pEntity, pTran); }
/// <summary> /// 创建一个新实例 /// </summary> /// <param name="pEntity">实体实例</param> public void Create(OrderMessageLogEntity pEntity) { _currentDAO.Create(pEntity); }
/// <summary> /// 分页根据实体条件查询实体 /// </summary> /// <param name="pQueryEntity">以实体形式传入的参数</param> /// <param name="pOrderBys">排序组合</param> /// <returns>符合条件的实体集</returns> public PagedQueryResult <OrderMessageLogEntity> PagedQueryByEntity(OrderMessageLogEntity pQueryEntity, OrderBy[] pOrderBys, int pPageSize, int pCurrentPageIndex) { return(_currentDAO.PagedQueryByEntity(pQueryEntity, pOrderBys, pPageSize, pCurrentPageIndex)); }
/// <summary> /// 根据实体条件查询实体 /// </summary> /// <param name="pQueryEntity">以实体形式传入的参数</param> /// <param name="pOrderBys">排序组合</param> /// <returns>符合条件的实体集</returns> public OrderMessageLogEntity[] QueryByEntity(OrderMessageLogEntity pQueryEntity, OrderBy[] pOrderBys) { return(_currentDAO.QueryByEntity(pQueryEntity, pOrderBys)); }
/// <summary> /// 删除 /// </summary> /// <param name="pEntity"></param> public void Delete(OrderMessageLogEntity pEntity) { _currentDAO.Delete(pEntity); }
public void Update(OrderMessageLogEntity pEntity, bool pIsUpdateNullField) { _currentDAO.Update(pEntity, pIsUpdateNullField); }
/// <summary> /// 更新 /// </summary> /// <param name="pEntity">实体实例</param> public void Update(OrderMessageLogEntity pEntity) { Update(pEntity, true); }