Commit e93881c8 by 赵庆

初始

parent dcafa940
# Default ignored files
/workspace.xml
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
\ No newline at end of file
<component name="ProjectDictionaryState">
<dictionary name="root" />
</component>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/bpo-stat.iml" filepath="$PROJECT_DIR$/.idea/bpo-stat.iml" />
</modules>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
</component>
</project>
\ No newline at end of file
var system = require("../../../system")
const CtlBase = require("../../ctl.base");
class CompanysCtl extends CtlBase {
constructor() {
super("all", CtlBase.getServiceName(CompanysCtl));
}
async allList(qobj){
var params = qobj.search || {};
this.doTimeCondition(params, ["signBegin", "signEnd"]);
try {
var page = await this.service.signPage(params);
return system.getResult2(page);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
}
module.exports = CompanysCtl;
\ No newline at end of file
var system = require("../../../system") var system = require("../../../system")
const http = require("http")
const querystring = require('querystring');
var settings = require("../../../../config/settings");
const CtlBase = require("../../ctl.base"); const CtlBase = require("../../ctl.base");
const logCtl = system.getObject("web.common.oplogCtl");
const md5 = require("MD5");
const uuidv4 = require('uuid/v4');
var cacheBaseComp = null;
class UserCtl extends CtlBase { class UserCtl extends CtlBase {
constructor() { constructor() {
super("auth", CtlBase.getServiceName(UserCtl)); super("auth", CtlBase.getServiceName(UserCtl));
this.redisClient = system.getObject("util.redisClient"); this.redisClient = system.getObject("util.redisClient");
} }
async login(pobj, pobj2, req, res) { async login(pobj, qobj, req) {
var loginName = this.trim(pobj.loginName); var loginName = this.trim(pobj.loginname);
var password = this.trim(pobj.password); var password = this.trim(pobj.password);
try { try {
return system.getResultSuccess(1); var user = await this.service.findOne({"loginname": loginName});
if (!user) {
return system.getResultFail(-1, "用户不存在");
}
user = user.dataValues;
if (user.password !== super.encryptPasswd(password)) {
return system.getResultFail(-1, "密码错误");
}
return system.getResultSuccess(user, "");
} catch (error) { } catch (error) {
console.log(error); console.log(error);
return system.getResultFail(500, "接口异常:" + error.message); return system.getResultFail(500, "接口异常:" + error.message);
} }
} }
async register(pobj, qobj, req) {
if (!pobj.loginname) {
return system.getResultFail(-1, "用户为空");
}
if (!pobj.password) {
return system.getResultFail(-1, "密码为空");
}
var user = await this.service.findOne({
loginname: pobj.loginname
});
if (user) {
return system.getResultFail(-1, "用户已存在, 请修改并重试");
}
let inse = {
loginname: pobj.loginname,
password: super.encryptPasswd(pobj.password)
};
var u = await this.service.register(inse);
return system.getResultSuccess(u, "注册成功");
}
async userList(queryobj, obj, req){
var pageInfo = obj.pageInfo || {};
var search = obj.search || {};
var apps = await this.service.userPage(pageInfo, search);
return system.getResultSuccess(apps, null);
}
} }
module.exports = UserCtl; module.exports = UserCtl;
\ No newline at end of file
const system = require("../../../system");
const Dao = require("../../dao.base");
class CompanysDao extends Dao {
constructor() {
super(Dao.getModelName(CompanysDao));
}
}
module.exports = CompanysDao;
\ No newline at end of file
const system=require("../../../system"); const system = require("../../../system");
const Dao=require("../../dao.base"); const Dao = require("../../dao.base");
class UserDao extends Dao{
constructor(){ class UserDao extends Dao {
constructor() {
super(Dao.getModelName(UserDao)); super(Dao.getModelName(UserDao));
} }
async getAuths(userid){
var self=this; async register(user) {
console.log(user)
var sql = "SELECT id FROM tbl_users WHERE loginname LIKE :loginname ";
var list = await this.customQuery(sql, {loginname: "%" + user.loginname + "%"});
console.log(list)
}
async getAuths(userid) {
var self = this;
return this.model.findOne({ return this.model.findOne({
where:{id:userid}, where: {id: userid},
include:[{model:self.db.models.account,attributes:["id","isSuper","referrerOnlyCode"]}, include: [{model: self.db.models.account, attributes: ["id", "isSuper", "referrerOnlyCode"]},
{model:self.db.models.role,as:"Roles",attributes:["id","code"],include:[ {
{model:self.db.models.product,as:"Products",attributes:["id","code"]} model: self.db.models.role, as: "Roles", attributes: ["id", "code"], include: [
]}, {model: self.db.models.product, as: "Products", attributes: ["id", "code"]}
]
},
], ],
}); });
} }
extraModelFilter(){
extraModelFilter() {
//return {"key":"include","value":[{model:this.db.models.app,},{model:this.db.models.role,as:"Roles",attributes:["id","name"],joinTableAttributes:['created_at']}]}; //return {"key":"include","value":[{model:this.db.models.app,},{model:this.db.models.role,as:"Roles",attributes:["id","name"],joinTableAttributes:['created_at']}]};
return {"key":"include","value":[{model:this.db.models.app,},{model:this.db.models.role,as:"Roles",attributes:["id","name"]}]}; return {
"key": "include",
"value": [{model: this.db.models.app,}, {
model: this.db.models.role,
as: "Roles",
attributes: ["id", "name"]
}]
};
} }
extraWhere(obj,w,qc,linkAttrs){
if(obj.codepath && obj.codepath!=""){ extraWhere(obj, w, qc, linkAttrs) {
if (obj.codepath && obj.codepath != "") {
// if(obj.codepath.indexOf("userarch")>0){//说明是应用管理员的查询 // if(obj.codepath.indexOf("userarch")>0){//说明是应用管理员的查询
// console.log(obj); // console.log(obj);
// w["app_id"]=obj.appid; // w["app_id"]=obj.appid;
// } // }
} }
if(linkAttrs.length>0){ if (linkAttrs.length > 0) {
var search=obj.search; var search = obj.search;
var lnkKey=linkAttrs[0]; var lnkKey = linkAttrs[0];
var strq="$"+lnkKey.replace("~",".")+"$"; var strq = "$" + lnkKey.replace("~", ".") + "$";
w[strq]= {[this.db.Op.like]:"%"+search[lnkKey]+"%"}; w[strq] = {[this.db.Op.like]: "%" + search[lnkKey] + "%"};
} }
return w; return w;
} }
async preUpdate(u){
if(u.roles && u.roles.length>0){
var roles=await this.db.models.role.findAll({where:{id:{[this.db.Op.in]:u.roles}}});
console.log("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
console.log(roles);
u.roles=roles
}
return u;
}
async update(obj){
var obj2=await this.preUpdate(obj);
console.log("update....................");
console.log(obj2);
await this.model.update(obj2,{where:{id:obj2.id}});
var user=await this.model.findOne({where:{id:obj2.id}});
user.setRoles(obj2.roles);
return user;
}
async findAndCountAll(qobj,t){
var users=await super.findAndCountAll(qobj,t);
return users;
}
async preCreate(u){
// var roles=await this.db.models.role.findAll({where:{id:{[this.db.Op.like]:u.roles}}});
// console.log("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
// console.log(roles);
// console.log("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
// u.roles=roles
return u;
}
async create(u,t){
var self=this;
var u2=await this.preCreate(u);
if(t){
return this.model.create(u2,{transaction: t}).then(user=>{
return user;
});
}else{
return this.model.create(u2).then(user=>{
return user;
});
}
}
//修改用户(user表)公司的唯一码 //修改用户(user表)公司的唯一码
async putUserCompanyOnlyCode(userId,company_only_code,result){ async putUserCompanyOnlyCode(userId, company_only_code, result) {
var customerObj={companyOnlyCode:company_only_code}; var customerObj = {companyOnlyCode: company_only_code};
var putSqlWhere={where:{id:userId}}; var putSqlWhere = {where: {id: userId}};
this.updateByWhere(customerObj,putSqlWhere); this.updateByWhere(customerObj, putSqlWhere);
return result; return result;
} }
} }
module.exports=UserDao;
// var u=new UserDao(); module.exports = UserDao;
// var roledao=system.getObject("db.roleDao"); \ No newline at end of file
// (async ()=>{
// var users=await u.model.findAll({where:{app_id:1}});
// var role=await roledao.model.findOne({where:{code:"guest"}});
// console.log(role);
// for(var i=0;i<users.length;i++){
// await users[i].setRoles([role]);
// console.log(i);
// }
//
// })();
module.exports = function(sequelize, DataTypes) {
return sequelize.define('companys', {
id: {
type: DataTypes.INTEGER(11),
allowNull: false,
primaryKey: true,
autoIncrement: true
},
company_name: {
type: DataTypes.STRING(255),
allowNull: true
},
type: {
type: DataTypes.INTEGER(1),
allowNull: true
},
linkman: {
type: DataTypes.STRING(255),
allowNull: true
},
link_no: {
type: DataTypes.STRING(255),
allowNull: true
},
link_email: {
type: DataTypes.STRING(255),
allowNull: true
},
bank_account_name: {
type: DataTypes.STRING(255),
allowNull: true
},
open_bank: {
type: DataTypes.STRING(255),
allowNull: true
},
bank_account: {
type: DataTypes.STRING(255),
allowNull: true
},
company_nameA: {
type: DataTypes.STRING(255),
allowNull: true
},
begin_time: {
type: DataTypes.DATE,
allowNull: true
},
invalid_time: {
type: DataTypes.DATE,
allowNull: true
},
created_at: {
type: DataTypes.DATE,
allowNull: true
},
updated_at: {
type: DataTypes.DATE,
allowNull: true
},
deleted_at: {
type: DataTypes.DATE,
allowNull: true
},
version: {
type: DataTypes.INTEGER(11),
allowNull: true
}
}, {
tableName: 'tb_companys',
});
};
const system=require("../../../system"); const system = require("../../../system");
const settings=require("../../../../config/settings"); const settings = require("../../../../config/settings");
const uiconfig=system.getUiConfig2(settings.appKey); const uiconfig = system.getUiConfig2(settings.appKey);
module.exports = (db, DataTypes) => { module.exports = (db, DataTypes) => {
return db.define("user", { return db.define("user", {
ucid: { id: {
type:DataTypes.INTEGER, type: DataTypes.INTEGER,
allowNull: false, primaryKey: true,
autoIncrement: true
}, },
ucname: { loginname: {
type:DataTypes.STRING, type: DataTypes.STRING,
allowNull: false, allowNull: false,
}, },
lastLoginTime: { password: DataTypes.STRING,
type:DataTypes.DATE, status : DataTypes.INTEGER,
allowNull: true, }, {
},
passwd: DataTypes.STRING,
},{
paranoid: true,//假的删除 paranoid: true,//假的删除
underscored: true, underscored: true,
version: true, version: true,
freezeTableName: true, freezeTableName: true,
// freezeTableName: true, // freezeTableName: true,
// define the table's name // define the table's name
tableName: 'xgg_admin_user', tableName: 'tbl_users',
validate: { validate: {},
}, indexes: [
indexes:[
// Create a unique index on email // Create a unique index on email
// { // {
// unique: true, // unique: true,
......
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings");
class CompanysService extends ServiceBase {
constructor() {
super("all", ServiceBase.getDaoName(CompanysService));
}
async signPage(params) {
var currentPage = Number(params.currentPage || 0);
var pageSize = Number(params.pageSize || 10);
var where = {};
if (params.company_name) {
where.company_name = {
[this.db.Op.like]: "%" + params.company_name + "%"
};
}
this.addWhereTime(where, 'begin_time', params.signBegin, params.signEnd, true);
var orderby = [
["id", 'desc']
];
var attributes = [`id`, `company_name`, `type`, `linkman`, `link_no`, `link_email`, `bank_account_name`, `open_bank`, `bank_account`, `company_nameA`, `begin_time`, `invalid_time`];
var page = await this.getPageList(currentPage, pageSize, where, orderby, attributes);
if (page && page.rows) {
for (var row of page.rows) {
this.handleDate(row, ["begin_time", "invalid_time"]);
}
}
return page;
}
}
module.exports = CompanysService;
\ No newline at end of file
const system = require("../../../system"); const system = require("../../../system");
const ServiceBase = require("../../sve.base") const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings") const settings = require("../../../../config/settings");
class UserService extends ServiceBase { class UserService extends ServiceBase {
constructor() { constructor() {
super("auth", ServiceBase.getDaoName(UserService)); super("auth", ServiceBase.getDaoName(UserService));
this.platformUtils = system.getObject("util.businessManager.opPlatformUtils");
} }
async saveUser(user) {
var u = await this.dao.findOne({
ucid: user.ucid,
}) || {};
u.ucid = user.ucid; async register(user) {
u.ucname = user.ucname; let ss = await this.dao.register(user);
u.passwd = user.passwd;
u.lastLoginTime = user.lastLoginTime;
if(u.id) {
u = await this.dao.create(ucid);
} else {
await u.save();
}
return u;
} }
async authByCode(opencode) { async userPage(pageInfo, search) {
var existedUser = null; var currentPage = Number(pageInfo.pageNo || 1);
var rawUser = null; var pageSize = Number(pageInfo.pageSize || 10);
var openuser = await this.apiCallWithAk(settings.paasUrl() + "api/auth/accessAuth/authByCode", { opencode: opencode });
if (openuser) { var where = {};
//先查看自己系统中是否已经存在当前用户
existedUser = await this.dao.model.findOne({ where: { ucname: openuser.userName, ucid: openuser.account_id }, raw: true }); if (search.nickName) {
if (!existedUser) { where.nickName = {
existedUser = await this.register(openuser); [this.db.Op.like]: "%" + search.nickName + "%"
} };
rawUser = existedUser;
rawUser.Roles = openuser.Roles;
}
return rawUser;
}
async getUserLoginInfo(token) {
var acckapp = await this.cacheManager["ApiUserCache"].cache(token, null, settings.usertimeout);
}
async register(openuser) {
var param = {
ucname: openuser.userName, ucid: openuser.account_id,
lastLoginTime: new Date()
}
var cruser = await this.dao.create(param);
return cruser;
}
//在平台进行登录,返回目标认证地址
async navSysSetting(user) {
var sysLoginUrl = settings.paasUrl() + "web/auth/userCtl/login?appKey=" + settings.appKey + "\&toKey=" + settings.paasKey;
var x = { userName: user.userName, password: user.password, mobile: user.mobile };
var restResult = await this.restS.execPost({ u: x }, sysLoginUrl);
if (restResult) {
var rtnres = JSON.parse(restResult.stdout);
if (rtnres.status == 0) {
return rtnres.data;
}
} }
return null;
if (search.userName) {
where.userName = search.userName;
} }
async getUserByUserNamePwd(u) {
var user = await this.dao.model.findOne({ if (search.mobile) {
where: { userName: u.userName, password: u.password, app_id: u.app_id }, where.mobile = search.mobile;
include: [
{ model: this.db.models.role, as: "Roles", attributes: ["id", "code"] },
]
});
return user;
} }
async checkSameName(uname, appid) {
var ac = await this.dao.model.findOne({ where: { userName: uname, app_id: appid } }); if(search.isBack) {
var rtn = { isExist: false }; where.utype = Number(search.isBack) - 1;
if (ac) {
rtn.isExist = true;
} }
return rtn;
var orderby = [
["id", 'desc']
];
return await this.getPageList(currentPage, pageSize, where, orderby);
} }
} }
module.exports = UserService; module.exports = UserService;
\ No newline at end of file
// var task=new UserService();
// task.getUserStatisticGroupByApp().then(function(result){
// console.log((result));
// }).catch(function(e){
// console.log(e);
// });
...@@ -33,6 +33,28 @@ class System { ...@@ -33,6 +33,28 @@ class System {
bizmsg: req && req.session && req.session.bizmsg ? req.session.bizmsg : "empty" bizmsg: req && req.session && req.session.bizmsg ? req.session.bizmsg : "empty"
}; };
} }
static getResult2(data,req,okmsg="操作成功",errmsg="操作失败"){
var result={
status:0,
msg:okmsg,
data:data,
};
if(req && req.session && req.session.bizmsg){
result.bizmsg=req.session.bizmsg;
req.session.bizmsg=null;
}else{
result.bizmsg="empty";
}
if(!data){
result.status=-1;
result.msg=errmsg;
}
return result;
}
static getErrResult2(errmsg) {
return this.getResult2(null, null, null, errmsg);
}
/** /**
* 请求返回成功 * 请求返回成功
* @param {*} data 操作成功返回的数据 * @param {*} data 操作成功返回的数据
......
...@@ -6,14 +6,14 @@ var settings={ ...@@ -6,14 +6,14 @@ var settings={
db:10, db:10,
}, },
database:{ database:{
dbname : "xgg", dbname : "bpo_stat",
user: "write", user: "write",
password: "write", password: "write",
config: { config: {
host: '192.168.18.237', host: '192.168.18.237',
port: 3306, port: 3306,
// host: '43.247.184.35', // host: '43.247.184.35',
// port: 8899, // port: 8899,s
dialect: 'mysql', dialect: 'mysql',
operatorsAliases: false, operatorsAliases: false,
pool: { pool: {
......
...@@ -5,50 +5,50 @@ var userCtl = system.getObject("web.auth.userCtl"); ...@@ -5,50 +5,50 @@ var userCtl = system.getObject("web.auth.userCtl");
const redisClient = system.getObject("util.redisClient"); const redisClient = system.getObject("util.redisClient");
module.exports = function (app) { module.exports = function (app) {
app.all("/web/*", async function (req, res, next) { // app.all("/web/*", async function (req, res, next) {
var xggadminsid; // var xggadminsid;
var jsonUser = req.session.user; // var jsonUser = req.session.user;
// var jsonUser = null; // // var jsonUser = null;
if(!jsonUser) { // if(!jsonUser) {
xggadminsid = req.headers["xggadminsid"] || ""; // xggadminsid = req.headers["xggadminsid"] || "";
jsonUser = await redisClient.get(xggadminsid); // jsonUser = await redisClient.get(xggadminsid);
if(jsonUser) { // if(jsonUser) {
jsonUser = JSON.parse(jsonUser); // jsonUser = JSON.parse(jsonUser);
} // }
} // }
//
if (req.url.indexOf("auth/userCtl/login") > 0 || // if (req.url.indexOf("auth/userCtl/login") > 0 ||
req.url.indexOf("uc/userCtl/login") > 0 || // req.url.indexOf("uc/userCtl/login") > 0 ||
req.url.indexOf("auth/userCtl/smsCode") > 0 || // req.url.indexOf("auth/userCtl/smsCode") > 0 ||
req.url.indexOf("common/metaCtl/getApiDoc") > 0 || // req.url.indexOf("common/metaCtl/getApiDoc") > 0 ||
req.url.indexOf("common/captchaCtl/captcha") > 0 || // req.url.indexOf("common/captchaCtl/captcha") > 0 ||
//
req.url.indexOf("getRsConfig") > 0) { // req.url.indexOf("getRsConfig") > 0) {
if (jsonUser) { // if (jsonUser) {
req.loginUser = jsonUser; // req.loginUser = jsonUser;
} else { // } else {
req.loginUser = null; // req.loginUser = null;
} // }
return next(); // return next();
} // }
//
if (!jsonUser) { // if (!jsonUser) {
res.end(JSON.stringify({ status: -99, msg: "no login" })); // res.end(JSON.stringify({ status: -99, msg: "no login" }));
return;
}
if(xggadminsid) {
redisClient.setWithEx(xggadminsid, JSON.stringify(jsonUser), 60 * 60 * 60);
}
req.loginUser = jsonUser;
// if(req.loginUser.uctype != 3) {
// res.end(JSON.stringify({ status: -99, msg: "no deliver user, kick off" }));
// return; // return;
// } // }
req.loginUser = jsonUser; //
next(); // if(xggadminsid) {
}); // redisClient.setWithEx(xggadminsid, JSON.stringify(jsonUser), 60 * 60 * 60);
// }
//
// req.loginUser = jsonUser;
// // if(req.loginUser.uctype != 3) {
// // res.end(JSON.stringify({ status: -99, msg: "no deliver user, kick off" }));
// // return;
// // }
// req.loginUser = jsonUser;
// next();
// });
app.get("/", async function (req, res) { app.get("/", async function (req, res) {
res.render("index", { appinfo: null, app: null }); res.render("index", { appinfo: null, app: null });
......
...@@ -26,7 +26,7 @@ var settings = { ...@@ -26,7 +26,7 @@ var settings = {
salt: "%iatpD1gcxz7iF#B", salt: "%iatpD1gcxz7iF#B",
defaultpwd: "987456", defaultpwd: "987456",
basepath: path.normalize(path.join(__dirname, '../..')), basepath: path.normalize(path.join(__dirname, '../..')),
port: process.env.NODE_PORT || 3012, port: process.env.NODE_PORT || 3013,
reqEsAddr: function () { reqEsAddr: function () {
if (this.env == "dev") { if (this.env == "dev") {
var localsettings = require("./localsettings"); var localsettings = require("./localsettings");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment