WagentController.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281
  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 App\Models;
  7. use Request;
  8. /**
  9. *代理管理
  10. */
  11. class WagentController extends Controller {
  12. //代理列表
  13. function index(Req $req) {
  14. $request=array();
  15. $request['home_team'] = isset($req->home_team) ? trim($req->home_team) : null;
  16. $request['status'] = isset($req->status) ? trim($req->status) : '-1';
  17. $request['sureblurs'] = isset($req->sureblurs) ? $req->sureblurs : 'on';
  18. $request['star_time'] = isset($req->star_time) ? trim($req->star_time) :trans('status.default_time.zt_day_three') ;
  19. $request['end_time'] = isset($req->end_time) ? trim($req->end_time) : trans('status.default_time.etime');
  20. $dt = \App\Lib\DataTable\DataTable::init();
  21. $dt->setDataSource('/admin/wagent/info');
  22. $dt->setLang('wagent');
  23. $dt->addColsFields('agent_name', array('templet' => '#newtime', 'sort' => false, 'width' => 80));
  24. $dt->addColsFields('agent_key_secret', array('templet' => '#agent_key_secret', 'sort' => false, 'width' => 265));
  25. $dt->addColsFields('create_time', array('templet' => '#totime', 'sort' => false, 'width' => 100));
  26. $dt->addColsFields('frozen_money', array('templet' => '#frozen_money', 'sort' => false, 'width' => 130));
  27. $dt->addColsFields('money', array('templet' => '#totime', 'sort' => false, 'width' => 130));
  28. $dt->addColsFields('zjrecord_xxrecord', array('templet' => '#zjrecord_xxrecord', 'sort' => false, 'width' => 140));
  29. if (checkRriv('/admin/wagent/edit')) {
  30. $arr[] = 'edit';
  31. }
  32. $dt->setToolBar($arr, array('width' => 80));
  33. $dt->enableCheckBox();
  34. return view('admin.wagent/index', $dt->render($request));
  35. }
  36. //代理用户资金纪录
  37. function zjrecord(Req $req){
  38. $request=array();
  39. $request['home_team'] = isset($req->home_team) ? trim($req->home_team) : null;
  40. $request['ordernumber'] = isset($req->ordernumber) ? trim($req->ordernumber) : null;
  41. $request['status'] = isset($req->status) ? trim($req->status) : '-1';
  42. $request['sureblurs'] = isset($req->sureblurs) ? $req->sureblurs : 'on';
  43. $request['star_time'] = isset($req->star_time) ? trim($req->star_time) :trans('status.default_time.seven_day') ;
  44. $request['end_time'] = isset($req->end_time) ? trim($req->end_time) : trans('status.default_time.etime');
  45. $dt = \App\Lib\DataTable\DataTable::init();
  46. $dt->setDataSource('/admin/wagent/zjrecordinfo');
  47. $dt->setLang('wagent');
  48. //$dt->addColsFields('agent_name', array('templet' => '#newtime', 'sort' => false, 'width' => 80));
  49. $dt->addColsFields('ordernumber', array('templet' => '#newtime', 'sort' => false, 'width' => 150));
  50. $dt->addColsFields('credit', array('templet' => '#newtime', 'sort' => false, 'width' => 100));
  51. $dt->addColsFields('agent_money_before', array('templet' => '#newtime', 'sort' => false, 'width' => 100));
  52. $dt->addColsFields('agent_money_after', array('templet' => '#newtime', 'sort' => false, 'width' => 100));
  53. $dt->addColsFields('datetime', array('templet' => '#newtime', 'sort' => false, 'width' => 100));
  54. $dt->enableCheckBox();
  55. return view('admin.wagent/zjrecord', $dt->render($request));
  56. }
  57. function zjrecordinfo(){
  58. $page = Request::has('page') ? Request::get('page') : '';
  59. $list = Request::has('limit') ? Request::get('limit') : 10;
  60. $home_team = Request::has('home_team') ? Request::get('home_team') : '';
  61. $ordernumber = Request::has('ordernumber') ? Request::get('ordernumber') : '';
  62. $sureblur = Request::has('sureblurs') ? Request::get('sureblurs') : 'off';
  63. $star_time = Request::get('star_time') ? Request::get('star_time').' 00:00:00' : '';
  64. $end_time = Request::get('end_time') ? Request::get('end_time').' 23:59:59' : '';
  65. $where = array();
  66. if (!empty($home_team)) {
  67. $where[] = array('wagent_log.agent_name', '=', $home_team);
  68. }
  69. if (!empty($ordernumber)) {
  70. if (empty($sureblur) || $sureblur == 'off') {
  71. $where[] = array('wagent_log.ordernumber', 'like', '%' . $ordernumber . '%');
  72. } else {
  73. $where[] = array('wagent_log.ordernumber', '=', $ordernumber);
  74. }
  75. }
  76. //追加时间范围条件
  77. if (!empty($star_time)) {
  78. $star_time = date('Y-m-d H:i:s', strtotime($star_time));
  79. $where[] = array('datetime', '>=', $star_time);
  80. }
  81. if (!empty($end_time)) {
  82. $end_time = date('Y-m-d H:i:s', strtotime($end_time));
  83. $where[] = array('datetime', '<=', $end_time);
  84. }
  85. $newapp = new \App\Models\Wagentlog();
  86. $data = $newapp->wagentloglist($list, $page, $where);
  87. return \App\Lib\DataTable\DataTable::init()->toJson($data['data'], $data['total']);
  88. }
  89. //代理用户客户资金纪录
  90. function xxrecord(Req $req){
  91. $request=array();
  92. $request['home_team'] = isset($req->home_team) ? trim($req->home_team) : null;
  93. $request['ordernumber'] = isset($req->ordernumber) ? trim($req->ordernumber) : null;
  94. $request['status'] = isset($req->status) ? trim($req->status) : '-1';
  95. $request['sureblurs'] = isset($req->sureblurs) ? $req->sureblurs : 'on';
  96. $request['star_time'] = isset($req->star_time) ? trim($req->star_time) :trans('status.default_time.seven_day') ;
  97. $request['end_time'] = isset($req->end_time) ? trim($req->end_time) : trans('status.default_time.etime');
  98. $dt = \App\Lib\DataTable\DataTable::init();
  99. $dt->setDataSource('/admin/wagent/xxrecordinfo');
  100. $dt->setLang('wagent');
  101. $dt->addColsFields('ordernumber', array('templet' => '#newtime', 'sort' => false, 'width' => 200));
  102. $dt->addColsFields('tradeamount', array('templet' => '#newtime', 'sort' => false, 'width' => 100));
  103. $dt->addColsFields('blance', array('templet' => '#newtime', 'sort' => false, 'width' => 100));
  104. $dt->addColsFields('addtime', array('templet' => '#newtime', 'sort' => false, 'width' => 150));
  105. $dt->enableCheckBox();
  106. return view('admin.wagent/xxrecord', $dt->render($request));
  107. }
  108. function xxrecordinfo(){
  109. $page = Request::has('page') ? Request::get('page') : '';
  110. $list = Request::has('limit') ? Request::get('limit') : 10;
  111. $home_team = Request::has('home_team') ? Request::get('home_team') : '';
  112. $ordernumber = Request::has('ordernumber') ? Request::get('ordernumber') : '';
  113. $sureblur = Request::has('sureblurs') ? Request::get('sureblurs') : 'off';
  114. $star_time = Request::get('star_time') ? Request::get('star_time').' 00:00:00' : '';
  115. $end_time = Request::get('end_time') ? Request::get('end_time').' 23:59:59' : '';
  116. $where = array();
  117. if (!empty($home_team)) {
  118. $where[] = array('money_transfer.agent_name', '=', $home_team);
  119. }
  120. if (!empty($ordernumber)) {
  121. if (empty($sureblur) || $sureblur == 'off') {
  122. $where[] = array('money_transfer.ordernumber', 'like', '%' . $ordernumber . '%');
  123. } else {
  124. $where[] = array('money_transfer.ordernumber', '=', $ordernumber);
  125. }
  126. }
  127. //追加时间范围条件
  128. if (!empty($star_time)) {
  129. $star_time = date('Y-m-d H:i:s', strtotime($star_time));
  130. $where[] = array('addtime', '>=', $star_time);
  131. }
  132. if (!empty($end_time)) {
  133. $end_time = date('Y-m-d H:i:s', strtotime($end_time));
  134. $where[] = array('addtime', '<=', $end_time);
  135. }
  136. $newapp = new \App\Models\Moneytransfer();
  137. $data = $newapp->moneytransferlist($list, $page, $where);
  138. return \App\Lib\DataTable\DataTable::init()->toJson($data['data'], $data['total']);
  139. }
  140. function info(){
  141. $page = Request::has('page') ? Request::get('page') : '';
  142. $list = Request::has('limit') ? Request::get('limit') : 10;
  143. $home_team = Request::has('home_team') ? Request::get('home_team') : '';
  144. $sureblur = Request::has('sureblurs') ? Request::get('sureblurs') : 'off';
  145. $star_time = Request::get('star_time') ? Request::get('star_time').' 00:00:00' : '';
  146. $end_time = Request::get('end_time') ? Request::get('end_time').' 23:59:59' : '';
  147. $where = array();
  148. if (!empty($home_team)) {
  149. if (empty($sureblur) || $sureblur == 'off') {
  150. $where[] = array('wagent.agent_name', 'like', '%' . $home_team . '%');
  151. } else {
  152. $where[] = array('wagent.agent_name', '=', $home_team);
  153. }
  154. }
  155. //追加时间范围条件
  156. if (!empty($star_time)) {
  157. $star_time = date('Y-m-d H:i:s', strtotime($star_time));
  158. $where[] = array('create_time', '>=', $star_time);
  159. }
  160. if (!empty($end_time)) {
  161. $end_time = date('Y-m-d H:i:s', strtotime($end_time));
  162. $where[] = array('create_time', '<=', $end_time);
  163. }
  164. $newapp = new \App\Models\Wagent();
  165. $data = $newapp->wagentlist($list, $page, $where);
  166. return \App\Lib\DataTable\DataTable::init()->toJson($data['data'], $data['total']);
  167. }
  168. function edit(Req $req) {
  169. $id = $req->id;
  170. if (intval($id) < 1) {
  171. return -1;
  172. }
  173. if (!$req->isMethod('post')) {
  174. $data = \App\Models\Wagent::where('id', $id)->first();
  175. if (!$data) {
  176. return -2;
  177. }
  178. $data = $data->toArray();
  179. return view('admin.wagent/edit', $data);
  180. } else {
  181. $newapp = new \App\Models\Wagentlog();
  182. $model = \App\Models\Wagent::where('id', $id)->first();
  183. $money = $model['money'];
  184. $frozen_money = $req->input('frozen_money');
  185. if($frozen_money>0 && $frozen_money != $model['frozen_money']){
  186. $money = $model['money']+$model['frozen_money']-$frozen_money;
  187. $model->frozen_money = $frozen_money;
  188. $model->money = $money;
  189. }
  190. $newapp->agent_money_before = $money;//交易前金额
  191. $upmoney = $req->input('upmoney');
  192. $type = $req->input('type');
  193. $model->status = $req->input('status');
  194. if(empty($upmoney)){
  195. $model->save();
  196. }else{
  197. if($type==1){
  198. $model->money = $model['money']+$upmoney;
  199. }
  200. if($type==2){
  201. if($model['money']>=$upmoney){
  202. $model->money = $model['money']-$upmoney;
  203. }
  204. }
  205. $model->save();
  206. //资金纪录日志
  207. $newapp->datetime = date('Y-m-d H:i:s',time());//代理名称
  208. $newapp->agent_name = $model['agent_name'];//代理名称
  209. $newapp->account_identity = 0;//默认值
  210. $newapp->ordernumber = 'ST'.date("Ymdhis").mt_rand(100000, 999999);//订单号
  211. $newapp->credit = $upmoney;//改变金额
  212. $newapp->agent_money_after = $model->money;//交易后金额
  213. $newapp->uid = session('adminInfo.admin_id');//操作员id
  214. $newapp->save();
  215. }
  216. return responseToJson(1);
  217. }
  218. }
  219. function add(Req $req) {
  220. if (!$req->isMethod('post')) {
  221. $lange = trans('menu');
  222. return view('admin.wagent/add');
  223. } else {
  224. $agent_name = trim($req->input('agent_name'));//唯一代理名称
  225. if(!preg_match('/^(\w){4,12}$/',$agent_name)) {
  226. return false;
  227. }
  228. $model = new \App\Models\Wagent();
  229. $only = $model->onlywagent($agent_name);
  230. if($only==1){
  231. $model->agent_name = $agent_name;//唯一代理名称
  232. $model->money = trim($req->input('money'));
  233. $model->frozen_money = trim($req->input('frozen_money'));
  234. $model->agent_key = md5($this->randomnum(6));
  235. $model->auth_expire = time();
  236. $model->agent_secret = md5($this->randomnum(6));
  237. $model->create_time = date("Y-m-d");
  238. $model->agent_pre = $agent_name.'_';//唯一代理用户前缀
  239. $model->status = trim($req->input('status'));
  240. }
  241. $model->save();
  242. return responseToJson(1);
  243. }
  244. }
  245. //随机数
  246. function randomnum($num){
  247. $str='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890';
  248. $randStr = str_shuffle($str);//打乱字符串
  249. $rands= substr($randStr,0,$num);
  250. return $rands;
  251. }
  252. }