MemGameMapModel.php 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?php
  2. /**
  3. * MemGameMapModel.php UTF-8
  4. * 玩家游戏映射表
  5. *
  6. * @date : 2019/8/22 15:51
  7. *
  8. * @license 这不是一个自由软件,未经授权不许任何使用和传播。
  9. * @author : dengcongshuai <dcs@huosdk.com>
  10. * @version : HUOSDK_MP_LOTTERY 1.0
  11. */
  12. namespace huo\model\member;
  13. use huo\model\common\CommonModel;
  14. use huolib\constant\CacheConst;
  15. use think\Cache;
  16. class MemGameMapModel extends CommonModel {
  17. protected $name = 'mem_game_map';
  18. // 开启自动写入时间戳字段
  19. protected $autoWriteTimestamp = true;
  20. protected $cache_key_prefix = CacheConst::CACHE_MEM_GAME_MAP_PREFIX;
  21. /**
  22. * 获取单条记录缓存key
  23. *
  24. * @param int $id ID
  25. *
  26. * @return string
  27. */
  28. protected function getSingleCacheKey($mem_id, $app_id) {
  29. return $this->cache_key_prefix.$mem_id.'_'.$app_id;
  30. }
  31. /**
  32. * 获取信息
  33. *
  34. * @param int $id 主键ID
  35. *
  36. * @return array|false
  37. */
  38. public function getInfoByMemIdAppId($mem_id, $app_id) {
  39. /* 缓存操作 */
  40. $_single_cache_key = $this->getSingleCacheKey($mem_id, $app_id);
  41. $_data = Cache::get($_single_cache_key);
  42. if (!empty($_data)) {
  43. return $_data;
  44. }
  45. $_map = [
  46. 'mem_id' => $mem_id,
  47. 'app_id' => $app_id,
  48. ];
  49. $_data = $this->where($_map)->find();
  50. if (is_object($_data)) {
  51. return $_data = $_data->toArray();
  52. }
  53. Cache::set($_single_cache_key, $_data);
  54. return $_data;
  55. }
  56. /**
  57. * 新增数据
  58. *
  59. * @param $data
  60. *
  61. * @return bool|mixed
  62. */
  63. public function addData($data) {
  64. $_data = $data;
  65. if ($_obj = self::create($_data, true)) {
  66. $_data = parent::getInfoById($_obj->id);
  67. $_single_cache_key = $this->getSingleCacheKey($_data['mem_id'], $_data['app_id']);
  68. Cache::set($_single_cache_key, $_data);
  69. return $_obj->id;
  70. } else {
  71. return false;
  72. }
  73. }
  74. public function updateData($data, $id) {
  75. $_map['id'] = $id;
  76. $_data = $data;
  77. $_rs = self::update($_data, $_map);
  78. if (false === $_rs) {
  79. return false;
  80. } else {
  81. $_data = parent::getInfoById($id);
  82. $_single_cache_key = $this->getSingleCacheKey($_data['mem_id'], $_data['app_id']);
  83. Cache::set($_single_cache_key, $_data);
  84. return true;
  85. }
  86. }
  87. }