coin_logModel.class.php 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. <?php
  2. /**
  3. *
  4. */
  5. class coin_logModel extends NewModel
  6. {
  7. /**
  8. * 游戏币日志
  9. * @param integer $user_id 用户id
  10. * @param integer $game_log_id 游戏
  11. * @param integer $diamonds 日志金额
  12. * @param integer $account_diamonds 用户余额
  13. * @param string $memo 备注消息
  14. */
  15. public function addLog($user_id, $game_log_id, $diamonds, $account_diamonds, $memo)
  16. {
  17. $user_id = intval($user_id);
  18. $game_log_id = intval($game_log_id);
  19. $diamonds = intval($diamonds);
  20. if (!($user_id && $game_log_id && $diamonds)) {
  21. return false;
  22. }
  23. if (!(defined('OPEN_GAME_MODULE') && (OPEN_GAME_MODULE == 1))) {
  24. $data = array(
  25. 'user_id' => $user_id,
  26. 'diamonds' => $diamonds,
  27. 'log_info' => $memo,
  28. 'log_time' => NOW_TIME,
  29. 'log_admin_id' => 0,
  30. 'type' => 7,
  31. );
  32. return self::build('user_log')->insert($data);
  33. }
  34. $data = array(
  35. 'user_id' => $user_id,
  36. 'game_log_id' => $game_log_id,
  37. 'diamonds' => $diamonds,
  38. 'account_diamonds' => $account_diamonds,
  39. 'memo' => $memo,
  40. 'create_time' => NOW_TIME,
  41. );
  42. return $this->insert($data);
  43. }
  44. /**
  45. * 根据游戏投注日志批量添加游戏币并生成日志
  46. * @param integer $game_log_id 游戏日志id
  47. * @param integer $result 游戏投注日志
  48. * @param float $times 添加倍数(投注倍数)
  49. * @param string $msg 日志消息
  50. * @return integer 受影响行数
  51. */
  52. public function multiAddLog($game_log_id, $result, $times, $msg = '投注中奖')
  53. {
  54. $create_time = NOW_TIME;
  55. $table_coin_log = DB_PREFIX . 'coin_log';
  56. $table = DB_PREFIX . 'user_game_log';
  57. $table_user = DB_PREFIX . 'user';
  58. if (defined('OPEN_DIAMOND_GAME_MODULE') && OPEN_DIAMOND_GAME_MODULE == 1) {
  59. $coin_field = 'diamonds';
  60. // 类型 0表示充值 1表示提现 2赠送道具 3 兑换印票 4 分享获得印票 5 登录赠送积分 6 观看付费直播 7 游戏
  61. fanwe_require(APP_ROOT_PATH . 'mapi/lib/redis/GamesRedisService.php');
  62. $redis = new GamesRedisService();
  63. $game_log = $redis->get($game_log_id, 'video_id');
  64. $video_id = intval($game_log['video_id']);
  65. $table_user_log = DB_PREFIX . 'user_log';
  66. self::$sql = "INSERT INTO $table_user_log (
  67. `log_info`,
  68. `log_time`,
  69. `log_admin_id`,
  70. `money`,
  71. `user_id`,
  72. `type`,
  73. `prop_id`,
  74. `score`,
  75. `point`,
  76. `podcast_id`,
  77. `diamonds`,
  78. `ticket`,
  79. `video_id`
  80. )
  81. SELECT
  82. '{$msg}' AS `log_info`,
  83. '$create_time' AS `log_time`,
  84. '0' AS `log_admin_id`,
  85. '0' AS `money`,
  86. `user_id`,
  87. '7' AS `type`,
  88. '0' AS `prop_id`,
  89. '0' AS `score`,
  90. '0' AS `point`,
  91. l.`podcast_id` AS `podcast_id`,
  92. (SUM(l.`money`) * $times) AS `diamonds`,
  93. '0' AS `ticket`,
  94. '{$video_id}' AS `video_id`
  95. FROM
  96. $table AS l,
  97. $table_user AS u
  98. WHERE
  99. l.user_id = u.id
  100. AND l.type = 1
  101. AND `game_log_id` = $game_log_id
  102. AND `bet` = $result
  103. GROUP BY
  104. `user_id`";
  105. Connect::exec(self::$sql);
  106. } else {
  107. $coin_field = 'coin';
  108. }
  109. self::$sql = "INSERT INTO $table_coin_log (
  110. `user_id`,
  111. `game_log_id`,
  112. `diamonds`,
  113. `account_diamonds`,
  114. `memo`,
  115. `create_time`
  116. )
  117. SELECT
  118. `user_id`,
  119. '$game_log_id' AS `game_log_id`,
  120. (SUM(l.`money`) * $times) AS `diamonds`,
  121. u.`{$coin_field}` AS `account_diamonds`,
  122. '{$msg}' AS memo,
  123. '$create_time' AS `create_time`
  124. FROM
  125. $table AS l,
  126. $table_user AS u
  127. WHERE
  128. l.user_id = u.id
  129. AND l.type = 1
  130. AND `game_log_id` = $game_log_id
  131. AND `bet` = $result
  132. GROUP BY
  133. `user_id`";
  134. return Connect::exec(self::$sql);
  135. }
  136. /**
  137. * 返还游戏币
  138. * @param integer $game_log_id 游戏日志id
  139. * @return integer 受影响行数
  140. */
  141. public function returnCoin($game_log_id)
  142. {
  143. $create_time = NOW_TIME;
  144. $table_coin_log = DB_PREFIX . 'coin_log';
  145. $table = DB_PREFIX . 'user_game_log';
  146. $table_user = DB_PREFIX . 'user';
  147. if (defined('OPEN_DIAMOND_GAME_MODULE') && OPEN_DIAMOND_GAME_MODULE == 1) {
  148. $coin_field = 'diamonds';
  149. // 类型 0表示充值 1表示提现 2赠送道具 3 兑换印票 4 分享获得印票 5 登录赠送积分 6 观看付费直播 7 游戏
  150. fanwe_require(APP_ROOT_PATH . 'mapi/lib/redis/GamesRedisService.php');
  151. $redis = new GamesRedisService();
  152. $game_log = $redis->get($game_log_id, 'video_id');
  153. $video_id = intval($game_log['video_id']);
  154. $table_user_log = DB_PREFIX . 'user_log';
  155. self::$sql = "INSERT INTO $table_user_log (
  156. `log_info`,
  157. `log_time`,
  158. `log_admin_id`,
  159. `money`,
  160. `user_id`,
  161. `type`,
  162. `prop_id`,
  163. `score`,
  164. `point`,
  165. `podcast_id`,
  166. `diamonds`,
  167. `ticket`,
  168. `video_id`
  169. )
  170. SELECT
  171. '游戏终止,投注返还' AS `log_info`,
  172. '$create_time' AS `log_time`,
  173. '0' AS `log_admin_id`,
  174. '0' AS `money`,
  175. `user_id`,
  176. '7' AS `type`,
  177. '0' AS `prop_id`,
  178. '0' AS `score`,
  179. '0' AS `point`,
  180. l.`podcast_id` AS `podcast_id`,
  181. SUM(l.`money`) AS `diamonds`,
  182. '0' AS `ticket`,
  183. '{$video_id}' AS `video_id`
  184. FROM
  185. $table AS l,
  186. $table_user AS u
  187. WHERE
  188. l.user_id = u.id
  189. AND l.type = 1
  190. AND `game_log_id` = $game_log_id
  191. AND `bet` = $result
  192. GROUP BY
  193. `user_id`";
  194. Connect::exec(self::$sql);
  195. } else {
  196. $coin_field = 'coin';
  197. }
  198. self::$sql = "INSERT INTO $table_coin_log (
  199. `user_id`,
  200. `game_log_id`,
  201. `diamonds`,
  202. `account_diamonds`,
  203. `memo`,
  204. `create_time`
  205. )
  206. SELECT
  207. `user_id`,
  208. '$game_log_id' AS `game_log_id`,
  209. SUM(l.`money`) AS `diamonds`,
  210. (u.`{$coin_field}`) AS `account_diamonds`,
  211. '游戏终止,投注返还' AS memo,
  212. '$create_time' AS `create_time`
  213. FROM
  214. $table AS l,
  215. $table_user AS u
  216. WHERE
  217. l.user_id = u.id
  218. AND `game_log_id` = $game_log_id
  219. GROUP BY
  220. `user_id`";
  221. return Connect::exec(self::$sql);
  222. }
  223. }