UserController.php 57 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Http\Controllers\Controller;
  4. use Illuminate\Http\Request as Req;
  5. use Illuminate\Support\Facades\DB;
  6. use Request;
  7. /**
  8. *
  9. */
  10. class UserController extends Controller
  11. {
  12. /**
  13. *
  14. * [Colse description]
  15. */
  16. public function index(Req $req)
  17. {
  18. $request = array();
  19. $request['account'] = isset($req->account) ? trim($req->account) : null;
  20. $request['agent_name'] = isset($req->agent_name) ? trim($req->agent_name) : null;
  21. $request['select_type'] = isset($req->select_type) ? trim($req->select_type) : null;
  22. $request['select_value'] = isset($req->select_value) ? trim($req->select_value) : null;
  23. $request['grade'] = isset($req->grade) ? trim($req->grade) : null;
  24. $request['statuss'] = isset($req->statuss) ? trim($req->statuss) : null;
  25. $request['rechargenum_small'] = isset($req->rechargenum_small) ? trim($req->rechargenum_small) : null;
  26. $request['rechargenum_big'] = isset($req->rechargenum_big) ? trim($req->rechargenum_big) : null;
  27. $request['takenum_small'] = isset($req->takenum_small) ? trim($req->takenum_small) : null;
  28. $request['takenum_big'] = isset($req->takenum_big) ? trim($req->takenum_big) : null;
  29. $request['takenum_small'] = isset($req->takenum_small) ? trim($req->takenum_small) : null;
  30. $request['last_startime'] = isset($req->last_startime) ? trim($req->last_startime) : null;
  31. $request['last_endtime'] = isset($req->last_endtime) ? trim($req->last_endtime) : null;
  32. $request['regist_startime'] = isset($req->regist_startime) ? trim($req->regist_startime) : null;
  33. $request['regist_endtime'] = isset($req->regist_endtime) ? trim($req->regist_endtime) : null;
  34. $request['status'] = isset($req->status) ? trim($req->status) : null;
  35. $request['group'] = isset($req->group) ? intval($req->group) : null;
  36. $request['sureblurs'] = isset($req->sureblurs) ? $req->sureblurs : 'on';
  37. //用户组数组
  38. $request['select_group']=\App\Models\Account_group::getAllInfo();
  39. $Account = new \App\Models\Account();
  40. $request['gradelist']=$Account->getUserGrade();
  41. $page = Request::has('page') ? Request::get('page') : '';
  42. $list = Request::has('limit') ? Request::get('limit') : '';
  43. $dt = \App\Lib\DataTable\DataTable::init();
  44. $dt->setDataSource('/admin/user/user?page=' . $page . '&limit=' . $list);
  45. $dt->setLang('user');
  46. // $dt->addColsFields('id', array('sort' => false));
  47. $dt->addColsFields('account_grade', array('templet' => '#userdetail', 'width'=>120,'sort' => false));
  48. $dt->addColsFields('cash', array('templet' => '#moneyrecord','width'=>90));
  49. $dt->addColsFields('name', array('templet' => '#selectname', 'width'=>90,'sort' => false));
  50. $dt->addColsFields('register_last_time',array('width'=>160,'templet'=>'#register_last', 'sort' => false)); //'templet' => '#selectname',
  51. $dt->addColsFields('register_log_ip', array('templet' => '#selectip','width'=>130, 'sort' => false));
  52. $dt->addColsFields('register_log_url', array('width'=>150,'sort' => false, 'templet' => '#selecturl','display'=>'inline-block','overflow'=>'hidden'));
  53. $dt->addColsFields('phone', array( 'sort' => false, 'width'=>120));
  54. // $dt->addColsFields('qq', array('width'=>120, 'sort' => false));
  55. // $dt->addColsFields('wechat', array('width'=>120, 'sort' => false));
  56. //邀请码显示
  57. $dt->addColsFields('open_invitation', array('templet' => '#invitation','width'=>120, 'sort' => false));
  58. // $dt->addColsFields('last_time',array('width'=>90)); //'templet' => '#selectphone',
  59. //$dt->addColsFields('money_num', array('templet' => '#moneynum', 'sort' => false, 'width' => 110));
  60. $dt->addColsFields('statuss', array('templet' => '#openstatus', 'sort' => false,'width'=>100));
  61. $dt->addColsFields('agent_name', array('sort' => false, 'templet' => '#agent','width'=>100,));
  62. $dt->addColsFields('action_user', array('templet' => '#waterTool', 'sort' => false,'width'=>160));
  63. $dt->setPriKey('id');
  64. return view('admin.user/index', $dt->render($request));
  65. }
  66. /**
  67. * 会员存取反水列表
  68. * [detail description]
  69. * @return [type] [description]
  70. */
  71. public function moneyrecord()
  72. {
  73. $account_name = Request::has('account_name') ? Request::get('account_name') : '';
  74. $dt = \App\Lib\DataTable\DataTable::init();
  75. $dt->setDataSource('/admin/money/moneyList?account_name=' . $account_name . '&sureblur=精确');
  76. $dt->setLang('money');
  77. $dt->setPriKey('trade_id');
  78. $dt->addColsFields('id');
  79. $dt->addColsFields('account_name');
  80. $dt->addColsFields('trade_id');
  81. $dt->addColsFields('trade_type');
  82. $dt->addColsFields('money_time');
  83. $dt->addColsFields('money');
  84. $dt->addColsFields('system_user');
  85. $dt->addColsFields('reason');
  86. $dt->disableCheckBox();
  87. return view('admin.user/viewip', $dt->render());
  88. }
  89. /**
  90. * 同一实名用户列表
  91. * [detail description]
  92. * @return [type] [description]
  93. */
  94. public function userlist()
  95. {
  96. $name = Request::has('name') ? Request::get('name') : '';
  97. $dt = \App\Lib\DataTable\DataTable::init();
  98. $dt->setDataSource('/admin/user/user?name=' . $name . '&nameblur=精确');
  99. $dt->setLang('state');
  100. $dt->setLang('user');
  101. $dt->addColsFields('account_grade', array('sort' => false, 'width' => 140));
  102. $dt->addColsFields('cash', array('width' => 120));
  103. $dt->addColsFields('name_registtime', array('sort' => false, 'width' => 160));
  104. $dt->addColsFields('register_log_ip', array('sort' => false, 'width' => 140));
  105. $dt->addColsFields('register_log_url', array('sort' => false, 'width' => 133));
  106. $dt->addColsFields('phone', array('sort' => false, 'width' => 140));
  107. $dt->addColsFields('statuss', array('sort' => false, 'width' => 80));
  108. $dt->setPriKey('id');
  109. $dt->setToolBar(array('view'));
  110. return view('admin.view', $dt->render());
  111. }
  112. /**
  113. * 会员列表
  114. * 'user description'
  115. * @return 'type' 'description'
  116. */
  117. public function user()
  118. {
  119. $page = Request::has('page') ? Request::get('page') : 1;
  120. $list = Request::has('limit') ? Request::get('limit') : 10;
  121. $field = Request::has('field') ? Request::get('field') : 'id';
  122. $order = Request::has('order') ? Request::get('order') : 'desc';
  123. $status = Request::has('status') ? Request::get('status') : '';
  124. $agent_name = Request::has('agent_name') ? Request::get('agent_name') : '';
  125. $account = Request::has('account') ? Request::get('account') : '';
  126. $select_type = Request::has('select_type') ? trim(Request::get('select_type')) : '';
  127. $select_value = Request::has('select_value') ? trim(Request::get('select_value')) : '';
  128. /*$name = Request::has('name') ? Request::get('name') : '';
  129. $register_ip = Request::has('register_ip') ? Request::get('register_ip') : '';
  130. $last_ip = Request::has('last_ip') ? Request::get('last_ip') : '';
  131. $register_url = Request::has('register_url') ? Request::get('register_url') : '';
  132. $last_url = Request::has('last_url') ? Request::get('last_url') : '';
  133. $phone = Request::has('phone') ? Request::get('phone') : '';*/
  134. $grade = Request::has('grade') ? Request::get('grade') : '';
  135. $group = Request::has('group') ? Request::get('group') : '';
  136. $regist_startime = Request::get('regist_startime') ? Request::get('regist_startime') . ' 00:00:00' : '';
  137. $regist_endtime = Request::get('regist_endtime') ? Request::get('regist_endtime') . ' 23:59:59' : '';
  138. $last_startime = Request::get('last_startime') ? Request::get('last_startime') . ' 00:00:00' : '';
  139. $last_endtime = Request::get('last_endtime') ? Request::get('last_endtime') . ' 23:59:59' : '';
  140. $statuss = Request::has('statuss') ? Request::get('statuss') : '';
  141. $cash_small = Request::has('cash_small') ? Request::get('cash_small') : '';
  142. $cash_big = Request::has('cash_big') ? Request::get('cash_big') : '';
  143. $sureblur = Request::has('sureblurs') ? Request::get('sureblurs') : 'off';
  144. $nameblur = Request::has('nameblur') ? Request::get('nameblur') : '';
  145. $rechargenum_small = Request::has('rechargenum_small') ? Request::get('rechargenum_small') : '';
  146. $rechargenum_big = Request::has('rechargenum_big') ? Request::get('rechargenum_big') : '';
  147. $takenum_small = Request::has('takenum_small') ? Request::get('takenum_small') : '';
  148. $takenum_big = Request::has('takenum_big') ? Request::get('takenum_big') : '';
  149. $where = ' ';
  150. $curtime = time() - 300;
  151. $rflag = -1;
  152. $tflag = -1;
  153. if (!empty($account)) {
  154. $account = strtolower($account);
  155. $where .= ' AND account';
  156. if (empty($sureblur) || $sureblur == 'off') {
  157. $where .= " LIKE '%" . $account . "%'";
  158. } else {
  159. $where .= "='" . $account . "'";
  160. }
  161. }
  162. if (!empty($select_value)) {
  163. if ($select_type == 'name') {
  164. $where .= ' AND name';
  165. if (empty($nameblur) || $nameblur == '模糊') {
  166. $where .= " LIKE '%" . $select_value . "%'";
  167. } else {
  168. $where .= "='" . $select_value . "'";
  169. }
  170. } elseif (in_array($select_type, array('register_ip','last_ip','open_invitation','invitation'))) {
  171. $where .= " AND " . $select_type . "='" . $select_value . "'";
  172. } elseif ($select_type == 'register_url') {
  173. $where .= " AND register_url LIKE '%" . $select_value . "%'";
  174. } elseif ($select_type == 'last_url') {
  175. $where .= " AND last_url LIKE '%" . $select_value . "%'";
  176. } elseif ($select_type == 'phone') {
  177. $where .= " AND b.phone LIKE '%{$select_value}%'";
  178. } elseif ($select_type == 'email') {
  179. $where .= " AND email LIKE '%" . $select_value . "%'";
  180. }elseif (in_array($select_type,['qq','wechat'])) {
  181. $where .= " AND b.{$select_type} LIKE '%". trim($select_value) . "%'";
  182. }elseif($select_type == 'agent'){
  183. $where .= " AND c.invite ='" . $select_value . "'";
  184. }
  185. }
  186. if (!empty($grade)) {
  187. $where .= ' AND b.grade=';
  188. $where .= ($grade == 10) ? '0' : $grade;
  189. }
  190. if (!empty($invite)) {
  191. $where .= " AND open_invitation='" . $invite . "'";
  192. }
  193. if(!empty($group)){
  194. $where .= " AND group_code like '%,".$group. ",%'";
  195. }
  196. if (!empty($regist_startime)) {
  197. $regist_startime = date('Y-m-d H:i:s', strtotime($regist_startime));
  198. $where .= " AND b.register_time>='" . $regist_startime . "'";
  199. }
  200. if (!empty($regist_endtime)) {
  201. $regist_endtime = date('Y-m-d H:i:s', strtotime($regist_endtime));
  202. $where .= " AND b.register_time<='" . $regist_endtime . "'";
  203. }
  204. if (!empty($last_startime)) {
  205. $last_startime = date('Y-m-d H:i:s', strtotime($last_startime));
  206. //$last_startime = strtotime($last_startime)-300;
  207. $where .= " AND last_time>='" . $last_startime . "'";
  208. //$where .= " AND ta.effective_time>=" . $last_startime;
  209. }
  210. if (!empty($last_endtime)) {
  211. $last_endtime = date('Y-m-d H:i:s', strtotime($last_endtime));
  212. //$last_endtime = strtotime($last_endtime)-300;
  213. $where .= " AND last_time<='" . $last_endtime . "'";
  214. //$where .= " AND ta.effective_time<=" . $last_endtime;
  215. }
  216. if (!empty($statuss)) {
  217. $statuss = ($statuss == 2) ? '0' : $statuss;
  218. $where .= " AND statuss=" . $statuss;
  219. }
  220. if (!empty($status)) {
  221. $status = ($status == 5) ? '-1' : $status;
  222. $where .= " AND status=" . $status;
  223. $where .= " or status=" . '2';
  224. }
  225. if (!empty($cash_small)) {
  226. $where .= " AND cash>=" . $cash_small;
  227. }
  228. if (!empty($cash_big)) {
  229. $where .= " AND cash<=" . $cash_big;
  230. }
  231. if (!empty($rechargenum_small)) {
  232. $rflag = 1;
  233. $where .= ' AND (mc.recharge_num >=' . $rechargenum_small;
  234. }
  235. if (!empty($rechargenum_big)) {
  236. $rflag = 1;
  237. $where .= empty($rechargenum_small) ? 'AND (' : 'AND ';
  238. $where .= ' mc.recharge_num <=' . $rechargenum_big;
  239. }
  240. if ((empty($rechargenum_small) || $rechargenum_small <= 0) && (empty($rechargenum_big) || $rechargenum_big >= 0)) {
  241. if (!(empty($rechargenum_small) && empty($rechargenum_big))) {
  242. $where .= " OR mc.recharge_num ISNULL)";
  243. }
  244. } else {
  245. $where .= ')';
  246. }
  247. if (!empty($takenum_small)) {
  248. $tflag = 1;
  249. $where .= ' AND (tc.take_num >=' . $takenum_small;
  250. }
  251. if (!empty($takenum_big)) {
  252. $tflag = 1;
  253. $where .= empty($takenum_small) ? 'AND (' : 'AND ';
  254. $where .= ' tc.take_num <=' . $takenum_big;
  255. }
  256. if ((empty($takenum_small) || $takenum_small <= 0) && (empty($takenum_big) || $takenum_big >= 0)) {
  257. if (!(empty($takenum_small) && empty($takenum_big))) {
  258. $where .= " OR tc.take_num ISNULL)";
  259. }
  260. } else {
  261. $where .= ')';
  262. }
  263. $db = new \App\Models\Account;
  264. $data = $db->account($list, $page, $where, $field, $order, $rflag, $tflag);
  265. $gradelist = $db->getUserGrade();
  266. $data['data'] = arrayToNumber($data['data'], ['cash']);
  267. $has_root = 0;
  268. $has_roots = 0;
  269. $show_name=0;
  270. if (\App\Models\Role::hasRoot('/enable/show/mobile') < 0) {
  271. $has_root = 1;
  272. // $data['data'][$k]['phone'] = phoneHide($v['phone']);
  273. }
  274. if (\App\Models\Role::hasRoot('/enable/show/email') < 0) {
  275. $has_roots = 1;
  276. // $data['data'][$k]['email'] = emailHide($v['email']);
  277. }
  278. if (\App\Models\Role::hasRoot('/enable/show/name') < 0) {
  279. $show_name = 1;
  280. // $data['data'][$k]['email'] = emailHide($v['email']);
  281. };
  282. $letime = time()-60*30;
  283. // foreach ($data['data'] as $k => $v) {
  284. // $findId[] = $v['agent_identity'];
  285. // $data['data'][$k]['online'] = ($v['statuss'] == 0) ? '离线' : '在线';
  286. // if($v['statuss']){
  287. // $linetime = \App\Models\Account_Token::where('effective_time','>=',$letime)->where('account_identity',$v['identity'])->first();
  288. // if($linetime){}else{
  289. // \App\Models\Account_detailed::where('account_identity',$v['identity'])->update(['statuss'=>'0']);
  290. // if(!empty($statuss) && $statuss==1){
  291. // unset($data['data'][$k]);
  292. // continue;
  293. // }
  294. // $data['data'][$k]['online'] = '离线';
  295. // $data['data'][$k]['statuss'] = '0';
  296. // }
  297. // }
  298. // $data['data'][$k]['invite'] = ($v['invite']=='null' || empty($v['invite']))?'':$v['invite'];
  299. // $data['data'][$k]['agent_id'] = '无上级';
  300. // $data['data'][$k]['register_ip'] = str_replace(',','/',$v['register_ip']);
  301. // $data['data'][$k]['last_ip'] = str_replace(',','/',$v['last_ip']);
  302. // $has_root == 1 ? $data['data'][$k]['phone'] = phoneHide($v['phone']) : null;
  303. // $has_roots == 1 ? $data['data'][$k]['email'] = emailHide($v['email']) : null;
  304. // $show_name == 1 ? $data['data'][$k]['account'] = userHide($v['account']) : null;
  305. // $data['data'][$k]['grade_name'] = $gradelist[$v['grade']]??'';
  306. // // if($v['grade'] >=0){
  307. // // $data['data'][$k]['grade_name'] = $gradelist[$v['grade']]??'';
  308. // // }elseif($v['grade'] ==-1){
  309. // // $data['data'][$k]['grade_name'] = '申请vip审核中';
  310. // // }elseif($v['grade'] ==-2){
  311. // // $data['data'][$k]['grade_name'] = 'vip0';
  312. // // }
  313. // }
  314. // if (!empty($findId)){
  315. // $db = new \App\Models\Agent_detailed;
  316. // $asd = $db->findId($findId);
  317. // foreach ($data['data'] as $k => $v) {
  318. // foreach ($asd as $val) {
  319. // if ($v['agent_identity'] == $val['agent_identity']) {
  320. // $data['data'][$k]['agent_id'] = $val['id'];
  321. // }
  322. // }
  323. // }
  324. // }
  325. return \App\Lib\DataTable\DataTable::init()->toJson($data['data'], $data['total'], 0, $where);
  326. }
  327. //修改用户密码
  328. public function SetPwdview(Req $req)
  329. {
  330. return $this->EditPwd($req);
  331. }
  332. //修改会员密码
  333. public function EditPwd(Req $req)
  334. {
  335. $id = $req->id;
  336. $parentid = isset($req->parentid)?$req->parentid:'';
  337. if (empty($id)) {
  338. abort(404);
  339. }
  340. $pwdtype = empty($req->pwdtype) ? '' : $req->pwdtype;
  341. $u_db = new \App\Models\Account();
  342. $where = array();
  343. $where[] = array('id', '=', $id);
  344. $data = $u_db::where($where)->first();
  345. if (!$data) {
  346. abort(404);
  347. }
  348. $data = $data->toArray();
  349. if(!(empty($parentid) || is_null($parentid) || $parentid == 'null')){
  350. $udetail = \App\Models\Nagent_detailed::select('agent_identity','invite')->where('agent_identity',$parentid)->first();
  351. if(!empty($udetail) && count($udetail->toArray())>0 && !empty($udetail->invite)){
  352. $data['invite']=$udetail->invite;
  353. }
  354. }
  355. $uname = $data['account'];
  356. unset($data['password']);
  357. if (!$req->isMethod('post')) {
  358. $aid = session('adminInfo.admin_id');
  359. $arootid = \App\Models\System_user::select('root_id')->where('id',$aid)->first();
  360. $data['arootid'] = $arootid->root_id;
  361. return view('admin.user/editpwd', ['data' => $data]);
  362. } else {
  363. //修改代理父级
  364. if(!empty($pwdtype) && $pwdtype==2){
  365. DB::beginTransaction();
  366. $invite = $req->invite;
  367. //$agent_id = $req->agent_id;
  368. //修改代理父级
  369. $res = $this->updateAgentParent($data,$invite);
  370. if($res<0){
  371. DB::rollBack();
  372. }else{
  373. DB::commit();
  374. }
  375. return responseToJson($res);
  376. }
  377. $pwd = $req->password;
  378. $repwd = $req->repassword;
  379. $updatetype = '';
  380. if (!empty($pwd)) {
  381. if ($pwd != $repwd) {
  382. return responseToJson(-4010000502); //两次密码不一致
  383. }
  384. $updatevalue = $pwd;
  385. $pwddata = GenPassword($pwd);
  386. $remark = empty($req->remark) ? '' : $req->remark;
  387. $status = empty($req->status) ? '' : $req->status;
  388. $editdata = array();
  389. $editdata['account_password'] = $pwddata['password'];
  390. $editdata['encryption'] = $pwddata['encryption'];
  391. }
  392. if (!empty($pwdtype) && $pwdtype == 1) {
  393. $updatetype = '支付密码';
  394. $paydata = array(
  395. 'pay_password' => $editdata['account_password'],
  396. 'encryption' => $editdata['encryption'],
  397. );
  398. $db = new \App\Models\Pay_password;
  399. $res = $db->updateInfo($paydata, $data['identity']);
  400. } else {
  401. $updatetype = '密码';
  402. $db = new \App\Models\Account_password;
  403. if (isset($editdata)) {
  404. $res = $db->updateInfo($editdata, $data['identity']);
  405. }
  406. }
  407. $identity=$data['identity'];
  408. $status_type = $req->status_type;
  409. $data = array(
  410. 'remark' => $req->remark,
  411. 'status' => $req->status,
  412. );
  413. if (!empty($status_type) && $status_type == 1) {
  414. $updatetype = '备注信息、状态';
  415. $sch = ($data['status']==1)?'启用':'禁用';
  416. $updatevalue = $data['remark'].'、'.$sch;
  417. $db = new \App\Models\Account;
  418. $res = $db->updateInfo($data, $id);
  419. }
  420. if($res>0){
  421. \App\Models\Account_detailed::where('account_identity',$identity)->update(['token'=>createToken()]);
  422. }
  423. $log = array(
  424. session('adminInfo.admin_name'),
  425. $uname,
  426. $updatetype,
  427. $updatevalue,
  428. );
  429. $res = OperationLog(session('adminInfo.admin_id'), 'update_userinfo', $log);
  430. return responseToJson($res);
  431. }
  432. }
  433. //修改代理父级
  434. private function updateAgentParent($data,$invite){
  435. if(empty($invite))return -4010010102;
  436. //验证代理是否存在
  437. $check_agent = \App\Models\Nagent_detailed::select('agent_identity as identity','agent_user','parent_path')->where('invite',$invite)->first();
  438. if(!$check_agent || count($check_agent->toArray())<1 || empty($check_agent->identity))return -4010010202;
  439. $agent_name = $check_agent->agent_user;
  440. if($agent_name == $data['account'])return -4010010802;
  441. //验证会员下级关系中是否存在该父级
  442. $conchild = \App\Models\Nagent_detailed::select('id')->where('parent_path','like',$data['identity'])->where('agent_identity',$check_agent->identity)->first();
  443. if($conchild && count($conchild->toArray())>0)return -4010010302;
  444. //验证相同代理关系是否已存在
  445. $check_conhas = \App\Models\NagentChild::select('id')->where('agent_name',$agent_name)->where('account_identity',$data['identity'])->first();
  446. if($check_conhas && count($check_conhas->toArray())>0 && !empty($check_conhas->id))return -4010010302;
  447. $pdata = array(
  448. 'parent_id' => $check_agent->identity,
  449. 'parent_path' => $check_agent->parent_path.','.$check_agent->identity,
  450. );
  451. $res = \App\Models\Account_detailed::where('account_identity',$data['identity'])->update($pdata);
  452. if($res<1)return -4010010602;
  453. $res = \App\Models\Nagent_detailed::where('agent_identity',$data['identity'])->update($pdata);
  454. if($res<1)return -4010010902;
  455. $updatesub = $this->updateChildinfo($pdata['parent_path'],$data['identity']);
  456. if($updatesub<0)return $updatesub;
  457. //关联信息处理
  458. $coninfo = array(
  459. 'agent_identity' => $check_agent->identity,
  460. 'account_identity' => $data['identity'],
  461. 'agent_name' => $agent_name,
  462. 'account_name' => $data['account'],
  463. );
  464. //获取用户原父级信息
  465. $ypinfo = \App\Models\NagentChild::select('agent_name','agent_identity')->where('account_identity',$data['identity'])->first();
  466. if($ypinfo && count($ypinfo->toArray())>0 && !empty($ypinfo->agent_name)){
  467. $res = \App\Models\NagentChild::where('account_identity',$data['identity'])->update($coninfo);
  468. if($res<0)return -4010011002;
  469. $ypinvite = \App\Models\Nagent_detailed::select('invite')->where('agent_identity',$ypinfo->agent_identity)->first();
  470. if(!$ypinvite || !isset($ypinvite->invite))return -4010011102;
  471. $log = array(
  472. session('adminInfo.admin_name'),
  473. $data['account'],
  474. $ypinfo->agent_name,
  475. $ypinvite->invite,
  476. $agent_name,
  477. $invite,
  478. );
  479. $res = OperationLog(session('adminInfo.admin_id'), 'update_parentagent', $log);
  480. }else{
  481. $res = \App\Models\NagentChild::where('account_identity',$data['identity'])->insert($coninfo);
  482. if($res<0)return -4010010702;
  483. $log = array(
  484. session('adminInfo.admin_name'),
  485. $data['account'],
  486. $agent_name,
  487. $invite,
  488. );
  489. $res = OperationLog(session('adminInfo.admin_id'), 'add_parentagent', $log);
  490. }
  491. return 1;
  492. }
  493. //更新代理下级信息
  494. private function updateChildinfo($ppath,$pid){
  495. $childinfo = \App\Models\Nagent_detailed::select('agent_identity','parent_path')->where('parent_path','like','%' . $pid . '%')->get();
  496. if(!$childinfo || count($childinfo->toArray())<1)return 1;
  497. $childinfo = $childinfo->toArray();
  498. foreach ($childinfo as $k => $v) {
  499. $subpath = strstr($v['parent_path'],$pid);
  500. $pdata = array('parent_path'=>$ppath.','.$subpath);
  501. $res = \App\Models\Account_detailed::where('account_identity',$v['agent_identity'])->update($pdata);
  502. if($res<1)return -4010010602;
  503. $res = \App\Models\Nagent_detailed::where('agent_identity',$v['agent_identity'])->update($pdata);
  504. if($res<1)return -4010010602;
  505. }
  506. }
  507. //修改代理父级invite
  508. /*private function updateAgentParent($data,$agent_id){
  509. if(empty($agent_id))return -4010010102;
  510. //验证代理是否存在
  511. $check_agent = \App\Models\Agent_detailed::select('agent_identity as identity','agent_user')->where('id',$agent_id)->first();
  512. if(!$check_agent || count($check_agent->toArray())<1 || empty($check_agent->identity))return -4010010202;
  513. $agent_name = $check_agent->agent_user;
  514. if($agent_name == $data['account'])return -4010010802;
  515. //验证相同代理关系是否已存在
  516. $check_conhas = \App\Models\AgentChild::select('id')->where('agent_name',$agent_name)->where('account_identity',$data['identity'])->first();
  517. if($check_conhas && count($check_conhas->toArray())>0 && !empty($check_conhas->id))return -4010010302;
  518. //关联信息处理
  519. $coninfo = array(
  520. 'agent_identity' => $check_agent->identity,
  521. 'account_identity' => $data['identity'],
  522. 'agent_name' => $agent_name,
  523. 'account_name' => $data['account'],
  524. );
  525. //获取用户原父级信息
  526. $ypinfo = \App\Models\AgentChild::select('agent_name','agent_identity')->where('account_identity',$data['identity'])->first();
  527. if($ypinfo && count($ypinfo->toArray())>0 && !empty($ypinfo->agent_name)){
  528. $res = \App\Models\AgentChild::where('account_identity',$data['identity'])->update($coninfo);
  529. if($res<0)return -4010010602;
  530. $log = array(
  531. session('adminInfo.admin_name'),
  532. $data['account'],
  533. $ypinfo->agent_name,
  534. $ypinfo->agent_identity,
  535. $agent_name,
  536. $check_agent->identity,
  537. );
  538. $res = OperationLog(session('adminInfo.admin_id'), 'update_parentagent', $log);
  539. }else{
  540. $res = \App\Models\AgentChild::where('account_identity',$data['identity'])->insert($coninfo);
  541. if($res<0)return -4010010702;
  542. $log = array(
  543. session('adminInfo.admin_name'),
  544. $data['account'],
  545. $agent_name,
  546. $check_agent->identity,
  547. );
  548. $res = OperationLog(session('adminInfo.admin_id'), 'add_parentagent', $log);
  549. }
  550. return 1;
  551. }*/
  552. public function View(Req $req)
  553. {
  554. return $this->Edit($req);
  555. }
  556. //修改会员信息
  557. public function Edit(Req $req)
  558. {
  559. $id = $req->id;
  560. $identity = !empty($req->identity) ? $req->identity : '';
  561. //echo 'id:'.$id.';account:'.$account;exit;
  562. if (empty($id) && empty($identity)) {
  563. abort(404);
  564. }
  565. $u_db = new \App\Models\Account();
  566. $u_details = new \App\Models\Account_detailed();
  567. $bank = new \App\Models\Account_bank();
  568. $groupinfo = \App\Models\Account_group::getList();
  569. $groupdata = $groupinfo['data'];
  570. $gradelist = $u_db->getUserGrade();
  571. if (!$req->isMethod('post')) {
  572. $where = array();
  573. if (!empty($id)) {
  574. $where[] = array('id', '=', $id);
  575. } elseif (!empty($identity)) {
  576. $where[] = array('identity', '=', $identity);
  577. }
  578. $data = $u_db::where($where)->first();
  579. if (!$data) {
  580. abort(404);
  581. }
  582. $data = $data->toArray();
  583. $data_details = array();
  584. $data_details = $u_details->getInfoBy($data['identity']);
  585. if ($data_details < 0) {
  586. abort(404);
  587. }
  588. $data_details['id'] = $data['id'];
  589. $data_details['user_type'] = $data['user_type'];
  590. $data_details['account'] = $data['account'];
  591. $data_details['remark'] = $data['remark'];
  592. $data_details['group'] = $groupdata;
  593. $data_details['gradelist'] = $gradelist;
  594. $bank_data = $bank->getInfoByUid($data['identity']);
  595. $data_details['bank_name'] = isset($bank_data['bank_name']) ? $bank_data['bank_name'] : '';
  596. $data_details['bank_address'] = isset($bank_data['bank_address']) ? $bank_data['bank_address'] : '';
  597. $data_details['bank_number'] = isset($bank_data['bank_number']) ? $bank_data['bank_number'] : '';
  598. if (\App\Models\Role::hasRoot('/enable/show/bankcard') < 0) {
  599. $data_details['bank_number'] = bankHide($data_details['bank_number']);
  600. }
  601. if (\App\Models\Role::hasRoot('/enable/show/mobile') < 0) {
  602. $data_details['phone'] = phoneHide($data_details['phone']);
  603. }
  604. if (\App\Models\Role::hasRoot('/enable/show/name') < 0) {
  605. $data_details['account'] = userHide($data_details['account']);
  606. }
  607. if(\App\Models\Role::hasRoot('/enable/show/qq') < 0){
  608. $data_details['qq'] = phoneHide($data_details['qq']);
  609. }
  610. $data_details['register_time'] = isset($data_details['register_time']) ? $data_details['register_time'] : '';
  611. $data_details['register_ip'] = isset($data_details['register_ip']) ? $data_details['register_ip'] : '';
  612. $data_details['last_ip'] = isset($data_details['last_ip']) ? $data_details['last_ip'] : '';
  613. $data_details['cash'] = isset($data_details['cash']) ? $data_details['cash'] : '';
  614. $data_details['og_type'] = isset($data_details['og_type']) ? $data_details['og_type'] : '';
  615. if (\App\Models\Role::hasRoot('/enable/show/email') < 0) {
  616. $data_details['email'] = emailHide($data_details['email']);
  617. }
  618. $data_details['name'] = isset($data_details['name']) ? $data_details['name'] : '';
  619. unset($data_details['password']);
  620. //获取用户存取款笔数
  621. $moneydetail = new \App\Models\Money_details();
  622. $Withdraw_rule = new \App\Models\Withdraw_rule();
  623. $mdata = $moneydetail->getUserMoneynum($data['identity']);
  624. $data_details['recharge_num'] = $mdata['recharge_num'];
  625. $data_details['take_num'] = $mdata['take_num'];
  626. $withdrawRule = $Withdraw_rule::check($data_details['account_identity']);
  627. if(!empty($withdrawRule)){
  628. $withdrawRule = $withdrawRule->toArray();
  629. $data_details['bettingMoney'] = $withdrawRule['bettingMoney'];
  630. $data_details['needBettingMoney'] = $withdrawRule['needBettingMoney'];
  631. }else{
  632. $data_details['bettingMoney'] = $data_details['cash'];
  633. $data_details['needBettingMoney'] = $data_details['cash'];
  634. }
  635. return view('admin.user/view', ['data' => $data_details]);
  636. //return view('admin.menu/userAdd', ['data' => $data_details]);
  637. } else {
  638. if (empty($id)) {
  639. return responseToJson(-4010100102);
  640. }
  641. $data = $u_db::where('id', $id)->first();
  642. if (!$data) {
  643. return responseToJson(-4010100202);
  644. }
  645. $data = $data->toArray();
  646. $uname = $data['account'];
  647. $groups=$req->groups?$req->groups:'';
  648. //选择的组
  649. $group_codes=array_keys($groups);
  650. //获取组名的
  651. $groups_names='| ';
  652. foreach ($groupdata as $k=>$v){
  653. if(in_array($v['group_code'],$group_codes))
  654. $groups_names.=$v['group_name'].'| ';
  655. }
  656. $updatedata = array(
  657. 'name' => $req->input('name'),
  658. 'grade' => $req->input('grade'),
  659. 'email'=>$req->input('email'),
  660. 'phone'=>$req->input('phone'),
  661. 'qq'=>$req->input('qq'),
  662. 'wechat'=>$req->input('wechat'),
  663. 'og_type'=>$req->input('og_type'),
  664. 'group_code' => '0,'.implode(',',$group_codes).',',
  665. 'group_name' => $groups_names,
  666. );
  667. if (strpos($updatedata['phone'], '*')!==false) {
  668. unset($updatedata['phone']);
  669. }
  670. if (strpos($updatedata['email'], '*')!==false) {
  671. unset($updatedata['email']);
  672. }
  673. if (strpos($updatedata['qq'], '*')!==false) {
  674. unset($updatedata['qq']);
  675. }
  676. $UserInfo = array(
  677. 'user_type' => is_numeric($req->user_type)?trim($req->user_type):1,
  678. 'remark' => $req->remark,
  679. );
  680. $log = array(
  681. session('adminInfo.admin_name'),
  682. $uname,
  683. );
  684. $res = OperationLog(session('adminInfo.admin_id'), 'update_userinfos', $log);
  685. $res = $u_details->updateInfo($updatedata, $data['identity']);
  686. if ($res < 0) {
  687. return responseToJson($res);
  688. }
  689. $res=$u_db->upUserInfo($UserInfo,$data['identity']);
  690. if ($res < 0) {
  691. return responseToJson($res);
  692. }
  693. $bankObj = new \App\Models\Account_bank();
  694. $checkbank = $bankObj->checkHasBank($data['identity']);
  695. if ($checkbank < 0) {
  696. return responseToJson($res);
  697. }
  698. $res = $bankObj->updateOne(array('account_name' => $updatedata['name']), $data['identity']);
  699. return responseToJson($res);
  700. }
  701. }
  702. /**
  703. * 批量删除
  704. * [delete description]
  705. * @return [type] [description]
  706. */
  707. public function delete(Req $req)
  708. {
  709. $id = $req->input('id');
  710. if (empty($id)) {
  711. return responseToJson(-2001); //id������
  712. }
  713. $ids = explode(',', $id);
  714. if (!is_array($ids) && intval($ids) < 0) {
  715. return responseToJson(-2002); //id����
  716. }
  717. if (is_array($ids) && count($ids) > 0) {
  718. foreach ($ids as $k => $v) {
  719. if (intval($v) < 1) {
  720. unset($ids[$k]);
  721. }
  722. }
  723. }
  724. $rows = \App\Models\Account::whereIn('id', $ids)->delete();
  725. if (!$rows) {
  726. return responseToJson(-2003); //id����
  727. }
  728. return responseToJson(1, trans('menu.delete_success')); //id����
  729. }
  730. //启用/禁用会员信息
  731. public function changeStatus(Req $req)
  732. {
  733. $id = Request::has('id') ? Request::get('id') : '';
  734. $account = Request::has('account') ? Request::get('account') : '';
  735. if (empty($id)) {
  736. return responseToJson(-4010100102); //未提交用户ID
  737. }
  738. $u_db = new \App\Models\Account();
  739. $where = array();
  740. $where[] = array('id', '=', $id);
  741. $data = $u_db::where($where)->first();
  742. if (!$data) {
  743. return responseToJson(-4010100202); //用户不存在
  744. }
  745. $data = $data->toArray();
  746. unset($data['password']);
  747. if (!$req->isMethod('post')) {
  748. return view('admin.user/changeStatus', ['data' => $data]);
  749. } else {
  750. $status = $req->status;
  751. $password = $req->password;
  752. if (!empty($password)) {
  753. $admin_id = session('adminInfo.admin_id');
  754. $adminObj = new \App\Models\System_user();
  755. $admininfo = $adminObj->getAdminInfo($admin_id);
  756. if ($admininfo < 0 || empty($admininfo['password_2'])) {
  757. return responseToJson(-7010200102); //未获取到二次密码
  758. }
  759. $checkpwd = VerPassword($password, $admininfo['encryption_2'], $admininfo['password_2']);
  760. if (!$checkpwd) {
  761. return responseToJson(-7010200202); //二次密码错误
  762. }
  763. } else {
  764. return responseToJson(-7010200302); //二次密码不能为空
  765. }
  766. $status = is_numeric($req->status) ? intval($req->status) : '';
  767. if (empty($id) || !is_numeric($status)) {
  768. return responseToJson(-2020100102);
  769. }
  770. $u_db = new \App\Models\Account();
  771. $data = array(
  772. 'status' => $status,
  773. );
  774. $res = $u_db->updateInfo($data, $id);
  775. $log = array(
  776. session('adminInfo.admin_name'),
  777. $account,
  778. );
  779. OperationLog(session('adminInfo.admin_id'), 'changeStatus', $log);
  780. return responseToJson($res);
  781. }
  782. }
  783. //用户踢线
  784. public function changeStatuss(Req $req)
  785. {
  786. $id = $req->id;
  787. if (empty($id)) {
  788. return responseToJson(-4010100102); //未提交用户ID
  789. }
  790. $u_db = new \App\Models\Account();
  791. $u_details = new \App\Models\Account_detailed();
  792. $where = array();
  793. $where[] = array('id', '=', $id);
  794. $data = $u_db::where($where)->first();
  795. if (!$data) {
  796. return responseToJson(-4010100202); //用户不存在
  797. }
  798. $data_details = $u_details::where($where)->first();
  799. $data = $data->toArray();
  800. $data_details = $u_details->getInfoBy($data['identity']);
  801. $data_details['account'] = $data['account'];
  802. $uname = $data['account'];
  803. unset($data['password']);
  804. if (!$req->isMethod('post')) {
  805. return view('admin.user/changeStatuss', ['data' => $data_details]);
  806. } else {
  807. $password = $req->password;
  808. $ids = $req->ids;
  809. if (!empty($password)) {
  810. $admin_id = session('adminInfo.admin_id');
  811. $adminObj = new \App\Models\System_user();
  812. $admininfo = $adminObj->getAdminInfo($admin_id);
  813. if ($admininfo < 0 || empty($admininfo['password_2'])) {
  814. return responseToJson(-7010200102); //未获取到二次密码
  815. }
  816. $checkpwd = VerPassword($password, $admininfo['encryption_2'], $admininfo['password_2']);
  817. if (!$checkpwd) {
  818. return responseToJson(-7010200202); //二次密码错误
  819. }
  820. } else {
  821. return responseToJson(-7010200302); //二次密码不能为空
  822. }
  823. $status = is_numeric($req->statuss) ? intval($req->statuss) : '';
  824. if (empty($ids) || !is_numeric($status)) {
  825. return responseToJson(-2020100102);
  826. }
  827. $u_db = new \App\Models\Account_detailed();
  828. $u_dbs = new \App\Models\Account_Token();
  829. $datas = $u_dbs->getTime($data['identity']);
  830. if ($datas != 1) {
  831. return responseToJson(-27349826); //未获取到二次密码
  832. }
  833. $data = array(
  834. 'statuss' => $status,
  835. 'token' => '',
  836. );
  837. $res = $u_db->updateInfos($data, $ids);
  838. $log = array(
  839. session('adminInfo.admin_name'),
  840. $uname,
  841. );
  842. $res = OperationLog(session('adminInfo.admin_id'), 'letuser_outline', $log);
  843. return responseToJson($res);
  844. }
  845. }
  846. /**
  847. * 用户添加
  848. * [add description]
  849. */
  850. public function userAdd()
  851. {
  852. return view('admin.menu/userAdd');
  853. }
  854. /**
  855. * 会员列表
  856. * [getCloseTable description]
  857. * @return [type] [description]
  858. */
  859. public function getUserTable()
  860. {
  861. $table = new \App\Lib\Biz\Game\Table\UserTable();
  862. $data = $table->getUserTh();
  863. return \App\Lib\DataTable\DataTable::init()->toJson($data['data'], $data['total']);
  864. }
  865. /**
  866. * 资金流水
  867. * 'money description'
  868. * @return 'type' 'description'
  869. */
  870. public function money()
  871. {
  872. $db = new \App\Models\Money_details;
  873. $page = Request::has('statpageus') ? Request::get('page') : '20';
  874. $identity = Request::has('account_identity') ? Request::get('account_identity') : '45b7d4e9-2bb9-16b3-9a50-6fd6f62235f8';
  875. if (empty($identity)) {
  876. return -2020162003; //用户不存在
  877. }
  878. $status = Request::has('status') ? Request::get('status') : '1';
  879. if ($status == 1) {
  880. $data = $db->money($page, $identity, $status);
  881. return responseToJson($data);
  882. } else {
  883. return -2020162103; //账户异常
  884. }
  885. }
  886. /**
  887. * 会员余额统计
  888. * 'money description'
  889. * @return 'type' 'description'
  890. */
  891. public function userCashCount()
  892. {
  893. $where = Request::has('where') ? Request::get('where') : '';
  894. $db = new \App\Models\Account;
  895. $data = $db->userCount($where);
  896. return responseToJson($data);
  897. }
  898. public function test()
  899. {
  900. $detail = new \App\Models\Account_detailed;
  901. $userdata = $detail->getUinfo();
  902. if ($userdata < 0) {
  903. return responseToJson($userdata);
  904. }
  905. //print_r($userdata);
  906. $account_identity = '';
  907. foreach ($userdata as $k => $v) {
  908. $account_identity .= ($k == 0) ? "('" . $v['account_identity'] . "'" : ",'" . $v['account_identity'] . "'";
  909. }
  910. $account_identity .= empty($account_identity) ? '' : ')';
  911. //echo $account_identity.'<hr>';
  912. if (!empty($account_identity)) {
  913. $url = new \App\Models\Logfile;
  914. $urldata = $url->getUrl($account_identity);
  915. if (empty($urldata) || $urldata < 0) {
  916. foreach ($userdata as $k => $v) {
  917. $res = $detail->updateInfo(array('last_url' => 'xin83888.com', 'register_url' => 'xin83888.com'), $v['account_identity']);
  918. echo 1;
  919. }
  920. }
  921. if (!($urldata < 0)) {
  922. foreach ($urldata as $sk => $sv) {
  923. $res = $detail->updateInfo(array('last_url' => $sv['last_url'], 'register_url' => $sv['register_url'], 'last_time' => $sv['maxtime'], 'last_ip' => $sv['ip']), $sv['account_identity']);
  924. echo $sv['account'] . '<br>';
  925. }
  926. }
  927. if ($res > 0) {
  928. return responseToJson(1);
  929. }
  930. } else {
  931. return responseToJson(2);
  932. }
  933. }
  934. // public function checkPwd(Req $req){
  935. // //密码验证
  936. // // return responseToJson('/admin/User/export');
  937. // // if (!$req->isMethod('post')) {
  938. // // return view('admin.user/export');
  939. // // }else {
  940. // // $password = $req->password;
  941. // // $admin_info = \App\Models\System_user::where('id', session('adminInfo.admin_id'))->first();
  942. // // if (!$admin_info) {
  943. // // return responseToJson(-7010100202);
  944. // // }
  945. // // $admin_info = $admin_info->toArray();
  946. // // if (!VerPassword($password, $admin_info['encryption_2'], $admin_info['password_2'])) {
  947. // // return responseToJson(-7010001622);
  948. // // }
  949. // return redirect('/admin/User/export');
  950. // // }
  951. // }
  952. function checkPwd(){
  953. $page = Request::has('page') ? Request::get('page') : 1;
  954. $list = Request::has('limit') ? Request::get('limit') : '1000';
  955. $field = Request::has('field') ? Request::get('field') : 'id';
  956. $order = Request::has('order') ? Request::get('order') : 'desc';
  957. $status = Request::has('status') ? Request::get('status') : '';
  958. $agent_name = Request::has('agent_name') ? Request::get('agent_name') : '';
  959. $account = Request::has('account') ? Request::get('account') : '';
  960. $select_type = Request::has('select_type') ? Request::get('select_type') : '';
  961. $select_value = Request::has('select_value') ? Request::get('select_value') : '';
  962. $grade = Request::has('grade') ? Request::get('grade') : '';
  963. $group = Request::has('group') ? Request::get('group') : '';
  964. $regist_startime = Request::get('regist_startime') ? Request::get('regist_startime') . ' 00:00:00' : '';
  965. $regist_endtime = Request::get('regist_endtime') ? Request::get('regist_endtime') . ' 23:59:59' : '';
  966. $last_startime = Request::get('last_startime') ? Request::get('last_startime') . ' 00:00:00' : '';
  967. $last_endtime = Request::get('last_endtime') ? Request::get('last_endtime') . ' 23:59:59' : '';
  968. $statuss = Request::has('statuss') ? Request::get('statuss') : '';
  969. $cash_small = Request::has('cash_small') ? Request::get('cash_small') : '';
  970. $cash_big = Request::has('cash_big') ? Request::get('cash_big') : '';
  971. $sureblur = Request::has('sureblurs') ? Request::get('sureblurs') : 'on';
  972. $nameblur = Request::has('nameblur') ? Request::get('nameblur') : '';
  973. $rechargenum_small = Request::has('rechargenum_small') ? Request::get('rechargenum_small') : '';
  974. $rechargenum_big = Request::has('rechargenum_big') ? Request::get('rechargenum_big') : '';
  975. $takenum_small = Request::has('takenum_small') ? Request::get('takenum_small') : '';
  976. $takenum_big = Request::has('takenum_big') ? Request::get('takenum_big') : '';
  977. $where = '/admin/User/export?';
  978. if (!empty($account)) {
  979. $account = strtolower($account);
  980. $where .= '&account='.$account;
  981. }
  982. if (!empty($select_type)) {
  983. $where .= '&select_type='.$select_type;
  984. }
  985. if (!empty($select_value)) {
  986. $where .= '&select_value='.$select_value;
  987. }
  988. if (!empty($group)) {
  989. $where .= '&group='.$group;
  990. }
  991. if (!empty($grade)) {
  992. $where .= '&grade='.$grade;
  993. }
  994. if (!empty($statuss)) {
  995. $where .= "&statuss=" . $statuss;
  996. }
  997. if (!empty($regist_startime)) {
  998. $where .= '&regist_startime='. $regist_startime;
  999. }
  1000. if (!empty($regist_endtime)) {
  1001. $where .= '&regist_endtime=' . $regist_endtime;
  1002. }
  1003. if (!empty($last_startime)) {
  1004. $where .= '&last_startime=' . $last_startime;
  1005. }
  1006. if (!empty($last_endtime)) {
  1007. $where .= '&last_endtime=' . $last_endtime;
  1008. }
  1009. if (!empty($takenum_small)) {
  1010. $where .= "&takenum_small=" . $takenum_small;
  1011. }
  1012. if (!empty($takenum_big)) {
  1013. $where .= "&takenum_big=" . $takenum_big;
  1014. }
  1015. if (!empty($rechargenum_small)) {
  1016. $where .= '&rechargenum_small=' . $rechargenum_small;
  1017. }
  1018. if (!empty($rechargenum_big)) {
  1019. $where .= '&rechargenum_big=' . $rechargenum_big;
  1020. }
  1021. if (!empty($sureblur)) {
  1022. $where .= '&sureblurs=' . $sureblur;
  1023. }
  1024. return responseToJson($where);
  1025. }
  1026. //Excel文件导出功能 By Laravel学院
  1027. public function export() {
  1028. $page = Request::has('page') ? Request::get('page') : 1;
  1029. $list = Request::has('limit') ? Request::get('') : '';
  1030. $field = Request::has('field') ? Request::get('field') : 'id';
  1031. $order = Request::has('order') ? Request::get('order') : 'desc';
  1032. $status = Request::has('status') ? Request::get('status') : '';
  1033. $agent_name = Request::has('agent_name') ? Request::get('agent_name') : '';
  1034. $account = Request::has('account') ? Request::get('account') : '';
  1035. $select_type = Request::has('select_type') ? Request::get('select_type') : '';
  1036. $select_value = Request::has('select_value') ? Request::get('select_value') : '';
  1037. $grade = Request::has('grade') ? Request::get('grade') : '';
  1038. $group = Request::has('group') ? Request::get('group') : '';
  1039. $regist_startime = Request::get('regist_startime') ? Request::get('regist_startime') : '';
  1040. $regist_endtime = Request::get('regist_endtime') ? Request::get('regist_endtime') : '';
  1041. $last_startime = Request::get('last_startime') ? Request::get('last_startime') : '';
  1042. $last_endtime = Request::get('last_endtime') ? Request::get('last_endtime') : '';
  1043. $statuss = Request::has('statuss') ? Request::get('statuss') : '';
  1044. $cash_small = Request::has('cash_small') ? Request::get('cash_small') : '';
  1045. $cash_big = Request::has('cash_big') ? Request::get('cash_big') : '';
  1046. $sureblur = Request::has('sureblurs') ? Request::get('sureblurs') : 'on';
  1047. $nameblur = Request::has('nameblur') ? Request::get('nameblur') : '';
  1048. $rechargenum_small = Request::has('rechargenum_small') ? Request::get('rechargenum_small') : '';
  1049. $rechargenum_big = Request::has('rechargenum_big') ? Request::get('rechargenum_big') : '';
  1050. $takenum_small = Request::has('takenum_small') ? Request::get('takenum_small') : '';
  1051. $takenum_big = Request::has('takenum_big') ? Request::get('takenum_big') : '';
  1052. $where = ' ';
  1053. $curtime = time() - 300;
  1054. $rflag = -1;
  1055. $tflag = -1;
  1056. if (!empty($account)) {
  1057. $account = strtolower($account);
  1058. $where .= ' AND account';
  1059. if (empty($sureblur) || $sureblur == 'off') {
  1060. $where .= " LIKE '%" . $account . "%'";
  1061. } else {
  1062. $where .= "='" . $account . "'";
  1063. }
  1064. }
  1065. if (!empty($select_value)) {
  1066. if ($select_type == 'name') {
  1067. $where .= ' AND name';
  1068. if (empty($nameblur) || $nameblur == '模糊') {
  1069. $where .= " LIKE '%" . $select_value . "%'";
  1070. } else {
  1071. $where .= "='" . $select_value . "'";
  1072. }
  1073. } elseif ($select_type == 'register_ip') {
  1074. $where .= " AND register_ip='" . $select_value . "'";
  1075. } elseif ($select_type == 'last_ip') {
  1076. $where .= " AND last_ip='" . $select_value . "'";
  1077. } elseif ($select_type == 'register_url') {
  1078. $where .= " AND register_url LIKE '%" . $select_value . "%'";
  1079. } elseif ($select_type == 'last_url') {
  1080. $where .= " AND last_url LIKE '%" . $select_value . "%'";
  1081. } elseif ($select_type == 'phone') {
  1082. $where .= " AND phone LIKE '%" . $select_value . "%'";
  1083. } elseif ($select_type == 'email') {
  1084. $where .= " AND email LIKE '%" . $select_value . "%'";
  1085. }
  1086. }
  1087. if (!empty($grade)) {
  1088. $where .= ' AND grade=';
  1089. $where .= ($grade == 10) ? '0' : $grade;
  1090. }
  1091. if(!empty($group)){
  1092. $where .= " AND group_code like '%,".$group. ",%'";
  1093. }
  1094. if (!empty($regist_startime)) {
  1095. $regist_startime = date('Y-m-d H:i:s', strtotime($regist_startime));
  1096. $where .= " AND register_time>='" . $regist_startime . "'";
  1097. }
  1098. if (!empty($regist_endtime)) {
  1099. $regist_endtime = date('Y-m-d H:i:s', strtotime($regist_endtime));
  1100. $where .= " AND register_time<='" . $regist_endtime . "'";
  1101. }
  1102. if (!empty($last_startime)) {
  1103. $last_startime = date('Y-m-d H:i:s', strtotime($last_startime));
  1104. //$last_startime = strtotime($last_startime)-300;
  1105. $where .= " AND last_time>='" . $last_startime . "'";
  1106. //$where .= " AND ta.effective_time>=" . $last_startime;
  1107. }
  1108. if (!empty($last_endtime)) {
  1109. $last_endtime = date('Y-m-d H:i:s', strtotime($last_endtime));
  1110. //$last_endtime = strtotime($last_endtime)-300;
  1111. $where .= " AND last_time<='" . $last_endtime . "'";
  1112. //$where .= " AND ta.effective_time<=" . $last_endtime;
  1113. }
  1114. if (!empty($statuss)) {
  1115. $statuss = ($statuss == 2) ? '0' : $statuss;
  1116. $where .= " AND statuss=" . $statuss;
  1117. }
  1118. if (!empty($status)) {
  1119. $status = ($status == 5) ? '-1' : $status;
  1120. $where .= " AND status=" . $status;
  1121. $where .= " or status=" . '2';
  1122. }
  1123. if (!empty($cash_small)) {
  1124. $where .= " AND cash>=" . $cash_small;
  1125. }
  1126. if (!empty($cash_big)) {
  1127. $where .= " AND cash<=" . $cash_big;
  1128. }
  1129. if (!empty($rechargenum_small)) {
  1130. $rflag = 1;
  1131. $where .= ' AND (mc.recharge_num >=' . $rechargenum_small;
  1132. }
  1133. if (!empty($rechargenum_big)) {
  1134. $rflag = 1;
  1135. $where .= empty($rechargenum_small) ? 'AND (' : 'AND ';
  1136. $where .= ' mc.recharge_num <=' . $rechargenum_big;
  1137. }
  1138. if ((empty($rechargenum_small) || $rechargenum_small <= 0) && (empty($rechargenum_big) || $rechargenum_big >= 0)) {
  1139. if (!(empty($rechargenum_small) && empty($rechargenum_big))) {
  1140. $where .= " OR mc.recharge_num ISNULL)";
  1141. }
  1142. } else {
  1143. $where .= ')';
  1144. }
  1145. if (!empty($takenum_small)) {
  1146. $tflag = 1;
  1147. $where .= ' AND (tc.take_num >=' . $takenum_small;
  1148. }
  1149. if (!empty($takenum_big)) {
  1150. $tflag = 1;
  1151. $where .= empty($takenum_small) ? 'AND (' : 'AND ';
  1152. $where .= ' tc.take_num <=' . $takenum_big;
  1153. }
  1154. if ((empty($takenum_small) || $takenum_small <= 0) && (empty($takenum_big) || $takenum_big >= 0)) {
  1155. if (!(empty($takenum_small) && empty($takenum_big))) {
  1156. $where .= " OR tc.take_num ISNULL)";
  1157. }
  1158. } else {
  1159. $where .= ')';
  1160. }
  1161. $db = new \App\Models\Account;
  1162. $data = $db->account($list, $page, $where, $field, $order, $rflag, $tflag);
  1163. if ($data < 0) {
  1164. return -1;
  1165. }
  1166. $data = $data['data'];
  1167. // // 打开PHP文件句柄,php://output 表示直接输出到浏览器
  1168. // dump($data);
  1169. // // 输出Excel列名信息
  1170. $head = '编号, 用户名/等级, 余额, 姓名, 注册时间, 注册IP/登录IP, 注册网址/登录网址, 手机号码, 邮箱, 最后登录时间, 状态, 代理';
  1171. $log = array(
  1172. session('adminInfo.admin_name'),
  1173. );
  1174. OperationLog(session('adminInfo.admin_id'), 'export_userlist', $log);
  1175. $str = iconv('utf-8', 'gbk', $head) . chr(10) . chr(9);
  1176. foreach ($data as $value) {
  1177. $row = array();
  1178. $row[] = $value['id'];
  1179. $row[] = $value['account'];
  1180. $row[] = $value['cash'];
  1181. $row[] = $value['name'];
  1182. $row[] = $value['register_time'];
  1183. $row[] = str_replace(',','-',$value['register_ip']) . '/' . str_replace(',','-',$value['last_ip']);
  1184. $row[] = $value['register_url'] . '/' . $value['last_url'];
  1185. $row[] = $value['phone'];
  1186. $row[] = $value['email'];
  1187. $row[] = $value['last_time'];
  1188. $row[] = ($value['status']== 1) ? '启用' : '禁用';
  1189. $row[] = $value['agent_name'];
  1190. $str .= iconv('UTF-8', 'GBK//TRANSLIT', implode(',', $row)) . chr(10) . chr(9);
  1191. }
  1192. header('Content-Type: application/vnd.ms-excel');
  1193. header('Content-Disposition: attachment;filename="user.csv"');
  1194. header('Cache-Control: max-age=0');
  1195. echo $str;
  1196. }
  1197. function getUser(Req $req){
  1198. $account_name=$req->account_name?trim($req->account_name):'';
  1199. if(empty($account_name)){
  1200. return responseToJson(-4010100201);
  1201. }
  1202. $acccount_db=new \App\Models\Account_list;
  1203. $data=$acccount_db->getMsg($account_name);
  1204. if($data<0){
  1205. return responseToJson($data);
  1206. }
  1207. //获取次数
  1208. $recharge_db=new \App\Models\Money_details;
  1209. $rech_data=$recharge_db->countUserNum($account_name);
  1210. $data['take_num']=0;
  1211. $data['recharge_num']=0;
  1212. foreach ($rech_data as $v){
  1213. if($v['trade_type']==5){
  1214. $data['take_num']=$v['num'];
  1215. }else{
  1216. $data['recharge_num']+=$v['num'];
  1217. }
  1218. }
  1219. //获取金额
  1220. $data['recharge']=$recharge_db->sumRecharge($account_name);
  1221. return responseToJson($data);
  1222. }
  1223. }