flexbiz-server
Version:
Flexible Server
12 lines (11 loc) • 4.71 kB
JavaScript
'use strict';const controller=require("../controllers/controller"),assrequestSchema=new Schema({id_app:String,receiver_name:String,receiver_address:{type:String,required:!0,trim:!0},request_id:{type:String,required:!0,trim:!0},amount:{type:Number,required:!0},denom:{type:String,required:!0,lowercase:!0,trim:!0},order_id:{type:String,required:!0,trim:!0},order_info:{type:String,required:!0},ma_ct:String,trang_thai:{type:String,default:"0"},sender_address:String,sender_name:String,sender_user:String,
sender_date:Date,transaction:Schema.Types.Mixed,return_url:String,notify_url:String,payment_url:String,exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}}),model=mongoose.models.assrequest||mongoose.model("assrequest",assrequestSchema);
(global.configs||{}).createIndexes&&(assrequestSchema.index({id_app:1}),assrequestSchema.index({sender_address:1}),assrequestSchema.index({sender_name:1}),assrequestSchema.index({sender_user:1}),assrequestSchema.index({sender_date:1}),assrequestSchema.index({request_id:1}),assrequestSchema.index({ma_ct:1}),assrequestSchema.index({denom:1}),assrequestSchema.index({order_id:1}),assrequestSchema.index({order_info:1}),assrequestSchema.index({receiver_name:1}),assrequestSchema.index({receiver_address:1}),
assrequestSchema.index({status:1}),assrequestSchema.index({user_created:1}),assrequestSchema.index({trang_thai:1}),assrequestSchema.index({receiver_address:"text",order_id:"text",order_info:"text",receiver_name:"text",sender_name:"text"},{name:"assrequest_index2"}),model.on("index",async function($err$$){$err$$?console.error("assrequest index error",$err$$):console.info("assrequest indexing complete")}));
model.createVirtualPaymentClientURL=async($order$$,$_app_client_ip$$,$_paymentViaWallet_item$$)=>{$_app_client_ip$$=await global.getModel("app").findOne({_id:$order$$.id_app});$_paymentViaWallet_item$$=await model.create({id_app:$order$$.id_app,user_created:$order$$.user_created,user_updated:$order$$.user_created,receiver_name:$_paymentViaWallet_item$$.wallet_configs.receiver_name,receiver_address:$_paymentViaWallet_item$$.wallet_configs.receiver_address,request_id:$order$$._id.toString(),ma_ct:$order$$.ma_ct||
"",amount:$order$$.amount,denom:$_paymentViaWallet_item$$.wallet_configs.denom,order_id:$order$$.so_ct||$order$$._id.toString(),order_info:"Thanh to\u00e1n cho \u0111\u01a1n h\u00e0ng "+($order$$.so_ct||$order$$._id.toString())});$_paymentViaWallet_item$$.return_url=`${configs.domain?`https://${configs.domain}`:configs.api_url}/public/${$order$$.id_app}/assrequest/${$_paymentViaWallet_item$$._id.toString()}/callback`;await $_paymentViaWallet_item$$.save();return($_app_client_ip$$.domain||"")+"/#/payment/"+
$_paymentViaWallet_item$$._id.toString()};
model.verifyReturnUrl=async($again_link_id_app$$,$id_transaction_request$$,$query_results$$)=>{$again_link_id_app$$=`${configs.domain?`https://${configs.domain}`:configs.api_url}/public/payment/again`;$id_transaction_request$$=await model.findOne({_id:$id_transaction_request$$}).lean();if(!$id_transaction_request$$)throw"Y\u00eau c\u1ea7u thanh to\u00e1n kh\u00f4ng t\u1ed3n t\u1ea1i";$query_results$$={...$query_results$$};$query_results$$.isSuccess="1"==$id_transaction_request$$.trang_thai;if($query_results$$.isSuccess&&
$id_transaction_request$$.ma_ct){let $_v$$=global.getModel(`${$id_transaction_request$$.ma_ct.toLowerCase()}`);const $obj_updated$$=await $_v$$.findOne({_id:$id_transaction_request$$.request_id});try{let $ctrl$$=global.controllers[$id_transaction_request$$.ma_ct.toUpperCase()];if($ctrl$$&&$obj_updated$$){if($ctrl$$.handleAfterPayment){console.log("handle after payment");try{await $ctrl$$.handleAfterPayment($obj_updated$$),controller.pushNotification($ctrl$$,$obj_updated$$,"payment",null,!1,{title:`Bill ${$obj_updated$$.so_ct} \u0111\u00e3 \u0111\u01b0\u1ee3c thanh to\u00e1n`})}catch($e$$){console.error("error handle after payment",
$e$$)}}else await $_v$$.findOneAndUpdate({_id:$id_transaction_request$$.request_id},{trang_thai:"5"}),$ctrl$$.post?controller.postData($obj_updated$$,$ctrl$$,async()=>{controller.pushNotification($ctrl$$,$obj_updated$$,"update")}):controller.pushNotification($ctrl$$,$obj_updated$$,"update");$query_results$$.result_url=$obj_updated$$.again_link||$again_link_id_app$$}}catch($e$$){console.error("error update status for voucher",$id_transaction_request$$.ma_ct,$e$$),$query_results$$.result_url=$obj_updated$$.again_link||
$again_link_id_app$$}}else $query_results$$.result_url=$again_link_id_app$$;return $query_results$$};module.exports=model;