Commit 8b0d7965 by 王昆

gsb

parent 6bb9c240
......@@ -56,10 +56,17 @@ class ActionAPI extends APIBase {
case "orderAudit2":
opResult = await this.storderSve.audit2(action_body);
break;
case "orderTrade":
opResult = await this.storderSve.trade(action_body);
break;
break;
case "itemPage":
opResult = await this.storderitemSve.pageByCondition(action_body);
break;
case "itemTradeOfflineCB":
opResult = await this.storderitemSve.tradeOfflineCB(action_body);
break;
default:
opResult = system.getResult(null, "action_type参数错误");
......
......@@ -4,6 +4,21 @@ class StOrderItemDao extends Dao {
constructor() {
super(Dao.getModelName(StOrderItemDao));
}
async updateTrade(params, t) {
let sql = "UPDATE st_order_item SET trade_time = :trade_time, trade_status = '00', trade_desc = :trade_desc WHERE id IN (:ids) AND trade_status = '01' ";
await this.customUpdate(sql, params, t);
}
async countItems(params, t) {
let sql = "SELECT count(1) AS num FROM st_order_item WHERE order_id = :order_id AND trade_status = :trade_status";
let list = await this.customQuery(sql, params, t);
if (!list || list.length == 0) {
return 0;
}
return list[0].num || 0;
}
async listByIds(ids, attrs) {
if (!ids || ids.length == 0) {
return [];
......
......@@ -40,7 +40,7 @@ class StOrderService extends ServiceBase {
async info(params) {
let order = await this.dao.getById(params.id);
if (!order) {
return system.getResult(null, "订单不存在");
return system.getResult(null, "批次不存在");
}
this.handleDate(order, ["created_at"], null);
this.dictionary.setRowName("ORDER", order, ["order_type", "acc_type", "trade_mode", "trade_status", "check_status"]);
......@@ -50,12 +50,12 @@ class StOrderService extends ServiceBase {
// 保存打款信息
async saveOrder(order) {
if (!order) {
return system.getResult(null, "订单不存在");
return system.getResult(null, "批次不存在");
}
let itemList = order.itemList || [];
if (itemList.length == 0) {
return system.getResult(null, "订单明细不存在");
return system.getResult(null, "批次明细不存在");
}
let self = this;
......@@ -139,7 +139,7 @@ class StOrderService extends ServiceBase {
let _params = {
id: this.trim(params.id),
pre: "03",
status: Number(params.status || 0) == 1 ? "05" : "04",
status: Number(params.status || 0) == 1 ? "05" : "04",
remark: params.remark,
auditType: 2
}
......@@ -162,7 +162,7 @@ class StOrderService extends ServiceBase {
let order = await this.dao.findById(id);
this.dictionary.setRowName("ORDER", order, ["check_status"]);
if (!order) {
return system.getResult(null, "订单不存在");
return system.getResult(null, "批次不存在");
}
if (order.check_status !== pre) {
return system.getResult(null, `${auditName}失败,当前状态为[${order.check_status_name}]`);
......@@ -175,8 +175,32 @@ class StOrderService extends ServiceBase {
}
// 打款
async trade(params) {
// 打款模式 01系统打款 02手工打款
let trade_mode = this.trim(params.trade_mode);
if (!trade_mode || ["01", "02"].indexOf(trade_mode) == -1) {
return system.getResult(null, "打款模式错误");
}
// 结果反馈-批量
if (trade_mode == "01") {
return system.getResult(null, "系统打款正在开发中,暂时只支持手工打款");
}
let order = await this.dao.findById(params.id);
if (!order) {
return system.getResult(null, "批次不存在");
}
if (order.check_status != "05") {
return system.getResult(null, "批次未审核通过,请等待审核操作");
}
if (order.trade_mode != "00") {
return system.getResult(null, "批次已经操作过打款,不要重复操作");
}
order.trade_mode = trade_mode;
order.trade_status = "01";
await order.save();
return order;
}
}
module.exports = StOrderService;
......
......@@ -4,6 +4,7 @@ const ServiceBase = require("../../sve.base")
class StOrderItemService extends ServiceBase {
constructor() {
super("trade", ServiceBase.getDaoName(StOrderItemService));
this.storderDao = system.getObject("db.trade.storderDao");
this.dictionary = system.getObject("util.dictionary");
}
......@@ -27,6 +28,43 @@ class StOrderItemService extends ServiceBase {
}
return system.getResultSuccess(page);
}
async tradeOfflineCB(params) {
let item_ids = params.item_ids || [];
if (item_ids.length == 0) {
return system.getResultSuccess();
}
let trade_time = params.trade_time;
if(!trade_time) {
return system.getResult(null, "请填写交易时间");
}
let order = await this.storderDao.findById(params.order_id);
if (order.check_status != "05") {
return system.getResult(null, "批次未审核");
}
if(order.trade_mode == "00") {
return system.getResult(null, "批次未触发打款");
}
let itemParams = {ids: item_ids, trade_desc: params.trade_desc, trade_time: params.trade_time};
let countParams = {order_id: order.id, trade_status: "00"};
let orderParams = {id: order.id};
let self = this;
await this.db.transaction(async t => {
await self.dao.updateTrade(itemParams, t);
let count = await self.dao.countItems(countParams, t);
if(count == order.item_count) {}
orderParams.trade_status = count == order.item_count ? "00" : "03";
await self.storderDao.update(orderParams, t);
return order;
});
return system.getResultSuccess();
}
async tradeOnlineCB(params) {
}
}
module.exports = StOrderItemService;
......
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