123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155 |
- <?php
- defined('ONLY_ONLY_ONLY') or exit('Access Denied');
- /*****************资方商家用工方劳务代理相关******************/
- function bizTrader_verifyToken(){
- $subSystem=intval(SUBSYS_CAPITAL_MINA);
- $GPC=input_param_handle(false);
- $ajaxdata = input_getPostObj();
- $phone=isset($ajaxdata["phone"])?$ajaxdata["phone"]:$GPC["phone"];
- if(empty($phone)) throw new GeneralException("","没有传递必要的phone参数");
- $baseUser=pdo_fetch("select * from base_user where subsystem=:subsystem and `mobile`=:mobile limit 1;",array(
- ":subsystem"=>intval($subSystem),
- ":mobile"=>trim($phone),
- ));
- if(empty($baseUser)) throw new GeneralException("","没有定位到此phone的登录用户记录!");
- $bizTrader=pdo_fetch("select bt.*,bu.id as buid,bu.mobile,bu.subsystem
- from biz_trader bt
- left join base_user bu on bu.id=bt.base_userid
- where bt.base_userid=:base_userid limit 1;",array(":base_userid"=>$baseUser["id"]));
- if(empty($bizTrader)) throw new GeneralException("","没有定位到此phone的业务用户记录!");
- base_verifyForendToken($baseUser); //前端会话TOKEN校验
- return array("baseUser" => $baseUser, "bizTrader" => $bizTrader);
- }
- function bizTrader2_verifyToken(){
- $subSystem=intval(SUBSYS_CAPITAL2_MINA);
- $GPC=input_param_handle(false);
- $ajaxdata = input_getPostObj();
- $phone=isset($ajaxdata["phone"])?$ajaxdata["phone"]:$GPC["phone"];
- if(!empty($phone)){
- $baseUser=pdo_fetch("select * from base_user where subsystem=:subsystem and `mobile`=:mobile limit 1;",array(
- ":subsystem"=>intval($subSystem),
- ":mobile"=>trim($phone),
- ));
- if(empty($baseUser)) throw new GeneralException("","没有定位到此phone的登录用户记录!");
- }else{
- $openid=isset($ajaxdata["openid"])?$ajaxdata["openid"]:$GPC["openid"];
- if(empty($openid)) throw new GeneralException("","没有传递必要的phone/openid参数");
- $wxParams = bizwx_fetchWxParams($subSystem);
- $mina_appid=$wxParams["mina_appid"];
- $baseUser=pdo_fetch("select * from base_user
- where subsystem=:subsystem and `wxmina_appid`=:wxmina_appid and `wxmina_openid`=:wxmina_openid limit 1;",array(
- ":subsystem"=>intval($subSystem),
- ":wxmina_appid"=>trim($mina_appid),
- ":wxmina_openid"=>trim($openid),
- ));
- if(empty($baseUser)) throw new GeneralException("","没有定位到此openid的登录用户记录!");
- }
- base_verifyForendToken($baseUser); //前端会话TOKEN校验
- $bizTrader2=pdo_fetch("select bt.*,bu.id as buid,bu.mobile
- from biz_trader2 bt
- left join base_user bu on bu.id=bt.base_userid
- where bt.base_userid=:base_userid limit 1;",array(":base_userid"=>$baseUser["id"]));
- if(empty($bizTrader2)) throw new GeneralException("","没有定位到此phone的业务用户记录!");
- return array("baseUser" => $baseUser, "bizTrader2" => $bizTrader2);
- }
- function bizTrader2_verifyRecuritDelegate($bizTrader2, $recuritId){
- $delegate = pdo_fetch("select * from biz_recruit_delegate brd
- where brd.biz_recruitid=:biz_recruitid and brd.biz_trader2id=:biz_trader2id
- and brd.finish_datetime>:verify_datetime", array(
- ":biz_recruitid" => intval($recuritId),
- ":biz_trader2id" => intval($bizTrader2["id"]),
- ":verify_datetime" => strtotime("+5minute"),
- ));
- if(empty($delegate)) throw new GeneralException("","您对此招聘活动没有委托管理权,或授权已过期!");
- }
- function bizTrader2_getRecuritDelegate($recuritId){
- $delegateList = pdo_fetchall("select brd.*,btr.title as recuritTitle,bt.company_name
- from biz_recruit_delegate brd
- left join biz_trader_recruit btr on btr.id=brd.biz_recruitid
- left join biz_trader bt on bt.id=btr.biz_traderid
- where brd.biz_recruitid=:biz_recruitid and brd.finish_datetime>:verify_datetime", array(
- ":biz_recruitid" => intval($recuritId),
- ":verify_datetime" => strtotime("-0 second"),
- ));
- if(count($delegateList)>0){
- if (count($delegateList) > 1) throw new GeneralException("", "此招聘活动怎么出现了同时多个委托项呢!");
- return $delegateList[0];
- }
- return null;
- }
- /**********************商家信息相关逻辑**************************************/
- function bizbase_traderEntityHandle($fromSubSystem, $baseUser, $bizUser, $handleMode, $ajaxdata, $GPC){
- if(intval($baseUser["subsystem"])==SUBSYS_LABOUR_MINA) $bizWorker = $bizUser;
- if(intval($baseUser["subsystem"])==SUBSYS_CAPITAL_MINA) $bizTrader = $bizUser;
- if(intval($baseUser["subsystem"])==SUBSYS_CAPITAL2_MINA) $bizTrader2 = $bizUser;
- switch($handleMode){
- case "fetchByPlater":
- case "fetchByTrader":
- case "fetchByTrader2":
- case "fetchByWorker":
- if(!empty($bizTrader))
- $traderId = $bizTrader["id"];
- else $traderId = isset($ajaxdata["traderId"]) ? $ajaxdata["traderId"] : $GPC["traderId"];
- $sqlTemp = " select bt.*,bu.mobile as bu_mobile,bu.subsystem as subsystem,bu.wxapp_appid,bu.wxapp_openid,bu.wxmina_appid,bu.wxmina_openid ";
- $sqlTemp .=" ,(select ifnull(avg(result_level),0) from biz_appraisal bapr where bapr.biz_catalog=1 and bapr.toerid=bt.id ) as trader_appraisal_avg ";
- $sqlTemp .= " from biz_trader bt";
- $sqlTemp .= " left join base_user bu on bu.id =bt.base_userid";
- $sqlTemp .= " where bt.id=:bizUserId limit 1;";
- $bizTrader = pdo_fetch($sqlTemp, array(":bizUserId" => $traderId));
- if(empty($bizTrader)) throw new GeneralException("", "没有传递必要的traderId参数或没有对应的记录,请核查!");
- $bizTrader["regtime"]=date("Y-m-d",$bizTrader["createtime"]);
- $bizTrader["trader_appraisal_avg"]=round($bizTrader["trader_appraisal_avg"],1);
- $accountInfo=bizbase_traderAccountInfo($bizTrader);
- foreach ($accountInfo as $key => $value) $bizTrader["finance_".$key] = $value;
- $statistics=bizbase_traderStatistics($bizTrader);
- foreach ($statistics as $key => $value) $bizTrader["ss_".$key] = $value;
- $uodoList=bizbase_traderUndoList($bizTrader);
- foreach ($uodoList as $key => $value) $bizTrader["ss_".$key] = $value;
- $bizTrader["breakTotal0"]=0;
- $bizTrader["breakTotal1"]=0;
- $bizTrader["breakTotal2"]=0;
- $bizTrader["breakTotal3"]=0;
- $breakSS = pdo_fetchall("select `catalog`,count(*) as count from biz_trader_breaklaw where biz_traderid=" . intval($traderId)." group by `catalog` ");
- foreach($breakSS as $item) $bizTrader["breakTotal".intval($item["catalog"])]=intval($item["total"]);
- $bizTrader["blocked"] = intval($bizTrader["hanging"])==4?"1":"0";
- $bizTrader["blockedName"] = intval($bizTrader["blocked"]) <= 0 ? "非黑名单" : "黑名单";
- return $bizTrader;
- break;
- case "blackhandle":
- $traderId = isset($ajaxdata["traderId"]) ? $ajaxdata["traderId"] : $GPC["traderId"];
- $sqlTemp = "select bt.*,bu.mobile as bu_mobile,bu.subsystem as subsystem,bu.wxapp_appid,bu.wxapp_openid,bu.wxmina_appid,bu.wxmina_openid";
- $sqlTemp .= " from biz_trader bt";
- $sqlTemp .= " left join base_user bu on bu.id =bt.base_userid";
- $sqlTemp .= " where bt.id=:bizUserId limit 1;";
- $bizTrader = pdo_fetch($sqlTemp, array(":bizUserId" => $traderId));
- if(empty($bizTrader)) throw new GeneralException("", "没有传递必要的traderId参数或没有对应的记录,请核查!");
- $reason = isset($ajaxdata["reason"]) ? $ajaxdata["reason"] : $GPC["reason"];
- $todo = isset($ajaxdata["todo"]) ? $ajaxdata["todo"] : $GPC["todo"];
- switch(trim($todo)){
- case "set":
- if(intval($bizTrader["hanging"])>=4) throw new GeneralException("", "已是黑名单状态了啊,请核查!");
- $sqlTemp="";
- $sqlTemp.=" update biz_trader set updatetime=:nowtime,`hanging`=4,remark=concat(:remark,ifnull(remark,'')) where id=:id;";
- $backdata = pdo_query($sqlTemp, array(
- ":nowtime" => time(),
- ":id" => intval($bizTrader["id"]),
- ":remark"=>"[".date("Y-m-d H:i:s",time())."] 设置为黑名单 {$reason} \n"));
- return $backdata;
- break;
- case "reset":
- if(intval($bizTrader["hanging"])<4) throw new GeneralException("", "当前处于非黑名单状态,请核查!");
- $sqlTemp="";
- $sqlTemp.=" update biz_trader set updatetime=:nowtime,`hanging`=0,remark=concat(:remark,ifnull(remark,'')) where id=:id;";
- $backdata = pdo_query($sqlTemp, array(
- ":nowtime" => time(),
- ":id" => intval($bizTrader["id"]),
- ":remark"=>"[".date("Y-m-d H:i:s",time())."] 取消黑名单 {$reason} \n"));
- return $backdata;
- break;
- default:throw new GeneralException("", "不支持的todo");
- }
- break;
- case "certifConfirmed":
- $traderId = isset($ajaxdata["traderId"]) ? $ajaxdata["traderId"] : $GPC["traderId"];
- $sqlTemp = "select bt.*,bu.mobile as bu_mobile,bu.subsystem as subsystem,bu.wxapp_appid,bu.wxapp_openid,bu.wxmina_appid,bu.wxmina_openid";
- $sqlTemp .= " from biz_trader bt";
- $sqlTemp .= " left join base_user bu on bu.id =bt.base_userid";
- $sqlTemp .= " where bt.id=:bizUserId limit 1;";
- $bizTrader = pdo_fetch($sqlTemp, array(":bizUserId" => $traderId));
- if(empty($bizTrader)) throw new GeneralException("", "没有传递必要的traderId参数或没有对应的记录,请核查!");
- $reason = isset($ajaxdata["reason"]) ? $ajaxdata["reason"] : $GPC["reason"];
- $todo = isset($ajaxdata["todo"]) ? $ajaxdata["todo"] : $GPC["todo"];
- $operatorName=empty($baseUser["login_name"])?"":"由".$baseUser["login_name"]."";
- switch(trim($todo)){
- case "setPerson":
- if(intval($bizTrader["certif_confirmed"])>0) throw new GeneralException("", "已是实名确认状态了啊,请核查!");
- if(empty($bizTrader["lawer_idcard"])) throw new GeneralException("", "此商家还未提交【身份证】个人商家实名认证所需信息,请核查!");
- $sqlTemp="";
- $sqlTemp.=" update biz_trader set updatetime=:nowtime,`certif_confirmed`=1,remark=concat(:remark,ifnull(remark,'')) where id=:id;";
- $backdata = pdo_query($sqlTemp, array(
- ":nowtime" => time(),
- ":id" => intval($bizTrader["id"]),
- ":remark"=>"[".date("Y-m-d H:i:s",time())."] {$operatorName}设置为个人实名确认 {$reason} \n"));
- return $backdata;
- break;
- case "setEnterprise":
- if(intval($bizTrader["certif_confirmed"])>1) throw new GeneralException("", "已是企业实名确认状态了啊,请核查!");
- if(empty($bizTrader["bizlicense_pic"])) throw new GeneralException("", "此商家还未提交【营业执照】企业商家实名认证所需信息,请核查!");
- if(intval($bizTrader["catalog"])>0){
- $sqlTemp="";
- $sqlTemp.=" update biz_trader set updatetime=:nowtime,`certif_confirmed`=2,remark=concat(:remark,ifnull(remark,'')) where id=:id;";
- $backdata = pdo_query($sqlTemp, array(
- ":nowtime" => time(),
- ":id" => intval($bizTrader["id"]),
- ":remark"=>"[".date("Y-m-d H:i:s",time())."] {$operatorName}设置为企业实名确认 {$reason} \n"));
- return $backdata;
- }else{
- $freeCountAdd=5;
- $sqlTemp="";
- $sqlTemp.=" update biz_trader set updatetime=:nowtime,catalog=1,`certif_confirmed`=2,freecount=ifnull(freecount,0)+:freecount,remark=concat(:remark,ifnull(remark,'')) where id=:id;";
- $backdata = pdo_query($sqlTemp, array(
- ":nowtime" => time(),
- ":id" => intval($bizTrader["id"]),
- ":freecount" => $freeCountAdd,
- ":remark"=>"[".date("Y-m-d H:i:s",time())."] {$operatorName}确认由个人转为企业商家,并给其新增【{$freeCountAdd}次】免费次数 {$reason} \n"));
- return $backdata;
- }
- break;
- case "reset":
- if(intval($bizTrader["certif_confirmed"])<=0) throw new GeneralException("", "当前处于非实名确认状态,请核查!");
- $sqlTemp="";
- $sqlTemp.=" update biz_trader set updatetime=:nowtime,`certif_confirmed`=0,remark=concat(:remark,ifnull(remark,'')) where id=:id;";
- $backdata = pdo_query($sqlTemp, array(
- ":nowtime" => time(),
- ":id" => intval($bizTrader["id"]),
- ":remark"=>"[".date("Y-m-d H:i:s",time())."] {$operatorName}取消实名确认 {$reason} \n"));
- return $backdata;
- break;
- default:throw new GeneralException("", "不支持的todo");
- }
- break;
- case "wxRecharge":
- $minaCode = isset($ajaxdata["minaCode"]) ? $ajaxdata["minaCode"] : $GPC["minaCode"];
- if (empty(trim($minaCode))) throw new GeneralException("", "没有传递必要的minaCode参数");
- $money = isset($ajaxdata["money"]) ? $ajaxdata["money"] : $GPC["money"];
- $money = round(floatval($money), 2);
- if ($money <= 0) throw new GeneralException("", "没有传递必要的money参数或小于等于0了");
- $sqlParam=array();
- $sqlParam[":nowtime"]=time();
- $sqlParam[":biz_traderid"]=$bizTrader["id"];
- $sqlParam[":biz_roletype"]=0;
- $sqlParam[":biz_userid"]=$bizTrader["id"];
- $sqlParam[":type"]=0;//收支类型:0-收入;1-支出;
- $sqlParam[":money"]=$money; //收入:0-次数支付;1-支付工单;
- $sqlParam[":biz_catalog"] = 2; //微信支付充值
- $sqlParam[":biz_id"] = 0;
- $sqlParam[":remark"] = "商家直接微信支付充值";
- $sqlTemp="";
- $sqlTemp.=" insert into biz_trader_account set createtime=:nowtime";
- $sqlTemp.=" ,biz_traderid=:biz_traderid, biz_roletype=:biz_roletype, biz_userid=:biz_userid ";
- $sqlTemp.=" ,type=:type, `money`=:money";
- $sqlTemp.=" ,biz_catalog=:biz_catalog, biz_id=:biz_id ";
- $sqlTemp.=" ,`status`=0, remark=:remark;";//统一固定的工单支付ID,避免重复支付 增加一个paytag
- $sqlTemp.=" update biz_trader_account set biz_idtag=concat('WXCG',id,'EE',paytag) where id=LAST_INSERT_ID();";
- $sqlTemp.=" select * from biz_trader_account where id=LAST_INSERT_ID();";
- $dataset = pdo_query3($sqlTemp, $sqlParam);
- $bizInfo= $dataset[count($dataset)-1][0];
- if (empty($bizInfo)) throw new GeneralException("", "构建预支付订单异常");
- $payBizCatalog = 2; //微信支付充值
- $payBizId = $bizInfo["id"];
- $payScene = "JSAPI";
- $prePayArgs = array(
- "payBackBizCatalog" => $payBizCatalog,
- "payBackBizId" => $payBizId,
- "payScene" => $payScene,
- );
- require_once WEB_PHY_ROOT."/base/wxsrv.php";
- $resObj = bizwx_fetchMinaOpenidCore(SUBSYS_CAPITAL_MINA);
- $wxmina_appid = $resObj["wxmina_appid"];
- $wxmina_openid = $resObj["openid"];
- $bizArgs=array(
- "minaCode"=>$minaCode,
- "bizInfo"=>$bizInfo,
- "handleMode"=>$handleMode,
- "bizUser"=>$bizUser,
- "wxmina_appid"=>$wxmina_appid,
- "wxmina_openid"=>$wxmina_openid,
- );
- $prePayInfo=bizbase_traderPayCore($prePayArgs, $bizArgs);
- //不会出现重复订单
- $prePayInfo =array_merge($prePayArgs, $prePayInfo);
- return array(
- "prePayInfo" => $prePayInfo,
- );
- break;
- case "transferToTrader2":
- $remark = isset($ajaxdata["remark"]) ? $ajaxdata["remark"] : $GPC["remark"];
- $money = isset($ajaxdata["money"]) ? $ajaxdata["money"] : $GPC["money"];
- $money = round(floatval($money), 2);
- if ($money <= 0) throw new GeneralException("", "没有传递必要的money参数或小于等于0了");
- $trader2Id = isset($ajaxdata["trader2Id"]) ? $ajaxdata["trader2Id"] : $GPC["trader2Id"];
- if (intval($trader2Id) <= 0) throw new GeneralException("", "没有传递必要的trader2Id参数");
- $delegateInfo = pdo_fetch("select brd.*,btr.title as recuritTitle,bt.company_name
- from biz_recruit_delegate brd
- left join biz_trader_recruit btr on btr.id=brd.biz_recruitid
- left join biz_trader bt on bt.id=btr.biz_traderid
- where brd.biz_trader2id=:biz_trader2id and btr.biz_traderid=:biz_traderid
- and brd.finish_datetime>:verify_datetime limit 1", array(
- ":biz_traderid" => intval($bizTrader["id"]),
- ":biz_trader2id" => intval($trader2Id),
- ":verify_datetime" => strtotime("0 second"),
- ));
- if (empty($delegateInfo)) throw new GeneralException("", "传递的现场经理与您商家没有任何授权关系啊!");
- $backdata = pdo_fetch("select
- (sum(case when bta.type=0 then ifnull(money,0) else 0 end)-
- sum(case when bta.type=1 then ifnull(money,0) else 0 end)) as money_balance
- from biz_trader_account bta
- where bta.deleted=0 and bta.biz_traderid=:biz_traderid
- and bta.`biz_roletype`=:money_roletype and bta.biz_userid=:money_userid
- and bta.`status`=1",array(
- ":biz_traderid"=>intval($bizTrader["id"]),
- ":money_userid"=>intval($bizTrader["id"]),
- ":money_roletype"=>0,
- ));
- $money_balance = round(floatval($backdata["money_balance"]), 2);
- if ($money_balance < $money) throw new GeneralException("NoEnough", array(
- "errMsg"=>"账户余额已不足以转帐",
- "balance"=>$money_balance,
- ));
- $sqlParam = array();
- $sqlParam[":nowtime"]=time();
- $sqlParam[":biz_traderid"]=intval($bizTrader["id"]);
- $sqlParam[":biz_trader2id"]=intval($trader2Id);
- $sqlParam[":money"] = $money;
- $sqlParam[":bizremark"]="[" . date("Y-m-d H:i:s", time()) . "] 转帐 {$remark} \n";
- $sqlTemp="";
- $sqlTemp.=" insert into biz_trader_account ( `biz_traderid`, `createtime`,`type`, `money`, `status`, `biz_catalog`, `biz_id`, `biz_roletype`, `biz_userid`, remark )";
- $sqlTemp.=" select :biz_traderid , :nowtime , 1 , :money, 1, 4 , 0, 0, :biz_traderid, :bizremark from dual where 1=1;";
- $sqlTemp.=" set @first_id=LAST_INSERT_ID();";
- $sqlTemp.=" insert into biz_trader_account ( `biz_traderid`, `createtime`,`type`, `money`, `status`, `biz_catalog`, `biz_id`, `biz_roletype`, `biz_userid`, remark )";
- $sqlTemp.=" select :biz_traderid , :nowtime , 0 , :money, 1, 3 , @first_id, 1, :biz_trader2id, :bizremark from dual where 1=1;";
- $sqlTemp.=" update biz_trader_account set `biz_id`=LAST_INSERT_ID() where id=@first_id;";
- $dataset=pdo_query3($sqlTemp,$sqlParam);
- return $dataset;
- break;
- case "adjustLevel":
- $becomeVip = isset($ajaxdata["becomeVip"]) ? $ajaxdata["becomeVip"] : $GPC["becomeVip"];
- $reason = isset($ajaxdata["reason"]) ? $ajaxdata["reason"] : $GPC["reason"];
- $traderIds = isset($ajaxdata["traderIds"]) ? $ajaxdata["traderIds"] : $GPC["traderIds"];
- $idSet=array();
- foreach($traderIds as $item){
- array_push($idSet,intval($item));
- }
- if (count($idSet)<=0) throw new GeneralException("", "没有传递必要的traderIds参数");
- $idSet = implode(",", $idSet);
- $sqlParam=array();
- $sqlParam[":nowtime"]=time();
- $sqlParam[":trader_level"]=(intval($becomeVip)<=0?0:1);
- if($sqlParam[":trader_level"]<=0){
- $sqlParam[":remark"]="[" . date("Y-m-d H:i:s", time()) . "] 取消vip身份 $reason \n";
- }else{
- $sqlParam[":remark"]="[" . date("Y-m-d H:i:s", time()) . "] 设为vip身份 $reason \n";
- }
- $sqlTemp="";
- $sqlTemp.=" update biz_trader ";
- $sqlTemp.=" set updatetime=:nowtime,trader_level=:trader_level,remark=concat(:remark,ifnull(remark,'')) ";
- $sqlTemp.=" where id in ({$idSet});";
- $backdata=pdo_query3($sqlTemp,$sqlParam);
- return $backdata;
- break;
- case "idCardCheck":
- $trueName = isset($ajaxdata["trueName"]) ? $ajaxdata["trueName"] : $GPC["trueName"];
- $idCard = isset($ajaxdata["idCard"]) ? $ajaxdata["idCard"] : $GPC["idCard"];
- if(empty($bizTrader)) throw new GeneralException("", "没有以商家身份登录,请核查!");
- require_once WEB_PHY_ROOT."/base/wxsrv.php";
- txcloud_idcardCheck($trueName,$idCard);
- $sqlParam=array();
- $sqlParam[":nowtime"]=time();
- $sqlParam[":traderId"]=intval($bizTrader["id"]);
- $sqlParam[":lawer_name"]=$trueName;
- $sqlParam[":lawer_idcard"]=$idCard;
- $sqlParam[":linker_gender"]=((intval(mb_substr($idCard,17,1)) % 2)<=0?1:0);
- $sqlParam[":linker_birthday"]=strtotime(mb_substr($idCard,6,4)."-".mb_substr($idCard,10,2)."-".mb_substr($idCard,12,2));
- $sqlParam[":remark"]="[".date("Y-m-d H:i:s",time())."] 实名认证 \n";
- $sqlTemp="";
- $sqlTemp.=" update biz_trader set updatetime=:nowtime ";
- $sqlTemp.=" ,lawer_name=:lawer_name,lawer_idcard=:lawer_idcard ";
- $sqlTemp.=" ,linker_gender=:linker_gender,linker_birthday=:linker_birthday ";
- $sqlTemp.=" ,remark=concat(:remark,ifnull(remark,'')) ";
- $sqlTemp.=" where id =:traderId;";
- $backdata=pdo_query3($sqlTemp,$sqlParam);
- return $backdata;
- break;
- default:
- throw new GeneralException("","不支持的handleMode!");
- }
- }
- function bizbase_traderPayCore($prePayArgs, $bizArgs){
- require_once WEB_PHY_ROOT."/base/wxsrv.php";
- $prePayInfo=weixin_prepayBuildV3($prePayArgs,$bizArgs,function($bizCatalog, $bizId, $bizArgs){
- $minaCode = $bizArgs["minaCode"];
- $bizInfo = $bizArgs["bizInfo"];
- $handleMode = $bizArgs["handleMode"];
- $bizUser = $bizArgs["bizUser"];
- $wxmina_appid = $bizArgs["wxmina_appid"];
- $wxmina_openid = $bizArgs["wxmina_openid"];
- //---------------------------------------
- $payTotal = round(floatval($bizInfo["money"]), 2);
- if ($payTotal <= 0) throw new GeneralException("", "金额竟然小于等于0");
- $payTotal = $payTotal * 100;//转为分
- //---------------------------------------
- $sqlParam=array();
- $sqlParam[":id"]=intval($bizInfo["id"]);
- $sqlParam[":wxmina_appid"]=$wxmina_appid;
- $sqlParam[":wxmina_openid"]=$wxmina_openid;
- $sqlTemp=" update biz_trader_account set";
- $sqlTemp.=" wxmina_appid=:wxmina_appid,wxmina_openid=:wxmina_openid ";
- $sqlTemp.=" where id=:id; ";
- $dataset = pdo_query3($sqlTemp, $sqlParam);
- //---------------------------------------
- $prePayInfo= array();
- $prePayInfo["appid"]=$wxmina_appid;
- $prePayInfo["mchId"]=WeiXinPay_mchId;
- $prePayInfo["mch_paykeyV2"]=WeiXinPay_apiKey;
- $prePayInfo["mch_paykeyV3"]=WeiXinPay_apiKeyV3;
- $prePayInfo["out_trade_no"]=$bizInfo["biz_idtag"];
- $prePayInfo["total"]="{$payTotal}";
- $prePayInfo["description"]="商家充值支付业务";
- $prePayInfo["openid"]=$wxmina_openid;
- return $prePayInfo;
- });
- return $prePayInfo;
- }
- function bizbase_traderAccountInfo($bizTrader){
- $sqlTemp="";
- $sqlTemp.=" select type,sum(ifnull(money,0)) as total ";
- $sqlTemp.=" from biz_trader_account ";
- $sqlTemp.=" where biz_roletype=0 and biz_traderid=".intval($bizTrader["id"])." and `deleted`=0 and `status`=1";
- $sqlTemp.=" group by type";
- $totalList = pdo_fetchall($sqlTemp, array());
- $income=0.0;
- $outgoing=0.0;
- foreach($totalList as $item){
- switch(intval($item["type"])){
- case 0://收入
- $income = round(floatval($item["total"]), 2);
- break;
- case 1://支出
- $outgoing = round(floatval($item["total"]), 2);
- break;
- }
- }
- $balance = round(floatval($income - $outgoing),2);
- $frozenIn=0.0;//解冻总额
- $frozenOut=0.0;//冻结总额
- $frozenBalance=0.0;//冻结余额,即当前实际冻结的金额
- $sqlTemp="";
- $sqlTemp.=" select biz_catalog,sum(ifnull(money,0)) as total ";
- $sqlTemp.=" from biz_trader_account ";
- $sqlTemp.=" where biz_roletype=0 and biz_traderid=".intval($bizTrader["id"])." and type=0 and `deleted`=0 and `status`=1 ";
- $sqlTemp.=" group by biz_catalog ";
- $outlist = pdo_fetchall($sqlTemp, array());
- $numIncome=0.0;
- $feeIncome=0.0;
- $wxcharge=0.0;
- $transferin=0.0;
- foreach($outlist as $item){
- switch(intval($item["biz_catalog"])){
- case 0://次数支付
- $numIncome = round(floatval($item["total"]), 2);
- break;
- case 1://支付工单
- $feeIncome = round(floatval($item["total"]), 2);
- break;
- case 2://微信支付充值;
- $wxcharge = round(floatval($item["total"]), 2);
- break;
- case 3://转帐收入
- $transferin = round(floatval($item["total"]), 2);
- break;
- case 6://工单费用解冻
- $frozenIn = round(floatval($item["total"]), 2);
- break;
- }
- }
- $sqlTemp="";
- $sqlTemp.=" select biz_catalog,sum(ifnull(money,0)) as total ";
- $sqlTemp.=" from biz_trader_account ";
- $sqlTemp.=" where biz_roletype=0 and biz_traderid=".intval($bizTrader["id"])." and type=1 and `deleted`=0 and `status`=1 ";
- $sqlTemp.=" group by biz_catalog ";
- $outlist = pdo_fetchall($sqlTemp, array());
- $numOutgoing=0.0;
- $platfetch=0.0;
- $commissionout=0.0;
- $salaryout=0.0;
- $transferout=0.0;
- $withdrawout=0.0;
- foreach($outlist as $item){
- switch(intval($item["biz_catalog"])){
- case 0://次数支出
- $numOutgoing = round(floatval($item["total"]), 2);
- break;
- case 1://工单平台分成支出
- $platfetch = round(floatval($item["total"]), 2);
- break;
- case 2://工单佣金支出
- $commissionout = round(floatval($item["total"]), 2);
- break;
- case 3://工单工资支出
- $salaryout = round(floatval($item["total"]), 2);
- break;
- case 4://转帐支出
- $transferout = round(floatval($item["total"]), 2);
- break;
- case 5://提现支出
- $withdrawout = round(floatval($item["total"]), 2);
- break;
- case 6://工单整体支出
- $withdrawout = round(floatval($item["total"]), 2);
- break;
- case 7://平台代支付工单
- $withdrawout = round(floatval($item["total"]), 2);
- break;
- case 8://冻结工单费用
- $frozenOut = round(floatval($item["total"]), 2);
- break;
- }
- }
- $frozenBalance=$frozenOut-$frozenIn;//冻结余额,即当前实际冻结的金额
- //-------------------------------------------------------------------------------
- $numaccountInfo=pdo_fetchall("select type,ifnull(sum(ifnull(count,0)),0) as total
- from biz_trader_numaccount where `deleted`=0 and `status`=1 and biz_traderid=".intval($bizTrader["id"])."
- group by type");
- $numtotalIncome = 0;
- $numtotalOutgoing = 0;
- foreach($numaccountInfo as $item){
- switch(intval($item["type"])){
- case 0:
- $numtotalIncome = intval($item["total"]);
- break;
- case 1:
- $numtotalOutgoing = intval($item["total"]);
- break;
- }
- }
- $numtotalbalance = $numtotalIncome-$numtotalOutgoing;
- //$recuritRule = bizbase_fetchBaseConfig("RecuritRule",true);
- $freeCount = intval($bizTrader["freecount"]);
- $freeCount = $freeCount <= 0 ? 0 : $freeCount;
- $freecount_used=intval($bizTrader["freecount_used"]);
- $freecount_used = $freecount_used <= 0 ? 0 : $freecount_used;
- $canUseFreeCount = $freeCount - $freecount_used;
- return array(
- "balance" => $balance,
- "income" => $income,
- "outgoing" => $outgoing,
- "numIncome" => $numIncome,
- "feeIncome" => $feeIncome,
- "wxcharge" => $wxcharge,
- "transferin" => $transferin,
- "numOutgoing" => $numOutgoing,
- "platfetch" => $platfetch,
- "commissionout" => $commissionout,
- "salaryout" => $salaryout,
- "transferout" => $transferout,
- "withdrawout" => $withdrawout,
- "numtotalIncome" => $numtotalIncome,
- "numtotalOutgoing" => $numtotalOutgoing,
- "numtotalbalance" => $numtotalbalance,
- "numFreeCount" => $canUseFreeCount,
- "frozenBalance"=>$frozenBalance,
- );
- }
- function bizbase_traderStatistics($bizTrader){
- $sqlTemp="";
- $sqlTemp.=" select count(*) as recuritTotal";
- $sqlTemp.=" ,ifnull(sum(case when `status`>=1 then need_total else 0 end),0) as need_total";
- $sqlTemp.=" ,ifnull(sum(case when `status`=-1 then 1 else 0 end),0) as refuseTotal";
- $sqlTemp.=" ,ifnull(sum(case when `status`=1 then 1 else 0 end),0) as unauditedTotal";
- $sqlTemp.=" ,ifnull(sum(case when `status`>=1 then 1 else 0 end),0) as auditedTotal";
- $sqlTemp.=" ,ifnull(sum(case when `status`>=2 then 1 else 0 end),0) as auditedTotal2";
- $sqlTemp.=" from biz_trader_recruit btr ";
- $sqlTemp.=" where btr.biz_traderid=".intval($bizTrader["id"]).";";
- $totalInfo = pdo_fetch($sqlTemp, array());
- $recuritTotal=intval($totalInfo["recuritTotal"]);
- //$need_total=pdo_fetchcolumn("select ifnull(sum(need_total),0) from biz_trader_recruit where biz_traderid=".intval($bizTrader["id"])." and `status`>=1");
- $need_total=intval($totalInfo["need_total"]);
- $refuseTotal=intval($totalInfo["refuseTotal"]);
- $unauditedTotal=intval($totalInfo["unauditedTotal"]);
- $auditedTotal=intval($totalInfo["auditedTotal"]);
- $auditedTotal2=intval($totalInfo["auditedTotal2"]);
- $sqlTemp="";
- $sqlTemp.=" select sum(workTotal) as workTotal, sum(enrollUnauditTotal) as enrollUnauditTotal, sum(enrollTotal) as enrollTotal ";
- $sqlTemp.=" ,sum(waitSettledTotal) as waitSettledTotal,sum(settledTotal) as settledTotal ";
- $sqlTemp.=" ,sum(exceptTotal) as exceptTotal ";
- $sqlTemp.=" ,sum(refuseTotal) as refuseTotal,sum(breakoffTotal) as breakoffTotal ";
- $sqlTemp.=" ,sum(cancelTotal) as cancelTotal,sum(cancel2Total) as cancel2Total,sum(denypayTotal) as denypayTotal ";
- $sqlTemp.=" ,sum(noStartWorkTotal) as noStartWorkTotal,sum(noFinishWorkTotal) as noFinishWorkTotal ";
- $unreadStatusMin=-8;
- $unreadStatusMax=5;
- $unreadStatusPrefix="unreadWKTotal";
- for($iii=$unreadStatusMin;$iii<=$unreadStatusMax;$iii++){
- $iiiExt=$iii<0?"_".abs($iii):$iii;
- $alias="{$unreadStatusPrefix}{$iiiExt}";
- $sqlTemp.=" ,sum({$alias}) as {$alias} ";
- }
- $sqlTemp.=" from (select sum(case when tdwk.id>0 then 1 else 0 end) as workTotal ";
- $sqlTemp.=" ,sum(case when tdwk.`status`>=2 then 1 else 0 end) as enrollTotal ";
- $sqlTemp.=" ,sum(case when tdwk.`status`=1 then 1 else 0 end) as enrollUnauditTotal ";
- $sqlTemp.=" ,sum(case when tdwk.`status`=4 then 1 else 0 end) as waitSettledTotal ";
- $sqlTemp.=" ,sum(case when tdwk.`status`=5 then 1 else 0 end) as settledTotal ";
- $sqlTemp.=" ,sum(case when tdwk.`status`<0 then 1 else 0 end) as exceptTotal ";
- $sqlTemp.=" ,sum(case when tdwk.`status`=-1 then 1 else 0 end) as refuseTotal ";
- $sqlTemp.=" ,sum(case when tdwk.`status`=-3 then 1 else 0 end) as breakoffTotal ";
- $sqlTemp.=" ,sum(case when tdwk.`status`=-2 then 1 else 0 end) as cancelTotal ";
- $sqlTemp.=" ,sum(case when tdwk.`status`=-4 then 1 else 0 end) as cancel2Total ";
- $sqlTemp.=" ,sum(case when (tdwk.`status`=-5 or tdwk.`status`=-8) then 1 else 0 end) as denypayTotal ";
- $sqlTemp.=" ,sum(case when tdwk.`status`=-6 then 1 else 0 end) as noStartWorkTotal ";
- $sqlTemp.=" ,sum(case when tdwk.`status`=-7 then 1 else 0 end) as noFinishWorkTotal ";
- for($iii=$unreadStatusMin;$iii<=$unreadStatusMax;$iii++){
- $iiiExt=$iii<0?"_".abs($iii):$iii;
- $alias="{$unreadStatusPrefix}{$iiiExt}";
- $sqlTemp.=" ,sum(case when (tdwk.`status`={$iii} and !FIND_IN_SET(tdwk.`status`, tdwk.trader_readed)) then 1 else 0 end) as {$alias} ";
- }
- $sqlTemp.=" from biz_todowork tdwk ";
- $sqlTemp.=" inner join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid ";
- $sqlTemp.=" where btr.biz_traderid=".intval($bizTrader["id"]);
- $sqlTemp.=" group by tdwk.biz_recruitid";
- $sqlTemp.=" ) as temp;";
- $totalInfo = pdo_fetch($sqlTemp, array());
- $workTotal=intval($totalInfo["workTotal"]);
- $enrollUnauditTotal=intval($totalInfo["enrollUnauditTotal"]);
- $enrollTotal=intval($totalInfo["enrollTotal"]);
- $waitSettledTotal=intval($totalInfo["waitSettledTotal"]);
- $settledTotal=intval($totalInfo["settledTotal"]);
- $backdata=array(
- "recuritTotal" => $recuritTotal,
- "need_total" => $need_total,
- "refuseTotal" => $refuseTotal,
- "unauditedTotal" => $unauditedTotal,
- "auditedTotal" => $auditedTotal,
- "auditedTotal2" => $auditedTotal2,
- "workTotal" => $workTotal,
- "enrollUnauditTotal" => $enrollUnauditTotal,
- "enrollTotal" => $enrollTotal,
- "waitSettledTotal" => $waitSettledTotal,
- "settledTotal" => $settledTotal,
- "exceptTotal" => intval($totalInfo["exceptTotal"]),
- "refuseTotal" => intval($totalInfo["refuseTotal"]),
- "breakoffTotal" => intval($totalInfo["breakoffTotal"]),
- "cancelTotal" => intval($totalInfo["cancelTotal"]),
- "cancel2Total" => intval($totalInfo["cancel2Total"]),
- "denypayTotal" => intval($totalInfo["denypayTotal"]),
- "noStartWorkTotal" => intval($totalInfo["noStartWorkTotal"]),
- "noFinishWorkTotal" => intval($totalInfo["noFinishWorkTotal"]),
- "othersTotal" => intval($totalInfo["noStartWorkTotal"])+intval($totalInfo["noFinishWorkTotal"]),
- "exceptTotal2" => intval($totalInfo["refuseTotal"])+intval($totalInfo["breakoffTotal"])
- +intval($totalInfo["cancelTotal"])+intval($totalInfo["cancel2Total"])+intval($totalInfo["denypayTotal"]),
- );
- $aliasALL="{$unreadStatusPrefix}_ALL";
- $backdata[$aliasALL]=0;
- $aliasOther="{$unreadStatusPrefix}_Other";
- $backdata[$aliasOther]=0;
- for($iii=$unreadStatusMin;$iii<$unreadStatusMax;$iii++){
- $iiiExt=$iii<0?"_".abs($iii):$iii;
- $alias="{$unreadStatusPrefix}{$iiiExt}";
- $backdata[$alias]=intval($totalInfo[$alias]);
- if($iii<0) $backdata[$aliasALL]+=intval($totalInfo[$alias]);
- if($iii==-6) $backdata[$aliasOther]+=intval($totalInfo[$alias]);
- if($iii==-7) $backdata[$aliasOther]+=intval($totalInfo[$alias]);
- }
- $backdata["{$unreadStatusPrefix}_5"]=intval($backdata["{$unreadStatusPrefix}_5"])+intval($backdata["{$unreadStatusPrefix}_8"]);
- return $backdata;
- }
- function bizbase_traderUndoList($bizTrader){
- $backdata=array();
- $backdata["notice_unreaded"]=intval(pdo_fetchcolumn("select count(*) from biz_pubic_notice bpn
- left join biz_basetrace bbt on bbt.deleted=0 and bbt.biz_catalog=1 and bbt.biz_id=bpn.id and bbt.biz_usertype=1 and bbt.biz_userid=".intval($bizTrader["id"])."
- where bpn.deleted=0 and bpn.catalog=2
- and ifnull(bbt.id,0)<=0;"));
- $backdata["recurited_unreaded"]=intval(pdo_fetchcolumn("select count(*) from biz_trader_recruit btr
- left join biz_basetrace bbt on bbt.deleted=0 and bbt.biz_catalog=2 and bbt.biz_id=btr.id and bbt.biz_usertype=1 and bbt.biz_userid=".intval($bizTrader["id"])."
- where btr.deleted=0 and btr.biz_traderid=".intval($bizTrader["id"])." and btr.`status`=2
- and ifnull(bbt.id,0)<=0;"));
- return $backdata;
- }
- function bizbase_traderAboutQuery($fromSubSystem, $baseUser, $bizUser, $handleMode, $pageIndex, $pageSize, $ajaxdata, $GPC){
- if(intval($baseUser["subsystem"])==SUBSYS_LABOUR_MINA) $bizWorker = $bizUser;
- if(intval($baseUser["subsystem"])==SUBSYS_CAPITAL_MINA) $bizTrader = $bizUser;
- if(intval($baseUser["subsystem"])==SUBSYS_CAPITAL2_MINA) $bizTrader2 = $bizUser;
- switch($handleMode){
- case "fetchall":
- $orderby = isset($ajaxdata["orderby"]) ? $ajaxdata["orderby"] : $GPC["orderby"];
- switch(intval($orderby)){
- case 1:
- $orderby=" order by recruit_auditedtotal desc ";
- break;
- case 2:
- $orderby=" order by recruit_needtotal desc ";
- break;
- case 3:
- $orderby=" order by charge_total desc ";
- break;
- case 4:
- $orderby=" order by work_excepttotal desc ";
- break;
- default:
- $orderby=" order by bt.id desc ";
- break;
- }
- $sqlParam=array();
- $sqlBody="";
- $queryBreak=" and 1=1 ";
- //查询处理
- $query = isset($ajaxdata["query"]) ? $ajaxdata["query"] : $GPC["query"];
- if (empty($query) && !is_array($query)){//验证一下query信息集
- $query=" and 1=1 ";
- }else{
- $queryNew=" and 1=1 ";
- foreach($query as $fdName=>$fdValue){
- if(empty($fdName) || empty($fdValue)) continue;
- switch($fdName){
- case "need_operate":
- if($fdValue == 1){
- $queryNew .=" and (lawer_idcard != '' and ((catalog = '0' and (certif_confirmed = '0' or (certif_confirmed = '1' && company_idcard !=''))) or (catalog = '1' and certif_confirmed = '0')))";
- }
- break;
- case "companyName":
- $paramName = ":qy_companyName";
- $queryNew .=" and (bt.company_name like concat('%',{$paramName},'%') ) ";
- $sqlParam[$paramName] = $fdValue;
- break;
- case "lawerIdcard":
- $paramName = ":qy_lawer_idcard";
- $queryNew .=" and (bt.lawer_idcard like concat('%',{$paramName},'%') ) ";
- $sqlParam[$paramName] = $fdValue;
- break;
- case "companyIdcard":
- $paramName = ":qy_company_idcard";
- $queryNew .=" and (bt.company_idcard like concat('%',{$paramName},'%') ) ";
- $sqlParam[$paramName] = $fdValue;
- break;
- case "mobile":
- $paramName = ":qy_mobile";
- $queryNew .=" and (bu.mobile like concat('%',{$paramName},'%') ) ";
- $sqlParam[$paramName] = $fdValue;
- break;
- case "regtime":
- $paramName111 = ":qy_regtime111";
- $paramName222 = ":qy_regtime222";
- $sqlParam[$paramName111] = strtotime($fdValue);
- $sqlParam[$paramName222] = strtotime(date("Y-m-d 23:59:59",strtotime($fdValue)));
- $queryNew .=" and ( bt.createtime >= {$paramName111} and bt.createtime <= {$paramName222} ) ";
- break;
- case "stoped":
- switch(intval($fdValue)){
- case 1:
- $queryNew .=" and ( bt.hanging<=1 || ((bt.hanging=2 or bt.hanging=3) and bt.hanging_endtime<".time()." )) ";
- break;
- case 2:
- $queryNew .=" and ( bt.hanging=4 || ((bt.hanging=2 or bt.hanging=3) and bt.hanging_endtime>=".time()." )) ";
- break;
- }
- break;
- case "blocked":
- // if (intval($fdValue) > 0){
- // $queryNew .=" and bt.blocked=".(intval($fdValue)-1);
- // }
- // 阿东修改上面注释是原来的代码
- if (intval($fdValue) > 0){
- if($fdValue == 1){
- $queryNew .=" and bt.hanging = 0";
- }elseif ($fdValue == 2){
- $queryNew .=" and bt.hanging = 4";
- }
- }
- break;
- case "debted":
- switch(intval($fdValue)){
- case 1:
- $queryNew .=" and ( select ifnull(sum((case when type=0 then ifnull(money,0) when type=1 then -ifnull(money,0) else 0 end)),0) as total from biz_trader_account where biz_roletype=0 and biz_traderid=bt.id and `deleted`=0 and `status`=1 )>=0 ";
- break;
- case 2:
- $queryNew .=" and ( select ifnull(sum((case when type=0 then ifnull(money,0) when type=1 then -ifnull(money,0) else 0 end)),0) as total from biz_trader_account where biz_roletype=0 and biz_traderid=bt.id and `deleted`=0 and `status`=1 )<0 ";
- break;
- }
- break;
- case "breakType":
- if (intval($fdValue) > 0){
- $queryBreak .= " and catalog=" . (intval($fdValue) - 1);
- $queryNew .=" and (select count(*) from biz_trader_breaklaw where biz_traderid=bt.id $queryBreak )>0 ";
- }
- break;
- case "statusCode":
- $queryNew .= " and bt.status =" . (intval($fdValue) - 1) . " ";
- break;
- case "catalog":
- $queryNew .= " and bt.catalog =" . (intval($fdValue) - 1) . " ";
- break;
- case "certif_confirmed":
- $queryNew .= " and bt.certif_confirmed =" . (intval($fdValue) - 1) . " ";
- break;
- case "upgrade_unaudit":
- $queryNew .= " and bt.catalog=0 and bt.certif_confirmed=1 and bt.bizlicense_pic<>'' ";
- break;
- }
- }
- $query=$queryNew;
- }
- //构建sql串
- $sqlBody.=" from biz_trader as bt ";
- $sqlBody.=" left join base_user bu on bu.id=bt.base_userid ";
- $sqlBody.=" where 1=1 and bt.`deleted`=0 ".$query;
- //查询sql及统计sql
- $start = (intval($pageIndex) - 1) * $pageSize;
- $sqlFetch=" select bt.*,bu.mobile as bu_mobile ";
- $sqlFetch.=" ,(select count(*) from biz_trader_breaklaw where biz_traderid=bt.id $queryBreak ) as break_total ";
- $sqlFetch.=" ,(select count(*) from biz_trader_recruit where biz_traderid=bt.id and `status`>=1 ) as recruit_auditedtotal ";
- $sqlFetch.=" ,(select ifnull(sum(need_total),0) from biz_trader_recruit where biz_traderid=bt.id and `status`>=1 ) as recruit_needtotal ";
- $sqlFetch.=" ,(select ifnull(sum(money),0) from biz_trader_account where deleted=0 and `status`=1 and biz_traderid=bt.id and type=0 and biz_catalog=2 ) as charge_total ";
- $sqlFetch.=" ,(select count(*) from biz_todowork tdwk inner join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid where btr.biz_traderid=bt.id and tdwk.`status`<0 ) as work_excepttotal ";
- $sqlFetch.=" {$sqlBody} {$orderby} limit {$start},{$pageSize} ";
- $pageData = pdo_fetchall($sqlFetch, $sqlParam);
- foreach($pageData as &$item){
- $item["regtime"]=date("Y-m-d",$item["createtime"]);
- $accountInfo=bizbase_traderAccountInfo($item);
- foreach ($accountInfo as $key => $value) $item["finance_".$key] = $value;
- $statistics=bizbase_traderStatistics($item);
- foreach ($statistics as $key => $value) $item["ss_".$key] = $value;
- }
- $sqlSummary=" select count(*) as count ".$sqlBody;
- $sumData=pdo_fetch($sqlSummary,$sqlParam);
- return array(
- "pageData" => $pageData,
- "count" => intval($sumData["count"]),
- );
- break;
- default: throw new GeneralException("","不支持的handleMode!");
- }
- }
- /**********************现场经理信息相关逻辑**************************************/
- function bizbase_trader2EntityHandle($fromSubSystem, $baseUser, $bizUser, $handleMode, $ajaxdata, $GPC){
- if(intval($baseUser["subsystem"])==SUBSYS_LABOUR_MINA) $bizWorker = $bizUser;
- if(intval($baseUser["subsystem"])==SUBSYS_CAPITAL_MINA) $bizTrader = $bizUser;
- if(intval($baseUser["subsystem"])==SUBSYS_CAPITAL2_MINA) $bizTrader2 = $bizUser;
- switch($handleMode){
- case "wxRecharge":
- $minaCode = isset($ajaxdata["minaCode"]) ? $ajaxdata["minaCode"] : $GPC["minaCode"];
- if (empty(trim($minaCode))) throw new GeneralException("", "没有传递必要的minaCode参数");
- $bizTraderId = isset($ajaxdata["bizTraderId"]) ? $ajaxdata["bizTraderId"] : $GPC["bizTraderId"];
- if (intval($bizTraderId) <= 0) throw new GeneralException("", "没有传递必要的bizTraderId参数");
- $money = isset($ajaxdata["money"]) ? $ajaxdata["money"] : $GPC["money"];
- $money = round(floatval($money), 2);
- if ($money <= 0) throw new GeneralException("", "没有传递必要的money参数或小于等于0了");
- $sqlParam=array();
- $sqlParam[":nowtime"]=time();
- $sqlParam[":biz_traderid"]=$bizTraderId;
- $sqlParam[":biz_roletype"]=1;
- $sqlParam[":biz_userid"]=$bizTrader2["id"];
- $sqlParam[":type"]=0;//收支类型:0-收入;1-支出;
- $sqlParam[":money"]=$money; //收入:0-次数支付;1-支付工单;
- $sqlParam[":biz_catalog"] = 2; //微信支付充值
- $sqlParam[":biz_id"] = 0;
- $sqlParam[":remark"] = "现场经理直接微信支付充值";
- $sqlTemp="";
- $sqlTemp.=" insert into biz_trader_account set createtime=:nowtime";
- $sqlTemp.=" ,biz_traderid=:biz_traderid, biz_roletype=:biz_roletype, biz_userid=:biz_userid ";
- $sqlTemp.=" ,type=:type, `money`=:money";
- $sqlTemp.=" ,biz_catalog=:biz_catalog, biz_id=:biz_id ";
- $sqlTemp.=" ,`status`=0, remark=:remark;";//统一固定的工单支付ID,避免重复支付 增加一个paytag
- $sqlTemp.=" update biz_trader_account set biz_idtag=concat('WXCGX',id,'EE',paytag) where id=LAST_INSERT_ID();";
- $sqlTemp.=" select * from biz_trader_account where id=LAST_INSERT_ID();";
- $dataset = pdo_query3($sqlTemp, $sqlParam);
- $bizInfo= $dataset[count($dataset)-1][0];
- if (empty($bizInfo)) throw new GeneralException("", "构建预支付订单异常");
- $payBizCatalog = 2; //微信支付充值
- $payBizId = $bizInfo["id"];
- $payScene = "JSAPI";
- $prePayArgs = array(
- "payBackBizCatalog" => $payBizCatalog,
- "payBackBizId" => $payBizId,
- "payScene" => $payScene,
- );
- require_once WEB_PHY_ROOT."/base/wxsrv.php";
- $resObj = bizwx_fetchMinaOpenidCore(SUBSYS_CAPITAL_MINA);
- $wxmina_appid = $resObj["wxmina_appid"];
- $wxmina_openid = $resObj["openid"];
- $bizArgs=array(
- "minaCode"=>$minaCode,
- "bizInfo"=>$bizInfo,
- "handleMode"=>$handleMode,
- "bizUser"=>$bizUser,
- "wxmina_appid"=>$wxmina_appid,
- "wxmina_openid"=>$wxmina_openid,
- );
- $prePayInfo=bizbase_traderPayCore($prePayArgs, $bizArgs);
- //不会出现重复订单
- $prePayInfo =array_merge($prePayArgs, $prePayInfo);
- return array(
- "prePayInfo" => $prePayInfo,
- );
- break;
- default:
- throw new GeneralException("","不支持的handleMode!");
- }
- }
- function bizbase_trader2PayCore($prePayArgs, $bizArgs){
- require_once WEB_PHY_ROOT."/base/wxsrv.php";
- $prePayInfo=weixin_prepayBuildV3($prePayArgs,$bizArgs,function($bizCatalog, $bizId, $bizArgs){
- $minaCode = $bizArgs["minaCode"];
- $bizInfo = $bizArgs["bizInfo"];
- $handleMode = $bizArgs["handleMode"];
- $bizUser = $bizArgs["bizUser"];
- $wxmina_appid = $bizArgs["wxmina_appid"];
- $wxmina_openid = $bizArgs["wxmina_openid"];
- //---------------------------------------
- $payTotal = round(floatval($bizInfo["money"]), 2);
- if ($payTotal <= 0) throw new GeneralException("", "金额竟然小于等于0");
- $payTotal = $payTotal * 100;//转为分
- //---------------------------------------
- $sqlParam=array();
- $sqlParam[":id"]=intval($bizInfo["id"]);
- $sqlParam[":wxmina_appid"]=$wxmina_appid;
- $sqlParam[":wxmina_openid"]=$wxmina_openid;
- $sqlTemp=" update biz_trader_account set";
- $sqlTemp.=" wxmina_appid=:wxmina_appid,wxmina_openid=:wxmina_openid ";
- $sqlTemp.=" where id=:id; ";
- $dataset = pdo_query3($sqlTemp, $sqlParam);
- //---------------------------------------
- $prePayInfo= array();
- $prePayInfo["appid"]=$wxmina_appid;
- $prePayInfo["mchId"]=WeiXinPay_mchId;
- $prePayInfo["mch_paykeyV2"]=WeiXinPay_apiKey;
- $prePayInfo["mch_paykeyV3"]=WeiXinPay_apiKeyV3;
- $prePayInfo["out_trade_no"]=$bizInfo["biz_idtag"];
- $prePayInfo["total"]="{$payTotal}";
- $prePayInfo["description"]="现场经理充值支付业务";
- $prePayInfo["openid"]=$wxmina_openid;
- return $prePayInfo;
- });
- return $prePayInfo;
- }
- function bizbase_trader2FieldTrans($fromSubSystem,$direct,$data){
- if($direct=="FtoB"){//前端到后端数据转换
- //throw new GeneralException("", "平台侧没有更新商户信息的权限!");
- }else{//后端到前端数据转换
- $data["linker_gender"] = (intval($data["linker_gender"]) < 0) ?"":(intval($data["linker_gender"]) == 0 ? "男" : "女");
- $data["createtime"] = date("Y-m-d",$data["createtime"]);
- }
- return $data;
- }
- function bizbase_trader2StatusName($statusCode){
- switch(intval($statusCode)){
- case 0:
- $statusName="待提交";
- break;
- case 1:
- $statusName="待审核";
- break;
- case 2:
- $statusName="已审核";
- break;
- case 3:
- $statusName="被驳回";
- break;
- default:
- throw new GeneralException("", "商家信息的状态码不正确!!");
- }
- return $statusName;
- }
- function bizbase_trader2AboutQuery($fromSubSystem, $baseUser, $bizUser, $handleMode, $pageIndex, $pageSize, $ajaxdata, $GPC){
- if(intval($baseUser["subsystem"])==SUBSYS_LABOUR_MINA) $bizWorker = $bizUser;
- if(intval($baseUser["subsystem"])==SUBSYS_CAPITAL_MINA) $bizTrader = $bizUser;
- if(intval($baseUser["subsystem"])==SUBSYS_CAPITAL2_MINA) $bizTrader2 = $bizUser;
- switch($handleMode){
- case "fetchallByPlater":
- case "fetchallByTrader":
- $sqlParam=array();
- $verifyTime=0;
- //查询处理
- $query = isset($ajaxdata["query"]) ? $ajaxdata["query"] : $GPC["query"];
- if (empty($query) && !is_array($query)){//验证一下query信息集
- $query=" and 1=1 ";
- }else{
- $queryNew=" and 1=1 ";
- foreach($query as $fdName=>$fdValue){
- if(empty($fdName) || empty($fdValue)) continue;
- switch($fdName){
- case "memberName":
- if(empty(trim($fdValue))) continue;
- $paramName = ":qy_truename";
- $queryNew .=" and (bt2.true_name like concat('%',{$paramName},'%') ) ";
- $sqlParam[$paramName] = $fdValue;
- break;
- case "verifyTime":
- $verifyTime = strtotime($fdValue);
- break;
- }
- }
- $query=$queryNew;
- }
- if(!empty($bizTrader)){
- $query .= " and (select count(*) from biz_recruit_delegate brd ";
- $query .= " where brd.biz_trader2id=bt2.id and brd.biz_traderid=" . intval($bizTrader["id"])." ";
- if ($verifyTime > 0) $query .= " and brd.finish_datetime>=" . $verifyTime . " ";
- $query .= " )>0 ";
- }
- //排序处理
- $orderby = isset($ajaxdata["orderby"]) ? $ajaxdata["orderby"] : $GPC["orderby"];
- switch(intval($orderby)) {
- default://0-默认时间倒序
- $orderby=" order by bt2.id desc ";
- break;
- }
- //构建sql串
- $sqlBody="";
- $sqlBody.=" from biz_trader2 bt2 ";
- $sqlBody.=" left join base_user bt2bu on bt2bu.id=bt2.base_userid ";
- $sqlBody.=" where 1=1 ".$query;
- //查询sql及统计sql
- $start = (intval($pageIndex) - 1) * $pageSize;
- $sqlFetch =" select bt2.*,bt2bu.mobile as bt2bu_mobile ";
- $sqlFetch.=" ,(select count(*) from biz_recruit_delegate brd ";
- $sqlFetch .= " where brd.biz_trader2id=bt2.id and brd.finish_datetime>=" . time()." ) as delegate_nowtotal";
- $sqlFetch.=" ,(select count(*) from biz_recruit_delegate brd ";
- $sqlFetch .= " where brd.biz_trader2id=bt2.id and brd.finish_datetime>=" . intval($verifyTime)." ) as delegate_mantotal";
- $sqlFetch.=" {$sqlBody} {$orderby} limit {$start},{$pageSize} ";
- $pageData = pdo_fetchall($sqlFetch, $sqlParam);
- foreach($pageData as &$data){ //数据转换/映射
- $data["createtime"] = date("Y-m-d H:i:s", $data["createtime"]);
- $data["remark"]=trim(explode("\n",$data["remark"])[0]);
- }
- $sqlSummary=" select count(*) as count ".$sqlBody.";";
- $sumData=pdo_fetch($sqlSummary,$sqlParam);
- return array(
- "pageData" => $pageData,
- "count" => intval($sumData["count"]),
- );
- break;
- default: throw new GeneralException("","不支持的handleMode!");
- }
- }
- /**********************商家服务信息相关逻辑**************************************/
- function bizbase_traServiceEntityHandle($fromSubSystem, $baseUser, $bizUser, $handleMode, $ajaxdata, $GPC){
- if(intval($baseUser["subsystem"])==SUBSYS_LABOUR_MINA) $bizWorker = $bizUser;
- if(intval($baseUser["subsystem"])==SUBSYS_CAPITAL_MINA) $bizTrader = $bizUser;
- if(intval($baseUser["subsystem"])==SUBSYS_CAPITAL2_MINA) $bizTrader2 = $bizUser;
- switch($handleMode){
- case "fetch":
- $bizId = isset($ajaxdata["bizId"]) ? $ajaxdata["bizId"] : $GPC["bizId"];
- if (empty($bizId)) throw new GeneralException("", "没有传递必要的bizId参数");
- $backdata = pdo_fetch("select * from biz_trader_service where id=" . intval($bizId));
- if(empty($backdata)) throw new GeneralException("", "无此记录,请核查bizId是否正确!");
- if (intval($backdata["deleted"]) != 0) throw new GeneralException("", "此记录已删除了,请核查后再处理!");
- //数据转换 //属性映射
- $backdata["profile_photos"]=json_decode($backdata["profile_photos"],true);
- return $backdata;
- break;
- case "delete":
- $reason = isset($ajaxdata["reason"]) ? $ajaxdata["reason"] : $GPC["reason"];
- $bizId = isset($ajaxdata["bizId"]) ? $ajaxdata["bizId"] : $GPC["bizId"];
- if (empty($bizId)) throw new GeneralException("", "没有传递必要的bizId参数");
- $backdata = pdo_fetch("select * from biz_trader_service where id=" . intval($bizId));
- if(empty($backdata)) throw new GeneralException("", "无此记录,请核查bizId是否正确!");
- if (intval($backdata["deleted"]) != 0) throw new GeneralException("", "此记录已删除了,请核查后再处理!");
- $sqlParam=array();
- $sqlParam[":id"]=intval($backdata["id"]);
- $sqlParam[":nowtime"]=time();
- $sqlParam[":remark"]="[".date("Y-m-d H:i:s",time())."] 删除记录 {$reason} ";
- $sqlTemp=" update biz_trader_service set";
- $sqlTemp.=" updatetime=:nowtime,deleted=1,remark=concat(:remark,ifnull(remark,'')) ";
- $sqlTemp.=" where id=:id; ";
- $backdata = pdo_query($sqlTemp, $sqlParam);
- return $backdata;
- break;
- case "upsert":
- if(intval($baseUser["subsystem"]!=intval(SUBSYS_PLAT_PCWEB))) throw new GeneralException("", "只能是平台发布商家服务信息");
- $bizData = isset($ajaxdata["bizData"]) ? $ajaxdata["bizData"] : $GPC["bizData"];
- if (empty($bizData)) throw new GeneralException("", "没有传递必要的bizData参数");
- /***字段参数收集并校验**start***/
- $saveData=array();
- $saveData["title"]=trim($bizData["title"]);
- if(empty($saveData["title"])) throw new GeneralException("","标题必填");
- $saveData["title2"]=trim($bizData["title2"]);
- $saveData["profile_photo"]=trim($bizData["profile_photo"]);
- $saveData["profile_photos"]=json_encode($bizData["profile_photos"]);
- $saveData["price"] = round(floatval($bizData["price"]), 2);
- $saveData["content"]=trim($bizData["content"]);
- $saveData["company_name"]=trim($bizData["company_name"]);
- $saveData["linker_name"]=trim($bizData["linker_name"]);
- $saveData["linker_phone"]=trim($bizData["linker_phone"]);
- $saveData["company_addr"]=trim($bizData["company_addr"]);
- $saveData["remark"]=trim($bizData["remark"]);
- /***字段参数收集并校验**finish***/
- if(intval($bizData["id"])<=0){
- $saveData["createtime"]=time();
- $insertId = pdo_insert("biz_trader_service",$saveData);
- if (intval($insertId)<=0) throw new GeneralException("", "没有返回insertId,插入失败!");
- return $insertId;
- }else{
- $oldData = pdo_fetch("select `id` from biz_trader_service where id=" . intval($bizData["id"]));
- if (empty($oldData)) throw new GeneralException("", "此id对应的记录不存在,请核查bizId是否正确!");
- $saveData["updatetime"]=time();
- $backdata = pdo_update("biz_trader_service", $saveData,array("id"=>$bizData["id"]));
- return $backdata;
- }
- break;
- default:
- throw new GeneralException("","不支持的handleMode!");
- }
- }
- function bizbase_traServiceAboutQuery($fromSubSystem, $baseUser, $bizUser, $handleMode, $pageIndex, $pageSize, $ajaxdata, $GPC){
- if(intval($baseUser["subsystem"])==SUBSYS_LABOUR_MINA) $bizWorker = $bizUser;
- if(intval($baseUser["subsystem"])==SUBSYS_CAPITAL_MINA) $bizTrader = $bizUser;
- if(intval($baseUser["subsystem"])==SUBSYS_CAPITAL2_MINA) $bizTrader2 = $bizUser;
- switch($handleMode){
- case "fetchallByPlater":
- case "fetchallByTrader":
- $sqlParam=array();
- $verifyTime=0;
- //查询处理
- $query = isset($ajaxdata["query"]) ? $ajaxdata["query"] : $GPC["query"];
- if (empty($query) && !is_array($query)){//验证一下query信息集
- $query=" and 1=1 ";
- }else{
- $queryNew=" and 1=1 ";
- foreach($query as $fdName=>$fdValue){
- if(empty($fdName) || empty($fdValue)) continue;
- switch($fdName){
- case "companyName":
- if(empty(trim($fdValue))) continue;
- $paramName = ":qy_companyName";
- $queryNew .=" and (bts.company_name like concat('%',{$paramName},'%') ) ";
- $sqlParam[$paramName] = $fdValue;
- break;
- case "title":
- $paramName = ":qy_title";
- $queryNew .=" and (bts.title like concat('%',{$paramName},'%') ) ";
- $sqlParam[$paramName] = $fdValue;
- break;
- }
- }
- $query=$queryNew;
- }
- //排序处理
- $orderby = isset($ajaxdata["orderby"]) ? $ajaxdata["orderby"] : $GPC["orderby"];
- switch(intval($orderby)) {
- default://0-默认时间倒序
- $orderby=" order by bts.id desc ";
- break;
- }
- //构建sql串
- $sqlBody="";
- $sqlBody.=" from biz_trader_service bts ";
- $sqlBody.=" where 1=1 and `deleted`=0 ".$query;
- //查询sql及统计sql
- $start = (intval($pageIndex) - 1) * $pageSize;
- $sqlFetch =" select bts.* ";
- $sqlFetch.=" {$sqlBody} {$orderby} limit {$start},{$pageSize} ";
- $pageData = pdo_fetchall($sqlFetch, $sqlParam);
- foreach($pageData as &$data){ //数据转换/映射
- $data["createtime"] = date("Y-m-d H:i:s", $data["createtime"]);
- $data["profile_photos"]=json_decode($data["profile_photos"],true);
- $data["remark"]=trim(explode("\n",$data["remark"])[0]);
- }
- $sqlSummary=" select count(*) as count ".$sqlBody.";";
- $sumData=pdo_fetch($sqlSummary,$sqlParam);
- return array(
- "pageData" => $pageData,
- "count" => intval($sumData["count"]),
- );
- break;
- default: throw new GeneralException("","不支持的handleMode!");
- }
- }
|