1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- 'use strict';
- const assert = require('assert');
- const _ = require('lodash');
- const moment = require('moment');
- const { ObjectId } = require('mongoose').Types;
- const { CrudService } = require('naf-framework-mongoose/lib/service');
- const { BusinessError, ErrorCode } = require('naf-core').Error;
- class UtilService extends CrudService {
- constructor(ctx) {
- super(ctx);
- this.mq = this.ctx.mq;
- }
- /**
- * 获取字段前置函数
- * @param {String} param0 {model字段名
- */
- async findModel({ model }) {
- if (model !== 'all') return await this.getModel(model);
- const modelList = this.ctx.model;
- const keys = Object.keys(modelList);
- const arr = [];
- for (const key of keys) {
- if (key !== 'Test') {
- const zh = this.modelToZh(key);
- if (!zh) continue;
- arr.push({
- zh,
- table: key,
- value: await this.getModel(key),
- });
- }
- }
- return arr;
- }
- /**
- * 获取字段
- * @param {String} model 表名
- */
- async getModel(model) {
- const _model = _.capitalize(model);
- const data = this.ctx.model[_model].prototype.schema.obj;
- const keys = Object.keys(data);
- let res = [];
- for (const k of keys) {
- const field = _.get(data[k], 'field');
- if (field && _.get(field, 'label')) {
- field.model = k;
- res.push(field);
- }
- }
- res = _.orderBy(res, [ 'row' ], [ 'asc' ]);
- return res;
- }
- /**
- * 表名换成中文
- * @param {String} model 表名
- */
- modelToZh(model) {
- const obj = {
- car: '车辆表',
- client: '客户/供应商表',
- daily: '车辆日常维修表',
- dictionary: '字典表',
- driver: '司机表',
- item: '项目表',
- mode: '计费方式表',
- order: '订单表',
- route: '路线表',
- transport: '运输表',
- treaty: '合同表',
- };
- return obj[_.lowerCase(model)];
- }
- async utilMethod(query, body) {}
- }
- module.exports = UtilService;
|