123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252 |
- 'use strict';
- const shopController = require('./shop.js');
- // 用户申请代理记录
- module.exports = class ProxyApplyLogsController extends shopController {
- // 使用模型
- get useModel() {
- const that = this;
- return that.app.model.ProxyApplyLogs;
- }
- /**
- * [selectValidate 查询验证器]
- * @return {{user_id: *}} [description]
- */
- get selectValidate() {
- const that = this;
- return {
- user_id: that.ctx.rules.default(that.service.shop.getWebUserId())
- .number(),
- };
- }
- /**
- * [createValidate 添加验证器]
- * @return {[type]} [description]
- */
- get createValidate() {
- const that = this;
- return {
- user_id: that.ctx.rules.default(that.service.shop.getWebUserId())
- .number(),
- real_name: that.ctx.rules.name('真实姓名')
- .required()
- .notEmpty()
- .trim(),
- phone_num: that.ctx.rules.name('电话号码')
- .required()
- .notEmpty()
- .trim()
- .phone(),
- phone_sms: that.ctx.rules.name('短信验证码')
- .required()
- .notEmpty()
- .trim(),
- id_num: that.ctx.rules.name('身份证号码')
- .required()
- .notEmpty()
- .trim(),
- province_name: that.ctx.rules.name('所在省')
- .required()
- .notEmpty()
- .trim(),
- province_id: that.ctx.rules.name('所在省ID')
- .required()
- .notEmpty()
- .number(),
- city_id: that.ctx.rules.name('所在市ID')
- .required()
- .notEmpty()
- .number(),
- city_name: that.ctx.rules.name('所在城市')
- .required()
- .notEmpty()
- .trim(),
- county_id: that.ctx.rules.name('所在区/县ID')
- .required()
- .notEmpty()
- .number(),
- county_name: that.ctx.rules.name('所在区/县')
- .required()
- .notEmpty()
- .trim(),
- address: that.ctx.rules.name('详细地址')
- .required()
- .notEmpty()
- .trim(),
- admin_id: that.ctx.rules.default(-1)
- .number(),
- verify_status: that.ctx.rules.default(-1)
- .number(),
- create_time: that.ctx.rules.default(that.app.szjcomo.date('Y-m-d H:i:s'))
- .required(),
- };
- }
- /**
- * [updateValidate 更新验证器]
- * @return {[type]} [description]
- */
- get updateValidate() {
- const that = this;
- return {
- user_id: that.ctx.rules.default(that.service.shop.getWebUserId())
- .number(),
- proxy_apply_id: that.ctx.rules.name('代理申请记录ID')
- .required()
- .notEmpty()
- .number(),
- update_time: that.ctx.rules.default(that.app.szjcomo.date('Y-m-d H:i:s'))
- .required(),
- };
- }
- /**
- * [deleteValidate 删除验证器]
- * @return {[type]} [description]
- */
- get deleteValidate() {
- const that = this;
- return {
- user_id: that.ctx.rules.default(that.service.shop.getWebUserId())
- .number(),
- proxy_apply_id: that.ctx.rules.name('代理申请记录ID')
- .required()
- .notEmpty()
- .number(),
- };
- }
- /**
- * [select 查询代理申请记录]
- * @return {[type]} [description]
- */
- async select() {
- const that = this;
- try {
- const data = await that.ctx.validate(that.selectValidate, await that.ctx.getParse());
- const options = { where: { user_id: data.user_id } };
- const selectBean = await that.app.comoBean.instance(data, options);
- const result = await that.service.base.select(selectBean, that.useModel, '代理认证记录查询失败,请稍候重试', false, false);
- return that.ctx.appJson(that.app.szjcomo.appResult('SUCCESS', result, false));
- } catch (err) {
- return that.ctx.appJson(that.app.szjcomo.appResult('SUCCESS', false, false));
- }
- }
- /**
- * [create 添加代理申请记录]
- * 记录:一个用户只有一条
- * @return {[type]} [description]
- */
- async create() {
- const that = this;
- try {
- const data = await that.ctx.validate(that.createValidate, await that.ctx.postParse());
- const smsCode = data.phone_sms;
- const smsRedis = await that.service.redis.get(data.phone_num);
- // eslint-disable-next-line eqeqeq
- if (smsCode != smsRedis) {
- throw new Error('短信验证码错误');
- }
- // 2022/12/13 短信验证码通过直接过审
- data.verify_status = 1;
- const createBean = await that.app.comoBean.instance(data);
- const selectOptions = { where: { user_id: data.user_id } };
- const selectResult = await that.useModel.findOne(selectOptions);
- let result;
- if (selectResult) {
- const updateBean = await that.app.comoBean.instance(data, {
- where: {
- user_id: data.user_id,
- proxy_apply_id: selectResult.proxy_apply_id,
- },
- });
- result = await that.service.base.update(updateBean, that.useModel, '更新所有代理申请记录失败,请稍后重试');
- } else {
- result = await that.service.base.create(createBean, that.useModel, '代理认证申请信息上传失败,请稍后重试');
- }
- return that.ctx.appJson(that.app.szjcomo.appResult('SUCCESS', result, false));
- } catch (err) {
- return that.ctx.appJson(that.app.szjcomo.appResult(err.message));
- }
- }
- /**
- * [update 更新代理申请记录]
- * @return {[type]} [description]
- */
- async update() {
- const that = this;
- try {
- const data = await that.ctx.validate(that.updateValidate, await that.ctx.anyParse());
- const options = { where: { user_id: data.user_id, proxy_apply_id: data.proxy_apply_id } };
- const updateBean = await that.app.comoBean.instance(data, options);
- const result = await that.service.base.update(updateBean, that.useModel, '更新代理申请记录失败,请稍候重试');
- return that.ctx.appJson(that.app.szjcomo.appResult('SUCCESS', result, false));
- } catch (err) {
- return that.ctx.appJson(that.app.szjcomo.appResult(err.message));
- }
- }
- /**
- * [delete 删除代理申请记录]
- * @return {[type]} [description]
- */
- async delete() {
- const that = this;
- try {
- const data = await that.ctx.validate(that.deleteValidate, await that.ctx.anyParse());
- const options = { where: { user_id: data.user_id, proxy_apply_id: data.proxy_apply_id } };
- const deleteBean = await that.app.comoBean.instance(data, options);
- const result = await that.service.base.delete(deleteBean, that.useModel, '删除代理申请记录失败,请稍候重试');
- return that.ctx.appJson(that.app.szjcomo.appResult('SUCCESS', result, false));
- } catch (err) {
- return that.ctx.appJson(that.app.szjcomo.appResult(err.message));
- }
- }
- /**
- * 发送短信验证码
- * @return {Promise<boolean|*>}
- */
- async phoneSMS() {
- const that = this;
- try {
- const data = await that.ctx.getParse();
- const mobile = data.phone_num;
- // const oldCode = await that.service.redis.get(mobile);
- const keys = [ 'sms_domain', 'sms_identity', 'sms_template_id', 'sms_sign' ];
- const randCode = that.app.szjcomo.mt_rand(1000, 9999);
- await that.service.redis.set(mobile, randCode, 10 * 60);
- const config = await that.service.configs.getConfigMoreValue(keys);
- if (!Number(config.sms_template_id)) return false;
- const bodyData = {
- mobile,
- identity: config.sms_identity,
- params: [ randCode ],
- templateId: config.sms_template_id,
- sign: config.sms_sign,
- };
- const response = await that.app.curl(config.sms_domain, {
- method: 'POST', dataType: 'json', contentType: 'json', data: bodyData,
- });
- /**
- * response.data
- * message: 'SUCCESS',
- * result: '5tdf5k4kQj',
- * result_code: 0,
- * error: false
- */
- if (response.data.error !== false) throw new Error(response.data.message);
- return that.ctx.appJson(that.app.szjcomo.appResult('SUCCESS', response.data, false));
- } catch (err) {
- return that.ctx.appJson(that.app.szjcomo.appResult(err.message));
- }
- }
- };
|