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