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")
const http = require("http")
const querystring = require('querystring');
var settings = require("../../../../config/settings");
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 {
constructor() {
super("auth", CtlBase.getServiceName(UserCtl));
this.redisClient = system.getObject("util.redisClient");
}
async login(pobj, pobj2, req, res) {
var loginName = this.trim(pobj.loginName);
async login(pobj, qobj, req) {
var loginName = this.trim(pobj.loginname);
var password = this.trim(pobj.password);
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) {
console.log(error);
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;
\ 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 Dao=require("../../dao.base");
class UserDao extends Dao{
constructor(){
const system = require("../../../system");
const Dao = require("../../dao.base");
class UserDao extends Dao {
constructor() {
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({
where:{id:userid},
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"]}
]},
where: {id: userid},
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"]}
]
},
],
});
}
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"]}]};
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){//说明是应用管理员的查询
// console.log(obj);
// w["app_id"]=obj.appid;
// }
}
if(linkAttrs.length>0){
var search=obj.search;
var lnkKey=linkAttrs[0];
var strq="$"+lnkKey.replace("~",".")+"$";
w[strq]= {[this.db.Op.like]:"%"+search[lnkKey]+"%"};
if (linkAttrs.length > 0) {
var search = obj.search;
var lnkKey = linkAttrs[0];
var strq = "$" + lnkKey.replace("~", ".") + "$";
w[strq] = {[this.db.Op.like]: "%" + search[lnkKey] + "%"};
}
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表)公司的唯一码
async putUserCompanyOnlyCode(userId,company_only_code,result){
var customerObj={companyOnlyCode:company_only_code};
var putSqlWhere={where:{id:userId}};
this.updateByWhere(customerObj,putSqlWhere);
async putUserCompanyOnlyCode(userId, company_only_code, result) {
var customerObj = {companyOnlyCode: company_only_code};
var putSqlWhere = {where: {id: userId}};
this.updateByWhere(customerObj, putSqlWhere);
return result;
}
}
module.exports=UserDao;
// var u=new UserDao();
// var roledao=system.getObject("db.roleDao");
// (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 = UserDao;
\ No newline at end of file
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 settings=require("../../../../config/settings");
const uiconfig=system.getUiConfig2(settings.appKey);
const system = require("../../../system");
const settings = require("../../../../config/settings");
const uiconfig = system.getUiConfig2(settings.appKey);
module.exports = (db, DataTypes) => {
return db.define("user", {
ucid: {
type:DataTypes.INTEGER,
allowNull: false,
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true
},
ucname: {
type:DataTypes.STRING,
loginname: {
type: DataTypes.STRING,
allowNull: false,
},
lastLoginTime: {
type:DataTypes.DATE,
allowNull: true,
},
passwd: DataTypes.STRING,
},{
password: DataTypes.STRING,
status : DataTypes.INTEGER,
}, {
paranoid: true,//假的删除
underscored: true,
version: true,
freezeTableName: true,
// freezeTableName: true,
// define the table's name
tableName: 'xgg_admin_user',
validate: {
},
indexes:[
tableName: 'tbl_users',
validate: {},
indexes: [
// Create a unique index on email
// {
// 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 ServiceBase = require("../../sve.base")
const settings = require("../../../../config/settings")
const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings");
class UserService extends ServiceBase {
constructor() {
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;
u.ucname = user.ucname;
u.passwd = user.passwd;
u.lastLoginTime = user.lastLoginTime;
if(u.id) {
u = await this.dao.create(ucid);
} else {
await u.save();
}
return u;
async register(user) {
let ss = await this.dao.register(user);
}
async authByCode(opencode) {
var existedUser = null;
var rawUser = null;
var openuser = await this.apiCallWithAk(settings.paasUrl() + "api/auth/accessAuth/authByCode", { opencode: opencode });
if (openuser) {
//先查看自己系统中是否已经存在当前用户
existedUser = await this.dao.model.findOne({ where: { ucname: openuser.userName, ucid: openuser.account_id }, raw: true });
if (!existedUser) {
existedUser = await this.register(openuser);
}
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;
}
async userPage(pageInfo, search) {
var currentPage = Number(pageInfo.pageNo || 1);
var pageSize = Number(pageInfo.pageSize || 10);
var where = {};
if (search.nickName) {
where.nickName = {
[this.db.Op.like]: "%" + search.nickName + "%"
};
}
return null;
if (search.userName) {
where.userName = search.userName;
}
async getUserByUserNamePwd(u) {
var user = await this.dao.model.findOne({
where: { userName: u.userName, password: u.password, app_id: u.app_id },
include: [
{ model: this.db.models.role, as: "Roles", attributes: ["id", "code"] },
]
});
return user;
if (search.mobile) {
where.mobile = search.mobile;
}
async checkSameName(uname, appid) {
var ac = await this.dao.model.findOne({ where: { userName: uname, app_id: appid } });
var rtn = { isExist: false };
if (ac) {
rtn.isExist = true;
if(search.isBack) {
where.utype = Number(search.isBack) - 1;
}
return rtn;
var orderby = [
["id", 'desc']
];
return await this.getPageList(currentPage, pageSize, where, orderby);
}
}
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 {
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 操作成功返回的数据
......
......@@ -6,14 +6,14 @@ var settings={
db:10,
},
database:{
dbname : "xgg",
dbname : "bpo_stat",
user: "write",
password: "write",
config: {
host: '192.168.18.237',
port: 3306,
// host: '43.247.184.35',
// port: 8899,
// port: 8899,s
dialect: 'mysql',
operatorsAliases: false,
pool: {
......
......@@ -5,50 +5,50 @@ var userCtl = system.getObject("web.auth.userCtl");
const redisClient = system.getObject("util.redisClient");
module.exports = function (app) {
app.all("/web/*", async function (req, res, next) {
var xggadminsid;
var jsonUser = req.session.user;
// var jsonUser = null;
if(!jsonUser) {
xggadminsid = req.headers["xggadminsid"] || "";
jsonUser = await redisClient.get(xggadminsid);
if(jsonUser) {
jsonUser = JSON.parse(jsonUser);
}
}
if (req.url.indexOf("auth/userCtl/login") > 0 ||
req.url.indexOf("uc/userCtl/login") > 0 ||
req.url.indexOf("auth/userCtl/smsCode") > 0 ||
req.url.indexOf("common/metaCtl/getApiDoc") > 0 ||
req.url.indexOf("common/captchaCtl/captcha") > 0 ||
req.url.indexOf("getRsConfig") > 0) {
if (jsonUser) {
req.loginUser = jsonUser;
} else {
req.loginUser = null;
}
return next();
}
if (!jsonUser) {
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" }));
// app.all("/web/*", async function (req, res, next) {
// var xggadminsid;
// var jsonUser = req.session.user;
// // var jsonUser = null;
// if(!jsonUser) {
// xggadminsid = req.headers["xggadminsid"] || "";
// jsonUser = await redisClient.get(xggadminsid);
// if(jsonUser) {
// jsonUser = JSON.parse(jsonUser);
// }
// }
//
// if (req.url.indexOf("auth/userCtl/login") > 0 ||
// req.url.indexOf("uc/userCtl/login") > 0 ||
// req.url.indexOf("auth/userCtl/smsCode") > 0 ||
// req.url.indexOf("common/metaCtl/getApiDoc") > 0 ||
// req.url.indexOf("common/captchaCtl/captcha") > 0 ||
//
// req.url.indexOf("getRsConfig") > 0) {
// if (jsonUser) {
// req.loginUser = jsonUser;
// } else {
// req.loginUser = null;
// }
// return next();
// }
//
// if (!jsonUser) {
// res.end(JSON.stringify({ status: -99, msg: "no login" }));
// 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) {
res.render("index", { appinfo: null, app: null });
......
......@@ -26,7 +26,7 @@ var settings = {
salt: "%iatpD1gcxz7iF#B",
defaultpwd: "987456",
basepath: path.normalize(path.join(__dirname, '../..')),
port: process.env.NODE_PORT || 3012,
port: process.env.NODE_PORT || 3013,
reqEsAddr: function () {
if (this.env == "dev") {
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