MemAgent.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. <?php
  2. /**
  3. * MemAgent.php UTF-8
  4. * 玩家渠道
  5. *
  6. * @date : 2018/8/3 18:30
  7. *
  8. * @license 这不是一个自由软件,未经授权不许任何使用和传播。
  9. * @author : wuyonghong <wyh@huosdk.com>
  10. * @version : Huosdk 8.0
  11. */
  12. namespace huo\controller\member;
  13. use huo\controller\agent\AgentCache;
  14. use huo\model\user\UserModel;
  15. use huolib\constant\AgentConst;
  16. use huolib\constant\MemConst;
  17. class MemAgent {
  18. /**
  19. * 获取玩家自己的渠道ID
  20. *
  21. * @param int $mem_id 玩家ID
  22. *
  23. * @return int|mixed 返回渠道ID
  24. */
  25. public function getMemAgentId($mem_id = 0) {
  26. $_mem_id = $mem_id;
  27. if (empty($_mem_id)) {
  28. return 0;
  29. }
  30. $_map['mem_id'] = $_mem_id;
  31. $_mem_agent_id = (new UserModel())->getIdByMemId($_mem_id);
  32. if (empty($_mem_agent_id)) {
  33. $_mem_agent_id = $this->genAgent($_mem_id);
  34. }
  35. if (empty($_mem_agent_id)) {
  36. return 0;
  37. }
  38. return $_mem_agent_id;
  39. }
  40. /**
  41. * 玩家生成渠道
  42. *
  43. * @param int $mem_id 玩家ID
  44. *
  45. * @return bool|int
  46. */
  47. public function genAgent($mem_id) {
  48. $_mem_id = $mem_id;
  49. if (empty($_mem_id)) {
  50. return false;
  51. }
  52. $_user_map['mem_id'] = $_mem_id;
  53. $_user_model = new UserModel();
  54. $_mem_agent_id = $_user_model->getIdByMemId($_mem_id);
  55. if (!empty($_mem_agent_id)) {
  56. return $_mem_agent_id;
  57. }
  58. $_mem_info = (new MemCache())->getInfoById($mem_id);
  59. $_data['user_login'] = $_mem_id.'_'.uniqid().md5($_mem_id);
  60. $_data['user_pass'] = $_mem_id.'_'.uniqid().md5($_mem_id);
  61. $_data['pay_pwd'] = $_data['user_pass'];
  62. $_data['user_nicename'] = !empty($_mem_info) ? $_mem_info['nickname'] : $_data['user_login'];
  63. $_data['avatar'] = !empty($_mem_info) ? $_mem_info['avatar'] : '';
  64. $_data['user_status'] = !empty($_mem_info) ? $_mem_info['status'] : MemConst::STATUS_NORMAL;
  65. $_data['mem_id'] = $_mem_id;
  66. $_data['parent_id'] = MemCache::ins()->getAgentIdByMemId($mem_id);
  67. $_data['role_id'] = AgentConst::AGENT_ROLE_MP_MEMBER;//小游戏玩家渠道
  68. $_rs = $_user_model->addData($_data);
  69. if (false !== $_rs) {
  70. return $_rs;
  71. }
  72. return false;
  73. }
  74. /**
  75. * 玩家设定渠道
  76. *
  77. * @param int $mem_id 玩家ID
  78. * @param int $parent_agent_id 设定的渠道ID
  79. *
  80. * @return bool|mixed 返回上级玩家ID
  81. */
  82. public function setParent($mem_id = 0, $parent_agent_id = 0) {
  83. if (empty($mem_id)) {
  84. return true;
  85. }
  86. $_mc_class = MemCache::ins();
  87. $_ac_class = AgentCache::ins();
  88. $_parent_agent_data = $_ac_class->getInfoByAgentId($parent_agent_id);
  89. $_parent_mem_id = $_parent_agent_data['mem_id'];
  90. /* 更新玩家表中数据 */
  91. $_mem_data = $_mc_class->getInfoById($mem_id);
  92. $_mem_data['agent_id'] = $parent_agent_id;
  93. $_mem_data['parent_mem_id'] = empty($_parent_mem_id) ? 0 : $_parent_mem_id;
  94. $_mc_class->updateMem($mem_id, $_mem_data);
  95. /* 查询是否玩家渠道 玩家渠道更新渠道信息 */
  96. $_mem_agent_id = (new UserModel())->getIdByMemId($mem_id);
  97. if (empty($_mem_agent_id)) {
  98. return true;
  99. }
  100. $_agent_data = $_ac_class->getInfoByAgentId($_mem_agent_id);
  101. $_agent_data['parent_id'] = $parent_agent_id;
  102. $_ac_class->updateAgent($_mem_agent_id, $_agent_data);
  103. return true;
  104. }
  105. }