'use strict'; const { CrudService } = require('naf-framework-mongoose-free/lib/service'); const { BusinessError, ErrorCode } = require('naf-core').Error; const _ = require('lodash'); const assert = require('assert'); // class AddressService extends CrudService { constructor(ctx) { super(ctx, 'address'); this.model = this.ctx.model.User.Address; // 默认值.为:非默认 this.defaultValue = '0'; } async afterCreate(body, data) { const { is_default } = data; if (is_default !== this.defaultValue) await this.toDefault({ id: data._id }); return data; } async toDefault({ id }) { const data = await this.model.findById(id); if (!data) throw new BusinessError(ErrorCode.DATA_NOT_EXIST); const { customer } = data; await this.model.updateMany({ customer }, { is_default: this.defaultValue }); await this.model.updateOne({ _id: id }, { is_default: '1' }); } } module.exports = AddressService;