AccountLogController.php 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Modes\AccountLog;
  4. use App\Modes\User;
  5. use App\Rules\Phone;
  6. use Doctrine\DBAL\Driver\PDOException;
  7. use Illuminate\Http\Request;
  8. use App\Http\Controllers\Controller;
  9. use Mockery\Exception;
  10. use Illuminate\Support\Facades\DB;
  11. class AccountLogController extends Controller
  12. {
  13. /**
  14. * 获取列表
  15. * @author lyh
  16. * @date 2019/3/27
  17. * @description
  18. */
  19. public function index()
  20. {
  21. $res = AccountLog::whereUid(\Auth::id())->whereIn('type', [5, 10, 11, 12, 13, 20, 21, 22, 23])->orderBy('created_at','desc')->paginate(perPage());
  22. return showJsonSucc(1001, $res);
  23. }
  24. /**
  25. * 点币记录
  26. * @author lyh
  27. * @date 2019/3/28
  28. * @description
  29. */
  30. public function coin(Request $request)
  31. {
  32. // $param=$request->all();
  33. //$page=empty($param['page'])?1:$param['page'];
  34. $res = AccountLog::whereUid(\Auth::id())->whereIn('type', [30, 31, 32,45])->whereMoneyType(1)->orderBy('created_at','desc')->paginate(perPage());
  35. return showJsonSucc(1001, $res);
  36. }
  37. /**
  38. * 点币转账
  39. * @author lyh
  40. * @date 2019/3/28
  41. * @description
  42. */
  43. public function coinTransfer(Request $request)
  44. {
  45. $validator = \Validator::make($param = $request->all(), [
  46. 'mobile' => 'required',
  47. 'num' => 'required|integer',
  48. 'pay_password' => [
  49. 'required',
  50. 'string',
  51. 'between:6,18'
  52. ]
  53. ]);
  54. if ($validator->fails()) {
  55. return showJsonErr($validator->errors()->first());
  56. }
  57. $outuser=User::whereMobile($param['mobile'])->count();
  58. if(empty($outuser)){
  59. return showJsonErr('转入账号不存在');
  60. }
  61. $pay_password=md5(md5($param['pay_password']));
  62. if(empty(\Auth::user()->pay_password)){
  63. return showJsonErr('您还未设置支付密码');
  64. }
  65. if ($pay_password!=\Auth::user()->pay_password) {
  66. return showJsonErr('支付密码错误');
  67. }
  68. if ($param['mobile'] == \Auth::user()->mobile) {
  69. return showJsonErr('请勿转账给自己');
  70. }
  71. if ($param['num'] > \Auth::user()->coin) {
  72. return showJsonErr('点币余额不足');
  73. }
  74. $transferUser = User::whereMobile($param['mobile'])->first();
  75. \DB::beginTransaction();
  76. try {
  77. $remark = sprintf('%s转账%d点币给%s', \Auth::user()->mobile, $param['num'], $transferUser->mobile);
  78. $save1 = \App\Modes\AccountLog::insertGetId([
  79. 'uid' => \Auth::id(),
  80. 'source_uid' => $transferUser->id,
  81. 'type' => 31,
  82. 'status' => 1,
  83. 'money' => '-'.$param['num'],
  84. 'money_type' => 1,
  85. 'current_money' => \Auth::user()->coin,
  86. 'remark' => $remark,
  87. ]);
  88. User::whereId(\Auth::id())->decrement('coin', $param['num']);
  89. $remark = sprintf('%s收到%s转账%d点币', $transferUser->mobile, \Auth::user()->mobile, $param['num']);
  90. $save2 = \App\Modes\AccountLog::insertGetId([
  91. 'uid' => $transferUser->id,
  92. 'source_uid' => \Auth::id(),
  93. 'type' => 30,
  94. 'status' => 1,
  95. 'money' => $param['num'],
  96. 'money_type' => 1,
  97. 'current_money' => $transferUser->coin,
  98. 'remark' => $remark,
  99. ]);
  100. User::whereId($transferUser->id)->increment('coin', $param['num']);
  101. if (empty($save1) || empty($save2)) {
  102. \DB::rollBack();
  103. return showJsonErr('转账失败,请稍后再试');
  104. }
  105. \DB::commit();
  106. return showJsonSucc('转账成功,请注意查收');
  107. } catch (Exception $pdo) {
  108. \DB::rollBack();
  109. return showJsonErr('转账失败', [
  110. 'msg' => $pdo->getMessage(),
  111. ]);
  112. }
  113. }
  114. /**
  115. * [sum 首页统计信息]
  116. * @return [type] [description]
  117. */
  118. public function sum(){
  119. $id = \Auth::id();
  120. $user = User::whereId($id)->first();
  121. $data['balance'] = round($user['balance'],4);
  122. $data['coin'] = round($user['coin'],4);
  123. $data['total_share'] = '0.00';
  124. $data['share_count'] = '0';
  125. $data['month_share'] = '0.00';
  126. $sum = DB::select('select SUM(money) AS total_income,SUM( CASE WHEN created_at>= "'.date('Y-m-d').'" THEN money ELSE 0 END) AS today_income,SUM( CASE WHEN created_at>= "'.date('Y-m-1').'" and created_at<="'.date('Y-m-d 23:59:59').'" THEN money ELSE 0 END) AS month_income from zx_account_log where uid=? and type in (10,11,12,13,20,21,22,23)', [$id]);
  127. $sum = $sum[0];
  128. $data['total_income'] = $sum->total_income?$sum->total_income:0;
  129. $data['today_income'] = $sum->today_income?$sum->today_income:0;
  130. $data['month_income'] = $sum->month_income?$sum->month_income:0;
  131. return showJsonSucc('获取数据成功',$data);
  132. }
  133. }