Commit 8eb659f1 by 王昆

gsb

parent 5a844df6
node_modules/
\ No newline at end of file
...@@ -100,6 +100,15 @@ class ActionAPI extends APIBase { ...@@ -100,6 +100,15 @@ class ActionAPI extends APIBase {
case "deliverDelete": case "deliverDelete":
opResult = await this.deliverSve.apiDeleteByIds(action_body); opResult = await this.deliverSve.apiDeleteByIds(action_body);
break; break;
case "deliverResetPassword":
opResult = await this.deliverSve.updPassword(action_body);
break;
case "deliverEnable":
opResult = await this.deliverSve.enable(action_body);
break;
case "deliverLogin":
opResult = await this.deliverSve.login(action_body);
break;
// 发票内容 // 发票内容
case "invoicecontentSave": case "invoicecontentSave":
......
const system = require("../../../system");
const Dao = require("../../dao.base");
class DeliveruserDao extends Dao {
constructor() {
super(Dao.getModelName(DeliveruserDao));
}
async findByUcname(ucname) {
let sql = "SELECT * FROM d_deliver_user WHERE ucname = :ucname";
let list = await this.customQuery(sql, {ucname: ucname});
if(!list) {
return null;
}
return list[0];
}
async findListByIds(ids) {
if (!ids || ids.length == 0) {
return [];
}
var sql = [];
sql.push("SELECT");
sql.push("*");
sql.push("FROM d_deliver_user");
sql.push("WHERE id IN (:ids)");
return await this.customQuery(sql.join(" "), {
ids: ids
}) || [];
}
async findMapByIds(ids) {
var result = {};
if (!ids || ids.length == 0) {
return result;
}
var list = await this.findListByIds(ids);
if (!list || list.length == 0) {
return result;
}
for (var item of list) {
result[item.id] = item;
}
return result;
}
}
module.exports = DeliveruserDao;
// 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);
// }
//
// })();
\ No newline at end of file
...@@ -6,12 +6,14 @@ module.exports = (db, DataTypes) => { ...@@ -6,12 +6,14 @@ module.exports = (db, DataTypes) => {
name: DataTypes.STRING, name: DataTypes.STRING,
businessmenDivide: DataTypes.INTEGER, businessmenDivide: DataTypes.INTEGER,
invoiceDivide: DataTypes.INTEGER, invoiceDivide: DataTypes.INTEGER,
admin_id: DataTypes.STRING,
remark: DataTypes.STRING, remark: DataTypes.STRING,
isEnabled: { isEnabled: {
type: DataTypes.BOOLEAN, type: DataTypes.BOOLEAN,
allowNull: true, allowNull: true,
}, },
saas_id: DataTypes.STRING,
}, { }, {
paranoid: true, //假的删除 paranoid: true, //假的删除
underscored: true, underscored: true,
......
const system = require("../../../system");
const settings = require("../../../../config/settings");
const uiconfig = system.getUiConfig2(settings.appKey);
module.exports = (db, DataTypes) => {
return db.define("deliveruser", {
real_name: DataTypes.STRING,
ucname: DataTypes.STRING,
password: DataTypes.STRING,
deliver_id: DataTypes.STRING,
isAdmin: {
type: DataTypes.BOOLEAN,
allowNull: true,
},
saas_id: DataTypes.STRING,
}, {
paranoid: true, //假的删除
underscored: true,
version: true,
freezeTableName: true,
//freezeTableName: true,
// define the table's name
tableName: 'd_deliver_user',
validate: {},
indexes: [
// Create a unique index on email
// {
// unique: true,
// fields: ['email']
// },
//
// // Creates a gin index on data with the jsonb_path_ops operator
// {
// fields: ['data'],
// using: 'gin',
// operator: 'jsonb_path_ops'
// },
//
// // By default index name will be [table]_[fields]
// // Creates a multi column partial index
// {
// name: 'public_by_author',
// fields: ['author', 'status'],
// where: {
// status: 'public'
// }
// },
//
// // A BTREE index with a ordered field
// {
// name: 'title_index',
// method: 'BTREE',
// fields: ['author', {attribute: 'title', collate: 'en_US', order: 'DESC', length: 5}]
// }
]
});
}
\ 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 DeliverService extends ServiceBase { class DeliverService extends ServiceBase {
constructor() { constructor() {
super("deliver", ServiceBase.getDaoName(DeliverService)); super("deliver", ServiceBase.getDaoName(DeliverService));
this.deliveruserDao = system.getObject("db.deliver.deliveruserDao");
} }
async apiAll(params) { async apiAll(params) {
...@@ -44,13 +46,13 @@ class DeliverService extends ServiceBase { ...@@ -44,13 +46,13 @@ class DeliverService extends ServiceBase {
async apiDeleteByIds(params) { async apiDeleteByIds(params) {
var ids = params.ids; var ids = params.ids;
if(!ids || ids.length == 0) { if (!ids || ids.length == 0) {
return system.getResult(null, "传入参数错误:ids=" + JSON.stringify(ids)); return system.getResult(null, "传入参数错误:ids=" + JSON.stringify(ids));
} }
try { try {
for(var id of ids) { for (var id of ids) {
try { try {
await this.delById(id); await this.delById(id);
} catch (error) { } catch (error) {
console.log(error); console.log(error);
} }
...@@ -64,44 +66,100 @@ class DeliverService extends ServiceBase { ...@@ -64,44 +66,100 @@ class DeliverService extends ServiceBase {
// -----------------------以此间隔,上面为API,下面为service--------------------------------- // -----------------------以此间隔,上面为API,下面为service---------------------------------
async info(params) { async info(params) {
var id = params.id; let id = params.id;
var sqlWhere = { let item = await this.dao.getById(id);
where: {
id: id
},
attributes: ["id", "name", "businessmenDivide", "invoiceDivide", "isEnabled", "remark", "created_at"],
raw: true
};
var item = await this.dao.model.findOne(sqlWhere);
this.handleDate(item, ["created_at"], null, -8); this.handleDate(item, ["created_at"], null, -8);
let user = await this.deliveruserDao.getById(item.admin_id);
if (user) {
user.password = "";
item.real_name = user.real_name || "";
item.ucname = user.ucname || "";
item.user = user;
}
return system.getResultSuccess(item); return system.getResultSuccess(item);
} }
async login(params) {
let ucname = this.trim(params.ucname);
let password = this.trim(params.password);
let loginUser = await this.deliveruserDao.findByUcname(ucname);
if (!loginUser) {
return system.getResult(null, "用户名或密码错误");
}
let pwd = await this.getEncryptStr(password);
if (pwd != loginUser.password) {
return system.getResult(null, "用户名或密码错误");
}
loginUser.password = "";
loginUser.deliver = await this.dao.getById(loginUser.deliver_id);
return system.getResultSuccess(loginUser);
}
async save(params) { async save(params) {
var id = params.id; let id = params.id;
var deliver; let deliver;
let user;
if (id) { if (id) {
deliver = await this.dao.findById(id); deliver = await this.dao.findById(id);
if(deliver.admin_id) {
user = await this.deliveruserDao.findById(deliver.admin_id);
}
} else { } else {
deliver = {}; deliver = {};
} }
if (!user) {
let exists = await this.deliveruserDao.findOne({ucname: params.ucname});
if(exists) {
return system.getResult(null, `用户名[${params.ucname}]重复`);
}
}
deliver.name = this.trim(params.name); deliver.name = this.trim(params.name);
deliver.businessmenDivide = Number(params.businessmenDivide); deliver.businessmenDivide = 0;
deliver.invoiceDivide = Number(params.invoiceDivide); deliver.invoiceDivide = 0;
deliver.isEnabled = params.isEnabled == 1 ? true : 0; deliver.isEnabled = params.isEnabled == 1 ? true : 0;
deliver.remark = this.trim(params.remark); deliver.remark = this.trim(params.remark);
deliver.saas_id = this.trim(params.saas_id);
if (id) { if (id) {
deliver = await deliver.save(); deliver = await deliver.save();
} else { } else {
deliver = await this.dao.create(deliver); deliver = await this.dao.create(deliver);
} }
return system.getResultSuccess(deliver); user = user || {};
user.real_name = params.real_name;
if (user.id) {
user = await user.save();
} else {
user.saas_id = deliver.saas_id;
user.isAdmin = true;
user.deliver_id = deliver.id;
user.ucname = params.ucname;
user.password = await this.getEncryptStr(params.password);
user = await this.deliveruserDao.create(user);
}
deliver.admin_id = user.id;
await deliver.save();
return system.getResultSuccess();
}
async updPassword(params) {
let user = await this.deliveruserDao.findById(params.admin_id);
if (!user) {
return system.getResult(null, '交付商管理员账户不存在');
}
user.password = await this.getEncryptStr(params.password);
await user.save();
return system.getResultSuccess();
} }
async allList() { async allList() {
var list = await this.dao.getList(1, "id, name, businessmenDivide, invoiceDivide, remark"); var list = await this.dao.getList(1);
return system.getResultSuccess(list); return system.getResultSuccess(list);
} }
...@@ -114,26 +172,53 @@ class DeliverService extends ServiceBase { ...@@ -114,26 +172,53 @@ class DeliverService extends ServiceBase {
} }
async page(params) { async page(params) {
var currentPage = Number(params.currentPage || 1); let currentPage = Number(params.currentPage || 1);
var pageSize = Number(params.pageSize || 10); let pageSize = Number(params.pageSize || 10);
var where = {}; let where = {};
var orderby = [ let orderby = [
["id", 'desc'] ["id", 'desc']
]; ];
var attributes = ["id", "name", "businessmenDivide", "invoiceDivide", "isEnabled", "remark", "created_at"]; let page = await this.getPageList(currentPage, pageSize, where, orderby, null);
var page = await this.getPageList(currentPage, pageSize, where, orderby, attributes);
if (page && page.rows) { if (page && page.rows) {
for (var row of page.rows) { for (var row of page.rows) {
this.handleDate(row, ["created_at"], null, -8); this.handleDate(row, ["created_at"], null, -8);
} }
await this.setUser(page.rows);
} }
return system.getResultSuccess(page); return system.getResultSuccess(page);
} }
async enable(params) {
let deliver = await this.findById(params.id);
deliver.isEnabled = params.isEnabled == 0 ? false : true;
await deliver.save();
return system.getResultSuccess();
}
async setUser(rows) {
if (!rows || rows.length == 0) {
return;
}
let ids = [];
for (let item of rows) {
if (item.admin_id) {
ids.push(item.admin_id);
}
}
let map = await this.deliveruserDao.findMapByIds(ids);
for (let item of rows) {
let user = map[item.admin_id] || {};
user.password = "";
item.real_name = user.real_name || "";
item.ucname = user.ucname || "";
item.user = user;
}
}
} }
module.exports = DeliverService; module.exports = DeliverService;
// var task=new UserService(); // var task=new UserService();
// task.getUserStatisticGroupByApp().then(function(result){ // task.getUserStatisticGroupByApp().then(function(result){
......
...@@ -267,5 +267,14 @@ class ServiceBase { ...@@ -267,5 +267,14 @@ class ServiceBase {
} }
return o.toString().trim(); return o.toString().trim();
} }
async getEncryptStr(str) {
str = this.trim(str);
if (!str) {
throw new Error("字符串不能为空");
}
var pwd = md5(str + "_" + settings.salt);
return pwd.toString().toLowerCase();
}
} }
module.exports = ServiceBase; module.exports = ServiceBase;
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