123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- 'use strict';
- const ManagerController = require('../manager.js');
- /**
- * [exports 用户控制器]
- * @type {[type]}
- */
- module.exports = class UsersController extends ManagerController {
- /**
- * [useModel 使用模型]
- * @return {[type]} [description]
- */
- get useModel() {
- const that = this;
- return that.app.model.Users;
- }
- /**
- * [selectValidate 查询用户列表]
- * @return {[type]} [description]
- */
- get selectValidate() {
- const that = this;
- return {
- page: that.ctx.rules.default(1)
- .number(),
- limit: that.ctx.rules.default(20)
- .number(),
- uname: that.ctx.rules.default('')
- .required(),
- };
- }
- /**
- * [updateValidate 用户充值验证器]
- * @return {[type]} [description]
- */
- get updateValidate() {
- const that = this;
- return {
- user_id: that.ctx.rules.name('用户ID')
- .required()
- .notEmpty()
- .number(),
- money: that.ctx.rules.name('充值金额')
- .required()
- .notEmpty()
- .number(),
- admin_id: that.ctx.rules.default(that.service.manager.ActionAdminUserId())
- .number(),
- };
- }
- /**
- * [moneyLogsValidate description]
- * @return {[type]} [description]
- */
- get moneyLogsValidate() {
- const that = this;
- return {
- user_id: that.ctx.rules.name('用户ID')
- .required()
- .notEmpty()
- .number(),
- page: that.ctx.rules.default(1)
- .number(),
- limit: that.ctx.rules.default(20)
- .number(),
- };
- }
- /**
- * [selectOptions description]
- * @param {Object} data [description]
- * @return {[type]} [description]
- */
- async selectOptions(data = {}) {
- const that = this;
- const seq = that.app.Sequelize;
- const options = {
- offset: (data.page - 1) * data.limit, limit: data.limit, where: {},
- attributes: { exclude: [ 'password' ] }, order: [[ 'user_id', 'desc' ]],
- };
- if (data.uname) {
- options.where = {
- [seq.Op.or]: [
- { nickname: { [seq.Op.regexp]: data.uname } },
- { account_name: { [seq.Op.regexp]: data.uname } },
- ],
- };
- }
- return options;
- }
- /**
- * [create 给用户充值]
- * @return {[type]} [description]
- */
- async update() {
- const that = this;
- let transaction;
- try {
- const data = await that.ctx.validate(that.updateValidate, await that.ctx.anyParse());
- // console.log(data);// { money: 168, user_id: 26, admin_id: 19 }
- transaction = await that.app.model.transaction();
- const result = await that.service.shop.userMoneyAdd(data.user_id, data.money, transaction, '管理员给用户充值', data.admin_id);
- await transaction.commit();
- return that.ctx.appJson(that.app.szjcomo.appResult('SUCCESS', result, false));
- } catch (err) {
- if (transaction) transaction.rollback();
- return that.ctx.appJson(that.app.szjcomo.appResult(err.message));
- }
- }
- /**
- * [moneyLogs 获取用户资金明细记录]
- * @return {[type]} [description]
- */
- async moneyLogs() {
- const that = this;
- try {
- const data = await that.ctx.validate(that.moneyLogsValidate, await that.ctx.getParse());
- const seq = that.app.Sequelize;
- const options = {
- offset: (data.page - 1) * data.limit, limit: data.limit, where: {
- user_id: data.user_id,
- }, include: [
- { model: that.app.model.AdminUser, as: 'admin_user', attributes: [], required: false },
- ], attributes: {
- include: [[ seq.col('admin_user.username'), 'username' ]],
- },
- };
- const selectBean = await that.app.comoBean.instance(data, options);
- const result = await that.service.base.select(selectBean, that.app.model.UsersMoneyLogs, '查询资金明细失败,请重试', true, true);
- return that.ctx.appJson(that.app.szjcomo.appResult('SUCCESS', result, false));
- } catch (err) {
- return that.ctx.appJson(that.app.szjcomo.appResult(err.message));
- }
- }
- };
|