UNPKG

flexbiz-server

Version:

Flexible Server

6 lines (5 loc) 2.05 kB
const participant=global.getModel("participant"),controller=require("../../controllers/controllerRPT"); module.exports=function($router$$){new controller($router$$,"referredusers",async function($req$$,$callback$$){const $id_app$$=$req$$.query.id_app,$be_introduced_by$$=$req$$.query.by||$req$$.user.email;let $intro$$=await global.getModel("introducecode").findOne({user_created:$be_introduced_by$$,id_app:$id_app$$}).lean();if(!$intro$$)try{for($intro$$={user_created:$be_introduced_by$$,id_app:$id_app$$,so_lan_su_dung:0};;){var $code$$=global.getModel("introducecode").generateCode();if(!await global.getModel("introducecode").findOne({id_app:$id_app$$, introduce_code:$code$$})){$intro$$.introduce_code=$code$$;break}}await global.getModel("introducecode").create($intro$$)}catch($e$$){return $callback$$("Kh\u00f4ng th\u1ec3 t\u1ea1o m\u00e3 gi\u1edbi thi\u1ec7u cho ng\u01b0\u1eddi s\u1eed d\u1ee5ng n\u00e0y")}$code$$=1;const $par$$=await global.getModel("usergroup").findOne({id_app:$id_app$$,email:$be_introduced_by$$}).lean();$par$$&&!$par$$.admin&&$par$$.group_id&&await global.getModel("usergroup").findOne({id_app:$id_app$$,_id:$par$$.group_id,is_agent_group:!0}).lean()&& ($code$$=void 0);participant.referredUsers($id_app$$,$be_introduced_by$$,$code$$).then(async $report$$=>{for(var $r_rs$$ of $report$$)$r_rs$$.bds_sales=await global.getModel("bds_nhadat_moigioi_ban").countDocuments({id_app:$id_app$$,user_created:$r_rs$$.user,trang_thai:{$ne:9}});await $report$$.asyncJoinModel2($id_app$$,participant,[{where:{user:"email"},fields:["name"]}]);if($req$$.query.group_by){$r_rs$$={};if($req$$.query.group_by=="referral_code")$r_rs$$.referral_code=$intro$$.introduce_code, $r_rs$$.collaborators=$report$$;else{let $groups$$=[...(new Set($report$$.map($r$$=>$r$$[$req$$.query.group_by])))];for(let $g$$ of $groups$$)$r_rs$$[$req$$.query.group_by]=$g$$,$r_rs$$.collaborators=$report$$.filter($r$$=>$r$$[$req$$.query.group_by]==$g$$)}return $callback$$(null,$r_rs$$)}$callback$$(null,$report$$)}).catch($e$$=>{$callback$$($e$$)})})};