ReliefController.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use Illuminate\Http\Request;
  4. use App\Http\Controllers\Controller;
  5. use App\Http\Models\ReliefData;
  6. use App\Http\Models\UserInfo;
  7. use Illuminate\Support\Facades\DB;
  8. use \Exception;
  9. /**
  10. * 救济金控制器
  11. */
  12. class ReliefController extends Controller
  13. {
  14. /**
  15. * 数据获取
  16. *
  17. * @access public
  18. * @param mixed $req 参数.
  19. * @return string
  20. */
  21. public function getRelief(Request $req){
  22. try {
  23. // 查询参数.
  24. $reliefDataModel = new ReliefData;
  25. $userInfoModel = new UserInfo;
  26. $uid = S('token_user_id');
  27. $getReliefBetween = [
  28. strtotime(date("Y-m-d")),
  29. time(),
  30. ];
  31. $getReliefWhere['members_id'] = $uid;
  32. // 查询用户领取次数.
  33. $res = $reliefDataModel->countRelief($getReliefWhere, $getReliefBetween);
  34. // 查询系统设置表救济金领取表.
  35. $getConfigSelect = [
  36. 'systemconfig_data',
  37. 'systemconfig_status',
  38. 'systemconfig_id',
  39. ];
  40. $getConfigWhere['systemconfig_name'] = 'relief';
  41. $getSystemconfig = $reliefDataModel->getSystemconfig($getConfigSelect, $getConfigWhere);
  42. // 查询用户余额.
  43. $getUserSelect = ['membersDetailed_cash'];
  44. $getUserWhere['members_id'] = $uid;
  45. $cash = $userInfoModel->userInfo($getUserSelect, $getUserWhere);
  46. // 查询用户游戏余额.
  47. $gameMoneySelect = ['gameMoney_money'];
  48. $gameMoneyWhere['members_id'] = $uid;
  49. $gameMoney = $userInfoModel->gameMoney($gameMoneySelect, $gameMoneyWhere);
  50. // 获取用户总余额.
  51. $allCash = $cash['membersDetailed_cash'];
  52. foreach ($gameMoney as $v) {
  53. $allCash += $v['gameMoney_money'];
  54. }
  55. // 验证是否可领取.
  56. $data = json_decode($getSystemconfig[0]['systemconfig_data'], true);
  57. $status = $getSystemconfig[0]['systemconfig_status'];
  58. if ($res >= $data['count']) {
  59. return toJson(-30002);
  60. } else if ($data['condition'] < $allCash) {
  61. return toJson(-30003);
  62. }
  63. if ($status == 1 && $res < $data['count'] && $data['condition'] >= $allCash) {
  64. DB::beginTransaction();
  65. $upUserInfoWhere['members_id'] = $uid;
  66. $upUserInfoData['membersDetailed_cash'] = ($data['mony'] + $cash['membersDetailed_cash']);
  67. // 修改用户信息.
  68. $upUserInfo = $userInfoModel->upUserInfo($upUserInfoWhere, $upUserInfoData);
  69. // 新增救济金记录.
  70. $orderId = getOrderId();
  71. $addReliefData = [
  72. 'getrelief_identity' => $orderId,
  73. 'members_id' => $uid,
  74. 'getrelief_addtime' => time(),
  75. 'getrelief_mony' => $data['mony'],
  76. 'getrelief_begin_money' => $cash['membersDetailed_cash'],
  77. 'getrelief_end_money' => ($data['mony'] + $cash['membersDetailed_cash']),
  78. ];
  79. $addRelief = $reliefDataModel->addRelief($addReliefData);
  80. if ($addRelief && $upUserInfo) {
  81. DB::commit();
  82. return toJson(1, '成功', ['money' => ($data['mony'] + $cash['membersDetailed_cash'])]);
  83. } else {
  84. return toJson(-2);
  85. DB::rollBack();
  86. }
  87. } else {
  88. return toJson(-30003);
  89. }//end if
  90. } catch (Exception $e) {
  91. echo $e->getMessage();
  92. }//end try
  93. }
  94. }