示例#1
0
        public ActionResult giveGoods(int appId, int orderId)
        {
            if (appId <= 0)
            {
                return(Json(new { isok = false, msg = "appId非法" }, JsonRequestBehavior.AllowGet));
            }
            if (dzaccount == null)
            {
                return(Json(new { isok = false, msg = "登录信息超时" }, JsonRequestBehavior.AllowGet));
            }
            XcxAppAccountRelation xcx = XcxAppAccountRelationBLL.SingleModel.GetModelByaccountidAndAppid(appId, dzaccount.Id.ToString());

            if (xcx == null)
            {
                return(Json(new { isok = false, msg = "小程序未授权" }, JsonRequestBehavior.AllowGet));
            }

            ExchangeActivityOrder model = ExchangeActivityOrderBLL.SingleModel.GetModel($"Id={orderId} and appId={appId}");

            if (model == null)
            {
                return(Json(new { isok = false, msg = "数据不存在" }, JsonRequestBehavior.AllowGet));
            }
            if (model.state != 2)
            {
                return(Json(new { isok = false, msg = "状态错误" }, JsonRequestBehavior.AllowGet));
            }

            if (model.Way != 0)
            {
                model.state = 4;
            }
            else
            {
                model.state = 3;
            }


            if (ExchangeActivityOrderBLL.SingleModel.Update(model, "state"))
            {
                return(Json(new { isok = true, msg = "发货成功!" }, JsonRequestBehavior.AllowGet));
            }
            return(Json(new { isok = false, msg = "发货异常" }, JsonRequestBehavior.AllowGet));
        }
示例#2
0
        /// <summary>
        /// 积分兑换商品 只有返回为2才表示成功
        /// </summary>
        /// <param name="exchangeActivity">兑换商品</param>
        /// <param name="userId"></param>
        /// <param name="appId"></param>
        /// <param name="address">收货地址</param>
        /// <returns>0→积分不足,1→生成订单失败,2→成功,3→系统异常</returns>
        public int SubUserIntegral(ExchangeActivity exchangeActivity, int userId, int appId, string address, int way = 0)
        {
            //.先生成订单,生成成功后拿到 订单Id
            //1.根据订单Id更新订单状态 2.扣除积分以及3.插入积分记录日志 放在事务里执行
            ExchangeUserIntegral exchangeUserIntegral = GetModel($"userId={userId}");

            if (exchangeUserIntegral == null || exchangeUserIntegral.integral < exchangeActivity.integral)
            {
                return(-1);//积分不足(请先进行消费获得积分)!
            }
            ExchangeActivityOrder exchangeActivityOrder = new ExchangeActivityOrder
            {
                appId         = appId,
                UserId        = userId,
                ActivityId    = exchangeActivity.id,
                integral      = exchangeActivity.integral,
                PayWay        = 0,
                BuyCount      = 1,
                address       = address,
                state         = 0,
                AddTime       = DateTime.Now,
                activityImg   = exchangeActivity.activityimg,
                activityName  = exchangeActivity.activityname,
                originalPrice = exchangeActivity.originalPrice,
                Way           = way
            };

            int orderId = Convert.ToInt32(ExchangeActivityOrderBLL.SingleModel.Add(exchangeActivityOrder));

            if (orderId <= 0)
            {
                return(-2);//支付失败(生成订单失败)
            }
            var           TranModel = new TransactionModel();
            List <string> listSql   = new List <string>();

            //减积分商品库存
            exchangeActivity.stock--;
            listSql.Add(ExchangeActivityBLL.SingleModel.BuildUpdateSql(exchangeActivity, "stock"));


            #region 生成积分兑换商品订单操作
            //对外订单号规则:年月日时分 + 商品ID最后3位数字
            var idStr = exchangeActivity.id.ToString();
            if (idStr.Length >= 3)
            {
                idStr = idStr.Substring(idStr.Length - 3, 3);
            }
            else
            {
                idStr.PadLeft(3, '0');
            }
            idStr = $"{DateTime.Now.ToString("yyyyMMddHHmm")}{idStr}";

            exchangeActivityOrder.Id       = orderId;
            exchangeActivityOrder.OrderNum = idStr;

            exchangeActivityOrder.state   = 2;
            exchangeActivityOrder.PayTime = DateTime.Now;
            listSql.Add(ExchangeActivityOrderBLL.SingleModel.BuildUpdateSql(exchangeActivityOrder, "state,PayTime,OrderNum"));


            #endregion

            #region 扣除用户积分操作
            exchangeUserIntegral.integral   = exchangeUserIntegral.integral - exchangeActivity.integral;
            exchangeUserIntegral.UpdateDate = DateTime.Now;
            listSql.Add(BuildUpdateSql(exchangeUserIntegral, "integral,UpdateDate"));
            #endregion


            #region 插入积分兑换商品后扣除积分的日志
            ExchangeUserIntegralLog userIntegralLog = new ExchangeUserIntegralLog
            {
                ruleId      = 0,
                appId       = appId,
                integral    = -1,
                price       = 0,
                ruleType    = -1,
                goodids     = "-1",
                orderId     = orderId,
                usegoodids  = "-1",
                userId      = userId,
                actiontype  = -1,
                curintegral = exchangeActivity.integral,
                AddTime     = DateTime.Now,
                UpdateDate  = DateTime.Now,
                ordertype   = 1,
                buyPrice    = exchangeActivity.price
            };

            listSql.Add(ExchangeUserIntegralLogBLL.SingleModel.BuildAddSql(userIntegralLog));
            #endregion

            if (listSql.Count > 0)
            {
                TranModel.Add(listSql.ToArray());
                if (ExchangeActivityOrderBLL.SingleModel.ExecuteTransactionDataCorect(TranModel.sqlArray, TranModel.ParameterArray))
                {
                    return(orderId);
                }
            }

            return(-3);
        }