Files
bd-training-exam/app/controller/System.js

162 lines
6.4 KiB
JavaScript
Raw Normal View History

2026-03-27 17:53:28 +08:00
const Controller = require('../core/base_controller');
const fileName = "System";
class SystemController extends Controller {
// 系统获取考试信息接口
async examMsg() {
const { ctx } = this;
try {
const result = await ctx.service.system.examMsg();
if (result == "error") {
this.setResponse(ctx, 500, '服务器错误', "none");
return;
}
if (result) {
this.setResponse(ctx, 200, '操作成功', "deconstruction", result);
} else {
this.setResponse(ctx, 404, '操作失败', "none");
}
} catch (error) {
const blockName = fileName + "--" + "examMsg";
ctx.app.middleware.log('../../controllerLog', blockName + ">>>>" + error);
this.setResponse(ctx, 500, '服务器错误', "none");
}
}
// 比较身份证号
async diffIdentityCard() {
const { ctx } = this;
try {
const body = ctx.request.body;
const identity_card = this.decryptRequest(body.identity_card);
const type = this.decryptRequest(body.type);
const data = this.decryptRequest(body.data);
const uid = data == 'null' ? null : data.split('?')[0];
const result = await ctx.service.system.diffIdentityCard(identity_card, type, uid);
if (result == "error") {
this.setResponse(ctx, 500, '服务器错误', "none");
return;
}
if (!result) {
this.setResponse(ctx, 404, '该身份证号已注册', "none");
} else {
this.setResponse(ctx, 200, '验证通过', "none");
}
} catch (error) {
const blockName = fileName + "--" + "diffIdentityCard";
ctx.app.middleware.log('../../controllerLog', blockName + ">>>>" + error);
this.setResponse(ctx, 500, '服务器错误', "none");
}
}
// 比较邮箱
async diffEmail() {
const { ctx } = this;
try {
const body = ctx.request.body;
const email = this.decryptRequest(body.email);
const type = this.decryptRequest(body.type);
const data = this.decryptRequest(body.data);
const uid = data == 'null' ? null : data.split('?')[0];
const result = await ctx.service.system.diffEmail(email, type, uid);
if (result == "error") {
this.setResponse(ctx, 500, '服务器错误', "none");
return;
}
if (!result) {
this.setResponse(ctx, 404, '该邮箱已经注册', "none");
} else {
this.setResponse(ctx, 200, '验证通过', "none");
}
} catch (error) {
const blockName = fileName + "--" + "diffEmail";
ctx.app.middleware.log('../../controllerLog', blockName + ">>>>" + error);
this.setResponse(ctx, 500, '服务器错误', "none");
}
}
// 比较电话号码
async diffPhone() {
const { ctx } = this;
try {
const body = ctx.request.body;
const phone = this.decryptRequest(body.phone);
const type = this.decryptRequest(body.type);
const data = this.decryptRequest(body.data);
const uid = data == 'null' ? null : data.split('?')[0];
const result = await ctx.service.system.diffPhone(phone, type, uid);
if (result == "error") {
this.setResponse(ctx, 500, '服务器错误', "none");
return;
}
if (!result) {
this.setResponse(ctx, 404, '该手机号已注册', "none");
} else {
this.setResponse(ctx, 200, '验证通过', "none");
}
} catch (error) {
const blockName = fileName + "--" + "diffPhone";
ctx.app.middleware.log('../../controllerLog', blockName + ">>>>" + error);
this.setResponse(ctx, 500, '服务器错误', "none");
}
}
// 用户注册接口
async registered() {
const { ctx } = this;
try {
const body = ctx.request.body;
const phone = this.decryptRequest(body.phone);
// redis 存放短信验证码,过期时间为 10 分钟
const redis = ctx.app.redis;
const codeResult = await redis.get('db3').get(phone);
if(!codeResult || JSON.parse(codeResult).status != '1') {
this.setResponse(ctx, 333, '短信验证码错误', "none");
return;
}
const salt = this.generateRandomString();
const form = {
uid: this.generateNumberString('E'),
salt: this.encryptRequest(salt),
password: this.shaForm(this.decryptRequest(body.password), salt),
user_name: this.decryptRequest(body.user_name),
identity_card: this.decryptRequest(body.identity_card),
real_check: 0,
workplace: this.decryptRequest(body.workplace),
address: this.decryptRequest(body.address),
phone: phone,
email: this.decryptRequest(body.email),
referrers: body.referrers ? this.decryptRequest(body.referrers) : null,
status: 1,
created_at: new Date(),
updated_at: new Date(),
login_status: 0,
};
const auditForm = {
user_uid: form.uid,
user_name: form.user_name,
identity_card: form.identity_card,
status: 0,
created_at: new Date(),
};
const result = await ctx.service.system.registered(form, auditForm);
if (result == "error") {
this.setResponse(ctx, 500, '服务器错误', "none");
return;
}
if (result) {
this.setResponse(ctx, 200, '操作成功', "none");
} else {
this.setResponse(ctx, 404, '操作失败', "none");
}
} catch (error) {
const blockName = fileName + "--" + "registered";
ctx.app.middleware.log('../../controllerLog', blockName + ">>>>" + error);
this.setResponse(ctx, 500, '服务器错误', "none");
}
}
}
module.exports = SystemController;