找到值并将其保存到变量环回

时间:2018-03-30 12:08:27

标签: strongloop loopback

我是环回的新手,所以不知道如何解决这种情况,假设我有模型销售和模型库存 这是我的代码

Sales.beforeRemote('create', function (ctx, user, next) {
     var stock=app.models.estshopinventory
     var value=  stock.find({where: {product_id:1}})// is this possible to assign value which got from stock

});

如果用户销售电视的价格是1000和数量1那么它搜索库存表&如果它在库存中找到(productname)tv,那么它会进行一些计算 假设计算前的库存数据如

  productname | quantity | price
      tv      |      1   | 1000

计算后(库存表)

 productname | quantity | price
      tv      |      1   | 1000

我怎么能在环回中做这件事,因为我没有在google上发现任何与此类问题相关的注意事项我不想使用多个api或者是否有其他任何方法来实现此目的

1 个答案:

答案 0 :(得分:1)

据我所知,您想知道是否存在即将销售的产品(以销售模式中的条目标记)。如果是,那么在库存中注册的产品相关信息将被修改,并且可以说可用产品的数量减少一个。下面是我掏出的一个解决方案,但还没有真正对它进行过彻底的测试。

示例代码:

     module.exports = function(Sales) {
  Sales.beforeRemote('create', function(ctx, data, next) {
    let Stock = app.models.Stock;
    let soldPieces = ctx.args.data.soldPieces;
    let stockInstance = Stock.findOne({
      where: {productName: ctx.args.data.productName},
    })
    let productData = Stock.update(
      {"productName": ctx.args.data.productName},
      {
        "availablePieces": stockInstance.availablePieces - soldPieces,
      }
    );
    next(); //Make sure to call it because such function are asynchronous
  });
};

sales.json

    {
  "name": "Sales",
  "plural": "Sales",
  "base": "PersistedModel",
  "idInjection": true,
  "options": {
    "validateUpsert": true
  },
  "properties": {
    "productName": {
      "type": "string",
      "required": true
    },
    "productPrice": {
      "type": "string"
    },
    "soldPieces": {
      "type": "number"
    }
  },
  "validations": [],
  "relations": {},
  "acls": [],
  "methods": {}
}

stock.json

{
  "name": "Sales",
  "plural": "Sales",
  "base": "PersistedModel",
  "idInjection": true,
  "options": {
    "validateUpsert": true
  },
  "properties": {
    "productName": {
      "type": "string",
      "required": true
    },
    "productPrice": {
      "type": "string"
    },
    "soldPieces": {
      "type": "number"
    }
  },
  "validations": [],
  "relations": {},
  "acls": [],
  "methods": {}
}

进一步阅读:

https://loopback.io/doc/en/lb3/Creating-updating-and-deleting-data.html#updating-data-model-instances