RemittanceController.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Http\Controllers\Controller;
  4. use Illuminate\Http\Request as Req;
  5. use Request;
  6. /**
  7. *
  8. */
  9. class RemittanceController extends Controller {
  10. /**
  11. * @return 汇款管理
  12. */
  13. function index() {
  14. $request=array();
  15. $request['account_name'] = Request::has('account_name') ? Request::get('account_name') : '';
  16. $request['order_id'] = Request::has('order_id') ? Request::get('order_id') : '';
  17. $request['recharge_type'] = Request::has('recharge_type') ? Request::get('recharge_type') : '';
  18. $request['status'] = Request::has('status') ? Request::get('status') : '3';
  19. $request['apply_startime'] = Request::get('apply_startime') ? Request::get('apply_startime') : '';
  20. $request['apply_endtime'] = Request::get('apply_endtime') ? Request::get('apply_endtime') : '';
  21. $request['haddle_startime'] = Request::get('haddle_startime') ? Request::get('haddle_startime') : '';
  22. $request['haddle_endtime'] = Request::get('haddle_endtime') ? Request::get('haddle_endtime') : '';
  23. $request['money_small'] = Request::has('money_small') ? Request::get('money_small') : '';
  24. $request['money_big'] = Request::has('money_big') ? Request::get('money_big') : '';
  25. $dt = \App\Lib\DataTable\DataTable::init();
  26. $account_name = Request::has('account_name') ? Request::get('account_name') : '';
  27. $status = Request::has('status') ? Request::get('status') : '';
  28. $dt->setDataSource('/admin/Remittance/getData');
  29. $dt->setLang('money');
  30. $dt->setPriKey('order_id');
  31. $dt->addColsFields('id', array('width' => 80));
  32. $dt->addColsFields('account_name', array('templet' => '#userrecharge', 'width' => 150, 'sort' => false));
  33. $dt->addColsFields('apply_time');
  34. $dt->addColsFields('group_name', array('width' => 220));
  35. $dt->addColsFields('recharge_time', array('templet' => '#money_user','width' => 180));
  36. $dt->addColsFields('complete_time', array('templet' => '#taked', 'width' => 180));
  37. $dt->addColsFields('money', array('templet' => '#money_aftercash', 'width' => 290));
  38. $dt->addColsFields('systemuser_rechargetype', array('sort' => false, 'width' => 150));
  39. $dt->addColsFields('action', array('sort' => false, 'templet' => '#sendmoney', 'width' => 110));
  40. return view('admin.remittance/index', $dt->render($request));
  41. }
  42. //获取数据
  43. function getData() {
  44. $page = Request::has('page') ? Request::get('page') : 1;
  45. $limit = Request::has('limit') ? Request::get('limit') : 10;
  46. $field = Request::has('field') ? Request::get('field') : 'apply_time';
  47. $order = Request::has('order') ? Request::get('order') : 'desc';
  48. $account_name = Request::has('account_name') ? Request::get('account_name') : '';
  49. $order_id = Request::has('order_id') ? Request::get('order_id') : '';
  50. $recharge_type = Request::has('recharge_type') ? Request::get('recharge_type') : '';
  51. $status = Request::has('status') ? Request::get('status') : '';
  52. $apply_startime = Request::get('apply_startime') ? Request::get('apply_startime').' 00:00:00' : '';
  53. $apply_endtime = Request::get('apply_endtime') ? Request::get('apply_endtime').' 23:59:59' : '';
  54. $haddle_startime = Request::get('haddle_startime') ? Request::get('haddle_startime').' 00:00:00' : '';
  55. $haddle_endtime = Request::get('haddle_endtime') ? Request::get('haddle_endtime').' 23:59:59' : '';
  56. $money_small = Request::has('money_small') ? Request::get('money_small') : '';
  57. $money_big = Request::has('money_big') ? Request::get('money_big') : '';
  58. $sureblur = Request::has('sureblur') ? Request::get('sureblur') : '';
  59. $whereIn = array();
  60. $where = array();
  61. $reType=trans('status.money_recharge.send_type');
  62. if (!empty($recharge_type)) {
  63. $where[] = array('recharge_type', '=', $reType[$recharge_type]);
  64. }
  65. // if (!empty($status)) {
  66. // $status = ($status==3)?'0':$status;
  67. // $where[] = array('status', '=', $status);
  68. // }
  69. if (is_numeric($status)) {
  70. if ($status != 4) {
  71. $where[] = array('status', '=', $status);
  72. }
  73. }
  74. if (!empty($apply_startime)) {
  75. $apply_startime = date('Y-m-d H:i:s', strtotime($apply_startime));
  76. $where[] = array('apply_time', '>=', $apply_startime);
  77. }
  78. if (!empty($apply_endtime)) {
  79. $apply_endtime = date('Y-m-d H:i:s', strtotime($apply_endtime));
  80. $where[] = array('apply_time', '<=', $apply_endtime);
  81. }
  82. if (!empty($haddle_startime)) {
  83. $haddle_startime = date('Y-m-d H:i:s', strtotime($haddle_startime));
  84. $where[] = array('complete_time', '>=', $haddle_startime);
  85. }
  86. if (!empty($haddle_endtime)) {
  87. $haddle_endtime = date('Y-m-d H:i:s', strtotime($haddle_endtime));
  88. $where[] = array('complete_time', '<=', $haddle_endtime);
  89. }
  90. if (!empty($money_small)) {
  91. $where[] = array('money', '>=', $money_small);
  92. }
  93. if (!empty($money_big)) {
  94. $where[] = array('money', '<=', $money_big);
  95. }
  96. $infield = 'recharge_type';
  97. $invalue = ['汇款', '汇款赠送'];
  98. if (!empty($account_name)) {
  99. if (empty($sureblur) || $sureblur == '模糊') {
  100. $where[] = array('account_name', 'like', '%' . $account_name . '%');
  101. } else {
  102. $where[] = array('account_name', '=', $account_name);
  103. }
  104. }
  105. if (!empty($order_id)) {
  106. $where = array(array('money_recharge.order_id', '=', $order_id));
  107. }
  108. $moneydetails = new \App\Models\Money_recharge();
  109. $jointable = 'money_recharge_remark';
  110. if($field=='recharge_time'){
  111. $field = 'money_recharge_remark.'.$field;
  112. }else if($field=='group_name'){
  113. $field = 'account_detailed.'.$field;
  114. } else{
  115. $field = 'money_recharge.'.$field;
  116. }
  117. $remark = 'money_recharge.remark';
  118. $data = $moneydetails->getRechargelist($where, 8, $limit, $field, $order, $infield, $invalue, $jointable,$whereIn);
  119. if ($data < 0) {
  120. return $data;
  121. }
  122. $status = trans('status');
  123. $status = $status['money_recharge']['sendstatus'];
  124. foreach ($data['data'] as $k => $v) {
  125. $data['data'][$k]['apply_time'] = $v['order_id'] . '<br>' . $v['apply_time'];
  126. $data['data'][$k]['statuss'] = $status[$v['status']];
  127. // $data['data'][$k]['complete_time'] = $data['data'][$k]['statuss'] . '<br>' . $v['complete_time'];
  128. $data['data'][$k]['systemuser_rechargetype'] = $v['sysetem_user'] . '<br>' . $v['recharge_type'];
  129. (empty($v['remark']))?null:($data['data'][$k]['systemuser_rechargetype'].='---'.$v['remark']);
  130. //$data['data'][$k]['recharge_time'] = $v['name'] . '<br>' . $v['recharge_time'];
  131. }
  132. $data['data'] = arrayToNumber($data['data'], ['money', 'money_cash']);
  133. return \App\Lib\DataTable\DataTable::init()->toJson($data['data'], $data['total'], 0, $where);
  134. }
  135. //汇款统计
  136. function getTotal() {
  137. }
  138. //获取
  139. private function getSumRemit($startTime, $endTime, $type = '') {
  140. if (empty($startTime)) {
  141. $startTime = date('Y-m-d 00:00:00');
  142. }
  143. if (empty($endTime)) {
  144. $endTime = date('Y-m-d 23:59:59');
  145. }
  146. $db = new \App\Models\Money_recharge;
  147. $where = array();
  148. $where[] = array('money_time', '>=', $startTime);
  149. $where[] = array('money_time', '<=', $endTime);
  150. if ($type) {
  151. $where[] = array('trade_type', '=', $type);
  152. } else {
  153. //获取总存取反水金额
  154. return $db->getRimitTotal($where);
  155. }
  156. //规定的类型总数
  157. return $db->sumRimitMoney($where);
  158. }
  159. //汇款详情
  160. function Sendview(Req $req) {
  161. return $this->senddetail($req);
  162. }
  163. //查看汇款详情
  164. function senddetail(Req $req) {
  165. $orderid = $req->orderid;
  166. if (empty($orderid)) {
  167. abort(404);
  168. }
  169. $send = new \App\Models\Money_recharge();
  170. if (!$req->isMethod('post')) {
  171. $where = array();
  172. if (!empty($orderid)) {
  173. $where[] = array('order_id', '=', $orderid);
  174. }
  175. $data = $send::where($where)->first();
  176. if (!$data) {
  177. abort(404);
  178. }
  179. $data = $data->toArray();
  180. return view('admin.MoneyManage/Senddetail', ['data' => $data]);
  181. //return view('admin.menu/userAdd', ['data' => $data_details]);
  182. }
  183. abort(404);
  184. }
  185. //汇款通过
  186. function save_recharge(Req $req) {
  187. return $this->EditSend($req);
  188. }
  189. //汇款通过
  190. function EditSend(Req $req) {
  191. $order_id = $req->order_id;
  192. if (empty($order_id)) {
  193. abort(404);
  194. }
  195. $send = new \App\Models\Money_recharge();
  196. $where = array();
  197. $where[] = array('order_id', '=', $order_id);
  198. $data = $send::where($where)->first();
  199. if (!$data) {
  200. abort(404);
  201. }
  202. $data = $data->toArray();
  203. //print_r($data);exit;
  204. if (!$req->isMethod('post')) {
  205. $account = new \App\Models\Account_detailed();
  206. $uinfo = $account->getInfoBy($data['account_identity']);
  207. if($uinfo<0){
  208. return responseToJson($uinfo);
  209. }
  210. $data['cur_cash'] = $uinfo['cash'];
  211. return view('admin.remittance/save_recharge', ['data' => $data]);
  212. } else {
  213. $limitroot = new \App\Models\System_user();
  214. $limitmoney = $limitroot->checkActMoney($data['money']);
  215. if($limitmoney<0){
  216. return responseToJson($limitmoney);
  217. }
  218. $point = empty($req->point)?0:$req->point;
  219. $checkedL = empty($req->checkedL)?2:$req->checkedL;
  220. $point = ($checkedL == 1) ? $point / 100 : 0;
  221. $rimit = new \App\Http\Controllers\Admin\MoneyController;
  222. $res = $rimit->Rimit($order_id, $point);
  223. $log = array(
  224. session('adminInfo.admin_name'),
  225. $data['account_name'],
  226. $data['money'],
  227. $order_id,
  228. );
  229. $db = new \App\Models\Manager;
  230. $dbs = new \App\Models\Account();
  231. $names=$dbs->getinfo($data['account_identity'],2);
  232. $db->updateMessage('admin',$names['account'],'充值提示','充值成功,充值金额:'.$data['money'],2);
  233. OperationLog(session('adminInfo.admin_id'), 'EditSend', $log);
  234. return responseToJson($res);
  235. }
  236. }
  237. //汇款驳回
  238. function return_recharge(Req $req) {
  239. return $this->EditReturn($req);
  240. }
  241. //汇款驳回
  242. function EditReturn(Req $req) {
  243. $order_id = $req->order_id;
  244. if (empty($order_id)) {
  245. abort(404);
  246. }
  247. $send = new \App\Models\Money_recharge();
  248. $where = array();
  249. $where[] = array('order_id', '=', $order_id);
  250. $data = $send::where($where)->first();
  251. if (!$data) {
  252. abort(404);
  253. }
  254. $data = $data->toArray();
  255. $temp_data=$data;
  256. if (!$req->isMethod('post')) {
  257. return view('admin.remittance/return_recharge');
  258. } else {
  259. //验证可操作金额权限
  260. $db = new \App\Models\Money_recharge;
  261. $info = $db->getRimitDetails($order_id);
  262. if ($info < 0) {
  263. return responseToJson($info);
  264. }
  265. $limitroot = new \App\Models\System_user();
  266. $limitmoney = $limitroot->checkActMoney($info['money']);
  267. if($limitmoney<0){
  268. return responseToJson($limitmoney);
  269. }
  270. $db = new \App\Models\Manager;
  271. $dbs = new \App\Models\Account();
  272. $names=$dbs->getinfo($data['account_identity'],2);
  273. $db->updateMessage('admin',$names['account'],'充值提示','充值失败,充值金额:'.$info['money'],2);
  274. $reason = $req->reason;
  275. $account = new \App\Models\Account_detailed();
  276. $uinfo = $account->getInfoBy($data['account_identity']);
  277. if($uinfo<0){
  278. return responseToJson($uinfo);
  279. }
  280. $data = array();
  281. $data['status'] = 2;
  282. if (!empty($reason)) {
  283. $data['sysetem_user'] = session('adminInfo.admin_name');
  284. $data['money_cash'] = $uinfo['cash'];
  285. $data['complete_time'] = date('Y-m-d H:i:s',time());
  286. $data['reason'] = $reason;
  287. }
  288. $db = new \App\Models\Money_recharge;
  289. $res = $db->updateInfo($data, 'order_id', $order_id);
  290. if($res<0){
  291. return responseToJson($res);
  292. }
  293. $res=$this->addRemitFailLog($temp_data,$uinfo['cash'],$reason);
  294. $log = array(
  295. session('adminInfo.admin_name'),
  296. $temp_data['account_name'],
  297. $info['money'],
  298. $reason,
  299. $order_id,
  300. );
  301. OperationLog(session('adminInfo.admin_id'), 'EditReturn', $log);
  302. return responseToJson($res);
  303. }
  304. }
  305. //添加汇款失败详情
  306. function addRemitFailLog($data,$money_cash,$reason){
  307. $lang=array(
  308. session('adminInfo.admin_name'),
  309. $data['account_name'],
  310. $data['money'],
  311. $data['order_id']
  312. );
  313. $log=array(
  314. 'trade_id'=>$data['order_id'],
  315. 'account_name'=>$data['account_name'],
  316. 'account_identity'=>$data['account_identity'],
  317. 'money'=>$data['money'],
  318. 'money_time'=>date('Y-m-d H:i:s'),
  319. 'money_type'=>2,
  320. 'trade_type'=>14,
  321. 'trade_desc'=>vsprintf( trans('trade.remit_money_fail') , $lang),
  322. 'reason'=>$reason,
  323. 'sysetem_user'=>session('adminInfo.admin_name'),
  324. 'money_cash'=>$money_cash,
  325. 'status'=>2,
  326. );
  327. $db=new \App\Models\Money_details;
  328. return $db->insertData($log);
  329. }
  330. }