Files
mier-php/application/admin/model/BoxGiveGift.php
2025-08-11 10:22:05 +08:00

120 lines
4.4 KiB
PHP

<?php
namespace app\admin\model;
use think\Model;
use think\Db;
class BoxGiveGift extends Model
{
protected $pk = 'id';
protected $auto = ['update_time'];
protected $insert = [
'add_time',
];
protected $update = ['update_time'];
protected function setAddTimeAttr()
{
return time();
}
protected function setUpdateTimeAttr()
{
return time();
}
public function get_box_give_gift_list($uid, $gid, $gift_name, $give_status, $deduction_status, $start, $give, $deduction, $page = 1, $limit = 20)
{
$map = [];
if (!empty($uid)) {
$map[] = ['a.uid', '=', $uid];
}
if (!empty($gid)) {
$map[] = ['a.gid', '=', $gid];
}
if(!empty($gift_name)){
$map[] = ['b.gift_name', 'like', '%'.$gift_name.'%'];
}
if(!empty($give_status)){
$map[] = ['a.give_status', '=', $give_status];
}
if(!empty($deduction_status)){
$map[] = ['a.deduction_status', '=', $deduction_status];
}
if(!empty($start)){
$map[] = ['a.add_time', '>=', strtotime($start)];
}
if(!empty($give)){
$map[] = ['a.give_time', '>=',strtotime($give)];
}
if(!empty($deduction)){
$map[] = ['a.deduction_time', '>=', strtotime($deduction)];
}
$list = db::name('box_give_gift')->alias('a')->join('yy_gift b', 'a.gid = b.gid')->field('a.*, b.gift_name, b.gift_price, b.base_image')->where($map)->order('id', 'desc')->page($page, $limit)->select();
foreach ($list as $k => &$v) {
$user_info = db::name('user')->field('uid,user_name,nick_name,base64_nick_name')->where('uid', $v['uid'])->find();
$box_type_info = db::name('box_type')->find($v['tid']);
$v['type_name'] = $box_type_info['type_name'];
$v['rid'] = db::name('room')->where('rid',$v['rid'])->value('room_number');
// $gift_info = db::name('gift')->find($v['gid']);
// if (!empty($gift_info)) {
// $v['gift_name'] = $gift_info['gift_name'];
// $v['gift_price'] = $gift_info['gift_price'];
// $v['base_image'] = localpath_to_netpath($gift_info['base_image']);
// } else {
// $v['gift_name'] = '';
// $v['gift_price'] = 0;
// }
$v['base_image'] = localpath_to_netpath($v['base_image']);
$v['user_name'] = $user_info['user_name'];
$v['nick_name'] = mb_convert_encoding(base64_decode($user_info['base64_nick_name']), 'UTF-8', 'UTF-8');
}
$data = [];
$data['list'] = $list;
$totalRowData = db::name('box_give_gift')->alias('a')->join('yy_gift b', 'a.gid = b.gid')->field('count(1) as count,SUM(a.num) as num')->where($map)->find();
$data['count'] = $totalRowData['count'];
unset($totalRowData['count']);
//dump($totalRowData);
$data['totalRow'] = $totalRowData;
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
}
public function add_give_gift($data)
{
$data['num'] = 1;
$validate = validate('admin/BoxGiveGift');
$reslut = $validate->scene('adminAdd')->check($data);
if ($reslut !== true) {
return ['code' => 201, 'msg' => $validate->getError(), 'data' => null];
}
$BoxGiveGift = model('admin/BoxGiveGift');
$reslut = $BoxGiveGift->save($data);
if ($reslut) {
return ['code' => 200, 'msg' => '添加成功', 'data' => ''];
} else {
return ['code' => 201, 'msg' => '添加失败', 'data' => ''];
}
}
public function cancel_give_gift($id)
{
$give_gift = db::name('box_give_gift')->find($id);
if($give_gift['is_admin'] == 2){
return ['code' => 201, 'msg' => '厅主发放不能删除', 'data' => ''];
}
$map = [];
$map[] = ['id', '=', $id];
$map[] = ['give_status', '=', 1];
$data = [];
$data['give_status'] = 3;
$data['canel_time'] = time();
$reslut = db::name('box_give_gift')->where($map)->update($data);
if (!$reslut) {
return ['code' => 201, 'msg' => '更新失败', 'data' => ''];
}
return ['code' => 200, 'msg' => '更新成功', 'data' => ''];
}
}