Member.php 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | [ WE CAN DO IT MORE SIMPLE ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2018-2020 rights reserved.
  6. // +----------------------------------------------------------------------
  7. // |
  8. // +----------------------------------------------------------------------
  9. // | Date: 2020-08-31 20:43
  10. // +----------------------------------------------------------------------
  11. namespace app\system\controller;
  12. use app\BaseController;
  13. use app\lib\OrderLib;
  14. use app\model\api\InfoAudit;
  15. use app\model\api\PayTrade;
  16. use library\utils\WxpayV2 as wxpayApi;
  17. use app\model\api\User as UserModel;
  18. use app\model\api\UserDetail as UserDetailModel;
  19. use app\model\api\UserScoreDetail as UserScoreDetailModel;
  20. use app\model\api\UserShowTemplate;
  21. use library\services\UtilService;
  22. use app\Request;
  23. use think\facade\Db;
  24. class Member extends BaseController
  25. {
  26. /**
  27. * 会员列表
  28. * @param Request $request
  29. * @return mixed
  30. */
  31. public function list(Request $request)
  32. {
  33. $pageSize = 50;
  34. $post = UtilService::getMore([
  35. ['page',1],
  36. ['pageSize',50],
  37. ['nickname',''],
  38. ['uid',''],
  39. ['parent_uid',''],
  40. ['mobile',''],
  41. ['status',''],
  42. ['time',[]],
  43. ],$request);
  44. $data = (new UserModel)->getDataList($post,"*",1);
  45. return app('json')->success([
  46. 'list' => $data["list"],
  47. 'pageCount' => $data["totalCount"],
  48. 'pageSize' => $data["pageSize"],
  49. 'page' => $data["page"],
  50. ]);
  51. }
  52. /**
  53. * 编辑
  54. */
  55. public function save(Request $request){
  56. $post = UtilService::getMore([
  57. ['uid','0'],
  58. ['status',''],
  59. ['name',''],
  60. ['nickname',''],
  61. ],$request);
  62. $uid = (int)$post["uid"];
  63. if(empty($uid)){
  64. return app('json')->fail("参数错误");
  65. }
  66. unset($post["uid"]);
  67. $r=0;
  68. if(!in_array((string)$post["status"],['1','-1'])){
  69. return app('json')->success("状态错误");
  70. }
  71. //用户信息
  72. $save=[];
  73. $save["status"] = $post["status"];
  74. if(!empty($post["name"])){
  75. $save["name"] = $post["name"];
  76. }
  77. if(!empty($post["nickname"])){
  78. $save["nickname"] = $post["nickname"];
  79. }
  80. $r = (new UserModel)->where("uid",$uid)->update($save);
  81. return app('json')->success("数据保存成功");
  82. }
  83. /**
  84. * 会员收益明细列表
  85. * @param Request $request
  86. * @return mixed
  87. */
  88. public function moneyDetail (Request $request)
  89. {
  90. $pageSize = 50;
  91. $post = UtilService::getMore(
  92. [
  93. ['page', '1'],
  94. ['uid', '0'],
  95. ['mobile', ''],
  96. ['time', []],
  97. ['type', ''],
  98. ['code', ''],
  99. ], $request
  100. );
  101. $where = [];
  102. if (!empty($post['uid'])){
  103. $where[]=["d.uid","=",$post['uid']];
  104. }
  105. if (!empty($post['mobile'])) {
  106. $m = Db::name("user")->where("mobile",$post['mobile'])->find();
  107. if(!empty($m)) {
  108. $where[]=["d.uid","=",$m['uid']];
  109. }
  110. }
  111. $startTime = "";
  112. $endTime = "";
  113. if(!empty($post['time'][0]) && !empty($post['time'][1])) {
  114. $startTime = strtotime($post['time'][0]);
  115. $endTime = strtotime($post['time'][1]);
  116. $where[]=["d.time","between","{$startTime},{$endTime}"];
  117. }
  118. if (!empty($post['type']) && in_array(strval($post['type']), ["1","-1"])) {
  119. $where[]=["d.type","=",$post['type']];
  120. }
  121. if(!empty($post['code']) && $post['code']!="all"){
  122. $where[]=["d.code","=",$post['code']];
  123. }
  124. $data = (new UserDetailModel)
  125. ->alias("d")
  126. ->field("d.*,u.mobile")
  127. ->leftJoin("user u", "u.uid = d.uid")
  128. ->where($where)
  129. ->page((int)$post["page"], $pageSize)
  130. ->order("d.id","desc")
  131. ->select()
  132. ->toArray();
  133. $pageCount = (new UserDetailModel)->alias("d")->where($where)->count();
  134. foreach($where as $k=>$v){
  135. if($v[0]=="d.type"){
  136. array_splice($where,$k,1);
  137. }
  138. }
  139. //收入
  140. $inWhere = $where;
  141. $inWhere[]=["d.type","=",1];
  142. $inTotal = (new UserDetailModel)->alias("d")->where($inWhere)->sum("d.into");
  143. //支出
  144. $outWhere = $where;
  145. $outWhere[]=["d.type","=",-1];
  146. $outTotal = (new UserDetailModel)->alias("d")->where($outWhere)->sum("d.into");
  147. $result = UtilService::getParam(
  148. [
  149. 'id',
  150. 'uid',
  151. 'mobile',
  152. 'title',
  153. 'content',
  154. 'type',
  155. 'into',
  156. 'money',
  157. ['time', 'time', 'date("Y-m-d H:i:s",$1)'],
  158. ], $data);
  159. return app('json')->success([
  160. 'list' => $result,
  161. 'pageCount' => $pageCount,
  162. 'pageSize' => $pageSize,
  163. 'page' => $post['page'],
  164. 'inTotal' => empty($inTotal) ? 0 : floatval($inTotal),
  165. 'outTotal' => empty($outTotal)? 0 : floatval($outTotal),
  166. ]);
  167. }
  168. /**
  169. * 收益增/减
  170. * @param Request $request
  171. */
  172. public function moneyDetailSave(Request $request)
  173. {
  174. $post = UtilService::getMore([
  175. ['uid', '', 'empty', '参数错误'],
  176. ['type', '1'],
  177. ['into', '0', 'gt|0', '输入值错误'],
  178. ['othen', ''],
  179. ], $request);
  180. $userData = (new UserModel)->where("uid",$post["uid"])->find();
  181. if(empty($userData)){
  182. return app('json')->fail('用户不存在,请输入正确的用户uid');
  183. }
  184. if(!in_array((string)$post["type"],["1","-1"])){
  185. return app('json')->fail('请选择增减');
  186. }
  187. $post["into"] = bcadd("0",$post["into"],2);
  188. if(!is_numeric($post["into"]) || $post["into"]<=0){
  189. return app('json')->fail('请输入正确的金额');
  190. }
  191. if ($post['type'] == 1)
  192. $bool = (new UserDetailModel)->adminAddMoney($userData['uid'], $post['into'], $request->adminInfo['id'],$post['othen']);
  193. if ($post['type'] == -1){
  194. if($userData["money"]-$post['into']<0){
  195. return app('json')->fail('余额不足');
  196. }
  197. $bool = (new UserDetailModel)->adminCutMoney($userData['uid'], $post['into'], $request->adminInfo['id'],$post['othen']);
  198. }
  199. if ($bool)
  200. return app('json')->success('操作成功');
  201. else
  202. return app('json')->fail('操作失败');
  203. }
  204. /**
  205. * 钻石收益明细列表
  206. * @param Request $request
  207. * @return mixed
  208. */
  209. public function scoreDetail (Request $request)
  210. {
  211. $pageSize = 50;
  212. $post = UtilService::getMore(
  213. [
  214. ['page', '1'],
  215. ['uid', '0'],
  216. ['mobile', ''],
  217. ['type', ''],
  218. ['code', ''],
  219. ['time', []],
  220. ], $request
  221. );
  222. $where = [];
  223. if (!empty($post['uid'])){
  224. $where[]=["d.uid","=",$post['uid']];
  225. }else if (!empty($post['mobile'])) {
  226. $m = Db::name("user")->where("mobile",$post['mobile'])->find();
  227. if(!empty($m)) {
  228. $where[]=["d.uid","=",$m['uid']];
  229. }
  230. }
  231. $startTime = "";
  232. $endTime = "";
  233. if(!empty($post['time'][0]) && !empty($post['time'][1])) {
  234. $startTime = strtotime($post['time'][0]);
  235. $endTime = strtotime($post['time'][1]);
  236. $where[]=["d.time","between","{$startTime},{$endTime}"];
  237. }
  238. if (!empty($post['type']) && in_array(strval($post['type']), ["1","-1"])) {
  239. $where[]=["d.type","=",$post['type']];
  240. }
  241. if (!empty($post['code'])) {
  242. $where[]=["d.code","=",$post['code']];
  243. }
  244. $data = (new UserScoreDetailModel)
  245. ->alias("d")
  246. ->field("d.*,u.mobile")
  247. ->leftJoin("user u", "u.uid = d.uid")
  248. ->where($where)
  249. ->page((int)$post["page"], $pageSize)
  250. ->order("d.id","desc")
  251. ->select()
  252. ->toArray();
  253. $pageCount = (new UserScoreDetailModel)->alias("d")->where($where)->count();
  254. foreach($where as $k=>$v){
  255. if($v[0]=="d.type"){
  256. array_splice($where,$k,1);
  257. }
  258. }
  259. //收入
  260. $inWhere = $where;
  261. $inWhere[]=["d.type","=",1];
  262. $inTotal = (new UserScoreDetailModel)->alias("d")->where($inWhere)->sum("d.v");
  263. //支出
  264. $outWhere = $where;
  265. $outWhere[]=["d.type","=",-1];
  266. $outTotal = (new UserScoreDetailModel)->alias("d")->where($outWhere)->sum("d.v");
  267. $result = UtilService::getParam(
  268. [
  269. 'id',
  270. 'uid',
  271. 'mobile',
  272. 'title',
  273. 'content',
  274. 'type',
  275. ['into','v'],
  276. 'money',
  277. ['time', 'time', 'date("Y-m-d H:i:s",$1)'],
  278. ], $data);
  279. return app('json')->success([
  280. 'list' => $result,
  281. 'pageCount' => $pageCount,
  282. 'pageSize' => $pageSize,
  283. 'page' => $post['page'],
  284. 'inTotal' => empty($inTotal) ? 0 : floatval($inTotal),
  285. 'outTotal' => empty($outTotal)? 0 : floatval($outTotal),
  286. ]);
  287. }
  288. /**
  289. * 积分增/减
  290. * @param Request $request
  291. */
  292. public function scoreDetailSave(Request $request)
  293. {
  294. $post = UtilService::getMore([
  295. ['uid', '', 'empty', '参数错误'],
  296. ['type', '1'],
  297. ['into', '0', 'gt|0', '输入值错误'],
  298. ['othen', ''],
  299. ], $request);
  300. $userData = (new UserModel)->where("uid",$post["uid"])->find();
  301. if(empty($userData)){
  302. return app('json')->fail('用户不存在,请输入正确的用户uid');
  303. }
  304. if ($post['type'] == 1)
  305. $bool = (new UserScoreDetailModel)->adminAddMoney($userData['uid'], intval($post['into']), $request->adminInfo['id'],$post['othen']);
  306. if ($post['type'] == -1){
  307. if($userData["score"]-$post['into']<0){
  308. return app('json')->fail('剩余积分不足');
  309. }
  310. $bool = (new UserScoreDetailModel)->adminCutMoney($userData['uid'], intval($post['into']), $request->adminInfo['id'],$post['othen']);
  311. }
  312. if ($bool)
  313. return app('json')->success('操作成功');
  314. else
  315. return app('json')->fail('操作失败');
  316. }
  317. /**
  318. * 获取会员数据
  319. * @param Request $request
  320. * @return mixed
  321. */
  322. public function getItem(Request $request)
  323. {
  324. $post = UtilService::getMore([
  325. ['uid', 1],
  326. ]);
  327. $data = (new UserModel)
  328. ->alias("u")
  329. ->field("u.uid,u.mobile,u.nickname,u.avatar,u.status,u.regtime,u.lasttime,u.parent_uid.p.nickname as parent_nickname")
  330. ->leftJoin("user p","p.uid = u.parent_uid")
  331. ->where("u.uid",$post["uid"])
  332. ->find()
  333. ->toArray();
  334. if(!empty($data)){
  335. $data["regtime"] = date("Y-m-d H:i:s",$data["regtime"]);
  336. $data["lasttime"] = date("Y-m-d H:i:s",$data["lasttime"]);
  337. }
  338. return app('json')->success(empty($data) ? [] : $data);
  339. }
  340. public function shopSave(Request $request){
  341. $post = UtilService::getMore([
  342. ['id','','empty','参数错误'],
  343. ['name','','empty','请输入名称'],
  344. ['tel','','empty','请输入联系电话'],
  345. ['lx_name','','empty','请输入联系人'],
  346. ['address','','empty','请输入门店地址'],
  347. ['longitude',''],
  348. ['latitude',''],
  349. ['is_show',''],
  350. ],$request);
  351. $id = (int)$post["id"];
  352. if(empty($id)){
  353. return app('json')->fail("参数错误");
  354. }
  355. unset($post["id"]);
  356. $shopSave=[
  357. "name" => $post["name"],
  358. "tel" => $post["tel"],
  359. "address" => $post["address"],
  360. "lx_name" => $post["lx_name"],
  361. "longitude" => $post["longitude"],
  362. "latitude" => $post["latitude"],
  363. "is_show" => $post["is_show"]==1?1:0,
  364. ];
  365. if(empty($shopSave["name"])){
  366. return app('json')->fail("请输入门店名称");
  367. }
  368. if(empty($shopSave["tel"])){
  369. return app('json')->fail("请输入门店联系电话");
  370. }
  371. if(empty($shopSave["address"])){
  372. return app('json')->fail("请输入门店地址");
  373. }
  374. if(empty($shopSave["lx_name"])){
  375. return app('json')->fail("请输入门店联系人");
  376. }
  377. (new UserShopModel)->where("id",$id)->update($shopSave);
  378. return app('json')->success("数据保存成功");
  379. }
  380. public function shopList(Request $request){
  381. $pageSize = 50;
  382. $post = UtilService::getMore(
  383. [
  384. ['page', '1'],
  385. ['uid', ''],
  386. ['is_show', ''],
  387. ['mobile', ''],
  388. ['name', ''],
  389. ['pageSize', ''],
  390. ], $request);
  391. $where = [];
  392. if(!empty($post["pageSize"]) && $post["pageSize"]>50){
  393. $pageSize = (int)$post["pageSize"];
  394. }
  395. //用户
  396. if (!empty($post['uid'])){
  397. $where[]=["t.uid","=",$post['uid']];
  398. }else if (!empty($post['mobile'])) {
  399. $m = Db::name("user")->where("mobile",$post['mobile'])->find();
  400. if(!empty($m)) {
  401. $where[]=["t.uid","=",$m['uid']];
  402. }
  403. }
  404. if(is_numeric($post['is_show']) && in_array((string)$post['is_show'],['0','1'])) {
  405. $where[]=["t.is_show","=",(int)$post['is_show']];
  406. }
  407. if(!empty($post['name'])){
  408. $where[]=["t.name","like","%{$post['name']}%"];
  409. }
  410. $data = (new UserShopModel)
  411. ->alias("t")
  412. ->field("t.*,u.nickname as nickname")
  413. ->leftJoin("user u" , "u.uid = t.uid")
  414. ->where($where)
  415. ->page((int)$post["page"], $pageSize)
  416. ->order("t.id","desc")
  417. ->select()
  418. ->toArray();
  419. $pageCount = (new UserShopModel)->alias("t")->where($where)->count();
  420. $result = UtilService::getParam(
  421. [
  422. 'id',
  423. 'uid',
  424. 'nickname',
  425. 'name',
  426. 'area',
  427. 'address',
  428. 'tel',
  429. 'lx_name',
  430. 'longitude',
  431. "latitude",
  432. 'is_show',
  433. ['time', 'time', function($item){
  434. return empty($item) ? "--" : date("Y-m-d H:i:s",$item);
  435. }],
  436. ], $data);
  437. return app('json')->success([
  438. 'list' => $result,
  439. 'pageCount' => $pageCount,
  440. 'pageSize' => $pageSize,
  441. 'page' => $post['page'],
  442. ]);
  443. }
  444. /**
  445. * 支付任务列表
  446. * @param \app\model\api\Request $request
  447. */
  448. public function payTradeList(Request $request){
  449. $pageSize = 50;
  450. $post = UtilService::getMore(
  451. [
  452. ['page', '1'],
  453. ['uid', ''],
  454. ['status', ''],
  455. ['mobile', ''],
  456. ['type', ''],
  457. ['pay_no', ''],
  458. ['order_id', ''],
  459. ['time', []],
  460. ], $request);
  461. $where = [];
  462. //用户
  463. if (!empty($post['uid'])){
  464. $where[]=["t.uid","=",$post['uid']];
  465. }else if (!empty($post['mobile'])) {
  466. $m = Db::name("user")->where("mobile",$post['mobile'])->find();
  467. if(!empty($m)) {
  468. $where[]=["t.uid","=",$m['uid']];
  469. }
  470. }
  471. if(is_numeric($post['status']) && in_array((string)$post['status'],['0','1'])) {
  472. $where[]=["t.status","=",(int)$post['status']];
  473. }
  474. if(!empty($post['pay_type']) && in_array($post['pay_type'],['wxpay','system'])) {
  475. $where[]=["t.pay_type","=",$post['pay_type']];
  476. }
  477. if(!empty($post['type']) && in_array($post['type'],['pro','temp','activity'])) {
  478. $where[]=["t.type","=",$post['type']];
  479. }
  480. if(!empty($post['pay_no'])){
  481. $where[]=["t.pay_no","=",$post['pay_no']];
  482. }
  483. if(!empty($post['order_id'])){
  484. $where[]=["t.order_id","=",$post['order_id']];
  485. }
  486. $startTime = "";
  487. $endTime = "";
  488. if(!empty($post['time'][0]) && !empty($post['time'][1])) {
  489. $startTime = strtotime($post['time'][0]);
  490. $endTime = strtotime($post['time'][1]);
  491. $where[]=["t.time","between","{$startTime},{$endTime}"];
  492. }
  493. $data = (new PayTrade)
  494. ->alias("t")
  495. ->field("t.*,u.nickname as nickname,a.username as admin_name")
  496. ->leftJoin("user u" , "u.uid = t.uid")
  497. ->leftJoin("admin a", "a.id = t.admin_id")
  498. ->where($where)
  499. ->page((int)$post["page"], $pageSize)
  500. ->order("t.id","desc")
  501. ->select()
  502. ->toArray();
  503. $pageCount = (new PayTrade)->alias("t")->where($where)->count();
  504. $result = UtilService::getParam(
  505. [
  506. 'id',
  507. 'uid',
  508. 'nickname',
  509. "admin_id",
  510. "admin_name",
  511. 'pay_no',
  512. 'out_trade_no',
  513. 'pay_no',
  514. 'order_id',
  515. 'pay_type',
  516. 'type',
  517. 'money',
  518. 'content',
  519. "d_json",
  520. 'status',
  521. 'mono',
  522. ['time', 'time', function($item){
  523. return empty($item) ? "--" : date("Y-m-d H:i:s",$item);
  524. }],
  525. ['pay_time' , 'pay_time', function($item){
  526. return empty($item) ? "--" : date("Y-m-d H:i:s",$item);
  527. }],
  528. ['pay_json', 'pay_json', function($item){
  529. if(empty($item)){
  530. return "";
  531. }
  532. $payData = json_decode($item,true);
  533. return $payData;
  534. }],
  535. ], $data);
  536. return app('json')->success([
  537. 'list' => $result,
  538. 'pageCount' => $pageCount,
  539. 'pageSize' => $pageSize,
  540. 'page' => $post['page'],
  541. ]);
  542. }
  543. /**
  544. * 搜索交易数据
  545. * @param Request $request
  546. */
  547. public function searchPayTrade(Request $request){
  548. $post = UtilService::getMore(
  549. [
  550. ['id', '','empty',''],
  551. ], $request);
  552. $data = (new PayTrade)->where("id",$post["id"])->find();
  553. if(empty($data)){
  554. return app("json")->fail("数据不存在");
  555. }
  556. if($data["status"]==1 && !empty($data["pay_json"])){
  557. return app("json")->success("交易支付成功", json_decode($data["pay_json"],true));
  558. }
  559. $out_trade_no = $data["out_trade_no"];
  560. //微信支付
  561. if($data["pay_type"]=="wxpay"){
  562. $wxpay = new wxpayApi();
  563. $resAr = $wxpay->searchOrderQuery($out_trade_no);
  564. if(empty($resAr) || !is_array($resAr)){
  565. return app("json")->fail("查询失败");
  566. }
  567. if(empty($resAr["trade_state"])){
  568. return app("json")->fail("查询状态错误");
  569. }
  570. if($resAr["trade_state"]=="NOTPAY"){
  571. return app("json")->fail("未支付");
  572. }
  573. if($resAr["trade_state"]=="REFUND"){
  574. return app("json")->fail("转入退款");
  575. }
  576. if($resAr["trade_state"]=="CLOSED"){
  577. return app("json")->fail("已关闭");
  578. }
  579. if($resAr["trade_state"]=="REVOKED"){
  580. return app("json")->fail("已撤销(付款码支付)");
  581. }
  582. if($resAr["trade_state"]=="USERPAYING"){
  583. return app("json")->fail("用户支付中(付款码支付)");
  584. }
  585. if($resAr["trade_state"]=="PAYERROR"){
  586. return app("json")->fail("支付失败(其他原因,如银行返回失败)");
  587. }
  588. if($resAr["trade_state"]=="ACCEPT"){
  589. return app("json")->fail("已接收,等待扣款");
  590. }
  591. if($resAr["trade_state"]=="SUCCESS"){
  592. if(empty($resAr["payMoney"])){
  593. return app("json")->fail("交易支付成功,但是查询不到金额信息");
  594. }
  595. $payDataInfo = [
  596. 'totalMoney' =>empty($resAr["total_fee"]) ? "未返回" : $resAr["total_fee"]/100,
  597. 'payMoney' =>empty($resAr["cash_fee"]) ? "未返回" : $resAr["cash_fee"]/100,
  598. 'payTradeNo' =>empty($resAr["transaction_id"]) ? "未返回" : $resAr["transaction_id"],
  599. 'outTradeNo' =>empty($resAr["out_trade_no"]) ? "未返回" : $resAr["out_trade_no"],
  600. "tradeStatus"=>empty($resAr["trade_state"]) ? "未返回" : $resAr["trade_state"],
  601. "payTime" =>empty($resAr["time_end"]) ? "未返回" : $resAr["time_end"],
  602. "attach" =>empty($resAr["attach"]) ? "未返回" : $resAr["attach"],
  603. ];
  604. //重新调用支付处理
  605. if(!empty($data["o_id"]) && $data["status"]==0){
  606. $pay_json = json_encode($payDataInfo);
  607. (new OrderLib)->orderPay($payDataInfo["outTradeNo"], $pay_json);
  608. }
  609. return app("json")->success("交易支付成功",$payDataInfo);
  610. }
  611. return app("json")->fail("支付状态未知");
  612. }
  613. return app("json")->fail("查询失败");
  614. }
  615. /**
  616. * 用户模板列表
  617. * @param Request $request
  618. */
  619. public function showTemplateList(Request $request){
  620. $post = UtilService::getMore([
  621. ['page', 1],
  622. ['pageSize', 50],
  623. ['uid', ''],
  624. ['mobile', ''],
  625. ], $request);
  626. $post["pageSize"] = $post["pageSize"]>50 ? 50 : (int)$post["pageSize"];
  627. $post["page"] = $post["page"]<=0 ? 1 : (int)$post["page"];
  628. $where=[];
  629. //用户
  630. if (!empty($post['uid'])){
  631. $where[]=["ut.uid","=",$post['uid']];
  632. }else if (!empty($post['mobile'])) {
  633. $m = Db::name("user")->where("mobile",$post['mobile'])->find();
  634. if(!empty($m)) {
  635. $where[]=["ut.uid","=",$m['uid']];
  636. }
  637. }
  638. $totalCount = (new UserShowTemplate)->alias("ut")->where($where)->count();
  639. $data=null;
  640. if($totalCount>0){
  641. $data = (new UserShowTemplate)
  642. ->field("ut.id,ut.uid,ut.start_time,t.id as show_template_id,t.title,t.price,t.old_price,t.status,t.imgs,t.is_hot,t.is_recommend,t.code,look_count,t.real_sales,t.unreal_sales,ut.is_default,u1.mobile,u1.nickname")
  643. ->alias("ut")
  644. ->join("show_template t", "t.id = ut.show_template_id","left")
  645. ->leftJoin("user u1","u1.uid = ut.uid")
  646. ->where($where)
  647. ->order("ut.id", "desc")
  648. ->page($post["page"], $post["pageSize"])
  649. ->select();
  650. foreach($data as $k=>$v){
  651. $data[$k]["is_use"] = 1;//是否已经购买或者可以使用
  652. $data[$k]["imgs"] = getImageAr($v["imgs"]);
  653. $data[$k]["img"] = empty($data[$k]["imgs"]) ? "" : $data[$k]["imgs"][0];
  654. $data[$k]["sales_count"] = $data[$k]["real_sales"] + $data[$k]["unreal_sales"];
  655. unset($data[$k]["real_sales"]);
  656. unset($data[$k]["unreal_sales"]);
  657. $data[$k]["start_time"] = date("Y-m-d H:i:s",$v["start_time"]);
  658. }
  659. }
  660. $data = empty($data)?[]:$data;
  661. return app('json')->success(["list" => $data, "pageSize" => $post["pageSize"],"page"=>$post["page"],"pageCount"=>$totalCount]);
  662. }
  663. /**
  664. * 修改从业人员显示
  665. * @param $uidaa
  666. * @param $is_show
  667. * @return \app\model\api\InfoAudit|void
  668. */
  669. public function setAuthShow($uid){
  670. $show = InfoAudit::where('uid',$uid)->column('is_show');
  671. if($show == 0){
  672. $show = 1;
  673. }
  674. if($show == 1){
  675. $show = 0;
  676. }
  677. $res = InfoAudit::where('uid',$uid)->update(['is_show'=>$show]);
  678. if($res)return app('json')->success('OK');
  679. }
  680. /**
  681. * 获取从业人员列表
  682. * @param Request $request
  683. * @return type
  684. */
  685. public function getWorkerList(Request $request){
  686. $pageSize = 50;
  687. $post = UtilService::getMore([
  688. ['page',1],
  689. ['pageSize',50],
  690. ['nickname',''],
  691. ['uid',''],
  692. ['parent_uid',''],
  693. ['mobile',''],
  694. ['status',''],
  695. ['work_type_id',''],
  696. ['is_show',''],
  697. ['time',[]],
  698. ],$request);
  699. $data = (new UserModel)->getWorkerList($post,"*",1);
  700. return app('json')->success([
  701. 'list' => $data["list"],
  702. 'pageCount' => $data["totalCount"],
  703. 'pageSize' => $data["pageSize"],
  704. 'page' => $data["page"],
  705. ]);
  706. }
  707. /**
  708. * 从业人员信息设置
  709. * @param Request $request
  710. * @return type
  711. */
  712. public function workerSave(Request $request){
  713. $post = UtilService::getMore([
  714. ['uid','',"empty","参数错误"],
  715. ['show_temp_seq','0',"is_numeric","请输入正确的排序值"],
  716. ],$request);
  717. $r=0;
  718. $save=[];
  719. $save["show_temp_seq"] = (int)$post["show_temp_seq"];
  720. $r = (new UserModel)->where("uid",$post["uid"])->update($save);
  721. return app('json')->success("数据保存成功");
  722. }
  723. }