banker_logModel.class.php 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. /**
  3. *
  4. */
  5. class banker_logModel extends Model
  6. {
  7. public function addLog($video_id, $user_id, $coin)
  8. {
  9. $log = $this->field('id')->selectOne(['user_id' => $user_id, 'video_id' => $video_id, 'status' => 1]);
  10. if ($log) {
  11. return false;
  12. }
  13. $data = array(
  14. 'video_id' => $video_id,
  15. 'user_id' => $user_id,
  16. 'coin' => $coin,
  17. 'apply_coin' => $coin,
  18. 'status' => 1,
  19. 'create_time' => NOW_TIME,
  20. );
  21. return $this->insert($data);
  22. }
  23. public function chooseBanker($banker_log_id, $video_id)
  24. {
  25. $res = $this->update(['status' => 3], ['id' => $banker_log_id, 'video_id' => $video_id]);
  26. if ($res) {
  27. $this->returnCoin(['status' => 1, 'video_id' => $video_id], '落选上庄底金返还');
  28. }
  29. return $res;
  30. }
  31. public function returnCoin($where, $msg)
  32. {
  33. $model = Model::build('user');
  34. $coin_log_model = Model::build('coin_log');
  35. $lose_banker = $this->field('user_id,coin,status')->select($where);
  36. Connect::beginTransaction();
  37. foreach ($lose_banker as $value) {
  38. if ($value['status'] == 3) {
  39. $user_id = $value['user_id'];
  40. $coin = $value['coin'];
  41. $res = $model->coin($value['user_id'], $value['coin']);
  42. if (!$res) {
  43. Connect::rollback();
  44. return false;
  45. }
  46. $a_coin = $model->coin($user_id);
  47. $coin_log_model->addLog($user_id, -1, $coin, $a_coin, $msg);
  48. }
  49. }
  50. $res = $this->update(['status' => ['`status`+1']], $where);
  51. if (!$res) {
  52. Connect::rollback();
  53. return false;
  54. }
  55. Connect::commit();
  56. return true;
  57. }
  58. public function getBankerList($video_id, $limit = 5, $order = 'coin desc')
  59. {
  60. $table = 'user u,banker_log l';
  61. $where = [
  62. 'l.user_id' => ['u.id'],
  63. 'l.coin' => ['<=', 'u.coin', 'AND', 1],
  64. 'l.video_id' => $video_id,
  65. 'l.status' => 1,
  66. ];
  67. if (defined('OPEN_DIAMOND_GAME_MODULE') && OPEN_DIAMOND_GAME_MODULE == 1) {
  68. $where['l.coin'] = ['<=', 'u.diamonds', 'AND', 1];
  69. } else {
  70. $where['l.coin'] = ['<=', 'u.coin', 'AND', 1];
  71. }
  72. $field = 'l.id banker_log_id,l.user_id banker_id,u.nick_name banker_name,u.head_image banker_img,l.coin coin';
  73. $list = $this->table($table)->field($field)->limit($limit)->order($order)->select($where);
  74. foreach ($list as $key => $value) {
  75. $list[$key]['banker_img'] = get_abs_img_root($value['head_image']);
  76. }
  77. return $list;
  78. }
  79. }