'use strict'; /** * 账号相关控制器 * * @author CaiAoLin * @date 2018/1/26 * @version */ module.exports = app => { class ProfileController extends app.BaseController { /** * 账号资料页面 * * @param {Object} ctx - egg全局变量 * @return {void} */ async info(ctx) { // 获取当前用户数据 const sessionUser = ctx.session.sessionUser; // 获取账号数据 const accountData = await ctx.service.projectAccount.getDataByCondition({ id: sessionUser.accountId }); // 获取基础数据的字段规则 let baseRule = ctx.service.projectAccount.rule('profileBase'); baseRule = ctx.helper.validateConvert(baseRule); const renderData = { accountData, baseRule: JSON.stringify(baseRule), }; await this.layout('profile/info.ejs', renderData); } /** * 保存基本信息 * * @param {Object} ctx - egg全局变量 * @return {void} */ async saveBase(ctx) { try { // 获取当前用户数据 const sessionUser = ctx.session.sessionUser; // 获取基础数据的字段规则 const baseRule = ctx.service.projectAccount.rule('profileBase'); ctx.helper.validate(baseRule); const result = await ctx.service.projectAccount.save(ctx.request.body, sessionUser.accountId); if (!result) { throw '保存信息失败'; } this.setMessage('修改成功', this.messageType.SUCCESS); } catch (error) { console.log(error); this.setMessage(error.toString(), this.messageType.ERROR); } ctx.redirect(ctx.request.headers.referer); } } return ProfileController; };