This repository has been archived on 2024-07-11. You can view files and clone it, but cannot push or open issues or pull requests.
yoshop/source/application/api/model/bargain/TaskHelp.php

108 lines
3.1 KiB
PHP
Raw Normal View History

2020-04-25 22:20:29 +08:00
<?php
namespace app\api\model\bargain;
use app\common\model\bargain\TaskHelp as TaskHelpModel;
/**
* 砍价任务助力记录模型
* Class TaskHelp
* @package app\api\model\bargain
*/
class TaskHelp extends TaskHelpModel
{
/**
* 隐藏的字段
* @var array
*/
protected $hidden = [
'wxapp_id',
'create_time',
];
/**
* 获取助力列表记录
* @param $taskId
* @return false|\PDOStatement|string|\think\Collection
*/
public static function getListByTaskId($taskId)
{
// 获取列表数据
$list = (new static)->with(['user'])
->where('task_id', '=', $taskId)
->order(['create_time' => 'desc'])
->select();
// 隐藏会员昵称
foreach ($list as &$item) {
$item['user']['nickName'] = \substr_cut($item['user']['nickName']);
}
return $list;
}
/**
* 新增记录
* @param $task
* @param $userId
* @param $cutMoney
* @param $isCreater
* @return false|int
*/
public function add($task, $userId, $cutMoney, $isCreater = false)
{
return $this->save([
'task_id' => $task['task_id'],
'active_id' => $task['active_id'],
'user_id' => $userId,
'cut_money' => $cutMoney,
'is_creater' => $isCreater,
'wxapp_id' => static::$wxapp_id,
]);
}
/**
* 根据砍价活动id获取正在砍价的助力信息列表
* @param $activeId
* @return false|\PDOStatement|string|\think\Collection
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function getHelpListByActiveId($activeId)
{
return $this
->with('user') // todo: 废弃
->alias('help')
->field(['help.user_id', 'user.nickName', 'user.avatarUrl'])
->join('user', 'user.user_id = help.user_id')
->join('bargain_task task', 'task.task_id = help.task_id')
->where('help.active_id', '=', $activeId)
// is_creater 只统计发起人
// ->where('help.is_creater', '=', 1)
->where('task.status', '=', 1)
->where('task.is_delete', '=', 0)
->group('help.user_id')
->limit(5)
->select();
}
/**
* 根据砍价活动id获取正在砍价的助力人数
* @param $activeId
* @return int|string
* @throws \think\Exception
*/
public function getHelpCountByActiveId($activeId)
{
return $this->alias('help')
->join('user', 'user.user_id = help.user_id')
->join('bargain_task task', 'task.task_id = help.task_id')
->where('help.active_id', '=', $activeId)
// is_creater 只统计发起人
// ->where('help.is_creater', '=', 1)
->where('task.status', '=', 1)
->where('task.is_delete', '=', 0)
->group('help.user_id')
->count();
}
}