|
@@ -1,5 +1,5 @@
|
|
|
'use strict';
|
|
|
-//基类控制器
|
|
|
+// 基类控制器
|
|
|
const BaseController = require('../base.js');
|
|
|
/**
|
|
|
* [exports 继承基类控制骂]
|
|
@@ -7,161 +7,173 @@ const BaseController = require('../base.js');
|
|
|
*/
|
|
|
module.exports = class ManagerController extends BaseController {
|
|
|
|
|
|
- /**
|
|
|
- * [useModel 当前使用的模型]
|
|
|
- * @author szjcomo
|
|
|
- * @date 2020-11-02
|
|
|
- * @return {[type]} [description]
|
|
|
- */
|
|
|
- get useModel() {
|
|
|
- throw new Error('未实现使用的模型定义,请检查');
|
|
|
- }
|
|
|
- /**
|
|
|
- * [createValidate 增的验证器]
|
|
|
- * @author szjcomo
|
|
|
- * @date 2020-11-02
|
|
|
- * @return {[type]} [description]
|
|
|
- */
|
|
|
- get createValidate() {
|
|
|
- throw new Error('未实现数据添加的验证器,请检查');
|
|
|
- }
|
|
|
- /**
|
|
|
- * [useModelPk 模型主键]
|
|
|
- * @author szjcomo
|
|
|
- * @date 2020-11-02
|
|
|
- * @return {[type]} [description]
|
|
|
- */
|
|
|
- get modelPk() {
|
|
|
- let that = this;
|
|
|
- let keys = Object.keys((that.useModel).primaryKeys);
|
|
|
- if(keys.length > 0) return keys[0];
|
|
|
- throw new Error('未找到模型主键,请检查');
|
|
|
- }
|
|
|
- /**
|
|
|
- * [modelName 模型名称]
|
|
|
- * @author szjcomo
|
|
|
- * @date 2020-11-02
|
|
|
- * @return {[type]} [description]
|
|
|
- */
|
|
|
- get modelName() {
|
|
|
- return '数据';
|
|
|
- }
|
|
|
- /**
|
|
|
- * [pkValidate 主键验证器]
|
|
|
- * @author szjcomo
|
|
|
- * @date 2020-11-02
|
|
|
- * @return {[type]} [description]
|
|
|
- */
|
|
|
- get pkValidate() {
|
|
|
- let that = this;
|
|
|
- let pkRules = {};
|
|
|
- pkRules[that.modelPk] = that.ctx.rules.name('主键字段').required().number();
|
|
|
- return pkRules;
|
|
|
- }
|
|
|
- /**
|
|
|
- * [selectValidate 数据查找验证器]
|
|
|
- * @author szjcomo
|
|
|
- * @date 2020-11-02
|
|
|
- * @return {[type]} [description]
|
|
|
- */
|
|
|
- get selectValidate() {
|
|
|
- let that = this;
|
|
|
- let selectRules = {
|
|
|
- page:that.ctx.rules.default(1).number(),
|
|
|
- limit:that.ctx.rules.default(20).number()
|
|
|
- };
|
|
|
- let primary_key = that.modelPk;
|
|
|
- selectRules[primary_key] = that.ctx.rules.default(0).number();
|
|
|
- return selectRules;
|
|
|
- }
|
|
|
- /**
|
|
|
- * [create 增]
|
|
|
- * @author szjcomo
|
|
|
- * @date 2020-11-02
|
|
|
- * @return {[type]} [description]
|
|
|
- */
|
|
|
- async create() {
|
|
|
- let that = this;
|
|
|
- try {
|
|
|
- let data = await that.ctx.validate(that.createValidate,await that.ctx.postParse());
|
|
|
- let createBean = that.app.comoBean.instance(data);
|
|
|
- let result = await that.service.manager.create(createBean,that.useModel,`${that.modelName}添加失败,请稍候重试`);
|
|
|
- return that.ctx.appJson(that.app.szjcomo.appResult('SUCCESS',result,false));
|
|
|
- } catch(err) {
|
|
|
- return that.ctx.appJson(that.app.szjcomo.appResult(err.message));
|
|
|
- }
|
|
|
- }
|
|
|
+ /**
|
|
|
+ * [useModel 当前使用的模型]
|
|
|
+ * @author szjcomo
|
|
|
+ * @date 2020-11-02
|
|
|
+ * @return {[type]} [description]
|
|
|
+ */
|
|
|
+ get useModel() {
|
|
|
+ throw new Error('未实现使用的模型定义,请检查');
|
|
|
+ }
|
|
|
|
|
|
- /**
|
|
|
- * [delete 删]
|
|
|
- * @author szjcomo
|
|
|
- * @date 2020-11-02
|
|
|
- * @return {[type]} [description]
|
|
|
- */
|
|
|
- async delete() {
|
|
|
- let that = this;
|
|
|
- try {
|
|
|
- let data = await that.ctx.validate(that.deleteValidate || that.pkValidate,await that.ctx.anyParse());
|
|
|
- let primary_key = that.modelPk;
|
|
|
- let options = {where:{}};
|
|
|
- options.where[primary_key] = data[primary_key];
|
|
|
- let deleteBean = that.app.comoBean.instance(data,options);
|
|
|
- let result = await that.service.manager.delete(deleteBean,that.useModel,`${that.modelName}删除失败,请稍候重试`);
|
|
|
- return that.ctx.appJson(that.app.szjcomo.appResult('SUCCESS',result,false));
|
|
|
- } catch(err) {
|
|
|
- return that.ctx.appJson(that.app.szjcomo.appResult(err.message));
|
|
|
- }
|
|
|
- }
|
|
|
- /**
|
|
|
- * [update 改]
|
|
|
- * @author szjcomo
|
|
|
- * @date 2020-11-02
|
|
|
- * @return {[type]} [description]
|
|
|
- */
|
|
|
- async update() {
|
|
|
- let that = this;
|
|
|
- try {
|
|
|
- let data = await that.ctx.validate(that.updateValidate || that.pkValidate,await that.ctx.anyParse());
|
|
|
- let primary_key = that.modelPk;
|
|
|
- let admin_id = that.service.manager.ActionAdminUserId();
|
|
|
- data.admin_id = admin_id;
|
|
|
- let options = {where:{},fields:Object.keys(data)};
|
|
|
- options.where[primary_key] = data[primary_key];
|
|
|
- let updateBean = that.app.comoBean.instance(data,options);
|
|
|
- let result = await that.service.manager.update(updateBean,that.useModel,`${that.modelName}更新失败,请稍候重试`);
|
|
|
- return that.ctx.appJson(that.app.szjcomo.appResult('SUCCESS',result,false));
|
|
|
- } catch(err) {
|
|
|
- return that.ctx.appJson(that.app.szjcomo.appResult(err.message));
|
|
|
- }
|
|
|
- }
|
|
|
+ /**
|
|
|
+ * [createValidate 增的验证器]
|
|
|
+ * @author szjcomo
|
|
|
+ * @date 2020-11-02
|
|
|
+ * @return {[type]} [description]
|
|
|
+ */
|
|
|
+ get createValidate() {
|
|
|
+ throw new Error('未实现数据添加的验证器,请检查');
|
|
|
+ }
|
|
|
|
|
|
- /**
|
|
|
- * [select 查]
|
|
|
- * @author szjcomo
|
|
|
- * @date 2020-11-02
|
|
|
- * @return {[type]} [description]
|
|
|
- */
|
|
|
- async select() {
|
|
|
- let that = this;
|
|
|
- try {
|
|
|
- let data = await that.ctx.validate(that.selectValidate,await that.ctx.anyParse());
|
|
|
- let primary_key = that.modelPk;
|
|
|
- let options = {where:{}};
|
|
|
- if(that.selectOptions instanceof Function) {
|
|
|
- options = await that.selectOptions(data);
|
|
|
- } else {
|
|
|
- if(data[primary_key]) {
|
|
|
- options.where[primary_key] = data[primary_key];
|
|
|
- } else {
|
|
|
- options = {offset:(data.page - 1) * data.limit,limit:data.limit};
|
|
|
- }
|
|
|
- }
|
|
|
- let selectBean = that.app.comoBean.instance(data,options);
|
|
|
- let count = (data[primary_key]?false:true);
|
|
|
- let result = await that.service.manager.select(selectBean,that.useModel,`${that.modelName}查询失败,请稍候重试`,count,count);
|
|
|
- return that.ctx.appJson(that.app.szjcomo.appResult('SUCCESS',result,false));
|
|
|
- } catch(err) {
|
|
|
- return that.ctx.appJson(that.app.szjcomo.appResult(err.message));
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
+ /**
|
|
|
+ * [useModelPk 模型主键]
|
|
|
+ * @author szjcomo
|
|
|
+ * @date 2020-11-02
|
|
|
+ * @return {[type]} [description]
|
|
|
+ */
|
|
|
+ get modelPk() {
|
|
|
+ const that = this;
|
|
|
+ const keys = Object.keys((that.useModel).primaryKeys);
|
|
|
+ if (keys.length > 0) return keys[0];
|
|
|
+ throw new Error('未找到模型主键,请检查');
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * [modelName 模型名称]
|
|
|
+ * @author szjcomo
|
|
|
+ * @date 2020-11-02
|
|
|
+ * @return {[type]} [description]
|
|
|
+ */
|
|
|
+ get modelName() {
|
|
|
+ return '数据';
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * [pkValidate 主键验证器]
|
|
|
+ * @author szjcomo
|
|
|
+ * @date 2020-11-02
|
|
|
+ * @return {[type]} [description]
|
|
|
+ */
|
|
|
+ get pkValidate() {
|
|
|
+ const that = this;
|
|
|
+ const pkRules = {};
|
|
|
+ pkRules[that.modelPk] = that.ctx.rules.name('主键字段')
|
|
|
+ .required()
|
|
|
+ .number();
|
|
|
+ return pkRules;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * [selectValidate 数据查找验证器]
|
|
|
+ * @author szjcomo
|
|
|
+ * @date 2020-11-02
|
|
|
+ * @return {[type]} [description]
|
|
|
+ */
|
|
|
+ get selectValidate() {
|
|
|
+ const that = this;
|
|
|
+ const selectRules = {
|
|
|
+ page: that.ctx.rules.default(1)
|
|
|
+ .number(),
|
|
|
+ limit: that.ctx.rules.default(20)
|
|
|
+ .number(),
|
|
|
+ };
|
|
|
+ const primary_key = that.modelPk;
|
|
|
+ selectRules[primary_key] = that.ctx.rules.default(0)
|
|
|
+ .number();
|
|
|
+ return selectRules;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * [create 增]
|
|
|
+ * @author szjcomo
|
|
|
+ * @date 2020-11-02
|
|
|
+ * @return {[type]} [description]
|
|
|
+ */
|
|
|
+ async create() {
|
|
|
+ const that = this;
|
|
|
+ try {
|
|
|
+ const data = await that.ctx.validate(that.createValidate, await that.ctx.postParse());
|
|
|
+ const createBean = that.app.comoBean.instance(data);
|
|
|
+ const result = await that.service.manager.create(createBean, that.useModel, `${that.modelName}添加失败,请稍候重试`);
|
|
|
+ return that.ctx.appJson(that.app.szjcomo.appResult('SUCCESS', result, false));
|
|
|
+ } catch (err) {
|
|
|
+ return that.ctx.appJson(that.app.szjcomo.appResult(err.message));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * [delete 删]
|
|
|
+ * @author szjcomo
|
|
|
+ * @date 2020-11-02
|
|
|
+ * @return {[type]} [description]
|
|
|
+ */
|
|
|
+ async delete() {
|
|
|
+ const that = this;
|
|
|
+ try {
|
|
|
+ const data = await that.ctx.validate(that.deleteValidate || that.pkValidate, await that.ctx.anyParse());
|
|
|
+ const primary_key = that.modelPk;
|
|
|
+ const options = { where: {} };
|
|
|
+ options.where[primary_key] = data[primary_key];
|
|
|
+ const deleteBean = that.app.comoBean.instance(data, options);
|
|
|
+ const result = await that.service.manager.delete(deleteBean, that.useModel, `${that.modelName}删除失败,请稍候重试`);
|
|
|
+ return that.ctx.appJson(that.app.szjcomo.appResult('SUCCESS', result, false));
|
|
|
+ } catch (err) {
|
|
|
+ return that.ctx.appJson(that.app.szjcomo.appResult(err.message));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * [update 改]
|
|
|
+ * @author szjcomo
|
|
|
+ * @date 2020-11-02
|
|
|
+ * @return {[type]} [description]
|
|
|
+ */
|
|
|
+ async update() {
|
|
|
+ const that = this;
|
|
|
+ try {
|
|
|
+ const data = await that.ctx.validate(that.updateValidate || that.pkValidate, await that.ctx.anyParse());
|
|
|
+ const primary_key = that.modelPk;
|
|
|
+ const admin_id = that.service.manager.ActionAdminUserId();
|
|
|
+ data.admin_id = admin_id;
|
|
|
+ const options = { where: {}, fields: Object.keys(data) };
|
|
|
+ options.where[primary_key] = data[primary_key];
|
|
|
+ const updateBean = that.app.comoBean.instance(data, options);
|
|
|
+ const result = await that.service.manager.update(updateBean, that.useModel, `${that.modelName}更新失败,请稍候重试`);
|
|
|
+ return that.ctx.appJson(that.app.szjcomo.appResult('SUCCESS', result, false));
|
|
|
+ } catch (err) {
|
|
|
+ return that.ctx.appJson(that.app.szjcomo.appResult(err.message));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * [select 查]
|
|
|
+ * @author szjcomo
|
|
|
+ * @date 2020-11-02
|
|
|
+ * @return {[type]} [description]
|
|
|
+ */
|
|
|
+ async select() {
|
|
|
+ const that = this;
|
|
|
+ try {
|
|
|
+ const data = await that.ctx.validate(that.selectValidate, await that.ctx.anyParse());
|
|
|
+ const primary_key = that.modelPk;
|
|
|
+ let options = { where: {} };
|
|
|
+ if (that.selectOptions instanceof Function) {
|
|
|
+ options = await that.selectOptions(data);
|
|
|
+ } else {
|
|
|
+ if (data[primary_key]) {
|
|
|
+ options.where[primary_key] = data[primary_key];
|
|
|
+ } else {
|
|
|
+ options = { offset: (data.page - 1) * data.limit, limit: data.limit };
|
|
|
+ }
|
|
|
+ }
|
|
|
+ const selectBean = that.app.comoBean.instance(data, options);
|
|
|
+ const count = (!data[primary_key]);
|
|
|
+ const result = await that.service.manager.select(selectBean, that.useModel, `${that.modelName}查询失败,请稍候重试`, count, count);
|
|
|
+ return that.ctx.appJson(that.app.szjcomo.appResult('SUCCESS', result, false));
|
|
|
+ } catch (err) {
|
|
|
+ return that.ctx.appJson(that.app.szjcomo.appResult(err.message));
|
|
|
+ }
|
|
|
+ }
|
|
|
+};
|