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

384 lines
16 KiB
PHP
Raw Normal View History

2025-08-11 10:22:05 +08:00
<?php
namespace app\admin\model;
use think\Db;
use think\Model;
class Sprite extends Model
{
//列表
public function get_monster_list($order, $sort, $page = 1, $limit = 20)
{
$list = db::name('Sprite')->order($order, $sort)->page($page, $limit)->select();
$total_num = db::name('Sprite')->sum('num');
foreach ($list as $k => &$v) {
$v['rate'] = round($v['num']/$total_num, 6)*100;
$v['rate'] = $v['rate'].'%';
$gift_info = db::name('gift')->where('gid', $v['gid'])->find();
$v['gift_name'] = $gift_info['gift_name'];
$v['base_image'] = localpath_to_netpath($gift_info['base_image']);
$v['gift_price'] = $gift_info['gift_price'];
}
$data = [];
$data['count'] = db::name('Sprite')->count();
$data['list'] = $list;
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
}
//编辑
public function edit_monster($data)
{
if (empty($data)) {
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
}
$monster_info = db::name('Sprite')->find($data['id']);
if (empty($monster_info)) {
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
}
Db::startTrans();
try {
$update_data = [];
// $update_data['multiple'] = $data['multiple'];
$update_data['gid'] = $data['gid'];
$update_data['num'] = $data['num'];
$update_data['update_time'] = time();
$reslut = db::name('Sprite')->where(['id' => $data['id']])->update($update_data);
if (!$reslut) {
Db::rollback();
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
}
Db::commit();
return ['code' => 200, 'msg' => '修改成功', 'data' => null];
} catch (\Exception $e) {
// 回滚事务
dump($e);
Db::rollback();
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
}
}
//获取信息
public function get_monster_info($id)
{
if (empty($id)) {
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
}
$monster_info = db::name('Sprite')->where(['id' => $id])->find();
return ['code' => 200, 'msg' => '获取成功', 'data' => $monster_info];
}
//列表
public function get_monster_multiple_list($order, $sort, $page = 1, $limit = 20)
{
$list = db::name('sprite_multiple')->order($order, $sort)->page($page, $limit)->select();
foreach ($list as $k => &$v) {
}
$data = [];
$data['count'] = db::name('sprite_multiple')->count();
$data['list'] = $list;
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
}
//编辑
public function edit_monster_multiple($data)
{
if (empty($data)) {
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
}
$monster_info = db::name('sprite_multiple')->find($data['id']);
if (empty($monster_info)) {
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
}
Db::startTrans();
try {
$update_data = [];
$update_data['multiple'] = $data['multiple'];
$update_data['update_time'] = time();
$reslut = db::name('sprite_multiple')->where(['id' => $data['id']])->update($update_data);
if (!$reslut) {
Db::rollback();
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
}
Db::commit();
return ['code' => 200, 'msg' => '修改成功', 'data' => null];
} catch (\Exception $e) {
// 回滚事务
dump($e);
Db::rollback();
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
}
}
//获取信息
public function get_monster_multiple_info($id)
{
if (empty($id)) {
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
}
$monster_info = db::name('sprite_multiple')->where(['id' => $id])->find();
return ['code' => 200, 'msg' => '获取成功', 'data' => $monster_info];
}
//列表
public function get_monster_log($order, $sort, $page = 1, $limit = 20)
{
$list = db::name('sprite_log')->order($order, $sort)->page($page, $limit)->select();
foreach ($list as $k => &$v) {
$v['type_name'] = '暂未开奖';
$v['gid'] = 0;
$v['gift_name'] = '';
$v['base_image'] = '';
$v['gift_price'] = 0;
if($v['is_delete'] == 2){
if($v['is_evil_wind'] == 2){
$v['type_name'] = db::name('sprite')->where('id', $v['win_type'])->value('type_name');
$v['wind_type_name'] = '单号';
}else{
if($v['win_type'] == 1){
$where = [];
$where[] = ['id', 'in', [1,2]];
$type_name_arr = db::name('sprite')->where($where)->column('type_name');
$type_name_arr = implode(',', $type_name_arr);
$v['type_name'] = $type_name_arr;
$v['wind_type_name'] = '双号';
}else if($v['win_type'] == 2){
$where = [];
$where[] = ['id', 'in', [1,3]];
$type_name_arr = db::name('sprite')->where($where)->column('type_name');
$type_name_arr = implode(',', $type_name_arr);
$v['type_name'] = $type_name_arr;
$v['wind_type_name'] = '双号';
}else if($v['win_type'] == 3){
$where = [];
$where[] = ['id', 'in', [1,4]];
$type_name_arr = db::name('sprite')->where($where)->column('type_name');
$type_name_arr = implode(',', $type_name_arr);
$v['type_name'] = $type_name_arr;
$v['wind_type_name'] = '双号';
}else if($v['win_type'] == 4){
$where = [];
$where[] = ['id', 'in', [1,5]];
$type_name_arr = db::name('sprite')->where($where)->column('type_name');
$type_name_arr = implode(',', $type_name_arr);
$v['type_name'] = $type_name_arr;
$v['wind_type_name'] = '双号';
}else if($v['win_type'] == 5){
$where = [];
$where[] = ['id', 'in', [2,3]];
$type_name_arr = db::name('sprite')->where($where)->column('type_name');
$type_name_arr = implode(',', $type_name_arr);
$v['type_name'] = $type_name_arr;
$v['wind_type_name'] = '双号';
}else if($v['win_type'] == 6){
$where = [];
$where[] = ['id', 'in', [2,4]];
$type_name_arr = db::name('sprite')->where($where)->column('type_name');
$type_name_arr = implode(',', $type_name_arr);
$v['type_name'] = $type_name_arr;
$v['wind_type_name'] = '双号';
}else if($v['win_type'] == 7){
$where = [];
$where[] = ['id', 'in', [2,5]];
$type_name_arr = db::name('sprite')->where($where)->column('type_name');
$type_name_arr = implode(',', $type_name_arr);
$v['type_name'] = $type_name_arr;
$v['wind_type_name'] = '双号';
}else if($v['win_type'] == 8){
$where = [];
$where[] = ['id', 'in', [3,4]];
$type_name_arr = db::name('sprite')->where($where)->column('type_name');
$type_name_arr = implode(',', $type_name_arr);
$v['type_name'] = $type_name_arr;
$v['wind_type_name'] = '双号';
}else if($v['win_type'] == 9){
$where = [];
$where[] = ['id', 'in', [3,5]];
$type_name_arr = db::name('sprite')->where($where)->column('type_name');
$type_name_arr = implode(',', $type_name_arr);
$v['type_name'] = $type_name_arr;
$v['wind_type_name'] = '双号';
}else{
$where = [];
$where[] = ['id', 'in', [4,5]];
$type_name_arr = db::name('sprite')->where($where)->column('type_name');
$type_name_arr = implode(',', $type_name_arr);
$v['type_name'] = $type_name_arr;
$v['wind_type_name'] = '双号';
}
}
}
}
$data = [];
$data['count'] = db::name('sprite_log')->count();
$data['list'] = $list;
$totalRowData = db::name('sprite_log')->field('count(1) as count,SUM(out_amount) as out_amount,SUM(in_amount) as in_amount')->find();
unset($totalRowData['count']);
$data['totalRow'] = $totalRowData;
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
}
//列表
public function get_user_monster_log($mid, $order, $sort, $page = 1, $limit = 20)
{
$list = db::name('user_sprite_log')->where('mid', $mid)->where('is_close', 1)->order($order, $sort)->page($page, $limit)->select();
foreach ($list as $k => &$v) {
$user_info = db::name('user')->where('uid', $v['uid'])->field('uid,nick_name,base64_nick_name,head_pic')->find();
$v['nick_name'] = mb_convert_encoding(base64_decode($user_info['base64_nick_name']), 'UTF-8', 'UTF-8');
$v['head_pic'] = localpath_to_netpath($user_info['head_pic']);
$v['type_name'] = db::name('sprite')->where('type', $v['type'])->value('type_name');
}
$data = [];
$data['count'] = db::name('user_sprite_log')->where('mid', $mid)->count();
$data['list'] = $list;
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
}
//列表
public function get_user_monster_win_log($mid, $order, $sort, $page = 1, $limit = 20)
{
$list = db::name('user_sprite_win_log')->where('mid', $mid)->order($order, $sort)->page($page, $limit)->select();
foreach ($list as $k => &$v) {
$user_info = db::name('user')->where('uid', $v['uid'])->field('uid,nick_name,base64_nick_name,head_pic')->find();
$v['nick_name'] = mb_convert_encoding(base64_decode($user_info['base64_nick_name']), 'UTF-8', 'UTF-8');
$v['head_pic'] = localpath_to_netpath($user_info['head_pic']);
// $v['type_name'] = db::name('sprite')->where('type', $v['win_type'])->value('type_name');
// $v['multiple'] = db::name('sprite')->where('type', $v['win_type'])->value('multiple');
$gift_info = db::name('gift')->where('gid', $v['win_gid'])->field('gid,gift_name,base_image,gift_price')->find();
$v['gift_name'] = $gift_info['gift_name'];
$v['base_image'] = localpath_to_netpath($gift_info['base_image']);
$v['gift_price'] = $gift_info['gift_price'];
// $v['multiple_price'] = $v['multiple'] * $v['price'];
}
$data = [];
$data['count'] = db::name('user_sprite_win_log')->where('mid', $mid)->count();
$data['list'] = $list;
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
}
//列表
public function get_monster_gift_list($order, $sort, $page = 1, $limit = 20)
{
$list = db::name('sprite_gift')->alias('a')->join('yy_gift b', 'a.gid = b.gid')->field('a.id, a.gid, b.gift_name, b.base_image, b.gift_price, a.update_time')->order($order, $sort)->page($page, $limit)->select();
foreach ($list as $k => &$v) {
$v['base_image'] = localpath_to_netpath($v['base_image']);
}
$data = [];
$data['count'] = db::name('sprite_gift')->alias('a')->join('yy_gift b', 'a.gid = b.gid')->count();
$data['list'] = $list;
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
}
//获取信息
public function get_monster_gift_info($id)
{
if (empty($id)) {
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
}
$monster_info = db::name('sprite_gift')->where(['id' => $id])->find();
return ['code' => 200, 'msg' => '获取成功', 'data' => $monster_info];
}
//编辑
public function edit_monster_gift($data){
if (empty($data)) {
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
}
$monster_gift_info = db::name('sprite_gift')->find($data['id']);
if (empty($monster_gift_info)) {
return ['code' => 201, 'msg' => '参数异常1', 'data' => null];
}
Db::startTrans();
try {
$update_data = [];
// $update_data['multiple'] = $data['multiple'];
// $update_data['gid'] = $data['gid'];
$update_data['gid'] = $data['gid'];
$update_data['update_time'] = time();
$reslut = db::name('sprite_gift')->where(['id' => $data['id']])->update($update_data);
if (!$reslut) {
Db::rollback();
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
}
Db::commit();
return ['code' => 200, 'msg' => '修改成功', 'data' => null];
} catch (\Exception $e) {
// 回滚事务
dump($e);
Db::rollback();
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
}
}
//列表
public function get_exchange_sprite_list($uid, $order, $sort, $page = 1, $limit = 20, $room_number, $start, $end)
{
$map = [];
if(!empty($uid)){
$map[] = ['a.uid', '=', $uid];
}
if(!empty($room_number)){
$rid = db::name('room')->where('room_number', $room_number)->value('rid');
if(!empty($rid)){
$map[] = ['a.rid', '=', $rid];
}
}
if (!empty($start)) {
$map[] = ['a.add_time', '>=', strtotime($start)];
}
if (!empty($end)) {
$map[] = ['a.add_time', '<=', strtotime($end)];
}
$list = db::name('user_exchange_sprite_log')->alias('a')->join('yy_user b', 'a.uid = b.uid')->where($map)->field('a.id, a.uid, a.rid, b.base64_nick_name, b.head_pic, a.airship, a.add_time')->order($order, $sort)->page($page, $limit)->select();
// $gift_info = db::name('gift')->where('gid', 40)->find();
foreach ($list as $k => &$v) {
$base64_room_name = db::name('room')->where('rid', $v['rid'])->value('base64_room_name');
$v['room_name'] = mb_convert_encoding(base64_decode($base64_room_name), 'UTF-8', 'UTF-8');
$v['nick_name'] = mb_convert_encoding(base64_decode($v['base64_nick_name']), 'UTF-8', 'UTF-8');
$v['head_pic'] = localpath_to_netpath($v['head_pic']);
// $v['gift_name'] = $gift_info['gift_name'];
// $v['base_image'] = localpath_to_netpath($gift_info['base_image']);
// $v['gift_price'] = $gift_info['gift_price'];
}
$data = [];
$data['count'] = db::name('user_exchange_sprite_log')->alias('a')->join('yy_user b', 'a.uid = b.uid')->where($map)->count();
$data['list'] = $list;
$totalRowData = db::name('user_exchange_sprite_log')->alias('a')->join('yy_user b', 'a.uid = b.uid')->where($map)->field('SUM(a.airship) as airship')->find();
$data['totalRow'] = $totalRowData;
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
}
}