admin/addon/hongbao/model/HongbaoGroup.php

127 lines
4.5 KiB
PHP
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
// +---------------------------------------------------------------------+
// | NiuCloud | [ WE CAN DO IT JUST NiuCloud ]  |
// +---------------------------------------------------------------------+
// | Copy right 2019-2029 www.niucloud.com  |
// +---------------------------------------------------------------------+
// | Author | NiuCloud <niucloud@outlook.com>  |
// +---------------------------------------------------------------------+
// | Repository | https://github.com/niucloud/framework.git  |
// +---------------------------------------------------------------------+
namespace addon\hongbao\model;
use app\model\BaseModel;
use app\model\system\Cron;
use think\facade\Db;
/**
* 好友瓜分券参与活动组
* Class hongbao
* @package addon\hongbao\model
*/
class HongbaoGroup extends BaseModel
{
private $status = [
0 => '未开始',
1 => '进行中',
2 => '已结束',
-1 => '已关闭'
];
/**
* 获取好友瓜分券参与活动组状态
* @return array
*/
public function getHongbaoGroupStatus()
{
return $this->success($this->status);
}
/**
* 获取分页列表
* @param array $condition
* @param int $page
* @param int $page_size
* @param string $order
* @param string $field
* @param string $alias
* @param array $join
* @return array
*/
public function getHongbaoGroupPageList($condition = [], $page = 1, $page_size = PAGE_LIST_ROWS, $order = 'group_id desc', $field = '*', $alias = 'a', $join = [])
{
$list = model('promotion_hongbao_group')->pageList($condition, $field, $order, $page, $page_size, $alias, $join);
if($list['list']){
foreach ($list['list'] as $k=>$v){
$group_member_list = [];
$group_member_arr = [];
if($v['group_member_ids']){
$group_member_arr = explode(',',$v['group_member_ids']);
$group_member_list = model('member')->getList([['member_id','in',$group_member_arr],['site_id','=',$v['site_id']]],'member_id,headimg');
}
$list['list'][$k]['group_member_list'] = $group_member_list ?? [];
$list['list'][$k]['exist_num'] = count($group_member_arr);
}
}
return $this->success($list);
}
/**
* @param array $condition
* @param string $field
* @param string $order
* @param string $alias
* @param array $join
* @return array
* 获取列表
*/
public function getHongbaoGroupList($condition = [], $field = '*', $order = '', $alias = 'a', $join = [])
{
$list = model('promotion_hongbao_group')->getList($condition, $field, $order, $alias, $join);
return $this->success($list);
}
/**
* 好友瓜分券参与活动组详情
* @param array $condition
* @param bool $field
* @param string $alias
* @param null $join
* @param null $data
*/
public function getHongbaoGroupInfo($condition = [], $field = true, $alias = 'a', $join = null, $data = null)
{
$data = model('promotion_hongbao_group')->getInfo($condition, $field, $alias, $join, $data);
if ($data) {
$data['member_list'] = [];
if (!empty($data['group_member_ids'])) {
$member_arr = explode(',', $data['group_member_ids']);
$data['member_list'] = model('member')->getList([['member_id', 'in', $member_arr]], 'member_id,username,nickname,headimg');
if (!empty($data['balance_data'])) {
$balance_data = explode(',', $data['balance_data']);
foreach ($data['member_list'] as $k => $v) {
$key = array_search($v['member_id'], $member_arr);
$data['member_list'][$k]['money'] = $balance_data[$key];
}
}
}
}
return $this->success($data);
}
/**
* 关闭到了时间的瓜分邀请
* @param $launch_id
*/
public function cronClosehongbaoLaunch($launch_id)
{
$launch_info = model('promotion_hongbao_group')->getInfo([['group_id', '=', $launch_id]]);
if (!empty($launch_info)) {
model('promotion_hongbao')->setInc([['hongbao_id','=',$launch_info['hongbao_id']]],'inventory');
model('promotion_hongbao_group')->update(['status' => 2], [['group_id', '=', $launch_id]]);
}
}
}