145 lines
4.4 KiB
PHP
145 lines
4.4 KiB
PHP
<?php
|
|
|
|
namespace app\adminapi\model;
|
|
|
|
use think\Model;
|
|
use think\Session;
|
|
use think\Db;
|
|
class Guild extends Model
|
|
{
|
|
// 开启自动写入时间戳字段
|
|
protected $autoWriteTimestamp = 'int';
|
|
// 定义时间戳字段名
|
|
protected $createTime = 'createtime';
|
|
protected $updateTime = 'updatetime';
|
|
|
|
protected $name = 'vs_guild';
|
|
|
|
public function getList($where = [], $page = 1, $limit = 10)
|
|
{
|
|
$list = $this->where($where)->page($page, $limit)->select();
|
|
$list = collection($list)->toArray();
|
|
return $list;
|
|
}
|
|
public function getCount($where = [])
|
|
{
|
|
return $this->where($where)->count();
|
|
}
|
|
public function getOne($where = [])
|
|
{
|
|
$one = $this->where($where)->find();
|
|
return $one;
|
|
}
|
|
public function add($data)
|
|
{
|
|
$res = $this->save($data);
|
|
if (!$res) {
|
|
return false;
|
|
}
|
|
$guild_id = $this->id;
|
|
return $guild_id;
|
|
}
|
|
public function edit($where = [], $data = [])
|
|
{
|
|
$res = $this->where($where)->update($data);
|
|
return $res;
|
|
}
|
|
public function del($where = [])
|
|
{
|
|
$res = $this->where($where)->delete();
|
|
return $res;
|
|
}
|
|
//软删除
|
|
public function setDel($where = []){
|
|
$res = $this->where($where)->setField('delete_time',time());
|
|
if(!$res){
|
|
return false;
|
|
}
|
|
return $res;
|
|
}
|
|
|
|
|
|
//靓号处理
|
|
public function getGuildSpecialId(){
|
|
$code = $this->order('guild_special_id desc')->value('guild_special_id');
|
|
if(empty($code)){
|
|
$code = 10000;
|
|
}
|
|
$code = $code + 1;
|
|
$vip_code = db::name('vip_code')->where(['type' => 3, 'status' => 1,'is_use' => 1])->field('code')->select();
|
|
if (empty($vip_code)) {
|
|
return $code;
|
|
}
|
|
if (in_array($code, (array)$vip_code)) {
|
|
return $code + 2;
|
|
}
|
|
|
|
return $code;
|
|
}
|
|
/*
|
|
* 通过用户ID 获取公会信息
|
|
*
|
|
*/
|
|
public function getGuildByUserId($user_id){
|
|
$guild = db::name('vs_guild_user')
|
|
->alias('g')
|
|
->join('vs_guild gg','g.guild_id = gg.id')
|
|
->field('gg.*')
|
|
->where(['g.user_id' => $user_id,'g.status' => 1,'g.delete_time' => 0])
|
|
->find();
|
|
return $guild;
|
|
}
|
|
|
|
/*
|
|
*
|
|
*工会当日流水
|
|
*/
|
|
public function getTodayMoney($guild_id,$stoday="",$etoday=""){
|
|
//获取所有工会房间ID
|
|
$guild_user_data = db::name('vs_guild_user')->where('guild_id', $guild_id)->field('room_id,createtime,quit_time')->select();
|
|
$transaction = 0;
|
|
foreach ($guild_user_data as $k => $v) {
|
|
if(empty($stoday) && empty($etoday)){
|
|
$stoday_seach = strtotime(date('Y-m-d 00:00:00',time()));
|
|
$etoday_seach = strtotime(date('Y-m-d 23:59:59',time()));
|
|
}else{
|
|
$stoday_seach = strtotime($stoday);
|
|
$etoday_seach = strtotime($etoday);
|
|
}
|
|
if($v['createtime'] && $stoday_seach < $v['createtime']){
|
|
$stoday_seach = $v['createtime'];
|
|
}
|
|
if($v['quit_time'] && ($etoday > $v['quit_time'])){
|
|
$etoday_seach = $v['quit_time'];
|
|
}
|
|
$transaction_one = db::name('vs_give_gift')
|
|
->where('from_id',$v['room_id'])
|
|
->where(['from'=>['in',[2,3,6]],'createtime' => ['between', [$stoday_seach, $etoday_seach]]])
|
|
->sum('total_price');
|
|
$transaction += $transaction_one;
|
|
}
|
|
return $transaction;
|
|
}
|
|
|
|
/*
|
|
* 工会个人流水
|
|
*/
|
|
public function getUserMoney($guild_id,$user_id,$stoday="",$etoday=""){
|
|
if(empty($stoday)){
|
|
$stoday = strtotime(date('Y-m-d 00:00:00'));
|
|
}
|
|
if(empty($etoday)){
|
|
$etoday = strtotime(date('Y-m-d 23:59:59'));
|
|
}
|
|
//获取所有工会房间ID
|
|
$room_ids = db::name('vs_guild_user')->where('guild_id', $guild_id)->field('room_id')->select();
|
|
$room_ids = array_column($room_ids, 'room_id');
|
|
$transaction =0;
|
|
$transaction = db::name('vs_give_gift')
|
|
->whereIn('from_id',$room_ids)
|
|
->where(['from'=>['in',[2,3,6]],'createtime' => ['between', [$stoday, $etoday]]])
|
|
->sum('total_price');
|
|
return $transaction;
|
|
}
|
|
}
|