Esempio n. 1
0
        /// <summary>
        /// 获取订单退款失败原因
        /// </summary>
        /// <param name="orderId"></param>
        /// <returns></returns>
        public ActionResult GetOutOrderFailRemark(int orderId = 0)
        {
            Return_Msg returnData = new Return_Msg();

            try
            {
                PlatChildGoodsOrder order         = PlatChildGoodsOrderBLL.SingleModel.GetModel(orderId);
                CityMorders         ctiyMorder    = new CityMordersBLL().GetModel(order.OrderId);
                ReFundResult        outOrderRsult = RefundResultBLL.SingleModel.GetModelByTradeno(ctiyMorder.trade_no);

                if (outOrderRsult == null)
                {
                    returnData.Msg = "未知原因!";
                }
                else
                {
                    returnData.Msg  = outOrderRsult.err_code_des ?? outOrderRsult.return_msg;
                    returnData.isok = true;
                }
            }
            catch (Exception ex)
            {
                returnData.Msg = ex.Message;
            }
            return(Json(returnData));
        }
Esempio n. 2
0
        ///// <summary>
        ///// 跟进 退款状态 (退款是否成功)
        ///// </summary>
        ///// <returns></returns>
        public bool FoodUpdateReFundQueueState()
        {
            TransactionModel      tranModel    = new TransactionModel();
            List <FoodGoodsOrder> itemList     = FoodGoodsOrderBLL.SingleModel.GetList($" State = {(int)miniAppFoodOrderState.退款中} and outOrderDate <= (NOW()-interval 17 second) ", 1000, 1) ?? new List <FoodGoodsOrder>();
            List <CityMorders>    orderList    = new List <CityMorders>();
            List <ReFundResult>   outOrderList = new List <ReFundResult>();

            if (itemList.Any())
            {
                orderList = _cityMordersBLL.GetList($" Id in ({string.Join(",", itemList.Select(x => x.OrderId))}) ", 1000, 1) ?? new List <CityMorders>();
                if (orderList.Any())
                {
                    outOrderList = RefundResultBLL.SingleModel.GetList($" transaction_id in ('{string.Join("','", orderList.Select(x => x.trade_no))}') and retype = 1") ?? new List <ReFundResult>();
                    itemList.ForEach(x =>
                    {
                        CityMorders curOrder = orderList.Where(y => y.Id == x.OrderId).FirstOrDefault();
                        if (curOrder != null)
                        {
                            //退款是排程处理,故无法确定何时执行退款,而现阶段退款操作成败与否都会记录在系统内
                            ReFundResult curOutOrder = outOrderList.Where(y => y.transaction_id == curOrder.trade_no).FirstOrDefault();
                            if (curOutOrder != null && curOutOrder.result_code.Equals("SUCCESS"))
                            {
                                x.State = (int)miniAppFoodOrderState.已退款;
                                tranModel.Add(FoodGoodsOrderBLL.SingleModel.BuildUpdateSql(x, "State"));
                            }
                            else if (curOutOrder != null && !curOutOrder.result_code.Equals("SUCCESS"))
                            {
                                x.State = (int)miniAppFoodOrderState.退款失败;
                                tranModel.Add(FoodGoodsOrderBLL.SingleModel.BuildUpdateSql(x, "State"));
                            }
                        }
                    });
                }
            }
            return(ExecuteTransactionDataCorect(tranModel.sqlArray, tranModel.ParameterArray));
        }