Commit e3f2aae3 by 王昆

Merge branch 'xggsve-order-dev' of gitlab.gongsibao.com:jiangyong/zhichan into xggsve-order-dev

parents af6716cd 8a0797f2
...@@ -48,7 +48,7 @@ class ActionAPI extends APIBase { ...@@ -48,7 +48,7 @@ class ActionAPI extends APIBase {
try{ try{
switch (action_type) { switch (action_type) {
case "orders": //订单列表 case "orders": //订单管理(平台)
opResult = await this.oorderSve.orders(action_body); opResult = await this.oorderSve.orders(action_body);
break; break;
case "assignSalesman": //分配业务员 case "assignSalesman": //分配业务员
...@@ -57,7 +57,7 @@ class ActionAPI extends APIBase { ...@@ -57,7 +57,7 @@ class ActionAPI extends APIBase {
case "assignDeliver": //分配交付商 case "assignDeliver": //分配交付商
opResult = await this.oorderSve.assignDeliver(action_body); opResult = await this.oorderSve.assignDeliver(action_body);
break; break;
case "orderDelivers": //分配交付商 case "orderDelivers": //订单管理(交付商)
opResult = await this.oorderdeliverSve.orderDelivers(action_body); opResult = await this.oorderdeliverSve.orderDelivers(action_body);
break; break;
......
...@@ -24,7 +24,7 @@ class OorderDao extends Dao { ...@@ -24,7 +24,7 @@ class OorderDao extends Dao {
let sql = []; let sql = [];
sql.push(`SELECT * FROM o_order WHERE 1=1 `); sql.push(`SELECT * FROM o_order WHERE 1=1 `);
this.setOrderCount(sql,params); this.setOrderCount(sql,params);
sql.push(`limit ${params.currentPage} ,${params.pageSize}`); sql.push(`limit ${params.startRow} ,${params.pageSize}`);
return await this.customQuery(sql.join(" "), params); return await this.customQuery(sql.join(" "), params);
} }
...@@ -49,9 +49,6 @@ class OorderDao extends Dao { ...@@ -49,9 +49,6 @@ class OorderDao extends Dao {
if (params.end) { if (params.end) {
sql.push(`AND created_at <= :end`); sql.push(`AND created_at <= :end`);
} }
if (params.deliver_id) {
sql.push(`AND deliver_id = :deliver_id`);
}
} }
} }
......
...@@ -14,7 +14,7 @@ class OorderdeliverDao extends Dao { ...@@ -14,7 +14,7 @@ class OorderdeliverDao extends Dao {
return []; return [];
} }
let sql = []; let sql = [];
sql.push(`SELECT * FROM o_order_deliver WHERE id in (:deliverIdList)`); sql.push(`SELECT * FROM o_order_deliver WHERE deliver_id in (:deliverIdList)`);
return await this.customQuery(sql.join(" "), {deliverIdList: ids}); return await this.customQuery(sql.join(" "), {deliverIdList: ids});
} }
...@@ -23,7 +23,7 @@ class OorderdeliverDao extends Dao { ...@@ -23,7 +23,7 @@ class OorderdeliverDao extends Dao {
let list = await this.listByIds(params); let list = await this.listByIds(params);
var result = {}; var result = {};
for(let item of list) { for(let item of list) {
result[item.id] = item; result[item.deliver_id] = item;
} }
return result; return result;
} }
......
...@@ -66,37 +66,6 @@ module.exports = (db, DataTypes) => { ...@@ -66,37 +66,6 @@ module.exports = (db, DataTypes) => {
//freezeTableName: true, //freezeTableName: true,
// define the table's name // define the table's name
tableName: 'ib_order', tableName: 'ib_order',
validate: {}, 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
...@@ -27,12 +27,11 @@ module.exports = function (db, DataTypes) { ...@@ -27,12 +27,11 @@ module.exports = function (db, DataTypes) {
deleted_at: { type: DataTypes.DATE, field: 'deleted_at', allowNull: true } deleted_at: { type: DataTypes.DATE, field: 'deleted_at', allowNull: true }
}, },
{ {
timestamps: false, paranoid: true, //假的删除
underscore: true, underscored: true,
paranoid: true,
version: true, version: true,
tableName: 'o_order', freezeTableName: true,
comment: '订单表', tableName: 'o_order',
}); });
} }
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* 订单流程表 * 订单流程表
*/ */
module.exports = function (db, DataTypes) { module.exports = function (db, DataTypes) {
return db.define('oorderdeliver', { return db.define('oprocess', {
name: {type: DataTypes.STRING, field: 'name', allowNull: false, defaultValue:'', comment:'流程名称' }, name: {type: DataTypes.STRING, field: 'name', allowNull: false, defaultValue:'', comment:'流程名称' },
status: { type: DataTypes.STRING, field: 'status', allowNull: false,defaultValue:'', comment:'流程状态'}, status: { type: DataTypes.STRING, field: 'status', allowNull: false,defaultValue:'', comment:'流程状态'},
created_at: { type: DataTypes.DATE, field: 'created_at', allowNull: false, defaultValue: DataTypes.NOW }, created_at: { type: DataTypes.DATE, field: 'created_at', allowNull: false, defaultValue: DataTypes.NOW },
...@@ -15,7 +15,7 @@ module.exports = function (db, DataTypes) { ...@@ -15,7 +15,7 @@ module.exports = function (db, DataTypes) {
underscore: true, underscore: true,
paranoid: true, paranoid: true,
version: true, version: true,
tableName: 'o_order_deliver', tableName: 'o_process',
comment: '订单交付表', comment: '订单交付表',
}); });
} }
......
...@@ -39,7 +39,7 @@ class OorderService extends ServiceBase { ...@@ -39,7 +39,7 @@ class OorderService extends ServiceBase {
order.contact_mobile = this.trim(params.contact_mobile); order.contact_mobile = this.trim(params.contact_mobile);
// 验证订单是否存在 // 验证订单是否存在
let exists = await this.dao.findOne({source_id: order.source_id, source_no: order.source_no}); let exists = await this.dao.findOne({ source_id: order.source_id, source_no: order.source_no });
if (exists) { if (exists) {
return system.getResult(null, `订单号${order.source_no}已存在`); return system.getResult(null, `订单号${order.source_no}已存在`);
} }
...@@ -146,7 +146,7 @@ class OorderService extends ServiceBase { ...@@ -146,7 +146,7 @@ class OorderService extends ServiceBase {
if (!nextObj) { if (!nextObj) {
continue; continue;
} }
nextStatus.push({next_status: nextObj.status, next_name: nextObj.name}); nextStatus.push({ next_status: nextObj.status, next_name: nextObj.name });
} }
let orderProcess = { let orderProcess = {
...@@ -166,7 +166,7 @@ class OorderService extends ServiceBase { ...@@ -166,7 +166,7 @@ class OorderService extends ServiceBase {
if (idx == 0 && orderProcessList.length > 0) { if (idx == 0 && orderProcessList.length > 0) {
let lastProcess = orderProcessList[orderProcessList.length - 1]; let lastProcess = orderProcessList[orderProcessList.length - 1];
let nextObj = processMap[productProcess.process_id]; let nextObj = processMap[productProcess.process_id];
lastProcess.next_status = JSON.stringify([{next_status: nextObj.status, next_name: nextObj.name}]); lastProcess.next_status = JSON.stringify([{ next_status: nextObj.status, next_name: nextObj.name }]);
} }
orderProcessList.push(orderProcess); orderProcessList.push(orderProcess);
} }
...@@ -183,38 +183,32 @@ class OorderService extends ServiceBase { ...@@ -183,38 +183,32 @@ class OorderService extends ServiceBase {
if (params.id) { if (params.id) {
where.id = this.trim(params.id); where.id = this.trim(params.id);
} }
if(params.status){ if (params.status) {
where.status = this.trim(params.status); where.status = this.trim(params.status);
} }
if (params.beginDate && params.endDate) {
where.beginDate = this.trim(params.beginDate);
where.endDate = this.trim(params.endDate);
}
if (params.deliver_id) { if (params.deliver_id) {
where.deliver_id = this.trim(params.deliver_id); where.deliver_id = this.trim(params.deliver_id);
} }
where.currentPage = Number(params.currentPage || 1); var currentPage = Number(params.currentPage || 1);
where.pageSize = Number(params.pageSize || 10); var pageSize = Number(params.pageSize || 10);
var orderby = [
["id", 'desc']
];
this.addWhereTime(where, 'created_at', params.beginDate, params.endDate);
where.startRow = (where.currentPage - 1) * where.pageSize;
try { try {
let ordersCountRes = await this.dao.ordersCount(where); var page = await this.getPageList(currentPage, pageSize, where, orderby, null);
let count = ordersCountRes[0]['orderCount'];
let rows = await this.dao.findAll(where);
//格式化订单来源 //格式化订单来源
this.formateSource(rows); await this.formateSource(page.rows);
//格式化订单产品 //格式化订单产品
this.formateProduct(rows); await this.formateProduct(page.rows);
//格式化交付商 //格式化交付商
this.formateDeliver(rows); await this.formateDeliver(page.rows);
//格式化业务员 //格式化业务员
this.formateStatus(rows); await this.formateStatus(page.rows);
let res = { return system.getResult(page);
count, rows
};
return system.getResult(res);
} catch (error) { } catch (error) {
console.log(error); console.log(error);
return system.getResult(null, `系统错误 错误信息 ${error}`); return system.getResult(null, `系统错误 错误信息 ${error}`);
...@@ -226,13 +220,14 @@ class OorderService extends ServiceBase { ...@@ -226,13 +220,14 @@ class OorderService extends ServiceBase {
* @param {*} orderList * @param {*} orderList
*/ */
async formateSource(orderList) { async formateSource(orderList) {
let sourceSet = new Set();
let sourceIdList = []; let sourceIdList = [];
for (let item of orderList) { for (let item of orderList) {
if (item.source_id) { if (item.source_id) {
sourceIdList.push(item.source_id); sourceSet.add(item.source_id);
} }
} }
sourceIdList = Array.from(sourceSet);
let sourceMap = await this.osourceDao.mapByIds(sourceIdList); let sourceMap = await this.osourceDao.mapByIds(sourceIdList);
for (let item of orderList) { for (let item of orderList) {
item.osource = sourceMap[item.source_id] || {} item.osource = sourceMap[item.source_id] || {}
...@@ -252,7 +247,7 @@ class OorderService extends ServiceBase { ...@@ -252,7 +247,7 @@ class OorderService extends ServiceBase {
} }
let productMap = await this.oproductDao.mapByIds(productIdList); let productMap = await this.oproductDao.mapByIds(productIdList);
for (let item of productMap) { for (let item of orderList) {
item.oproduct = productMap[item.product_id] || {} item.oproduct = productMap[item.product_id] || {}
} }
} }
...@@ -270,7 +265,7 @@ class OorderService extends ServiceBase { ...@@ -270,7 +265,7 @@ class OorderService extends ServiceBase {
} }
let deliverMap = await this.oorderdeliverDao.mapByIds(deliverIdList); let deliverMap = await this.oorderdeliverDao.mapByIds(deliverIdList);
for (let item of deliverMap) { for (let item of orderList) {
item.odeliver = deliverMap[item.deliver_id] || {} item.odeliver = deliverMap[item.deliver_id] || {}
} }
} }
...@@ -324,15 +319,17 @@ class OorderService extends ServiceBase { ...@@ -324,15 +319,17 @@ class OorderService extends ServiceBase {
} }
try { try {
//更新订单业务员 //更新订单业务员
let _order= await this.findById(params.id); let _order = await this.findById(params.id);
if(!_order){ if (!_order) {
return system.getResult(null,`订单不存在`); return system.getResult(null, `订单不存在`);
} }
//to do ... 验证下一个状态 //to do ... 验证下一个状态
await this.statusAction(params);
_order.bd_id = this.trim(params.bd_id); _order.bd_id = this.trim(params.bd_id);
_order.status = this.trim(params.status); _order.status = this.trim(params.status);
_order.bd_path = this.trim(params.bd_path); _order.bd_path = this.trim(params.bd_path);
let res = await _order.save(); let res = await _order.save();
return system.getResult(res); return system.getResult(res);
} catch (error) { } catch (error) {
...@@ -342,20 +339,20 @@ class OorderService extends ServiceBase { ...@@ -342,20 +339,20 @@ class OorderService extends ServiceBase {
} }
/** /**
* * 验证订单状态
* @param params * @param params
* @returns {Promise<{msg: string, data: (*|null), bizmsg: string, status: number}>} * @returns {Promise<{msg: string, data: (*|null), bizmsg: string, status: number}>}
*/ */
async statusAction(params) { async statusAction(params) {
let _order= await this.findById(params.id); let _order = await this.findById(params.id);
if(!_order){ if (!_order) {
return system.getResult(null,`订单不存在`); return system.getResult(null, `订单不存在`);
} }
//todo ... 验证状态 //todo ... 验证状态
let _orderStatus = await this.getOrderProcessStatus(_order.id, _order.status); let _orderStatus = await this.getOrderProcessStatus(_order.id, _order.status);
let nextStatus = JSON.parse(_orderStatus.next_status); let nextStatus = JSON.parse(_orderStatus.next_status);
if(params.status != nextStatus.next_status) { if (params.status != nextStatus.next_status) {
return system.getResult(null,`订单状态错误,下一订单状态应该是${nextStatus.next_name}`); return system.getResult(null, `订单状态错误,下一订单状态应该是${nextStatus.next_name}`);
} }
} }
...@@ -382,42 +379,38 @@ class OorderService extends ServiceBase { ...@@ -382,42 +379,38 @@ class OorderService extends ServiceBase {
} }
try { try {
let _order= await this.findById(params.id); let _order = await this.findById(params.id);
if(!_order){ if (!_order) {
return system.getResult(null,`订单不存在`); return system.getResult(null, `订单不存在`);
} }
//todo ... 验证状态 await this.statusAction(params);
let _orderStatus = await this.getOrderProcessStatus(_order.id, _order.status);
let nextStatus = JSON.parse(_orderStatus.next_status);
if(params.status != nextStatus.next_status) {
return system.getResult(null,`订单状态错误,下一订单状态应该是${nextStatus.next_name}`);
}
let self = this; let self = this;
let res = await this.db.transaction(async t => { let res = await this.db.transaction(async t => {
//创建orderdeliver记录 //创建orderdeliver记录
await this.oorderdeliverDao.create({ await self.oorderdeliverDao.create({
order_id: self.trim(params.id), order_id: self.trim(params.id),
deliver_id:self.trim(self.deliver_id), deliver_id: self.trim(params.deliver_id),
deliver_name:self.trim(self.deliver_name), deliver_name: self.trim(params.deliver_name),
deliver_divide:self.trim(self.deliver_divide), deliver_divide: self.trim(params.deliver_divide),
}, t); }, t);
//更新oorder订单记录 //更新oorder订单记录
await self.dao.update({ await self.dao.update({
deliver_id:self.trim(self.deliver_id), deliver_id: self.trim(params.deliver_id),
id:self.trim(params.id), id: self.trim(params.id),
status:self.trim(params.status) status: self.trim(params.status)
},t); }, t);
}); });
return system.getResult(res); return system.getResult(res);
} catch (error) { } catch (error) {
console.log(error); console.log(error);
return system.getResult(null,`系统错误 错误信息 ${error}`); return system.getResult(null, `系统错误 错误信息 ${error}`);
} }
} }
} }
......
...@@ -21,48 +21,91 @@ class OorderdeliverService extends ServiceBase { ...@@ -21,48 +21,91 @@ class OorderdeliverService extends ServiceBase {
* 交付商订单管理列表 * 交付商订单管理列表
* @param {*} params * @param {*} params
*/ */
// async orderDelivers(params){ async orderDelivers(params){
// let where = {}; let where = {};
// if(params.deliver_id){ if(params.deliver_id){
// where.deliver_id = this.trim(params.deliver_id); where.deliver_id = this.trim(params.deliver_id);
// }else{ }else{
// return system.getResult(null,`参数错误 交付商ID不能为空`); return system.getResult(null,`参数错误 交付商ID不能为空`);
// } }
// if(params.id){ if(params.id){
// where.id = this.trim(params.id); where.id = this.trim(params.id);
// } }
// if(params.status){ if(params.status){
// where.status = this.trim(params.status); where.status = this.trim(params.status);
// } }
// if(params.beginDate && params.endDate){ if(params.beginDate && params.endDate){
// where.beginDate = this.trim(params.beginDate); where.beginDate = this.trim(params.beginDate);
// where.endDate = this.trim(params.endDate); where.endDate = this.trim(params.endDate);
// } }
// where.currentPage = Number(params.currentPage || 1); where.currentPage = Number(params.currentPage || 1);
// where.pageSize = Number(params.pageSize || 10); where.pageSize = Number(params.pageSize || 10);
// where.startRow = (where.currentPage-1)*where.pageSize; where.startRow = (where.currentPage-1)*where.pageSize;
// try { try {
// let ordersCountRes = await this.oorderDao.ordersCount(where); let ordersCountRes = await this.oorderDao.ordersCount(where);
// let count = ordersCountRes[0]['orderCount']; let count = ordersCountRes[0]['orderCount'];
// let rows = await this.dao.findAll(where); if(count==0){
// //格式化交付商 return system.getResult({count:0,rows:[]});
// this.formateDeliver(rows); }
let rows = await this.oorderDao.findAll(where);
//格式化交付商
await this.formateDeliver(rows);
//格式化订单状态
await this.formateStatus(rows);
let res = {
count,rows
};
return system.getResult(res);
} catch (error) {
console.log(error);
return system.getResult(null,`系统错误 错误信息 ${error}`);
}
}
/**
* 格式化订单交付商
* @param {*} orderList
*/
async formateDeliver(orderList) {
let deliverIdList = [];
for (let item of orderList) {
if (item.deliver_id) {
deliverIdList.push(item.deliver_id);
}
}
// let res = { let deliverMap = await this.dao.mapByIds(deliverIdList);
// count,rows for (let item of orderList) {
// }; item.odeliver = deliverMap[item.deliver_id] || {}
// return system.getResult(res); }
// } catch (error) { }
// console.log(error);
// return system.getResult(null,`系统错误 错误信息 ${error}`);
// }
/**
* 处理订单状态数据
* @param orderList
* @returns {Promise<void>}
*/
async formateStatus(orderList) {
let ids = [];
let statuses = [];
for (let item of orderList) {
ids.push(item.id);
statuses.push(item.status);
}
let map = await this.oorderprocessDao.mapByOrderIdsAndStatus(ids, statuses);
// } for (let item of orderList) {
let key = item.id + "_" + item.status;
let v = map[key] || {};
item.statusName = v.name;
item.next_status = JSON.parse(v.next_status || "[]");
}
console.log(orderList);
}
} }
......
...@@ -9,10 +9,4 @@ class PaymentService extends ServiceBase { ...@@ -9,10 +9,4 @@ class PaymentService extends ServiceBase {
} }
} }
module.exports = PaymentService; module.exports = PaymentService;
// var task=new UserService(); \ No newline at end of file
// task.getUserStatisticGroupByApp().then(function(result){
// console.log((result));
// }).catch(function(e){
// console.log(e);
// });
\ No newline at end of file
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