예제 #1
0
        /// <summary>
        /// 储值支付
        /// </summary>
        /// <param name="orderObj"></param>
        /// <param name="order"></param>
        /// <param name="aid"></param>
        /// <param name="saveMoneyUser"></param>
        /// <param name="sbUpdateGoodCartSql"></param>
        /// <param name="reductionCart"></param>
        /// <param name="orderId"></param>
        /// <returns></returns>
        public object PayOrderByChuzhi(object orderObj, int aid, SaveMoneySetUser saveMoneyUser, TransactionModel tran, ref int orderId)
        {
            QiyeGoodsOrder order = (QiyeGoodsOrder)orderObj;
            //储值支付 扣除预存款金额并生成消费记录
            //添加储值日志
            SaveMoneySetUserLog userLog = new SaveMoneySetUserLog()
            {
                AppId          = saveMoneyUser.AppId,
                UserId         = order.UserId,
                MoneySetUserId = saveMoneyUser.Id,
                Type           = -1,
                BeforeMoney    = saveMoneyUser.AccountMoney,
                AfterMoney     = saveMoneyUser.AccountMoney - order.BuyPrice,
                ChangeMoney    = order.BuyPrice,
                ChangeNote     = $" 购买商品,订单号:{order.OrderNum} ",
                CreateDate     = DateTime.Now,
                State          = 1,
                AId            = order.AId,
            };

            tran.Add(Utils.BuildAddSqlS(userLog, "OrderId", "(select LAST_INSERT_ID())", SaveMoneySetUserLogBLL.SingleModel.TableName, SaveMoneySetUserLogBLL.SingleModel.arrProperty));

            //储值扣费
            tran.Add($" update SaveMoneySetUser set AccountMoney = AccountMoney - {order.BuyPrice} where id =  {saveMoneyUser.Id} ; ");

            if (!ExecuteTransactionDataCorect(tran.sqlArray, tran.ParameterArray))
            {
                log4net.LogHelper.WriteInfo(this.GetType(), "储值支付:操作失败" + Newtonsoft.Json.JsonConvert.SerializeObject(tran));
                return("");
            }

            QiyeStore store = QiyeStoreBLL.SingleModel.GetModel(order.StoreId);

            if (store != null)
            {
                //清除商品缓存
                QiyeGoodsBLL.SingleModel.RemoveEntGoodListCache(store.Aid);
            }
            orderId = 1;

            order = GetModelByOrderNum(order.OrderNum);
            if (order == null)
            {
                log4net.LogHelper.WriteInfo(this.GetType(), "储值支付:生成订单失败");
                return("");
            }

            //发送支付成功通知给用户
            object orderData = TemplateMsg_Miniapp.QiyeGetTemplateMessageData(order, SendTemplateMessageTypeEnum.企业智推版订单支付成功通知);

            TemplateMsg_Miniapp.SendTemplateMessage(order.UserId, SendTemplateMessageTypeEnum.企业智推版订单支付成功通知, TmpType.企业智推版, orderData);

            //发送支付成功公众号通知给商家
            TemplateMsg_Gzh.SendQiyePaySuccessTemplateMessage(order);

            return(new { postdata = order.OrderNum, orderid = 0, dbOrder = order.Id });
        }
예제 #2
0
        /// <summary>
        /// 订单支付成功发送支付成功模板消息
        /// </summary>
        /// <param name="pinOrder"></param>
        public void SendTemplateMsg_PaySuccess(PinGoodsOrder pinOrder)
        {
            PinStore store = PinStoreBLL.SingleModel.GetModelByAid_Id(pinOrder.aid, pinOrder.storeId);

            if (store == null && pinOrder.orderType == 0)
            {
                log4net.LogHelper.WriteError(GetType(), new Exception($"拼享惠发送订单支付成功模板消息失败,找不到店铺信息 aid:{pinOrder.aid}, storeid:{pinOrder.storeId}"));
                return;
            }
            //发给用户通知
            object orderData = TemplateMsg_Miniapp.PinGetTemplateMessageData(SendTemplateMessageTypeEnum.拼享惠订单支付成功买家通知, order: pinOrder, store: store);

            TemplateMsg_Miniapp.SendTemplateMessage(pinOrder.userId, SendTemplateMessageTypeEnum.拼享惠订单支付成功买家通知, TmpType.拼享惠, orderData, $"pages/shopping/orderInfo/orderInfo?orderid={pinOrder.id}&storeid={pinOrder.storeId}");
            //发给商家通知
            if (pinOrder.orderType == 0)
            {
                TemplateMsg_Gzh.SendPaySuccessTemplateMessage(pinOrder);
            }
        }
예제 #3
0
        public bool RequestRefund(FoodReservation reservation)
        {
            if (reservation == null || (reservation.State != (int)MiniAppEntOrderState.待接单 && reservation.State != (int)MiniAppEntOrderState.待自取))
            {
                return(false);
            }

            reservation.State = (int)MiniAppEntOrderState.退款审核中;
            bool result = Update(reservation, "State");

            if (!result)
            {
                return(false);
            }

            //发送模板消息
            List <EntGoodsOrder> reservationOrder = EntGoodsOrderBLL.SingleModel.GetReserveOrder(reservation.Id);

            TemplateMsg_Gzh.OutOrderTemplateMessageForEnt(reservationOrder?.FirstOrDefault());
            return(result);
        }