Files
yusheng-php/application/api/model/Gift.php
2025-11-18 18:21:32 +08:00

107 lines
4.0 KiB
PHP

<?php
namespace app\api\model;
use think\Model;
use think\Db;
use think\Session;
class Gift extends Model
{
// 开启自动写入时间戳字段
protected $autoWriteTimestamp = true;
// 定义时间戳字段名
protected $createTime = 'createtime';
protected $updateTime = 'updatetime';
// 定义字段类型
protected $label = [1=>'热门',2=>'趣味', 3=>'情侣', 4=>'挂件'];
protected $table = 'fa_vs_gift';
//获取礼物类型
public function get_gift_label()
{
$giftTypeData = db::name('vs_gift_label')->where('delete_time',0)->where('tid',1)->order("sort asc,id desc")->select();
foreach ($giftTypeData as $key => $value) {
$giftType[$key]['id'] = $value['id'];
$giftType[$key]['name'] = $value['name'];
}
return ['code' => 1, 'msg' => '获取成功', 'data' => $giftType];
}
//拉去礼物列表
public function get_gift_list($label = 0,$room_id = 0,$user_id = 0)
{
$map['delete_time'] = 0;
$where['is_show'] = 1;
if ($label && $label != 99) {
$map['label'] = $label;
}
if ($label == 99) {
$gift_price = get_system_config_value('room_love_auction_cion');
$where['gift_price'] = ['>',$gift_price];
$where['label'] = ['<>',2];
}
$is_lock = 0;
$is_open_blind_box_turntable = 0;
if($room_id){
$is_open_blind_box_turntable = Db::name('vs_room')->where(['id'=>$room_id])->value('is_open_blind_box_turntable');
}
$list = $this->field('gid as gift_id,gift_name,base_image,gift_price')->where($map)->where($where)->order('sort asc, gift_price asc')->select();
if($label==2){
$list_data = [];
foreach ($list as &$v) {
//获取盲盒列表
$box_list = Db::name('vs_gift_bag')->where(['status'=>1])->where(['activities_id'=>["in",[4,5]]])->select();
foreach ($box_list as $key =>$box) {
$ext = json_decode($box['ext'],true);
if ($ext['gift_id'] == $v['gift_id']) {
$v['gift_bag_name'] = $box['name'];
$v['rule'] = $ext['description'];
$v['rule_url'] = get_system_config_value('web_site')."/api/Page/get_gift_box_rule?box_id=".$box["id"];
$v['activities_id'] = $box['activities_id'];
$v['gift_bag'] = $box['id'];
break;
}
}
}
foreach ($list as $gift) {
if($is_open_blind_box_turntable == 1){
$list_data[] = $gift;
}else{
if(isset($gift['activities_id']) && $gift['activities_id'] == 4){
$list_data[] = $gift;
}
}
}
usort($list_data, function($a, $b) {
return $a['gift_id'] <=> $b['gift_id'];
});
$list = $list_data;
}
if ($label == 11) { // 专属礼物
$Nobility = model('api/Nobility')->getUserNobilityInfo($user_id);
$power_list_ids = array_column($Nobility['power_list'],'id');
if(!in_array(5,$power_list_ids)){
$is_lock = 1;
}
}
//获取配置里面的CP礼物
$cp_gift_ids = explode(',', get_system_config_value('cp_gift_id'));
$cp_gift = [];
foreach ($list as $key =>&$v) {
$v['is_lock'] = $is_lock;
if (in_array($v['gift_id'], $cp_gift_ids)) {
$v['is_cp'] = 1;
$cp_gift[] = $v;
unset($list[$key]);
}else{
$v['is_cp'] = 0;
}
}
//如果有CP礼物 则放在最前面
if ($cp_gift) {
array_unshift($list, ...$cp_gift);
}
return ['code' => 1, 'msg' => '获取成功', 'data' => $list];
}
}