Commit f421e38c by linboxuan

ucommune-back operate api

parent 8d0d2d5b
const system = require("../../../system");
const Dao = require("../../dao.base");
class OrderRegionDao extends Dao {
constructor() {
super(Dao.getModelName(OrderRegionDao));
}
}
module.exports = OrderRegionDao;
const system = require("../../../system");
const settings = require("../../../../config/settings");
const uiconfig = system.getUiConfig2(settings.appKey);
module.exports = (db, DataTypes) => {
return db.define("orderregion", {
uapp_id :DataTypes.INTEGER,//
province :DataTypes.STRING,// 省
city :DataTypes.STRING,// 城市
count :DataTypes.INTEGER,// 订单量
year :DataTypes.INTEGER// 时间段(备用按年/按月做区分)
}, {
paranoid: true,//假的删除
underscored: true,
version: true,
freezeTableName: true,
timestamps: true,
updated_at: true,
//freezeTableName: true,
// define the table's name
tableName: 'c_order_region',
validate: {
},
indexes: [
]
});
}
......@@ -3,6 +3,7 @@ const settings = require("../../../../config/settings");
const uiconfig = system.getUiConfig2(settings.appKey);
const ServiceBase = require("../../sve.base");
const uuidv4 = require('uuid/v4');
const sequelize = require('sequelize');
class OrderInfoService extends ServiceBase {
constructor() {
super("dbcorder", ServiceBase.getDaoName(OrderInfoService));
......@@ -12,6 +13,7 @@ class OrderInfoService extends ServiceBase {
this.orderReceiptVoucherDao = system.getObject("db.dbcpay.orderreceiptvoucherDao");
this.moneyJourneyDao = system.getObject("db.dbcpay.moneyjourneyDao");
this.needsolutionDao = system.getObject("db.dbneed.needsolutionDao");
this.orderRegionDao = system.getObject("db.dbcorder.orderRegionDao");
}
//----------------------订单创建-----------start----------------
......@@ -1505,6 +1507,7 @@ class OrderInfoService extends ServiceBase {
};
await self.moneyJourneyDao.create(moneyObj, t);
});
// 2020 0717 lin新增 在回调处增加客户销售分布地区统计
item.orderStatus = 2;//已付款
var resultParams = {
order_info: item,
......@@ -1514,6 +1517,26 @@ class OrderInfoService extends ServiceBase {
var deliveryInfoResult = await this.getOrderDeliveryInfo(null, parmas);
if (deliveryInfoResult && deliveryInfoResult.status == 0) {
resultParams.delivery_content = deliveryInfoResult.data;
// 2020 0717 lin新增 在回调处增加客户销售分布地区统计
if(deliveryInfoResult.data.apply) {
if(deliveryInfoResult.data.apply.applyAddr) {
var applyAddr = deliveryInfoResult.data.apply.applyAddr
// 获取地址数组 该setting数组 与orderRegion province相同
var addArr = settings.addArr();
for(var i = 0;i < addArr.length;i++) {
if(applyAddr.indexOf(addArr[i]) >= 0 ){
var sql = "update c_order_region set count=count+1 where province=:province";
// 修改条件 省名字相同,appid相同
var paramWhere = { where:{province: addArr[i],uapp_id:item.uapp_id}};
var updateFields = {
count: sequelize.literal('count+1')
}
await this.orderRegionDao.updateByWhere(updateFields, paramWhere)
}
}
}
}
}
var orderProductItem = await this.orderproductDao.getItemInfoByOrderNo(parmas.orderNo);
if (orderProductItem) {
......
......@@ -6,6 +6,7 @@ class OrderInfoService extends ServiceBase {
super("dbcorder", ServiceBase.getDaoName(OrderInfoService));
this.orderInfoDao = system.getObject("db.dbcorder.orderinfoDao");
this.needInfoDao = system.getObject("db.dbneed.needinfoDao");
this.orderRegionDao = system.getObject("db.dbcorder.orderRegionDao");
}
async getOrderInfo(pobj, actionBody) {//获取订单列表信息
......@@ -102,7 +103,7 @@ class OrderInfoService extends ServiceBase {
needsCount: needsCount,
payCount: payObj.count ? payObj.count : 0,
conversionRate: conversionRate,
paySumCount: payObj.totalSum ? payObj.totalSum : 0,
totalSum: payObj.totalSum ? payObj.totalSum : 0,
parentProfit: payObj.parentProfit ? payObj.parentProfit : 0,
grossProfit: payObj.grossProfit ? payObj.grossProfit : 0
}
......@@ -174,6 +175,39 @@ class OrderInfoService extends ServiceBase {
return result;
}
// 趋势分析
async getProductTypesales(pobj, actionBody) {
var startTime = moment().subtract(1, "years").format("YYYY-MM-DD HH:mm:ss");
var entTime = moment().format("YYYY-MM-DD HH:mm:ss");
var paramWhere = {
uappId:actionBody.uappId,
startTime: startTime,
entTime: entTime
}
// 根据月份分组支付订单
var productCounSql = "SELECT product.itemName as productName,count(1) as count "
+ " FROM c_order_product AS product LEFT JOIN c_order_info AS orde ON product.sourceOrderNo = orde.orderNo "
+ " WHERE product.uapp_id = :uappId and orde.orderStatus != 1 and product.created_at >=:startTime and product.created_at<=:entTime"
+ " GROUP BY product.itemName"
var productCountList = await this.customQuery(productCounSql,paramWhere);
var result = system.getResultSuccess(productCountList);
return result;
}
// 客户地域分布
async getCustomerArea(pobj, actionBody) {
var paramWhere = {
uappId:actionBody.uappId,
}
// 根据月份分组支付订单
var customerAreaSql = "select province as name, count as value from c_order_region where uapp_id=:uappId"
var customerAreaList = await this.orderRegionDao.customQuery(customerAreaSql,paramWhere);
var result = system.getResultSuccess(customerAreaList);
return result;
}
// ----------------------------------------------uk运营后台 结束
}
module.exports = OrderInfoService;
......@@ -99,6 +99,9 @@ var settings = {
},
};
}
},
addArr: function() {
return ["南海诸岛", "北京", "天津", "上海", "重庆", "河北", "河南", "云南", "辽宁", "黑龙江", "湖南", "安徽", "山东", "新疆", "江苏", "浙江", "江西", "湖北", "广西", "甘肃", "山西", "内蒙古", "陕西", "吉林", "福建", "贵州", "广东", "青海", "西藏", "四川", "宁夏", "海南", "台湾", "香港", "澳门"]
}
};
module.exports = settings;
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