| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 | /** * 配合比业务模型 * * @author CaiAoLin * @date 2017/7/12 * @version */import BaseModel from "../../common/base/base_model";import {default as MixRatioSchema, collectionName as collectionName} from "./schemas/mix_ratio";import CounterModel from "./counter_model"class MixRatioModel extends BaseModel {    /**     * 构造函数     *     * @return {void}     */    constructor() {        let parent = super();        parent.model = MixRatioSchema;        parent.init();    }    /**     * 设置场景     *     * @param {string} scene     * @return {void}     */    setScene(scene = '') {        switch (scene) {            // 新增数据的验证规则            case 'add':                this.model.schema.path('glj_id').required(true);                this.model.schema.path('consumption').required(true);                this.model.schema.path('unit_price_file_id').required(true);                this.model.schema.path('connect_key').required(true);                break;        }    }    /**     * 新增配合比数据(自动判断是否存在)     *     * @param {object} data     * @return {Promise}     */    async add(data) {        let counterModel = new CounterModel();        if (data instanceof Array) {            for(let tmp in data) {                data[tmp].id = await counterModel.getId(collectionName);            }        } else {            data.id = await counterModel.getId(collectionName);        }        this.setScene('add');        return this.db.model.create(data);    }    /**     * 更新数据     *     * @param {Number} id     * @param {Object} updateData     * @return {Promise}     */    async updateById(id, updateData) {        id = parseInt(id);        if (isNaN(id) || id <= 0 || Object.keys(updateData).length <= 0) {            return false;        }        let result = await this.db.update({id: id}, updateData);        return result.ok !== undefined && result.ok === 1;    }}export default MixRatioModel;
 |