Commit 2680ab05 by 王昆

gsb

parent deb1422b
...@@ -10,7 +10,7 @@ class Dao { ...@@ -10,7 +10,7 @@ class Dao {
} }
async preCreate(u) { async preCreate(u) {
if (!u.id) { if (!u.id && !u.autoIncrement) {
u.id = await this.redisClient.genrateId(this.modelName); u.id = await this.redisClient.genrateId(this.modelName);
} }
return u; return u;
......
...@@ -55,6 +55,63 @@ class DeliverDao extends Dao { ...@@ -55,6 +55,63 @@ class DeliverDao extends Dao {
} }
return result; return result;
} }
async countChannelDeliver(params) {
let sql = [];
sql.push("SELECT");
sql.push("COUNT(DISTINCT t1.`id`)");
sql.push("FROM `d_deliver_channel` t2");
sql.push("INNER JOIN `d_deliver` t1 ON t2.`deliver_id` = t1.`id`");
sql.push("WHERE 1 = 1");
this.setChannelDeliverCondition(sql, params);
let list = await this.customQuery(sql.join(" "), params);
if (!list || list.length == 0) {
return 0;
}
return list[0].num;
}
async listChannelDeliver(params) {
params.startRow = Number(params.startRow || 0);
params.pageSize = Number(params.pageSize || 10);
let sql = [];
sql.push("SELECT");
sql.push("t1.*, t2.`channel_id`");
sql.push("FROM `d_deliver_channel` t2");
sql.push("INNER JOIN `d_deliver` t1 ON t2.`deliver_id` = t1.`id`");
sql.push("WHERE 1 = 1");
this.setChannelDeliverCondition(sql, params);
sql.push("ORDER BY t1.created_at DESC");
if (params.pageSize > 0) {
sql.push("LIMIT :startRow, :pageSize");
}
return await this.customQuery(sql.join(" "), params);
}
setChannelDeliverCondition(sql, params) {
if (!params || !sql) {
return;
}
if (params.saas_id) {
sql.push("AND t1.saas_id = :saas_id");
}
if (params.id) {
sql.push("AND t1.id = :id");
}
if (params.deliver_id) {
sql.push("AND t1.id = :deliver_id");
}
if (params.name) {
params.nameLike = `%${params.name}%`;
sql.push("AND t1.name LIKE :nameLike");
}
if (params.channel_id) {
sql.push("AND t2.channel_id = :channel_id");
}
}
} }
module.exports = DeliverDao; module.exports = DeliverDao;
// var u=new UserDao(); // var u=new UserDao();
......
const system = require("../../../system");
const Dao = require("../../dao.base");
class DeliverChannelDao extends Dao {
constructor() {
super(Dao.getModelName(DeliverChannelDao));
}
async dics(params) {
var sql = [];
sql.push("SELECT");
sql.push(params.attrs || "id, name");
sql.push("FROM");
sql.push(this.model.tableName);
sql.push("WHERE deleted_at IS NULL ");
if (params.deliver_id) {
sql.push("AND deliver_id = :deliver_id");
}
sql.push("ORDER BY created_at ASC");
return await this.customQuery(sql.join(" "), params);
}
async countByCondition(params) {
var sql = [];
sql.push("SELECT");
sql.push("count(1) as num");
sql.push("FROM");
sql.push(this.model.tableName);
sql.push("WHERE deleted_at IS NULL");
this.setCondition(sql, params);
var list = await this.customQuery(sql.join(" "), params);
if (!list || list.length == 0) {
return 0;
}
return list[0].num;
}
async listByCondition(params) {
params.startRow = Number(params.startRow || 0);
params.pageSize = Number(params.pageSize || 10);
var sql = [];
sql.push("SELECT");
sql.push(params.attrs || "*");
sql.push("FROM");
sql.push(this.model.tableName);
sql.push("WHERE deleted_at IS NULL");
this.setCondition(sql, params);
sql.push("ORDER BY created_at DESC");
sql.push("LIMIT :startRow, :pageSize");
return await this.customQuery(sql.join(" "), params);
}
setCondition(sql, params) {
if (!params || !sql) {
return;
}
if (params.deliver_id) {
sql.push("AND deliver_id = :deliver_id");
}
if (params.name) {
params.nameLike = `%${params.name}%`;
sql.push("AND name LIKE :nameLike");
}
if (params.createBegin) {
sql.push("AND created_at >= :createBegin");
}
if (params.createEnd) {
sql.push("AND created_at <= :createEnd");
}
}
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 = DeliverChannelDao;
// 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
...@@ -7,12 +7,17 @@ module.exports = (db, DataTypes) => { ...@@ -7,12 +7,17 @@ module.exports = (db, DataTypes) => {
businessmenDivide: DataTypes.INTEGER, businessmenDivide: DataTypes.INTEGER,
invoiceDivide: DataTypes.INTEGER, invoiceDivide: DataTypes.INTEGER,
admin_id: DataTypes.STRING, admin_id: DataTypes.STRING,
owner_channel_id: DataTypes.STRING,
remark: DataTypes.STRING, remark: DataTypes.STRING,
isEnabled: { isEnabled: {
type: DataTypes.BOOLEAN, type: DataTypes.BOOLEAN,
allowNull: true, allowNull: true,
}, },
is_share: {
type: DataTypes.BOOLEAN,
allowNull: true,
},
nt_company_id: DataTypes.STRING, nt_company_id: DataTypes.STRING,
saas_id: DataTypes.STRING, saas_id: DataTypes.STRING,
}, { }, {
......
const system = require("../../../system");
const settings = require("../../../../config/settings");
const uiconfig = system.getUiConfig2(settings.appKey);
module.exports = (db, DataTypes) => {
return db.define("deliverchannel", {
saas_id: DataTypes.STRING,
channel_id: DataTypes.STRING,
deliver_id: DataTypes.STRING,
}, {
paranoid: true, //假的删除
underscored: true,
version: true,
freezeTableName: true,
//freezeTableName: true,
// define the table's name
tableName: 'd_deliver_channel',
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
...@@ -7,6 +7,7 @@ class DeliverService extends ServiceBase { ...@@ -7,6 +7,7 @@ class DeliverService extends ServiceBase {
super("deliver", ServiceBase.getDaoName(DeliverService)); super("deliver", ServiceBase.getDaoName(DeliverService));
this.deliveruserDao = system.getObject("db.deliver.deliveruserDao"); this.deliveruserDao = system.getObject("db.deliver.deliveruserDao");
this.deliverorgDao = system.getObject("db.deliver.deliverorgDao"); this.deliverorgDao = system.getObject("db.deliver.deliverorgDao");
this.deliverchannelDao = system.getObject("db.deliver.deliverchannelDao");
} }
async apiAll(params) { async apiAll(params) {
...@@ -129,11 +130,13 @@ class DeliverService extends ServiceBase { ...@@ -129,11 +130,13 @@ class DeliverService extends ServiceBase {
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); deliver.saas_id = this.trim(params.saas_id);
deliver.owner_channel_id = this.trim(params.owner_channel_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);
await this.deliverchannelDao.create({autoIncrement: true, deliver_id: deliver.id, channel_id: deliver.owner_channel_id});
} }
user = user || {}; user = user || {};
user.real_name = params.real_name; user.real_name = params.real_name;
...@@ -207,30 +210,24 @@ class DeliverService extends ServiceBase { ...@@ -207,30 +210,24 @@ class DeliverService extends ServiceBase {
} }
async page(params) { async page(params) {
let currentPage = Number(params.currentPage || 1); let page = {
let pageSize = Number(params.pageSize || 10); count: 0,
rows: []
};
params.currentPage = Number(params.currentPage || 1);
params.pageSize = Number(params.pageSize || 10);
params.startRow = (params.currentPage - 1) * params.pageSize;
let where = {}; page.count = await this.dao.countChannelDeliver(params);
if (params.id) { if (page.count == 0) {
where.id = this.trim(params.id); return system.getResultSuccess(page);
}
if (params.name) {
where.name = this.trim(params.name);
} }
if (params.saas_id) {
where.saas_id = this.trim(params.saas_id);
}
let orderby = [
["id", 'desc']
];
let page = await this.getPageList(currentPage, pageSize, where, orderby, null); page.rows = await this.dao.listChannelDeliver(params) || [];
if (page && page.rows) { for (let 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);
} }
await this.setUser(page.rows);
return system.getResultSuccess(page); return system.getResultSuccess(page);
} }
......
const system = require("../../../system");
const ServiceBase = require("../../sve.base")
const settings = require("../../../../config/settings")
class DeliverChannelService extends ServiceBase {
constructor() {
super("deliver", ServiceBase.getDaoName(DeliverChannelService));
}
async save(params) {
let id = params.id;
let scheme;
if (id) {
scheme = await this.dao.findById(id);
} else {
scheme = {};
}
scheme.name = this.trim(params.name);
if (params.common_tax_ladder) {
scheme.common_tax_ladder = JSON.stringify(params.common_tax_ladder || "");
}
if (params.common_other_ladder) {
scheme.common_other_ladder = JSON.stringify(params.common_other_ladder || "");
}
if (params.special_tax_ladder) {
scheme.special_tax_ladder = JSON.stringify(params.special_tax_ladder || "");
}
if(params.special_other_ladder) {
scheme.special_other_ladder = JSON.stringify(params.special_other_ladder || "");
}
scheme.cost_rate = system.y2f(params.cost_rate || 0);
scheme.tax_rate = system.y2f(params.tax_rate || 0);
scheme.add_value_up_type = this.trim(params.add_value_up_type);
scheme.tax_up_type = this.trim(params.tax_up_type);
if (scheme.id) {
scheme = await scheme.save();
} else {
scheme.deliver_id = this.trim(params.deliver_id);
scheme = await this.dao.create(scheme);
}
return system.getResultSuccess(scheme);
}
async info(params) {
let item = await this.dao.getById(params.id);
this.handleDate(item, ["created_at"], null);
this.transField([item]);
return system.getResultSuccess(item);
}
async pageByCondition(params) {
let page = {
count: 0,
rows: []
};
params.currentPage = Number(params.currentPage || 1);
params.pageSize = Number(params.pageSize || 10);
params.startRow = (params.currentPage - 1) * params.pageSize;
page.count = await this.dao.countByCondition(params);
if (page.count == 0) {
return system.getResultSuccess(page);
}
page.rows = await this.dao.listByCondition(params);
if (page.rows) {
for (let row of page.rows) {
this.handleDate(row, ["created_at"], null);
}
this.transField(page.rows);
}
return system.getResultSuccess(page);
}
transField(rows) {
if (!rows || rows.length == 0) {
return;
}
for (let row of rows) {
if (!row) {
continue;
}
try {
row.common_tax_ladder = JSON.parse(row.common_tax_ladder ? row.common_tax_ladder : null);
row.common_other_ladder = JSON.parse(row.common_other_ladder ? row.common_other_ladder : null);
row.special_tax_ladder = JSON.parse(row.special_tax_ladder ? row.special_tax_ladder : null);
row.special_other_ladder = JSON.parse(row.special_other_ladder ? row.special_other_ladder : null);
} catch (e) {
console.log(e);
}
row.cost_rate = system.f2y(row.cost_rate);
row.tax_rate = system.f2y(row.tax_rate);
}
}
}
module.exports = DeliverChannelService;
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