Commit 5e2cb18f by 孙亚楠

dd

parent 16f0be9e
......@@ -103,10 +103,13 @@ class ActionAPI extends APIBase {
case "statDeliverData": //交付商统计
opResult = await this.oorderdeliverSve.statDeliverData(action_body);
break;
// 统计数据(平台
// 统计数据(交付商
case "deliverStatTransData": //交付商统计
opResult = await this.oorderdeliverSve.deliverStatTransData(action_body);
break;
case "businessManagement": //业务办理
opResult = await this.oorderdeliverSve.businessManagement(action_body);
break;
//******************************************************************** */
// // 订单
......
......@@ -209,6 +209,133 @@ class OorderdeliverDao extends Dao {
return result;
}
/**
* 交付上数据概览
* @param {*} begin
* @param {*} end
*/
async statDayByTime(begin, end,deliver_id) {
var result = {};
var sql = [];
sql.push("SELECT");
sql.push("DATE_FORMAT(a.created_at, '%Y-%m-%d') AS `day`, SUM(b.deliver_divide) AS orderPrice, COUNT(1) AS orderCount");
var params = {
begin: begin,
end: end
};
if (begin) {
sql.push("AND a.created_at >= :begin");
}
if (end) {
sql.push("AND a.created_at <= :end");
}
sql.push("GROUP BY `day` ORDER BY `day` ASC");
var list = await this.customQuery(sql.join(" "), params);
if (!list || list.length == 0) {
return result;
}
for (var item of list) {
result[item.day] = item;
}
return result;
}
/**
* 平台数据概览
* @param {*} begin
* @param {*} end
*/
async statOrderByTime(begin, end,deliver_id) {
var result = {};
var sql = [];
sql.push("SELECT");
sql.push(`WHERE 1 = 1 and b.deliver_id = '${deliver_id}' and a.status="1180"`);
var params = {
begin: begin,
end: end
};
if (begin) {
sql.push("AND a.created_at >= :begin");
}
if (end) {
sql.push("AND a.created_at <= :end");
}
sql.push("GROUP BY `month` ORDER BY `month` ASC");
var list = await this.customQuery(sql.join(" "), params);
if (!list || list.length == 0) {
return result;
}
for (var idx = 0; idx < list.length; idx++) {
var item = list[idx];
result[item.month] = item;
if (idx == 0) {
result.begin = item.month;
}
if (idx == list.length - 1) {
result.end = item.month;
}
}
return result;
}
/**
* 完成订单
* @param {*} begin
* @param {*} end
* @param {*} deliver_id
*/
async orderComplete(begin, end,deliver_id){
var sql = [];
sql.push("SELECT count(1) as count from o_order a inner join o_order_deliver b on a.deliver_id = b.id");
sql.push(`WHERE 1 = 1 and b.deliver_id = '${deliver_id}' and a.status="1180"`);
var params = {
begin: begin,
end: end
};
if (begin) {
sql.push("AND a.created_at >= :begin");
}
if (end) {
sql.push("AND a.created_at <= :end");
}
return await this.customQuery(sql.join(" "), params);
}
/**
* 订单办理中
* @param {*} begin
* @param {*} end
* @param {*} deliver_id
*/
async orderHanding(begin, end,deliver_id){
var sql = [];
sql.push("SELECT count(1) as count from o_order a inner join o_order_deliver b on a.deliver_id = b.id");
sql.push(`WHERE 1 = 1 and b.deliver_id = '${deliver_id}'`);
var params = {
begin: begin,
end: end
};
if (begin) {
sql.push("AND a.created_at >= :begin");
}
if (end) {
sql.push("AND a.created_at <= :end");
}
sql.push(`AND a.status in (${this.ORDER_HANDING}) `);
return await this.customQuery(sql.join(" "), params);
}
}
module.exports = OorderdeliverDao;
\ No newline at end of file
......@@ -461,7 +461,7 @@ class OorderService extends ServiceBase {
* @param {*} params
*/
async statTransData(params) {
if (!params.currentDate) {
if (!params.current_date) {
return system.getResult(null, `参数错误 当前时间不能为空`);
}
try {
......@@ -471,7 +471,7 @@ class OorderService extends ServiceBase {
};
var begin, end;
// 取开始时间和结束时间
begin = moment(params.currentDate).format("YYYY-MM") + "-01 00:00:00";
begin = moment(params.current_date).format("YYYY-MM") + "-01 00:00:00";
end = moment(begin).add(1, "months").subtract(1, 'days').format("YYYY-MM-DD") + " 23:59:59";
// echart数据 开始
......@@ -528,7 +528,7 @@ class OorderService extends ServiceBase {
async needToBeDealtWith(params) {
try {
let begin, end;
begin = moment(params.currentDate).format("YYYY-MM") + "-01 00:00:00";
begin = moment(params.current_date).format("YYYY-MM") + "-01 00:00:00";
end = moment(begin).add(1, "months").subtract(1, 'days').format("YYYY-MM-DD") + " 23:59:59";
//已经完成
let orderComplete = await this.dao.model.count({
......@@ -582,12 +582,12 @@ class OorderService extends ServiceBase {
* @param {*} params
*/
async deliverData(params){
if(!params.currentDate){
if(!params.current_date){
return system.getResult(null,`参数错误 当前时间不能为空`);
}
try {
let begin, end;
begin = moment(params.currentDate).format("YYYY-MM") + "-01 00:00:00";
begin = moment(params.current_date).format("YYYY-MM") + "-01 00:00:00";
end = moment(begin).add(1, "months").subtract(1, 'days').format("YYYY-MM-DD") + " 23:59:59";
let deliverDataList = await this.dao.deliverData(begin,end);
return system.getResult(deliverDataList);
......
......@@ -26,43 +26,43 @@ class OorderdeliverService extends ServiceBase {
* @status String 订单状态
* @operator_id String 交付商业务员
*/
async orderDelivers(params){
async orderDelivers(params) {
let where = {};
if(params.deliver_id){
if (params.deliver_id) {
where.deliver_id = this.trim(params.deliver_id);
}else{
return system.getResult(null,`参数错误 交付商ID不能为空`);
} else {
return system.getResult(null, `参数错误 交付商ID不能为空`);
}
//交付商订单表条件
if(params.createdBegin && params.createdEnd){
if (params.createdBegin && params.createdEnd) {
where.createdBegin = this.trim(params.createdBegin);
where.createdEnd = this.trim(params.createdEnd);
}
if(params.operator_id){
if (params.operator_id) {
where.operator_id = this.trim(params.operator_id);
}
//下面是订单条件
if(params.id){
if (params.id) {
where.id = this.trim(params.id);
}
if(params.status){
if (params.status) {
where.status = this.trim(params.status);
}
if(params.order_id){
if (params.order_id) {
where.order_id = this.trim(params.order_id);
}
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.dao.ordersdeliverCount(where);
let count = ordersCountRes[0]['orderCount'];
if(count==0){
return system.getResult({count:0,rows:[]});
if (count == 0) {
return system.getResult({ count: 0, rows: [] });
}
let rows = await this.dao.findOrders(where);
//格式化订单状态
......@@ -71,16 +71,16 @@ class OorderdeliverService extends ServiceBase {
await this.formateServiceItems(rows);
for (var row of rows) {
this.handleDate(row, ["created_at","completed_at"], "YYYY-MM-DD HH:mm:ss", -8);
this.handleDate(row, ["created_at", "completed_at"], "YYYY-MM-DD HH:mm:ss", -8);
}
let res = {
count,rows
count, rows
};
return system.getResult(res);
} catch (error) {
console.log(error);
return system.getResult(null,`系统错误 错误信息 ${error}`);
return system.getResult(null, `系统错误 错误信息 ${error}`);
}
}
......@@ -152,24 +152,24 @@ class OorderdeliverService extends ServiceBase {
* 平台数据概览(交付商数据)
* @param {*} params
*/
async statDeliverData(params){
if(!params.currentDate){
return system.getResult(null,`参数错误 当前时间不能为空`);
async statDeliverData(params) {
if (!params.currentDate) {
return system.getResult(null, `参数错误 当前时间不能为空`);
}
try {
let begin, end;
begin = moment(params.currentDate).format("YYYY-MM") + "-01 00:00:00";
end = moment(begin).add(1, "months").subtract(1, 'days').format("YYYY-MM-DD") + " 23:59:59";
let deliverList = await this.dao.deliverList(begin,end);
let deliverList = await this.dao.deliverList(begin, end);
let deliverSet = new Set();
for (let item of deliverList) {
deliverSet.add(item.deliver_id);
}
let _deliverArr = Array.from(deliverSet);
let orderCompletes = await this.dao.orderCompletesCount(_deliverArr,begin,end);
let orderHanding = await this.dao.orderHandingCount(_deliverArr,begin,end);
let orderCompletes = await this.dao.orderCompletesCount(_deliverArr, begin, end);
let orderHanding = await this.dao.orderHandingCount(_deliverArr, begin, end);
for (let item of deliverList) {
item.order_complete_count = orderCompletes[item.deliver_id];
item.order_handing_count = orderHanding[item.deliver_id];
......@@ -185,10 +185,98 @@ class OorderdeliverService extends ServiceBase {
* 交付商订单统计
* @param {*} params
*/
async deliverStatTransData(params){
async deliverStatTransData(params) {
if (!params.current_date) {
return system.getResult(null, `参数错误 当前时间不能为空`);
}
if (!params.deliver_id) {
return system.getResult(null, `参数错误 交付商不能为空`);
}
try {
var result = {
orderCount: 0,
orderPrice: 0,
};
var begin, end;
// 取开始时间和结束时间
begin = moment(params.current_date).format("YYYY-MM") + "-01 00:00:00";
end = moment(begin).add(1, "months").subtract(1, 'days').format("YYYY-MM-DD") + " 23:59:59";
// echart数据 开始
var days = [];
var dayCounts = [];
var priceCounts = [];
// 处理查询业务
days = this.getDays(end);
// 按天统计
var dayMap = await this.dao.statDayByTime(begin, end, this.trim(params.deliver_id));
for (var day of days) {
var ditem = dayMap[day] || {};
dayCounts.push(ditem.orderCount || 0);
priceCounts.push(system.f2y(ditem.orderPrice || 0));
}
//echart数据 结束
//当月订单的数量统计和订单总金额
var orderData = await this.dao.statOrderByTime(begin, end, this.trim(params.deliver_id)) || {};
result.orderCount = orderData[orderData.begin]["orderCount"];
result.orderPrice = system.f2y(orderData[orderData.begin]["orderPrice"]);
result.days = days;
result.dayCounts = dayCounts;
result.priceCounts = priceCounts;
return system.getResult(result);
} catch (error) {
console.log(error);
return system.getResult(null, `系统错误 错误信息 ${error}`);
}
}
getDays(end) {
var days = [];
var month = moment(end).format("YYYY-MM");
var endDay = Number(moment(end).format("DD"));
for (var i = 1; i <= endDay; i++) {
if (i < 10) {
days.push(month + "-0" + i);
} else {
days.push(month + "-" + i);
}
}
return days;
}
/**
* 业务办理
* @param {*} params
*/
async businessManagement(params) {
if (!params.current_date) {
return system.getResult(null, `参数错误 当前时间不能为空`);
}
if (!params.deliver_id) {
return system.getResult(null, `参数错误 交付商不能为空`);
}
try {
var begin, end;
// 取开始时间和结束时间
begin = moment(params.current_date).format("YYYY-MM") + "-01 00:00:00";
end = moment(begin).add(1, "months").subtract(1, 'days').format("YYYY-MM-DD") + " 23:59:59";
//已经完成
let orderCompleteRes = await this.dao.orderComplete(begin, end,this.trim(params.deliver_id));
//办理中
let orderHandlingRes = await this.dao.orderHanding(begin, end,this.trim(params.deliver_id));
return system.getResult({
orderCompleteCount:orderCompleteRes[0]['count'],
orderHandlingCount:orderHandlingRes[0]["count"]
});
} catch (error) {
console.log(error);
return system.getResult(error);
}
}
}
......
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