File: ../../src/netease/icp/backend/services/LoginService.js
var assert = require('assert');
var logger = using('easynode.framework.Logger').forFile(__filename);
var GenericObject = using('easynode.GenericObject');
var md5 = require('md5');
var fs = require('co-fs');
var f = require('fs');
var bfs = require('babel-fs');
var archiver = require('archiver');
var _ = require('lodash');
var StoreService = using('netease.icp.backend.services.StoreService');
(function () {
const LOGIN_SUCCESS = { resCode:200, resReason: "登陆恭喜!" };
const LOGIN_PARA_ERR = { resCode: 302, resReason: "请求体错误" };
const LOGIN_PARA_PARSE_ERR = { resCode: 701, resReason: "参数解析错误" };
const LOGIN_PARA_LACK_ERR = { resCode: 705, resReason: "缺少参数" };
const LOGIN_USER_NOT_EXIST = { resCode: 1004, resReason: "用户名不存在" };
const LOGIN_PASS_ERR = { resCode: 1005, resReason: "密码错误" };
const LOGIN_URS_NOPASS = { resCode: 1009, resReason: "urs认证失败" };
const LOGIN_EMAIL_NOURL = { resCode: 1010, resReason: "该email不能以urs方式登录云平台" };
const LOGIN_FIRST_URS_NOPASS = { resCode: 1011, resReason: "初次登录的 urs 用户在管理平台注册失败" };
const LOGIN_USR_OR_PASS_ERROR = { resCode: 1012, resReason: "urs用户名或者密码错误"};
const LOGIN_SERVER_ERROR = { resCode: -1, resReason: "服务器错误"};
// Myself result code
const LOGIN_OK = 200;
const LOGIN_ERR = 201;
/**
* Class LoginService
*
* @class netease.icp.backend.services.LoginService
* @extends easynode.GenericObject
* @since 0.1.0
* @author allen.hu
* */
class LoginService extends GenericObject {
/**
* 构造函数。
*
* @method 构造函数
* @since 0.1.0
* @author allen.hu
* */
constructor(app) {
super();
//调用super()后再定义子类成员。
this.app = app;
}
/**
* @ {get} /records 获取记录列表
* @apiName getRecords
* @apiGroup Record
* @apiPermission admin or self
* @apiVersion 0.0.2
* @apiDescription 管理员(登录后用户对象里用idadmin字段表示)能获取所有用户申请记录,本用户只能获取他自己的申请记录
*
* @apiParam {Number} filter 查询状态过滤条件 0-全部(除草稿) 1-待审核 2-已审核通过 3-审核失败的
* @apiParam {Number} page 页号.
* @apiParam {Number} rpp 每页记录数.
*
* @apiSampleRequest http://icp.hzspeed.cn/records
*
* @apiSuccess {Object[]} data 记录列表
* @apiSuccess {Number} data.id 记录id
* @apiSuccess {String} data.checklisturl 核验单图片URL
* @apiSuccess {String} data.protocolurl1 云平台协议第一页图片
* @apiSuccess {String} data.protocolurl2 云平台协议第二页图片
* @apiSuccess {String} data.securityurl1 信息安全管理责任书第一页图片URL
* @apiSuccess {String} data.securityurl2 信息安全管理责任书第二页图片URL
* @apiSuccess {Number} data.companyid 公司id
* @apiSuccess {Number} data.websiteid 网站id
* @apiSuccess {String} data.tenantid 租户id
* @apiSuccess {Number} data.type 备案类型: 0-首次备案, 1-新增网站, 2-新增接入
* @apiSuccess {Number} data.status 备案状态: 0-草稿,1-初审中,2-初审未通过,3-初审已通过,4-照片审核中,5-照片审核未通过,6-照片审核已通过,7-通管局审核中,8-通管局审核未通过,9-通管局审核已通过,10-未知状态
* @apiSuccess {String} data.code 备案编号
* @apiSuccess {Number} data.updatetime 记录更新时间
* @apiSuccess {Number} data.createtime 记录创建时间
* @apiSuccess {Number} page 页号
* @apiSuccess {Number} pages 总页数
* @apiSuccess {Number} rows 总记录数
* @apiSuccess {Number} rpp 每页显示数
*
* @apiUse EmptyRecord
*/
login(query = {code: LOGIN_PARA_LACK_ERR.resCode}) {
var me = this;
return function * (){
if (query.code == LOGIN_SUCCESS.resCode) {
var user = {};
user.tenantid = query.tenantId;
user.status = query.status;
user.logintype = query.loginType;
//user.regin = query.regIn;
user.email = query.email;
user.username = query.userName;
var storeService = new StoreService(me.app);
var id = yield storeService.isFirst(user.tenantid);
console.log("iiiiiiiii",id);
var recordnumber = yield storeService.getRecordNumber(user.tenantid);
user.recordnumber = recordnumber;
user.id = id;
var useraddress = yield storeService.getUserAddress(user.tenantid);
console.log("useraddress", useraddress);
user = Object.assign({},user,useraddress);
var res = Object.assign({},{user:user},LOGIN_SUCCESS);
id ? yield storeService.updateUser(Object.assign({},user,{id:id})) : yield storeService.addUser(user);
return res;
} else {
return query.code == LOGIN_PARA_ERR.resCode ? LOGIN_PARA_ERR :
query.code == LOGIN_PARA_PARSE_ERR.resCode ? LOGIN_PARA_PARSE_ERR :
query.code == LOGIN_PARA_LACK_ERR.resCode ? LOGIN_PARA_LACK_ERR :
query.code == LOGIN_PASS_ERR.resCode ? LOGIN_PASS_ERR :
query.code == LOGIN_URS_NOPASS.resCode ? LOGIN_URS_NOPASS :
query.code == LOGIN_USER_NOT_EXIST.resCode ? LOGIN_EMAIL_NOURL :
query.code == LOGIN_EMAIL_NOURL.resCode ? LOGIN_URS_NOPASS :
query.code == LOGIN_FIRST_URS_NOPASS.resCode ? LOGIN_FIRST_URS_NOPASS :
query.code == LOGIN_USR_OR_PASS_ERROR.resCode ? LOGIN_USR_OR_PASS_ERROR : LOGIN_USR_OR_PASS_ERROR;
}
}
}
getClassName() {
return EasyNode.namespace(__filename);
}
}
module.exports = LoginService;
})();