我是环回的新手,所以不知道如何解决这种情况,假设我有模型销售和模型库存 这是我的代码
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或者是否有其他任何方法来实现此目的
答案 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": {}
}
进一步阅读: