Commit 9b99fe02 by 王昆

gsb

parent f6b33319
......@@ -129,9 +129,18 @@ class ActionAPI extends APIBase {
case "saasOrderInfo": // 订单信息
opResult = await this.saasorderSve.info(action_body);
break;
case "saasOrderPlatformOrderInfo": // 订单信息
opResult = await this.saasorderSve.platformOrderInfo(action_body);
break;
case "saasOrderPage": // 订单信息
opResult = await this.saasorderSve.pageByCondition(action_body);
break;
case "saasOrderAudit": // 订单信息
opResult = await this.saasorderSve.audit(action_body);
break;
case "saasOrderDeliver": // 订单信息
opResult = await this.saasorderSve.deliver(action_body);
break;
//******************************************************************** */
// // 订单
......
const system = require("../../../system");
const Dao = require("../../dao.base");
class SaasOrderDeliverInfoDao extends Dao {
constructor() {
super(Dao.getModelName(SaasOrderDeliverInfoDao));
}
async mapByIds(ids, attrs) {
let result = {};
if (!ids || ids.length == 0) {
return result;
}
let sql = [];
sql.push("SELECT");
sql.push(attrs || "*");
sql.push("FROM");
sql.push(this.model.tableName);
sql.push("WHERE id IN (:ids)");
var list = await this.customQuery(sql.join(" "), {
ids: ids
});
if (!list || list.length == 0) {
return result;
}
for (var item of list) {
result[item.id] = item;
}
return result;
}
}
module.exports = SaasOrderDeliverInfoDao;
\ No newline at end of file
const system = require("../../../system");
const Dao = require("../../dao.base");
class SaasOrderPayDao extends Dao {
constructor() {
super(Dao.getModelName(SaasOrderPayDao));
}
async findByOrderId(order_id) {
let sql = `SELECT * FROM ${this.model.tableName} WHERE order_id = :order_id `;
return await this.customQuery(sql, {order_id: order_id});
}
async mapByIds(ids, attrs) {
let result = {};
if (!ids || ids.length == 0) {
return result;
}
let sql = [];
sql.push("SELECT");
sql.push(attrs || "*");
sql.push("FROM");
sql.push(this.model.tableName);
sql.push("WHERE id IN (:ids)");
var list = await this.customQuery(sql.join(" "), {
ids: ids
});
if (!list || list.length == 0) {
return result;
}
for (var item of list) {
result[item.id] = item;
}
return result;
}
}
module.exports = SaasOrderPayDao;
\ No newline at end of file
......@@ -5,19 +5,14 @@ module.exports = (db, DataTypes) => {
return db.define("saasorder", {
saas_id: DataTypes.STRING,
merchant_id: DataTypes.STRING,
channel_id: DataTypes.STRING,
product_id: DataTypes.STRING,
deliver_order_id: DataTypes.STRING,
merchant_app_user_id: DataTypes.STRING,
price: DataTypes.BIGINT,
pay_status: DataTypes.STRING,
pay_voucher_img: DataTypes.STRING,
audit_status: DataTypes.STRING,
audit_remark: DataTypes.STRING,
handle_status: DataTypes.STRING,
deliver_man: DataTypes.STRING,
deliver_mobile: DataTypes.STRING,
deliver_addr: DataTypes.STRING,
}, {
paranoid: true, //假的删除
underscored: true,
......
const system = require("../../../system");
const settings = require("../../../../config/settings");
const uiconfig = system.getUiConfig2(settings.appKey);
module.exports = (db, DataTypes) => {
return db.define("saasorderdeliverinfo", {
order_id: DataTypes.STRING,
pay_type: DataTypes.INTEGER,
amount: DataTypes.BIGINT,
pay_status: DataTypes.STRING,
pay_voucher_img: DataTypes.STRING,
trade_no: DataTypes.STRING,
deliver_man: DataTypes.STRING,
deliver_mobile: DataTypes.STRING,
deliver_addr: DataTypes.STRING,
deliver_express_no: DataTypes.STRING,
deliver_express_img: DataTypes.STRING,
merchant_deliver_man: DataTypes.STRING,
merchant_deliver_mobile: DataTypes.STRING,
merchant_deliver_addr: DataTypes.STRING,
sve_deliver_express_no: DataTypes.STRING,
sve_deliver_express_img: DataTypes.STRING,
}, {
paranoid: true, //假的删除
underscored: true,
version: true,
freezeTableName: true,
//freezeTableName: true,
// define the table's name
tableName: 'saas_order_deliver_info',
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
const system = require("../../../system");
const settings = require("../../../../config/settings");
const uiconfig = system.getUiConfig2(settings.appKey);
module.exports = (db, DataTypes) => {
return db.define("saasorderpay", {
order_id: DataTypes.STRING,
pay_type: DataTypes.INTEGER,
amount: DataTypes.BIGINT,
pay_status: DataTypes.STRING,
pay_voucher_img: DataTypes.STRING,
trade_no: DataTypes.STRING,
}, {
paranoid: true, //假的删除
underscored: true,
version: true,
freezeTableName: true,
//freezeTableName: true,
// define the table's name
tableName: 'saas_order_pay',
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
const system = require("../../../system");
const ServiceBase = require("../../sve.base")
const settings = require("../../../../config/settings")
class SaasOrderService extends ServiceBase {
constructor() {
super("saas", ServiceBase.getDaoName(SaasOrderService));
this.saasorderbminfoDao = system.getObject("db.saas.saasorderbminfoDao");
this.saasorderpayDao = system.getObject("db.saas.saasorderpayDao");
this.saasorderdeliverinfoDao = system.getObject("db.saas.saasorderdeliverinfoDao");
}
// -----------------------以此间隔,上面为API,下面为service---------------------------------
async info(params) {
......@@ -24,6 +28,72 @@ class SaasOrderService extends ServiceBase {
return system.getResultSuccess(order);
}
// 平台订单信息查询
async platformOrderInfo(params) {
if (!params.id) {
return system.getResult(null, "id不存在");
}
let order = await this.dao.getById(params.id);
if (!order) {
return system.getResult(null, "订单不存在");
}
this.handleDate(order, ["created_at"], null, -8);
await this.setOrderStatus([order]);
let bminfo = await this.saasorderbminfoDao.getById(params.id) || {};
let deliverInfo = await this.saasorderdeliverinfoDao.getById(params.id) || {};
let payList = await this.saasorderpayDao.findByOrderId(params.id) || [];
let payInfo = payList.length > 0 ? payList[0] : {};
this.handleDate(payInfo, ["created_at"], null, -8);
let result = {
baseInfo: {
id: order.id,
created_at: order.created_at,
status_name: order.status_name,
price: system.f2y(order.price),
},
regInfo: {
legal_name: bminfo.legal_name,
legal_idno: bminfo.legal_idno,
legal_mobile: bminfo.legal_mobile,
company_names: bminfo.company_names,
idcard_front: bminfo.idcard_front,
idcard_back: bminfo.idcard_back,
},
merchantDeliverInfo: {
merchant_deliver_man: deliverInfo.merchant_deliver_man,
merchant_deliver_mobile: deliverInfo.merchant_deliver_mobile,
merchant_deliver_addr: deliverInfo.merchant_deliver_addr,
},
payInfo: {
amount: system.f2y(payInfo.amount),
created_at: payInfo.created_at,
trade_no: (payInfo.trade_no || payInfo.id),
pay_voucher_img: payInfo.pay_voucher_img,
},
auditInfo: {
domicile_name: bminfo.domicile_name,
business_type: bminfo.business_type,
business_scope: bminfo.business_scope,
deliver_man: deliverInfo.deliver_man,
deliver_mobile: deliverInfo.deliver_mobile,
deliver_addr: deliverInfo.deliver_addr,
},
deliverInfo: {
deliver_express_no: deliverInfo.deliver_express_no,
deliver_express_img: deliverInfo.deliver_express_img,
},
sveDeliverInfo: {
sve_deliver_express_no: deliverInfo.sve_deliver_express_no,
sve_deliver_express_img: deliverInfo.sve_deliver_express_img,
}
}
return system.getResultSuccess(result);
}
async microAdd(params) {
let saas_id = this.trim(params.saas_id);
let merchant_id = this.trim(params.merchant_id);
......@@ -49,7 +119,9 @@ class SaasOrderService extends ServiceBase {
//更新oorder订单记录
bminfo.id = order.id;
bminfo.merchant_id = merchant_id;
await self.saasorderbminfoDao.create(bminfo, t);
await self.saasorderdeliverinfoDao.create({id: order.id}, t);
return order;
});
return system.getResultSuccess(order);
......@@ -66,7 +138,7 @@ class SaasOrderService extends ServiceBase {
params.startRow = (params.currentPage - 1) * params.pageSize;
page.total = await this.dao.countByCondition(params);
if(page.total == 0) {
if (page.total == 0) {
return system.getResultSuccess(page);
}
......@@ -91,27 +163,27 @@ class SaasOrderService extends ServiceBase {
for (let row of rows) {
let status = "";
// 支付状态 10待支付 20已支付
if(row.pay_status === "10") {
if (row.pay_status === "10") {
row.status = "1010";
row.status_name = "待付款";
continue;
}
// 10待审核 20审核通过 30审核驳回
if(row.audit_status != "20") {
row.status = row.audit_status == "10" ? "2010": "2030";;
row.status_name = row.audit_status == "10" ? "待审核": "审核驳回";
if (row.audit_status != "20") {
row.status = row.audit_status == "10" ? "2010" : "2030";
row.status_name = row.audit_status == "10" ? "待审核" : "审核驳回";
}
// 审核状态
if(row.handle_status == "10") {
if (row.handle_status == "10") {
row.status = "3010";
row.status_name = "业务办理中";
} else if (row.handle_status == "20") {
row.status = "3010";
row.status = "3020";
row.status_name = "待交付";
} else if (row.handle_status == "30") {
row.status = "3020";
row.status = "3030";
row.status_name = "已交付";
}
}
......@@ -119,7 +191,7 @@ class SaasOrderService extends ServiceBase {
}
async mapByIds(params) {
if(!params.ids || params.ids.length == 0) {
if (!params.ids || params.ids.length == 0) {
return system.getResultSuccess({});
}
let rs = await this.dao.mapByIds(params.ids);
......@@ -127,19 +199,124 @@ class SaasOrderService extends ServiceBase {
}
async setBminfo(rows) {
if(!rows || rows.length == 0) {
if (!rows || rows.length == 0) {
return;
}
let ids = [];
for(let row of rows) {
for (let row of rows) {
ids.push(row.id);
}
let map = await this.saasorderbminfoDao.mapByIds(ids) || {};
for(let row of rows) {
for (let row of rows) {
row.bminfo = map[row.id] || {};
}
}
async setDeliverInfo(rows) {
if (!rows || rows.length == 0) {
return;
}
let ids = [];
for (let row of rows) {
ids.push(row.id);
}
let map = await this.saasorderdeliverinfoDao.mapByIds(ids) || {};
for (let row of rows) {
row.deliverInfo = map[row.id] || {};
}
}
async audit(params) {
let id = this.trim(params.id);
let audit_status = this.trim(params.audit_status);
if (!id) {
return system.getResult(null, "订单不存在");
}
let order = await this.dao.findById(id);
if (!order) {
return system.getResult(null, "订单不存在");
}
if (order.pay_status != "20") {
return system.getResult(null, "订单未支付");
}
if (order.audit_status != "10") {
return system.getResult(null, "订单已审核");
}
let _order = {id: id};
_order.audit_status = audit_status;
_order.audit_remark = this.trim(params.audit_remark);
let _deliverInfo;
let _bminfo;
if (audit_status == "20") {
_deliverInfo = {id: id};
_deliverInfo.deliver_man = this.trim(params.deliver_man);
_deliverInfo.deliver_mobile = this.trim(params.deliver_mobile);
_deliverInfo.deliver_addr = this.trim(params.deliver_addr);
_bminfo = {id: id};
_bminfo.domicile_id = this.trim(params.domicile_id);
_bminfo.domicile_name = this.trim(params.domicile_name);
_bminfo.business_scope_id = this.trim(params.business_scope_id);
_bminfo.business_type = this.trim(params.business_type);
_bminfo.business_scope = this.trim(params.business_scope);
}
let self = this;
this.db.transaction(async t => {
await self.dao.update(_order, t);
if (_bminfo) {
await self.saasorderbminfoDao.update(_bminfo, t);
}
if (_deliverInfo) {
await self.saasorderdeliverinfoDao.update(_deliverInfo, t);
}
return 1;
});
return system.getResultSuccess();
}
async deliver(params) {
let id = this.trim(params.id);
let deliver_express_no = this.trim(params.deliver_express_no);
let deliver_express_img = this.trim(params.deliver_express_img);
if (!deliver_express_no) {
return system.getResult(null, "请填写快递单号");
}
if (!deliver_express_img) {
return system.getResult(null, "请上传交接单");
}
let order = await this.dao.findById(id);
if (!order) {
return system.getResult(null, "订单不存在");
}
if (order.handle_status != "20") {
return system.getResult(null, "该订单不允许交付");
}
let _order = {id: id};
_order.handle_status = "30";
let _deliverInfo = {id: id};
_deliverInfo.deliver_express_no = deliver_express_no;
_deliverInfo.deliver_express_img = deliver_express_img;
let self = this;
this.db.transaction(async t => {
await self.dao.update(_order, t);
await self.saasorderdeliverinfoDao.update(_deliverInfo, t);
return 1;
});
return system.getResultSuccess();
}
}
module.exports = SaasOrderService;
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