| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- <?php
- namespace App\Http\Controllers\Api;
- use App\Modes\AccountLog;
- use App\Modes\User;
- use App\Rules\Phone;
- use Doctrine\DBAL\Driver\PDOException;
- use Illuminate\Http\Request;
- use App\Http\Controllers\Controller;
- use Mockery\Exception;
- use Illuminate\Support\Facades\DB;
- class AccountLogController extends Controller
- {
- /**
- * 获取列表
- * @author lyh
- * @date 2019/3/27
- * @description
- */
- public function index()
- {
- $res = AccountLog::whereUid(\Auth::id())->whereIn('type', [5, 10, 11, 12, 13, 20, 21, 22, 23])->orderBy('created_at','desc')->paginate(perPage());
- return showJsonSucc(1001, $res);
- }
- /**
- * 点币记录
- * @author lyh
- * @date 2019/3/28
- * @description
- */
- public function coin(Request $request)
- {
- // $param=$request->all();
- //$page=empty($param['page'])?1:$param['page'];
- $res = AccountLog::whereUid(\Auth::id())->whereIn('type', [30, 31, 32,45])->whereMoneyType(1)->orderBy('created_at','desc')->paginate(perPage());
- return showJsonSucc(1001, $res);
- }
- /**
- * 点币转账
- * @author lyh
- * @date 2019/3/28
- * @description
- */
- public function coinTransfer(Request $request)
- {
- $validator = \Validator::make($param = $request->all(), [
- 'mobile' => 'required',
- 'num' => 'required|integer',
- 'pay_password' => [
- 'required',
- 'string',
- 'between:6,18'
- ]
- ]);
- if ($validator->fails()) {
- return showJsonErr($validator->errors()->first());
- }
- $outuser=User::whereMobile($param['mobile'])->count();
- if(empty($outuser)){
- return showJsonErr('转入账号不存在');
- }
- $pay_password=md5(md5($param['pay_password']));
- if(empty(\Auth::user()->pay_password)){
- return showJsonErr('您还未设置支付密码');
- }
- if ($pay_password!=\Auth::user()->pay_password) {
- return showJsonErr('支付密码错误');
- }
- if ($param['mobile'] == \Auth::user()->mobile) {
- return showJsonErr('请勿转账给自己');
- }
- if ($param['num'] > \Auth::user()->coin) {
- return showJsonErr('点币余额不足');
- }
- $transferUser = User::whereMobile($param['mobile'])->first();
- \DB::beginTransaction();
- try {
- $remark = sprintf('%s转账%d点币给%s', \Auth::user()->mobile, $param['num'], $transferUser->mobile);
- $save1 = \App\Modes\AccountLog::insertGetId([
- 'uid' => \Auth::id(),
- 'source_uid' => $transferUser->id,
- 'type' => 31,
- 'status' => 1,
- 'money' => '-'.$param['num'],
- 'money_type' => 1,
- 'current_money' => \Auth::user()->coin,
- 'remark' => $remark,
- ]);
- User::whereId(\Auth::id())->decrement('coin', $param['num']);
- $remark = sprintf('%s收到%s转账%d点币', $transferUser->mobile, \Auth::user()->mobile, $param['num']);
- $save2 = \App\Modes\AccountLog::insertGetId([
- 'uid' => $transferUser->id,
- 'source_uid' => \Auth::id(),
- 'type' => 30,
- 'status' => 1,
- 'money' => $param['num'],
- 'money_type' => 1,
- 'current_money' => $transferUser->coin,
- 'remark' => $remark,
- ]);
- User::whereId($transferUser->id)->increment('coin', $param['num']);
- if (empty($save1) || empty($save2)) {
- \DB::rollBack();
- return showJsonErr('转账失败,请稍后再试');
- }
- \DB::commit();
- return showJsonSucc('转账成功,请注意查收');
- } catch (Exception $pdo) {
- \DB::rollBack();
- return showJsonErr('转账失败', [
- 'msg' => $pdo->getMessage(),
- ]);
- }
- }
- /**
- * [sum 首页统计信息]
- * @return [type] [description]
- */
- public function sum(){
- $id = \Auth::id();
- $user = User::whereId($id)->first();
- $data['balance'] = round($user['balance'],4);
- $data['coin'] = round($user['coin'],4);
- $data['total_share'] = '0.00';
- $data['share_count'] = '0';
- $data['month_share'] = '0.00';
-
- $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]);
- $sum = $sum[0];
- $data['total_income'] = $sum->total_income?$sum->total_income:0;
- $data['today_income'] = $sum->today_income?$sum->today_income:0;
- $data['month_income'] = $sum->month_income?$sum->month_income:0;
- return showJsonSucc('获取数据成功',$data);
- }
- }
|