HongbaoGroup.php 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. <?php
  2. // +---------------------------------------------------------------------+
  3. // | NiuCloud | [ WE CAN DO IT JUST NiuCloud ]  |
  4. // +---------------------------------------------------------------------+
  5. // | Copy right 2019-2029 www.niucloud.com  |
  6. // +---------------------------------------------------------------------+
  7. // | Author | NiuCloud <niucloud@outlook.com>  |
  8. // +---------------------------------------------------------------------+
  9. // | Repository | https://github.com/niucloud/framework.git  |
  10. // +---------------------------------------------------------------------+
  11. namespace addon\hongbao\model;
  12. use app\model\BaseModel;
  13. use app\model\system\Cron;
  14. use think\facade\Db;
  15. /**
  16. * 好友瓜分券参与活动组
  17. * Class hongbao
  18. * @package addon\hongbao\model
  19. */
  20. class HongbaoGroup extends BaseModel
  21. {
  22. private $status = [
  23. 0 => '未开始',
  24. 1 => '进行中',
  25. 2 => '已结束',
  26. -1 => '已关闭'
  27. ];
  28. /**
  29. * 获取好友瓜分券参与活动组状态
  30. * @return array
  31. */
  32. public function getHongbaoGroupStatus()
  33. {
  34. return $this->success($this->status);
  35. }
  36. /**
  37. * 获取分页列表
  38. * @param array $condition
  39. * @param int $page
  40. * @param int $page_size
  41. * @param string $order
  42. * @param string $field
  43. * @param string $alias
  44. * @param array $join
  45. * @return array
  46. */
  47. public function getHongbaoGroupPageList($condition = [], $page = 1, $page_size = PAGE_LIST_ROWS, $order = 'group_id desc', $field = '*', $alias = 'a', $join = [])
  48. {
  49. $list = model('promotion_hongbao_group')->pageList($condition, $field, $order, $page, $page_size, $alias, $join);
  50. if($list['list']){
  51. foreach ($list['list'] as $k=>$v){
  52. $group_member_list = [];
  53. $group_member_arr = [];
  54. if($v['group_member_ids']){
  55. $group_member_arr = explode(',',$v['group_member_ids']);
  56. $group_member_list = model('member')->getList([['member_id','in',$group_member_arr],['site_id','=',$v['site_id']]],'member_id,headimg');
  57. }
  58. $list['list'][$k]['group_member_list'] = $group_member_list ?? [];
  59. $list['list'][$k]['exist_num'] = count($group_member_arr);
  60. }
  61. }
  62. return $this->success($list);
  63. }
  64. /**
  65. * @param array $condition
  66. * @param string $field
  67. * @param string $order
  68. * @param string $alias
  69. * @param array $join
  70. * @return array
  71. * 获取列表
  72. */
  73. public function getHongbaoGroupList($condition = [], $field = '*', $order = '', $alias = 'a', $join = [])
  74. {
  75. $list = model('promotion_hongbao_group')->getList($condition, $field, $order, $alias, $join);
  76. return $this->success($list);
  77. }
  78. /**
  79. * 好友瓜分券参与活动组详情
  80. * @param array $condition
  81. * @param bool $field
  82. * @param string $alias
  83. * @param null $join
  84. * @param null $data
  85. */
  86. public function getHongbaoGroupInfo($condition = [], $field = true, $alias = 'a', $join = null, $data = null)
  87. {
  88. $data = model('promotion_hongbao_group')->getInfo($condition, $field, $alias, $join, $data);
  89. if ($data) {
  90. $data['member_list'] = [];
  91. if (!empty($data['group_member_ids'])) {
  92. $member_arr = explode(',', $data['group_member_ids']);
  93. $data['member_list'] = model('member')->getList([['member_id', 'in', $member_arr]], 'member_id,username,nickname,headimg');
  94. if (!empty($data['balance_data'])) {
  95. $balance_data = explode(',', $data['balance_data']);
  96. foreach ($data['member_list'] as $k => $v) {
  97. $key = array_search($v['member_id'], $member_arr);
  98. $data['member_list'][$k]['money'] = $balance_data[$key];
  99. }
  100. }
  101. }
  102. }
  103. return $this->success($data);
  104. }
  105. /**
  106. * 关闭到了时间的瓜分邀请
  107. * @param $launch_id
  108. */
  109. public function cronClosehongbaoLaunch($launch_id)
  110. {
  111. $launch_info = model('promotion_hongbao_group')->getInfo([['group_id', '=', $launch_id]]);
  112. if (!empty($launch_info)) {
  113. model('promotion_hongbao')->setInc([['hongbao_id','=',$launch_info['hongbao_id']]],'inventory');
  114. model('promotion_hongbao_group')->update(['status' => 2], [['group_id', '=', $launch_id]]);
  115. }
  116. }
  117. }