Commit 8e83344a by 王昆

gsb

parent 8fc483a8
...@@ -5,5 +5,23 @@ class OproductDao extends Dao { ...@@ -5,5 +5,23 @@ class OproductDao extends Dao {
super(Dao.getModelName(OproductDao)); super(Dao.getModelName(OproductDao));
} }
async findListByPid(pid) {
let sql = "SELECT * FROM o_product WHERE pid = :pid ORDER BY sort ASC";
return await this.customQuery(sql, {pid: pid});
}
async findMapByPid(pid) {
let result = {};
let list = await this.findListByPid(pid);
if (!list || list.length == 0) {
return result;
}
for (var item of list) {
result[item.id] = item;
}
return item.id;
}
} }
module.exports = OproductDao; module.exports = OproductDao;
\ No newline at end of file
const system = require("../../../system"); const system = require("../../../system");
const Dao = require("../../dao.base"); const Dao = require("../../dao.base");
class OproductprocessDao extends Dao { class OproductprocessDao extends Dao {
constructor() { constructor() {
super(Dao.getModelName(OproductprocessDao)); super(Dao.getModelName(OproductprocessDao));
...@@ -7,15 +8,17 @@ class OproductprocessDao extends Dao { ...@@ -7,15 +8,17 @@ class OproductprocessDao extends Dao {
/** /**
* 根据 productId 和 status 查询 商品 * 根据 productId 和 status 查询 商品
* @param {*} productId * @param {*} productId
* @param {*} status * @param {*} status
*/ */
async findByProductIdAndStatus(productId,status){ async findByProductIdAndStatus(productId, status) {
try { try {
let _productProcess =await this.model.findOne({where:{ let _productProcess = await this.model.findOne({
productId:productId, where: {
status:status productId: productId,
}}); status: status
}
});
return _productProcess || {}; return _productProcess || {};
} catch (error) { } catch (error) {
console.log(`系统错误 错误信息 ${error}`); console.log(`系统错误 错误信息 ${error}`);
...@@ -23,5 +26,36 @@ class OproductprocessDao extends Dao { ...@@ -23,5 +26,36 @@ class OproductprocessDao extends Dao {
} }
} }
async findMapByProductProductIds(productPid, productIds) {
let result = {};
let sql = [];
sql.push("SELECT");
sql.push("*");
sql.push("FROM o_product_process");
sql.push("WHERE product_pid = :productPid");
if (productIds && productIds.length > 0) {
sql.push("AND product_id IN (:productIds)");
}
sql.push("ORDER BY sort ASC");
let list = await this.customQuery(sql, {productPid: productPid, productIds: productIds});
if (!list || list.length) {
return result;
}
for (let item of list) {
let productId = item.product_id;
let items = result[productId];
if (!items) {
items = [];
}
items.push(item);
result[key] = items;
}
return result;
}
} }
module.exports = OproductprocessDao; module.exports = OproductprocessDao;
\ No newline at end of file
...@@ -51,7 +51,7 @@ class OorderService extends ServiceBase { ...@@ -51,7 +51,7 @@ class OorderService extends ServiceBase {
} }
// 获取产品状态 // 获取产品状态
await this.getProductProcess(); await this.getProductProcessList(productId, );
// 查询产品订单状态 // 查询产品订单状态
...@@ -79,33 +79,42 @@ class OorderService extends ServiceBase { ...@@ -79,33 +79,42 @@ class OorderService extends ServiceBase {
// 调用状态func(order, nextObj, params) // 调用状态func(order, nextObj, params)
} }
async getProductProcessList(params) { /**
var options = {}; * 构建产品流程对象
options.where = params; * @param productPid
options.raw = true; * @param chooseProductIds
options.order = [['sort', 'ASC']]; * @returns {Promise<void>}
*/
var oplist = await this.oproductprocessDao.model.findAll(options); async getProductProcessList(productPid, chooseProductIds) {
if (!oplist) { // 查询所有产品子项
return []; let productList = await this.oproductDao.findListByPid(productPid);
// 根据所选产品id, 查询产品流程
let productIds = [];
for (let product of productList) {
// 过滤未选择产品
if(product.is_choose && chooseProductIds && chooseProductIds.indexOf(product.id) == -1) {
continue;
}
productIds.push(product.id);
} }
if (productIds.length == 0) {
let processIds = []; return null;
for (var item of oplist) {
processIds.push(item.processId);
} }
var optionsProcess = {}; // 查询产品流程
optionsProcess.where = { let processMap = await this.oproductprocessDao.findMapByProductProductIds(productPid, productIds);
let orderProcessList = [];
}; for (let productId of productIds) {
optionsProcess.raw = true; let currentProcess = processMap[productId];
optionsProcess.order = [['sort', 'ASC']]; let orderProcess = {};
if (processList.length > 0) {
let lastProcess = productList[processList.length - 1];
}
}
await this.oprocessDao.model.findAll();
} }
} }
module.exports = OorderService; module.exports = OorderService;
\ No newline at end of file
...@@ -7,7 +7,12 @@ class OproductService extends ServiceBase { ...@@ -7,7 +7,12 @@ class OproductService extends ServiceBase {
constructor() { constructor() {
super("product", ServiceBase.getDaoName(OproductService)); super("product", ServiceBase.getDaoName(OproductService));
this.oproductprocessDao = system.getObject("db.product.oproductprocessDao"); this.oproductprocessDao = system.getObject("db.product.oproductprocessDao");
this.iborderbaseDao = system.getObject("db.product.iborderbaseDao"); }
async getProcessList(productPid, productIds) {
} }
/** /**
......
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