Files
mier-php/application/admin/model/NewBox.php

154 lines
5.6 KiB
PHP
Raw Normal View History

2025-08-11 10:22:05 +08:00
<?php
namespace app\admin\model;
use think\Model;
use think\Db;
class NewBox extends Model
{
public function get_new_box_list(){
$map = [];
$map[] = ['a.is_delete', '=', 1];
$list = db::name('new_box')
->alias('a')
->join('yy_gift b', 'a.gid = b.gid')
->field('a.*,b.gift_name,b.gift_price,b.base_image')
->where($map)
->order('a.id', 'desc')->select();
foreach($list as &$val) {
$val['base_image'] = localpath_to_netpath($val['base_image']);
}
$data = [];
$data['count'] = db::name('new_box')->alias('a')->where($map)->count();
$data['list'] = $list;
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
}
public function edit_new_box($data)
{
if(empty($data['total_amount'])) {
return ['code' => 201, 'msg' => '请输入金额', 'data' => ''];
}
if(ceil($data['total_amount']) != $data['total_amount']) {
return ['code' => 201, 'msg' => '总金额必须是整数', 'data' => ''];
}
$total_amount = $data['total_amount'];
if(ceil($total_amount/10) != ($total_amount/10)) {
return ['code' => 201, 'msg' => '总金额必须是10的倍数', 'data' => ''];
}
$gid = $data['gid'];
if(empty($gid)) {
return ['code' => 201, 'msg' => '请选择礼物', 'data' => ''];
}
$count = Db::name('new_box')->where(['gid' => $gid, 'is_delete' => 1])->where('id','neq', $data['id'])->find();
if($count) {
return ['code' => 201, 'msg' => '该礼物已配置奖池,请重新选择礼物', 'data' => ''];
}
$gift_price = Db::name('gift')->where('gid', $gid)->value('gift_price');
if($data['total_amount'] < $gift_price) {
// return ['code' => 201, 'msg' => '总金额小于礼物价值', 'data' => ''];
}
$reslut = model('new_box')->isUpdate(true)->save($data);
if (!$reslut) {
return ['code' => 201, 'msg' => '编辑失败', 'data' => ''];
} else {
return ['code' => 200, 'msg' => '编辑成功', 'data' => ''];
}
}
//获取房间信息
public function get_new_box_info($tid)
{
$box_type_info = db::name('new_box')->where(['id' => $tid])->find();
if(empty($box_type_info)) {
return ['code' => 201, 'msg' => '数据不存在', 'data' => null];
}
$gift_info = Db::name('gift')->find($box_type_info['gid']);
if(empty($gift_info)) {
return ['code' => 201, 'msg' => '礼物数据不存在', 'data' => null];
}
$box_type_info['gift_name'] = $gift_info['gift_name'];
$box_type_info['gift_price'] = $gift_info['gift_price'];
return ['code' => 200, 'msg' => '获取成功', 'data' => $box_type_info];
}
//开奖期数
public function get_new_box_log($nb_id, $status, $page, $page_limit)
{
$map = [];
if($nb_id) {
$map[] = ['nb_id', '=', $nb_id];
}
if($status) {
$map[] = ['status', '=', $status];
}
$list = db::name('new_box_log')
->alias('a')
->join('yy_gift b', 'a.gid = b.gid')
->join('yy_user c', 'a.win_uid = c.uid', 'left')
->field('a.*,b.gift_name,b.gift_price,b.base_image,c.base64_nick_name')
->where($map)
->page($page, $page_limit)
->order('a.id', 'desc')->select();
foreach($list as &$val) {
if($val['base64_nick_name']) {
$val['nick_name'] = mb_convert_encoding(base64_decode($val['base64_nick_name']), 'UTF-8', 'UTF-8');
} else {
$val['nick_name'] = '未中奖';
}
}
$data = [];
$data['count'] = db::name('new_box_log')->alias('a')->where($map)->count();
$data['list'] = $list;
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
}
//开奖记录
public function get_user_new_box_log($uid, $nbl_id, $start_time, $end_time, $page, $page_limit)
{
$map = [];
if($nbl_id) {
$map[] = ['a.nbl_id', '=', $nbl_id];
}
if($uid) {
$map[] = ['a.uid', '=', $uid];
}
if($start_time) {
$map[] = ['a.add_time', '>=', strtotime($start_time)];
}
if($end_time) {
$map[] = ['a.add_time', '<', strtotime($end_time)];
}
$list = db::name('user_new_box_log')
->alias('a')
->join('yy_new_box_log b', 'a.nbl_id = b.id')
->join('yy_user c', 'a.uid = c.uid', 'left')
->join('yy_gift d', 'b.gid = d.gid', 'left')
->field('a.*,d.gift_name,d.base_image,c.base64_nick_name,c.head_pic')
->where($map)
->page($page, $page_limit)
->order('a.id', 'desc')->select();
foreach($list as &$val) {
$val['nick_name'] = mb_convert_encoding(base64_decode($val['base64_nick_name']), 'UTF-8', 'UTF-8');
$val['head_pic'] = localpath_to_netpath($val['head_pic']);
$val['base_image'] = localpath_to_netpath($val['base_image']);
}
$data = [];
$data['count'] = db::name('user_new_box_log')->alias('a')->where($map)->count();
$total_pay_amount = db::name('user_new_box_log')->alias('a')->where($map)->sum('pay_amount');
$totalRowData['pay_amount'] = $total_pay_amount;
$data['totalData'] = $totalRowData;
$data['list'] = $list;
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
}
}