| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | /** * ID计数器数据模型 * * @author CaiAoLin * @date 2017/6/23 * @version */import BaseModel from "../../common/base/base_model";import CounterSchema from "./schemas/counter";class CounterModel extends BaseModel {    /**     * 构造函数     *     * @return {void}     */    constructor() {        let parent = super();        parent.model = CounterSchema;        parent.init();    }    /**     * 获取自增id     *     * @param {String} model     * @return {Number}     */    async getId(model = '') {        if (model === '') {            return 0;        }        let update = {$inc: {sequence_value: 1}};        let condition = {_id: model};        let options = {new: true};        // 先查找更新        let idData = await this.db.findAndModify(condition, update, options);        let idResult = idData === null || idData.sequence_value === undefined ? 0 : idData.sequence_value;        // 如果没有对应记录则新增        if (idResult === 0) {            let insertResult = await this.db.create({_id: model, sequence_value: 1});            idResult = Object.keys(insertResult).length > 0 ? 1 : 0;        }        return idResult;    }}export default CounterModel;
 |