AboutTrader.php 67 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155
  1. <?php
  2. defined('ONLY_ONLY_ONLY') or exit('Access Denied');
  3. /*****************资方商家用工方劳务代理相关******************/
  4. function bizTrader_verifyToken(){
  5. $subSystem=intval(SUBSYS_CAPITAL_MINA);
  6. $GPC=input_param_handle(false);
  7. $ajaxdata = input_getPostObj();
  8. $phone=isset($ajaxdata["phone"])?$ajaxdata["phone"]:$GPC["phone"];
  9. if(empty($phone)) throw new GeneralException("","没有传递必要的phone参数");
  10. $baseUser=pdo_fetch("select * from base_user where subsystem=:subsystem and `mobile`=:mobile limit 1;",array(
  11. ":subsystem"=>intval($subSystem),
  12. ":mobile"=>trim($phone),
  13. ));
  14. if(empty($baseUser)) throw new GeneralException("","没有定位到此phone的登录用户记录!");
  15. $bizTrader=pdo_fetch("select bt.*,bu.id as buid,bu.mobile,bu.subsystem
  16. from biz_trader bt
  17. left join base_user bu on bu.id=bt.base_userid
  18. where bt.base_userid=:base_userid limit 1;",array(":base_userid"=>$baseUser["id"]));
  19. if(empty($bizTrader)) throw new GeneralException("","没有定位到此phone的业务用户记录!");
  20. base_verifyForendToken($baseUser); //前端会话TOKEN校验
  21. return array("baseUser" => $baseUser, "bizTrader" => $bizTrader);
  22. }
  23. function bizTrader2_verifyToken(){
  24. $subSystem=intval(SUBSYS_CAPITAL2_MINA);
  25. $GPC=input_param_handle(false);
  26. $ajaxdata = input_getPostObj();
  27. $phone=isset($ajaxdata["phone"])?$ajaxdata["phone"]:$GPC["phone"];
  28. if(!empty($phone)){
  29. $baseUser=pdo_fetch("select * from base_user where subsystem=:subsystem and `mobile`=:mobile limit 1;",array(
  30. ":subsystem"=>intval($subSystem),
  31. ":mobile"=>trim($phone),
  32. ));
  33. if(empty($baseUser)) throw new GeneralException("","没有定位到此phone的登录用户记录!");
  34. }else{
  35. $openid=isset($ajaxdata["openid"])?$ajaxdata["openid"]:$GPC["openid"];
  36. if(empty($openid)) throw new GeneralException("","没有传递必要的phone/openid参数");
  37. $wxParams = bizwx_fetchWxParams($subSystem);
  38. $mina_appid=$wxParams["mina_appid"];
  39. $baseUser=pdo_fetch("select * from base_user
  40. where subsystem=:subsystem and `wxmina_appid`=:wxmina_appid and `wxmina_openid`=:wxmina_openid limit 1;",array(
  41. ":subsystem"=>intval($subSystem),
  42. ":wxmina_appid"=>trim($mina_appid),
  43. ":wxmina_openid"=>trim($openid),
  44. ));
  45. if(empty($baseUser)) throw new GeneralException("","没有定位到此openid的登录用户记录!");
  46. }
  47. base_verifyForendToken($baseUser); //前端会话TOKEN校验
  48. $bizTrader2=pdo_fetch("select bt.*,bu.id as buid,bu.mobile
  49. from biz_trader2 bt
  50. left join base_user bu on bu.id=bt.base_userid
  51. where bt.base_userid=:base_userid limit 1;",array(":base_userid"=>$baseUser["id"]));
  52. if(empty($bizTrader2)) throw new GeneralException("","没有定位到此phone的业务用户记录!");
  53. return array("baseUser" => $baseUser, "bizTrader2" => $bizTrader2);
  54. }
  55. function bizTrader2_verifyRecuritDelegate($bizTrader2, $recuritId){
  56. $delegate = pdo_fetch("select * from biz_recruit_delegate brd
  57. where brd.biz_recruitid=:biz_recruitid and brd.biz_trader2id=:biz_trader2id
  58. and brd.finish_datetime>:verify_datetime", array(
  59. ":biz_recruitid" => intval($recuritId),
  60. ":biz_trader2id" => intval($bizTrader2["id"]),
  61. ":verify_datetime" => strtotime("+5minute"),
  62. ));
  63. if(empty($delegate)) throw new GeneralException("","您对此招聘活动没有委托管理权,或授权已过期!");
  64. }
  65. function bizTrader2_getRecuritDelegate($recuritId){
  66. $delegateList = pdo_fetchall("select brd.*,btr.title as recuritTitle,bt.company_name
  67. from biz_recruit_delegate brd
  68. left join biz_trader_recruit btr on btr.id=brd.biz_recruitid
  69. left join biz_trader bt on bt.id=btr.biz_traderid
  70. where brd.biz_recruitid=:biz_recruitid and brd.finish_datetime>:verify_datetime", array(
  71. ":biz_recruitid" => intval($recuritId),
  72. ":verify_datetime" => strtotime("-0 second"),
  73. ));
  74. if(count($delegateList)>0){
  75. if (count($delegateList) > 1) throw new GeneralException("", "此招聘活动怎么出现了同时多个委托项呢!");
  76. return $delegateList[0];
  77. }
  78. return null;
  79. }
  80. /**********************商家信息相关逻辑**************************************/
  81. function bizbase_traderEntityHandle($fromSubSystem, $baseUser, $bizUser, $handleMode, $ajaxdata, $GPC){
  82. if(intval($baseUser["subsystem"])==SUBSYS_LABOUR_MINA) $bizWorker = $bizUser;
  83. if(intval($baseUser["subsystem"])==SUBSYS_CAPITAL_MINA) $bizTrader = $bizUser;
  84. if(intval($baseUser["subsystem"])==SUBSYS_CAPITAL2_MINA) $bizTrader2 = $bizUser;
  85. switch($handleMode){
  86. case "fetchByPlater":
  87. case "fetchByTrader":
  88. case "fetchByTrader2":
  89. case "fetchByWorker":
  90. if(!empty($bizTrader))
  91. $traderId = $bizTrader["id"];
  92. else $traderId = isset($ajaxdata["traderId"]) ? $ajaxdata["traderId"] : $GPC["traderId"];
  93. $sqlTemp = " select bt.*,bu.mobile as bu_mobile,bu.subsystem as subsystem,bu.wxapp_appid,bu.wxapp_openid,bu.wxmina_appid,bu.wxmina_openid ";
  94. $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 ";
  95. $sqlTemp .= " from biz_trader bt";
  96. $sqlTemp .= " left join base_user bu on bu.id =bt.base_userid";
  97. $sqlTemp .= " where bt.id=:bizUserId limit 1;";
  98. $bizTrader = pdo_fetch($sqlTemp, array(":bizUserId" => $traderId));
  99. if(empty($bizTrader)) throw new GeneralException("", "没有传递必要的traderId参数或没有对应的记录,请核查!");
  100. $bizTrader["regtime"]=date("Y-m-d",$bizTrader["createtime"]);
  101. $bizTrader["trader_appraisal_avg"]=round($bizTrader["trader_appraisal_avg"],1);
  102. $accountInfo=bizbase_traderAccountInfo($bizTrader);
  103. foreach ($accountInfo as $key => $value) $bizTrader["finance_".$key] = $value;
  104. $statistics=bizbase_traderStatistics($bizTrader);
  105. foreach ($statistics as $key => $value) $bizTrader["ss_".$key] = $value;
  106. $uodoList=bizbase_traderUndoList($bizTrader);
  107. foreach ($uodoList as $key => $value) $bizTrader["ss_".$key] = $value;
  108. $bizTrader["breakTotal0"]=0;
  109. $bizTrader["breakTotal1"]=0;
  110. $bizTrader["breakTotal2"]=0;
  111. $bizTrader["breakTotal3"]=0;
  112. $breakSS = pdo_fetchall("select `catalog`,count(*) as count from biz_trader_breaklaw where biz_traderid=" . intval($traderId)." group by `catalog` ");
  113. foreach($breakSS as $item) $bizTrader["breakTotal".intval($item["catalog"])]=intval($item["total"]);
  114. $bizTrader["blocked"] = intval($bizTrader["hanging"])==4?"1":"0";
  115. $bizTrader["blockedName"] = intval($bizTrader["blocked"]) <= 0 ? "非黑名单" : "黑名单";
  116. return $bizTrader;
  117. break;
  118. case "blackhandle":
  119. $traderId = isset($ajaxdata["traderId"]) ? $ajaxdata["traderId"] : $GPC["traderId"];
  120. $sqlTemp = "select bt.*,bu.mobile as bu_mobile,bu.subsystem as subsystem,bu.wxapp_appid,bu.wxapp_openid,bu.wxmina_appid,bu.wxmina_openid";
  121. $sqlTemp .= " from biz_trader bt";
  122. $sqlTemp .= " left join base_user bu on bu.id =bt.base_userid";
  123. $sqlTemp .= " where bt.id=:bizUserId limit 1;";
  124. $bizTrader = pdo_fetch($sqlTemp, array(":bizUserId" => $traderId));
  125. if(empty($bizTrader)) throw new GeneralException("", "没有传递必要的traderId参数或没有对应的记录,请核查!");
  126. $reason = isset($ajaxdata["reason"]) ? $ajaxdata["reason"] : $GPC["reason"];
  127. $todo = isset($ajaxdata["todo"]) ? $ajaxdata["todo"] : $GPC["todo"];
  128. switch(trim($todo)){
  129. case "set":
  130. if(intval($bizTrader["hanging"])>=4) throw new GeneralException("", "已是黑名单状态了啊,请核查!");
  131. $sqlTemp="";
  132. $sqlTemp.=" update biz_trader set updatetime=:nowtime,`hanging`=4,remark=concat(:remark,ifnull(remark,'')) where id=:id;";
  133. $backdata = pdo_query($sqlTemp, array(
  134. ":nowtime" => time(),
  135. ":id" => intval($bizTrader["id"]),
  136. ":remark"=>"[".date("Y-m-d H:i:s",time())."] 设置为黑名单 {$reason} \n"));
  137. return $backdata;
  138. break;
  139. case "reset":
  140. if(intval($bizTrader["hanging"])<4) throw new GeneralException("", "当前处于非黑名单状态,请核查!");
  141. $sqlTemp="";
  142. $sqlTemp.=" update biz_trader set updatetime=:nowtime,`hanging`=0,remark=concat(:remark,ifnull(remark,'')) where id=:id;";
  143. $backdata = pdo_query($sqlTemp, array(
  144. ":nowtime" => time(),
  145. ":id" => intval($bizTrader["id"]),
  146. ":remark"=>"[".date("Y-m-d H:i:s",time())."] 取消黑名单 {$reason} \n"));
  147. return $backdata;
  148. break;
  149. default:throw new GeneralException("", "不支持的todo");
  150. }
  151. break;
  152. case "certifConfirmed":
  153. $traderId = isset($ajaxdata["traderId"]) ? $ajaxdata["traderId"] : $GPC["traderId"];
  154. $sqlTemp = "select bt.*,bu.mobile as bu_mobile,bu.subsystem as subsystem,bu.wxapp_appid,bu.wxapp_openid,bu.wxmina_appid,bu.wxmina_openid";
  155. $sqlTemp .= " from biz_trader bt";
  156. $sqlTemp .= " left join base_user bu on bu.id =bt.base_userid";
  157. $sqlTemp .= " where bt.id=:bizUserId limit 1;";
  158. $bizTrader = pdo_fetch($sqlTemp, array(":bizUserId" => $traderId));
  159. if(empty($bizTrader)) throw new GeneralException("", "没有传递必要的traderId参数或没有对应的记录,请核查!");
  160. $reason = isset($ajaxdata["reason"]) ? $ajaxdata["reason"] : $GPC["reason"];
  161. $todo = isset($ajaxdata["todo"]) ? $ajaxdata["todo"] : $GPC["todo"];
  162. $operatorName=empty($baseUser["login_name"])?"":"由".$baseUser["login_name"]."";
  163. switch(trim($todo)){
  164. case "setPerson":
  165. if(intval($bizTrader["certif_confirmed"])>0) throw new GeneralException("", "已是实名确认状态了啊,请核查!");
  166. if(empty($bizTrader["lawer_idcard"])) throw new GeneralException("", "此商家还未提交【身份证】个人商家实名认证所需信息,请核查!");
  167. $sqlTemp="";
  168. $sqlTemp.=" update biz_trader set updatetime=:nowtime,`certif_confirmed`=1,remark=concat(:remark,ifnull(remark,'')) where id=:id;";
  169. $backdata = pdo_query($sqlTemp, array(
  170. ":nowtime" => time(),
  171. ":id" => intval($bizTrader["id"]),
  172. ":remark"=>"[".date("Y-m-d H:i:s",time())."] {$operatorName}设置为个人实名确认 {$reason} \n"));
  173. return $backdata;
  174. break;
  175. case "setEnterprise":
  176. if(intval($bizTrader["certif_confirmed"])>1) throw new GeneralException("", "已是企业实名确认状态了啊,请核查!");
  177. if(empty($bizTrader["bizlicense_pic"])) throw new GeneralException("", "此商家还未提交【营业执照】企业商家实名认证所需信息,请核查!");
  178. if(intval($bizTrader["catalog"])>0){
  179. $sqlTemp="";
  180. $sqlTemp.=" update biz_trader set updatetime=:nowtime,`certif_confirmed`=2,remark=concat(:remark,ifnull(remark,'')) where id=:id;";
  181. $backdata = pdo_query($sqlTemp, array(
  182. ":nowtime" => time(),
  183. ":id" => intval($bizTrader["id"]),
  184. ":remark"=>"[".date("Y-m-d H:i:s",time())."] {$operatorName}设置为企业实名确认 {$reason} \n"));
  185. return $backdata;
  186. }else{
  187. $freeCountAdd=5;
  188. $sqlTemp="";
  189. $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;";
  190. $backdata = pdo_query($sqlTemp, array(
  191. ":nowtime" => time(),
  192. ":id" => intval($bizTrader["id"]),
  193. ":freecount" => $freeCountAdd,
  194. ":remark"=>"[".date("Y-m-d H:i:s",time())."] {$operatorName}确认由个人转为企业商家,并给其新增【{$freeCountAdd}次】免费次数 {$reason} \n"));
  195. return $backdata;
  196. }
  197. break;
  198. case "reset":
  199. if(intval($bizTrader["certif_confirmed"])<=0) throw new GeneralException("", "当前处于非实名确认状态,请核查!");
  200. $sqlTemp="";
  201. $sqlTemp.=" update biz_trader set updatetime=:nowtime,`certif_confirmed`=0,remark=concat(:remark,ifnull(remark,'')) where id=:id;";
  202. $backdata = pdo_query($sqlTemp, array(
  203. ":nowtime" => time(),
  204. ":id" => intval($bizTrader["id"]),
  205. ":remark"=>"[".date("Y-m-d H:i:s",time())."] {$operatorName}取消实名确认 {$reason} \n"));
  206. return $backdata;
  207. break;
  208. default:throw new GeneralException("", "不支持的todo");
  209. }
  210. break;
  211. case "wxRecharge":
  212. $minaCode = isset($ajaxdata["minaCode"]) ? $ajaxdata["minaCode"] : $GPC["minaCode"];
  213. if (empty(trim($minaCode))) throw new GeneralException("", "没有传递必要的minaCode参数");
  214. $money = isset($ajaxdata["money"]) ? $ajaxdata["money"] : $GPC["money"];
  215. $money = round(floatval($money), 2);
  216. if ($money <= 0) throw new GeneralException("", "没有传递必要的money参数或小于等于0了");
  217. $sqlParam=array();
  218. $sqlParam[":nowtime"]=time();
  219. $sqlParam[":biz_traderid"]=$bizTrader["id"];
  220. $sqlParam[":biz_roletype"]=0;
  221. $sqlParam[":biz_userid"]=$bizTrader["id"];
  222. $sqlParam[":type"]=0;//收支类型:0-收入;1-支出;
  223. $sqlParam[":money"]=$money; //收入:0-次数支付;1-支付工单;
  224. $sqlParam[":biz_catalog"] = 2; //微信支付充值
  225. $sqlParam[":biz_id"] = 0;
  226. $sqlParam[":remark"] = "商家直接微信支付充值";
  227. $sqlTemp="";
  228. $sqlTemp.=" insert into biz_trader_account set createtime=:nowtime";
  229. $sqlTemp.=" ,biz_traderid=:biz_traderid, biz_roletype=:biz_roletype, biz_userid=:biz_userid ";
  230. $sqlTemp.=" ,type=:type, `money`=:money";
  231. $sqlTemp.=" ,biz_catalog=:biz_catalog, biz_id=:biz_id ";
  232. $sqlTemp.=" ,`status`=0, remark=:remark;";//统一固定的工单支付ID,避免重复支付 增加一个paytag
  233. $sqlTemp.=" update biz_trader_account set biz_idtag=concat('WXCG',id,'EE',paytag) where id=LAST_INSERT_ID();";
  234. $sqlTemp.=" select * from biz_trader_account where id=LAST_INSERT_ID();";
  235. $dataset = pdo_query3($sqlTemp, $sqlParam);
  236. $bizInfo= $dataset[count($dataset)-1][0];
  237. if (empty($bizInfo)) throw new GeneralException("", "构建预支付订单异常");
  238. $payBizCatalog = 2; //微信支付充值
  239. $payBizId = $bizInfo["id"];
  240. $payScene = "JSAPI";
  241. $prePayArgs = array(
  242. "payBackBizCatalog" => $payBizCatalog,
  243. "payBackBizId" => $payBizId,
  244. "payScene" => $payScene,
  245. );
  246. require_once WEB_PHY_ROOT."/base/wxsrv.php";
  247. $resObj = bizwx_fetchMinaOpenidCore(SUBSYS_CAPITAL_MINA);
  248. $wxmina_appid = $resObj["wxmina_appid"];
  249. $wxmina_openid = $resObj["openid"];
  250. $bizArgs=array(
  251. "minaCode"=>$minaCode,
  252. "bizInfo"=>$bizInfo,
  253. "handleMode"=>$handleMode,
  254. "bizUser"=>$bizUser,
  255. "wxmina_appid"=>$wxmina_appid,
  256. "wxmina_openid"=>$wxmina_openid,
  257. );
  258. $prePayInfo=bizbase_traderPayCore($prePayArgs, $bizArgs);
  259. //不会出现重复订单
  260. $prePayInfo =array_merge($prePayArgs, $prePayInfo);
  261. return array(
  262. "prePayInfo" => $prePayInfo,
  263. );
  264. break;
  265. case "transferToTrader2":
  266. $remark = isset($ajaxdata["remark"]) ? $ajaxdata["remark"] : $GPC["remark"];
  267. $money = isset($ajaxdata["money"]) ? $ajaxdata["money"] : $GPC["money"];
  268. $money = round(floatval($money), 2);
  269. if ($money <= 0) throw new GeneralException("", "没有传递必要的money参数或小于等于0了");
  270. $trader2Id = isset($ajaxdata["trader2Id"]) ? $ajaxdata["trader2Id"] : $GPC["trader2Id"];
  271. if (intval($trader2Id) <= 0) throw new GeneralException("", "没有传递必要的trader2Id参数");
  272. $delegateInfo = pdo_fetch("select brd.*,btr.title as recuritTitle,bt.company_name
  273. from biz_recruit_delegate brd
  274. left join biz_trader_recruit btr on btr.id=brd.biz_recruitid
  275. left join biz_trader bt on bt.id=btr.biz_traderid
  276. where brd.biz_trader2id=:biz_trader2id and btr.biz_traderid=:biz_traderid
  277. and brd.finish_datetime>:verify_datetime limit 1", array(
  278. ":biz_traderid" => intval($bizTrader["id"]),
  279. ":biz_trader2id" => intval($trader2Id),
  280. ":verify_datetime" => strtotime("0 second"),
  281. ));
  282. if (empty($delegateInfo)) throw new GeneralException("", "传递的现场经理与您商家没有任何授权关系啊!");
  283. $backdata = pdo_fetch("select
  284. (sum(case when bta.type=0 then ifnull(money,0) else 0 end)-
  285. sum(case when bta.type=1 then ifnull(money,0) else 0 end)) as money_balance
  286. from biz_trader_account bta
  287. where bta.deleted=0 and bta.biz_traderid=:biz_traderid
  288. and bta.`biz_roletype`=:money_roletype and bta.biz_userid=:money_userid
  289. and bta.`status`=1",array(
  290. ":biz_traderid"=>intval($bizTrader["id"]),
  291. ":money_userid"=>intval($bizTrader["id"]),
  292. ":money_roletype"=>0,
  293. ));
  294. $money_balance = round(floatval($backdata["money_balance"]), 2);
  295. if ($money_balance < $money) throw new GeneralException("NoEnough", array(
  296. "errMsg"=>"账户余额已不足以转帐",
  297. "balance"=>$money_balance,
  298. ));
  299. $sqlParam = array();
  300. $sqlParam[":nowtime"]=time();
  301. $sqlParam[":biz_traderid"]=intval($bizTrader["id"]);
  302. $sqlParam[":biz_trader2id"]=intval($trader2Id);
  303. $sqlParam[":money"] = $money;
  304. $sqlParam[":bizremark"]="[" . date("Y-m-d H:i:s", time()) . "] 转帐 {$remark} \n";
  305. $sqlTemp="";
  306. $sqlTemp.=" insert into biz_trader_account ( `biz_traderid`, `createtime`,`type`, `money`, `status`, `biz_catalog`, `biz_id`, `biz_roletype`, `biz_userid`, remark )";
  307. $sqlTemp.=" select :biz_traderid , :nowtime , 1 , :money, 1, 4 , 0, 0, :biz_traderid, :bizremark from dual where 1=1;";
  308. $sqlTemp.=" set @first_id=LAST_INSERT_ID();";
  309. $sqlTemp.=" insert into biz_trader_account ( `biz_traderid`, `createtime`,`type`, `money`, `status`, `biz_catalog`, `biz_id`, `biz_roletype`, `biz_userid`, remark )";
  310. $sqlTemp.=" select :biz_traderid , :nowtime , 0 , :money, 1, 3 , @first_id, 1, :biz_trader2id, :bizremark from dual where 1=1;";
  311. $sqlTemp.=" update biz_trader_account set `biz_id`=LAST_INSERT_ID() where id=@first_id;";
  312. $dataset=pdo_query3($sqlTemp,$sqlParam);
  313. return $dataset;
  314. break;
  315. case "adjustLevel":
  316. $becomeVip = isset($ajaxdata["becomeVip"]) ? $ajaxdata["becomeVip"] : $GPC["becomeVip"];
  317. $reason = isset($ajaxdata["reason"]) ? $ajaxdata["reason"] : $GPC["reason"];
  318. $traderIds = isset($ajaxdata["traderIds"]) ? $ajaxdata["traderIds"] : $GPC["traderIds"];
  319. $idSet=array();
  320. foreach($traderIds as $item){
  321. array_push($idSet,intval($item));
  322. }
  323. if (count($idSet)<=0) throw new GeneralException("", "没有传递必要的traderIds参数");
  324. $idSet = implode(",", $idSet);
  325. $sqlParam=array();
  326. $sqlParam[":nowtime"]=time();
  327. $sqlParam[":trader_level"]=(intval($becomeVip)<=0?0:1);
  328. if($sqlParam[":trader_level"]<=0){
  329. $sqlParam[":remark"]="[" . date("Y-m-d H:i:s", time()) . "] 取消vip身份 $reason \n";
  330. }else{
  331. $sqlParam[":remark"]="[" . date("Y-m-d H:i:s", time()) . "] 设为vip身份 $reason \n";
  332. }
  333. $sqlTemp="";
  334. $sqlTemp.=" update biz_trader ";
  335. $sqlTemp.=" set updatetime=:nowtime,trader_level=:trader_level,remark=concat(:remark,ifnull(remark,'')) ";
  336. $sqlTemp.=" where id in ({$idSet});";
  337. $backdata=pdo_query3($sqlTemp,$sqlParam);
  338. return $backdata;
  339. break;
  340. case "idCardCheck":
  341. $trueName = isset($ajaxdata["trueName"]) ? $ajaxdata["trueName"] : $GPC["trueName"];
  342. $idCard = isset($ajaxdata["idCard"]) ? $ajaxdata["idCard"] : $GPC["idCard"];
  343. if(empty($bizTrader)) throw new GeneralException("", "没有以商家身份登录,请核查!");
  344. require_once WEB_PHY_ROOT."/base/wxsrv.php";
  345. txcloud_idcardCheck($trueName,$idCard);
  346. $sqlParam=array();
  347. $sqlParam[":nowtime"]=time();
  348. $sqlParam[":traderId"]=intval($bizTrader["id"]);
  349. $sqlParam[":lawer_name"]=$trueName;
  350. $sqlParam[":lawer_idcard"]=$idCard;
  351. $sqlParam[":linker_gender"]=((intval(mb_substr($idCard,17,1)) % 2)<=0?1:0);
  352. $sqlParam[":linker_birthday"]=strtotime(mb_substr($idCard,6,4)."-".mb_substr($idCard,10,2)."-".mb_substr($idCard,12,2));
  353. $sqlParam[":remark"]="[".date("Y-m-d H:i:s",time())."] 实名认证 \n";
  354. $sqlTemp="";
  355. $sqlTemp.=" update biz_trader set updatetime=:nowtime ";
  356. $sqlTemp.=" ,lawer_name=:lawer_name,lawer_idcard=:lawer_idcard ";
  357. $sqlTemp.=" ,linker_gender=:linker_gender,linker_birthday=:linker_birthday ";
  358. $sqlTemp.=" ,remark=concat(:remark,ifnull(remark,'')) ";
  359. $sqlTemp.=" where id =:traderId;";
  360. $backdata=pdo_query3($sqlTemp,$sqlParam);
  361. return $backdata;
  362. break;
  363. default:
  364. throw new GeneralException("","不支持的handleMode!");
  365. }
  366. }
  367. function bizbase_traderPayCore($prePayArgs, $bizArgs){
  368. require_once WEB_PHY_ROOT."/base/wxsrv.php";
  369. $prePayInfo=weixin_prepayBuildV3($prePayArgs,$bizArgs,function($bizCatalog, $bizId, $bizArgs){
  370. $minaCode = $bizArgs["minaCode"];
  371. $bizInfo = $bizArgs["bizInfo"];
  372. $handleMode = $bizArgs["handleMode"];
  373. $bizUser = $bizArgs["bizUser"];
  374. $wxmina_appid = $bizArgs["wxmina_appid"];
  375. $wxmina_openid = $bizArgs["wxmina_openid"];
  376. //---------------------------------------
  377. $payTotal = round(floatval($bizInfo["money"]), 2);
  378. if ($payTotal <= 0) throw new GeneralException("", "金额竟然小于等于0");
  379. $payTotal = $payTotal * 100;//转为分
  380. //---------------------------------------
  381. $sqlParam=array();
  382. $sqlParam[":id"]=intval($bizInfo["id"]);
  383. $sqlParam[":wxmina_appid"]=$wxmina_appid;
  384. $sqlParam[":wxmina_openid"]=$wxmina_openid;
  385. $sqlTemp=" update biz_trader_account set";
  386. $sqlTemp.=" wxmina_appid=:wxmina_appid,wxmina_openid=:wxmina_openid ";
  387. $sqlTemp.=" where id=:id; ";
  388. $dataset = pdo_query3($sqlTemp, $sqlParam);
  389. //---------------------------------------
  390. $prePayInfo= array();
  391. $prePayInfo["appid"]=$wxmina_appid;
  392. $prePayInfo["mchId"]=WeiXinPay_mchId;
  393. $prePayInfo["mch_paykeyV2"]=WeiXinPay_apiKey;
  394. $prePayInfo["mch_paykeyV3"]=WeiXinPay_apiKeyV3;
  395. $prePayInfo["out_trade_no"]=$bizInfo["biz_idtag"];
  396. $prePayInfo["total"]="{$payTotal}";
  397. $prePayInfo["description"]="商家充值支付业务";
  398. $prePayInfo["openid"]=$wxmina_openid;
  399. return $prePayInfo;
  400. });
  401. return $prePayInfo;
  402. }
  403. function bizbase_traderAccountInfo($bizTrader){
  404. $sqlTemp="";
  405. $sqlTemp.=" select type,sum(ifnull(money,0)) as total ";
  406. $sqlTemp.=" from biz_trader_account ";
  407. $sqlTemp.=" where biz_roletype=0 and biz_traderid=".intval($bizTrader["id"])." and `deleted`=0 and `status`=1";
  408. $sqlTemp.=" group by type";
  409. $totalList = pdo_fetchall($sqlTemp, array());
  410. $income=0.0;
  411. $outgoing=0.0;
  412. foreach($totalList as $item){
  413. switch(intval($item["type"])){
  414. case 0://收入
  415. $income = round(floatval($item["total"]), 2);
  416. break;
  417. case 1://支出
  418. $outgoing = round(floatval($item["total"]), 2);
  419. break;
  420. }
  421. }
  422. $balance = round(floatval($income - $outgoing),2);
  423. $frozenIn=0.0;//解冻总额
  424. $frozenOut=0.0;//冻结总额
  425. $frozenBalance=0.0;//冻结余额,即当前实际冻结的金额
  426. $sqlTemp="";
  427. $sqlTemp.=" select biz_catalog,sum(ifnull(money,0)) as total ";
  428. $sqlTemp.=" from biz_trader_account ";
  429. $sqlTemp.=" where biz_roletype=0 and biz_traderid=".intval($bizTrader["id"])." and type=0 and `deleted`=0 and `status`=1 ";
  430. $sqlTemp.=" group by biz_catalog ";
  431. $outlist = pdo_fetchall($sqlTemp, array());
  432. $numIncome=0.0;
  433. $feeIncome=0.0;
  434. $wxcharge=0.0;
  435. $transferin=0.0;
  436. foreach($outlist as $item){
  437. switch(intval($item["biz_catalog"])){
  438. case 0://次数支付
  439. $numIncome = round(floatval($item["total"]), 2);
  440. break;
  441. case 1://支付工单
  442. $feeIncome = round(floatval($item["total"]), 2);
  443. break;
  444. case 2://微信支付充值;
  445. $wxcharge = round(floatval($item["total"]), 2);
  446. break;
  447. case 3://转帐收入
  448. $transferin = round(floatval($item["total"]), 2);
  449. break;
  450. case 6://工单费用解冻
  451. $frozenIn = round(floatval($item["total"]), 2);
  452. break;
  453. }
  454. }
  455. $sqlTemp="";
  456. $sqlTemp.=" select biz_catalog,sum(ifnull(money,0)) as total ";
  457. $sqlTemp.=" from biz_trader_account ";
  458. $sqlTemp.=" where biz_roletype=0 and biz_traderid=".intval($bizTrader["id"])." and type=1 and `deleted`=0 and `status`=1 ";
  459. $sqlTemp.=" group by biz_catalog ";
  460. $outlist = pdo_fetchall($sqlTemp, array());
  461. $numOutgoing=0.0;
  462. $platfetch=0.0;
  463. $commissionout=0.0;
  464. $salaryout=0.0;
  465. $transferout=0.0;
  466. $withdrawout=0.0;
  467. foreach($outlist as $item){
  468. switch(intval($item["biz_catalog"])){
  469. case 0://次数支出
  470. $numOutgoing = round(floatval($item["total"]), 2);
  471. break;
  472. case 1://工单平台分成支出
  473. $platfetch = round(floatval($item["total"]), 2);
  474. break;
  475. case 2://工单佣金支出
  476. $commissionout = round(floatval($item["total"]), 2);
  477. break;
  478. case 3://工单工资支出
  479. $salaryout = round(floatval($item["total"]), 2);
  480. break;
  481. case 4://转帐支出
  482. $transferout = round(floatval($item["total"]), 2);
  483. break;
  484. case 5://提现支出
  485. $withdrawout = round(floatval($item["total"]), 2);
  486. break;
  487. case 6://工单整体支出
  488. $withdrawout = round(floatval($item["total"]), 2);
  489. break;
  490. case 7://平台代支付工单
  491. $withdrawout = round(floatval($item["total"]), 2);
  492. break;
  493. case 8://冻结工单费用
  494. $frozenOut = round(floatval($item["total"]), 2);
  495. break;
  496. }
  497. }
  498. $frozenBalance=$frozenOut-$frozenIn;//冻结余额,即当前实际冻结的金额
  499. //-------------------------------------------------------------------------------
  500. $numaccountInfo=pdo_fetchall("select type,ifnull(sum(ifnull(count,0)),0) as total
  501. from biz_trader_numaccount where `deleted`=0 and `status`=1 and biz_traderid=".intval($bizTrader["id"])."
  502. group by type");
  503. $numtotalIncome = 0;
  504. $numtotalOutgoing = 0;
  505. foreach($numaccountInfo as $item){
  506. switch(intval($item["type"])){
  507. case 0:
  508. $numtotalIncome = intval($item["total"]);
  509. break;
  510. case 1:
  511. $numtotalOutgoing = intval($item["total"]);
  512. break;
  513. }
  514. }
  515. $numtotalbalance = $numtotalIncome-$numtotalOutgoing;
  516. //$recuritRule = bizbase_fetchBaseConfig("RecuritRule",true);
  517. $freeCount = intval($bizTrader["freecount"]);
  518. $freeCount = $freeCount <= 0 ? 0 : $freeCount;
  519. $freecount_used=intval($bizTrader["freecount_used"]);
  520. $freecount_used = $freecount_used <= 0 ? 0 : $freecount_used;
  521. $canUseFreeCount = $freeCount - $freecount_used;
  522. return array(
  523. "balance" => $balance,
  524. "income" => $income,
  525. "outgoing" => $outgoing,
  526. "numIncome" => $numIncome,
  527. "feeIncome" => $feeIncome,
  528. "wxcharge" => $wxcharge,
  529. "transferin" => $transferin,
  530. "numOutgoing" => $numOutgoing,
  531. "platfetch" => $platfetch,
  532. "commissionout" => $commissionout,
  533. "salaryout" => $salaryout,
  534. "transferout" => $transferout,
  535. "withdrawout" => $withdrawout,
  536. "numtotalIncome" => $numtotalIncome,
  537. "numtotalOutgoing" => $numtotalOutgoing,
  538. "numtotalbalance" => $numtotalbalance,
  539. "numFreeCount" => $canUseFreeCount,
  540. "frozenBalance"=>$frozenBalance,
  541. );
  542. }
  543. function bizbase_traderStatistics($bizTrader){
  544. $sqlTemp="";
  545. $sqlTemp.=" select count(*) as recuritTotal";
  546. $sqlTemp.=" ,ifnull(sum(case when `status`>=1 then need_total else 0 end),0) as need_total";
  547. $sqlTemp.=" ,ifnull(sum(case when `status`=-1 then 1 else 0 end),0) as refuseTotal";
  548. $sqlTemp.=" ,ifnull(sum(case when `status`=1 then 1 else 0 end),0) as unauditedTotal";
  549. $sqlTemp.=" ,ifnull(sum(case when `status`>=1 then 1 else 0 end),0) as auditedTotal";
  550. $sqlTemp.=" ,ifnull(sum(case when `status`>=2 then 1 else 0 end),0) as auditedTotal2";
  551. $sqlTemp.=" from biz_trader_recruit btr ";
  552. $sqlTemp.=" where btr.biz_traderid=".intval($bizTrader["id"]).";";
  553. $totalInfo = pdo_fetch($sqlTemp, array());
  554. $recuritTotal=intval($totalInfo["recuritTotal"]);
  555. //$need_total=pdo_fetchcolumn("select ifnull(sum(need_total),0) from biz_trader_recruit where biz_traderid=".intval($bizTrader["id"])." and `status`>=1");
  556. $need_total=intval($totalInfo["need_total"]);
  557. $refuseTotal=intval($totalInfo["refuseTotal"]);
  558. $unauditedTotal=intval($totalInfo["unauditedTotal"]);
  559. $auditedTotal=intval($totalInfo["auditedTotal"]);
  560. $auditedTotal2=intval($totalInfo["auditedTotal2"]);
  561. $sqlTemp="";
  562. $sqlTemp.=" select sum(workTotal) as workTotal, sum(enrollUnauditTotal) as enrollUnauditTotal, sum(enrollTotal) as enrollTotal ";
  563. $sqlTemp.=" ,sum(waitSettledTotal) as waitSettledTotal,sum(settledTotal) as settledTotal ";
  564. $sqlTemp.=" ,sum(exceptTotal) as exceptTotal ";
  565. $sqlTemp.=" ,sum(refuseTotal) as refuseTotal,sum(breakoffTotal) as breakoffTotal ";
  566. $sqlTemp.=" ,sum(cancelTotal) as cancelTotal,sum(cancel2Total) as cancel2Total,sum(denypayTotal) as denypayTotal ";
  567. $sqlTemp.=" ,sum(noStartWorkTotal) as noStartWorkTotal,sum(noFinishWorkTotal) as noFinishWorkTotal ";
  568. $unreadStatusMin=-8;
  569. $unreadStatusMax=5;
  570. $unreadStatusPrefix="unreadWKTotal";
  571. for($iii=$unreadStatusMin;$iii<=$unreadStatusMax;$iii++){
  572. $iiiExt=$iii<0?"_".abs($iii):$iii;
  573. $alias="{$unreadStatusPrefix}{$iiiExt}";
  574. $sqlTemp.=" ,sum({$alias}) as {$alias} ";
  575. }
  576. $sqlTemp.=" from (select sum(case when tdwk.id>0 then 1 else 0 end) as workTotal ";
  577. $sqlTemp.=" ,sum(case when tdwk.`status`>=2 then 1 else 0 end) as enrollTotal ";
  578. $sqlTemp.=" ,sum(case when tdwk.`status`=1 then 1 else 0 end) as enrollUnauditTotal ";
  579. $sqlTemp.=" ,sum(case when tdwk.`status`=4 then 1 else 0 end) as waitSettledTotal ";
  580. $sqlTemp.=" ,sum(case when tdwk.`status`=5 then 1 else 0 end) as settledTotal ";
  581. $sqlTemp.=" ,sum(case when tdwk.`status`<0 then 1 else 0 end) as exceptTotal ";
  582. $sqlTemp.=" ,sum(case when tdwk.`status`=-1 then 1 else 0 end) as refuseTotal ";
  583. $sqlTemp.=" ,sum(case when tdwk.`status`=-3 then 1 else 0 end) as breakoffTotal ";
  584. $sqlTemp.=" ,sum(case when tdwk.`status`=-2 then 1 else 0 end) as cancelTotal ";
  585. $sqlTemp.=" ,sum(case when tdwk.`status`=-4 then 1 else 0 end) as cancel2Total ";
  586. $sqlTemp.=" ,sum(case when (tdwk.`status`=-5 or tdwk.`status`=-8) then 1 else 0 end) as denypayTotal ";
  587. $sqlTemp.=" ,sum(case when tdwk.`status`=-6 then 1 else 0 end) as noStartWorkTotal ";
  588. $sqlTemp.=" ,sum(case when tdwk.`status`=-7 then 1 else 0 end) as noFinishWorkTotal ";
  589. for($iii=$unreadStatusMin;$iii<=$unreadStatusMax;$iii++){
  590. $iiiExt=$iii<0?"_".abs($iii):$iii;
  591. $alias="{$unreadStatusPrefix}{$iiiExt}";
  592. $sqlTemp.=" ,sum(case when (tdwk.`status`={$iii} and !FIND_IN_SET(tdwk.`status`, tdwk.trader_readed)) then 1 else 0 end) as {$alias} ";
  593. }
  594. $sqlTemp.=" from biz_todowork tdwk ";
  595. $sqlTemp.=" inner join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid ";
  596. $sqlTemp.=" where btr.biz_traderid=".intval($bizTrader["id"]);
  597. $sqlTemp.=" group by tdwk.biz_recruitid";
  598. $sqlTemp.=" ) as temp;";
  599. $totalInfo = pdo_fetch($sqlTemp, array());
  600. $workTotal=intval($totalInfo["workTotal"]);
  601. $enrollUnauditTotal=intval($totalInfo["enrollUnauditTotal"]);
  602. $enrollTotal=intval($totalInfo["enrollTotal"]);
  603. $waitSettledTotal=intval($totalInfo["waitSettledTotal"]);
  604. $settledTotal=intval($totalInfo["settledTotal"]);
  605. $backdata=array(
  606. "recuritTotal" => $recuritTotal,
  607. "need_total" => $need_total,
  608. "refuseTotal" => $refuseTotal,
  609. "unauditedTotal" => $unauditedTotal,
  610. "auditedTotal" => $auditedTotal,
  611. "auditedTotal2" => $auditedTotal2,
  612. "workTotal" => $workTotal,
  613. "enrollUnauditTotal" => $enrollUnauditTotal,
  614. "enrollTotal" => $enrollTotal,
  615. "waitSettledTotal" => $waitSettledTotal,
  616. "settledTotal" => $settledTotal,
  617. "exceptTotal" => intval($totalInfo["exceptTotal"]),
  618. "refuseTotal" => intval($totalInfo["refuseTotal"]),
  619. "breakoffTotal" => intval($totalInfo["breakoffTotal"]),
  620. "cancelTotal" => intval($totalInfo["cancelTotal"]),
  621. "cancel2Total" => intval($totalInfo["cancel2Total"]),
  622. "denypayTotal" => intval($totalInfo["denypayTotal"]),
  623. "noStartWorkTotal" => intval($totalInfo["noStartWorkTotal"]),
  624. "noFinishWorkTotal" => intval($totalInfo["noFinishWorkTotal"]),
  625. "othersTotal" => intval($totalInfo["noStartWorkTotal"])+intval($totalInfo["noFinishWorkTotal"]),
  626. "exceptTotal2" => intval($totalInfo["refuseTotal"])+intval($totalInfo["breakoffTotal"])
  627. +intval($totalInfo["cancelTotal"])+intval($totalInfo["cancel2Total"])+intval($totalInfo["denypayTotal"]),
  628. );
  629. $aliasALL="{$unreadStatusPrefix}_ALL";
  630. $backdata[$aliasALL]=0;
  631. $aliasOther="{$unreadStatusPrefix}_Other";
  632. $backdata[$aliasOther]=0;
  633. for($iii=$unreadStatusMin;$iii<$unreadStatusMax;$iii++){
  634. $iiiExt=$iii<0?"_".abs($iii):$iii;
  635. $alias="{$unreadStatusPrefix}{$iiiExt}";
  636. $backdata[$alias]=intval($totalInfo[$alias]);
  637. if($iii<0) $backdata[$aliasALL]+=intval($totalInfo[$alias]);
  638. if($iii==-6) $backdata[$aliasOther]+=intval($totalInfo[$alias]);
  639. if($iii==-7) $backdata[$aliasOther]+=intval($totalInfo[$alias]);
  640. }
  641. $backdata["{$unreadStatusPrefix}_5"]=intval($backdata["{$unreadStatusPrefix}_5"])+intval($backdata["{$unreadStatusPrefix}_8"]);
  642. return $backdata;
  643. }
  644. function bizbase_traderUndoList($bizTrader){
  645. $backdata=array();
  646. $backdata["notice_unreaded"]=intval(pdo_fetchcolumn("select count(*) from biz_pubic_notice bpn
  647. 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"])."
  648. where bpn.deleted=0 and bpn.catalog=2
  649. and ifnull(bbt.id,0)<=0;"));
  650. $backdata["recurited_unreaded"]=intval(pdo_fetchcolumn("select count(*) from biz_trader_recruit btr
  651. 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"])."
  652. where btr.deleted=0 and btr.biz_traderid=".intval($bizTrader["id"])." and btr.`status`=2
  653. and ifnull(bbt.id,0)<=0;"));
  654. return $backdata;
  655. }
  656. function bizbase_traderAboutQuery($fromSubSystem, $baseUser, $bizUser, $handleMode, $pageIndex, $pageSize, $ajaxdata, $GPC){
  657. if(intval($baseUser["subsystem"])==SUBSYS_LABOUR_MINA) $bizWorker = $bizUser;
  658. if(intval($baseUser["subsystem"])==SUBSYS_CAPITAL_MINA) $bizTrader = $bizUser;
  659. if(intval($baseUser["subsystem"])==SUBSYS_CAPITAL2_MINA) $bizTrader2 = $bizUser;
  660. switch($handleMode){
  661. case "fetchall":
  662. $orderby = isset($ajaxdata["orderby"]) ? $ajaxdata["orderby"] : $GPC["orderby"];
  663. switch(intval($orderby)){
  664. case 1:
  665. $orderby=" order by recruit_auditedtotal desc ";
  666. break;
  667. case 2:
  668. $orderby=" order by recruit_needtotal desc ";
  669. break;
  670. case 3:
  671. $orderby=" order by charge_total desc ";
  672. break;
  673. case 4:
  674. $orderby=" order by work_excepttotal desc ";
  675. break;
  676. default:
  677. $orderby=" order by bt.id desc ";
  678. break;
  679. }
  680. $sqlParam=array();
  681. $sqlBody="";
  682. $queryBreak=" and 1=1 ";
  683. //查询处理
  684. $query = isset($ajaxdata["query"]) ? $ajaxdata["query"] : $GPC["query"];
  685. if (empty($query) && !is_array($query)){//验证一下query信息集
  686. $query=" and 1=1 ";
  687. }else{
  688. $queryNew=" and 1=1 ";
  689. foreach($query as $fdName=>$fdValue){
  690. if(empty($fdName) || empty($fdValue)) continue;
  691. switch($fdName){
  692. case "need_operate":
  693. if($fdValue == 1){
  694. $queryNew .=" and (lawer_idcard != '' and ((catalog = '0' and (certif_confirmed = '0' or (certif_confirmed = '1' && company_idcard !=''))) or (catalog = '1' and certif_confirmed = '0')))";
  695. }
  696. break;
  697. case "companyName":
  698. $paramName = ":qy_companyName";
  699. $queryNew .=" and (bt.company_name like concat('%',{$paramName},'%') ) ";
  700. $sqlParam[$paramName] = $fdValue;
  701. break;
  702. case "lawerIdcard":
  703. $paramName = ":qy_lawer_idcard";
  704. $queryNew .=" and (bt.lawer_idcard like concat('%',{$paramName},'%') ) ";
  705. $sqlParam[$paramName] = $fdValue;
  706. break;
  707. case "companyIdcard":
  708. $paramName = ":qy_company_idcard";
  709. $queryNew .=" and (bt.company_idcard like concat('%',{$paramName},'%') ) ";
  710. $sqlParam[$paramName] = $fdValue;
  711. break;
  712. case "mobile":
  713. $paramName = ":qy_mobile";
  714. $queryNew .=" and (bu.mobile like concat('%',{$paramName},'%') ) ";
  715. $sqlParam[$paramName] = $fdValue;
  716. break;
  717. case "regtime":
  718. $paramName111 = ":qy_regtime111";
  719. $paramName222 = ":qy_regtime222";
  720. $sqlParam[$paramName111] = strtotime($fdValue);
  721. $sqlParam[$paramName222] = strtotime(date("Y-m-d 23:59:59",strtotime($fdValue)));
  722. $queryNew .=" and ( bt.createtime >= {$paramName111} and bt.createtime <= {$paramName222} ) ";
  723. break;
  724. case "stoped":
  725. switch(intval($fdValue)){
  726. case 1:
  727. $queryNew .=" and ( bt.hanging<=1 || ((bt.hanging=2 or bt.hanging=3) and bt.hanging_endtime<".time()." )) ";
  728. break;
  729. case 2:
  730. $queryNew .=" and ( bt.hanging=4 || ((bt.hanging=2 or bt.hanging=3) and bt.hanging_endtime>=".time()." )) ";
  731. break;
  732. }
  733. break;
  734. case "blocked":
  735. // if (intval($fdValue) > 0){
  736. // $queryNew .=" and bt.blocked=".(intval($fdValue)-1);
  737. // }
  738. // 阿东修改上面注释是原来的代码
  739. if (intval($fdValue) > 0){
  740. if($fdValue == 1){
  741. $queryNew .=" and bt.hanging = 0";
  742. }elseif ($fdValue == 2){
  743. $queryNew .=" and bt.hanging = 4";
  744. }
  745. }
  746. break;
  747. case "debted":
  748. switch(intval($fdValue)){
  749. case 1:
  750. $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 ";
  751. break;
  752. case 2:
  753. $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 ";
  754. break;
  755. }
  756. break;
  757. case "breakType":
  758. if (intval($fdValue) > 0){
  759. $queryBreak .= " and catalog=" . (intval($fdValue) - 1);
  760. $queryNew .=" and (select count(*) from biz_trader_breaklaw where biz_traderid=bt.id $queryBreak )>0 ";
  761. }
  762. break;
  763. case "statusCode":
  764. $queryNew .= " and bt.status =" . (intval($fdValue) - 1) . " ";
  765. break;
  766. case "catalog":
  767. $queryNew .= " and bt.catalog =" . (intval($fdValue) - 1) . " ";
  768. break;
  769. case "certif_confirmed":
  770. $queryNew .= " and bt.certif_confirmed =" . (intval($fdValue) - 1) . " ";
  771. break;
  772. case "upgrade_unaudit":
  773. $queryNew .= " and bt.catalog=0 and bt.certif_confirmed=1 and bt.bizlicense_pic<>'' ";
  774. break;
  775. }
  776. }
  777. $query=$queryNew;
  778. }
  779. //构建sql串
  780. $sqlBody.=" from biz_trader as bt ";
  781. $sqlBody.=" left join base_user bu on bu.id=bt.base_userid ";
  782. $sqlBody.=" where 1=1 and bt.`deleted`=0 ".$query;
  783. //查询sql及统计sql
  784. $start = (intval($pageIndex) - 1) * $pageSize;
  785. $sqlFetch=" select bt.*,bu.mobile as bu_mobile ";
  786. $sqlFetch.=" ,(select count(*) from biz_trader_breaklaw where biz_traderid=bt.id $queryBreak ) as break_total ";
  787. $sqlFetch.=" ,(select count(*) from biz_trader_recruit where biz_traderid=bt.id and `status`>=1 ) as recruit_auditedtotal ";
  788. $sqlFetch.=" ,(select ifnull(sum(need_total),0) from biz_trader_recruit where biz_traderid=bt.id and `status`>=1 ) as recruit_needtotal ";
  789. $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 ";
  790. $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 ";
  791. $sqlFetch.=" {$sqlBody} {$orderby} limit {$start},{$pageSize} ";
  792. $pageData = pdo_fetchall($sqlFetch, $sqlParam);
  793. foreach($pageData as &$item){
  794. $item["regtime"]=date("Y-m-d",$item["createtime"]);
  795. $accountInfo=bizbase_traderAccountInfo($item);
  796. foreach ($accountInfo as $key => $value) $item["finance_".$key] = $value;
  797. $statistics=bizbase_traderStatistics($item);
  798. foreach ($statistics as $key => $value) $item["ss_".$key] = $value;
  799. }
  800. $sqlSummary=" select count(*) as count ".$sqlBody;
  801. $sumData=pdo_fetch($sqlSummary,$sqlParam);
  802. return array(
  803. "pageData" => $pageData,
  804. "count" => intval($sumData["count"]),
  805. );
  806. break;
  807. default: throw new GeneralException("","不支持的handleMode!");
  808. }
  809. }
  810. /**********************现场经理信息相关逻辑**************************************/
  811. function bizbase_trader2EntityHandle($fromSubSystem, $baseUser, $bizUser, $handleMode, $ajaxdata, $GPC){
  812. if(intval($baseUser["subsystem"])==SUBSYS_LABOUR_MINA) $bizWorker = $bizUser;
  813. if(intval($baseUser["subsystem"])==SUBSYS_CAPITAL_MINA) $bizTrader = $bizUser;
  814. if(intval($baseUser["subsystem"])==SUBSYS_CAPITAL2_MINA) $bizTrader2 = $bizUser;
  815. switch($handleMode){
  816. case "wxRecharge":
  817. $minaCode = isset($ajaxdata["minaCode"]) ? $ajaxdata["minaCode"] : $GPC["minaCode"];
  818. if (empty(trim($minaCode))) throw new GeneralException("", "没有传递必要的minaCode参数");
  819. $bizTraderId = isset($ajaxdata["bizTraderId"]) ? $ajaxdata["bizTraderId"] : $GPC["bizTraderId"];
  820. if (intval($bizTraderId) <= 0) throw new GeneralException("", "没有传递必要的bizTraderId参数");
  821. $money = isset($ajaxdata["money"]) ? $ajaxdata["money"] : $GPC["money"];
  822. $money = round(floatval($money), 2);
  823. if ($money <= 0) throw new GeneralException("", "没有传递必要的money参数或小于等于0了");
  824. $sqlParam=array();
  825. $sqlParam[":nowtime"]=time();
  826. $sqlParam[":biz_traderid"]=$bizTraderId;
  827. $sqlParam[":biz_roletype"]=1;
  828. $sqlParam[":biz_userid"]=$bizTrader2["id"];
  829. $sqlParam[":type"]=0;//收支类型:0-收入;1-支出;
  830. $sqlParam[":money"]=$money; //收入:0-次数支付;1-支付工单;
  831. $sqlParam[":biz_catalog"] = 2; //微信支付充值
  832. $sqlParam[":biz_id"] = 0;
  833. $sqlParam[":remark"] = "现场经理直接微信支付充值";
  834. $sqlTemp="";
  835. $sqlTemp.=" insert into biz_trader_account set createtime=:nowtime";
  836. $sqlTemp.=" ,biz_traderid=:biz_traderid, biz_roletype=:biz_roletype, biz_userid=:biz_userid ";
  837. $sqlTemp.=" ,type=:type, `money`=:money";
  838. $sqlTemp.=" ,biz_catalog=:biz_catalog, biz_id=:biz_id ";
  839. $sqlTemp.=" ,`status`=0, remark=:remark;";//统一固定的工单支付ID,避免重复支付 增加一个paytag
  840. $sqlTemp.=" update biz_trader_account set biz_idtag=concat('WXCGX',id,'EE',paytag) where id=LAST_INSERT_ID();";
  841. $sqlTemp.=" select * from biz_trader_account where id=LAST_INSERT_ID();";
  842. $dataset = pdo_query3($sqlTemp, $sqlParam);
  843. $bizInfo= $dataset[count($dataset)-1][0];
  844. if (empty($bizInfo)) throw new GeneralException("", "构建预支付订单异常");
  845. $payBizCatalog = 2; //微信支付充值
  846. $payBizId = $bizInfo["id"];
  847. $payScene = "JSAPI";
  848. $prePayArgs = array(
  849. "payBackBizCatalog" => $payBizCatalog,
  850. "payBackBizId" => $payBizId,
  851. "payScene" => $payScene,
  852. );
  853. require_once WEB_PHY_ROOT."/base/wxsrv.php";
  854. $resObj = bizwx_fetchMinaOpenidCore(SUBSYS_CAPITAL_MINA);
  855. $wxmina_appid = $resObj["wxmina_appid"];
  856. $wxmina_openid = $resObj["openid"];
  857. $bizArgs=array(
  858. "minaCode"=>$minaCode,
  859. "bizInfo"=>$bizInfo,
  860. "handleMode"=>$handleMode,
  861. "bizUser"=>$bizUser,
  862. "wxmina_appid"=>$wxmina_appid,
  863. "wxmina_openid"=>$wxmina_openid,
  864. );
  865. $prePayInfo=bizbase_traderPayCore($prePayArgs, $bizArgs);
  866. //不会出现重复订单
  867. $prePayInfo =array_merge($prePayArgs, $prePayInfo);
  868. return array(
  869. "prePayInfo" => $prePayInfo,
  870. );
  871. break;
  872. default:
  873. throw new GeneralException("","不支持的handleMode!");
  874. }
  875. }
  876. function bizbase_trader2PayCore($prePayArgs, $bizArgs){
  877. require_once WEB_PHY_ROOT."/base/wxsrv.php";
  878. $prePayInfo=weixin_prepayBuildV3($prePayArgs,$bizArgs,function($bizCatalog, $bizId, $bizArgs){
  879. $minaCode = $bizArgs["minaCode"];
  880. $bizInfo = $bizArgs["bizInfo"];
  881. $handleMode = $bizArgs["handleMode"];
  882. $bizUser = $bizArgs["bizUser"];
  883. $wxmina_appid = $bizArgs["wxmina_appid"];
  884. $wxmina_openid = $bizArgs["wxmina_openid"];
  885. //---------------------------------------
  886. $payTotal = round(floatval($bizInfo["money"]), 2);
  887. if ($payTotal <= 0) throw new GeneralException("", "金额竟然小于等于0");
  888. $payTotal = $payTotal * 100;//转为分
  889. //---------------------------------------
  890. $sqlParam=array();
  891. $sqlParam[":id"]=intval($bizInfo["id"]);
  892. $sqlParam[":wxmina_appid"]=$wxmina_appid;
  893. $sqlParam[":wxmina_openid"]=$wxmina_openid;
  894. $sqlTemp=" update biz_trader_account set";
  895. $sqlTemp.=" wxmina_appid=:wxmina_appid,wxmina_openid=:wxmina_openid ";
  896. $sqlTemp.=" where id=:id; ";
  897. $dataset = pdo_query3($sqlTemp, $sqlParam);
  898. //---------------------------------------
  899. $prePayInfo= array();
  900. $prePayInfo["appid"]=$wxmina_appid;
  901. $prePayInfo["mchId"]=WeiXinPay_mchId;
  902. $prePayInfo["mch_paykeyV2"]=WeiXinPay_apiKey;
  903. $prePayInfo["mch_paykeyV3"]=WeiXinPay_apiKeyV3;
  904. $prePayInfo["out_trade_no"]=$bizInfo["biz_idtag"];
  905. $prePayInfo["total"]="{$payTotal}";
  906. $prePayInfo["description"]="现场经理充值支付业务";
  907. $prePayInfo["openid"]=$wxmina_openid;
  908. return $prePayInfo;
  909. });
  910. return $prePayInfo;
  911. }
  912. function bizbase_trader2FieldTrans($fromSubSystem,$direct,$data){
  913. if($direct=="FtoB"){//前端到后端数据转换
  914. //throw new GeneralException("", "平台侧没有更新商户信息的权限!");
  915. }else{//后端到前端数据转换
  916. $data["linker_gender"] = (intval($data["linker_gender"]) < 0) ?"":(intval($data["linker_gender"]) == 0 ? "男" : "女");
  917. $data["createtime"] = date("Y-m-d",$data["createtime"]);
  918. }
  919. return $data;
  920. }
  921. function bizbase_trader2StatusName($statusCode){
  922. switch(intval($statusCode)){
  923. case 0:
  924. $statusName="待提交";
  925. break;
  926. case 1:
  927. $statusName="待审核";
  928. break;
  929. case 2:
  930. $statusName="已审核";
  931. break;
  932. case 3:
  933. $statusName="被驳回";
  934. break;
  935. default:
  936. throw new GeneralException("", "商家信息的状态码不正确!!");
  937. }
  938. return $statusName;
  939. }
  940. function bizbase_trader2AboutQuery($fromSubSystem, $baseUser, $bizUser, $handleMode, $pageIndex, $pageSize, $ajaxdata, $GPC){
  941. if(intval($baseUser["subsystem"])==SUBSYS_LABOUR_MINA) $bizWorker = $bizUser;
  942. if(intval($baseUser["subsystem"])==SUBSYS_CAPITAL_MINA) $bizTrader = $bizUser;
  943. if(intval($baseUser["subsystem"])==SUBSYS_CAPITAL2_MINA) $bizTrader2 = $bizUser;
  944. switch($handleMode){
  945. case "fetchallByPlater":
  946. case "fetchallByTrader":
  947. $sqlParam=array();
  948. $verifyTime=0;
  949. //查询处理
  950. $query = isset($ajaxdata["query"]) ? $ajaxdata["query"] : $GPC["query"];
  951. if (empty($query) && !is_array($query)){//验证一下query信息集
  952. $query=" and 1=1 ";
  953. }else{
  954. $queryNew=" and 1=1 ";
  955. foreach($query as $fdName=>$fdValue){
  956. if(empty($fdName) || empty($fdValue)) continue;
  957. switch($fdName){
  958. case "memberName":
  959. if(empty(trim($fdValue))) continue;
  960. $paramName = ":qy_truename";
  961. $queryNew .=" and (bt2.true_name like concat('%',{$paramName},'%') ) ";
  962. $sqlParam[$paramName] = $fdValue;
  963. break;
  964. case "verifyTime":
  965. $verifyTime = strtotime($fdValue);
  966. break;
  967. }
  968. }
  969. $query=$queryNew;
  970. }
  971. if(!empty($bizTrader)){
  972. $query .= " and (select count(*) from biz_recruit_delegate brd ";
  973. $query .= " where brd.biz_trader2id=bt2.id and brd.biz_traderid=" . intval($bizTrader["id"])." ";
  974. if ($verifyTime > 0) $query .= " and brd.finish_datetime>=" . $verifyTime . " ";
  975. $query .= " )>0 ";
  976. }
  977. //排序处理
  978. $orderby = isset($ajaxdata["orderby"]) ? $ajaxdata["orderby"] : $GPC["orderby"];
  979. switch(intval($orderby)) {
  980. default://0-默认时间倒序
  981. $orderby=" order by bt2.id desc ";
  982. break;
  983. }
  984. //构建sql串
  985. $sqlBody="";
  986. $sqlBody.=" from biz_trader2 bt2 ";
  987. $sqlBody.=" left join base_user bt2bu on bt2bu.id=bt2.base_userid ";
  988. $sqlBody.=" where 1=1 ".$query;
  989. //查询sql及统计sql
  990. $start = (intval($pageIndex) - 1) * $pageSize;
  991. $sqlFetch =" select bt2.*,bt2bu.mobile as bt2bu_mobile ";
  992. $sqlFetch.=" ,(select count(*) from biz_recruit_delegate brd ";
  993. $sqlFetch .= " where brd.biz_trader2id=bt2.id and brd.finish_datetime>=" . time()." ) as delegate_nowtotal";
  994. $sqlFetch.=" ,(select count(*) from biz_recruit_delegate brd ";
  995. $sqlFetch .= " where brd.biz_trader2id=bt2.id and brd.finish_datetime>=" . intval($verifyTime)." ) as delegate_mantotal";
  996. $sqlFetch.=" {$sqlBody} {$orderby} limit {$start},{$pageSize} ";
  997. $pageData = pdo_fetchall($sqlFetch, $sqlParam);
  998. foreach($pageData as &$data){ //数据转换/映射
  999. $data["createtime"] = date("Y-m-d H:i:s", $data["createtime"]);
  1000. $data["remark"]=trim(explode("\n",$data["remark"])[0]);
  1001. }
  1002. $sqlSummary=" select count(*) as count ".$sqlBody.";";
  1003. $sumData=pdo_fetch($sqlSummary,$sqlParam);
  1004. return array(
  1005. "pageData" => $pageData,
  1006. "count" => intval($sumData["count"]),
  1007. );
  1008. break;
  1009. default: throw new GeneralException("","不支持的handleMode!");
  1010. }
  1011. }
  1012. /**********************商家服务信息相关逻辑**************************************/
  1013. function bizbase_traServiceEntityHandle($fromSubSystem, $baseUser, $bizUser, $handleMode, $ajaxdata, $GPC){
  1014. if(intval($baseUser["subsystem"])==SUBSYS_LABOUR_MINA) $bizWorker = $bizUser;
  1015. if(intval($baseUser["subsystem"])==SUBSYS_CAPITAL_MINA) $bizTrader = $bizUser;
  1016. if(intval($baseUser["subsystem"])==SUBSYS_CAPITAL2_MINA) $bizTrader2 = $bizUser;
  1017. switch($handleMode){
  1018. case "fetch":
  1019. $bizId = isset($ajaxdata["bizId"]) ? $ajaxdata["bizId"] : $GPC["bizId"];
  1020. if (empty($bizId)) throw new GeneralException("", "没有传递必要的bizId参数");
  1021. $backdata = pdo_fetch("select * from biz_trader_service where id=" . intval($bizId));
  1022. if(empty($backdata)) throw new GeneralException("", "无此记录,请核查bizId是否正确!");
  1023. if (intval($backdata["deleted"]) != 0) throw new GeneralException("", "此记录已删除了,请核查后再处理!");
  1024. //数据转换 //属性映射
  1025. $backdata["profile_photos"]=json_decode($backdata["profile_photos"],true);
  1026. return $backdata;
  1027. break;
  1028. case "delete":
  1029. $reason = isset($ajaxdata["reason"]) ? $ajaxdata["reason"] : $GPC["reason"];
  1030. $bizId = isset($ajaxdata["bizId"]) ? $ajaxdata["bizId"] : $GPC["bizId"];
  1031. if (empty($bizId)) throw new GeneralException("", "没有传递必要的bizId参数");
  1032. $backdata = pdo_fetch("select * from biz_trader_service where id=" . intval($bizId));
  1033. if(empty($backdata)) throw new GeneralException("", "无此记录,请核查bizId是否正确!");
  1034. if (intval($backdata["deleted"]) != 0) throw new GeneralException("", "此记录已删除了,请核查后再处理!");
  1035. $sqlParam=array();
  1036. $sqlParam[":id"]=intval($backdata["id"]);
  1037. $sqlParam[":nowtime"]=time();
  1038. $sqlParam[":remark"]="[".date("Y-m-d H:i:s",time())."] 删除记录 {$reason} ";
  1039. $sqlTemp=" update biz_trader_service set";
  1040. $sqlTemp.=" updatetime=:nowtime,deleted=1,remark=concat(:remark,ifnull(remark,'')) ";
  1041. $sqlTemp.=" where id=:id; ";
  1042. $backdata = pdo_query($sqlTemp, $sqlParam);
  1043. return $backdata;
  1044. break;
  1045. case "upsert":
  1046. if(intval($baseUser["subsystem"]!=intval(SUBSYS_PLAT_PCWEB))) throw new GeneralException("", "只能是平台发布商家服务信息");
  1047. $bizData = isset($ajaxdata["bizData"]) ? $ajaxdata["bizData"] : $GPC["bizData"];
  1048. if (empty($bizData)) throw new GeneralException("", "没有传递必要的bizData参数");
  1049. /***字段参数收集并校验**start***/
  1050. $saveData=array();
  1051. $saveData["title"]=trim($bizData["title"]);
  1052. if(empty($saveData["title"])) throw new GeneralException("","标题必填");
  1053. $saveData["title2"]=trim($bizData["title2"]);
  1054. $saveData["profile_photo"]=trim($bizData["profile_photo"]);
  1055. $saveData["profile_photos"]=json_encode($bizData["profile_photos"]);
  1056. $saveData["price"] = round(floatval($bizData["price"]), 2);
  1057. $saveData["content"]=trim($bizData["content"]);
  1058. $saveData["company_name"]=trim($bizData["company_name"]);
  1059. $saveData["linker_name"]=trim($bizData["linker_name"]);
  1060. $saveData["linker_phone"]=trim($bizData["linker_phone"]);
  1061. $saveData["company_addr"]=trim($bizData["company_addr"]);
  1062. $saveData["remark"]=trim($bizData["remark"]);
  1063. /***字段参数收集并校验**finish***/
  1064. if(intval($bizData["id"])<=0){
  1065. $saveData["createtime"]=time();
  1066. $insertId = pdo_insert("biz_trader_service",$saveData);
  1067. if (intval($insertId)<=0) throw new GeneralException("", "没有返回insertId,插入失败!");
  1068. return $insertId;
  1069. }else{
  1070. $oldData = pdo_fetch("select `id` from biz_trader_service where id=" . intval($bizData["id"]));
  1071. if (empty($oldData)) throw new GeneralException("", "此id对应的记录不存在,请核查bizId是否正确!");
  1072. $saveData["updatetime"]=time();
  1073. $backdata = pdo_update("biz_trader_service", $saveData,array("id"=>$bizData["id"]));
  1074. return $backdata;
  1075. }
  1076. break;
  1077. default:
  1078. throw new GeneralException("","不支持的handleMode!");
  1079. }
  1080. }
  1081. function bizbase_traServiceAboutQuery($fromSubSystem, $baseUser, $bizUser, $handleMode, $pageIndex, $pageSize, $ajaxdata, $GPC){
  1082. if(intval($baseUser["subsystem"])==SUBSYS_LABOUR_MINA) $bizWorker = $bizUser;
  1083. if(intval($baseUser["subsystem"])==SUBSYS_CAPITAL_MINA) $bizTrader = $bizUser;
  1084. if(intval($baseUser["subsystem"])==SUBSYS_CAPITAL2_MINA) $bizTrader2 = $bizUser;
  1085. switch($handleMode){
  1086. case "fetchallByPlater":
  1087. case "fetchallByTrader":
  1088. $sqlParam=array();
  1089. $verifyTime=0;
  1090. //查询处理
  1091. $query = isset($ajaxdata["query"]) ? $ajaxdata["query"] : $GPC["query"];
  1092. if (empty($query) && !is_array($query)){//验证一下query信息集
  1093. $query=" and 1=1 ";
  1094. }else{
  1095. $queryNew=" and 1=1 ";
  1096. foreach($query as $fdName=>$fdValue){
  1097. if(empty($fdName) || empty($fdValue)) continue;
  1098. switch($fdName){
  1099. case "companyName":
  1100. if(empty(trim($fdValue))) continue;
  1101. $paramName = ":qy_companyName";
  1102. $queryNew .=" and (bts.company_name like concat('%',{$paramName},'%') ) ";
  1103. $sqlParam[$paramName] = $fdValue;
  1104. break;
  1105. case "title":
  1106. $paramName = ":qy_title";
  1107. $queryNew .=" and (bts.title like concat('%',{$paramName},'%') ) ";
  1108. $sqlParam[$paramName] = $fdValue;
  1109. break;
  1110. }
  1111. }
  1112. $query=$queryNew;
  1113. }
  1114. //排序处理
  1115. $orderby = isset($ajaxdata["orderby"]) ? $ajaxdata["orderby"] : $GPC["orderby"];
  1116. switch(intval($orderby)) {
  1117. default://0-默认时间倒序
  1118. $orderby=" order by bts.id desc ";
  1119. break;
  1120. }
  1121. //构建sql串
  1122. $sqlBody="";
  1123. $sqlBody.=" from biz_trader_service bts ";
  1124. $sqlBody.=" where 1=1 and `deleted`=0 ".$query;
  1125. //查询sql及统计sql
  1126. $start = (intval($pageIndex) - 1) * $pageSize;
  1127. $sqlFetch =" select bts.* ";
  1128. $sqlFetch.=" {$sqlBody} {$orderby} limit {$start},{$pageSize} ";
  1129. $pageData = pdo_fetchall($sqlFetch, $sqlParam);
  1130. foreach($pageData as &$data){ //数据转换/映射
  1131. $data["createtime"] = date("Y-m-d H:i:s", $data["createtime"]);
  1132. $data["profile_photos"]=json_decode($data["profile_photos"],true);
  1133. $data["remark"]=trim(explode("\n",$data["remark"])[0]);
  1134. }
  1135. $sqlSummary=" select count(*) as count ".$sqlBody.";";
  1136. $sumData=pdo_fetch($sqlSummary,$sqlParam);
  1137. return array(
  1138. "pageData" => $pageData,
  1139. "count" => intval($sumData["count"]),
  1140. );
  1141. break;
  1142. default: throw new GeneralException("","不支持的handleMode!");
  1143. }
  1144. }