初始化代码
This commit is contained in:
7
.gitignore
vendored
Normal file
7
.gitignore
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
/.idea
|
||||
/.vscode
|
||||
#/vendor
|
||||
*.log
|
||||
#thinkphp
|
||||
#.env
|
||||
.DS_Store
|
||||
42
.travis.yml
Normal file
42
.travis.yml
Normal file
@@ -0,0 +1,42 @@
|
||||
sudo: false
|
||||
|
||||
language: php
|
||||
|
||||
branches:
|
||||
only:
|
||||
- stable
|
||||
|
||||
cache:
|
||||
directories:
|
||||
- $HOME/.composer/cache
|
||||
|
||||
before_install:
|
||||
- composer self-update
|
||||
|
||||
install:
|
||||
- composer install --no-dev --no-interaction --ignore-platform-reqs
|
||||
- zip -r --exclude='*.git*' --exclude='*.zip' --exclude='*.travis.yml' ThinkPHP_Core.zip .
|
||||
- composer require --update-no-dev --no-interaction "topthink/think-image:^1.0"
|
||||
- composer require --update-no-dev --no-interaction "topthink/think-migration:^1.0"
|
||||
- composer require --update-no-dev --no-interaction "topthink/think-captcha:^1.0"
|
||||
- composer require --update-no-dev --no-interaction "topthink/think-mongo:^1.0"
|
||||
- composer require --update-no-dev --no-interaction "topthink/think-worker:^1.0"
|
||||
- composer require --update-no-dev --no-interaction "topthink/think-helper:^1.0"
|
||||
- composer require --update-no-dev --no-interaction "topthink/think-queue:^1.0"
|
||||
- composer require --update-no-dev --no-interaction "topthink/think-angular:^1.0"
|
||||
- composer require --dev --update-no-dev --no-interaction "topthink/think-testing:^1.0"
|
||||
- zip -r --exclude='*.git*' --exclude='*.zip' --exclude='*.travis.yml' ThinkPHP_Full.zip .
|
||||
|
||||
script:
|
||||
- php think unit
|
||||
|
||||
deploy:
|
||||
provider: releases
|
||||
api_key:
|
||||
secure: TSF6bnl2JYN72UQOORAJYL+CqIryP2gHVKt6grfveQ7d9rleAEoxlq6PWxbvTI4jZ5nrPpUcBUpWIJHNgVcs+bzLFtyh5THaLqm39uCgBbrW7M8rI26L8sBh/6nsdtGgdeQrO/cLu31QoTzbwuz1WfAVoCdCkOSZeXyT/CclH99qV6RYyQYqaD2wpRjrhA5O4fSsEkiPVuk0GaOogFlrQHx+C+lHnf6pa1KxEoN1A0UxxVfGX6K4y5g4WQDO5zT4bLeubkWOXK0G51XSvACDOZVIyLdjApaOFTwamPcD3S1tfvuxRWWvsCD5ljFvb2kSmx5BIBNwN80MzuBmrGIC27XLGOxyMerwKxB6DskNUO9PflKHDPI61DRq0FTy1fv70SFMSiAtUv9aJRT41NQh9iJJ0vC8dl+xcxrWIjU1GG6+l/ZcRqVx9V1VuGQsLKndGhja7SQ+X1slHl76fRq223sMOql7MFCd0vvvxVQ2V39CcFKao/LB1aPH3VhODDEyxwx6aXoTznvC/QPepgWsHOWQzKj9ftsgDbsNiyFlXL4cu8DWUty6rQy8zT2b4O8b1xjcwSUCsy+auEjBamzQkMJFNlZAIUrukL/NbUhQU37TAbwsFyz7X0E/u/VMle/nBCNAzgkMwAUjiHM6FqrKKBRWFbPrSIixjfjkCnrMEPw=
|
||||
file:
|
||||
- ThinkPHP_Core.zip
|
||||
- ThinkPHP_Full.zip
|
||||
skip_cleanup: true
|
||||
on:
|
||||
tags: true
|
||||
26
404.html
Normal file
26
404.html
Normal file
@@ -0,0 +1,26 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
||||
<title>404</title>
|
||||
<style>
|
||||
body{
|
||||
background-color:#444;
|
||||
font-size:14px;
|
||||
}
|
||||
h3{
|
||||
font-size:60px;
|
||||
color:#eee;
|
||||
text-align:center;
|
||||
padding-top:30px;
|
||||
font-weight:normal;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h3>404,您请求的文件不存在!</h3>
|
||||
</body>
|
||||
</html>
|
||||
946
CHANGELOG.md
Normal file
946
CHANGELOG.md
Normal file
@@ -0,0 +1,946 @@
|
||||
## V5.1.41 LTS(2021-1-11)
|
||||
|
||||
本版本为PHP8兼容更新
|
||||
|
||||
## V5.1.40 LTS(2020-10-09)
|
||||
本版本为常规更新,主要包括:
|
||||
* 改进redis驱动`has`方法
|
||||
* 修正XA事务
|
||||
* 修正`HasManyThrough`关联
|
||||
* 增加mysql json类型字段->>方式获取支持
|
||||
* 改进路由加载 避免加载编辑器临时文件影响
|
||||
* 修复关联模型的属性直接附加到当前模型,当关联模型字段名为name时获取的值为模型的属性name值
|
||||
* 修复多态关联预加载`field`无效
|
||||
* 改进Collection类的`column`方法的PHP兼容性问题
|
||||
* 改进mysql驱动
|
||||
* 改进`parseclosure`方法
|
||||
* SoftDelete删除条件做空判断
|
||||
* 改进验证类`append`方法
|
||||
|
||||
## V5.1.39 LTS(2019-11-18)
|
||||
|
||||
本次更新为常规更新,主要包括:
|
||||
|
||||
* 修正`memcached`驱动
|
||||
* 改进`HasManyThrough`关联查询
|
||||
* 改进`Request`类`isJson`方法
|
||||
* 改进关联查询
|
||||
* 改进`redis`驱动
|
||||
* 增加 Model类`getWhere`方法对复合主键的支持
|
||||
* 改进`newQuery`方法
|
||||
* 改进闭包查询的参数绑定
|
||||
* 修正`Validate`
|
||||
* 修复某些情况下URL会多一个冒号
|
||||
* 调整composer.json
|
||||
* 修复使用`Cache::clear()`时,报错缓存文件不存在问题
|
||||
* 使用File类的unlink方法进行文件删除
|
||||
* 改进`paraseData`方法
|
||||
* 修正image验证方法
|
||||
* 改进Url生成
|
||||
* 改进空操作对数字的支持
|
||||
* 改进一处PHP7.4兼容性问题
|
||||
|
||||
## V5.1.38 LTS(2019-8-8)
|
||||
|
||||
本次更新为常规更新,主要包括:
|
||||
|
||||
* `Request`类增加`isJson`方法
|
||||
* 改进浮点型查询
|
||||
* 修正关联查询关联外键为空的查询错误
|
||||
* 远程一对多支持关联统计和预载入查询
|
||||
* 远程一对多关联支持`has`/`hasWhere`查询
|
||||
* 优化`parseIn`解析
|
||||
* 改进`parseLike`查询
|
||||
* 改进Url生成
|
||||
* 改进模型的`toArray`方法
|
||||
* 修正`notIn`查询
|
||||
* 改进`JSON`字段查询
|
||||
* 改进Controller类`display`/`fetch`方法返回`ViewResponse`对象
|
||||
* 改进`param`方法
|
||||
* 改进`mysql`驱动`getExplain`方法
|
||||
* 改进时间查询
|
||||
* 改进模型关联的`has`/`hasWhere`方法对软删除的支持
|
||||
* 修正社区反馈的BUG
|
||||
|
||||
## V5.1.37 LTS(2019-5-26)
|
||||
|
||||
本次更新为常规更新,主要更新如下:
|
||||
|
||||
* 改进关联数据更新
|
||||
* 修正关联动态获取器
|
||||
* 改进`redis`驱动
|
||||
* 修复验证规则里面出现二维数组时的错误
|
||||
* 改进跨域请求支持
|
||||
* 完善模型`hidden`方法对关联属性的支持
|
||||
* 改进`where`查询方法传入`Query`对象的支持`bind`数据
|
||||
* 改进数据集对象的`load`方法
|
||||
* 修正缓存类`clear`方法对`tag`的支持
|
||||
|
||||
## V5.1.36 LTS(2019-4-28)
|
||||
|
||||
本次更新为常规更新,主要更新如下:
|
||||
|
||||
* 修正`chunk`方法一处异常抛出的错误
|
||||
* 修正模型输出的`visible`
|
||||
* 改进环境变量加载
|
||||
* 改进命令行日志的`level`配置支持
|
||||
* 修复设置有缓存前缀时,无法清空缓存标签的问题
|
||||
* HasMony对象`saveAll`方法兼容`Collection`格式参数格式
|
||||
* 修正`whereOr`查询使用字符串的问题
|
||||
* 改进`dateFormat`设置对写入数据的影响
|
||||
* 修正查询缓存
|
||||
* 记住指定的跳转地址
|
||||
* 改进软删除
|
||||
* 改进聚合查询SQL去除limit 1
|
||||
* 改进缓存驱动
|
||||
|
||||
## V5.1.35 LTS(2019-3-2)
|
||||
|
||||
本次主要为常规更新,修正了一些反馈的问题。
|
||||
|
||||
* 修正验证类自定义验证方法执行两次的问题
|
||||
* 模型增加`isEmpty`方法用于判断是否空模型
|
||||
* 改进获取器对`append`的支持
|
||||
* 修正一对多关联的`withCount`自关联问题
|
||||
* facade类注释调整
|
||||
* 改进关联属性的`visible`和`hidden`判断
|
||||
* 修正路由分组的`MISS`路由
|
||||
* 改进pgsql.sql
|
||||
|
||||
## V5.1.34 LTS(2019-1-30)
|
||||
|
||||
本次更新为常规更新,修正了一些反馈的问题。
|
||||
|
||||
* 改进Request类的`has`方法,支持`patch`
|
||||
* 改进`unique`验证的多条件支持
|
||||
* 修复自定义上传验证,检测文件大小
|
||||
* 改进`in`查询支持表达式
|
||||
* 改进路由的`getBind`方法
|
||||
* 改进验证类的错误信息获取
|
||||
* 改进`response`助手函数默认值
|
||||
* 修正mysql的`regexp`查询
|
||||
* 改进模型类型强制转换写入对`Expression`对象的支持
|
||||
|
||||
## V5.1.33 LTS(2019-1-16)
|
||||
|
||||
* 修复路由中存在多个相同替换的正则BUG
|
||||
* 修正whereLike查询
|
||||
* join方法支持参数绑定
|
||||
* 改进union方法
|
||||
* 修正多对多关联的attach方法
|
||||
* 改进验证类的正则规则自定义
|
||||
* 改进Request类method方法
|
||||
* 改进File日志类型的CLI日志写入
|
||||
* 改进文件日志time_format配置对JSON格式的支持
|
||||
|
||||
## V5.1.32 LTS(2018-12-24)
|
||||
|
||||
本次主要为常规更新,修正了一些反馈的问题。
|
||||
|
||||
|
||||
* 改进多对多关联的`attach`方法
|
||||
* 改进聚合查询的`field`处理
|
||||
* 改进关联的`save`方法
|
||||
* 修正模型`exists`方法返回值
|
||||
* 改进时间字段写入和输出
|
||||
* 改进控制器中间件的调用
|
||||
* 改进路由变量替换的性能
|
||||
* 改进缓存标签的处理机制
|
||||
|
||||
## V5.1.31 LTS (2018-12-9)
|
||||
|
||||
本次版本包含一个安全更新,建议升级。
|
||||
|
||||
* 改进`field`方法
|
||||
* 改进`count`方法返回类型
|
||||
* `download`函数增加在浏览器中显示文件功能
|
||||
* 修正多对多模型的中间表数据写入
|
||||
* 改进`sqlsrv`驱动支持多个Schemas模式查询
|
||||
* 统一助手函数与\think\response\Download函数文件过期时间
|
||||
* 完善关联模型的`save`方法 增加`make`方法仅创建对象不保存
|
||||
* 修改条件表达式对静态变量的支持
|
||||
* 修正控制器名获取
|
||||
* 改进view方法的`field`解析
|
||||
|
||||
## V5.1.30 LTS(2018-11-30)
|
||||
|
||||
该版本为常规更新,修正了一些社区反馈的问题。
|
||||
|
||||
主要更新如下:
|
||||
|
||||
* 改进查询类的`execute`方法
|
||||
* 判断路由规则定义添加对请求类型的判断
|
||||
* 修复`orderRaw`异常
|
||||
* 修正 `optimize:autoload`指令
|
||||
* 改进软删除的`destroy`方法造成重复执行事件的问题
|
||||
* 改进验证类对扩展验证规则 始终验证 不管是否`require`
|
||||
* 修复自定义验证`remove`所有规则的异常
|
||||
* 改进时间字段的自动写入支持微秒数据
|
||||
* 改进`Connection`类的`getrealsql`方法
|
||||
* 修正`https`地址的URL生成
|
||||
* 修复 `array_walk_recursive` 在低于PHP7.1消耗内部指针问题
|
||||
* 改进手动参数绑定使用
|
||||
* 改进聚合查询方法的`field`参数支持`Expression`
|
||||
|
||||
## V5.1.29 LTS(2018-11-11)
|
||||
|
||||
该版本主要改进了参数绑定的解析问题和提升性能,并修正了一些反馈的问题。
|
||||
|
||||
* 改进手动参数绑定
|
||||
* 修正MISS路由的分组参数无效问题
|
||||
* 行为支持对象的方法
|
||||
* 修正全局查询范围
|
||||
* 改进`belongsto`关联的`has`方法
|
||||
* 改进`hasMany`关联
|
||||
* 改进模型观察者多次注册的问题
|
||||
* 改进`query`类的默认查询参数处理
|
||||
* 修正`parseBetween`解析方法
|
||||
* 改进路由地址生成的本地域名支持
|
||||
* 改进参数绑定的实际URL解析性能
|
||||
* 改进`Env`类的`getEnv`和`get`方法
|
||||
* 改进模板缓存的生成优化
|
||||
* 修复验证类的多语言支持
|
||||
* 修复自定义场景验证`remove`规则异常
|
||||
* File类添加是否自动补全扩展名的选项
|
||||
* 改进`strpos`对子串是否存在的判断
|
||||
* 修复`choice`无法用值选择第一个选项问题
|
||||
* 验证器支持多维数组取值验证
|
||||
* 改进解析`extend`和`block`标签的正则
|
||||
|
||||
## V5.1.28 LTS(2018-10-29)
|
||||
|
||||
该版本主要修正了上一个版本存在的一些问题,并改进了关联查询
|
||||
|
||||
* 改进聚合查询方法的字段支持DISTINCT
|
||||
* 改进定义路由后url函数的端口生成
|
||||
* 改进控制器中间件对`swoole`等的支持
|
||||
* 改进Log类`save`方法
|
||||
* 改进验证类的闭包验证参数
|
||||
* 多对多关联支持指定中间表数据的名称
|
||||
* 关联聚合查询支持闭包方式指定聚合字段
|
||||
* 改进Lang类`get`方法
|
||||
* 多对多关联增加判断关联数据是否存在的方法
|
||||
* 改进关联查询使用`fetchsql`的情况
|
||||
* 改进修改器的是否已经执行判断
|
||||
* 增加`afterWith`和`beforeWith`验证规则 用于比较日期字段
|
||||
|
||||
## V5.1.27 LTS(2018-10-22)
|
||||
|
||||
该版本主要修正了路由绑定的参数,改进了修改器的执行多次问题,并正式宣布为LTS版本!
|
||||
|
||||
|
||||
* 修正路由绑定的参数丢失问题
|
||||
* 修正路由别名的参数获取
|
||||
* 改进修改器会执行多次的问题
|
||||
|
||||
## V5.1.26(2018-10-12)
|
||||
|
||||
该版本主要修正了上一个版本的一些问题,并改进了全局查询范围的支持,同时包含了一个安全更新。
|
||||
|
||||
|
||||
* 修正单一模块下注解路由无效的问题
|
||||
* 改进数据库的聚合查询的字段处理
|
||||
* 模型类增加`globalScope`属性定义 用于指定全局的查询范围
|
||||
* 模型的`useGlobalScope`方法支持传入数组 用于指定当前查询需要使用的全局查询范围
|
||||
* 改进数据集的`order`方法对数字类型的支持
|
||||
* 修正上一个版本`order`方法解析的一处BUG
|
||||
* 排序字段不合法或者错误的时候抛出异常
|
||||
* 改进`Request`类的`file`方法对上传文件的错误判断
|
||||
|
||||
## V5.1.25(2018-9-21)
|
||||
|
||||
该版本主要改进了查询参数绑定的性能和对浮点型的支持,以及一些细节的完善。
|
||||
|
||||
* 修正一处命令行问题
|
||||
* 改进`Socketlog`日志驱动,支持自定义默认展开日志类别
|
||||
* 修正`MorphMany`一处bug
|
||||
* 跳转到上次记住的url,并支持默认值
|
||||
* 改进模型的异常提示
|
||||
* 改进参数绑定对浮点型的支持
|
||||
* 改进`order`方法解析
|
||||
* 改进`json`字段数据的自动编码
|
||||
* 改进日志`log_write`可能造成的日志写入死循环
|
||||
* Log类增加`log_level`行为标签位置,用于对某个类型的日志进行处理
|
||||
* Route类增加`clear`方法清空路由规则
|
||||
* 分布式数据库配置支持使用数组
|
||||
* 单日志文件也支持`max_files`参数
|
||||
* 改进查询参数绑定的性能
|
||||
* 改进别名路由的URL后缀参数检测
|
||||
* 控制器前置方法和控制器中间件的`only`和`except`定义不区分大小写
|
||||
|
||||
## V5.1.24(2018-9-5)
|
||||
|
||||
该版本主要增加了命令行的表格输出功能,并增加了查看路由定义的指令,以及修正了社区的一些反馈问题。
|
||||
|
||||
* 修正`Request`类的`file`方法
|
||||
* 修正路由的`cache`方法
|
||||
* 修正路由缓存的一处问题
|
||||
* 改进上传文件获取的异常处理
|
||||
* 改进`fetchCollection`方法支持传入数据集类名
|
||||
* 修正多级控制器的注解路由生成
|
||||
* 改进`Middleware`类`clear`方法
|
||||
* 增加`route:list`指令用于[查看定义的路由](752690) 并支持排序
|
||||
* 命令行增加`Table`输出类
|
||||
* `Command`类增加`table`方法用于输出表格
|
||||
* 改进搜索器查询方法支持别名定义
|
||||
* 命令行配置增加`auto_path`参数用于定义自动载入的命令类路径
|
||||
* 增加`make:command`指令用于[快速生成指令](354146)
|
||||
* 改进`make:controller`指令对操作方法后缀的支持
|
||||
* 改进命令行的定义文件支持索引数组 用于指令对象的惰性加载
|
||||
* 改进`value`和`column`方法对后续查询结果的影响
|
||||
* 改进`RuleName`类的`setRule`方法
|
||||
|
||||
## V5.1.23(2018-8-23)
|
||||
|
||||
该版本主要改进了数据集对象的处理,增加了`findOrEmpty`方法,并且修正了一些社区反馈的BUG。
|
||||
|
||||
* 数据集类增加`diff`/`intersect`方法用于获取差集和交集(默认根据主键值比较)
|
||||
* 数据集类增加`order`方法支持指定字段排序
|
||||
* 数据集类增加`map`方法使用回调函数处理数据并返回新的数据集对象
|
||||
* Db增加`allowEmpty`方法允许`find`方法在没有数据的时候返回空数组或者空模型对象而不是null
|
||||
* Db增加`findOrEmpty`方法
|
||||
* Db增加`fetchCollection`方法用于指定查询返回数据集对象
|
||||
* 改进`order`方法的数组方式解析,增强安全性
|
||||
* 改进`withSearch`方法,支持第三个参数传入字段前缀标识,用于多表查询字段搜索
|
||||
* 修正`optimize:route`指令开启类库后缀后的注解路由生成
|
||||
* 修正redis缓存及session驱动
|
||||
* 支持指定`Yaconf`的独立配置文件
|
||||
* 增加`yaconf`助手函数用于配置文件
|
||||
|
||||
|
||||
## V5.1.22(2018-8-9)
|
||||
|
||||
该版本主要增加了模型搜索器和`withJoin`方法,完善了模型输出和对`Yaconf`的支持,修正了一些社区反馈的BUG。
|
||||
|
||||
* 改进一对一关联的`table`识别问题
|
||||
* 改进内置`Facade`类
|
||||
* 增加`withJoin`方法支持`join`方式的[一对一关联](一对一关联.md)查询
|
||||
* 改进`join`预载入查询的空数据问题
|
||||
* 改进`Config`类的`load`方法支持快速加载配置文件
|
||||
* 改进`execute`方法和事务的断线重连
|
||||
* 改进`memcache`驱动的`has`方法
|
||||
* 模型类支持定义[搜索器](搜索器.md)方法
|
||||
* 完善`Config`类对`Yaconf`的支持
|
||||
* 改进模型的`hidden/visible/append/withAttr`方法,支持在[查询前后调用](数组访问.md),以及支持数据集对象
|
||||
* 数据集对象增加`where`方法根据字段或者关联数据[过滤数据](模型数据集.md)
|
||||
* 改进AJAX请求的`204`判断
|
||||
|
||||
|
||||
## V5.1.21(2018-8-2)
|
||||
|
||||
该版本主要增加了下载响应对象和数组查询对象的支持,并修正了一些社区反馈的问题。
|
||||
|
||||
* 改进核心对象的无用信息调试输出
|
||||
* 改进模型的`isRelationAttr`方法判断
|
||||
* 模型类的`get`和`all`方法并入Db类
|
||||
* 增加[下载响应对象](文件下载.md)和`download`助手函数
|
||||
* 修正别名路由配置定义读取
|
||||
* 改进`resultToModel`方法
|
||||
* 修正开启类库后缀后的注解路由生成
|
||||
* `Response`类增加`noCache`快捷方法
|
||||
* 改进路由对象在`Swoole`/`Workerman`下面参数多次合并问题
|
||||
* 修正路由`ajax`/`pjax`参数后路由变量无法正确获取的问题
|
||||
* 增加清除中间件的方法
|
||||
* 改进依赖注入的参数规范自动识别(便于对接前端小写+下划线规范)
|
||||
* 改进`hasWhere`的数组条件的字段判断
|
||||
* 增加[数组查询对象](高级查询.md)`Where`支持(喜欢数组查询的福音)
|
||||
* 改进多对多关联的闭包支持
|
||||
|
||||
## V5.1.20(2018-7-25)
|
||||
|
||||
该版本主要增加了Db和模型的动态获取器的支持,并修正了一些已知问题。
|
||||
|
||||
* Db类添加[获取器支持](703981)
|
||||
* 支持模型及关联模型字段[动态定义获取器](354046)
|
||||
* 动态获取器支持`JSON`字段
|
||||
* 改进路由的`before`行为执行(匹配后执行)
|
||||
* `Config`类支持`Yaconf`
|
||||
* 改进Url生成的端口问题
|
||||
* Request类增加`setUrl`和`setBaseUrl`方法
|
||||
* 改进页面trace的信息显示
|
||||
* 修正`MorphOne`关联
|
||||
* 命令行添加[查看版本指令](703994)
|
||||
|
||||
## V5.1.19 (2018-7-13)
|
||||
|
||||
该版本是一个小幅改进版本,针对`Swoole`和`Workerman`的`Cookie`支持做了一些改进,并修正了一些已知的问题。
|
||||
|
||||
|
||||
* 改进query类`delete`方法对软删除条件判断
|
||||
* 修正分表查询的软删除问题
|
||||
* 模型查询的时候同时传入`table`和`name`属性
|
||||
* 容器类增加`IteratorAggregate`和`Countable`接口支持
|
||||
* 路由分组支持对下面的资源路由统一设置`only/except/vars`参数
|
||||
* 改进Cookie类更好支持扩展
|
||||
* 改进Request类`post`方法
|
||||
* 改进模型自关联的自动识别
|
||||
* 改进Request类对`php://input`数据的处理
|
||||
|
||||
|
||||
## V5.1.18 (2018-6-30)
|
||||
|
||||
该版本主要完善了对`Swoole`和`Workerman`的`HttpServer`运行支持,改进`Request`类,并修正了一些已知的问题。
|
||||
|
||||
* 改进关联`append`方法的处理
|
||||
* 路由初始化和检测方法分离
|
||||
* 修正`destroy`方法强制删除
|
||||
* `app_init`钩子位置移入`run`方法
|
||||
* `think-swoole`扩展更新到2.0版本
|
||||
* `think-worker`扩展更新到2.0版本
|
||||
* 改进Url生成的域名自动识别
|
||||
* `Request`类增加`setPathinfo`方法和`setHost`方法
|
||||
* `Request`类增加`withGet`/`withPost`/`withHeader`/`withServer`/`withCookie`/`withEnv`方法进行赋值操作
|
||||
* Route类改进`host`属性的获取
|
||||
* 解决注解路由配置不生效的问题
|
||||
* 取消Test日志驱动,改为使用`close`设置关闭全局日志写入
|
||||
* 修正路由的`response`参数
|
||||
* 修正204响应输出的判断
|
||||
|
||||
## V5.1.17 (2018-6-18)
|
||||
|
||||
该版本主要增加了控制器中间件的支持,改进了路由功能,并且修正了社区反馈的一些问题。
|
||||
|
||||
* 修正软删除的`delete`方法
|
||||
* 修正Query类`Count`方法
|
||||
* 改进多对多`detach`方法
|
||||
* 改进Request类`Session`方法
|
||||
* 增加控制器中间件支持
|
||||
* 模型类增加`jsonAssoc`属性用于定义json数据是否返回数组
|
||||
* 修正Request类`method`方法的请求伪装
|
||||
* 改进静态路由的匹配
|
||||
* 分组首页路由自动完整匹配
|
||||
* 改进sqlsrv的`column`方法
|
||||
* 日志类的`apart_level`配置支持true自动生成对应类型的日志文件
|
||||
* 改进`204`输出判断
|
||||
* 修正cli下页面输出的BUG
|
||||
* 验证类使用更高效的`ctype`验证机制
|
||||
* 改进Request类`cookie`方法
|
||||
* 修正软删除的`withTrashed`方法
|
||||
* 改进多态一对多的预载入查询
|
||||
* 改进Query类`column`方法的缓存读取
|
||||
* Query类增加`whereBetweenTimeField`方法
|
||||
* 改进分组下多个相同路由规则的合并匹配问题
|
||||
* 路由类增加`getRule`/`getRuleList`方法获取定义的路由
|
||||
|
||||
## V5.1.16 (2018-6-7)
|
||||
|
||||
该版本主要修正了社区反馈的一些问题,并对Request类做了进一步规范和优化。
|
||||
|
||||
* 改进Session类的`boot`方法
|
||||
* App类的初始化方法可以单独执行
|
||||
* 改进Request类的`param`方法
|
||||
* 改进资源路由的变量替换
|
||||
* Request类增加`__isset`方法
|
||||
* 改进`useGlobalScope`方法对软删除的影响
|
||||
* 修正命令行调用
|
||||
* 改进Cookie类`init`方法
|
||||
* 改进多对多关联删除的返回值
|
||||
* 一对多关联写入支持`replace`
|
||||
* 路由增加`filter`检测方法,用于通过请求参数检测路由是否匹配
|
||||
* 取消Request类`session/env/server`方法的`filter`参数
|
||||
* 改进关联的指定属性输出
|
||||
* 模型删除操作删除后不清空对象数据仅作标记
|
||||
* 调整模型的`save`方法返回值为布尔值
|
||||
* 修正Request类`isAjax`方法
|
||||
* 修正中间件的模块配置读取
|
||||
* 取消Request类的请求变量的设置功能
|
||||
* 取消请求变量获取的默认修饰符
|
||||
* Request类增加`setAction/setModule/setController`方法
|
||||
* 关联模型的`delete`方法调用Query类
|
||||
* 改进URL生成的域名识别
|
||||
* 改进URL检测对已定义路由的域名判断
|
||||
* 模型类增加`isExists`和`isForce`方法
|
||||
* 软删除的`destroy`和`restore`方法返回值调整为布尔值
|
||||
|
||||
## V5.1.15 (2018-6-1)
|
||||
|
||||
该版本主要改进了路由缓存的性能和缓存方式设置,增加了JSON格式文件日志的支持,并修正了社区反馈的一些问题。
|
||||
|
||||
* 容器类增加`exists`方法 仅判断是否存在对象实例
|
||||
* 取消配置类的`autoload`方法
|
||||
* 改进路由缓存大小提高性能
|
||||
* 改进Dispatch类`init`方法
|
||||
* 增加`make:validate`指令生成验证器类
|
||||
* Config类`get`方法支持默认值参数
|
||||
* 修正字段缓存指令
|
||||
* 改进App类对`null`数据的返回
|
||||
* 改进模型类的`__isset`方法判断
|
||||
* 修正`Query`类的`withAggregate`方法
|
||||
* 改进`RuleItem`类的`setRuleName`方法
|
||||
* 修正依赖注入和参数的冲突问题
|
||||
* 修正Db类对第三方驱动的支持
|
||||
* 修正模型类查询对象问题
|
||||
* 修正File缓存驱动的`has`方法
|
||||
* 修正资源路由嵌套
|
||||
* 改进Request类对`$_SERVER`变量的读取
|
||||
* 改进请求缓存处理
|
||||
* 路由缓存支持指定单独的缓存方式和参数
|
||||
* 修正资源路由的中间件多次执行问题
|
||||
* 修正`optimize:config`指令
|
||||
* 文件日志支持`JSON`格式日志保存
|
||||
* 修正Db类`connect`方法
|
||||
* 改进Log类`write`方法不会自动写入之前日志
|
||||
* 模型的关联操作默认启用事务
|
||||
* 改进软删除的事件响应
|
||||
|
||||
## V5.1.14 (2018-5-18)
|
||||
|
||||
该版本主要对底层容器进行了一些优化改进,并增加了路由缓存功能,可以进一步提升路由性能。
|
||||
|
||||
* 依赖注入的对象参数传入改进
|
||||
* 改进核心类的容器实例化
|
||||
* 改进日期字段的读取
|
||||
* 改进验证类的`getScene`方法
|
||||
* 模型的`create`方法和`save`方法支持`replace`操作
|
||||
* 改进`Db`类的调用机制
|
||||
* App类调整为容器类
|
||||
* 改进容器默认绑定
|
||||
* `Loader`类增加工厂类的实例化方法
|
||||
* 增加路由变量默认规则配置参数
|
||||
* 增加路由缓存设计
|
||||
* 错误处理机制改进
|
||||
* 增加清空路由缓存指令
|
||||
|
||||
|
||||
## V5.1.13 (2018-5-11)
|
||||
|
||||
该版本主要增加了MySQL的XA事务支持,模型事件支持观察者,以及对Facade类的改进。
|
||||
|
||||
* 改进自动缓存
|
||||
* 改进Url生成
|
||||
* 修正数据缓存
|
||||
* 修正`value`方法的缓存
|
||||
* `join`方法和`view`方法的条件支持使用`Expression`对象
|
||||
* 改进驱动的`parseKey`方法
|
||||
* 改进Request类`host`方法和`domain`方法对端口的处理
|
||||
* 模型增加`withEvent`方法用于控制当前操作是否需要执行模型事件
|
||||
* 模型`setInc/setDec`方法支持更新事件
|
||||
* 模型添加`before_restore/after_restore`事件
|
||||
* 增加模型事件观察者
|
||||
* 路由增加`mobile`方法设置是否允许手机访问
|
||||
* 数据库XA事务支持
|
||||
* 改进索引数组查询对`IN`查询的支持
|
||||
* 修正`invokeMethod`方法
|
||||
* 修正空数据写入返回值的BUG
|
||||
* redis驱动支持`predis`
|
||||
* 改进`parseData`方法
|
||||
* 改进模块加载
|
||||
* App类初始化方法调整
|
||||
* 改进数组查询对表达式`Expression`对象支持
|
||||
* 改进闭包的依赖注入调用
|
||||
* 改进多对多关联的中间表模型更新
|
||||
* 增加容器中对象的自定义实例化
|
||||
|
||||
## V5.1.12 (2018-4-25)
|
||||
|
||||
该版本主要改进了主从查询的及时性,并支持动态设置请求数据。
|
||||
|
||||
* 支持动态设置请求数据
|
||||
* 改进`comment`方法解析
|
||||
* 修正App类`__unset`方法
|
||||
* 改进url生成的域名绑定
|
||||
* 改进主从查询的及时性
|
||||
* 修正`value`的数据缓存功能
|
||||
* 改进分页类的集合对象方法调用
|
||||
* 改进Db类的代码提示
|
||||
* SQL日志增加主从标记
|
||||
|
||||
## V5.1.11 (2018-4-19)
|
||||
|
||||
该版本为安全和修正版本,改进了JSON查询的参数绑定问题和容器类对象实例获取,并包含一处可能的安全隐患,建议更新。
|
||||
|
||||
* 支持指定JSON数据查询的字段类型
|
||||
* 修正`selectInsert`方法
|
||||
* `whereColumn`方法支持数组方式
|
||||
* 改进容器类`make`方法
|
||||
* 容器类`delete`方法支持数组
|
||||
* 改进`composer`自动加载
|
||||
* 改进模板引擎
|
||||
* 修正`like`查询的一处安全隐患
|
||||
|
||||
## V5.1.10 (2018-4-16)
|
||||
|
||||
该版本为修正版本,修正上一个版本的一些BUG,并增强了`think clear`指令。
|
||||
|
||||
* 改进`orderField`方法
|
||||
* 改进`exists`查询
|
||||
* 修改cli模式入口文件位置计算
|
||||
* 修正`null`查询
|
||||
* 改进`parseTime`方法
|
||||
* 修正关联预载入查询
|
||||
* 改进`mysql`驱动
|
||||
* 改进`think clear`指令 支持 `-c -l -r `选项
|
||||
* 改进路由规则对`/`结尾的支持
|
||||
|
||||
## V5.1.9 (2018-4-12)
|
||||
|
||||
该版本主要是一些改进和修正,并包含一个安全更新,是一个推荐更新版本。
|
||||
|
||||
* 默认模板渲染规则支持配置保持操作方法名
|
||||
* 改进`Request`类的`ip`方法
|
||||
* 支持模型软删除字段的默认值定义
|
||||
* 改进路由变量规则对中文的支持
|
||||
* 使用闭包查询的时候使用`cache(true)` 抛出异常提示
|
||||
* 改进`Loader`类`loadComposerAutoloadFiles`方法
|
||||
* 改进查询方法安全性
|
||||
* 修正路由地址中控制器名驼峰问题
|
||||
* 调整上一个版本的`module_init`和`app_begin`的钩子顺序问题
|
||||
* 改进CLI命令行执行的问题
|
||||
* 修正社区反馈的其它问题
|
||||
|
||||
## V5.1.8 (2018-4-5)
|
||||
|
||||
该版本主要改进了中间件的域名和模块支持,并同时修正了几个已知问题。
|
||||
|
||||
* 增加`template.auto_rule` 参数设置默认模板渲染的操作名自动转换规则
|
||||
* 默认模板渲染规则改由视图驱动实现
|
||||
* 修正路由标识定义
|
||||
* 修正控制器路由方法
|
||||
* 改进Request类`ip`方法支持自定义代理IP参数
|
||||
* 路由注册中间件支持数组方式别名
|
||||
* 改进命令行执行下的`composer`自动加载
|
||||
* 添加域名中间件注册支持
|
||||
* 全局中间件支持模块定义文件
|
||||
* Log日志配置支持`close`参数可以全局关闭日志写入
|
||||
* 中间件方法中捕获`HttpResponseException`异常
|
||||
* 改进中间件的闭包参数传入
|
||||
* 改进分组路由的延迟解析
|
||||
* 改进URL生成对域名绑定的支持
|
||||
* 改进文件缓存和文件日志驱动的并发支持
|
||||
|
||||
## V5.1.7 (2018-3-28)
|
||||
|
||||
该版本主要修正了路由的一些问题,并改进了查询的安全性。
|
||||
|
||||
* 支持`middleware`配置文件预先定义中间件别名方便路由调用
|
||||
* 修正资源路由
|
||||
* 改进`field`方法 自动识别`fieldRaw`
|
||||
* 增加`Expression`类
|
||||
* Query类增加`raw`方法
|
||||
* Query类的`field`/ `order` 和` where`方法都支持使用`raw`表达式查询
|
||||
* 改进`inc/dec`查询 支持批量更新
|
||||
* 改进路由分组
|
||||
* 改进Response类`create`方法
|
||||
* 改进composer自动加载
|
||||
* 修正域名路由的`append`方法
|
||||
* 修正操作方法的初始化方法获取不到问题
|
||||
|
||||
## V5.1.6 (2018-3-26)
|
||||
|
||||
该版本主要改进了路由规则的匹配算法,大幅提升了路由性能。并正式引入了中间件的支持,可以在路由中定义或者全局定义。另外包含了一个安全更新,是一个建议更新版本。
|
||||
|
||||
* 改进URL生成对路由`ext`方法的支持
|
||||
* 改进查询缓存对不同数据库相同表名的支持
|
||||
* 改进composer自动加载的性能
|
||||
* 改进空路由变量对默认参数的影响
|
||||
* mysql的`json`字段查询支持多级
|
||||
* Query类增加`option`方法
|
||||
* 优化路由匹配
|
||||
* 修复验证规则数字键名丢失问题
|
||||
* 改进路由Url生成
|
||||
* 改进一对一关联预载入查询
|
||||
* Request类增加`rootDomain`方法
|
||||
* 支持API资源控制器生成 `make:controller --api`
|
||||
* 优化Template类的标签解析
|
||||
* 容器类增加删除和清除对象实例的方法
|
||||
* 修正MorphMany关联的`eagerlyMorphToMany`方法一处错误
|
||||
* Container类的异常捕获改进
|
||||
* Domain对象支持`bind`方法
|
||||
* 修正分页参数
|
||||
* 默认模板的输出规则不受URL影响
|
||||
* 注解路由支持多级控制器
|
||||
* Query类增加`getNumRows`方法获取前次操作影响的记录数
|
||||
* 改进查询条件的性能
|
||||
* 改进模型类`readTransform`方法对序列化类型的处理
|
||||
* Log类增加`close`方法可以临时关闭当前请求的日志写入
|
||||
* 文件日志方式增加自动清理功能(设置`max_files`参数)
|
||||
* 修正Query类的`getPk`方法
|
||||
* 修正模板缓存的布局开关问题
|
||||
* 修正Query类`select`方法的缓存
|
||||
* 改进input助手函数
|
||||
* 改进断线重连的信息判断
|
||||
* 改进正则验证方法
|
||||
* 调整语言包的加载顺序 放到`app_init`之前
|
||||
* controller类`fetch`方法改为`final`
|
||||
* 路由地址中的变量支持使用`<var>`方式
|
||||
* 改进XMLResponse 支持传入编码过的xml内容
|
||||
* 修正Query类`view`方法的数组表名支持
|
||||
* 改进路由的模型闭包绑定
|
||||
* 改进分组变量规则的继承
|
||||
* 改进`cli-server`模式下的`composer`自动加载
|
||||
* 路由变量规则异常捕获
|
||||
* 引入中间件支持
|
||||
* 路由定义增加`middleware`方法
|
||||
* 增加生成中间件指令`make:middleware`
|
||||
* 增加全局中间件定义支持
|
||||
* 改进`optimize:config`指令对全局中间件的支持
|
||||
* 改进config类`has`方法
|
||||
* 改进时间查询的参数绑定
|
||||
* 改进`inc/dec/exp`查询的安全性
|
||||
|
||||
|
||||
## V5.1.5 (2018-1-31)
|
||||
|
||||
该版本主要增强了数据库的JSON查询,并支持JSON字段的聚合查询,改进了一些性能问题,修正了路由的一些BUG,主要更新如下:
|
||||
|
||||
* 改进数据集查询对`JSON`数据的支持
|
||||
* 改进聚合查询对`JSON`字段的支持
|
||||
* 模型类增加`getOrFail`方法
|
||||
* 改进数据库驱动的`parseKey`方法
|
||||
* 改进Query类`join`方法的自关联查询
|
||||
* 改进数据查询不存在不生成查询缓存
|
||||
* 增加`run`命令行指令启动内置服务器
|
||||
* `Request`类`pathinfo`方法改进对`cli-server`支持
|
||||
* `Session`类增加`use_lock`配置参数设置是否启用锁机制
|
||||
* 优化`File`缓存自动生成空目录的问题
|
||||
* 域名及分组路由支持`append`方法传递隐式参数
|
||||
* 改进日志的并发写入问题
|
||||
* 改进`Query`类的`where`方法支持传入`Query`对象
|
||||
* 支持设置单个日志文件的文件名
|
||||
* 修正路由规则的域名条件约束
|
||||
* `Request`类增加`subDomain`方法用于获取当前子域名
|
||||
* `Response`类增加`allowCache`方法控制是否允许请求缓存
|
||||
* `Request`类增加`sendData`方法便于扩展
|
||||
* 改进`Env`类不依赖`putenv`方法
|
||||
* 改进控制台`trace`显示错误
|
||||
* 改进`MorphTo`关联
|
||||
* 改进完整路由匹配后带斜线访问出错的情况
|
||||
* 改进路由的多级分组问题
|
||||
* 路由url地址生成支持多级分组
|
||||
* 改进路由Url生成的`url_convert`参数的影响
|
||||
* 改进`miss`和`auto`路由内部解析
|
||||
* 取消预载入关联查询缓存功能
|
||||
|
||||
## V5.1.4 (2018-1-19)
|
||||
|
||||
该版本主要增强了数据库和模型操作,主要更新如下:
|
||||
|
||||
* 支持设置 `deleteTime`属性为`false` 关闭软删除
|
||||
* 模型增加`getError`方法
|
||||
* 改进Query类的`getTableFields`/`getFieldsType`方法 支持表名自动获取
|
||||
* 模型类`toCollection`方法增加参数指定数据集类
|
||||
* 改进`union`查询
|
||||
* 关联预载入`with`方法增加缓存参数
|
||||
* 改进模型类的`get`和`all`方法的缓存 支持关联缓存
|
||||
* 支持`order by field`操作
|
||||
* 改进`insertAll`分批写入
|
||||
* 改进`json`字段数据支持
|
||||
* 增加JSON数据的模型对象化操作
|
||||
* 改进路由`ext`参数检测
|
||||
* 修正`rule`方法的`method`参数使用 `get|post` 方式注册路由的问题
|
||||
|
||||
## V5.1.3 (2018-1-12)
|
||||
|
||||
该版本主要改进了路由及调整函数加载顺序,主要更新如下:
|
||||
|
||||
* 增加`env`助手函数;
|
||||
* 增加`route`助手函数;
|
||||
* 增加视图路由方法;
|
||||
* 增加路由重定向方法;
|
||||
* 路由默认区分最后的目录斜杆(支持设置不区分);
|
||||
* 调整公共文件和配置文件的加载顺序(可以在配置文件中直接使用助手函数);
|
||||
* 视图类增加`filter`方法设置输出过滤;
|
||||
* `view`助手函数增加`filter`参数;
|
||||
* 改进缓存生成指令;
|
||||
* Session类的`get`方法支持获取多级;
|
||||
* Request类`only`方法支持指定默认值;
|
||||
* 改进路由分组;
|
||||
* 修正使用闭包查询的时候自动数据缓存出错的情况;
|
||||
* 废除`view_filter`钩子位置;
|
||||
* 修正分组下面的资源路由;
|
||||
* 改进session驱动;
|
||||
|
||||
## V5.1.2 (2018-1-8)
|
||||
|
||||
该版本改进了配置类及数据库类,主要更新如下:
|
||||
|
||||
* 修正嵌套路由分组;
|
||||
* 修正自定义模板标签界定符后表达式语法出错的情况;
|
||||
* 修正自关联的多次调用问题;
|
||||
* 修正数组查询的`null`条件查询;
|
||||
* 修正Query类的`order`及`field`的一处可能的BUG;
|
||||
* 配置参数设置支持三级;
|
||||
* 配置对象支持`ArrayAccess`;
|
||||
* App类增加`path`方法用于设置应用目录;
|
||||
* 关联定义增加`selfRelation`方法用于设置是否为自关联;
|
||||
|
||||
## V5.1.1 (2018-1-3)
|
||||
|
||||
修正一些反馈的BUG,包括:
|
||||
|
||||
* 修正Cookie类存取数组的问题
|
||||
* 修正Controller的`fetch`方法
|
||||
* 改进跨域请求
|
||||
* 修正`insertAll`方法
|
||||
* 修正`chunk`方法
|
||||
|
||||
## V5.1.0 (2018-1-1)
|
||||
|
||||
主要更新如下:
|
||||
|
||||
* 增加注解路由支持
|
||||
* 路由支持跨域请求设置
|
||||
* 增加`app_dispatch`钩子位置
|
||||
* 修正多对多关联的`detach`方法
|
||||
* 修正软删除的`destroy`方法
|
||||
* Cookie类`httponly`参数默认为false
|
||||
* 日志File驱动增加`single`参数配置记录同一个文件(不按日期生成)
|
||||
* 路由的`ext`和`denyExt`方法支持不传任何参数
|
||||
* 改进模型的`save`方法对`oracle`的支持
|
||||
* Query类的`insertall`方法支持配合`data`和`limit`方法
|
||||
* 增加`whereOr`动态查询支持
|
||||
* 日志的ip地址记录改进
|
||||
* 模型`saveAll`方法支持`isUpdate`方法
|
||||
* 改进`Pivot`模型的实例化操作
|
||||
* 改进Model类的`data`方法
|
||||
* 改进多对多中间表模型类
|
||||
* 模型增加`force`方法强制更新所有数据
|
||||
* Hook类支持设置入口方法名称
|
||||
* 改进验证类
|
||||
* 改进`hasWhere`查询的数据重复问题
|
||||
* 模型的`saveall`方法返回数据集对象
|
||||
* 改进File缓存的`clear`方法
|
||||
* 缓存添加统一的序列化机制
|
||||
* 改进泛三级域名的绑定
|
||||
* 改进泛域名的传值和取值
|
||||
* Request类增加`panDomain`方法
|
||||
* 改进废弃字段判断
|
||||
* App类增加`create`方法用于实例化应用类库
|
||||
* 容器类增加`has`方法
|
||||
* 改进多数据库切换连接
|
||||
* 改进断线重连的异常捕获
|
||||
* 改进模型类`buildQuery`方法
|
||||
* Query类增加`unionAll`方法
|
||||
* 关联统计功能增强(支持Sum/Max/Min/Avg)
|
||||
* 修正延迟写入
|
||||
* chunk方法支持复合主键
|
||||
* 改进JSON类型的写入
|
||||
* 改进Mysql的insertAll方法
|
||||
* Model类`save`方法改进复合主键包含自增的情况
|
||||
* 改进Query类`inc`和`dec`方法的关键字处理
|
||||
* File缓存inc和dec方法保持原来的有效期
|
||||
* 改进redis缓存的有效期判断
|
||||
* 增加checkRule方法用于单独数据的多个验证规则
|
||||
* 修正setDec方法的延迟写入
|
||||
* max和min方法增加force参数
|
||||
* 二级配置参数区分大小写
|
||||
* 改进join方法自关联的问题
|
||||
* 修正关联模型自定义表名的情况
|
||||
* Query类增加getFieldsType和getTableFields方法
|
||||
* 取消视图替换功能及view_replace_str配置参数
|
||||
* 改进域名绑定模块后的额外路由规则问题
|
||||
* 改进mysql的insertAll方法
|
||||
* 改进insertAll方法写入json字段数据的支持
|
||||
* 改进redis长连接多编号库的情况
|
||||
|
||||
## RC3版本(2017-11-6)
|
||||
|
||||
主要更新如下:
|
||||
|
||||
* 改进redis驱动的`get`方法
|
||||
* 修正Query类的`alias`方法
|
||||
* `File`类错误信息支持多语言
|
||||
* 修正路由的额外参数解析
|
||||
* 改进`whereTime`方法
|
||||
* 改进Model类`getAttr`方法
|
||||
* 改进App类的`controller`和`validate`方法支持多层
|
||||
* 改进`HasManyThrough`类
|
||||
* 修正软删除的`restore`方法
|
||||
* 改进`MorpthTo`关联
|
||||
* 改进数据库驱动类的`parseKey`方法
|
||||
* 增加`whereField`动态查询方法
|
||||
* 模型增加废弃字段功能
|
||||
* 改进路由的`after`行为检查和`before`行为机制
|
||||
* 改进路由分组的检查
|
||||
* 修正mysql的`json`字段查询
|
||||
* 取消Connection类的`quote`方法
|
||||
* 改进命令行的支持
|
||||
* 验证信息支持多语言
|
||||
* 修正路由模型绑定
|
||||
* 改进参数绑定类型对枚举类型的支持
|
||||
* 修正模板的`{$Think.version} `输出
|
||||
* 改进模板`date`函数解析
|
||||
* 改进`insertAll`方法支持分批执行
|
||||
* Request类`host`方法支持反向代理
|
||||
* 改进`JumpResponse`支持区分成功和错误模板
|
||||
* 改进开启类库后缀后的关联外键自动识别问题
|
||||
* 修正一对一关联的JOIN方式预载入查询问题
|
||||
* Query类增加`hidden`方法
|
||||
|
||||
## RC2版本(2017-10-17)
|
||||
|
||||
主要更新如下:
|
||||
|
||||
* 修正视图查询
|
||||
* 修正资源路由
|
||||
* 修正`HasMany`关联 修正`where`方法的闭包查询
|
||||
* 一对一关联绑定属性到父模型后 关联属性不再保留
|
||||
* 修正应用的命令行配置文件读取
|
||||
* 改进`Connection`类的`getCacheKey`方法
|
||||
* 改进文件上传的非法图像异常
|
||||
* 改进验证类的`unique`规则
|
||||
* Config类`get`方法支持获取一级配置
|
||||
* 修正count方法对`fetchSql`的支持
|
||||
* 修正mysql驱动对`socket`支持
|
||||
* 改进Connection类的`getRealSql`方法
|
||||
* 修正`view`助手函数
|
||||
* Query类增加`leftJoin` `rightJoin` 和 `fullJoin`方法
|
||||
* 改进app_namespace的获取
|
||||
* 改进`append`方法对一对一`bind`属性的支持
|
||||
* 改进关联的`saveall`方法的返回值
|
||||
* 路由标识设置异常修复
|
||||
* 改进Route类`rule`方法
|
||||
* 改进模型的`table`属性设置
|
||||
* 改进composer autofile的加载顺序
|
||||
* 改进`exception_handle`配置对闭包的支持
|
||||
* 改进app助手函数增加参数
|
||||
* 改进composer的加载路径判断
|
||||
* 修正路由组合变量的URL生成
|
||||
* 修正路由URL生成
|
||||
* 改进`whereTime`查询并支持扩展规则
|
||||
* File类的`move`方法第二个参数支持`false`
|
||||
* 改进Config类
|
||||
* 改进缓存类`remember`方法
|
||||
* 惯例配置文件调整 Url类当普通模式参数的时候不做`urlencode`处理
|
||||
* 取消`ROOT_PATH`和`APP_PATH`常量定义 如需更改应用目录 自己重新定义入口文件
|
||||
* 增加`app_debug`的`Env`获取
|
||||
* 修正泛域名绑定
|
||||
* 改进查询表达式的解析机制
|
||||
* mysql增加`regexp`查询表达式 支持正则查询
|
||||
* 改进查询表达式的异常判断
|
||||
* 改进model类的`destroy`方法
|
||||
* 改进Builder类 取消`parseValue`方法
|
||||
* 修正like查询的参数绑定问题
|
||||
* console和start文件移出核心纳入应用库
|
||||
* 改进Db类主键删除方法
|
||||
* 改进泛域名绑定模块
|
||||
* 取消`BIND_MODULE`常量 改为在入口文件使用`bind`方法设置
|
||||
* 改进数组查询
|
||||
* 改进模板渲染的异常处理
|
||||
* 改进控制器基类的架构方法参数
|
||||
* 改进Controller类的`success`和`error`方法
|
||||
* 改进对浏览器`JSON-Handle`插件的支持
|
||||
* 优化跳转模板的移动端显示
|
||||
* 修正模型查询的`chunk`方法对时间字段的支持
|
||||
* 改进trace驱动
|
||||
* Collection类增加`push`方法
|
||||
* 改进Redis Session驱动
|
||||
* 增加JumpResponse驱动
|
||||
|
||||
|
||||
## RC1(2017-9-8)
|
||||
|
||||
主要新特性为:
|
||||
|
||||
* 引入容器和Facade支持
|
||||
* 依赖注入完善和支持更多场景
|
||||
* 重构的(对象化)路由
|
||||
* 配置和路由目录独立
|
||||
* 取消系统常量
|
||||
* 助手函数增强
|
||||
* 类库别名机制
|
||||
* 模型和数据库增强
|
||||
* 验证类增强
|
||||
* 模板引擎改进
|
||||
* 支持PSR-3日志规范
|
||||
* RC1版本取消了5.0多个字段批量数组查询的方式
|
||||
32
LICENSE.txt
Normal file
32
LICENSE.txt
Normal file
@@ -0,0 +1,32 @@
|
||||
|
||||
ThinkPHP遵循Apache2开源协议发布,并提供免费使用。
|
||||
版权所有Copyright © 2006-2018 by ThinkPHP (http://thinkphp.cn)
|
||||
All rights reserved。
|
||||
ThinkPHP® 商标和著作权所有者为上海顶想信息科技有限公司。
|
||||
|
||||
Apache Licence是著名的非盈利开源组织Apache采用的协议。
|
||||
该协议和BSD类似,鼓励代码共享和尊重原作者的著作权,
|
||||
允许代码修改,再作为开源或商业软件发布。需要满足
|
||||
的条件:
|
||||
1. 需要给代码的用户一份Apache Licence ;
|
||||
2. 如果你修改了代码,需要在被修改的文件中说明;
|
||||
3. 在延伸的代码中(修改和有源代码衍生的代码中)需要
|
||||
带有原来代码中的协议,商标,专利声明和其他原来作者规
|
||||
定需要包含的说明;
|
||||
4. 如果再发布的产品中包含一个Notice文件,则在Notice文
|
||||
件中需要带有本协议内容。你可以在Notice中增加自己的
|
||||
许可,但不可以表现为对Apache Licence构成更改。
|
||||
具体的协议参考:http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
186
README.md
Normal file
186
README.md
Normal file
@@ -0,0 +1,186 @@
|
||||

|
||||
|
||||
ThinkPHP 5.1(LTS版本) —— 12载初心,你值得信赖的PHP框架
|
||||
===============
|
||||
|
||||
[](https://scrutinizer-ci.com/g/top-think/framework/?branch=5.1)
|
||||
[](https://travis-ci.org/top-think/framework)
|
||||
[](https://packagist.org/packages/topthink/framework)
|
||||
[](https://packagist.org/packages/topthink/framework)
|
||||
[](http://www.php.net/)
|
||||
[](https://packagist.org/packages/topthink/framework)
|
||||
|
||||
ThinkPHP5.1对底层架构做了进一步的改进,减少依赖,其主要特性包括:
|
||||
|
||||
+ 采用容器统一管理对象
|
||||
+ 支持Facade
|
||||
+ 注解路由支持
|
||||
+ 路由跨域请求支持
|
||||
+ 配置和路由目录独立
|
||||
+ 取消系统常量
|
||||
+ 助手函数增强
|
||||
+ 类库别名机制
|
||||
+ 增加条件查询
|
||||
+ 改进查询机制
|
||||
+ 配置采用二级
|
||||
+ 依赖注入完善
|
||||
+ 支持`PSR-3`日志规范
|
||||
+ 中间件支持(V5.1.6+)
|
||||
+ Swoole/Workerman支持(V5.1.18+)
|
||||
|
||||
|
||||
> ThinkPHP5的运行环境要求PHP5.6以上,兼容PHP8.0。
|
||||
|
||||
## 安装
|
||||
|
||||
使用composer安装
|
||||
|
||||
~~~
|
||||
composer create-project topthink/think tp
|
||||
~~~
|
||||
|
||||
启动服务
|
||||
|
||||
~~~
|
||||
cd tp
|
||||
php think run
|
||||
~~~
|
||||
|
||||
然后就可以在浏览器中访问
|
||||
|
||||
~~~
|
||||
http://localhost:8000
|
||||
~~~
|
||||
|
||||
更新框架
|
||||
~~~
|
||||
composer update topthink/framework
|
||||
~~~
|
||||
|
||||
|
||||
## 在线手册
|
||||
|
||||
+ [完全开发手册](https://www.kancloud.cn/manual/thinkphp5_1/content)
|
||||
+ [升级指导](https://www.kancloud.cn/manual/thinkphp5_1/354155)
|
||||
|
||||
|
||||
## 官方服务
|
||||
|
||||
+ [应用服务市场](https://market.topthink.com/)
|
||||
+ [ThinkAPI——统一API服务](https://docs.topthink.com/think-api)
|
||||
|
||||
## 目录结构
|
||||
|
||||
初始的目录结构如下:
|
||||
|
||||
~~~
|
||||
www WEB部署目录(或者子目录)
|
||||
├─application 应用目录
|
||||
│ ├─common 公共模块目录(可以更改)
|
||||
│ ├─module_name 模块目录
|
||||
│ │ ├─common.php 模块函数文件
|
||||
│ │ ├─controller 控制器目录
|
||||
│ │ ├─model 模型目录
|
||||
│ │ ├─view 视图目录
|
||||
│ │ └─ ... 更多类库目录
|
||||
│ │
|
||||
│ ├─command.php 命令行定义文件
|
||||
│ ├─common.php 公共函数文件
|
||||
│ └─tags.php 应用行为扩展定义文件
|
||||
│
|
||||
├─config 应用配置目录
|
||||
│ ├─module_name 模块配置目录
|
||||
│ │ ├─database.php 数据库配置
|
||||
│ │ ├─cache 缓存配置
|
||||
│ │ └─ ...
|
||||
│ │
|
||||
│ ├─app.php 应用配置
|
||||
│ ├─cache.php 缓存配置
|
||||
│ ├─cookie.php Cookie配置
|
||||
│ ├─database.php 数据库配置
|
||||
│ ├─log.php 日志配置
|
||||
│ ├─session.php Session配置
|
||||
│ ├─template.php 模板引擎配置
|
||||
│ └─trace.php Trace配置
|
||||
│
|
||||
├─route 路由定义目录
|
||||
│ ├─route.php 路由定义
|
||||
│ └─... 更多
|
||||
│
|
||||
├─public WEB目录(对外访问目录)
|
||||
│ ├─index.php 入口文件
|
||||
│ ├─router.php 快速测试文件
|
||||
│ └─.htaccess 用于apache的重写
|
||||
│
|
||||
├─thinkphp 框架系统目录
|
||||
│ ├─lang 语言文件目录
|
||||
│ ├─library 框架类库目录
|
||||
│ │ ├─think Think类库包目录
|
||||
│ │ └─traits 系统Trait目录
|
||||
│ │
|
||||
│ ├─tpl 系统模板目录
|
||||
│ ├─base.php 基础定义文件
|
||||
│ ├─console.php 控制台入口文件
|
||||
│ ├─convention.php 框架惯例配置文件
|
||||
│ ├─helper.php 助手函数文件
|
||||
│ ├─phpunit.xml phpunit配置文件
|
||||
│ └─start.php 框架入口文件
|
||||
│
|
||||
├─extend 扩展类库目录
|
||||
├─runtime 应用的运行时目录(可写,可定制)
|
||||
├─vendor 第三方类库目录(Composer依赖库)
|
||||
├─build.php 自动生成定义文件(参考)
|
||||
├─composer.json composer 定义文件
|
||||
├─LICENSE.txt 授权说明文件
|
||||
├─README.md README 文件
|
||||
├─think 命令行入口文件
|
||||
~~~
|
||||
|
||||
> 可以使用php自带webserver快速测试
|
||||
> 切换到根目录后,启动命令:php think run
|
||||
|
||||
## 命名规范
|
||||
|
||||
`ThinkPHP5`遵循PSR-2命名规范和PSR-4自动加载规范,并且注意如下规范:
|
||||
|
||||
### 目录和文件
|
||||
|
||||
* 目录不强制规范,驼峰和小写+下划线模式均支持;
|
||||
* 类库、函数文件统一以`.php`为后缀;
|
||||
* 类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致;
|
||||
* 类名和类文件名保持一致,统一采用驼峰法命名(首字母大写);
|
||||
|
||||
### 函数和类、属性命名
|
||||
|
||||
* 类的命名采用驼峰法,并且首字母大写,例如 `User`、`UserType`,默认不需要添加后缀,例如`UserController`应该直接命名为`User`;
|
||||
* 函数的命名使用小写字母和下划线(小写字母开头)的方式,例如 `get_client_ip`;
|
||||
* 方法的命名使用驼峰法,并且首字母小写,例如 `getUserName`;
|
||||
* 属性的命名使用驼峰法,并且首字母小写,例如 `tableName`、`instance`;
|
||||
* 以双下划线“__”打头的函数或方法作为魔法方法,例如 `__call` 和 `__autoload`;
|
||||
|
||||
### 常量和配置
|
||||
|
||||
* 常量以大写字母和下划线命名,例如 `APP_PATH`和 `THINK_PATH`;
|
||||
* 配置参数以小写字母和下划线命名,例如 `url_route_on` 和`url_convert`;
|
||||
|
||||
### 数据表和字段
|
||||
|
||||
* 数据表和字段采用小写加下划线方式命名,并注意字段名不要以下划线开头,例如 `think_user` 表和 `user_name`字段,不建议使用驼峰和中文作为数据表字段命名。
|
||||
|
||||
## 参与开发
|
||||
|
||||
请参阅 [ThinkPHP5 核心框架包](https://github.com/top-think/framework)。
|
||||
|
||||
## 版权信息
|
||||
|
||||
ThinkPHP遵循Apache2开源协议发布,并提供免费使用。
|
||||
|
||||
本项目包含的第三方源码和二进制文件之版权信息另行标注。
|
||||
|
||||
版权所有Copyright © 2006-2018 by ThinkPHP (http://thinkphp.cn)
|
||||
|
||||
All rights reserved。
|
||||
|
||||
ThinkPHP® 商标和著作权所有者为上海顶想信息科技有限公司。
|
||||
|
||||
更多细节参阅 [LICENSE.txt](LICENSE.txt)
|
||||
1
application/.htaccess
Normal file
1
application/.htaccess
Normal file
@@ -0,0 +1 @@
|
||||
deny from all
|
||||
115
application/admin/controller/Admin.php
Normal file
115
application/admin/controller/Admin.php
Normal file
@@ -0,0 +1,115 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
use think\Controller;
|
||||
|
||||
class Admin extends Common
|
||||
{
|
||||
|
||||
//获取管理员列表
|
||||
public function get_admin_list()
|
||||
{
|
||||
$user_name = input('user_name', '');
|
||||
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('admin')->get_admin_list($user_name, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
//获取 管理员 详情
|
||||
public function admin_info()
|
||||
{
|
||||
$login_token = input('login_token', 0);
|
||||
$reslut = model('Admin')->admin_info($login_token);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//获取 管理员 详情
|
||||
public function add_admin()
|
||||
{
|
||||
$user_name = input('user_name', '');
|
||||
$password = input('password', '');
|
||||
$re_password = input('re_password', '');
|
||||
$reslut = model('Admin')->add_admin($user_name, $password, $re_password);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
|
||||
//修改管理员密码
|
||||
public function edit_admin_password()
|
||||
{
|
||||
|
||||
$aid = input('aid', 0);
|
||||
$old_password = input('old_password', '');
|
||||
$password = input('new_password', '');
|
||||
$re_password = input('re_password', '');
|
||||
$phone = input('phone', '');
|
||||
$reslut = model('Admin')->edit_admin_password($aid, $old_password, $password, $re_password, $phone);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
//修改管理员密码
|
||||
public function edit_admin_auth()
|
||||
{
|
||||
$aid = input('aid', 0);
|
||||
$auth = input('auth', '');
|
||||
$reslut = model('Admin')->edit_admin_auth($aid, $auth);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//获取管理员详情
|
||||
public function get_admin_info()
|
||||
{
|
||||
$aid = input('aid', 0);
|
||||
$reslut = model('Admin')->get_admin_info($aid);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
//获取管理员详情
|
||||
public function delete_admin()
|
||||
{
|
||||
$aid = input('aid', 0);
|
||||
$reslut = model('Admin')->delete_admin($aid);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
public function get_all_system_menu_list()
|
||||
{
|
||||
$aid = input('aid', 0);
|
||||
$reslut = model('SystemMenu')->get_all_system_menu_list($aid);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
|
||||
//获取管理员日志
|
||||
public function get_admin_log_list(){
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Admin')->get_admin_log_list($page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//退出登录
|
||||
public function quit_admin_login(){
|
||||
$aid = $this->aid;
|
||||
$reslut = model('Admin')->quit_admin_login($aid);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
//清除登录token
|
||||
public function clear_admin_token()
|
||||
{
|
||||
$super_aid = $this->aid;
|
||||
$aid = input('aid', 0);
|
||||
$reslut = model('Admin')->clear_admin_token($super_aid, $aid);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
}
|
||||
50
application/admin/controller/Agora.php
Normal file
50
application/admin/controller/Agora.php
Normal file
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
use think\Controller;
|
||||
use think\facade\Request;
|
||||
|
||||
class Agora extends Common
|
||||
{
|
||||
|
||||
|
||||
//获取音乐列表
|
||||
public function agora_song_list()
|
||||
{
|
||||
$aid = input('aid', 0);
|
||||
$song_name = input('song_name', 0);
|
||||
$singer = input('singer', 0);
|
||||
$order = input('order', 'aid');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
|
||||
$reslut = model('Agora')->agora_song_list($aid, $song_name, $singer, $order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//同步歌曲
|
||||
public function synchro_song(){
|
||||
$key_name = "admin:agora:synchro_song";
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('Agora')->synchro_song();
|
||||
redis_unlock($key_name);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//增量歌曲
|
||||
public function increment_song(){
|
||||
$key_name = "admin:agora:increment_song";
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('Agora')->increment_song();
|
||||
redis_unlock($key_name);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
}
|
||||
206
application/admin/controller/ApiTask.php
Normal file
206
application/admin/controller/ApiTask.php
Normal file
@@ -0,0 +1,206 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
use think\Controller;
|
||||
|
||||
class ApiTask extends Controller
|
||||
{
|
||||
|
||||
//监控宝箱状态 设置5s 监控一次
|
||||
public function control_box()
|
||||
{
|
||||
$key_name = "admin:cli:control_box";
|
||||
$tid = input('tid', 0);
|
||||
$is_reset = input('is_reset', 0);
|
||||
redis_lock_exit($key_name,20);
|
||||
$reslut = model('admin/box')->control_generate_box($tid, $is_reset);
|
||||
redis_unlock($key_name);
|
||||
if($is_reset){
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}else{
|
||||
echo date('Y-m-d H:i:s') . "监控奖池 执行成功" . $reslut['data'] . "\r\n";
|
||||
}
|
||||
}
|
||||
|
||||
//清理房间当天热度
|
||||
public function clear_room_hot_value(){
|
||||
$key_name = "admin:cli:clear_room_hot_value";
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('api/room')->clear_room_hot_value();
|
||||
redis_unlock($key_name);
|
||||
echo date('Y-m-d H:i:s') . "清除房间当天热度 执行成功"." \r\n";
|
||||
}
|
||||
|
||||
//爵位到期监控
|
||||
public function close_user_nobility(){
|
||||
$key_name = "admin:ApiTask:close_user_nobility";
|
||||
redis_lock_exit($key_name,20);
|
||||
$reslut = model('api/Nobility')->user_nobility_over_time();
|
||||
redis_unlock($key_name);
|
||||
echo date('Y-m-d H:i:s') . "爵位到期监控 执行成功"." \r\n";
|
||||
}
|
||||
|
||||
//定时清除用户关系
|
||||
public function close_user_relation(){
|
||||
$key_name = "admin:cli:close_user_relation";
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('api/DatingRoom')->close_user_relation();
|
||||
redis_unlock($key_name);
|
||||
// echo date('Y-m-d H:i:s') . "定时清除用户关系 执行成功"." \r\n";
|
||||
}
|
||||
|
||||
//定时结束唱歌时间
|
||||
public function colse_room_song_user_status(){
|
||||
$key_name = "admin:cli:colse_room_song_user_status";
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('api/KtvRoom')->colse_room_song_user_status();
|
||||
redis_unlock($key_name);
|
||||
// echo date('Y-m-d H:i:s') . "定时结束唱歌时间 执行成功"." \r\n";
|
||||
}
|
||||
|
||||
//定时清理到期私密小屋
|
||||
public function close_room_privacy_status(){
|
||||
$key_name = "api:cli:close_room_privacy_status";
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('api/DatingRoom')->close_room_privacy_status();
|
||||
redis_unlock($key_name);
|
||||
echo date('Y-m-d H:i:s') . "监控私密小屋倒计时 执行成功" . "\r\n";
|
||||
}
|
||||
|
||||
//定时清理到期心动连线
|
||||
public function close_room_dating_stage(){
|
||||
$key_name = "admin:cli:close_room_dating_stage";
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('api/DatingRoom')->close_room_dating_stage();
|
||||
redis_unlock($key_name);
|
||||
echo date('Y-m-d H:i:s') . "监控心动连线倒计时 执行成功" . "\r\n";
|
||||
}
|
||||
|
||||
//定时清理到期拍卖活动监控成功
|
||||
public function close_auction_pm(){
|
||||
$key_name = "admin:cli:close_auction_pm";
|
||||
redis_lock_exit($key_name);
|
||||
$data = model('api/AuctionRoom')->close_auction_pm();
|
||||
redis_unlock($key_name);
|
||||
echo date('Y-m-d H:i:s') . "定时清理到期拍卖活动 执行成功" . "\r\n";
|
||||
}
|
||||
|
||||
//定时清理酒吧房掉麦
|
||||
public function close_room_date_micro(){
|
||||
$key_name = "admin:cli:close_room_date_micro";
|
||||
redis_lock_exit($key_name);
|
||||
$data = model('api/PubRoom')->close_room_date_micro();
|
||||
redis_unlock($key_name);
|
||||
echo date('Y-m-d H:i:s') . "定时清理酒吧房掉麦 执行成功" . "\r\n";
|
||||
}
|
||||
|
||||
//清理过期装扮
|
||||
public function clear_user_decorate()
|
||||
{
|
||||
$key_name = "admin:cli:clear_user_decorate";
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('Decorate')->clear_user_decorate();
|
||||
redis_unlock($key_name);
|
||||
echo date('Y-m-d H:i:s') . "清理过期装扮 执行成功" . "\r\n";
|
||||
}
|
||||
|
||||
//清理空房间机器人
|
||||
public function auto_clear_robot_room()
|
||||
{
|
||||
$key_name = "admin:cli:auto_clear_robot_room";
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('api/room')->auto_clear_robot_room();
|
||||
redis_unlock($key_name);
|
||||
echo date('Y-m-d H:i:s') . "清理空房间机器人 执行成功" . "\r\n";
|
||||
}
|
||||
|
||||
//每日签到删除处理
|
||||
public function del_user_day_sign_log()
|
||||
{
|
||||
$key_name = "admin:cli:del_user_day_sign_log";
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model("api/UserSign")->del_user_day_sign_log();
|
||||
redis_unlock($key_name);
|
||||
echo date('Y-m-d H:i:s') . "每日签到删除处理 执行成功" . "\r\n";
|
||||
}
|
||||
|
||||
//获取上周排行榜
|
||||
public function last_week_rank(){
|
||||
$key_name = "admin:cli:last_week_rank";
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('api/gift')->last_week_rank1();
|
||||
redis_unlock($key_name);
|
||||
echo date('Y-m-d H:i:s') . "获取上周排行榜 执行成功" . "\r\n";
|
||||
}
|
||||
|
||||
//结算上周房间流水
|
||||
public function statistics_room_last_week_earnings(){
|
||||
$key_name = "admin:cli:statistics_room_last_week_earnings";
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('api/RoomWages')->statistics_room_last_week_earnings(1);
|
||||
redis_unlock($key_name);
|
||||
echo date('Y-m-d H:i:s') . "结算上周房间流水 执行成功" . "\r\n";
|
||||
}
|
||||
|
||||
//结算上周公会流水
|
||||
public function statistics_guild_last_week_earnings(){
|
||||
$key_name = "admin:cli:statistics_guild_last_week_earnings";
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('api/RoomWages')->statistics_guild_last_week_earnings(1);
|
||||
redis_unlock($key_name);
|
||||
echo date('Y-m-d H:i:s') . "结算上周公会流水 执行成功" . "\r\n";
|
||||
}
|
||||
|
||||
//房间工资结算
|
||||
public function batch_give_room_subsidy(){
|
||||
$key_name = "admin:cli:batch_give_room_subsidy";
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('api/RoomWages')->batch_give_room_subsidy();
|
||||
redis_unlock($key_name);
|
||||
echo date('Y-m-d H:i:s') . "结算上周房间流水 执行成功" . "\r\n";
|
||||
}
|
||||
|
||||
//公会工资结算
|
||||
public function batch_give_guild_subsidy(){
|
||||
$key_name = "admin:cli:batch_give_guild_subsidy";
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('api/RoomWages')->batch_give_guild_subsidy();
|
||||
redis_unlock($key_name);
|
||||
echo date('Y-m-d H:i:s') . "结算上周房间流水 执行成功" . "\r\n";
|
||||
}
|
||||
|
||||
//监控练仙传说
|
||||
public function create_monster_log(){
|
||||
$key_name = "admin:cli:create_monster_log";
|
||||
redis_lock_exit($key_name,1,1);
|
||||
$reslut = model('api/Monster')->create_monster_log();
|
||||
redis_unlock($key_name);
|
||||
if($reslut['code'] == 201){
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}else{
|
||||
echo date('Y-m-d H:i:s') . "监控练仙传说 执行成功" . $reslut['data'] . "\r\n";
|
||||
}
|
||||
}
|
||||
|
||||
//盲盒巡乐会自动结束
|
||||
public function close_blind_box()
|
||||
{
|
||||
$key_name = "api:cli:close_blind_box";
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('api/BlindBox')->close_blind_box();
|
||||
redis_unlock($key_name);
|
||||
echo date('Y-m-d H:i:s') . "盲盒巡乐会自动结束 执行成功\r\n";
|
||||
}
|
||||
|
||||
//盲盒巡乐会自动结束
|
||||
public function blind_box_reward()
|
||||
{
|
||||
$key_name = "api:cli:blind_box_reward";
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('api/BlindBox')->blind_box_reward();
|
||||
redis_unlock($key_name);
|
||||
echo date('Y-m-d H:i:s') . "盲盒巡乐会结束奖励 执行成功\r\n";
|
||||
}
|
||||
|
||||
}
|
||||
230
application/admin/controller/Apip.php
Normal file
230
application/admin/controller/Apip.php
Normal file
@@ -0,0 +1,230 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
use think\captcha\Captcha;
|
||||
use think\Controller;
|
||||
use think\Db;
|
||||
|
||||
class Apip extends Controller
|
||||
{
|
||||
public function initialize()
|
||||
{
|
||||
header('Access-Control-Allow-Origin: *');
|
||||
add_operation(1, 0); //用户行为日志
|
||||
}
|
||||
public function login()
|
||||
{
|
||||
|
||||
$captcha = input('captcha');
|
||||
$username = input('username');
|
||||
$password = input('password');
|
||||
if (empty($captcha)) {
|
||||
return ajaxReturn(201, '验证码不能为空');
|
||||
}
|
||||
if (!captcha_check($captcha)) {
|
||||
// 验证失败
|
||||
return ajaxReturn(201, '验证码错误');
|
||||
}
|
||||
if (empty($username)) {
|
||||
return ajaxReturn(201, '用户名不能为空');
|
||||
}
|
||||
if (empty($password)) {
|
||||
return ajaxReturn(201, '密码不能为空');
|
||||
}
|
||||
$map = [];
|
||||
$map[] = ['user_name', '=', $username];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
// $map[] = ['password', '=', md5($password)];
|
||||
|
||||
$info = db::name('admin')->where($map)->find();
|
||||
if (empty($info)) {
|
||||
return ajaxReturn(201, '用户名不存在');
|
||||
} else {
|
||||
$admin_open_sms_code = $info['open_sms_code'];
|
||||
$surplus_time = time() - $info['update_time'];
|
||||
if($info['error_num'] >= 3 && $surplus_time < 3600){
|
||||
return ajaxReturn(201, '账号已锁定,一小时内无法登录');
|
||||
}
|
||||
|
||||
if (md5($password) != $info['password']) {
|
||||
$update_err = [];
|
||||
$update_err['update_time'] = time();
|
||||
if($info['error_num'] >= 3) {
|
||||
// return ajaxReturn(201, '账号已锁定,一小时内无法登录');
|
||||
// $update_err['status'] = 2;
|
||||
}
|
||||
db::name('admin')->where('aid',$info['aid'])->inc('error_num',1)->update($update_err);
|
||||
return ajaxReturn(201, '密码错误');
|
||||
}
|
||||
|
||||
$ip_address = request()->ip();
|
||||
// $ip_address = '211.94.238.248';
|
||||
$address = ip_to_position($ip_address);
|
||||
$province = $address['province'];
|
||||
$city = $address['city'];
|
||||
|
||||
//该用户是否已退出
|
||||
if($info['aid'] != 1 || $admin_open_sms_code == 0) {
|
||||
if(!empty($info['login_token'])){
|
||||
if($ip_address != $info['ip']){
|
||||
// return ajaxReturn(201, '该账号已被其他人登录');
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//发送短信
|
||||
if(empty($info['phone'])){
|
||||
$mobile = db::name('admin')->where('aid', 1)->value('phone');
|
||||
}else{
|
||||
$mobile = $info['phone'];
|
||||
}
|
||||
|
||||
$province_time = $province . $city .', 时间 '.date('Y-m-d H:i:s');
|
||||
|
||||
$content = '【语音安全监控】你的账号'.$info['user_name'].'正在被登录,登录IP:'.$ip_address.',登录位置:'.$province_time;
|
||||
$login_token = generateRandom(32);
|
||||
// if ($info['aid'] == 1) {
|
||||
// $login_token = $info['login_token'];
|
||||
// }
|
||||
$data = [];
|
||||
$data['aid'] = $info['aid'];
|
||||
$data['login_token'] = $login_token;
|
||||
$data['ip'] = $ip_address;
|
||||
$data['province'] = $address['province'];
|
||||
$data['city'] = $city;
|
||||
$data['error_num'] = 0;
|
||||
$data['update_time'] = time();
|
||||
$data['token_validity_time'] = time() + (60*60*12);
|
||||
$reslut = db::name('admin')->update($data);
|
||||
if (!$reslut) {
|
||||
return ajaxReturn(201, '登录失败', '');
|
||||
} else {
|
||||
$show_mobile = substr_replace($mobile,'****',3,4);
|
||||
$base64_mobile = $this->base64_encode_mobile($mobile);
|
||||
if($admin_open_sms_code == 1) {
|
||||
$data = ['uid' => $info['aid'], 'login_token' => '', 'is_has_warn' => 2, 'show_mobile' => $show_mobile, 'mobile' => $base64_mobile, 'need_sms_code' => 1];
|
||||
} else {
|
||||
$data = ['uid' => $info['aid'], 'login_token' => $login_token, 'is_has_warn' => 2, 'need_sms_code' => 0];
|
||||
}
|
||||
|
||||
return ajaxReturn(200, '登录成功', $data);
|
||||
}
|
||||
}
|
||||
}
|
||||
public function verify()
|
||||
{
|
||||
$config = [
|
||||
'codeSet' => '0123456789',
|
||||
// 验证码字体大小
|
||||
'fontSize' => 30,
|
||||
// 验证码位数
|
||||
'length' => 4,
|
||||
// 关闭验证码杂点
|
||||
'useNoise' => false,
|
||||
];
|
||||
$captcha = new Captcha($config);
|
||||
return $captcha->entry();
|
||||
}
|
||||
|
||||
public function test()
|
||||
{
|
||||
$file = request()->file('file');
|
||||
$file_category_name = input('file_category', 'all');
|
||||
$reslut = model('Upload')->qiniu_upload($file, $file_category_name);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
private function send_smsbao_msg($mobile, $content){
|
||||
$config = get_uncache_system_config();
|
||||
//短信宝
|
||||
// $url = "https://dx.ipyy.net/smsJson.aspx?action=send&userid=&account=" . $config['huaxin_account'] . "&password=" . $config['huaxin_password'] . "&mobile=" . $mobile . "&content=" . urlencode($content) . "&sendTime=&extno=";
|
||||
$url = "https://api.smsbao.com/sms?u=".$config['smsbao_account']."&p=".md5($config['smsbao_password'])."&m=".$mobile."&c=".urlencode($content) ."&g=";
|
||||
$result = myCurl($url);
|
||||
$result_arr = json_decode($result, true);
|
||||
if ($result_arr == 0) {
|
||||
return ['code' => 200, 'msg' => '发送成功', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 201, 'msg' => '发送失败', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
public function get_mobile_code()
|
||||
{
|
||||
$mobile = input('mobile', '');
|
||||
$captcha = input('captcha', '');
|
||||
if (empty($captcha)) {
|
||||
return ajaxReturn(201, '验证码不能为空');
|
||||
}
|
||||
if (!captcha_check($captcha)) {
|
||||
// 验证失败
|
||||
return ajaxReturn(201, '验证码错误');
|
||||
}
|
||||
|
||||
$mobile = $this->base64_decode_mobile($mobile);
|
||||
$key_name = "admin:cli:get_mobile_code";
|
||||
redis_lock_exit($key_name);
|
||||
$result = model('api/sms')->send_sms_admin($mobile);
|
||||
redis_unlock($key_name);
|
||||
return ajaxReturn($result['code'], $result['msg'], $result['data']);
|
||||
}
|
||||
public function sms_login()
|
||||
{
|
||||
|
||||
$aid = input('uid', '');
|
||||
$mobile = input('mobile', '');
|
||||
$sms_code = input('sms_code', '');
|
||||
if(empty($sms_code)) {
|
||||
return ajaxReturn(201, '短信验证码不能为空');
|
||||
}
|
||||
if(empty($aid)) {
|
||||
return ajaxReturn(201, '管理员账号不能为空');
|
||||
}
|
||||
if($aid != 1) {
|
||||
return ajaxReturn(201, '非验证码管理员');
|
||||
}
|
||||
$mobile = $this->base64_decode_mobile($mobile);
|
||||
$result = model('api/sms')->verification_code_admin($mobile, $sms_code);
|
||||
if($result['code'] == 201) {
|
||||
return ajaxReturn($result['code'], $result['msg'], $result['data']);
|
||||
}
|
||||
|
||||
$map = [];
|
||||
$map[] = ['aid', '=', $aid];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$info = db::name('admin')->where($map)->find();
|
||||
if($info['phone'] !== $mobile) {
|
||||
return ajaxReturn(201, '账号错误');
|
||||
}
|
||||
$ip_address = request()->ip();
|
||||
$login_token = generateRandom(32);
|
||||
$data = [];
|
||||
$data['aid'] = $info['aid'];
|
||||
$data['login_token'] = $login_token;
|
||||
$data['update_time'] = time();
|
||||
$data['ip'] = $ip_address;
|
||||
$data['token_validity_time'] = time()+7200;
|
||||
$reslut = db::name('admin')->update($data);
|
||||
if($reslut) {
|
||||
$data = ['uid' => $info['aid'], 'login_token' => $login_token, 'is_has_warn' => 1];
|
||||
return ajaxReturn(200, '登录成功', $data);
|
||||
}
|
||||
return ajaxReturn(201, '登录失败', $data);
|
||||
}
|
||||
//手机号
|
||||
public function base64_decode_mobile($mobile)
|
||||
{
|
||||
$mobile = base64_decode($mobile);
|
||||
$mobile_arr = explode('_', $mobile);
|
||||
return $mobile_arr[1];
|
||||
}
|
||||
//手机号转换数据流
|
||||
public function base64_encode_mobile($mobile)
|
||||
{
|
||||
$rand_code = 'scsy';
|
||||
$rand_mobile = $rand_code . '_' . $mobile;
|
||||
return base64_encode($rand_mobile);
|
||||
}
|
||||
|
||||
}
|
||||
143
application/admin/controller/BlindBox.php
Normal file
143
application/admin/controller/BlindBox.php
Normal file
@@ -0,0 +1,143 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
use think\Controller;
|
||||
use think\facade\Request;
|
||||
|
||||
class BlindBox extends Common
|
||||
{
|
||||
|
||||
//获取盲盒礼物
|
||||
public function get_blind_box_gift_list()
|
||||
{
|
||||
$tid = input('tid', 0);
|
||||
$result = model('BlindBox')->get_blind_box_gift_list($tid);
|
||||
return ajaxReturn($result['code'], $result['msg'], $result['data']);
|
||||
}
|
||||
|
||||
public function get_gift_list()
|
||||
{
|
||||
$result = model('BlindBox')->get_gift_list();
|
||||
return ajaxReturn($result['code'], $result['msg'], $result['data']);
|
||||
}
|
||||
//获取列表
|
||||
public function get_config_list()
|
||||
{
|
||||
$pattern_id = input('pattern_id', 0);
|
||||
|
||||
$gid = input('gid', '');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$result = model('BlindBox')->get_config_list($pattern_id, $gid, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $result['data']['count'];
|
||||
$data['data'] = $result['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//添加限定礼物配置
|
||||
public function add_config(){
|
||||
$data = input('post.');
|
||||
$result = model('BlindBox')->add_config($data);
|
||||
return ajaxReturn($result['code'], $result['msg'], $result['data']);
|
||||
}
|
||||
//限定礼物配置详情
|
||||
public function get_config_info(){
|
||||
$id = input('id', 0);
|
||||
$result = model('BlindBox')->get_config_info($id);
|
||||
return ajaxReturn($result['code'], $result['msg'], $result['data']);
|
||||
}
|
||||
//限定礼物修改
|
||||
public function edit_config(){
|
||||
$data = input('post.');
|
||||
$result = model('BlindBox')->edit_config($data);
|
||||
return ajaxReturn($result['code'], $result['msg'], $result['data']);
|
||||
}
|
||||
//移除封禁
|
||||
public function del_config(){
|
||||
$id = input('id', 0);
|
||||
$result = model('BlindBox')->del_config($id);
|
||||
return ajaxReturn($result['code'], $result['msg'], $result['data']);
|
||||
|
||||
}
|
||||
//获取阶段列表
|
||||
public function get_stage_list()
|
||||
{
|
||||
$pattern_id = input('pattern_id', 0);
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$result = model('BlindBox')->get_stage_list($pattern_id, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $result['data']['count'];
|
||||
$data['data'] = $result['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//阶段详情
|
||||
public function get_stage_info(){
|
||||
$id = input('id', 0);
|
||||
$result = model('BlindBox')->get_stage_info($id);
|
||||
return ajaxReturn($result['code'], $result['msg'], $result['data']);
|
||||
}
|
||||
//阶段修改
|
||||
public function edit_stage(){
|
||||
$data = input('post.');
|
||||
$result = model('BlindBox')->edit_stage($data);
|
||||
return ajaxReturn($result['code'], $result['msg'], $result['data']);
|
||||
}
|
||||
//获取期数列表
|
||||
public function get_term_list()
|
||||
{
|
||||
$status = input('status', 0);
|
||||
|
||||
$gid = input('gid', '');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$result = model('BlindBox')->get_term_list($status, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $result['data']['count'];
|
||||
$data['data'] = $result['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//添加期数
|
||||
public function add_term(){
|
||||
$data = input('post.');
|
||||
$result = model('BlindBox')->add_term($data);
|
||||
return ajaxReturn($result['code'], $result['msg'], $result['data']);
|
||||
}
|
||||
//期数详情
|
||||
public function get_term_info(){
|
||||
$id = input('id', 0);
|
||||
$result = model('BlindBox')->get_term_info($id);
|
||||
return ajaxReturn($result['code'], $result['msg'], $result['data']);
|
||||
}
|
||||
//期数修改
|
||||
public function edit_term(){
|
||||
$data = input('post.');
|
||||
$result = model('BlindBox')->edit_term($data);
|
||||
return ajaxReturn($result['code'], $result['msg'], $result['data']);
|
||||
}
|
||||
//移除期数
|
||||
public function del_term(){
|
||||
$id = input('id', 0);
|
||||
$result = model('BlindBox')->del_term($id);
|
||||
return ajaxReturn($result['code'], $result['msg'], $result['data']);
|
||||
|
||||
}
|
||||
|
||||
public function open_term(){
|
||||
$id = input('id', 0);
|
||||
$result = model('BlindBox')->open_term($id);
|
||||
return ajaxReturn($result['code'], $result['msg'], $result['data']);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
46
application/admin/controller/Block.php
Normal file
46
application/admin/controller/Block.php
Normal file
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
use think\Controller;
|
||||
use think\facade\Request;
|
||||
|
||||
class Block extends Common
|
||||
{
|
||||
|
||||
|
||||
//获取列表
|
||||
public function get_block_list()
|
||||
{
|
||||
$type = input('type', 0);
|
||||
$type_text = input('type_text', '');
|
||||
$is_delete = input('is_delete', 0);
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Block')->get_block_list($type, $type_text, $is_delete, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//添加封禁
|
||||
public function add_block(){
|
||||
$aid = $this->aid;
|
||||
$data = input('post.');
|
||||
$reslut = model('Block')->add_block($aid, $data);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//移除封禁
|
||||
public function del_block(){
|
||||
$id = input('id', 0);
|
||||
$reslut = model('Block')->del_block($id);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
339
application/admin/controller/Box.php
Normal file
339
application/admin/controller/Box.php
Normal file
@@ -0,0 +1,339 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
use think\Controller;
|
||||
use think\facade\Request;
|
||||
|
||||
class Box extends Common
|
||||
{
|
||||
|
||||
|
||||
//获取宝箱列表
|
||||
public function get_box_type_list()
|
||||
{
|
||||
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Box')->get_box_type_list($page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
public function get_box_count_type_list()
|
||||
{
|
||||
$reslut = model('Box')->get_box_count_type_list();
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
public function get_box_person_type_list()
|
||||
{
|
||||
$reslut = model('Box')->get_box_person_type_list();
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
public function get_box_common_type_list()
|
||||
{
|
||||
$reslut = model('Box')->get_box_common_type_list();
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取房间信息
|
||||
public function get_box_type_info()
|
||||
{
|
||||
$tid = input('tid', 0);
|
||||
$reslut = model('Box')->get_box_type_info($tid);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//添加类型
|
||||
public function add_box_type()
|
||||
{
|
||||
$data = Request::only(['type_name', 'show_name', 'open_price', 'consume', 'open_status']);
|
||||
$reslut = model('Box')->add_box_type($data);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
//编辑类型
|
||||
public function edit_box_type()
|
||||
{
|
||||
$data = Request::only(['tid', 'type_name', 'show_name', 'open_price', 'consume', 'rate', 'open_status']);
|
||||
$reslut = model('Box')->edit_box_type($data);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
|
||||
//获取宝箱列表
|
||||
public function get_box_config_list()
|
||||
{
|
||||
|
||||
$tid = input('tid', 0);
|
||||
$gid = input('gid', 0);
|
||||
$gift_name = input('gift_name', '');
|
||||
$gift_price = input('gift_price', 0);
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Box')->get_box_config_list($tid, $gid, $gift_name, $gift_price, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
$data['totalData'] = $reslut['data']['totalData'];
|
||||
return json($data);
|
||||
}
|
||||
//获取礼物列表
|
||||
public function get_gift_list()
|
||||
{
|
||||
$reslut = model('Gift')->gift_list(0, "", 0, 0, 0, 1, 2, 'gift_price', 'asc', 1, 99999, 1);
|
||||
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']['list']);
|
||||
}
|
||||
|
||||
//添加宝箱信息
|
||||
public function add_box_config()
|
||||
{
|
||||
$tid = input('tid', 0);
|
||||
$gid = input('gid', 0);
|
||||
$num = input('num', 0);
|
||||
$open_num_obtain = input('open_num_obtain',0);
|
||||
$is_public_screen = input('is_public_screen');
|
||||
$is_public_server = input('is_public_server');
|
||||
//二级密码
|
||||
$pass = input('secondary_password', '');
|
||||
$check_pass = model('admin/admin')->check_secondary_password($pass);
|
||||
if($check_pass['code'] == 201){
|
||||
return ajaxReturn($check_pass['code'], $check_pass['msg'], $check_pass['data']);
|
||||
}
|
||||
$reslut = model('box')->add_box_config($tid, $gid, $num, $open_num_obtain, $is_public_screen, $is_public_server);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
//获取详情
|
||||
public function get_box_config_info()
|
||||
{
|
||||
$bid = input('bid');
|
||||
$reslut = model('box')->get_box_config_info($bid);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
//修改宝箱信息
|
||||
public function edit_box_config()
|
||||
{
|
||||
$bid = input('bid');
|
||||
$gid = input('gid');
|
||||
$num = input('num');
|
||||
$accumulate_price = input('accumulate_price',0);
|
||||
$accumulate_rate = input('accumulate_rate',0);
|
||||
$open_num_obtain = input('open_num_obtain',0);
|
||||
$is_public_screen = input('is_public_screen');
|
||||
$is_public_server = input('is_public_server');
|
||||
//二级密码
|
||||
$pass = input('secondary_password', '');
|
||||
$check_pass = model('admin/admin')->check_secondary_password($pass);
|
||||
if($check_pass['code'] == 201){
|
||||
return ajaxReturn($check_pass['code'], $check_pass['msg'], $check_pass['data']);
|
||||
}
|
||||
$reslut = model('box')->edit_box_config($bid, $gid, $num, $open_num_obtain, $accumulate_price, $accumulate_rate, $is_public_screen, $is_public_server);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
//删除宝箱信息
|
||||
public function delete_box_config()
|
||||
{
|
||||
$bid = input('bid');
|
||||
//二级密码
|
||||
$pass = input('pass', '');
|
||||
$check_pass = model('admin/admin')->check_secondary_password($pass);
|
||||
if($check_pass['code'] == 201){
|
||||
return ajaxReturn($check_pass['code'], $check_pass['msg'], $check_pass['data']);
|
||||
}
|
||||
$reslut = model('box')->delete_box_config($bid);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//批量删除宝箱信息
|
||||
public function batch_delete_box_config(){
|
||||
//二级密码
|
||||
$pass = input('pass', '');
|
||||
$check_pass = model('admin/admin')->check_secondary_password($pass);
|
||||
if($check_pass['code'] == 201){
|
||||
return ajaxReturn($check_pass['code'], $check_pass['msg'], $check_pass['data']);
|
||||
}
|
||||
$data = input('info');
|
||||
$reslut = model('box')->batch_delete_box_config($data);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
//查看每期奖池列表
|
||||
public function get_box_log_list()
|
||||
{
|
||||
$tid = input('tid', 0);
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Box')->get_box_log_list($tid, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
//获取用户开奖记录
|
||||
public function get_user_box_log_list()
|
||||
{
|
||||
$uid = input('uid', 0);
|
||||
$bl_id = input('bl_id', 0);
|
||||
$gid = input('gid', 0);
|
||||
$tid = input('tid', 0);
|
||||
$start = input('start', '');
|
||||
$end = input('end', '');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Box')->get_user_box_log_list($uid, $bl_id, $gid, $tid, $start, $end, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
$data['totalRow'] = $reslut['data']['totalRow'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
|
||||
//获取用户开奖记录
|
||||
public function get_user_box_count_list()
|
||||
{
|
||||
$uid = input('uid', 0);
|
||||
$out_amount = input('out_amount', 0);
|
||||
$last_login_device = input('last_login_device','');
|
||||
$profit = input('profit',0);
|
||||
$tid = input('tid',0);
|
||||
$add_time = input('add_time','');
|
||||
$order = input('order', 'a.update_time');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Box')->get_user_box_count_list($uid, $out_amount, $last_login_device, $profit, $tid, $add_time, $order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
$data['totalRow'] = $reslut['data']['totalRow'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取用户开奖记录
|
||||
public function get_box_give_gift_list()
|
||||
{
|
||||
$uid = input('uid', 0);
|
||||
$gid = input('gid', 0);
|
||||
$gift_name = input('gift_name', '');
|
||||
$give_status = input('give_status',0);
|
||||
$deduction_status = input('deduction_status',0);
|
||||
$start = input('start', '');
|
||||
$give = input('give', '');
|
||||
$deduction = input('deduction', '');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('BoxGiveGift')->get_box_give_gift_list($uid, $gid, $gift_name, $give_status, $deduction_status, $start, $give, $deduction, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
//添加
|
||||
public function add_give_gift()
|
||||
{
|
||||
$data = Request::only(['uid', 'tid', 'gid']);
|
||||
//二级密码
|
||||
$pass = input('secondary_password', '');
|
||||
$check_pass = model('admin/admin')->check_secondary_password($pass);
|
||||
if($check_pass['code'] == 201){
|
||||
return ajaxReturn($check_pass['code'], $check_pass['msg'], $check_pass['data']);
|
||||
}
|
||||
$reslut = model('BoxGiveGift')->add_give_gift($data);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
public function cancel_give_gift()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$reslut = model('BoxGiveGift')->cancel_give_gift($id);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//用户个池统计
|
||||
public function get_box_person_log_list() {
|
||||
$uid = input('user_id', 0);
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$box_type = input('tid',0);
|
||||
$reslut = model('Box')->get_box_person_log_list($box_type, $uid, $page, $limit);
|
||||
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//清空积攒金额
|
||||
public function accumulate_del(){
|
||||
$reslut = model('Box')->accumulate_del();
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//获取房间开奖统计
|
||||
public function get_room_box_count_list(){
|
||||
$uid = input('uid',0);
|
||||
$out_amount = input('out_amount','');
|
||||
$tid = input('tid',0);
|
||||
$add_time = input('add_time','');
|
||||
$order = input('order', 'a.update_time');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Box')->get_room_box_count_list($uid, $out_amount, $tid, $add_time, $order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
$data['totalRow'] = $reslut['data']['totalRow'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取房间开奖统计
|
||||
public function get_room_box_counts_list(){
|
||||
$uid = input('uid',0);
|
||||
$out_amount = input('out_amount','');
|
||||
$order = input('order', 'a.profit');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Box')->get_room_box_counts_list($uid, $out_amount, $order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
$data['totalRow'] = $reslut['data']['totalRow'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
}
|
||||
307
application/admin/controller/Capital.php
Normal file
307
application/admin/controller/Capital.php
Normal file
@@ -0,0 +1,307 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
use think\Controller;
|
||||
use think\Db;
|
||||
|
||||
class Capital extends Common
|
||||
{
|
||||
//获取资金改变类型
|
||||
public function get_change_type()
|
||||
{
|
||||
$data = model('UserMoneyLog')->ChangeTypeLable();
|
||||
return ajaxReturn(200, '', $data);
|
||||
}
|
||||
//获取资金类型
|
||||
public function get_money_type()
|
||||
{
|
||||
$data = model('UserMoneyLog')->MoneyTypeLable();
|
||||
return ajaxReturn(200, '', $data);
|
||||
}
|
||||
|
||||
|
||||
//获取资金日志列表
|
||||
public function user_money_log()
|
||||
{
|
||||
$uid = input('uid', 0);
|
||||
$nick_name = input('nick_name', 0);
|
||||
$change_type = input('change_type', 0);
|
||||
$money_type = input('money_type', '');
|
||||
$change_value = input('change_value', '');
|
||||
$from_id = input('from_id', 0);
|
||||
$from_uid = input('from_uid', 0);
|
||||
$order = input('order', 'a.log_id');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Capital')->user_money_log($uid, $nick_name, $change_type, $money_type, $change_value, $from_id, $from_uid, $order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
$data['totalRow'] = $reslut['data']['totalRow'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取充值订单
|
||||
public function user_recharge()
|
||||
{
|
||||
$rid = input('rid', 0);
|
||||
$order_sn = input('order_sn', 0);
|
||||
$uid = input('uid', 0);
|
||||
$nick_name = input('nick_name', '');
|
||||
$money = input('money', '');
|
||||
$pay_type = input('pay_type', 0);
|
||||
$pay_status = input('pay_status', 0);
|
||||
$start = input('start', '');
|
||||
$end = input('end', '');
|
||||
$order = input('order', 'a.rid');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Capital')->user_recharge($rid, $order_sn, $uid, $nick_name, $money, $pay_type, $pay_status, $start, $end, $order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
$data['totalRow'] = $reslut['data']['totalRow'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取提现订单 列表
|
||||
public function user_withdrawal()
|
||||
{
|
||||
$wid = input('wid', 0);
|
||||
$order_sn = input('order_sn', 0);
|
||||
$uid = input('uid', 0);
|
||||
$nick_name = input('nick_name', '');
|
||||
$money = input('money', '');
|
||||
$alipay_name = input('alipay_name', 0);
|
||||
$status = input('status', 0);
|
||||
$alipay_account = input('alipay_account', 0);
|
||||
$order = input('order', 'a.wid');
|
||||
|
||||
|
||||
|
||||
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
|
||||
|
||||
$withdrawal_type = input('withdrawal_type', 0);
|
||||
|
||||
$bank_card_number = input('bank_card_number', '');
|
||||
|
||||
$type = input('type', 0);
|
||||
$deal_type = input('deal_type', 0);
|
||||
|
||||
$reslut = model('Capital')->user_withdrawal($wid, $order_sn, $uid, $nick_name, $money, $alipay_name, $status, $alipay_account, $order, $sort, $page, $limit,$withdrawal_type,$bank_card_number,$type,$deal_type);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
$data['totalRow'] = $reslut['data']['totalRow'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//修改提现订单
|
||||
public function user_withdrawal_edit()
|
||||
{
|
||||
$wid = input('wid', 0);
|
||||
$status = input('status');
|
||||
$remarke = input('remarke');
|
||||
$deal_type = input('deal_type',0);
|
||||
$data = model('Capital')->user_withdrawal_edit($wid, $status, $remarke, $deal_type);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//修改提现订单
|
||||
public function user_withdrawal_edit_bank()
|
||||
{
|
||||
$wid = input('wid', 0);
|
||||
$status = input('status');
|
||||
$remarke = input('remarke');
|
||||
$withd_type = input('withd_type',0);
|
||||
$transfer_type = input('transfer_type',0);
|
||||
|
||||
$key_name = "api:user_withdrawal_edit_ss7" ;
|
||||
redis_lock_exit($key_name,3);
|
||||
$data = model('Capital')->user_withdrawal_edit_bank($wid, $status, $remarke,$withd_type,$transfer_type);
|
||||
redis_unlock($key_name);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//获取提现订单详情
|
||||
public function user_withdrawal_info()
|
||||
{
|
||||
$wid = input('wid', 0);
|
||||
$reslut = model('Capital')->user_withdrawal_info($wid);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['data'] = $reslut['data'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取兑换记录 列表
|
||||
public function user_exchange()
|
||||
{
|
||||
$eid = input('eid', 0);
|
||||
$uid = input('uid', 0);
|
||||
$nick_name = input('nick_name', 0);
|
||||
$money = input('money', '');
|
||||
$integral = input('integral', '');
|
||||
$order = input('order', 'a.eid');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Capital')->user_exchange($eid, $uid, $nick_name, $money, $integral, $order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
$data['totalRow'] = $reslut['data']['totalRow'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取用户赠送礼物记录 列表
|
||||
public function user_send_gift()
|
||||
{
|
||||
$uid = input('uid', 0);
|
||||
$room_id = input('room_id', 0);
|
||||
$room_uid = input('room_uid', 0);
|
||||
$receive_uid = input('receive_uid', '');
|
||||
$gid = input('gid', '');
|
||||
$gift_name = input('gift_name', 0);
|
||||
$gift_from_type = input('gift_from_type', 0);
|
||||
$is_tester = input('is_tester', 0);
|
||||
$start = input('start', '');
|
||||
$end = input('end', '');
|
||||
$order = input('order', 'a.sid');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Capital')->user_send_gift($uid, $room_id, $room_uid, $receive_uid, $gid, $gift_name, $gift_from_type, $is_tester, $start, $end, $order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
$data['totalRow'] = $reslut['data']['totalRow'];
|
||||
|
||||
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取房间流水 列表
|
||||
public function room_money_log()
|
||||
{
|
||||
|
||||
$rid = input('rid', 0);
|
||||
$room_number = input('room_number', 0);
|
||||
$room_name = input('room_name', '');
|
||||
$time1 = input('time1', '');
|
||||
$time2 = input('time2', 0);
|
||||
|
||||
$order = input('order', 'a.sid');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Capital')->room_money_log($rid, $room_number, $room_name, $time1, $time2, $order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
$data['totalRow'] = $reslut['data']['totalRow'];
|
||||
return json($data);
|
||||
}
|
||||
//获取房间流水 列表
|
||||
public function room_account_log()
|
||||
{
|
||||
|
||||
$rid = input('rid', 0);
|
||||
$room_number = input('room_number', 0);
|
||||
$room_name = input('room_name', '');
|
||||
$time1 = input('time1', '');
|
||||
$time2 = input('time2', 0);
|
||||
|
||||
$order = input('order', 'a.sid');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$cate_id = input('cate_id', 0);
|
||||
$reslut = model('Capital')->room_account_log($rid, $room_number, $room_name, $time1, $time2, $order, $sort, $cate_id, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//财务统计
|
||||
public function financial_statistics(){
|
||||
$uid = input('uid', 0);
|
||||
$start = input('time1', '');
|
||||
$end = input('time2', '');
|
||||
$reslut = model('Capital')->financial_statistics($uid, $start, $end);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
|
||||
|
||||
//提现提交云账号
|
||||
public function sumbit_yun()
|
||||
{
|
||||
$password = input('password', '');
|
||||
$wid = input('wid', 0);
|
||||
$key_name = "admin:capital:sumbit_yun:wid:" . $wid;
|
||||
redis_lock_exit($key_name);
|
||||
$result = model('Capital')->submit_yun($wid, $password);
|
||||
redis_unlock($key_name);
|
||||
ajaxReturn($result['code'], $result['msg'], $result['data']);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
371
application/admin/controller/Cli.php
Normal file
371
application/admin/controller/Cli.php
Normal file
@@ -0,0 +1,371 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
use think\Controller;
|
||||
|
||||
class Cli extends Common
|
||||
{
|
||||
//关闭陪玩订单
|
||||
public function close_palyer_order()
|
||||
{
|
||||
$key_name = "admin:cli:close_palyer_order";
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('UserPlayerOrder')->close_palyer_order();
|
||||
echo $reslut;
|
||||
redis_unlock($key_name);
|
||||
}
|
||||
//清理过期装扮
|
||||
public function clear_user_decorate()
|
||||
{
|
||||
$key_name = "admin:cli:clear_user_decorate";
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('Decorate')->clear_user_decorate();
|
||||
echo $reslut;
|
||||
redis_unlock($key_name);
|
||||
}
|
||||
//监听结束房间PK状态 可以5秒执行一次 最好每秒执行一次
|
||||
public function close_room_pk()
|
||||
{
|
||||
$key_name = "admin:cli:close_room_pk";
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('api/Room')->close_room_pk();
|
||||
redis_unlock($key_name);
|
||||
// return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
echo date('Y-m-d H:i:s') . "监控房间PK 执行成功\r\n";
|
||||
}
|
||||
|
||||
//刷新麦位信息 websocket 服务调用
|
||||
public function push_micro_data()
|
||||
{
|
||||
$rid = input('rid', 0);
|
||||
$push_data = [];
|
||||
$push_data['code'] = 301;
|
||||
$push_data['msg'] = "房间麦位信息";
|
||||
$data = model('api/room')->get_room_micro_info($rid);
|
||||
$push_data['data'] = $data['data'];
|
||||
model('api/WebSocketPush')->send_to_group($rid, $push_data);
|
||||
}
|
||||
//用户退出房间 websokcet 服务调用
|
||||
public function user_enter_room()
|
||||
{
|
||||
|
||||
$rid = input('rid', 0);
|
||||
$uid = input('uid', 0);
|
||||
$key_name = "admin:cli:user_quit_room:rid:$rid:uid:$uid";
|
||||
// error_log("进入直播间:$rid----$uid---\r\n", 3, "my-errors.log");
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('api/room')->user_enter_room($uid, $rid);
|
||||
redis_unlock($key_name);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
//用户退出房间 websokcet 服务调用
|
||||
public function user_quit_room()
|
||||
{
|
||||
|
||||
$rid = input('rid', 0);
|
||||
$uid = input('uid', 0);
|
||||
// error_log("退出直播间:$rid----$uid---\r\n", 3, "my-errors.log");
|
||||
$key_name = "admin:cli:user_quit_room:rid:$rid:uid:$uid";
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('api/room')->quit_room($uid, $rid);
|
||||
redis_unlock($key_name);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
//监控宝箱状态 设置5s 监控一次
|
||||
public function control_box()
|
||||
{
|
||||
$key_name = "admin:cli:control_box";
|
||||
$tid = input('tid', 0);
|
||||
$is_reset = input('is_reset', 0);
|
||||
redis_lock_exit($key_name,20);
|
||||
$reslut = model('admin/box')->control_generate_box($tid, $is_reset);
|
||||
redis_unlock($key_name);
|
||||
if($is_reset){
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}else{
|
||||
echo date('Y-m-d H:i:s') . "监控奖池 执行成功" . $reslut['data'] . "\r\n";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//监控宝箱状态 设置5s 监控一次
|
||||
public function controls_box()
|
||||
{
|
||||
$key_name = "admin:cli:control_box";
|
||||
$tid = input('tid', 0);
|
||||
$is_reset = input('is_reset', 0);
|
||||
//二级密码
|
||||
$pass = input('pass', '');
|
||||
$check_pass = model('admin/admin')->check_secondary_password($pass);
|
||||
if($check_pass['code'] == 201){
|
||||
return ajaxReturn($check_pass['code'], $check_pass['msg'], $check_pass['data']);
|
||||
}
|
||||
redis_lock_exit($key_name,20);
|
||||
$reslut = model('admin/box')->control_generate_box($tid, $is_reset);
|
||||
redis_unlock($key_name);
|
||||
if($is_reset){
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}else{
|
||||
echo date('Y-m-d H:i:s') . "监控奖池 执行成功" . $reslut['data'] . "\r\n";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//监控宝箱状态 设置5s 监控一次
|
||||
public function control_boxs()
|
||||
{
|
||||
$key_name = "admin:cli:control_boxs";
|
||||
$tid = input('tid', 0);
|
||||
$is_reset = input('is_reset', 0);
|
||||
redis_lock_exit($key_name,20);
|
||||
$reslut = model('admin/box')->control_generate_boxs($tid, $is_reset);
|
||||
redis_unlock($key_name);
|
||||
if($is_reset){
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}else{
|
||||
echo date('Y-m-d H:i:s') . "监控奖池 执行成功" . $reslut['data'] . "\r\n";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
//监控个人宝箱状态 设置5s 监控一次
|
||||
// public function person_control_box()
|
||||
// {
|
||||
// $tid = input('tid',0);
|
||||
// $key_name = "admin:cli:person_control_box:".$tid;
|
||||
// redis_lock_exit($key_name,600);
|
||||
// $reslut = model('admin/box')->control_person_box($tid);
|
||||
// redis_unlock($key_name);
|
||||
// echo date('Y-m-d H:i:s') . "监控奖池 执行成功" . $reslut['data'] . "\r\n";
|
||||
// }
|
||||
|
||||
//清理房间当天热度
|
||||
public function clear_room_hot_value(){
|
||||
$key_name = "admin:cli:clear_room_hot_value";
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('api/room')->clear_room_hot_value();
|
||||
redis_unlock($key_name);
|
||||
echo date('Y-m-d H:i:s') . "清除房间当天热度 执行成功"." \r\n";
|
||||
}
|
||||
|
||||
//监控个人宝箱状态 设置5s 监控一次
|
||||
// public function control_user_box()
|
||||
// {
|
||||
// $tid = input('tid',0);
|
||||
// $uid = input('uid',0);
|
||||
// $key_name = "admin:cli:control_user_box:".$tid.':'.$uid;
|
||||
// redis_lock_exit($key_name);
|
||||
// $reslut = model('admin/box')->control_user_box($uid,$tid);
|
||||
// redis_unlock($key_name);
|
||||
// echo date('Y-m-d H:i:s') . "监控奖池 执行成功" . $reslut['data'] . "\r\n";
|
||||
// }
|
||||
|
||||
public function user_clear_box(){
|
||||
$tid = input('tid',0);
|
||||
$key_name = "admin:cli:user_clear_box";
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('admin/box')->user_clear_box($tid);
|
||||
redis_unlock($key_name);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
|
||||
public function control_accumulate_box(){
|
||||
$key_name = "admin:cli:control_accumulate_box";
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('admin/box')->control_accumulate_box();
|
||||
redis_unlock($key_name);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
public function control_user_box(){
|
||||
$key_name = "admin:cli:control_user_box";
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('admin/box')->control_user_box();
|
||||
redis_unlock($key_name);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
//异步推送送礼物
|
||||
public function async_push_message()
|
||||
{
|
||||
$reslut = model('api/AsyncPushMessage')->send_message();
|
||||
}
|
||||
|
||||
|
||||
/*******************************定时任务*************************************/
|
||||
|
||||
//定时查询签约是否结束进行解约
|
||||
public function close_user_sign_contract(){
|
||||
$key_name = "admin:cli:close_user_sign_contract";
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('api/UserSignContract')->close_user_sign_contract();
|
||||
redis_unlock($key_name);
|
||||
|
||||
}
|
||||
|
||||
//定时清理到期心动连线
|
||||
public function close_room_dating_stage(){
|
||||
$key_name = "admin:cli:close_room_dating_stage";
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('api/DatingRoom')->close_room_dating_stage();
|
||||
redis_unlock($key_name);
|
||||
echo date('Y-m-d H:i:s') . "监控心动连线倒计时 执行成功" . $reslut['code'] . "\r\n";
|
||||
}
|
||||
|
||||
//定时清理到期私密小屋
|
||||
public function close_room_privacy_status(){
|
||||
$key_name = "api:cli:close_room_privacy_status";
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('api/DatingRoom')->close_room_privacy_status();
|
||||
redis_unlock($key_name);
|
||||
echo date('Y-m-d H:i:s') . "监控私密小屋倒计时 执行成功" . $reslut['code'] . "\r\n";
|
||||
}
|
||||
|
||||
//定时更新到期游客记录
|
||||
public function close_room_visitor(){
|
||||
$key_name = "admin:cli:close_room_visitor";
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('api/RoomVisitor')->close_room_visitor();
|
||||
redis_unlock($key_name);
|
||||
|
||||
}
|
||||
|
||||
//定时结束唱歌时间
|
||||
public function colse_room_song_user_status(){
|
||||
$key_name = "admin:cli:colse_room_song_user_status";
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('api/KtvRoom')->colse_room_song_user_status();
|
||||
redis_unlock($key_name);
|
||||
|
||||
}
|
||||
|
||||
//定时清除用户关系
|
||||
public function close_user_relation(){
|
||||
$key_name = "admin:cli:close_user_relation";
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('api/DatingRoom')->close_user_relation();
|
||||
redis_unlock($key_name);
|
||||
|
||||
}
|
||||
|
||||
//统计上周房间流水
|
||||
public function statistics_room_last_week_earnings(){
|
||||
$type = input('type', 0);
|
||||
$key_name = "admin:cli:statistics_room_last_week_earnings:type:".$type;
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('api/RoomSubsidy')->statistics_room_last_week_earnings($type);
|
||||
redis_unlock($key_name);
|
||||
|
||||
}
|
||||
|
||||
//发送用户收益
|
||||
public function give_user_room_week_earnings(){
|
||||
$type = input('type', 0);
|
||||
$key_name = "admin:cli:give_user_room_week_earnings:type:".$type;
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('api/RoomSubsidy')->give_user_room_week_earnings($type);
|
||||
redis_unlock($key_name);
|
||||
}
|
||||
|
||||
//统计用户收益
|
||||
public function gives_user_room_week_earnings(){
|
||||
$type = input('type', 0);
|
||||
$key_name = "admin:cli:gives_user_room_week_earnings:type:".$type;
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('api/RoomSubsidy')->gives_user_room_week_earnings($type);
|
||||
redis_unlock($key_name);
|
||||
}
|
||||
|
||||
//统计上周公会流水
|
||||
public function statistics_guild_last_week_earnings(){
|
||||
$type = input('type', 0);
|
||||
$key_name = "admin:cli:statistics_guild_last_week_earnings:type:".$type;
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('api/GuildSubsidy')->statistics_guild_last_week_earnings($type);
|
||||
redis_unlock($key_name);
|
||||
|
||||
}
|
||||
|
||||
//统计公会长收益
|
||||
public function gives_user_guild_week_earnings(){
|
||||
$type = input('type', 0);
|
||||
$key_name = "admin:cli:gives_user_guild_week_earnings:type:".$type;
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('api/GuildSubsidy')->gives_user_guild_week_earnings($type);
|
||||
redis_unlock($key_name);
|
||||
}
|
||||
|
||||
//定时关闭没有主持房间
|
||||
public function close_room_status(){
|
||||
$key_name = "admin:cli:close_room_status";
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('api/RoomMicro')->close_room_status();
|
||||
redis_unlock($key_name);
|
||||
}
|
||||
|
||||
//到期会员清除
|
||||
public function close_user_vip(){
|
||||
$key_name = "admin:cli:close_user_vip";
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('api/Vip')->close_user_vip();
|
||||
redis_unlock($key_name);
|
||||
|
||||
}
|
||||
|
||||
//解约用户每天降低身价
|
||||
public function relieve_user_sign_contract(){
|
||||
$key_name = "admin:cli:relieve_user_sign_contract";
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('api/UserSignContract')->relieve_user_sign_contract();
|
||||
redis_unlock($key_name);
|
||||
}
|
||||
|
||||
//监控仲夏夜梦曲
|
||||
public function create_sprite_log(){
|
||||
$key_name = "admin:cli:create_sprite_log";
|
||||
redis_lock_exit($key_name,1,1);
|
||||
$reslut = model('api/Sprite')->create_sprite_log();
|
||||
redis_unlock($key_name);
|
||||
if($reslut['code'] == 201){
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}else{
|
||||
echo date('Y-m-d H:i:s') . "监控仲夏夜梦曲 执行成功" . $reslut['data'] . "\r\n";
|
||||
}
|
||||
}
|
||||
|
||||
//监控仲夏夜梦曲结算用户投票
|
||||
public function close_user_sprite(){
|
||||
$key_name = "admin:cli:close_user_sprite";
|
||||
redis_lock_exit($key_name,1,1);
|
||||
$reslut = model('api/Sprite')->close_user_sprite();
|
||||
redis_unlock($key_name);
|
||||
if($reslut['code'] == 201){
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}else{
|
||||
echo date('Y-m-d H:i:s') . "监控仲夏夜梦曲结算用户投票 执行成功" . $reslut['data'] . "\r\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public function close_auction_pm(){
|
||||
$key_name = "admin:cli:close_auction_pm";
|
||||
$data = model('api/AuctionRoom')->close_auction_pm();
|
||||
redis_unlock($key_name);
|
||||
return ajaxReturn($data['code'], $data['msg'], $data['data']);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
93
application/admin/controller/Common.php
Normal file
93
application/admin/controller/Common.php
Normal file
@@ -0,0 +1,93 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
use think\Controller;
|
||||
use think\Db;
|
||||
|
||||
class Common extends Controller
|
||||
{
|
||||
public $aid;
|
||||
public function initialize()
|
||||
{
|
||||
header('Access-Control-Allow-Origin: *');
|
||||
|
||||
// ajaxReturn(301, '系统维护');
|
||||
$login_token = input('login_token', 0);
|
||||
$reslut = model('Admin')->check_login_token($login_token);
|
||||
if ($reslut['code'] == 201) {
|
||||
return ajaxReturn(301, $reslut['msg'], $reslut['data']);
|
||||
} else {
|
||||
$this->aid = $reslut['data'];
|
||||
}
|
||||
|
||||
$check_ip = $this->check_ip();
|
||||
if($check_ip['code'] == 201){
|
||||
db::name('admin')->where('aid', $this->aid)->update(['login_token' => '']);
|
||||
return ajaxReturn(301, $check_ip['msg'], $check_ip['data']);
|
||||
}
|
||||
|
||||
$header = request()->header();
|
||||
if(!isset($header['referer'])){
|
||||
return ajaxReturn(301, '登录失效', $reslut['data']);
|
||||
}
|
||||
|
||||
add_operation(1, $this->aid); //用户行为日志
|
||||
}
|
||||
public function check_login_status()
|
||||
{
|
||||
$user_name = Db::name("admin")->where(array("aid" => $this->aid))->value("user_name");
|
||||
$data['data'] = $user_name;
|
||||
$check_ip = $this->check_ip();
|
||||
if($check_ip['code'] == 201){
|
||||
db::name('admin')->where('aid', $this->aid)->update(['login_token' => '']);
|
||||
return ajaxReturn(301, $check_ip['msg'], $check_ip['data']);
|
||||
}
|
||||
ajaxReturn(1, '登录成功', $data);
|
||||
}
|
||||
public function get_menu_list()
|
||||
{
|
||||
$data = model('SystemMenu')->getSystemInit($this->aid);
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//限制ip
|
||||
public function check_ip(){
|
||||
$check_ip = request()->ip();
|
||||
if($check_ip){
|
||||
// $check_ip = explode('.',$check_ip);
|
||||
// $check_ip = $check_ip[0].'.'.$check_ip[1];
|
||||
// $ip = array(
|
||||
// '61.52',
|
||||
// '219.157',
|
||||
// '113.137',
|
||||
// '117.37',
|
||||
// '123.149',
|
||||
// '125.41',
|
||||
// '115.60',
|
||||
// '113.141',
|
||||
// '221.15',
|
||||
// '36.46',
|
||||
// '113.137',
|
||||
// '123.53',
|
||||
// '1.198',
|
||||
// '111.18',
|
||||
// '1.193',
|
||||
// '119.137',
|
||||
// '111.19'
|
||||
// );
|
||||
// if(!in_array($check_ip,$ip)){
|
||||
// return ['code' => 201, 'msg' => 'ip不匹配无法登陆!', 'data'=>null];
|
||||
// }
|
||||
$check_ips = has_ip();
|
||||
if(!$check_ips){
|
||||
return ['code' => 201, 'msg' => 'ip不匹配无法登陆!', 'data'=>null];
|
||||
}
|
||||
}else{
|
||||
return ['code' => 201, 'msg' => 'ip不匹配无法登陆!', 'data'=>null];
|
||||
}
|
||||
return ['code' => 200, 'msg' => 'ip可登陆', 'data'=>null];
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
78
application/admin/controller/Config.php
Normal file
78
application/admin/controller/Config.php
Normal file
@@ -0,0 +1,78 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
use think\Controller;
|
||||
|
||||
class Config extends Common
|
||||
{
|
||||
|
||||
|
||||
//获取系统配置
|
||||
public function config_list()
|
||||
{
|
||||
$cid = input('cid', 0);
|
||||
$key_name = input('key_name', 0);
|
||||
$order = input('order', 'cid');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('config')->config_list($cid,$key_name,$order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取 配置 详情
|
||||
public function config_info()
|
||||
{
|
||||
$cid = input('cid', 0);
|
||||
$data = model('config')->config_info($cid);
|
||||
if ($data['code'] == 0) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
//编辑 配置
|
||||
public function edit_config()
|
||||
{
|
||||
$data = input('post.');
|
||||
$data = model('config')->edit_config($data);
|
||||
if ($data['code'] == 0) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//添加 配置
|
||||
public function add_config()
|
||||
{
|
||||
$data = input('post.');
|
||||
$data = model('config')->add_config($data);
|
||||
if ($data['code'] == 0) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//删除 配置
|
||||
public function del_config()
|
||||
{
|
||||
$cid = input('cid', 0);
|
||||
$data = model('config')->del_config($cid);
|
||||
if ($data['code'] == 0) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
265
application/admin/controller/Decorate.php
Normal file
265
application/admin/controller/Decorate.php
Normal file
@@ -0,0 +1,265 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
use think\Controller;
|
||||
use think\Request;
|
||||
|
||||
class Decorate extends Common
|
||||
{
|
||||
//获取装扮列表
|
||||
public function get_decorate_list()
|
||||
{
|
||||
$title = input('title', '');
|
||||
$type = input('type', 0);
|
||||
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('decorate')->get_decorate_list($title, $type, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
|
||||
//获取装扮列表
|
||||
public function get_decorates_list()
|
||||
{
|
||||
$reslut = model('decorate')->get_decorates_list();
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//修改装扮信息
|
||||
public function edit_decorate_info()
|
||||
{
|
||||
$did = input('did', 0);
|
||||
$title = input('title', ''); //所属分类
|
||||
$type = input('type', 0); //装扮类型
|
||||
$file_type = input('file_type', 1);
|
||||
$base_image = input('base_image', '');
|
||||
$play_image = input('play_image', '');
|
||||
$plays_image = input('plays_image', '');
|
||||
$show_status = input('show_status', 0); //所属分类
|
||||
$day = input('day', 0);
|
||||
$price = input('price', 0);
|
||||
$is_buy = input('is_buy', 1);
|
||||
$data = model('decorate')->edit_decorate_info($did, $title, $type, $base_image, $play_image, $show_status, $day, $price, $file_type, $plays_image,$is_buy);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//添加装扮
|
||||
|
||||
public function add_decorate_info()
|
||||
{
|
||||
|
||||
$title = input('title', ''); //所属分类
|
||||
$type = input('type', 0); //装扮类型
|
||||
$file_type = input('file_type', 1);
|
||||
$base_image = input('base_image', '');
|
||||
$play_image = input('play_image', '');
|
||||
$plays_image = input('plays_image', '');
|
||||
$day = input('day', 0);
|
||||
$price = input('price', 0);
|
||||
$show_status = input('show_status', 0);
|
||||
$is_buy = input('is_buy', 1);
|
||||
$data = model('decorate')->add_decorate_info($title, $type, $base_image, $play_image, $day, $price, $show_status, $file_type, $plays_image,$is_buy);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//获取装扮信息
|
||||
public function get_decorate_info()
|
||||
{
|
||||
$did = input('did', 0);
|
||||
$data = model('decorate')->get_decorate_info($did);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//删除装扮
|
||||
public function delete_decorate_info()
|
||||
{
|
||||
$did = input('did', 0);
|
||||
$data = model('decorate')->delete_decorate_info($did);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
//获取用户装扮列表
|
||||
public function get_user_decorate_list()
|
||||
{
|
||||
$uid = input('uid', 0);
|
||||
$did = input('did', 0);
|
||||
$type = input('type', 0);
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('decorate')->get_user_decorate_list($uid, $did, $type, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
//赠送用户装扮
|
||||
public function give_user_decorate()
|
||||
{
|
||||
$did = input('did', 0);
|
||||
$day = input('day', 0);
|
||||
$uid = input('uid', 0);
|
||||
$data = model('decorate')->give_user_decorate($uid, $did, $day);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
//删除用户赠送装扮
|
||||
public function delete_user_decorate()
|
||||
{
|
||||
$udid = input('udid', 0);
|
||||
$data = model('decorate')->delete_user_decorate($udid);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//用户头像装扮列表
|
||||
public function get_head_decorate_list(){
|
||||
$reslut = model('decorate')->get_head_decorate_list();
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//用户坐骑装扮列表
|
||||
public function get_mount_decorate_list(){
|
||||
$reslut = model('decorate')->get_mount_decorate_list();
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
public function get_cp_tx_list(){
|
||||
$reslut = model('decorate')->get_cp_tx_list();
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//用户cp资料装扮列表
|
||||
public function get_wind_decorate_list(){
|
||||
$reslut = model('decorate')->get_wind_decorate_list();
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取装扮价位列表
|
||||
public function get_decorate_price_list()
|
||||
{
|
||||
$did = input('did', 0);
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('decorate')->get_decorate_price_list($did, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//修改装扮价位信息
|
||||
public function edit_decorate_price()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$price = input('price', 0);
|
||||
$day = input('day', 0);
|
||||
$data = model('decorate')->edit_decorate_price($id, $price, $day);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//添加装扮价位
|
||||
public function add_decorate_price()
|
||||
{
|
||||
|
||||
$did = input('did', 0);
|
||||
$price = input('price', 0);
|
||||
$day = input('day', 0);
|
||||
$data = model('decorate')->add_decorate_price($did, $price, $day);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//获取装扮价位信息
|
||||
public function decorate_price_info()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$data = model('decorate')->decorate_price_info($id);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//删除装扮价位
|
||||
public function del_decorate_price()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$data = model('decorate')->del_decorate_price($id);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
68
application/admin/controller/Envelope.php
Normal file
68
application/admin/controller/Envelope.php
Normal file
@@ -0,0 +1,68 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
use think\Controller;
|
||||
|
||||
class Envelope extends Common
|
||||
{
|
||||
|
||||
//发红包列表
|
||||
public function give_red_envelope_list(){
|
||||
$id = input('id', 0);
|
||||
$tid = input('tid', 0);
|
||||
$type = input('type', 0);
|
||||
$uid = input('uid', 0);
|
||||
$order = input('order', 'id');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Envelope')->give_red_envelope_list($id, $tid, $type, $uid, $order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
$data['totalRow'] = $reslut['data']['totalRow'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
|
||||
//发红包
|
||||
public function give_red_envelope(){
|
||||
$tid = input('tid', 0);
|
||||
$aid = $this->aid;
|
||||
$num = input('num', 10);
|
||||
$secondary_password = input('secondary_password', '');
|
||||
$reslut = model('Envelope')->give_red_envelope($aid, $tid, $num, $secondary_password);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
|
||||
//抢红包记录
|
||||
public function get_user_red_envelope_log_list(){
|
||||
$rid = input('rid', 0);
|
||||
$room_number = input('room_number', 0);
|
||||
$room_name = input('room_name', '');
|
||||
$uid = input('uid', 0);
|
||||
$eid = input('eid', 0);
|
||||
$tid = input('tid', 0);
|
||||
$time1 = input('time1', '');
|
||||
$time2 = input('time2', 0);
|
||||
$order = input('order', 'id');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Envelope')->get_user_red_envelope_log_list($rid, $room_number, $room_name, $uid, $eid, $tid, $time1, $time2, $order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
$data['totalRow'] = $reslut['data']['totalRow'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
178
application/admin/controller/Gift.php
Normal file
178
application/admin/controller/Gift.php
Normal file
@@ -0,0 +1,178 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
use think\Controller;
|
||||
|
||||
class Gift extends Common
|
||||
{
|
||||
|
||||
|
||||
//获取礼物列表
|
||||
public function gift_list()
|
||||
{
|
||||
$gid = input('gid', 0);
|
||||
$gift_name = input('gift_name', 0);
|
||||
$gift_price = input('gift_price', '');
|
||||
$is_public_screen = input('is_public_screen', '');
|
||||
$is_public_server = input('is_public_server', '');
|
||||
$is_show = input('is_show', '');
|
||||
$is_can_buy = input('is_can_buy', '');
|
||||
$type = input('type', 0);
|
||||
$order = input('order', 'gid');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Gift')->gift_list($gid, $gift_name, $gift_price, $is_public_screen, $is_public_server, $is_show, $is_can_buy, $order, $sort, $page, $limit, $type);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取 礼物 详情
|
||||
public function gift_info()
|
||||
{
|
||||
$gid = input('gid', 0);
|
||||
$data = model('Gift')->gift_info($gid);
|
||||
if ($data['code'] == 0) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
//编辑 礼物
|
||||
public function edit_gift()
|
||||
{
|
||||
$data = input('post.');
|
||||
//二级密码
|
||||
$pass = input('secondary_password', '');
|
||||
$check_pass = model('admin/admin')->check_secondary_password($pass);
|
||||
if($check_pass['code'] == 201){
|
||||
return ajaxReturn($check_pass['code'], $check_pass['msg'], $check_pass['data']);
|
||||
}
|
||||
unset($data['secondary_password']);
|
||||
$data = model('Gift')->edit_gift($data);
|
||||
if ($data['code'] == 0) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//添加 礼物
|
||||
public function add_gift()
|
||||
{
|
||||
$data = input('post.');
|
||||
$data = model('Gift')->add_gift($data);
|
||||
if ($data['code'] == 0) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//删除 礼物
|
||||
public function del_gift()
|
||||
{
|
||||
$bid = input('gid', 0);
|
||||
$data = model('Gift')->del_gift($bid);
|
||||
if ($data['code'] == 0) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//批量删除礼物
|
||||
public function batch_delete_gift(){
|
||||
$data = input('info');
|
||||
$reslut = model('Gift')->batch_delete_gift($data);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//礼物位置
|
||||
public function get_gift_position_list(){
|
||||
$order = input('order', 'id');
|
||||
$sort = input('sort', 'asc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Gift')->get_gift_position_list($order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
|
||||
}
|
||||
|
||||
//获取
|
||||
public function get_privacy_gift_list()
|
||||
{
|
||||
$gid = input('gid', 0);
|
||||
$order = input('order', 'id');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Gift')->get_privacy_gift_list($gid, $order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取 详情
|
||||
public function get_privacy_gift_info()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$reslut = model('Gift')->get_privacy_gift_info($id);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
//编辑
|
||||
public function edit_privacy_gift()
|
||||
{
|
||||
$data = input('post.');
|
||||
$reslut = model('Gift')->edit_privacy_gift($data);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//添加
|
||||
public function add_privacy_gift()
|
||||
{
|
||||
$data = input('post.');
|
||||
$reslut = model('Gift')->add_privacy_gift($data);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//删除
|
||||
public function del_privacy_gift()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$reslut = model('Gift')->del_privacy_gift($id);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//获取
|
||||
public function get_optional_gift_list()
|
||||
{
|
||||
$gid = input('gid', 0);
|
||||
$order = input('order', 'gid');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Gift')->get_optional_gift_list($gid, $order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
313
application/admin/controller/Guild.php
Normal file
313
application/admin/controller/Guild.php
Normal file
@@ -0,0 +1,313 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
use think\Controller;
|
||||
|
||||
class Guild extends Common
|
||||
{
|
||||
|
||||
|
||||
//获取公会列表
|
||||
public function guild_list()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$guild_name = input('guild_name', 0);
|
||||
$order = input('order', 'id');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$jie_shan = input('jie_shan', 2);;
|
||||
|
||||
$reslut = model('Guild')->guild_list($id, $guild_name, $order, $sort, $page, $limit , $jie_shan);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取 公会 详情
|
||||
public function guild_info()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$reslut = model('Guild')->guild_info($id);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
//编辑 公会
|
||||
public function edit_guild()
|
||||
{
|
||||
$data = input('post.');
|
||||
$reslut = model('Guild')->edit_guild($data);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//添加 公会
|
||||
public function add_guild()
|
||||
{
|
||||
$data = input('post.');
|
||||
$reslut = model('Guild')->add_guild($data);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
|
||||
//删除 公会
|
||||
public function del_guild()
|
||||
{
|
||||
$bid = input('id', 0);
|
||||
$reslut = model('Guild')->del_guild($bid);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//批量删除公会
|
||||
public function batch_delete_guild(){
|
||||
$data = input('info');
|
||||
$reslut = model('Guild')->batch_delete_guild($data);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//用户公会信息
|
||||
public function user_guild_info(){
|
||||
$id = input('id', 0);
|
||||
$reslut = model('Guild')->user_guild_info($id);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//编辑用户公会信息
|
||||
public function edit_user_guild(){
|
||||
$data = input('post.');
|
||||
$reslut = model('Guild')->edit_user_guild($data);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
|
||||
}
|
||||
|
||||
|
||||
//设置公会是否显示
|
||||
public function set_is_show()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$is_show = input('is_show', 0);
|
||||
if(!in_array($is_show, [1,2])) {
|
||||
ajaxReturn(201, '显示参数错误', '');
|
||||
}
|
||||
$result = model('Guild')->set_is_show($id, $is_show);
|
||||
ajaxReturn($result['code'], $result['msg'], $result['data']);
|
||||
}
|
||||
//公会成员
|
||||
public function get_user_guild_list(){
|
||||
$id = input('id', 0);
|
||||
$uid = input('uid', 0);
|
||||
$order = input('order', 'id');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Guild')->get_user_guild_list($id, $uid, $order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//公会流水排行
|
||||
public function get_guild_rank_list(){
|
||||
$id = input('id', 0);
|
||||
$start = input('start', '');
|
||||
$end = input('end', '');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 15);
|
||||
$order = input('order', 'b.total_gift_total_price');
|
||||
$sort = input('sort', 'desc');
|
||||
$result = model('Guild')->get_guild_rank_list($id, $start, $end, $order, $sort, $page, $limit);
|
||||
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $result['data']['count'];
|
||||
$data['data'] = $result['data']['list'];
|
||||
// $data['totalRow'] = $result['data']['totalRow'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//公会成员流水排行
|
||||
public function get_guild_user_rank_list(){
|
||||
$guild_id = input('guild_id', 0);
|
||||
$uid = input('uid', 0);
|
||||
$start = input('start', '');
|
||||
$end = input('end', '');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 15);
|
||||
$order = input('order', 'b.total_gift_total_price');
|
||||
$sort = input('sort', 'desc');
|
||||
$result = model('Guild')->get_guild_user_rank_list($guild_id, $uid, $start, $end, $order, $sort, $page, $limit);
|
||||
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $result['data']['count'];
|
||||
$data['data'] = $result['data']['list'];
|
||||
// $data['totalRow'] = $result['data']['totalRow'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//公会房间流水排行
|
||||
public function get_guild_room_rank_list(){
|
||||
$guild_id = input('guild_id', 0);
|
||||
$room_number = input('room_number', 0);
|
||||
$start = input('start', '');
|
||||
$end = input('end', '');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 15);
|
||||
$order = input('order', 'b.total_gift_total_price');
|
||||
$sort = input('sort', 'desc');
|
||||
$result = model('Guild')->get_guild_room_rank_list($guild_id, $room_number, $start, $end, $order, $sort, $page, $limit);
|
||||
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $result['data']['count'];
|
||||
$data['data'] = $result['data']['list'];
|
||||
// $data['totalRow'] = $result['data']['totalRow'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//工会流水
|
||||
public function get_guild_money_list()
|
||||
{
|
||||
$guild_id = input('guild_id', 0);
|
||||
$start = input('start', '');
|
||||
$end = input('end', '');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 15);
|
||||
$order = input('order', 'a.add_time');
|
||||
$sort = input('sort', 'desc');
|
||||
$result = model('GuildMoneyLog')->get_list($guild_id,$start, $end, $page, $limit);
|
||||
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $result['data']['count'];
|
||||
$data['data'] = $result['data']['list'];
|
||||
$data['totalRow'] = $result['data']['totalRow'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//工会房间流水
|
||||
public function get_guild_room_money_list()
|
||||
{
|
||||
$guild_id = input('guild_id', 0);
|
||||
$rid = input('rid', 0);
|
||||
|
||||
$start = input('start', '');
|
||||
$end = input('end', '');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 15);
|
||||
$order = input('order', 'a.add_time');
|
||||
$sort = input('sort', 'desc');
|
||||
$result = model('GuildMoneyLog')->get_guild_room_money_log_list($guild_id,$rid, $start, $end, $page, $limit);
|
||||
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $result['data']['count'];
|
||||
$data['data'] = $result['data']['list'];
|
||||
$data['totalRow'] = $result['data']['totalRow'];
|
||||
return json($data);
|
||||
}
|
||||
//获取工会房间
|
||||
public function get_guild_room_list()
|
||||
{
|
||||
$guild_id = input('guild_id', 0);
|
||||
$data = model('GuildMoneyLog')->get_guild_room_list_by_guild_id($guild_id);
|
||||
ajaxReturn(200, '获取数据成功', $data);
|
||||
}
|
||||
|
||||
//获取列表
|
||||
public function give_guild_subsidy_list()
|
||||
{
|
||||
$guild_id = input('guild_id', 0);
|
||||
$uid = input('uid', 0);
|
||||
$is_fa = input('is_fa', 0);
|
||||
$start = input('start', '');
|
||||
$order = input('order', 'id');
|
||||
$sort = input('sort', 'desc');
|
||||
|
||||
$belong_week = input('belong_week', '');
|
||||
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Guild')->give_guild_subsidy_list($guild_id, $uid, $is_fa, $order, $sort, $page, $limit, $belong_week);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['totalRow'] = $reslut['data']['totalRow'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//批量结算
|
||||
public function batch_give_guild_subsidy(){
|
||||
//二级密码
|
||||
$pass = input('pass', '');
|
||||
$check_pass = model('admin/admin')->check_secondary_password($pass);
|
||||
if($check_pass['code'] == 201){
|
||||
return ajaxReturn($check_pass['code'], $check_pass['msg'], $check_pass['data']);
|
||||
}
|
||||
$reslut = model('Guild')->batch_give_guild_subsidy();
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//补贴详情
|
||||
public function get_give_guild_subsidy_info(){
|
||||
$id = input('id', 0);
|
||||
$reslut = model('Guild')->get_give_guild_subsidy_info($id);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
|
||||
}
|
||||
|
||||
//修改补贴
|
||||
public function edit_give_guild_subsidy(){
|
||||
//二级密码
|
||||
$pass = input('secondary_password', '');
|
||||
$check_pass = model('admin/admin')->check_secondary_password($pass);
|
||||
if($check_pass['code'] == 201){
|
||||
return ajaxReturn($check_pass['code'], $check_pass['msg'], $check_pass['data']);
|
||||
}
|
||||
$id = input('id', 0);
|
||||
$user_earnings = input('user_earnings', 0);
|
||||
$reslut = model('Guild')->edit_give_guild_subsidy($id, $user_earnings);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//解散公会
|
||||
public function diss_guild(){
|
||||
$guild_id = input('guild_id', '');
|
||||
$reslut = model('Guild')->diss_guild($guild_id);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
|
||||
//解散公会
|
||||
public function guild_combine(){
|
||||
$cancel_guild_id = input('cancel_guild_id', 0);
|
||||
$join_guild_id = input('join_guild_id', 0);
|
||||
$reslut = model('Guild')->guild_combine($cancel_guild_id,$join_guild_id);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
45
application/admin/controller/Message.php
Normal file
45
application/admin/controller/Message.php
Normal file
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
use think\Controller;
|
||||
|
||||
use think\facade\Request;
|
||||
|
||||
class Message extends Common
|
||||
{
|
||||
public function get_message_list()
|
||||
{
|
||||
$smid = input('smid', 0);
|
||||
$title = input('title', '');
|
||||
$order = input('order', 'smid');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Message')->get_message_list($smid, $title, $order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
public function get_message_info()
|
||||
{
|
||||
$smid = input('smid', 0);
|
||||
$reslut = model('Message')->get_message_info($smid);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
public function add_message()
|
||||
{
|
||||
$data = Request::only(['title', 'content']);
|
||||
$reslut = model('Message')->add_message($data);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
public function edit_message()
|
||||
{
|
||||
$data = Request::only(['smid', 'title', 'content', 'is_show']);
|
||||
$reslut = model('Message')->edit_message($data);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
}
|
||||
142
application/admin/controller/Monster.php
Normal file
142
application/admin/controller/Monster.php
Normal file
@@ -0,0 +1,142 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
use think\Controller;
|
||||
|
||||
class Monster extends Common
|
||||
{
|
||||
|
||||
|
||||
//获取列表
|
||||
public function get_monster_list()
|
||||
{
|
||||
$order = input('order', 'id');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Monster')->get_monster_list($order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取详情
|
||||
public function get_monster_info()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$reslut = model('Monster')->get_monster_info($id);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
//编辑
|
||||
public function edit_monster()
|
||||
{
|
||||
|
||||
$data = input('post.');
|
||||
//二级密码
|
||||
$pass = input('secondary_password', '');
|
||||
$check_pass = model('admin/admin')->check_secondary_password($pass);
|
||||
if($check_pass['code'] == 201){
|
||||
return ajaxReturn($check_pass['code'], $check_pass['msg'], $check_pass['data']);
|
||||
}
|
||||
$reslut = model('Monster')->edit_monster($data);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//获取礼物列表
|
||||
public function get_gift_list()
|
||||
{
|
||||
$reslut = model('Monster')->get_gift_list();
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
|
||||
//获取列表
|
||||
public function get_monster_multiple_list()
|
||||
{
|
||||
$order = input('order', 'id');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Monster')->get_monster_multiple_list($order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取详情
|
||||
public function get_monster_multiple_info()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$reslut = model('Monster')->get_monster_multiple_info($id);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
//编辑
|
||||
public function edit_monster_multiple()
|
||||
{
|
||||
$data = input('post.');
|
||||
$reslut = model('Monster')->edit_monster_multiple($data);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//获取列表
|
||||
public function get_monster_log(){
|
||||
$order = input('order', 'id');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Monster')->get_monster_log($order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
$data['totalRow'] = $reslut['data']['totalRow'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取列表
|
||||
public function get_user_monster_log(){
|
||||
$mid = input('mid', 0);
|
||||
$order = input('order', 'id');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Monster')->get_user_monster_log($mid, $order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取列表
|
||||
public function get_user_monster_win_log(){
|
||||
$mid = input('mid', 0);
|
||||
$order = input('order', 'id');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Monster')->get_user_monster_win_log($mid, $order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
259
application/admin/controller/Multiple.php
Normal file
259
application/admin/controller/Multiple.php
Normal file
@@ -0,0 +1,259 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
use think\Controller;
|
||||
|
||||
class Multiple extends Common
|
||||
{
|
||||
|
||||
|
||||
//获取类型列表
|
||||
public function get_gift_multiple_type_list()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$name = input('name', 0);
|
||||
$order = input('order', 'id');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Multiple')->get_gift_multiple_type_list($id, $name, $order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取 类型 详情
|
||||
public function get_gift_multiple_type_info()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$reslut = model('Multiple')->get_gift_multiple_type_info($id);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
//编辑 类型
|
||||
public function edit_gift_multiple_type()
|
||||
{
|
||||
$data = input('post.');
|
||||
$reslut = model('Multiple')->edit_gift_multiple_type($data);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//添加 类型
|
||||
public function add_gift_multiple_type()
|
||||
{
|
||||
$data = input('post.');
|
||||
$reslut = model('Multiple')->add_gift_multiple_type($data);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//删除 类型
|
||||
public function del_gift_multiple_type()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$reslut = model('Multiple')->del_gift_multiple_type($id);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//获取倍率列表
|
||||
public function get_gift_multiple_rate_list()
|
||||
{
|
||||
$pid = input('pid', 0);
|
||||
$order = input('order', 'id');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Multiple')->get_gift_multiple_rate_list($pid, $order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取倍率详情
|
||||
public function get_gift_multiple_rate_info()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$reslut = model('Multiple')->get_gift_multiple_rate_info($id);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
//编辑
|
||||
public function edit_gift_multiple_rate()
|
||||
{
|
||||
$data = input('post.');
|
||||
$reslut = model('Multiple')->edit_gift_multiple_rate($data);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//添加
|
||||
public function add_gift_multiple_rate()
|
||||
{
|
||||
$data = input('post.');
|
||||
$reslut = model('Multiple')->add_gift_multiple_rate($data);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//删除
|
||||
public function del_gift_multiple_rate()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$reslut = model('Multiple')->del_gift_multiple_rate($id);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//获取
|
||||
public function get_user_send_gift_rate_list()
|
||||
{
|
||||
$uid = input('uid', 0);
|
||||
$room_id = input('room_id', 0);
|
||||
$room_uid = input('room_uid', 0);
|
||||
$receive_uid = input('receive_uid', '');
|
||||
$gid = input('gid', '');
|
||||
$gift_name = input('gift_name', 0);
|
||||
$start = input('start', '');
|
||||
$end = input('end', '');
|
||||
$order = input('order', 'a.sid');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Multiple')->get_user_send_gift_rate_list($uid, $room_id, $room_uid, $receive_uid, $gid, $gift_name, $start, $end, $order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
$data['totalRow'] = $reslut['data']['totalRow'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取列表
|
||||
public function room_subsidy()
|
||||
{
|
||||
$order = input('order', 'id');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Multiple')->room_subsidy($order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取详情
|
||||
public function room_subsidy_info()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$reslut = model('Multiple')->room_subsidy_info($id);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['data'] = $reslut['data'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//添加
|
||||
public function add_room_subsidy()
|
||||
{
|
||||
$type = input('type', 1);
|
||||
$level_name = input('level_name', '');
|
||||
$total_gift_price = input('total_gift_price', 0);
|
||||
$money = input('money', 0);
|
||||
$data = model('Multiple')->add_room_subsidy($level_name, $total_gift_price, $money, $type);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//修改
|
||||
public function edit_room_subsidy()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$type = input('type', 1);
|
||||
$level_name = input('level_name', '');
|
||||
$total_gift_price = input('total_gift_price', 0);
|
||||
$money = input('money', 0);
|
||||
$data = model('Multiple')->edit_room_subsidy($id, $level_name, $total_gift_price, $money, $type);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//获取列表
|
||||
public function give_room_subsidy_list()
|
||||
{
|
||||
$room_number = input('room_number', 0);
|
||||
$uid = input('uid', 0);
|
||||
$is_delete = input('is_delete', 0);
|
||||
$start = input('start', '');
|
||||
$order = input('order', 'id');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Multiple')->give_room_subsidy_list($room_number, $uid, $is_delete, $order, $sort, $page, $limit, $start);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//批量结算
|
||||
public function batch_give_room_subsidy(){
|
||||
//二级密码
|
||||
$pass = input('pass', '');
|
||||
$check_pass = model('admin/admin')->check_secondary_password($pass);
|
||||
if($check_pass['code'] == 201){
|
||||
return ajaxReturn($check_pass['code'], $check_pass['msg'], $check_pass['data']);
|
||||
}
|
||||
$data = input('info');
|
||||
$reslut = model('Multiple')->batch_give_room_subsidy($data);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//补贴详情
|
||||
public function get_give_room_subsidy_info(){
|
||||
$id = input('id', 0);
|
||||
$reslut = model('Multiple')->get_give_room_subsidy_info($id);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
|
||||
}
|
||||
|
||||
//修改补贴
|
||||
public function edit_give_room_subsidy(){
|
||||
//二级密码
|
||||
$pass = input('secondary_password', '');
|
||||
$check_pass = model('admin/admin')->check_secondary_password($pass);
|
||||
if($check_pass['code'] == 201){
|
||||
return ajaxReturn($check_pass['code'], $check_pass['msg'], $check_pass['data']);
|
||||
}
|
||||
$id = input('id', 0);
|
||||
$user_earnings = input('user_earnings', 0);
|
||||
$reslut = model('Multiple')->edit_give_room_subsidy($id, $user_earnings);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//删除
|
||||
public function room_subsidy_del()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$data = model('Multiple')->room_subsidy_del($id);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
81
application/admin/controller/NewBox.php
Normal file
81
application/admin/controller/NewBox.php
Normal file
@@ -0,0 +1,81 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
use think\Controller;
|
||||
use think\facade\Request;
|
||||
|
||||
class NewBox extends Common
|
||||
{
|
||||
|
||||
|
||||
//获取宝箱列表
|
||||
public function get_new_box_list()
|
||||
{
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('NewBox')->get_new_box_list($page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//获取房间信息
|
||||
public function get_new_box_info()
|
||||
{
|
||||
$tid = input('id', 0);
|
||||
$reslut = model('NewBox')->get_new_box_info($tid);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
|
||||
//编辑类型
|
||||
public function edit_new_box()
|
||||
{
|
||||
$data = Request::only(['id', 'gid', 'total_amount','new_box_status']);
|
||||
$reslut = model('NewBox')->edit_new_box($data);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//期数列表
|
||||
public function get_new_box_log()
|
||||
{
|
||||
$page = input('page', 1);
|
||||
$page_limit = input('limit', 15);
|
||||
$nb_id = input('nb_id', 0);
|
||||
$status = input('status', 0);
|
||||
$reslut = model('NewBox')->get_new_box_log($nb_id, $status, $page, $page_limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
//开奖记录
|
||||
public function get_user_new_box_log()
|
||||
{
|
||||
$page = input('page', 1);
|
||||
$page_limit = input('limit', 15);
|
||||
$nb_id = input('nbl_id', 0);
|
||||
$start_time = input('start_time', '');
|
||||
$end_time = input('end_time', '');
|
||||
$uid = input('uid', 0);
|
||||
$reslut = model('NewBox')->get_user_new_box_log($uid, $nb_id, $start_time, $end_time, $page, $page_limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
$data['totalData'] = $reslut['data']['totalData'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
}
|
||||
182
application/admin/controller/Nobility.php
Normal file
182
application/admin/controller/Nobility.php
Normal file
@@ -0,0 +1,182 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
use think\Controller;
|
||||
|
||||
class Nobility extends Common
|
||||
{
|
||||
|
||||
|
||||
//获取列表
|
||||
public function get_nobility_list()
|
||||
{
|
||||
$order = input('order', 'lid');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Nobility')->get_nobility_list($order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取详情
|
||||
public function nobility_info()
|
||||
{
|
||||
$lid = input('lid', 0);
|
||||
$data = model('Nobility')->nobility_info($lid);
|
||||
if ($data['code'] == 0) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//编辑
|
||||
public function edit_nobility()
|
||||
{
|
||||
$data = input('post.');
|
||||
//二级密码
|
||||
// $pass = input('secondary_password', '');
|
||||
// $check_pass = model('admin/admin')->check_secondary_password($pass);
|
||||
// if($check_pass['code'] == 201){
|
||||
// return ajaxReturn($check_pass['code'], $check_pass['msg'], $check_pass['data']);
|
||||
// }
|
||||
// unset($data['secondary_password']);
|
||||
$data = model('Nobility')->edit_nobility($data);
|
||||
if ($data['code'] == 0) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//获取权限列表
|
||||
public function get_nobility_power_list()
|
||||
{
|
||||
$order = input('order', 'id');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Nobility')->get_nobility_power_list($order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//权限详情
|
||||
public function nobility_power_info(){
|
||||
$id = input('id', 0);
|
||||
$data = model('Nobility')->nobility_power_info($id);
|
||||
if ($data['code'] == 0) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//编辑
|
||||
public function edit_nobility_power()
|
||||
{
|
||||
$data = input('post.');
|
||||
$data = model('Nobility')->edit_nobility_power($data);
|
||||
if ($data['code'] == 0) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//获取用户爵位列表
|
||||
public function get_user_nobility_list()
|
||||
{
|
||||
$order = input('order', 'id');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Nobility')->get_user_nobility_list($order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//列表
|
||||
public function get_nobility_decorate_list()
|
||||
{
|
||||
$lid = input('lid', 0);
|
||||
$order = input('order', 'id');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Nobility')->get_nobility_decorate_list($lid, $order,$sort,$page,$limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取详情
|
||||
public function nobility_decorate_info()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$data = model('Nobility')->nobility_decorate_info($id);
|
||||
if ($data['code'] == 0) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//添加信息
|
||||
public function add_nobility_decorate()
|
||||
{
|
||||
$lid = input('lid', 0);
|
||||
$did = input('decorate_id', 0);
|
||||
$day_num = input('day_num', 0);
|
||||
$data = model('Nobility')->add_nobility_decorate($lid, $did, $day_num);
|
||||
if ($data['code'] == 0) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//修改信息
|
||||
public function edit_nobility_decorate()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$did = input('decorate_id', 0);
|
||||
$day_num = input('day_num', 0);
|
||||
$data = model('Nobility')->edit_nobility_decorate($id, $did,$day_num);
|
||||
if ($data['code'] == 0) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//删除
|
||||
public function del_nobility_decorate()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$data = model('Nobility')->del_nobility_decorate($id);
|
||||
if ($data['code'] == 0) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
238
application/admin/controller/Play.php
Normal file
238
application/admin/controller/Play.php
Normal file
@@ -0,0 +1,238 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
use think\Controller;
|
||||
|
||||
class Play extends Common
|
||||
{
|
||||
|
||||
//游戏列表
|
||||
public function game_list()
|
||||
{
|
||||
$gid = input('gid', 0);
|
||||
$game_name = input('game_name', 0);
|
||||
$is_show = input('is_show', '');
|
||||
|
||||
$order = input('order', 'gid');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Play')->game_list($gid, $game_name, $is_show, $order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取 游戏 详情
|
||||
public function game_info()
|
||||
{
|
||||
$gid = input('gid', 0);
|
||||
$data = model('Play')->game_info($gid);
|
||||
if ($data['code'] == 0) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
//编辑 游戏
|
||||
public function edit_game()
|
||||
{
|
||||
$data = input('post.');
|
||||
$data = model('Play')->edit_game($data);
|
||||
if ($data['code'] == 0) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//添加 游戏
|
||||
public function add_game()
|
||||
{
|
||||
$data = input('post.');
|
||||
$data = model('Play')->add_game($data);
|
||||
if ($data['code'] == 0) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//删除 游戏
|
||||
public function del_game()
|
||||
{
|
||||
$gid = input('gid', 0);
|
||||
$data = model('Play')->del_game($gid);
|
||||
if ($data['code'] == 0) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//游戏等级 列表
|
||||
public function game_skill_level_list()
|
||||
{
|
||||
$lid = input('lid', 0);
|
||||
$gid = input('gid', '');
|
||||
$game_level_name = input('game_level_name', 0);
|
||||
$order = input('order', 'a.lid');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Play')->game_skill_level_list($lid, $gid, $game_level_name, $order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取 游戏等级 详情
|
||||
public function game_skill_level_info()
|
||||
{
|
||||
$lid = input('lid', 0);
|
||||
$data = model('Play')->game_skill_level_info($lid);
|
||||
if ($data['code'] == 0) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
//编辑 游戏等级
|
||||
public function edit_game_skill_level()
|
||||
{
|
||||
$data = input('post.');
|
||||
$data = model('Play')->edit_game_skill_level($data);
|
||||
if ($data['code'] == 0) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//添加 游戏等级
|
||||
public function add_game_skill_level()
|
||||
{
|
||||
$data = input('post.');
|
||||
$data = model('Play')->add_game_skill_level($data);
|
||||
if ($data['code'] == 0) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//删除 游戏等级
|
||||
public function del_game_skill_level()
|
||||
{
|
||||
$lid = input('lid', 0);
|
||||
$data = model('Play')->del_game_skill_level($lid);
|
||||
if ($data['code'] == 0) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//游戏等级 列表
|
||||
public function player_list()
|
||||
{
|
||||
$uid = input('uid', 0);
|
||||
$nick_name = input('nick_name', '');
|
||||
$sex = input('sex', 0);
|
||||
$special_uid = input('special_uid', 0);
|
||||
$gid = input('gid', 0);
|
||||
$real_name = input('real_name', 0);
|
||||
$is_top = input('is_top', 0);
|
||||
$is_recommend = input('is_recommend', 0);
|
||||
$is_business = input('is_business', 0);
|
||||
$status = input('status', 0);
|
||||
$order = input('order', 'a.pid');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Play')->player_list($uid, $nick_name, $sex, $special_uid, $gid, $real_name, $is_top, $is_recommend, $is_business, $status, $order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取 陪玩主播 详情
|
||||
public function player_info()
|
||||
{
|
||||
$pid = input('pid', 0);
|
||||
$data = model('Play')->player_info($pid);
|
||||
if ($data['code'] == 0) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
//编辑 陪玩主播
|
||||
public function edit_player()
|
||||
{
|
||||
$data = input('post.');
|
||||
$data = model('Play')->edit_player($data);
|
||||
if ($data['code'] == 0) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//删除 陪玩主播
|
||||
public function del_player()
|
||||
{
|
||||
$pid = input('pid', 0);
|
||||
$data = model('Play')->del_player($pid);
|
||||
if ($data['code'] == 0) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
// 陪玩订单 列表
|
||||
public function player_order_list()
|
||||
{
|
||||
$order_sn = input('order_sn', 0);
|
||||
$uid = input('uid', '');
|
||||
$player_uid = input('player_uid', 0);
|
||||
$price = input('price', 0);
|
||||
$service_rate = input('service_rate', 0);
|
||||
$status = input('status', 0);
|
||||
$is_over = input('is_over', 0);
|
||||
$order = input('order', '');
|
||||
$sort = input('sort', '');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Play')->player_order_list($order_sn, $uid, $player_uid, $price, $service_rate, $status, $is_over, $order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取 陪玩订单 详情
|
||||
public function player_order_info()
|
||||
{
|
||||
$oid = input('oid', 0);
|
||||
$data = model('Play')->player_order_info($oid);
|
||||
if ($data['code'] == 0) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
}
|
||||
49
application/admin/controller/Relation.php
Normal file
49
application/admin/controller/Relation.php
Normal file
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
|
||||
class Relation extends Common
|
||||
{
|
||||
//获取列表
|
||||
public function get_list()
|
||||
{
|
||||
$page = input('page', 1);
|
||||
$page_limit = input('limit', 10);
|
||||
return model('admin/Relation')->get_list($page, $page_limit);
|
||||
}
|
||||
//添加
|
||||
public function add()
|
||||
{
|
||||
$name = input('name', '');
|
||||
$color = input('color', '');
|
||||
$day = input('day', 0);
|
||||
$result = model('admin/Relation')->add($name, $color, $day);
|
||||
ajaxReturn($result['code'], $result['msg'], $result['data']);
|
||||
}
|
||||
//获取信息
|
||||
public function get_info()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$result = model('admin/Relation')->get_info($id);
|
||||
ajaxReturn($result['code'], $result['msg'], $result['data']);
|
||||
}
|
||||
//编辑
|
||||
public function edit()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$name = input('name', '');
|
||||
$color = input('color', '');
|
||||
$day = input('day', 0);
|
||||
$result = model('admin/Relation')->edit($id, $name, $color, $day);
|
||||
ajaxReturn($result['code'], $result['msg'], $result['data']);
|
||||
}
|
||||
//删除
|
||||
public function del()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$result = model('admin/Relation')->del($id);
|
||||
ajaxReturn($result['code'], $result['msg'], $result['data']);
|
||||
}
|
||||
}
|
||||
133
application/admin/controller/Report.php
Normal file
133
application/admin/controller/Report.php
Normal file
@@ -0,0 +1,133 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
use think\Controller;
|
||||
|
||||
class Report extends Common
|
||||
{
|
||||
|
||||
|
||||
//获取举报列表
|
||||
public function report_list()
|
||||
{
|
||||
$uid = input('uid', 0);
|
||||
$to_uid = input('to_uid', 0);
|
||||
$nick_name = input('nick_name', '');
|
||||
$to_nick_name = input('to_nickname', '');
|
||||
|
||||
$order = input('order', 'rid');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Report')->report_list($uid, $to_uid,$nick_name, $to_nick_name, $order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
//获取举报详情
|
||||
public function report_info()
|
||||
{
|
||||
$rid = input('rid', 0);
|
||||
$data = model('Report')->report_info($rid);
|
||||
if ($data['code'] == 0) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
|
||||
}
|
||||
//处理举报信息
|
||||
public function edit_user_info()
|
||||
{
|
||||
$rid = input('rid', 0);
|
||||
$status = input('status', '');
|
||||
$data = model('Report')->edit_user_info($rid,$status);
|
||||
if ($data['code'] == 0) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//删除举报信息
|
||||
public function del_Report()
|
||||
{
|
||||
$rid = input('rid', 0);
|
||||
$data = model('Report')->del_Report($rid);
|
||||
if ($data['code'] == 0) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//举报类型 列表
|
||||
public function report_type_list()
|
||||
{
|
||||
$order = input('order', 'id');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Report')->report_type_list($order,$sort,$page,$limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取举报类型详情
|
||||
public function report_type_info()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$data = model('Report')->report_type_info($id);
|
||||
if ($data['code'] == 0) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//添加 举报类型信息
|
||||
public function add_report_type()
|
||||
{
|
||||
$type_name = input('type_name', '');
|
||||
$data = model('Report')->add_report_type($type_name);
|
||||
if ($data['code'] == 0) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//修改 举报类型信息
|
||||
public function edit_report_type()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$type_name = input('type_name', '');
|
||||
$data = model('Report')->edit_report_type($id,$type_name);
|
||||
if ($data['code'] == 0) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//删除举报类型
|
||||
public function del_report_type()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$data = model('Report')->del_report_type($id);
|
||||
if ($data['code'] == 0) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
}
|
||||
692
application/admin/controller/Room.php
Normal file
692
application/admin/controller/Room.php
Normal file
@@ -0,0 +1,692 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
use think\Controller;
|
||||
use think\facade\Request;
|
||||
|
||||
class Room extends Common
|
||||
{
|
||||
|
||||
//获取房间列表
|
||||
public function get_room_list()
|
||||
{
|
||||
$data = Request::only(['rid', 'room_number', 'room_owner_uid', 'room_name', 'tid', 'cate_id', 'is_hot', 'is_top', 'is_online', 'room_status', 'is_delete', 'is_earnings']);
|
||||
$order = input('order', 'rid');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Room')->get_room_list($data, $order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
|
||||
|
||||
//添加房间
|
||||
public function add_room()
|
||||
{
|
||||
$data = Request::only(['xq_type', 'room_owner_uid', 'room_number', 'room_background_id', 'cate_id', 'room_cover', 'tid', 'room_name', 'room_intro', 'hot_value', 'is_pretty', 'is_top', 'is_hot', 'is_need_password', 'room_password', 'room_status', 'is_online', 'is_delete','accumulate_rate']);
|
||||
$reslut = model('Room')->add_room($data);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//修改房间信息
|
||||
public function edit_room_info()
|
||||
{
|
||||
$data = Request::only(['xq_type', 'rid', 'cate_id', 'room_number', 'room_cover', 'tid', 'room_name', 'room_background_id', 'room_intro', 'hot_value', 'pretty_room_number', 'is_top', 'is_hot', 'is_need_password', 'room_password', 'room_status', 'is_online', 'is_delete', 'sort', 'accumulate_rate','is_look','is_show_dial', 'envelope_rate', 'is_earnings', 'is_show_room','robot_num']);
|
||||
$reslut = model('Room')->edit_room_info($data);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
//获取房间信息
|
||||
public function get_room_info()
|
||||
{
|
||||
$rid = input('rid', 0);
|
||||
$reslut = model('Room')->get_room_info($rid);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//删除房间
|
||||
public function room_del()
|
||||
{
|
||||
$rid = input('rid', 0);
|
||||
$data = model('Room')->room_del($rid);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//获取房间列表
|
||||
public function get_room_visitor_list()
|
||||
{
|
||||
$data = Request::only(['rid', 'uid', 'is_micro']);
|
||||
$order = input('order', 'vid');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Room')->get_room_visitor_list($data, $order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
|
||||
|
||||
//获取房间分类列表
|
||||
public function room_cate_list()
|
||||
{
|
||||
$cate_id = input('cate_id', 0);
|
||||
$category_name = input('category_name', 0);
|
||||
$order = input('order', 'cate_id');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Room')->room_cate_list($cate_id, $category_name, $order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取房间分类详情
|
||||
public function get_room_cate_info()
|
||||
{
|
||||
$cate_id = input('cate_id', 0);
|
||||
$reslut = model('Room')->get_room_cate_info($cate_id);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['data'] = $reslut['data'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//修改房间分类
|
||||
public function room_cate_edit()
|
||||
{
|
||||
$cate_id = input('cate_id', 0);
|
||||
$category_name = input('category_name', '');
|
||||
$tid = input('tid', 0);
|
||||
$sort = input('sort', 0);
|
||||
$data = model('Room')->room_cate_edit($cate_id, $tid, $category_name, $sort);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//添加房间分类
|
||||
public function add_room_cate()
|
||||
{
|
||||
$category_name = input('category_name', '');
|
||||
$tid = input('tid', 0);
|
||||
$sort = input('sort', 0);
|
||||
$data = model('Room')->add_room_cate($tid, $category_name, $sort);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
//删除房间分类
|
||||
public function room_cate_del()
|
||||
{
|
||||
$cate_id = input('cate_id', 0);
|
||||
$data = model('Room')->room_cate_del($cate_id);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//获取房间类型列表
|
||||
public function get_room_type_list()
|
||||
{
|
||||
$tid = input('tid', 0);
|
||||
$type_name = input('type_name', 0);
|
||||
$order = input('order', 'tid');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Room')->get_room_type_list($tid, $type_name, $order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取房间类型详情
|
||||
public function get_room_type_info()
|
||||
{
|
||||
$tid = input('tid', 0);
|
||||
$reslut = model('Room')->get_room_type_info($tid);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['data'] = $reslut['data'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//修改房间类型
|
||||
public function edit_room_type_info()
|
||||
{
|
||||
$tid = input('tid', 0);
|
||||
$type_name = input('type_name', '');
|
||||
$data = model('Room')->edit_room_type_info($tid, $type_name);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//添加房间类型
|
||||
public function add_room_type()
|
||||
{
|
||||
$type_name = input('type_name', '');
|
||||
$data = model('Room')->add_room_type($type_name);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
//删除房间类型
|
||||
public function room_type_del()
|
||||
{
|
||||
$tid = input('tid', 0);
|
||||
$data = model('Room')->room_type_del($tid);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//获取房间背景列表
|
||||
public function room_background_list()
|
||||
{
|
||||
$bid = input('bid', 0);
|
||||
$image_name = input('image_name', 0);
|
||||
$order = input('order', 'bid');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
|
||||
$reslut = model('Room')->room_background_list($bid, $image_name, $order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取房间背景详情
|
||||
public function background_info()
|
||||
{
|
||||
$bid = input('bid', 0);
|
||||
|
||||
$reslut = model('Room')->background_info($bid);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['data'] = $reslut['data'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//添加房间背景
|
||||
public function add_room_background()
|
||||
{
|
||||
$image_name = input('image_name');
|
||||
$image_url = input('image_url');
|
||||
$image_size = input('image_size');
|
||||
$status = input('status');
|
||||
$data = model('Room')->add_room_background($image_name, $image_url, $image_size, $status);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//修改房间背景
|
||||
public function edit_room_background()
|
||||
{
|
||||
$bid = input('bid', 0);
|
||||
$image_name = input('image_name');
|
||||
$image_url = input('image_url');
|
||||
$image_size = input('image_size');
|
||||
$status = input('status');
|
||||
$data = model('Room')->edit_room_background($bid, $image_name, $image_url, $image_size, $status);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//删除房间背景
|
||||
public function room_background_del()
|
||||
{
|
||||
$bid = input('bid', 0);
|
||||
$data = model('Room')->room_background_del($bid);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//获取房间表情列表
|
||||
public function room_emoji_list()
|
||||
{
|
||||
$eid = input('eid', 0);
|
||||
$emoji_type = input('emoji_type', 0);
|
||||
$type = input('type'); //1非交互表情2交互表情
|
||||
$name = input('name'); //图片名称
|
||||
$order = input('order', 'eid');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Room')->room_emoji_list($eid, $type, $name, $emoji_type, $order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取房间表情详情
|
||||
public function room_emoji_info()
|
||||
{
|
||||
$eid = input('eid', 0);
|
||||
$reslut = model('Room')->room_emoji_info($eid);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['data'] = $reslut['data'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//添加房间表情
|
||||
public function add_room_emoji()
|
||||
{
|
||||
$emoji_type = input('emoji_type', 1);
|
||||
$nid = input('nid', 0);
|
||||
$type = input('type');
|
||||
$name = input('name');
|
||||
$pid = input('pid');
|
||||
$image = input('image');
|
||||
$second = input('second');
|
||||
$result = input('result');
|
||||
$show_status = input('show_status');
|
||||
$sort = input('sort');
|
||||
$data = model('Room')->add_room_emoji($pid, $type, $name, $emoji_type, $nid, $image, $second, $result, $show_status, $sort);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//修改房间表情
|
||||
public function edit_room_emoji()
|
||||
{
|
||||
$eid = input('eid', 0);
|
||||
$emoji_type = input('emoji_type', 1);
|
||||
$nid = input('nid', 0);
|
||||
$type = input('type');
|
||||
$pid = input('pid');
|
||||
$name = input('name');
|
||||
$image = input('image');
|
||||
$second = input('second');
|
||||
$result = input('result');
|
||||
$show_status = input('show_status');
|
||||
$sort = input('sort');
|
||||
$data = model('Room')->edit_room_emoji($eid, $pid, $type, $name, $emoji_type, $nid, $image, $second, $result, $show_status, $sort);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//删除房间表情
|
||||
public function del_room_emoji()
|
||||
{
|
||||
$eid = input('eid', 0);
|
||||
$data = model('Room')->del_room_emoji($eid);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//获取房间音乐列表
|
||||
public function room_music_list()
|
||||
{
|
||||
$mid = input('mid', 0);
|
||||
$music_name = input('music_name', 0);
|
||||
$singer = input('singer', 0);
|
||||
$order = input('order', 'mid');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
|
||||
$reslut = model('Room')->room_music_list($mid, $music_name, $singer, $order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取房间音乐
|
||||
public function music_info()
|
||||
{
|
||||
$mid = input('mid', 0);
|
||||
$reslut = model('Room')->music_info($mid);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['data'] = $reslut['data'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//添加房间音乐
|
||||
public function add_room_music()
|
||||
{
|
||||
$music_name = input('music_name');
|
||||
$singer = input('singer');
|
||||
$music_url = input('music_url');
|
||||
$music_size = input('music_size');
|
||||
$status = input('status');
|
||||
$music_type = input('music_type');
|
||||
$data = model('Room')->add_room_music($music_name, $singer, $music_url, $music_size, $status, $music_type);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//修改房间音乐
|
||||
public function edit_room_music()
|
||||
{
|
||||
$mid = input('mid', 0);
|
||||
$music_name = input('music_name');
|
||||
$singer = input('singer');
|
||||
$music_url = input('music_url');
|
||||
$music_size = input('music_size');
|
||||
$status = input('status');
|
||||
$music_type = input('music_type');
|
||||
$data = model('Room')->edit_room_music($mid, $music_name, $singer, $music_url, $music_size, $status, $music_type);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//删除房间音乐
|
||||
public function room_music_del()
|
||||
{
|
||||
$mid = input('mid', 0);
|
||||
$data = model('Room')->room_music_del($mid);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//获取列表
|
||||
public function room_subsidy()
|
||||
{
|
||||
$order = input('order', 'id');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Room')->room_subsidy($order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取详情
|
||||
public function room_subsidy_info()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$reslut = model('Room')->room_subsidy_info($id);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['data'] = $reslut['data'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//添加
|
||||
public function add_room_subsidy()
|
||||
{
|
||||
$type = input('type', 1);
|
||||
$level_name = input('level_name', '');
|
||||
$total_gift_price = input('total_gift_price', 0);
|
||||
$money = input('money', 0);
|
||||
$data = model('Room')->add_room_subsidy($level_name, $total_gift_price, $money, $type);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//修改
|
||||
public function edit_room_subsidy()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$type = input('type', 1);
|
||||
$level_name = input('level_name', '');
|
||||
$total_gift_price = input('total_gift_price', 0);
|
||||
$money = input('money', 0);
|
||||
$data = model('Room')->edit_room_subsidy($id, $level_name, $total_gift_price, $money, $type);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//删除
|
||||
public function room_subsidy_del()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$data = model('Room')->room_subsidy_del($id);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//获取列表
|
||||
public function give_room_subsidy_list()
|
||||
{
|
||||
$room_number = input('room_number', 0);
|
||||
$owner_uid = input('owner_uid', 0);
|
||||
$is_fa = input('is_fa', 0);
|
||||
$belong_week = input('belong_week', '');
|
||||
$order = input('order', 'id');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
|
||||
$reslut = model('Room')->give_room_subsidy_list($room_number, $owner_uid, $is_fa, $order, $sort, $page, $limit, $belong_week);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
$data['totalRow'] = $reslut['data']['totalRow'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//批量结算
|
||||
public function batch_give_room_subsidy(){
|
||||
//二级密码
|
||||
$pass = input('pass', '');
|
||||
$check_pass = model('admin/admin')->check_secondary_password($pass);
|
||||
if($check_pass['code'] == 201){
|
||||
return ajaxReturn($check_pass['code'], $check_pass['msg'], $check_pass['data']);
|
||||
}
|
||||
$data = input('info');
|
||||
$reslut = model('Room')->batch_give_room_subsidy($data);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
|
||||
|
||||
//补贴详情
|
||||
public function get_give_room_subsidy_info(){
|
||||
$id = input('id', 0);
|
||||
$reslut = model('Room')->get_give_room_subsidy_info($id);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
|
||||
}
|
||||
|
||||
|
||||
//房间明细
|
||||
public function room_week_earnings_info(){
|
||||
$id = input('id', 0);
|
||||
$reslut = model('Room')->room_week_earnings_log_info($id);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
|
||||
//修复
|
||||
public function room_week_earnings_log_edit(){
|
||||
$data = input();
|
||||
$reslut = model('Room')->room_week_earnings_log_edit($data);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//修改补贴
|
||||
public function edit_give_room_subsidy(){
|
||||
//二级密码
|
||||
$pass = input('secondary_password', '');
|
||||
$check_pass = model('admin/admin')->check_secondary_password($pass);
|
||||
if($check_pass['code'] == 201){
|
||||
return ajaxReturn($check_pass['code'], $check_pass['msg'], $check_pass['data']);
|
||||
}
|
||||
$id = input('id', 0);
|
||||
$user_earnings = input('user_earnings', 0);
|
||||
$reslut = model('Room')->edit_give_room_subsidy($id, $user_earnings);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
|
||||
//检测房间
|
||||
public function check_room(){
|
||||
$rid = input('rid', 0);
|
||||
$reslut = model('room')->check_room($rid);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//清理房间异常麦位
|
||||
public function check_room_micro(){
|
||||
$rid = input('rid', 0);
|
||||
$reslut = model('room')->check_room_micro($rid);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
|
||||
|
||||
//获取举报列表
|
||||
public function room_apply_list()
|
||||
{
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$room_owner_uid = input('room_owner_uid', 0);
|
||||
$room_number = input('room_number', 0);
|
||||
$apply_status = input('apply_status', 0);
|
||||
$reslut = model('Room')->room_apply_list($room_owner_uid,$room_number,$apply_status,$page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public function room_apply_info(){
|
||||
$id = input('id', 0);
|
||||
$reslut = model('room')->room_apply_info($id);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public function room_apply_edit(){
|
||||
$data = input();
|
||||
$reslut = model('room')->room_apply_edit($data);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
|
||||
}
|
||||
|
||||
|
||||
//踢禁记录
|
||||
public function out_forbid_log(){
|
||||
$data = Request::only(['operator_uid', 'uid', 'room_number', 'pay_type', 'start', 'end']);
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('room')->out_forbid_log($data,$page,$limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
|
||||
public function jie_word(){
|
||||
$fid = input('fid', '');
|
||||
$reslut = model('room')->jie_word($fid);
|
||||
return json($reslut);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
198
application/admin/controller/Sprite.php
Normal file
198
application/admin/controller/Sprite.php
Normal file
@@ -0,0 +1,198 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
use think\Controller;
|
||||
|
||||
class Sprite extends Common
|
||||
{
|
||||
|
||||
|
||||
//获取列表
|
||||
public function get_monster_list()
|
||||
{
|
||||
$order = input('order', 'id');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Sprite')->get_monster_list($order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取详情
|
||||
public function get_monster_info()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$reslut = model('Sprite')->get_monster_info($id);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
//编辑
|
||||
public function edit_monster()
|
||||
{
|
||||
|
||||
$data = input('post.');
|
||||
//二级密码
|
||||
$pass = input('secondary_password', '');
|
||||
$check_pass = model('admin/admin')->check_secondary_password($pass);
|
||||
if($check_pass['code'] == 201){
|
||||
return ajaxReturn($check_pass['code'], $check_pass['msg'], $check_pass['data']);
|
||||
}
|
||||
$reslut = model('Sprite')->edit_monster($data);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//获取礼物列表
|
||||
public function get_gift_list()
|
||||
{
|
||||
$reslut = model('Gift')->gift_list(0, "", 0, 0, 0, 1, 0, 'gift_price', 'asc', 1, 99999, 1);
|
||||
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']['list']);
|
||||
}
|
||||
|
||||
|
||||
//获取列表
|
||||
public function get_monster_multiple_list()
|
||||
{
|
||||
$order = input('order', 'id');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Sprite')->get_monster_multiple_list($order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取详情
|
||||
public function get_monster_multiple_info()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$reslut = model('Sprite')->get_monster_multiple_info($id);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
//编辑
|
||||
public function edit_monster_multiple()
|
||||
{
|
||||
$data = input('post.');
|
||||
$reslut = model('Sprite')->edit_monster_multiple($data);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//获取列表
|
||||
public function get_monster_log(){
|
||||
$order = input('order', 'id');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Sprite')->get_monster_log($order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
$data['totalRow'] = $reslut['data']['totalRow'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取列表
|
||||
public function get_user_monster_log(){
|
||||
$mid = input('mid', 0);
|
||||
$order = input('order', 'id');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Sprite')->get_user_monster_log($mid, $order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取列表
|
||||
public function get_user_monster_win_log(){
|
||||
$mid = input('mid', 0);
|
||||
$order = input('order', 'id');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Sprite')->get_user_monster_win_log($mid, $order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取列表
|
||||
public function get_monster_gift_list()
|
||||
{
|
||||
$order = input('order', 'a.id');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Sprite')->get_monster_gift_list($order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取详情
|
||||
public function get_monster_gift_info()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$reslut = model('Sprite')->get_monster_gift_info($id);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//编辑
|
||||
public function edit_monster_gift()
|
||||
{
|
||||
|
||||
$data = input('post.');
|
||||
//二级密码
|
||||
$pass = input('secondary_password', '');
|
||||
$check_pass = model('admin/admin')->check_secondary_password($pass);
|
||||
if($check_pass['code'] == 201){
|
||||
return ajaxReturn($check_pass['code'], $check_pass['msg'], $check_pass['data']);
|
||||
}
|
||||
$reslut = model('Sprite')->edit_monster_gift($data);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//获取列表
|
||||
public function get_exchange_sprite_list()
|
||||
{
|
||||
$uid = input('uid', 0);
|
||||
$room_number = input('room_number', 0);
|
||||
$start = input('time1', '');
|
||||
$end = input('time2', '');
|
||||
$order = input('order', 'a.id');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Sprite')->get_exchange_sprite_list($uid, $order, $sort, $page, $limit, $room_number, $start, $end);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
$data['totalRow'] = $reslut['data']['totalRow'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
113
application/admin/controller/Statistics.php
Normal file
113
application/admin/controller/Statistics.php
Normal file
@@ -0,0 +1,113 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
use think\Controller;
|
||||
use think\Request;
|
||||
|
||||
class Statistics extends Common
|
||||
{
|
||||
//首页基础数据
|
||||
public function welcome_data()
|
||||
{
|
||||
$reslut = model('Statistics')->welcome_data();
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
//打赏礼物数据根据天
|
||||
public function get_send_gift_data_by_day()
|
||||
{
|
||||
$reslut = model('Statistics')->get_send_gift_data_by_day();
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
//打赏礼物数据根据小时
|
||||
public function get_send_gift_data_by_hour()
|
||||
{
|
||||
$reslut = model('Statistics')->get_send_gift_data_by_hour();
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
//打赏礼物数据根据小时
|
||||
public function get_room_type_date()
|
||||
{
|
||||
$reslut = model('Statistics')->get_room_type_date();
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//充值排行统计
|
||||
public function get_recharge_rank_list()
|
||||
{
|
||||
$uid = input('uid', 0);
|
||||
$time_section = input('time_section', '');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Statistics')->get_recharge_rank_list($uid, $time_section, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
//送礼排行统计
|
||||
public function get_send_gift_rank_list()
|
||||
{
|
||||
$uid = input('uid', 0);
|
||||
$time_section = input('time_section', '');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Statistics')->get_send_gift_rank_list($uid, $time_section, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
//收礼排行统计
|
||||
public function get_receive_gift_rank_list()
|
||||
{
|
||||
$uid = input('uid', 0);
|
||||
$time_section = input('time_section', '');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Statistics')->get_receive_gift_rank_list($uid, $time_section, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//陪玩排行统计
|
||||
public function get_player_order_rank_list()
|
||||
{
|
||||
$uid = input('uid', 0);
|
||||
$time_section = input('time_section', '');
|
||||
$order = input('order', 'order_num');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Statistics')->get_player_order_rank_list($uid, $time_section, $order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
//用户消费排行统计
|
||||
public function get_user_consume_rank_list()
|
||||
{
|
||||
$uid = input('uid', 0);
|
||||
$time_section = input('time_section', '');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Statistics')->get_user_consume_rank_list($uid, $time_section, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
}
|
||||
439
application/admin/controller/Ueditor.php
Normal file
439
application/admin/controller/Ueditor.php
Normal file
@@ -0,0 +1,439 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
use think\Controller;
|
||||
|
||||
class Ueditor extends Common
|
||||
{
|
||||
public $web_site = "";
|
||||
public function initialize()
|
||||
{
|
||||
// $this->web_site = config('bosUrl') . "/";
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
// header('Access-Control-Allow-Origin: *'); //设置http://www.baidu.com允许跨域访问
|
||||
// header('Access-Control-Allow-Headers: X-Requested-With,X_Requested_With'); //设置允许的跨域header
|
||||
// date_default_timezone_set("Asia/chongqing");
|
||||
// error_reporting(E_ERROR);
|
||||
// header("Content-Type: text/html; charset=utf-8");
|
||||
|
||||
$path = str_replace('public', "", $_SERVER['DOCUMENT_ROOT']);
|
||||
$config_json_path = $path . "/config/ueditconfig.json";
|
||||
$CONFIG = json_decode(preg_replace("/\/\*[\s\S]+?\*\//", "", file_get_contents($config_json_path)), true);
|
||||
$action = input('action');
|
||||
|
||||
switch ($action) {
|
||||
case 'config':
|
||||
// header("content:application/json;chartset=uft-8");
|
||||
$result = json_encode($CONFIG);
|
||||
break;
|
||||
/* 上传图片 */
|
||||
case 'uploadimage':
|
||||
$fieldName = $CONFIG['imageFieldName'];
|
||||
$result = $this->upFile($fieldName);
|
||||
break;
|
||||
/* 上传涂鸦 */
|
||||
case 'uploadscrawl':
|
||||
$config = array(
|
||||
"pathFormat" => $CONFIG['scrawlPathFormat'],
|
||||
"maxSize" => $CONFIG['scrawlMaxSize'],
|
||||
"allowFiles" => $CONFIG['scrawlAllowFiles'],
|
||||
"oriName" => "scrawl.png",
|
||||
);
|
||||
$fieldName = $CONFIG['scrawlFieldName'];
|
||||
$base64 = "base64";
|
||||
$result = $this->upBase64($config, $fieldName);
|
||||
break;
|
||||
/* 上传视频 */
|
||||
case 'uploadvideo':
|
||||
$fieldName = $CONFIG['videoFieldName'];
|
||||
$result = $this->upFile($fieldName);
|
||||
break;
|
||||
/* 上传文件 */
|
||||
case 'uploadfile':
|
||||
$fieldName = $CONFIG['fileFieldName'];
|
||||
$result = $this->upFile($fieldName);
|
||||
break;
|
||||
/* 列出图片 */
|
||||
case 'listimage':
|
||||
$allowFiles = $CONFIG['imageManagerAllowFiles'];
|
||||
$listSize = $CONFIG['imageManagerListSize'];
|
||||
$path = $CONFIG['imageManagerListPath'];
|
||||
$get = $_GET;
|
||||
$result = $this->fileList($allowFiles, $listSize, $get);
|
||||
break;
|
||||
/* 列出文件 */
|
||||
case 'listfile':
|
||||
$allowFiles = $CONFIG['fileManagerAllowFiles'];
|
||||
$listSize = $CONFIG['fileManagerListSize'];
|
||||
$path = $CONFIG['fileManagerListPath'];
|
||||
$get = $_GET;
|
||||
$result = $this->fileList($allowFiles, $listSize, $get);
|
||||
break;
|
||||
/* 抓取远程文件 */
|
||||
case 'catchimage':
|
||||
$config = array(
|
||||
"pathFormat" => $CONFIG['catcherPathFormat'],
|
||||
"maxSize" => $CONFIG['catcherMaxSize'],
|
||||
"allowFiles" => $CONFIG['catcherAllowFiles'],
|
||||
"oriName" => "remote.png",
|
||||
);
|
||||
$fieldName = $CONFIG['catcherFieldName'];
|
||||
/* 抓取远程图片 */
|
||||
$list = array();
|
||||
isset($_POST[$fieldName]) ? $source = $_POST[$fieldName] : $source = $_GET[$fieldName];
|
||||
|
||||
foreach ($source as $imgUrl) {
|
||||
$info = json_decode($this->saveRemote($config, $imgUrl), true);
|
||||
array_push($list, array(
|
||||
"state" => $info["state"],
|
||||
"url" => $info["url"],
|
||||
"size" => $info["size"],
|
||||
"title" => htmlspecialchars($info["title"]),
|
||||
"original" => htmlspecialchars($info["original"]),
|
||||
"source" => htmlspecialchars($imgUrl),
|
||||
));
|
||||
}
|
||||
|
||||
$result = json_encode(array(
|
||||
'state' => count($list) ? 'SUCCESS' : 'ERROR',
|
||||
'list' => $list,
|
||||
));
|
||||
break;
|
||||
default:
|
||||
$result = json_encode(array(
|
||||
'state' => '请求地址出错',
|
||||
));
|
||||
break;
|
||||
}
|
||||
|
||||
/* 输出结果 */
|
||||
if (isset($_GET["callback"])) {
|
||||
if (preg_match("/^[\w_]+$/", $_GET["callback"])) {
|
||||
echo htmlspecialchars($_GET["callback"]) . '(' . $result . ')';
|
||||
} else {
|
||||
echo json_encode(array(
|
||||
'state' => 'callback参数不合法',
|
||||
));
|
||||
}
|
||||
} else {
|
||||
echo $result;
|
||||
die();
|
||||
}
|
||||
}
|
||||
|
||||
//上传文件
|
||||
private function upFile($fieldName)
|
||||
{
|
||||
$file = request()->file($fieldName);
|
||||
$reslut = model('Upload')->single_file_upload($file, "onepage");
|
||||
// dump($reslut);exit;
|
||||
$data = [];
|
||||
if ($reslut['code'] == 200) {
|
||||
$data = array(
|
||||
'state' => 'SUCCESS',
|
||||
'url' => $reslut['data']['http_image_path'],
|
||||
'title' => "image",
|
||||
'original' => $reslut['data']['image_path'],
|
||||
'type' => '',
|
||||
'size' => $reslut['data']['size'],
|
||||
);
|
||||
} else {
|
||||
$data = array(
|
||||
'state' => "上传错误",
|
||||
);
|
||||
}
|
||||
return json_encode($data);
|
||||
/*
|
||||
$reslut = model('api/BaiduBce')->admin_uedit_upload('content', $file);
|
||||
if ($reslut['code'] == 1) {
|
||||
|
||||
$data = array(
|
||||
'state' => 'SUCCESS',
|
||||
'url' => $this->web_site . $reslut['data']['bosPath'],
|
||||
'title' => $reslut['data']['title'],
|
||||
'original' => $this->web_site . $reslut['data']['original'],
|
||||
'type' => $reslut['data']['type'],
|
||||
'size' => $reslut['data']['size'],
|
||||
);
|
||||
|
||||
} else {
|
||||
$data = array(
|
||||
'state' => $reslut['data'],
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
return json_encode($data);
|
||||
*/
|
||||
/*
|
||||
$file = request()->file($fieldName);
|
||||
$info = $file->validate(['size' => 1567800000, 'ext' => 'jpg,gif,png,jpeg,mp4,mp3'])->move('uploads/uedit/');
|
||||
if ($info) { //上传成功
|
||||
$fname = '/uploads/uedit/' . str_replace('\\', '/', $info->getSaveName());
|
||||
$imgArr = explode(',', 'jpg,gif,png,jpeg,bmp,ttf,tif');
|
||||
$imgExt = strtolower($info->getExtension());
|
||||
$isImg = in_array($imgExt, $imgArr);
|
||||
|
||||
// if($isImg){//如果是图片,开始处理
|
||||
// $image = Image::open($file);
|
||||
// $thumbnail = 1;
|
||||
// $water = 1;
|
||||
|
||||
// //在这里你可以根据你需要,调用ThinkPHP5的图片处理方法了
|
||||
// if($water == 1){//文字水印
|
||||
// $image->text('df81.com','./public/font/4.ttf',180,'#ff0000')->save('.'.$fname);
|
||||
// }
|
||||
// if($water ==2 ){//图片水印
|
||||
// $image->water('./public/img/df81.png',9,100)->save('.'.$fname);
|
||||
// }
|
||||
// if($thumbnail == 1){//生成缩略图
|
||||
// $image->thumb(500,500,1)->save('.'.$fname);
|
||||
// }
|
||||
// }
|
||||
|
||||
$data = array(
|
||||
'state' => 'SUCCESS',
|
||||
'url' => $this->web_site . $fname,
|
||||
'title' => $info->getFilename(),
|
||||
'original' => $this->web_site . $info->getFilename(),
|
||||
'type' => '.' . $info->getExtension(),
|
||||
'size' => $info->getSize(),
|
||||
);
|
||||
} else {
|
||||
$data = array(
|
||||
'state' => $info->getError(),
|
||||
);
|
||||
}
|
||||
return json_encode($data);
|
||||
*/
|
||||
}
|
||||
|
||||
//列出图片
|
||||
private function fileList($allowFiles, $listSize, $get)
|
||||
{
|
||||
$dirname = './uploads/uedit/';
|
||||
$allowFiles = substr(str_replace(".", "|", join("", $allowFiles)), 1);
|
||||
|
||||
/* 获取参数 */
|
||||
$size = isset($get['size']) ? htmlspecialchars($get['size']) : $listSize;
|
||||
$start = isset($get['start']) ? htmlspecialchars($get['start']) : 0;
|
||||
$end = $start + $size;
|
||||
|
||||
/* 获取文件列表 */
|
||||
$path = $dirname;
|
||||
$files = $this->getFiles($path, $allowFiles);
|
||||
if (!count($files)) {
|
||||
return json_encode(array(
|
||||
"state" => "no match file",
|
||||
"list" => array(),
|
||||
"start" => $start,
|
||||
"total" => count($files),
|
||||
));
|
||||
}
|
||||
|
||||
/* 获取指定范围的列表 */
|
||||
$len = count($files);
|
||||
for ($i = min($end, $len) - 1, $list = array(); $i < $len && $i >= 0 && $i >= $start; $i--) {
|
||||
$list[] = $files[$i];
|
||||
}
|
||||
|
||||
/* 返回数据 */
|
||||
$result = json_encode(array(
|
||||
"state" => "SUCCESS",
|
||||
"list" => $list,
|
||||
"start" => $start,
|
||||
"total" => count($files),
|
||||
));
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/*
|
||||
* 遍历获取目录下的指定类型的文件
|
||||
* @param $path
|
||||
* @param array $files
|
||||
* @return array
|
||||
*/
|
||||
private function getFiles($path, $allowFiles, &$files = array())
|
||||
{
|
||||
if (!is_dir($path)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (substr($path, strlen($path) - 1) != '/') {
|
||||
$path .= '/';
|
||||
}
|
||||
|
||||
$handle = opendir($path);
|
||||
|
||||
while (false !== ($file = readdir($handle))) {
|
||||
if ($file != '.' && $file != '..') {
|
||||
$path2 = $path . $file;
|
||||
if (is_dir($path2)) {
|
||||
$this->getFiles($path2, $allowFiles, $files);
|
||||
} else {
|
||||
if (preg_match("/\.(" . $allowFiles . ")$/i", $file)) {
|
||||
$files[] = array(
|
||||
'url' => substr($path2, 1),
|
||||
'mtime' => filemtime($path2),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $files;
|
||||
}
|
||||
|
||||
//抓取远程图片
|
||||
private function saveRemote($config, $fieldName)
|
||||
{
|
||||
$imgUrl = htmlspecialchars($fieldName);
|
||||
$imgUrl = str_replace("&", "&", $imgUrl);
|
||||
|
||||
//http开头验证
|
||||
if (strpos($imgUrl, "http") !== 0) {
|
||||
$data = array(
|
||||
'state' => '链接不是http链接',
|
||||
);
|
||||
return json_encode($data);
|
||||
}
|
||||
//获取请求头并检测死链
|
||||
$heads = get_headers($imgUrl);
|
||||
if (!(stristr($heads[0], "200") && stristr($heads[0], "OK"))) {
|
||||
$data = array(
|
||||
'state' => '链接不可用',
|
||||
);
|
||||
return json_encode($data);
|
||||
}
|
||||
//格式验证(扩展名验证和Content-Type验证)
|
||||
$fileType = strtolower(strrchr($imgUrl, '.'));
|
||||
if (!in_array($fileType, $config['allowFiles']) || stristr($heads['Content-Type'], "image")) {
|
||||
$data = array(
|
||||
'state' => '链接contentType不正确',
|
||||
);
|
||||
return json_encode($data);
|
||||
}
|
||||
|
||||
//打开输出缓冲区并获取远程图片
|
||||
ob_start();
|
||||
$context = stream_context_create(
|
||||
array('http' => array(
|
||||
'follow_location' => false, // don't follow redirects
|
||||
))
|
||||
);
|
||||
readfile($imgUrl, false, $context);
|
||||
$img = ob_get_contents();
|
||||
ob_end_clean();
|
||||
preg_match("/[\/]([^\/]*)[\.]?[^\.\/]*$/", $imgUrl, $m);
|
||||
|
||||
$dirname = './public/uploads/remote/';
|
||||
$file['oriName'] = $m ? $m[1] : "";
|
||||
$file['filesize'] = strlen($img);
|
||||
$file['ext'] = strtolower(strrchr($config['oriName'], '.'));
|
||||
$file['name'] = uniqid() . $file['ext'];
|
||||
$file['fullName'] = $dirname . $file['name'];
|
||||
$fullName = $file['fullName'];
|
||||
|
||||
//检查文件大小是否超出限制
|
||||
if ($file['filesize'] >= ($config["maxSize"])) {
|
||||
$data = array(
|
||||
'state' => '文件大小超出网站限制',
|
||||
);
|
||||
return json_encode($data);
|
||||
}
|
||||
|
||||
//创建目录失败
|
||||
if (!file_exists($dirname) && !mkdir($dirname, 0777, true)) {
|
||||
$data = array(
|
||||
'state' => '目录创建失败',
|
||||
);
|
||||
return json_encode($data);
|
||||
} else if (!is_writeable($dirname)) {
|
||||
$data = array(
|
||||
'state' => '目录没有写权限',
|
||||
);
|
||||
return json_encode($data);
|
||||
}
|
||||
|
||||
//移动文件
|
||||
if (!(file_put_contents($fullName, $img) && file_exists($fullName))) { //移动失败
|
||||
$data = array(
|
||||
'state' => '写入文件内容错误',
|
||||
);
|
||||
return json_encode($data);
|
||||
} else { //移动成功
|
||||
$data = array(
|
||||
'state' => 'SUCCESS',
|
||||
'url' => $this->web_site . substr($file['fullName'], 1),
|
||||
'title' => $file['name'],
|
||||
'original' => $this->web_site . $file['oriName'],
|
||||
'type' => $file['ext'],
|
||||
'size' => $file['filesize'],
|
||||
);
|
||||
}
|
||||
|
||||
return json_encode($data);
|
||||
}
|
||||
|
||||
/*
|
||||
* 处理base64编码的图片上传
|
||||
* 例如:涂鸦图片上传
|
||||
*/
|
||||
private function upBase64($config, $fieldName)
|
||||
{
|
||||
$base64Data = $_POST[$fieldName];
|
||||
$img = base64_decode($base64Data);
|
||||
|
||||
$dirname = './uploads/uedit/scrawl/';
|
||||
$file['filesize'] = strlen($img);
|
||||
$file['oriName'] = $config['oriName'];
|
||||
$file['ext'] = strtolower(strrchr($config['oriName'], '.'));
|
||||
$file['name'] = uniqid() . $file['ext'];
|
||||
$file['fullName'] = $dirname . $file['name'];
|
||||
$fullName = $file['fullName'];
|
||||
|
||||
//检查文件大小是否超出限制
|
||||
if ($file['filesize'] >= ($config["maxSize"])) {
|
||||
$data = array(
|
||||
'state' => '文件大小超出网站限制',
|
||||
);
|
||||
return json_encode($data);
|
||||
}
|
||||
|
||||
//创建目录失败
|
||||
if (!file_exists($dirname) && !mkdir($dirname, 0777, true)) {
|
||||
$data = array(
|
||||
'state' => '目录创建失败',
|
||||
);
|
||||
return json_encode($data);
|
||||
} else if (!is_writeable($dirname)) {
|
||||
$data = array(
|
||||
'state' => '目录没有写权限',
|
||||
);
|
||||
return json_encode($data);
|
||||
}
|
||||
|
||||
//移动文件
|
||||
if (!(file_put_contents($fullName, $img) && file_exists($fullName))) { //移动失败
|
||||
$data = array(
|
||||
'state' => '写入文件内容错误',
|
||||
);
|
||||
} else { //移动成功
|
||||
$data = array(
|
||||
'state' => 'SUCCESS',
|
||||
'url' => $this->web_site . substr($file['fullName'], 1),
|
||||
'title' => $file['name'],
|
||||
'original' => $this->web_site . $file['oriName'],
|
||||
'type' => $file['ext'],
|
||||
'size' => $file['filesize'],
|
||||
);
|
||||
}
|
||||
|
||||
return json_encode($data);
|
||||
}
|
||||
}
|
||||
17
application/admin/controller/Upload.php
Normal file
17
application/admin/controller/Upload.php
Normal file
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
use think\Controller;
|
||||
use think\Request;
|
||||
|
||||
class Upload extends Common
|
||||
{
|
||||
public function file_upload()
|
||||
{
|
||||
$file = request()->file('file');
|
||||
$file_category_name = input('file_category', 'all');
|
||||
$reslut = model('Upload')->single_file_upload($file, $file_category_name);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
}
|
||||
308
application/admin/controller/User.php
Normal file
308
application/admin/controller/User.php
Normal file
@@ -0,0 +1,308 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
use think\Controller;
|
||||
use think\facade\Request;
|
||||
|
||||
class User extends Common
|
||||
{
|
||||
|
||||
//获取用户列表
|
||||
public function get_user_list()
|
||||
{
|
||||
$uid = input('uid', 0);
|
||||
$pid = input('pid', 0);
|
||||
$user_name = input('user_name', '');
|
||||
$nick_name = input('nick_name', '');
|
||||
$special_uid = input('special_uid',0);
|
||||
$last_login_device = input('last_login_device','');
|
||||
$is_can_recharge = input('is_can_recharge', 0);
|
||||
$is_sign = input('is_sign', 0);
|
||||
$is_real = input('is_real', 0);
|
||||
$order = input('order', 'uid');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$integral_min = input('integral_min',0);
|
||||
$integral_max = input('integral_max',0);
|
||||
$is_sys_tester = input('is_sys_tester',2);
|
||||
$reslut = model('User')->get_user_list($uid, $pid, $user_name, $nick_name, $special_uid, $last_login_device, $is_can_recharge, $is_sign, $is_real, $order, $sort, $page, $limit,$integral_min,$integral_max,$is_sys_tester);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
$data['totalRow'] = $reslut['data']['totalRow'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取用户列表
|
||||
public function get_write_user_list()
|
||||
{
|
||||
$uid = input('uid', 0);
|
||||
$pid = input('pid', 0);
|
||||
$user_name = input('user_name', '');
|
||||
$nick_name = input('nick_name', '');
|
||||
$special_uid = input('special_uid',0);
|
||||
$last_login_device = input('last_login_device','');
|
||||
$is_can_recharge = input('is_can_recharge', 0);
|
||||
$is_sign = input('is_sign', 0);
|
||||
$is_real = input('is_real', 0);
|
||||
$order = input('order', 'uid');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$integral_min = input('integral_min',0);
|
||||
$integral_max = input('integral_max',0);
|
||||
$reslut = model('User')->get_write_user_list($uid, $pid, $user_name, $nick_name, $special_uid, $last_login_device, $is_can_recharge, $is_sign, $is_real, $order, $sort, $page, $limit,$integral_min,$integral_max);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
$data['totalRow'] = $reslut['data']['totalRow'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
|
||||
//获取用户资料
|
||||
public function get_user_info()
|
||||
{
|
||||
$uid = input('uid', 0);
|
||||
$reslut = model('User')->get_user_info($uid);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
// $data = model('User')->get_user_info($uid);
|
||||
// if ($data['code'] == 0) {
|
||||
// return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
// } else {
|
||||
// return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
// }
|
||||
}
|
||||
//修改用户资料
|
||||
public function edit_user_info()
|
||||
{
|
||||
$uid = input('uid', 0);
|
||||
$nick_name = input('nick_name', '');
|
||||
$sex = input('sex', 0);
|
||||
$login_status = input('login_status', 0);
|
||||
$is_tester = input('is_tester',0);
|
||||
$is_sign = input('is_sign', 0);
|
||||
$is_can_recharge = input('is_can_recharge', 0);
|
||||
$special_uid = input('special_uid', '');
|
||||
$is_real = input('is_real', 2);
|
||||
$is_look_rank = input('is_look_rank', '');
|
||||
$room_owner_commission = input('room_owner_commission', '');
|
||||
$room_owner_lucky_commission = input('room_owner_lucky_commission','');
|
||||
|
||||
|
||||
$real_name = input('real_name', '');
|
||||
$card_id = input('card_id', '');
|
||||
|
||||
|
||||
$data = model('User')->edit_user_info($uid, $nick_name, $sex, $login_status, $is_tester, $is_sign, $is_can_recharge, $special_uid, $is_real,$is_look_rank,$room_owner_commission,$room_owner_lucky_commission,$real_name,$card_id);
|
||||
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//修改用户资料
|
||||
public function lu_edit_user_info()
|
||||
{
|
||||
$uid = input('uid', 0);
|
||||
$nick_name = input('nick_name', '');
|
||||
$sex = input('sex', 0);
|
||||
$head_pic = input('head_pic', '');
|
||||
|
||||
$data = model('User')->lu_edit_user_info($uid, $nick_name, $sex, $head_pic);
|
||||
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//修改用户资金
|
||||
public function edit_user_money()
|
||||
{
|
||||
$uid = input('uid', 0);
|
||||
$money_type = input('money_type', '');
|
||||
$change_value = input('change_value', 0);
|
||||
$secondary_password = input('secondary_password','');
|
||||
$remarks = input('remarks', '');
|
||||
//二级密码
|
||||
$check_pass = model('admin/admin')->check_secondary_password($secondary_password);
|
||||
if($check_pass['code'] == 201){
|
||||
return ajaxReturn($check_pass['code'], $check_pass['msg'], $check_pass['data']);
|
||||
}
|
||||
$reslut = model('User')->edit_user_money($uid, $change_value, $money_type, $secondary_password, $remarks, $this->aid);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//恢复注销用户
|
||||
public function edit_user_write()
|
||||
{
|
||||
$uid = input('uid', 0);
|
||||
$login_status = input('login_status', '');
|
||||
$secondary_password = input('secondary_password','');
|
||||
//二级密码
|
||||
$check_pass = model('admin/admin')->check_secondary_password($secondary_password);
|
||||
if($check_pass['code'] == 201){
|
||||
return ajaxReturn($check_pass['code'], $check_pass['msg'], $check_pass['data']);
|
||||
}
|
||||
$reslut = model('User')->edit_user_write($uid, $login_status, $this->aid);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//修改用户密码
|
||||
public function edit_user_password()
|
||||
{
|
||||
$data = Request::only(['uid', 'password']);
|
||||
$reslut = model('User')->edit_user_password($data);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//修改用户密码
|
||||
public function edit_user_passwords()
|
||||
{
|
||||
$data = Request::only(['uid', 'trade_password']);
|
||||
$reslut = model('User')->edit_user_passwords($data);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//获取用户背包列表
|
||||
public function get_user_gift_pack()
|
||||
{
|
||||
$pid = input('pid', 0);
|
||||
$uid = input('uid', 0);
|
||||
$nick_name = input('nick_name', '');
|
||||
$gid = input('gid', 0);
|
||||
$order = input('order', 'pid');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('User')->get_user_gift_pack($pid, $uid, $nick_name, $gid, $order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//删除用户背包礼物
|
||||
public function del_user_gift_pack()
|
||||
{
|
||||
//return ajaxReturn(201, '功能暂已停用', null);
|
||||
$pid = input('pid', 0);
|
||||
$reslut = model('User')->del_user_gift_pack($pid);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//清除用户地阶奖池累消
|
||||
public function gold_consume_del(){
|
||||
$reslut = model('User')->gold_consume_del();
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
|
||||
//清除用户天阶奖池累消
|
||||
public function drill_consume_del(){
|
||||
$reslut = model('User')->drill_consume_del();
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
|
||||
//清除用户天阶奖池累消
|
||||
public function silver_consume_del(){
|
||||
$reslut = model('User')->silver_consume_del();
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//清空所有背包礼物
|
||||
public function user_gift_pack_del_all(){
|
||||
return ajaxReturn(201, '功能暂已停用', null);
|
||||
$reslut = model('User')->user_gift_pack_del_all();
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//清空用户token
|
||||
public function clear_user_token(){
|
||||
$type = input('type', 0);
|
||||
$uid = input('uid', 0);
|
||||
$reslut = model('User')->clear_user_token($uid, $type);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
|
||||
}
|
||||
|
||||
|
||||
//幸运摩天奖励发放
|
||||
public function motian_fa(){
|
||||
$key_name = "api:user:motian_fa";
|
||||
redis_lock_exit($key_name,100);
|
||||
$reslut = model('User')->yesterday_motian_award();
|
||||
redis_unlock($key_name);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function get_mo_tian_log(){
|
||||
$uid = input('uid', 0);
|
||||
$gid = input('gid', 0);
|
||||
$gift_name = input('gift_name', '');
|
||||
$level = input('level', '');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('user')->get_mo_tian_log($uid, $gid, $gift_name,$level,$page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
|
||||
//批量生成测试账号
|
||||
public function batch_create_test_account(){
|
||||
$key_name = "admin:batch_create_test_account";
|
||||
redis_lock_exit($key_name);
|
||||
$reslut = model('api/UserLogin')->batch_create_test_account();
|
||||
redis_unlock($key_name);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
31
application/admin/controller/UserPack.php
Normal file
31
application/admin/controller/UserPack.php
Normal file
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
use think\Controller;
|
||||
|
||||
class UserPack extends Common
|
||||
{
|
||||
|
||||
|
||||
//获取系统配置
|
||||
public function add_user_pack_gift()
|
||||
{
|
||||
$password = input('secondary_password', '');
|
||||
$aid = $this->aid;
|
||||
$uid = input('uid', 0);
|
||||
$num = input('num', 0);
|
||||
$gid = input('gid', 0);
|
||||
$res = model('Admin')->check_secondary_password($password);
|
||||
if($res['code'] == 201) {
|
||||
return ajaxReturn(201, '二级密码错误', null);
|
||||
}
|
||||
$result = model('UserPack')->add_user_pack_gift($aid, $uid, $gid, $num);
|
||||
return ajaxReturn($result['code'], $result['msg'], null);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
51
application/admin/controller/Userzone.php
Normal file
51
application/admin/controller/Userzone.php
Normal file
@@ -0,0 +1,51 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
use think\Controller;
|
||||
use think\facade\Request;
|
||||
|
||||
class Userzone extends Common
|
||||
{
|
||||
|
||||
//获取举报列表
|
||||
public function user_zone_list()
|
||||
{
|
||||
$uid = input('uid', 0);
|
||||
$nick_name = input('nick_name', '');
|
||||
$content = input('content', '');
|
||||
$show_status = input('show_status', '');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Userzone')->user_zone_list($uid, $nick_name, $content, $show_status, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//审核说说信息
|
||||
// public function zone_examine()
|
||||
// {
|
||||
// $zid = input('zid', 0);
|
||||
// $show_status = input('show_status', 0);
|
||||
// $reslut = model('Userzone')->zone_examine($zid, $show_status);
|
||||
// return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
// }
|
||||
|
||||
public function get_zone_info()
|
||||
{
|
||||
$zid = input('zid', 0);
|
||||
$reslut = model('Userzone')->get_zone_info($zid);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
//编辑说说
|
||||
public function edit_zone()
|
||||
{
|
||||
$data = Request::only(['zid', 'is_recommend', 'show_status']);
|
||||
$reslut = model('Userzone')->edit_zone($data);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
}
|
||||
872
application/admin/controller/Website.php
Normal file
872
application/admin/controller/Website.php
Normal file
@@ -0,0 +1,872 @@
|
||||
<?php
|
||||
namespace app\admin\controller;
|
||||
use think\Controller;
|
||||
// 网站管理
|
||||
class Website extends Common
|
||||
{
|
||||
|
||||
//获取轮播图 列表
|
||||
public function get_banner_list()
|
||||
{
|
||||
$uid = input('uid', 0);
|
||||
$room_number = input('room_number', 0);
|
||||
$room_name = input('room_name', '');
|
||||
$order = input('order', 'uid');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Website')->get_banner_list($uid, $room_number, $room_name, $order, $sort,$page,$limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//修改轮播图信息
|
||||
public function edit_banner_info()
|
||||
{
|
||||
$bid = input('bid', 0);
|
||||
$image = input('image', 0);
|
||||
$aid = input('aid', '');
|
||||
$type = input('type', '');
|
||||
$show_status = input('show_status', '');
|
||||
$sort = input('sort', '');
|
||||
$data = model('Website')->edit_banner_info($bid, $image, $aid, $type,$show_status, $sort);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//添加轮播图
|
||||
public function add_banner()
|
||||
{
|
||||
$data = input('post.');
|
||||
$data = model('Website')->add_banner($data);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//获取房间信息
|
||||
public function get_banner_info()
|
||||
{
|
||||
$bid = input('bid', 0);
|
||||
$data = model('Website')->get_banner_info($bid);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//删除轮播图
|
||||
public function banner_del()
|
||||
{
|
||||
$bid = input('bid', 0);
|
||||
$data = model('Website')->banner_del($bid);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//获取充值可选 列表
|
||||
public function can_recharge_list()
|
||||
{
|
||||
$crid = input('crid', 0);
|
||||
$order = input('order', 'crid');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Website')->can_recharge_list($crid,$order,$sort,$page,$limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//修改 充值可选
|
||||
public function edit_recharge_info()
|
||||
{
|
||||
$crid = input('crid', 0);
|
||||
$money = input('money', 0);
|
||||
$integral = input('integral', '');
|
||||
$data = model('Website')->edit_recharge_info($crid, $money, $integral);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//添加 充值可选
|
||||
public function add_recharge()
|
||||
{
|
||||
$data = input('post.');
|
||||
$data = model('Website')->add_recharge($data);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//获取 充值可选 信息
|
||||
public function get_recharge_info()
|
||||
{
|
||||
$crid = input('crid', 0);
|
||||
$data = model('Website')->get_recharge_info($crid);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//删除 充值可选
|
||||
public function recharge_del()
|
||||
{
|
||||
$crid = input('crid', 0);
|
||||
$data = model('Website')->recharge_del($crid);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//用户建议 列表
|
||||
public function suggest_list()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$uid = input('uid', 0);
|
||||
$nickanme = input('nickanme', 0);
|
||||
$order = input('order', 'id');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Website')->suggest_list($id,$uid,$nickanme,$order,$sort,$page,$limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//获取 建议 信息
|
||||
public function get_suggest_info()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$data = model('Website')->get_suggest_info($id);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//修改 建议状态
|
||||
public function edit_suggest_info()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$is_deal = input('is_deal', 0);
|
||||
$data = model('Website')->edit_suggest_info($id, $is_deal);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//删除 建议
|
||||
public function suggest_del()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$data = model('Website')->suggest_del($id);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//用户等级列表
|
||||
public function user_level_list()
|
||||
{
|
||||
$lid = input('lid', 0);
|
||||
$type = input('type', 0);
|
||||
$type_name = input('type_name', 0);
|
||||
$order = input('order', 'lid');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Website')->user_level_list($lid,$type,$type_name,$order,$sort,$page,$limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//添加 用户等级
|
||||
public function add_user_level()
|
||||
{
|
||||
$data = input('post.');
|
||||
$data = model('Website')->add_user_level($data);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//获取 用户等级
|
||||
public function get_user_level()
|
||||
{
|
||||
$lid = input('lid', 0);
|
||||
$data = model('Website')->get_user_level($lid);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//修改 用户等级
|
||||
public function edit_user_level()
|
||||
{
|
||||
$data = input('post.');
|
||||
|
||||
$data = model('Website')->edit_user_level($data);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//删除 用户等级
|
||||
public function user_level_del()
|
||||
{
|
||||
$lid = input('lid', 0);
|
||||
$data = model('Website')->user_level_del($lid);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//守护类型 列表
|
||||
public function guard_type_list()
|
||||
{
|
||||
$gid = input('gid', 0);
|
||||
$guard_name = input('guard_name', 0);
|
||||
$order = input('order', 'gid');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Website')->guard_type_list($gid,$guard_name,$order,$sort,$page,$limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//添加 守护类型
|
||||
public function add_guard_type()
|
||||
{
|
||||
$data = input('post.');
|
||||
$data = model('Website')->add_guard_type($data);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//获取 守护类型
|
||||
public function get_guard_type()
|
||||
{
|
||||
$gid = input('gid', 0);
|
||||
$data = model('Website')->get_guard_type($gid);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//修改 守护类型
|
||||
public function edit_guard_type()
|
||||
{
|
||||
$data = input('post.');
|
||||
$data = model('Website')->edit_guard_type($data);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//删除 守护类型
|
||||
public function guard_type_del()
|
||||
{
|
||||
$gid = input('gid', 0);
|
||||
$data = model('Website')->guard_type_del($gid);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//获取 守护类型 l列表
|
||||
public function get_guard_type_list()
|
||||
{
|
||||
$data = model('Website')->get_guard_type_list();
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//守护价格 列表
|
||||
public function guard_price_list()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$order = input('order', 'a.id');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Website')->guard_price_list($id,$order,$sort,$page,$limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
|
||||
|
||||
//添加 守护价格
|
||||
public function add_guard_price()
|
||||
{
|
||||
$data = input('post.');
|
||||
$data = model('Website')->add_guard_price($data);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//获取 守护价格详情
|
||||
public function get_guard_price()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$data = model('Website')->get_guard_price($id);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//修改 守护价格
|
||||
public function edit_guard_price()
|
||||
{
|
||||
$data = input('post.');
|
||||
$data = model('Website')->edit_guard_price($data);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//删除 守护价格
|
||||
public function guard_price_del()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$data = model('Website')->guard_price_del($id);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//特效 列表
|
||||
public function special_effects_list()
|
||||
{
|
||||
$sid = input('sid', 0);
|
||||
$type = input('type', 0);
|
||||
$effects_name = input('effects_name', 0);
|
||||
$is_can_buy = input('is_can_buy', 0);
|
||||
$is_show = input('is_show', 0);
|
||||
|
||||
$order = input('order', 'sid');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Website')->special_effects_list($sid,$type,$effects_name,$is_can_buy,$is_show,$order,$sort,$page,$limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
|
||||
|
||||
//添加 特效
|
||||
public function add_special_effects()
|
||||
{
|
||||
$data = input('post.');
|
||||
$data = model('Website')->add_special_effects($data);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//获取 特效详情
|
||||
public function get_special_effects()
|
||||
{
|
||||
$sid = input('sid', 0);
|
||||
$data = model('Website')->get_special_effects($sid);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//修改 特效
|
||||
public function edit_special_effects()
|
||||
{
|
||||
$data = input('post.');
|
||||
$data = model('Website')->edit_special_effects($data);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//删除 特效
|
||||
public function special_effects_del()
|
||||
{
|
||||
$sid = input('sid', 0);
|
||||
$data = model('Website')->special_effects_del($sid);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//获取 特效价格 列表
|
||||
public function get_special_effects_list()
|
||||
{
|
||||
$data = model('Website')->get_special_effects_list();
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//特效价格 列表
|
||||
public function special_effects_price()
|
||||
{
|
||||
$spid = input('spid', 0);
|
||||
$day = input('day', 0);
|
||||
$sell_price = input('sell_price', 0);
|
||||
$effects_name = input('effects_name', 0);
|
||||
$order = input('order', 'a.spid');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Website')->special_effects_price($spid,$day,$sell_price,$effects_name,$order,$sort,$page,$limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//添加 特效价格
|
||||
public function add_special_effects_price()
|
||||
{
|
||||
$data = input('post.');
|
||||
$data = model('Website')->add_special_effects_price($data);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//获取 特效价格 详情
|
||||
public function get_special_effects_price()
|
||||
{
|
||||
$spid = input('spid', 0);
|
||||
$data = model('Website')->get_special_effects_price($spid);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//修改 特效价格
|
||||
public function edit_special_effects_price()
|
||||
{
|
||||
$data = input('post.');
|
||||
$data = model('Website')->edit_special_effects_price($data);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//删除 特效价格
|
||||
public function special_effects_price_del()
|
||||
{
|
||||
$spid = input('spid', 0);
|
||||
$data = model('Website')->special_effects_price_del($spid);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//单页信息 列表
|
||||
public function page_list()
|
||||
{
|
||||
$order = input('order', 'aid');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Website')->page_list($order,$sort,$page,$limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//添加 单页信息
|
||||
public function add_page()
|
||||
{
|
||||
$data = input('post.');
|
||||
$data = model('Website')->add_page($data);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//获取 单页信息 详情
|
||||
public function get_page()
|
||||
{
|
||||
$aid = input('aid', 0);
|
||||
$data = model('Website')->get_page($aid);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//修改 单页信息
|
||||
public function edit_page()
|
||||
{
|
||||
$data = input('post.');
|
||||
$data = model('Website')->edit_page($data);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//删除 单页信息
|
||||
public function page_del()
|
||||
{
|
||||
$aid = input('aid', 0);
|
||||
$data = model('Website')->page_del($aid);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//获取列表
|
||||
public function pay_way_list()
|
||||
{
|
||||
$pay_type = input('pay_type', 0);
|
||||
$status = input('status', '');
|
||||
$order = input('order', 'id');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Website')->pay_way_list($pay_type, $status, $order, $sort,$page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//修改
|
||||
public function edit_pay_way()
|
||||
{
|
||||
$data = input('post.');
|
||||
$reslut = model('Website')->edit_pay_way($data);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//添加
|
||||
public function add_pay_way()
|
||||
{
|
||||
$data = input('post.');
|
||||
$reslut = model('Website')->add_pay_way($data);
|
||||
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//获取信息
|
||||
public function get_pay_way_info()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$data = model('Website')->get_pay_way_info($id);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//删除
|
||||
public function pay_way_del()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$data = model('Website')->pay_way_del($id);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//获取 列表
|
||||
public function auction_price_list()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$order = input('order', 'id');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Website')->auction_price_list($id,$order,$sort,$page,$limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//修改
|
||||
public function edit_auction_price_info()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$price = input('price', 0);
|
||||
$data = model('Website')->edit_auction_price_info($id, $price);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//添加
|
||||
public function add_auction_price()
|
||||
{
|
||||
$data = input('post.');
|
||||
$data = model('Website')->add_auction_price($data);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//获取 信息
|
||||
public function get_auction_price_info()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$data = model('Website')->get_auction_price_info($id);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//删除
|
||||
public function auction_price_del()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$data = model('Website')->auction_price_del($id);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//CP特权列表
|
||||
public function coupling_privilege_list()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$order = input('order', 'id');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Website')->coupling_privilege_list($id,$order,$sort,$page,$limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//添加 CP特权
|
||||
public function add_coupling_privilege()
|
||||
{
|
||||
$data = input('post.');
|
||||
$data = model('Website')->add_coupling_privilege($data);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//获取 CP特权
|
||||
public function get_coupling_privilege_info()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$data = model('Website')->get_coupling_privilege_info($id);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//修改 CP特权
|
||||
public function edit_coupling_privilege()
|
||||
{
|
||||
$data = input('post.');
|
||||
$data = model('Website')->edit_coupling_privilege($data);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//删除 CP特权
|
||||
public function coupling_privilege_del()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$data = model('Website')->coupling_privilege_del($id);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//客服信息
|
||||
public function support_staff(){
|
||||
$order = input('order', 'id');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('Website')->support_staff($order,$sort,$page,$limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
return json($data);
|
||||
}
|
||||
|
||||
//客服详情
|
||||
public function support_staff_info()
|
||||
{
|
||||
$id = input('id', 0);
|
||||
$data = model('Website')->support_staff_info($id);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
//客服信息编辑
|
||||
public function support_staff_edit(){
|
||||
$id = input('id', 0);
|
||||
$image = input('image', '');
|
||||
$content = input('content', '');
|
||||
$contents = input('contents', '');
|
||||
$data = model('Website')->support_staff_edit($id,$image, $content, $contents);
|
||||
if ($data['code'] == 201) {
|
||||
return ajaxReturn(201, $data['msg'], $data['data']);
|
||||
} else {
|
||||
return ajaxReturn(200, $data['msg'], $data['data']);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
341
application/admin/model/Admin.php
Normal file
341
application/admin/model/Admin.php
Normal file
@@ -0,0 +1,341 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\model;
|
||||
|
||||
use think\Db;
|
||||
use think\Model;
|
||||
|
||||
class Admin extends Model
|
||||
{
|
||||
protected $pk = 'aid';
|
||||
protected $auto = ['update_time'];
|
||||
protected $insert = [
|
||||
'add_time',
|
||||
'system_menu_id_list' => 0,
|
||||
'is_delete' => 1,
|
||||
'delete_time' => 0,
|
||||
];
|
||||
protected $update = ['update_time'];
|
||||
|
||||
protected function setPasswordAttr($value)
|
||||
{
|
||||
return md5($value);
|
||||
}
|
||||
|
||||
protected function setAddTimeAttr()
|
||||
{
|
||||
return time();
|
||||
}
|
||||
|
||||
protected function setUpdateTimeAttr()
|
||||
{
|
||||
return time();
|
||||
}
|
||||
|
||||
public function check_login_token($login_token)
|
||||
{
|
||||
if (empty($login_token)) {
|
||||
return ['code' => 201, 'msg' => '登录失效', 'data' => ''];
|
||||
}
|
||||
$map = [];
|
||||
$map[] = ['login_token', '=', $login_token];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$user_info = db::name('admin')->where($map)->find();
|
||||
if (empty($user_info)) {
|
||||
return ['code' => 201, 'msg' => '登录失效', 'data' => ''];
|
||||
} else {
|
||||
if(time() > $user_info['token_validity_time']){
|
||||
Db::name('admin')->where('aid', $user_info['aid'])->update(['login_token' => '', 'update_time' => time()]);
|
||||
return ['code' => 201, 'msg' => '登录失效', 'data' => ''];
|
||||
} else {
|
||||
if($user_info['token_validity_time'] <= (time() + 3600)) {
|
||||
Db::name('admin')->where('aid', $user_info['aid'])->update(['token_validity_time' => time() + 7200, 'update_time' => time()]);
|
||||
}
|
||||
}
|
||||
return ['code' => 200, 'msg' => '登录成功', 'data' => $user_info['aid']];
|
||||
}
|
||||
}
|
||||
|
||||
//获取管理员信息
|
||||
public function admin_info($login_token)
|
||||
{
|
||||
if (empty($login_token)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => ''];
|
||||
}
|
||||
$info = db::name('admin')->where(['login_token' => $login_token])->field('user_name')->find();
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $info];
|
||||
}
|
||||
public function add_admin($user_name, $password, $re_password)
|
||||
{
|
||||
$map = [];
|
||||
$map[] = ['user_name', '=', $user_name];
|
||||
$admin_info = db::name('admin')->where($map)->find();
|
||||
if (!empty($admin_info)) {
|
||||
return ['code' => 201, 'msg' => '用户名已存在', 'data' => ''];
|
||||
}
|
||||
$res = check_password_format($password);
|
||||
if($res['code'] == 201) {
|
||||
return $res;
|
||||
}
|
||||
|
||||
if ($password != $re_password) {
|
||||
return ['code' => 201, 'msg' => '两次密码不一致', 'data' => ''];
|
||||
}
|
||||
$phone = input('phone', '');
|
||||
$open_sms_code = input('open_sms_code', 2);
|
||||
if($open_sms_code == 1) {
|
||||
if(empty($phone)) {
|
||||
return ['code' => 201, 'msg' => '手机号不能为空', 'data' => ''];
|
||||
}
|
||||
if(!isMobile($phone)) {
|
||||
return ['code' => 201, 'msg' => '手机号格式错误', 'data' => ''];
|
||||
}
|
||||
$admin_info = Db::name('admin')->where(['phone' => $phone, 'is_delete' => 1])->find();
|
||||
if($admin_info) {
|
||||
return ['code' => 201, 'msg' => '手机号已绑定', 'data' => ''];
|
||||
}
|
||||
}
|
||||
$data = [];
|
||||
$data['user_name'] = $user_name;
|
||||
$data['password'] = $password;
|
||||
$data['phone'] = $phone;
|
||||
$data['open_sms_code'] = $open_sms_code;
|
||||
$validate = validate('admin/admin');
|
||||
$reslut = $validate->scene('adminAdd')->check($data);
|
||||
if ($reslut !== true) {
|
||||
return ['code' => 201, 'msg' => $validate->getError(), 'data' => null];
|
||||
}
|
||||
$Admin = model('admin/admin');
|
||||
$reslut = $Admin->save($data);
|
||||
if ($reslut) {
|
||||
return ['code' => 200, 'msg' => '添加成功', 'data' => ''];
|
||||
} else {
|
||||
return ['code' => 201, 'msg' => '修改失败', 'data' => ''];
|
||||
}
|
||||
}
|
||||
|
||||
//修改管理员密码
|
||||
public function edit_admin_password($aid, $old_password, $password, $re_password, $phone)
|
||||
{
|
||||
$admin_info = db::name('admin')->where(['aid' => $aid])->find();
|
||||
if (empty($admin_info)) {
|
||||
return ['code' => 201, 'msg' => '信息不存在', 'data' => ''];
|
||||
}
|
||||
if (md5($old_password) != $admin_info['password']) {
|
||||
return ['code' => 201, 'msg' => '原始密码错误', 'data' => ''];
|
||||
}
|
||||
|
||||
$res = check_password_format($password);
|
||||
if($res['code'] == 201) {
|
||||
return $res;
|
||||
}
|
||||
|
||||
if ($password != $re_password) {
|
||||
return ['code' => 201, 'msg' => '两次密码不一致', 'data' => ''];
|
||||
}
|
||||
$data = [];
|
||||
|
||||
$open_sms_code = input('open_sms_code', 2);
|
||||
|
||||
if($open_sms_code == 1) {
|
||||
if(empty($phone)) {
|
||||
return ['code' => 201, 'msg' => '手机号不能为空', 'data' => ''];
|
||||
}
|
||||
if(!isMobile($phone)) {
|
||||
return ['code' => 201, 'msg' => '手机号格式错误', 'data' => ''];
|
||||
}
|
||||
$admin_info = Db::name('admin')->where(['phone' => $phone, 'is_delete' => 1])->where('aid', 'neq', $aid)->find();
|
||||
if($admin_info) {
|
||||
return ['code' => 201, 'msg' => '手机号已绑定', 'data' => ''];
|
||||
}
|
||||
}
|
||||
$data['password'] = md5($password);
|
||||
$validate = validate('admin/admin');
|
||||
$reslut = $validate->scene('adminEditPassword')->check($data);
|
||||
if ($reslut !== true) {
|
||||
return ['code' => 201, 'msg' => $validate->getError(), 'data' => null];
|
||||
}
|
||||
|
||||
if($phone != $admin_info['phone']){
|
||||
$data['phone'] = $phone;
|
||||
}
|
||||
$data['open_sms_code'] = $open_sms_code;
|
||||
$data['update_time'] = time();
|
||||
$reslut = Db::name('admin')->where('aid', $aid)->update($data);
|
||||
if ($reslut) {
|
||||
return ['code' => 200, 'msg' => '修改成功', 'data' => ''];
|
||||
} else {
|
||||
return ['code' => 201, 'msg' => '修改失败', 'data' => ''];
|
||||
}
|
||||
}
|
||||
//修改管理员权限
|
||||
public function edit_admin_auth($aid, $auth)
|
||||
{
|
||||
$system_menu_id_list = implode(',', $auth);
|
||||
$data = [];
|
||||
$data['system_menu_id_list'] = $system_menu_id_list;
|
||||
$data['update_time'] = time();
|
||||
$res = db::name('admin')->where(['aid' => $aid])->update($data);
|
||||
if ($res) {
|
||||
return ['code' => 200, 'msg' => '修改成功', 'data' => ''];
|
||||
} else {
|
||||
return ['code' => 201, 'msg' => '修改失败', 'data' => ''];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//获取管理员列表
|
||||
public function get_admin_list($user_name, $page, $page_limit)
|
||||
{
|
||||
$map = [];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
if (!empty($user_name)) {
|
||||
$map[] = ['user_name', 'like', '%' . $user_name . '%'];
|
||||
}
|
||||
|
||||
$list = db::name('admin')->where($map)->order('aid', 'asc')->page($page, $page_limit)->select();
|
||||
$data = [];
|
||||
$data['count'] = db::name('admin')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
public function get_admin_info($aid)
|
||||
{
|
||||
$admin_info = db::name('admin')->find($aid);
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $admin_info];
|
||||
}
|
||||
public function delete_admin($aid)
|
||||
{
|
||||
if ($aid == 1) {
|
||||
return ['code' => 201, 'msg' => '总管理员禁止删除', 'data' => null];
|
||||
}
|
||||
$data = [];
|
||||
$data['is_delete'] = 2;
|
||||
$data['delete_time'] = time();
|
||||
$data['update_time'] = time();
|
||||
$res = db::name('admin')->where(['aid' => $aid])->update($data);
|
||||
if ($res) {
|
||||
return ['code' => 200, 'msg' => '删除成功', 'data' => ''];
|
||||
} else {
|
||||
return ['code' => 201, 'msg' => '删除失败', 'data' => ''];
|
||||
}
|
||||
}
|
||||
|
||||
//管理员日志
|
||||
public function get_admin_log_list($page, $page_limit){
|
||||
$map = [];
|
||||
$map[] = ['type', '=', 1];
|
||||
$list = db::name('operation')->where($map)->order('op_id','desc')->page($page, $page_limit)->select();
|
||||
foreach ($list as $k => &$v) {
|
||||
$v['user_name'] = db::name('admin')->where('aid', $v['id'])->value('user_name');
|
||||
if(strpos($v['url'],'admin/box/get_box_type_list')){
|
||||
$v['operate_name'] = '宝箱礼物列表';
|
||||
}else if(strpos($v['url'],'admin/box/get_box_log_list')){
|
||||
$v['operate_name'] = '每期奖池列表';
|
||||
}else if(strpos($v['url'],'admin/box/edit_box_config')){
|
||||
$v['operate_name'] = '修改宝箱信息';
|
||||
}else if(strpos($v['url'],'admin/box/delete_box_config')){
|
||||
$v['operate_name'] = '删除宝箱信息';
|
||||
}else if(strpos($v['url'],'admin/box/add_give_gift')){
|
||||
$v['operate_name'] = '添加礼物补发';
|
||||
}else if(strpos($v['url'],'admin/box/cancel_give_gift')){
|
||||
$v['operate_name'] = '取消礼物补发';
|
||||
}else if(strpos($v['url'],'admin/box/get_box_give_gift_list')){
|
||||
$v['operate_name'] = '礼物补发列表';
|
||||
}else if(strpos($v['url'],'admin/user/get_user_list')){
|
||||
$v['operate_name'] = '用户列表';
|
||||
}else if(strpos($v['url'],'admin/user/edit_user_info')){
|
||||
$v['operate_name'] = '修改用户信息';
|
||||
}else if(strpos($v['url'],'admin/user/edit_user_money')){
|
||||
$v['operate_name'] = '修改用户资金';
|
||||
}else if(strpos($v['url'],'admin/user/edit_user_password')){
|
||||
$v['operate_name'] = '修改用户密码';
|
||||
}else if(strpos($v['url'],'admin/user/gold_consume_del')){
|
||||
$v['operate_name'] = '清除地阶累消';
|
||||
}else if(strpos($v['url'],'admin/user/drill_consume_del')){
|
||||
$v['operate_name'] = '清除天阶累消';
|
||||
}else if(strpos($v['url'],'admin/user/get_user_gift_pack')){
|
||||
$v['operate_name'] = '用户背包列表';
|
||||
}else if(strpos($v['url'],'admin/user/del_user_gift_pack')){
|
||||
$v['operate_name'] = '删除用户背包礼物';
|
||||
}else if(strpos($v['url'],'admin/config/config_list')){
|
||||
$v['operate_name'] = '系统配置列表';
|
||||
}else if(strpos($v['url'],'admin/config/edit_config')){
|
||||
$v['operate_name'] = '修改配置信息';
|
||||
}else if(strpos($v['url'],'admin/config/del_config')){
|
||||
$v['operate_name'] = '删除配置信息';
|
||||
}else if(strpos($v['url'],'admin/config/add_config')){
|
||||
$v['operate_name'] = '添加配置信息';
|
||||
}else if(strpos($v['url'],'admin/Admin/get_admin_log_list')){
|
||||
$v['operate_name'] = '管理员日志';
|
||||
}else if(strpos($v['url'],'admin/Admin/get_admin_list')){
|
||||
$v['operate_name'] = '管理员列表';
|
||||
}else if(strpos($v['url'],'admin/Admin/add_admin')){
|
||||
$v['operate_name'] = '增加管理员';
|
||||
}else if(strpos($v['url'],'admin/Admin/edit_admin_password')){
|
||||
$v['operate_name'] = '修改管理员密码';
|
||||
}else if(strpos($v['url'],'admin/Admin/edit_admin_auth')){
|
||||
$v['operate_name'] = '修改管理员权限';
|
||||
}else if(strpos($v['url'],'admin/Admin/delete_admin')){
|
||||
$v['operate_name'] = '删除管理员';
|
||||
}
|
||||
}
|
||||
$data = [];
|
||||
$data['count'] = db::name('operation')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
|
||||
}
|
||||
|
||||
public function quit_admin_login($aid){
|
||||
if(empty($aid)){
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
|
||||
$map = [];
|
||||
$map[] = ['aid','=', $aid];
|
||||
$admin_info = db::name('admin')->where($map)->find();
|
||||
if(!$admin_info){
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
|
||||
$map = [];
|
||||
$map[] = ['aid', '=', $aid];
|
||||
$update_data = [];
|
||||
$update_data['login_token'] = '';
|
||||
$reslut = db::name('admin')->where($map)->update($update_data);
|
||||
if(!$reslut){
|
||||
return ['code' => 201, 'msg' => '退出失败', 'data' => null];
|
||||
}
|
||||
|
||||
return ['code' => 200, 'msg' => '退出成功', 'data' => null];
|
||||
|
||||
}
|
||||
|
||||
//二级密码校验
|
||||
public function check_secondary_password($pass){
|
||||
if(empty($pass)){
|
||||
return ['code' => 201, 'msg' => '二级密码不能为空', 'data' => null];
|
||||
}
|
||||
$pass_word = secondary_password();
|
||||
if(md5($pass) != $pass_word){
|
||||
return ['code' => 201, 'msg' => '二级密码错误', 'data' => null];
|
||||
}else{
|
||||
return ['code' => 200, 'msg' => '成功', 'data' => null];
|
||||
}
|
||||
}
|
||||
//清除登录状态
|
||||
public function clear_admin_token($super_aid, $aid)
|
||||
{
|
||||
if($super_aid != 1) {
|
||||
return ['code' => 201, 'msg' => '无权限操作', 'data' => null];
|
||||
}
|
||||
$result = Db::name('admin')->where('aid', $aid)->update(['login_token' => '', 'error_num' => 0, 'status' => 1, 'update_time' => time()]);
|
||||
if($result) {
|
||||
return ['code' => 200, 'msg' => '处理成功', 'data' => null];
|
||||
}
|
||||
return ['code' => 201, 'msg' => '处理失败', 'data' => null];
|
||||
}
|
||||
|
||||
}
|
||||
33
application/admin/model/AdminComModel.php
Normal file
33
application/admin/model/AdminComModel.php
Normal file
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace app\admin\model;
|
||||
|
||||
|
||||
use think\Model;
|
||||
|
||||
class AdminComModel extends Model
|
||||
{
|
||||
public function append_add_update_time($data, $add_time = true, $update_time = true)
|
||||
{
|
||||
if ($add_time) {
|
||||
$data['add_time'] = time();
|
||||
}
|
||||
if ($update_time) {
|
||||
$data['update_time'] = time();
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function append_add_time($data)
|
||||
{
|
||||
$data['add_time'] = time();
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function append_update_time($data)
|
||||
{
|
||||
$data['update_time'] = time();
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
103
application/admin/model/Agora.php
Normal file
103
application/admin/model/Agora.php
Normal file
@@ -0,0 +1,103 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\model;
|
||||
|
||||
use think\Db;
|
||||
use think\Model;
|
||||
|
||||
class Agora extends Model
|
||||
{
|
||||
protected $insert = [
|
||||
'add_time',
|
||||
];
|
||||
protected $update = ['update_time'];
|
||||
|
||||
|
||||
protected function setAddTimeAttr()
|
||||
{
|
||||
return time();
|
||||
}
|
||||
|
||||
protected function setUpdateTimeAttr()
|
||||
{
|
||||
return time();
|
||||
}
|
||||
|
||||
|
||||
//获取房间音乐列表
|
||||
public function agora_song_list($aid, $song_name, $singer, $order, $sort, $page = 1, $limit = 20)
|
||||
{
|
||||
$map = [];
|
||||
if (!empty($aid)) {
|
||||
$map[] = ['aid', '=', $aid];
|
||||
}
|
||||
if (!empty($song_name)) {
|
||||
$map[] = ['song_name', 'like', '%' . $song_name . '%'];
|
||||
}
|
||||
if (!empty($singer)) {
|
||||
$map[] = ['singer', 'like', '%' . $singer . '%'];
|
||||
}
|
||||
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$song_list = db::name('agora_song')->where($map)->order($order, $sort)->page($page, $limit)->select();
|
||||
$data = [];
|
||||
$data['count'] = db::name('agora_song')->where($map)->count();
|
||||
$data['list'] = $song_list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
//同步歌曲
|
||||
public function synchro_song(){
|
||||
//查看当前数据库存留歌曲
|
||||
$song = db::name('agora_song')->where('is_delete',1)->order('aid desc')->limit(1)->find();
|
||||
if(empty($song)){
|
||||
$datas = model('api/Agora')->agora_song_list(0, 1000, 0);
|
||||
}else{
|
||||
$datas = model('api/Agora')->agora_song_list(0, 1000, $song['song_code']);
|
||||
}
|
||||
if(empty($datas['data']['list'])){
|
||||
return ['code' => 201, 'msg' => '暂无更多歌曲', 'data' => null];
|
||||
}
|
||||
|
||||
$data = [];
|
||||
$data_array = [];
|
||||
foreach ($datas['data']['list'] as $k => $v){
|
||||
$data['song_code'] = $v['songCode'];
|
||||
$data['song_name'] = $v['name'];
|
||||
$data['singer'] = $v['singer'];
|
||||
$data['poster'] = $v['poster'];
|
||||
$data['duration'] = $v['duration'];
|
||||
$data['type'] = $v['type'];
|
||||
$data['release_time'] = strtotime($v['releaseTime']);
|
||||
$data['status'] = $v['status'];
|
||||
$data['add_time'] = time();
|
||||
if(!empty($v['mv'])){
|
||||
$data['mv'] = json_encode($v['mv'],true);
|
||||
}
|
||||
$data_array[] = $data;
|
||||
}
|
||||
// dump($data_array);exit;
|
||||
$result = db::name('agora_song')->insertAll($data_array);
|
||||
if($result){
|
||||
return ['code' => 200, 'msg' => '更新成功', 'data' => null];
|
||||
}else{
|
||||
return ['code' => 201, 'msg' => '更新失败', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//增量歌曲
|
||||
public function increment_song(){
|
||||
//查看当前数据库存留歌曲
|
||||
$song = db::name('agora_song')->where('is_delete', 1)->order('aid desc')->limit(1)->find();
|
||||
if(empty($song)){
|
||||
return ['code' => 201, 'msg' => '请先去同步歌曲', 'data' => null];
|
||||
}else{
|
||||
$datas = model('api/Agora')->agora_new_song_list(1, 1000, $song['add_time']);
|
||||
}
|
||||
|
||||
dump($datas);exit;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
488
application/admin/model/BlindBox.php
Normal file
488
application/admin/model/BlindBox.php
Normal file
@@ -0,0 +1,488 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\model;
|
||||
|
||||
use think\Model;
|
||||
use think\Db;
|
||||
|
||||
class BlindBox extends Model
|
||||
{
|
||||
//盲盒礼物列表
|
||||
public function get_blind_box_gift_list($tid)
|
||||
{
|
||||
$tid = 102;
|
||||
$map = [];
|
||||
$map[] = ['a.tid', '=', $tid];
|
||||
$list = db::name('box_config')->alias('a')
|
||||
->leftJoin('gift b', 'a.gid = b.gid')
|
||||
->field('b.gid,b.gift_name,b.gift_price,a.num')
|
||||
->where($map)->order('b.gift_price desc')
|
||||
->select();
|
||||
return ['code' => 200, 'msg' => '获取数据成功', 'data' => $list];
|
||||
}
|
||||
//获取所有不可购买礼物
|
||||
public function get_gift_list()
|
||||
{
|
||||
$tid = 102;
|
||||
$map = [];
|
||||
$map[] = ['is_show', '=', 1];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$map[] = ['is_can_buy', '=', 2];
|
||||
$list = db::name('gift')
|
||||
->field('gid,gift_name,gift_price')
|
||||
->where($map)->order('gift_price desc')
|
||||
->select();
|
||||
return ['code' => 200, 'msg' => '获取数据成功', 'data' => $list];
|
||||
}
|
||||
//限定礼物配置
|
||||
public function get_config_list($stage, $gid, $page = 1, $limit = 20)
|
||||
{
|
||||
$map = [];
|
||||
if(!empty($stage)){
|
||||
$map[] = ['a.stage', '=', $stage];
|
||||
}
|
||||
$list = db::name('blind_box_config')->alias('a')
|
||||
->leftJoin('gift b', 'a.gid = b.gid')
|
||||
->leftJoin('box_type c', 'a.tid = c.tid')
|
||||
->leftJoin('box_config d', 'a.tid = d.tid and a.gid = d.gid')
|
||||
->leftJoin('blind_box_stage e', 'a.stage = e.stage')
|
||||
->field('a.*,b.gift_name,b.gift_price,b.base_image,c.show_name,d.num,e.stage_name')
|
||||
->where($map)->order('id desc')
|
||||
->page($page, $limit)->select();
|
||||
foreach ($list as $k => &$v) {
|
||||
$total_bind_num = Db::name('blind_box_config')->where('stage', $v['stage'])->sum('bind_rate');
|
||||
$v['base_image'] = localpath_to_netpath($v['base_image']);
|
||||
if($total_bind_num > 0) {
|
||||
$v['bind_rate'] = bcmul(bcdiv($v['bind_rate'], $total_bind_num,4), 100, 2) . '%';
|
||||
} else {
|
||||
$v['bind_rate'] = '50%';
|
||||
}
|
||||
}
|
||||
$data = [];
|
||||
$data['count'] = db::name('blind_box_config')->alias('a')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
//添加配置
|
||||
public function add_config($data)
|
||||
{
|
||||
if(empty($data['stage'])) {
|
||||
return ['code' => 201, 'msg' => '请选择阶段', 'data' => null];
|
||||
}
|
||||
if(empty($data['gid'])) {
|
||||
return ['code' => 201, 'msg' => '请选择限定礼物', 'data' => null];
|
||||
}
|
||||
if(empty($data['time_long'])) {
|
||||
return ['code' => 201, 'msg' => '请输入限定礼物增加时长', 'data' => null];
|
||||
}
|
||||
$map = [];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$map[] = ['stage', '=', $data['stage']];
|
||||
$map[] = ['gid', '=', $data['gid']];
|
||||
$info = db::name('blind_box_config')->where($map)->find();
|
||||
if($info){
|
||||
return ['code' => 201, 'msg' => '限定礼物已添加', 'data' => null];
|
||||
}
|
||||
|
||||
Db::startTrans();
|
||||
try {
|
||||
//添加
|
||||
$insert = [];
|
||||
$insert['stage'] = $data['stage'];
|
||||
$insert['gid'] = $data['gid'];
|
||||
$insert['time_long'] = $data['time_long'];
|
||||
$insert['tid'] = 102;
|
||||
$insert['add_time'] = time();
|
||||
$insert['bind_rate'] = $data['bind_rate'];
|
||||
$reslut = db::name('blind_box_config')->insert($insert);
|
||||
if(!$reslut){
|
||||
Db::rollback();
|
||||
return ['code' => 201, 'msg' => '添加失败', 'data' => null];
|
||||
}
|
||||
Db::commit();
|
||||
return ['code' => 200, 'msg' => '添加成功', 'data' => null];
|
||||
} catch (\Exception $e) {
|
||||
|
||||
// 回滚事务
|
||||
Db::rollback();
|
||||
return ['code' => 201, 'msg' => '添加失败', 'data' => null];
|
||||
}
|
||||
|
||||
}
|
||||
//修改配置
|
||||
public function edit_config($data)
|
||||
{
|
||||
if(empty($data['stage'])) {
|
||||
return ['code' => 201, 'msg' => '请选择阶段', 'data' => null];
|
||||
}
|
||||
if(empty($data['gid'])) {
|
||||
return ['code' => 201, 'msg' => '请选择限定礼物', 'data' => null];
|
||||
}
|
||||
if(empty($data['time_long'])) {
|
||||
return ['code' => 201, 'msg' => '请输入限定礼物增加时长', 'data' => null];
|
||||
}
|
||||
$map = [];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$map[] = ['gid', '=', $data['gid']];
|
||||
$map[] = ['stage', '=', $data['stage']];
|
||||
$map[] = ['id', 'neq', $data['id']];
|
||||
$info = db::name('blind_box_config')->where($map)->find();
|
||||
if($info){
|
||||
return ['code' => 201, 'msg' => '限定礼物已添加', 'data' => null];
|
||||
}
|
||||
|
||||
Db::startTrans();
|
||||
try {
|
||||
//添加
|
||||
$insert = [];
|
||||
$insert['stage'] = $data['stage'];
|
||||
$insert['gid'] = $data['gid'];
|
||||
$insert['time_long'] = $data['time_long'];
|
||||
$insert['update_time'] = time();
|
||||
$insert['bind_rate'] = $data['bind_rate'];
|
||||
$reslut = db::name('blind_box_config')->where('id', $data['id'])->update($insert);
|
||||
if(!$reslut){
|
||||
Db::rollback();
|
||||
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
|
||||
}
|
||||
Db::commit();
|
||||
return ['code' => 200, 'msg' => '修改成功', 'data' => null];
|
||||
} catch (\Exception $e) {
|
||||
|
||||
// 回滚事务
|
||||
Db::rollback();
|
||||
|
||||
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
|
||||
}
|
||||
}
|
||||
//获取配置信息
|
||||
public function get_config_info($id)
|
||||
{
|
||||
$map = [];
|
||||
$map[] = ['id', '=', $id];
|
||||
$config_info = db::name('blind_box_config')->where($map)->find();
|
||||
if (empty($config_info)) {
|
||||
return ['code' => 201, 'msg' => '信息不存在', 'data' => ''];
|
||||
}
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $config_info];
|
||||
}
|
||||
public function del_config($id)
|
||||
{
|
||||
$map = [];
|
||||
$map[] = ['id', '=', $id];
|
||||
$config_info = db::name('blind_box_config')->where($map)->find();
|
||||
if (empty($config_info)) {
|
||||
return ['code' => 201, 'msg' => '信息不存在', 'data' => ''];
|
||||
}
|
||||
|
||||
Db::startTrans();
|
||||
try {
|
||||
$result = db::name('blind_box_config')->where('id', $id)->delete();
|
||||
if(!$result){
|
||||
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_stage_list($pattern_id, $page = 1, $limit = 20)
|
||||
{
|
||||
|
||||
$map = [];
|
||||
if ($pattern_id) {
|
||||
$map[] = ['pattern_id', '=', $pattern_id];
|
||||
}
|
||||
$list = db::name('blind_box_stage')->alias('a')
|
||||
->leftJoin('gift b', 'a.gid = b.gid')
|
||||
->leftJoin('gift c', 'a.gid_r = c.gid')
|
||||
->field('a.*,b.gift_name,b.gift_price,b.base_image,c.gift_price as gift_price_r,c.gift_name as gift_name_r')
|
||||
->where($map)->order('id desc')
|
||||
->page($page, $limit)->select();
|
||||
foreach ($list as &$v) {
|
||||
$v['base_image'] = localpath_to_netpath($v['base_image']);
|
||||
}
|
||||
$data = [];
|
||||
$data['count'] = db::name('blind_box_stage')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
public function edit_stage($data)
|
||||
{
|
||||
|
||||
if(empty($data['num'])) {
|
||||
if ($data['id'] != 1) {
|
||||
return ['code' => 201, 'msg' => '请输入阶段数量', 'data' => null];
|
||||
}
|
||||
|
||||
}
|
||||
if (empty($data['gid'])) {
|
||||
return ['code' => 201, 'msg' => '请选择奖励礼物', 'data' => null];
|
||||
}
|
||||
$map = [];
|
||||
$map[] = ['num', '=', $data['num']];
|
||||
$map[] = ['id', 'neq', $data['id']];
|
||||
$info = db::name('blind_box_stage')->where($map)->find();
|
||||
if($info){
|
||||
return ['code' => 201, 'msg' => '阶段数量已添加', 'data' => null];
|
||||
}
|
||||
|
||||
Db::startTrans();
|
||||
try {
|
||||
//添加
|
||||
$insert = [];
|
||||
$insert['num'] = $data['num'];
|
||||
$insert['update_time'] = time();
|
||||
$insert['gid'] = $data['gid'];
|
||||
$insert['gid_r'] = $data['gid_r'];
|
||||
$reslut = db::name('blind_box_stage')->where('id', $data['id'])->update($insert);
|
||||
if(!$reslut){
|
||||
Db::rollback();
|
||||
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
|
||||
}
|
||||
Db::commit();
|
||||
return ['code' => 200, 'msg' => '修改成功', 'data' => null];
|
||||
} catch (\Exception $e) {
|
||||
|
||||
// 回滚事务
|
||||
Db::rollback();
|
||||
dump($e);
|
||||
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
|
||||
}
|
||||
}
|
||||
//获取阶段信息
|
||||
public function get_stage_info($id)
|
||||
{
|
||||
$map = [];
|
||||
$map[] = ['id', '=', $id];
|
||||
$config_info = db::name('blind_box_stage')->where($map)->find();
|
||||
if (empty($config_info)) {
|
||||
return ['code' => 201, 'msg' => '信息不存在', 'data' => ''];
|
||||
}
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $config_info];
|
||||
}
|
||||
//获取期数
|
||||
public function get_term_list($status, $page = 1, $limit = 20)
|
||||
{
|
||||
$map = [];
|
||||
$map[] = ['a.is_delete', '=', 1];
|
||||
if ($status) {
|
||||
$map[] = ['a.status', '=', $status];
|
||||
}
|
||||
$list = db::name('blind_box_term')->alias('a')
|
||||
->leftJoin('box_type b', 'a.tid = b.tid')
|
||||
->field('a.*,b.show_name')
|
||||
->where($map)->order('id desc')
|
||||
->page($page, $limit)->select();
|
||||
$data = [];
|
||||
$data['count'] = db::name('blind_box_term')->alias('a')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
//添加期数
|
||||
public function add_term($data)
|
||||
{
|
||||
if(empty($data['time_long'])) {
|
||||
return ['code' => 201, 'msg' => '请输入时长', 'data' => null];
|
||||
}
|
||||
$map = [];
|
||||
$map[] = ['status', '=', 1];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$info = db::name('blind_box_term')->where($map)->find();
|
||||
if($info){
|
||||
return ['code' => 201, 'msg' => '已存在未开启活动,请勿重新添加', 'data' => null];
|
||||
}
|
||||
|
||||
try {
|
||||
//添加
|
||||
$insert = [];
|
||||
$insert['time_long'] = $data['time_long'];
|
||||
$insert['tid'] = 102;
|
||||
$insert['add_time'] = time();
|
||||
$result = db::name('blind_box_term')->insert($insert);
|
||||
|
||||
return ['code' => 200, 'msg' => '添加成功', 'data' => null];
|
||||
} catch (\Exception $e) {
|
||||
dump($e);
|
||||
|
||||
return ['code' => 201, 'msg' => '添加失败', 'data' => null];
|
||||
}
|
||||
|
||||
}
|
||||
//修改期数
|
||||
public function edit_term($data)
|
||||
{
|
||||
$term_info = Db::name('blind_box_term')->find($data['id']);
|
||||
if(empty($term_info)){
|
||||
return ['code' => 201, 'msg' => '信息不存在', 'data' => null];
|
||||
}
|
||||
if ($term_info['status'] != 1) {
|
||||
return ['code' => 201, 'msg' => '该期已启用,无法修改', 'data' => null];
|
||||
}
|
||||
if(empty($data['time_long'])) {
|
||||
return ['code' => 201, 'msg' => '请输入活动时长', 'data' => null];
|
||||
}
|
||||
|
||||
try {
|
||||
//添加
|
||||
$insert = [];
|
||||
$insert['time_long'] = $data['time_long'];
|
||||
$insert['update_time'] = time();
|
||||
$result = db::name('blind_box_term')->where('id', $data['id'])->update($insert);
|
||||
|
||||
|
||||
return ['code' => 200, 'msg' => '修改成功', 'data' => null];
|
||||
} catch (\Exception $e) {
|
||||
|
||||
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
|
||||
}
|
||||
}
|
||||
//获取期数信息
|
||||
public function get_term_info($id)
|
||||
{
|
||||
$map = [];
|
||||
$map[] = ['id', '=', $id];
|
||||
$config_info = db::name('blind_box_term')->where($map)->find();
|
||||
if (empty($config_info)) {
|
||||
return ['code' => 201, 'msg' => '信息不存在', 'data' => ''];
|
||||
}
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $config_info];
|
||||
}
|
||||
public function del_term($id)
|
||||
{
|
||||
$map = [];
|
||||
$map[] = ['id', '=', $id];
|
||||
$term_info = db::name('blind_box_term')->where($map)->find();
|
||||
if (empty($term_info)) {
|
||||
return ['code' => 201, 'msg' => '期数不存在', 'data' => ''];
|
||||
}
|
||||
if ($term_info['status'] != 1) {
|
||||
return ['code' => 201, 'msg' => '该期已启用,无法删除', 'data' => null];
|
||||
}
|
||||
|
||||
try {
|
||||
$result = db::name('blind_box_term')->where('id', $id)->update(['is_delete' => 2, 'delete_time' => time()]);
|
||||
|
||||
return ['code' => 200, 'msg' => '删除成功', 'data' => null];
|
||||
} catch (\Exception $e) {
|
||||
dump($e);
|
||||
|
||||
return ['code' => 201, 'msg' => '删除失败', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
//开启活动
|
||||
public function open_term($id)
|
||||
{
|
||||
$map = [];
|
||||
$map[] = ['id', '=', $id];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$term_info = db::name('blind_box_term')->where($map)->find();
|
||||
if (empty($term_info)) {
|
||||
return ['code' => 201, 'msg' => '期数不存在', 'data' => ''];
|
||||
}
|
||||
if ($term_info['status'] != 1) {
|
||||
return ['code' => 201, 'msg' => '该期已启用,无法开启', 'data' => null];
|
||||
}
|
||||
$map = [];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$map[] = ['status', '=', 2];
|
||||
$has_open_term = db::name('blind_box_term')->where($map)->find();
|
||||
if($has_open_term){
|
||||
return ['code' => 201, 'msg' => '已有进行中的期数,请勿重复开启', 'data' => null];
|
||||
}
|
||||
//获取锁定礼物
|
||||
$lock_gift_list = db::name('blind_box_config')
|
||||
->where('tid', 102)
|
||||
->select();
|
||||
$lock_gid_arr = [];
|
||||
$lock_stage_gid_list = [];
|
||||
foreach($lock_gift_list as $v) {
|
||||
if ($v['stage'] > 0) {
|
||||
if($v['bind_rate'] > 0) {
|
||||
for($i=1; $i<=$v['bind_rate']; $i++) {
|
||||
$lock_gid_arr[$v['stage']][] = $v['gid'];
|
||||
}
|
||||
} else {
|
||||
$lock_gid_arr[$v['stage']][] = $v['gid'];
|
||||
}
|
||||
|
||||
$lock_stage_gid_list[$v['stage'] . '-' . $v['gid']] = $v;
|
||||
}
|
||||
}
|
||||
$stage_list = Db::name('blind_box_stage')->order('stage asc')->select();
|
||||
$params = [];
|
||||
foreach ($stage_list as $v) {
|
||||
$stage = $v['stage'];
|
||||
$gid_arr = $lock_gid_arr[$v['stage']] ?? [];
|
||||
if (empty($gid_arr)) {
|
||||
return ['code' => 201, 'msg' => '阶段' . $stage . '未配置礼物', 'data' => null];
|
||||
}
|
||||
shuffle($gid_arr);
|
||||
$gid = $gid_arr[array_rand($gid_arr)];
|
||||
$gid_info = $lock_stage_gid_list[$stage . '-' . $gid] ?? [];
|
||||
if (empty($gid_info)) {
|
||||
return ['code' => 201, 'msg' => '阶段' . $stage . '未配置礼物', 'data' => null];
|
||||
}
|
||||
$temp = [
|
||||
'term_id' => $id,
|
||||
'gid' => $gid,
|
||||
'num' => $v['num'],
|
||||
'multi' => $v['multi'],
|
||||
'time_long' => $gid_info['time_long'],
|
||||
'stage' => $v['stage'],
|
||||
'add_time' => time(),
|
||||
'pattern_id' => $v['pattern_id'],
|
||||
'reward_gid' => $v['gid'],
|
||||
'reward_gid_r' => $v['gid_r'],
|
||||
];
|
||||
$params[] = $temp;
|
||||
}
|
||||
|
||||
$end_time = $term_info['time_long'] * 60;
|
||||
$end_time = $end_time + time();
|
||||
|
||||
$update_data = [
|
||||
'status' => 2,
|
||||
'start_time' => time(),
|
||||
'end_time' => $end_time,
|
||||
'real_end_time' => $end_time,
|
||||
'update_time' => time(),
|
||||
'pattern_id' => 1,
|
||||
];
|
||||
Db::startTrans();
|
||||
try {
|
||||
Db::name('blind_box_term')->where('id', $id)->update($update_data);
|
||||
Db::name('blind_box_term_params')->insertAll($params);
|
||||
Db::commit();
|
||||
$push_data = [
|
||||
'code' => 312,
|
||||
'msg' => '盲盒巡乐开始',
|
||||
'data' => [
|
||||
'term_id' => $id,
|
||||
'over_time' => $term_info['time_long'] * 60
|
||||
]
|
||||
];
|
||||
model('api/WebSocketPush')->send_to_all($push_data);
|
||||
return ['code' => 200, 'msg' => '开启成功', 'data' => null];
|
||||
} catch (\Exception $e) {
|
||||
|
||||
Db::rollback();
|
||||
// dump($e);
|
||||
// 回滚事务
|
||||
return ['code' => 201, 'msg' => '开启失败', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
214
application/admin/model/Block.php
Normal file
214
application/admin/model/Block.php
Normal file
@@ -0,0 +1,214 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\model;
|
||||
|
||||
use think\Model;
|
||||
use think\Db;
|
||||
|
||||
class Block extends Model
|
||||
{
|
||||
|
||||
public function get_block_list($type, $type_text, $is_delete, $page = 1, $limit = 20)
|
||||
{
|
||||
$map = [];
|
||||
if(!empty($type)){
|
||||
$map[] = ['type', '=', $type];
|
||||
}
|
||||
if(!empty($type_text)){
|
||||
$map[] = ['type_text', '=', $type_text];
|
||||
}
|
||||
if(!empty($is_delete)){
|
||||
$map[] = ['is_delete', '=', $is_delete];
|
||||
}
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$list = db::name('block')->where($map)->order('id desc')->page($page, $limit)->select();
|
||||
foreach ($list as $k => &$v) {
|
||||
|
||||
}
|
||||
|
||||
$data = [];
|
||||
$data['count'] = db::name('block')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
|
||||
public function add_block($aid, $data)
|
||||
{
|
||||
if(empty($data['type_text'])){
|
||||
return ['code' => 201, 'msg' => '封禁内容不能为空', 'data' => null];
|
||||
}
|
||||
|
||||
// if(empty($data['block_note'])){
|
||||
// return ['code' => 201, 'msg' => '封禁原因不能为空', 'data' => null];
|
||||
// }
|
||||
|
||||
// if(empty($data['block_time'])){
|
||||
// return ['code' => 201, 'msg' => '封禁截止日期不能为空', 'data' => null];
|
||||
// }
|
||||
|
||||
// $block_time = $data['block_time'];
|
||||
// $data['block_time'] = strtotime($data['block_time']);
|
||||
|
||||
$map = [];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$map[] = ['type', '=', $data['type']];
|
||||
$map[] = ['type_text', '=', $data['type_text']];
|
||||
$info = db::name('block')->where($map)->find();
|
||||
if($info){
|
||||
return ['code' => 201, 'msg' => '当前封禁内容已添加', 'data' => null];
|
||||
}
|
||||
|
||||
Db::startTrans();
|
||||
try {
|
||||
|
||||
//添加
|
||||
$insert = [];
|
||||
$insert['aid'] = $aid;
|
||||
$insert['type'] = $data['type'];
|
||||
$insert['type_text'] = $data['type_text'];
|
||||
// $insert['block_time'] = $data['block_time'];
|
||||
// $insert['block_note'] = $data['block_note'];
|
||||
$insert['add_time'] = time();
|
||||
$reslut = db::name('block')->insert($insert);
|
||||
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 del_block($id)
|
||||
{
|
||||
$map = [];
|
||||
$map[] = ['id', '=', $id];
|
||||
$block_info = db::name('block')->where($map)->find();
|
||||
if (empty($block_info)) {
|
||||
return ['code' => 201, 'msg' => '信息不存在', 'data' => ''];
|
||||
}
|
||||
|
||||
Db::startTrans();
|
||||
try {
|
||||
|
||||
//删除封禁
|
||||
$update = [];
|
||||
$update['is_delete'] = 2;
|
||||
$update['update_time'] = time();
|
||||
$reslut = db::name('block')->where('id', $id)->update($update);
|
||||
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 close_room_unfreeze(){
|
||||
$now_time = time();
|
||||
$map = [];
|
||||
$map[] = ['room_status', '=', 2];
|
||||
$map[] = ['block_time', '<=', $now_time];
|
||||
$block_room_list = db::name('room')->where($map)->select();
|
||||
if($block_room_list){
|
||||
foreach ($block_room_list as $k => $v){
|
||||
Db::startTrans();
|
||||
try {
|
||||
//解禁房间
|
||||
$update = [];
|
||||
$update['room_status'] = 1;
|
||||
$update['block_time'] = 0;
|
||||
$update['block_note'] = '';
|
||||
$update['update_time'] = $now_time;
|
||||
$reslut = db::name('room')->where('rid', $v['rid'])->update($update);
|
||||
if(!$reslut){
|
||||
Db::rollback();
|
||||
}
|
||||
//删除解禁记录
|
||||
$where = [];
|
||||
$where[] = ['rid', '=', $v['rid']];
|
||||
$where[] = ['is_delete', '=', 1];
|
||||
$update = [];
|
||||
$update['is_delete'] = 2;
|
||||
$update['update_time'] = $now_time;
|
||||
$reslut = db::name('room_block_log')->where($where)->update($update);
|
||||
if(!$reslut){
|
||||
Db::rollback();
|
||||
}
|
||||
|
||||
Db::commit();
|
||||
} catch (\Exception $e) {
|
||||
dump($e);
|
||||
// 回滚事务
|
||||
Db::rollback();
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
//定时任务 用户解禁
|
||||
public function close_user_unfreeze(){
|
||||
$now_time = time();
|
||||
$map = [];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$map[] = ['block_time', '<=', $now_time];
|
||||
$block_user_list = db::name('block')->where($map)->select();
|
||||
if($block_user_list){
|
||||
foreach ($block_user_list as $k => $v){
|
||||
Db::startTrans();
|
||||
try {
|
||||
if($v['type'] == 2){//解封账号
|
||||
$map = [];
|
||||
$map[] = ['user_name', '=', $v['type_text']];
|
||||
$update = [];
|
||||
$update['login_status'] = 1;
|
||||
$update['update_time'] = time();
|
||||
$reslut = db::name('user')->where($map)->update($update);
|
||||
if(!$reslut){
|
||||
Db::rollback();
|
||||
}
|
||||
}
|
||||
|
||||
//解封记录
|
||||
$update = [];
|
||||
$update['is_delete'] = 2;
|
||||
$update['update_time'] = time();
|
||||
$reslut = db::name('block')->where('id', $v['id'])->update($update);
|
||||
if(!$reslut){
|
||||
Db::rollback();
|
||||
}
|
||||
|
||||
Db::commit();
|
||||
} catch (\Exception $e) {
|
||||
dump($e);
|
||||
// 回滚事务
|
||||
Db::rollback();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
1046
application/admin/model/Box.php
Normal file
1046
application/admin/model/Box.php
Normal file
File diff suppressed because it is too large
Load Diff
119
application/admin/model/BoxGiveGift.php
Normal file
119
application/admin/model/BoxGiveGift.php
Normal file
@@ -0,0 +1,119 @@
|
||||
<?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' => ''];
|
||||
}
|
||||
}
|
||||
26
application/admin/model/BoxType.php
Normal file
26
application/admin/model/BoxType.php
Normal file
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\model;
|
||||
|
||||
use think\Model;
|
||||
|
||||
class BoxType extends Model
|
||||
{
|
||||
protected $pk = 'tid';
|
||||
protected $auto = ['update_time'];
|
||||
protected $insert = [
|
||||
'add_time',
|
||||
];
|
||||
protected $update = ['update_time'];
|
||||
|
||||
|
||||
protected function setAddTimeAttr()
|
||||
{
|
||||
return time();
|
||||
}
|
||||
|
||||
protected function setUpdateTimeAttr()
|
||||
{
|
||||
return time();
|
||||
}
|
||||
}
|
||||
1004
application/admin/model/Capital.php
Normal file
1004
application/admin/model/Capital.php
Normal file
File diff suppressed because it is too large
Load Diff
128
application/admin/model/Config.php
Normal file
128
application/admin/model/Config.php
Normal file
@@ -0,0 +1,128 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\model;
|
||||
|
||||
use think\Model;
|
||||
use think\Db;
|
||||
|
||||
class Config extends Model
|
||||
{
|
||||
//获取配置参数
|
||||
public function get_system_config($key = "")
|
||||
{
|
||||
$config = Db::name('config')->cache(10)->order('sort desc')->select();
|
||||
$config_data = [];
|
||||
foreach ($config as $k => $v) {
|
||||
$config_data[$v['key_title']] = $v['key_value'];
|
||||
}
|
||||
if (empty($key)) {
|
||||
return $config_data;
|
||||
} else {
|
||||
if (!isset($config_data[$key]) || $config_data[$key] == "") {
|
||||
return ajaxReturn(201, '配置参数:' . $key . '不存在', null);
|
||||
}
|
||||
return $config_data[$key];
|
||||
}
|
||||
}
|
||||
|
||||
//无缓存获取配置参数
|
||||
public function get_uncache_system_config($key = "")
|
||||
{
|
||||
$config = Db::name('config')->order('sort desc')->select();
|
||||
$config_data = [];
|
||||
foreach ($config as $k => $v) {
|
||||
$config_data[$v['key_title']] = $v['key_value'];
|
||||
}
|
||||
if (empty($key)) {
|
||||
return $config_data;
|
||||
} else {
|
||||
if (!isset($config_data[$key]) || $config_data[$key] == "") {
|
||||
return ajaxReturn(201, '配置参数:' . $key . '不存在', null);
|
||||
}
|
||||
return $config_data[$key];
|
||||
}
|
||||
}
|
||||
|
||||
//配置列表
|
||||
public function config_list($cid, $key_name, $order, $sort, $page = 1, $limit = 20)
|
||||
{
|
||||
$map = [];
|
||||
if (!empty($cid)) {
|
||||
$map[] = ['cid', '=', $cid];
|
||||
}
|
||||
if (!empty($key_name)) {
|
||||
$map[] = ['key_name|key_value', 'like', '%' . $key_name . '%'];
|
||||
}
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$list = db::name('config')->where($map)->order($order, $sort)->page($page, $limit)->select();
|
||||
|
||||
$data = [];
|
||||
$data['count'] = db::name('config')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
//编辑配置
|
||||
public function edit_config($data)
|
||||
{
|
||||
if (empty($data)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$info = db::name('config')->find($data['cid']);
|
||||
if (empty($info)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$update_data = [];
|
||||
// $update_data['key_title'] = $data['key_title'];
|
||||
// $update_data['key_name'] = $data['key_name'];
|
||||
$update_data['key_value'] = $data['key_value'];
|
||||
$update_data['key_desc'] = $data['key_desc'];
|
||||
$update_data['update_time'] = time();
|
||||
$reslut = db::name('config')->where(['cid' => $data['cid']])->update($update_data);
|
||||
if (!$reslut) {
|
||||
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 200, 'msg' => '修改成功', 'data' => null];
|
||||
}
|
||||
}
|
||||
//添加配置
|
||||
public function add_config($data)
|
||||
{
|
||||
$add_data = [];
|
||||
$add_data['key_title'] = $data['key_title'];
|
||||
$add_data['key_name'] = $data['key_name'];
|
||||
$add_data['key_value'] = $data['key_value'];
|
||||
$add_data['key_desc'] = $data['key_desc'];
|
||||
$add_data['update_time'] = time();
|
||||
$reslut = db::name('config')->insert($add_data);
|
||||
if (!$reslut) {
|
||||
return ['code' => 201, 'msg' => '添加失败', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 200, 'msg' => '添加成功', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
//获取配置信息
|
||||
public function config_info($cid)
|
||||
{
|
||||
if (empty($cid)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$gift_info = db::name('config')->where(['cid' => $cid])->find();
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $gift_info];
|
||||
}
|
||||
|
||||
//删除配置
|
||||
public function del_config($cid)
|
||||
{
|
||||
return ['code' => 201, 'msg' => '操作已禁止', 'data' => null];
|
||||
if (empty($cid)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$reslut = db::name('config')->where(['cid' => $cid])->delete();
|
||||
if ($reslut) {
|
||||
return ['code' => 200, 'msg' => '删除成功', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 201, 'msg' => '删除失败', 'data' => null];
|
||||
}
|
||||
}
|
||||
}
|
||||
502
application/admin/model/Decorate.php
Normal file
502
application/admin/model/Decorate.php
Normal file
@@ -0,0 +1,502 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\model;
|
||||
|
||||
use think\Model;
|
||||
use think\Db;
|
||||
|
||||
class Decorate extends Model
|
||||
{
|
||||
//获取装扮列表
|
||||
public function get_decorate_list($title, $type, $page = 1, $limit = 20)
|
||||
{
|
||||
$map = [];
|
||||
if (!empty($type)) {
|
||||
$map[] = ['type', '=', $type];
|
||||
}
|
||||
if (!empty($title)) {
|
||||
$map[] = ['title', 'like', '%' . $title . '%'];
|
||||
}
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
|
||||
$list = db::name('decorate')->where($map)->order('did desc')->page($page, $limit)->select();
|
||||
foreach ($list as $k => &$v) {
|
||||
$v['base_image'] = localpath_to_netpath($v['base_image']);
|
||||
$v['play_image'] = localpath_to_netpath($v['play_image']);
|
||||
}
|
||||
$data = [];
|
||||
$data['count'] = db::name('decorate')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
public function get_decorates_list()
|
||||
{
|
||||
$map = [];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$map[] = ['type', 'in', [1,2,4,5]];
|
||||
$list = db::name('decorate')->where($map)->order('did', 'asc')->select();
|
||||
$data = [];
|
||||
$data['count'] = db::name('decorate')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
//编辑装扮
|
||||
public function add_decorate_info($title, $type, $base_image, $play_image, $day, $price, $show_status, $file_type, $plays_image, $is_buy)
|
||||
{
|
||||
// $map = [];
|
||||
// $map[] = ['did', '=', $did];
|
||||
// $map[] = ['is_delete', '=', 1];
|
||||
// $info = db::name('decorate')->where($map)->find();
|
||||
// if (empty($info)) {
|
||||
// return ['code' => 201, 'msg' => '信息不存在', 'data' => null];
|
||||
// }
|
||||
if (!in_array($type, [1, 2, 3, 4, 5,6,7,9])) {
|
||||
return ['code' => 201, 'msg' => '装扮类型参数非法', 'data' => null];
|
||||
}
|
||||
$special_num = input('special_num', 0);
|
||||
$data = [];
|
||||
$data['title'] = $title;
|
||||
$data['type'] = $type;
|
||||
$data['base_image'] = $base_image;
|
||||
// $data['play_image'] = $play_image;
|
||||
$data['file_type'] = $file_type;
|
||||
if($file_type == 1){
|
||||
$data['play_image'] = $play_image;
|
||||
}else{
|
||||
$data['play_image'] = $plays_image;
|
||||
}
|
||||
// $data['day'] = $day;
|
||||
// $data['price'] = $price;
|
||||
$data['is_buy'] = $is_buy;
|
||||
$data['show_status'] = $show_status;
|
||||
$data['is_delete'] = 1;
|
||||
$data['delete_time'] = 0;
|
||||
$data['add_time'] = time();
|
||||
$data['update_time'] = time();
|
||||
if($type == 6 || $type == 7) {
|
||||
if(empty($special_num)) {
|
||||
return ['code' => 201, 'msg' => '请输入靓号号码', 'data' => null];
|
||||
}
|
||||
$map = [];
|
||||
$map[] = ['special_num', '=', $special_num];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$count = Db::name('decorate')->where($map)->count();
|
||||
if($count > 0) {
|
||||
return ['code' => 201, 'msg' => '靓号已存在', 'data' => null];
|
||||
}
|
||||
} else {
|
||||
$special_num = 0;
|
||||
}
|
||||
$data['special_num'] = $special_num;
|
||||
$status = db::name('decorate')->insert($data);
|
||||
if ($status) {
|
||||
return ['code' => 200, 'msg' => '添加成功', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 201, 'msg' => '添加失败', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
//编辑装扮
|
||||
public function get_decorate_info($did)
|
||||
{
|
||||
$map = [];
|
||||
$map[] = ['did', '=', $did];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$info = db::name('decorate')->where($map)->find();
|
||||
if (empty($info)) {
|
||||
return ['code' => 201, 'msg' => '信息不存在', 'data' => null];
|
||||
}
|
||||
|
||||
$info['http_base_image'] = localpath_to_netpath($info['base_image']);
|
||||
$info['http_play_image'] = localpath_to_netpath($info['play_image']);
|
||||
$info['plays_image'] = $info['play_image'];
|
||||
return ['code' => 200, 'msg' => '编辑成功', 'data' => $info];
|
||||
}
|
||||
public function edit_decorate_info($did, $title, $type, $base_image, $play_image, $show_status, $day, $price, $file_type, $plays_image, $is_buy)
|
||||
{
|
||||
$map = [];
|
||||
$map[] = ['did', '=', $did];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$info = db::name('decorate')->where($map)->find();
|
||||
if (empty($info)) {
|
||||
return ['code' => 201, 'msg' => '信息不存在', 'data' => null];
|
||||
}
|
||||
if (!in_array($type, [1, 2, 3, 4, 5, 6, 7,9])) {
|
||||
return ['code' => 201, 'msg' => '装扮类型参数非法', 'data' => null];
|
||||
}
|
||||
if (!in_array($show_status, [1, 2])) {
|
||||
return ['code' => 201, 'msg' => '显示状态参数非法', 'data' => null];
|
||||
}
|
||||
$special_num = input('special_num', 0);
|
||||
//修改用户装扮表对应装扮类型
|
||||
$data = [];
|
||||
$data['type'] = $type;
|
||||
$data['update_time'] = time();
|
||||
$map = [];
|
||||
$map[] = ['did', '=', $did];
|
||||
db::name('user_decorate')->where($map)->update($data);
|
||||
|
||||
$data = [];
|
||||
$data['title'] = $title;
|
||||
$data['type'] = $type;
|
||||
$data['base_image'] = $base_image;
|
||||
// $data['play_image'] = $play_image;
|
||||
$data['file_type'] = $file_type;
|
||||
if($file_type == 1){
|
||||
$data['play_image'] = $play_image;
|
||||
}else{
|
||||
$data['play_image'] = $plays_image;
|
||||
}
|
||||
$data['show_status'] = $show_status;
|
||||
// $data['day'] = $day;
|
||||
// $data['price'] = $price;
|
||||
$data['is_buy'] = $is_buy;
|
||||
$data['update_time'] = time();
|
||||
if($type == 6 || $type == 7) {
|
||||
if(empty($special_num)) {
|
||||
return ['code' => 201, 'msg' => '请输入靓号号码', 'data' => null];
|
||||
}
|
||||
$map = [];
|
||||
$map[] = ['special_num', '=', $special_num];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$map[] = ['did', 'neq', $did];
|
||||
$count = Db::name('decorate')->where($map)->count();
|
||||
if($count > 0) {
|
||||
return ['code' => 201, 'msg' => '靓号已存在', 'data' => null];
|
||||
}
|
||||
} else {
|
||||
$special_num = 0;
|
||||
}
|
||||
$data['special_num'] = $special_num;
|
||||
$map = [];
|
||||
$map[] = ['did', '=', $did];
|
||||
$status = db::name('decorate')->where($map)->update($data);
|
||||
if ($status) {
|
||||
return ['code' => 200, 'msg' => '编辑成功', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 201, 'msg' => '编辑失败', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
//删除装扮
|
||||
public function delete_decorate_info($did)
|
||||
{
|
||||
$map = [];
|
||||
$map[] = ['did', '=', $did];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$info = db::name('decorate')->where($map)->find();
|
||||
if (empty($info)) {
|
||||
return ['code' => 201, 'msg' => '信息不存在', 'data' => null];
|
||||
}
|
||||
|
||||
$data = [];
|
||||
$data['is_delete'] = 2;
|
||||
$data['delete_time'] = time();
|
||||
$map = [];
|
||||
$map[] = ['did', '=', $did];
|
||||
$status = db::name('decorate')->where($map)->update($data);
|
||||
if ($status) {
|
||||
return ['code' => 200, 'msg' => '删除成功', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 201, 'msg' => '删除失败', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
//清理过期装扮
|
||||
public function clear_user_decorate()
|
||||
{
|
||||
$map = [];
|
||||
$map[] = ['end_time', '<', time()];
|
||||
$map[] = ['is_perpetual', '=', 2];
|
||||
$list = Db::name('user_decorate')->where($map)->select();
|
||||
Db::startTrans();
|
||||
try {
|
||||
foreach($list as $v) {
|
||||
if($v['type'] == 7 && $v['rid'] > 0 && $v['is_using'] == 1) {
|
||||
Db::name('room')->where('rid', $v['rid'])->update(['pretty_room_number' => 0]);
|
||||
}
|
||||
if($v['type'] == 6 && $v['is_using'] == 1) {
|
||||
Db::name('user')->where('uid', $v['uid'])->update(['special_uid' => 0]);
|
||||
}
|
||||
if($v['type'] == 7 || $v['type'] == 6) {
|
||||
db::name('decorate')->where(['did' => $v['did']])->update(['is_user_buy' => 2]);
|
||||
}
|
||||
}
|
||||
db::name('user_decorate')->where($map)->delete();
|
||||
// 提交事务
|
||||
Db::commit();
|
||||
return ['code' => 200, 'msg' => "成功", 'data' => null];
|
||||
} catch (\Exception $e) {
|
||||
|
||||
Db::rollback();
|
||||
dump($e);
|
||||
// 回滚事务
|
||||
return ['code' => 201, 'msg' => "失败5", 'data' => null];
|
||||
}
|
||||
return '清理成功';
|
||||
}
|
||||
public function give_user_decorate($uid, $did, $day)
|
||||
{
|
||||
if ($day < 1) {
|
||||
return ['code' => 201, 'msg' => '赠送至少一天', 'data' => null];
|
||||
}
|
||||
$map = [];
|
||||
$map[] = ['did', '=', $did];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$decorate_info = db::name('decorate')->where($map)->find();
|
||||
if (empty($decorate_info)) {
|
||||
return ['code' => 201, 'msg' => '装扮信息不存在', 'data' => null];
|
||||
}
|
||||
if($decorate_info['is_user_buy'] == 1){
|
||||
return ['code' => 201, 'msg' => '该装扮已无法赠送', 'data' => null];
|
||||
}
|
||||
$user_info = db::name('user')->where('uid', $uid)->find();
|
||||
if (empty($user_info)) {
|
||||
return ['code' => 201, 'msg' => '用户信息不存在', 'data' => null];
|
||||
}
|
||||
$map = [];
|
||||
$map[] = ['uid', '=', $uid];
|
||||
$map[] = ['did', '=', $did];
|
||||
$user_decorate_data = db::name('user_decorate')->where($map)->find();
|
||||
if (empty($user_decorate_data)) {
|
||||
$data = [];
|
||||
$data['uid'] = $uid;
|
||||
$data['did'] = $did;
|
||||
$data['type'] = $decorate_info['type'];
|
||||
$data['is_using'] = 2;
|
||||
$now_time = time();
|
||||
$data['special_num'] = $decorate_info['special_num'];
|
||||
$data['end_time'] = $now_time + $day * 24 * 3600;
|
||||
$data['add_time'] = $now_time;
|
||||
$data['update_time'] = $now_time;
|
||||
db::name('user_decorate')->insert($data);
|
||||
} else {
|
||||
$change_time = $day * 24 * 3600;
|
||||
db::name('user_decorate')->where('udid', $user_decorate_data['udid'])->setInc('end_time', $change_time);
|
||||
}
|
||||
if($decorate_info['type'] == 6 || $decorate_info['type'] == 7){
|
||||
Db::name('decorate')->where('did', $decorate_info['did'])->update(['is_user_buy' => 1, 'update_time' => time()]);
|
||||
}
|
||||
return ['code' => 200, 'msg' => '赠送成功', 'data' => null];
|
||||
}
|
||||
|
||||
public function get_user_decorate_list($uid, $did, $type, $page, $page_limit)
|
||||
{
|
||||
$map = [];
|
||||
if (!empty($uid)) {
|
||||
$map[] = ['a.uid', '=', $uid];
|
||||
}
|
||||
if (!empty($did)) {
|
||||
$map[] = ['a.did', '=', $did];
|
||||
}
|
||||
if (!empty($type)) {
|
||||
$map[] = ['a.type', '=', $type];
|
||||
}
|
||||
$map[] = ['b.is_delete', '=', 1];
|
||||
$model = Db::name('user_decorate')->alias('a')->join('yy_decorate b', 'a.did = b.did');
|
||||
$model = $model->where($map);
|
||||
$list = $model->order('udid desc')->page($page, $page_limit)->select();
|
||||
foreach ($list as $k => &$v) {
|
||||
$v['base_image'] = localpath_to_netpath($v['base_image']);
|
||||
$v['play_image'] = localpath_to_netpath($v['play_image']);
|
||||
$user_info = db::name('user')->find($v['uid']);
|
||||
$v['nick_name'] = base64_decode($user_info['base64_nick_name']);
|
||||
}
|
||||
$data = [];
|
||||
$data['count'] = $model->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
public function delete_user_decorate($udid)
|
||||
{
|
||||
return ['code' => 201, 'msg' => '无法操作', 'data' => null];
|
||||
$map = [];
|
||||
$map[] = ['udid', '=', $udid];
|
||||
db::name('user_decorate')->where($map)->delete();
|
||||
return ['code' => 200, 'msg' => '删除成功', 'data' => null];
|
||||
}
|
||||
|
||||
public function get_head_decorate_list(){
|
||||
$map = [];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$map[] = ['type', '=', 1];
|
||||
$list = db::name('decorate')->where($map)->order('did', 'asc')->select();
|
||||
$data = [];
|
||||
$data['count'] = db::name('decorate')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
public function get_mount_decorate_list(){
|
||||
$map = [];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$map[] = ['type', '=', 2];
|
||||
$list = db::name('decorate')->where($map)->order('did', 'asc')->select();
|
||||
$data = [];
|
||||
$data['count'] = db::name('decorate')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
|
||||
public function get_cp_tx_list(){
|
||||
$map = [];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$map[] = ['type', '=', 9];
|
||||
$list = db::name('decorate')->where($map)->order('did', 'asc')->select();
|
||||
$data = [];
|
||||
$data['count'] = db::name('decorate')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public function get_wind_decorate_list(){
|
||||
$map = [];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$map[] = ['type', '=', 3];
|
||||
$list = db::name('decorate')->where($map)->order('did', 'asc')->select();
|
||||
$data = [];
|
||||
$data['count'] = db::name('decorate')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
//获取装扮价位列表
|
||||
public function get_decorate_price_list($did, $page = 1, $limit = 20)
|
||||
{
|
||||
$map = [];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$map[] = ['did', '=', $did];
|
||||
$list = db::name('decorate_price')->where($map)->order('id desc')->page($page, $limit)->select();
|
||||
|
||||
$data = [];
|
||||
$data['count'] = db::name('decorate_price')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
//添加装扮价位
|
||||
public function add_decorate_price($did, $price, $day)
|
||||
{
|
||||
$map = [];
|
||||
$map[] = ['did', '=', $did];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$info = db::name('decorate')->where($map)->find();
|
||||
if (empty($info)) {
|
||||
return ['code' => 201, 'msg' => '信息不存在', 'data' => null];
|
||||
}
|
||||
|
||||
//该装扮价位天数是否存在
|
||||
$map = [];
|
||||
$map[] = ['did', '=', $did];
|
||||
$map[] = ['day', '=', $day];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$decorate_price_info = db::name('decorate_price')->where($map)->find();
|
||||
if($decorate_price_info){
|
||||
return ['code' => 201, 'msg' => '该装扮天数已存在', 'data' => null];
|
||||
}
|
||||
|
||||
$data = [];
|
||||
$data['did'] = $did;
|
||||
$data['price'] = $price;
|
||||
$data['day'] = $day;
|
||||
$data['is_delete'] = 1;
|
||||
$data['add_time'] = time();
|
||||
$status = db::name('decorate_price')->insert($data);
|
||||
if ($status) {
|
||||
return ['code' => 200, 'msg' => '添加成功', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 201, 'msg' => '添加失败', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
//装扮价位详情
|
||||
public function decorate_price_info($id)
|
||||
{
|
||||
$map = [];
|
||||
$map[] = ['id', '=', $id];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$info = db::name('decorate_price')->where($map)->find();
|
||||
if (empty($info)) {
|
||||
return ['code' => 201, 'msg' => '信息不存在', 'data' => null];
|
||||
}
|
||||
|
||||
return ['code' => 200, 'msg' => '编辑成功', 'data' => $info];
|
||||
}
|
||||
|
||||
//编辑装扮价位
|
||||
public function edit_decorate_price($id, $price, $day)
|
||||
{
|
||||
$map = [];
|
||||
$map[] = ['id', '=', $id];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$info = db::name('decorate_price')->where($map)->find();
|
||||
if (empty($info)) {
|
||||
return ['code' => 201, 'msg' => '信息不存在', 'data' => null];
|
||||
}
|
||||
|
||||
//该装扮价位天数是否存在
|
||||
$map = [];
|
||||
$map[] = ['did', '=', $info['did']];
|
||||
$map[] = ['id', 'neq', $id];
|
||||
$map[] = ['day', '=', $day];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$decorate_price_info = db::name('decorate_price')->where($map)->find();
|
||||
if($decorate_price_info){
|
||||
return ['code' => 201, 'msg' => '该装扮天数已存在', 'data' => null];
|
||||
}
|
||||
|
||||
$data = [];
|
||||
$data['price'] = $price;
|
||||
$data['day'] = $day;
|
||||
$data['update_time'] = time();
|
||||
$map = [];
|
||||
$map[] = ['id', '=', $id];
|
||||
$status = db::name('decorate_price')->where($map)->update($data);
|
||||
if ($status) {
|
||||
return ['code' => 200, 'msg' => '编辑成功', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 201, 'msg' => '编辑失败', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
//删除装扮
|
||||
public function del_decorate_price($id)
|
||||
{
|
||||
$map = [];
|
||||
$map[] = ['id', '=', $id];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$info = db::name('decorate_price')->where($map)->find();
|
||||
if (empty($info)) {
|
||||
return ['code' => 201, 'msg' => '信息不存在', 'data' => null];
|
||||
}
|
||||
|
||||
$data = [];
|
||||
$data['is_delete'] = 2;
|
||||
$data['update_time'] = time();
|
||||
$map = [];
|
||||
$map[] = ['id', '=', $id];
|
||||
$status = db::name('decorate_price')->where($map)->update($data);
|
||||
if ($status) {
|
||||
return ['code' => 200, 'msg' => '删除成功', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 201, 'msg' => '删除失败', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
201
application/admin/model/Envelope.php
Normal file
201
application/admin/model/Envelope.php
Normal file
@@ -0,0 +1,201 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\model;
|
||||
|
||||
use think\Db;
|
||||
use think\Model;
|
||||
|
||||
class Envelope extends Model
|
||||
{
|
||||
|
||||
//发红包列表
|
||||
public function give_red_envelope_list($id, $tid, $type, $uid, $order, $sort, $page, $limit){
|
||||
$map = [];
|
||||
if(!empty($id)){
|
||||
$map[] = ['id', '=', $id];
|
||||
}
|
||||
if(!empty($tid)){
|
||||
$map[] = ['tid', '=', $tid];
|
||||
}
|
||||
if(!empty($type)){
|
||||
$map[] = ['type', '=', $type];
|
||||
}
|
||||
if(!empty($uid)){
|
||||
$map[] = ['uid', '=', $uid];
|
||||
}
|
||||
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
|
||||
$list = db::name('red_envelope')->where($map)->order($order, $sort)->page($page, $limit)->select();
|
||||
foreach ($list as $k => &$v){
|
||||
$v['envelope_price'] = $v['money'] - $v['price'];
|
||||
}
|
||||
|
||||
$data = [];
|
||||
$data['count'] = db::name('red_envelope')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
$totalRowData = db::name('red_envelope')->where($map)->field('SUM(money) as money,SUM(price) as price,SUM(money - price) as envelope_price')->find();
|
||||
$data['totalRow'] = $totalRowData;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
|
||||
//发红包
|
||||
public function give_red_envelope($aid, $tid, $num, $secondary_password){
|
||||
if(empty($tid)){
|
||||
return ['code' => 201, 'msg' => '尚未选择红包类型', 'data' => null];
|
||||
}
|
||||
if($num < 1){
|
||||
return ['code' => 201, 'msg' => '红包数量不能小于1', 'data' => null];
|
||||
}
|
||||
if(empty($secondary_password)){
|
||||
return ['code' => 201, 'msg' => '二级密码不能为空', 'data' => null];
|
||||
}else{
|
||||
if($secondary_password != '147369'){
|
||||
return ['code' => 201, 'msg' => '二级密码错误', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
$config = get_system_config();
|
||||
|
||||
//红包功能是否已关
|
||||
if($tid == 1){
|
||||
if($config['open_silver_envelope'] != 1){
|
||||
return ['code' => 201, 'msg' => '该功能已关闭', 'data' => null];
|
||||
}
|
||||
}else if($tid == 2){
|
||||
if($config['open_gold_envelope'] != 1){
|
||||
return ['code' => 201, 'msg' => '该功能已关闭', 'data' => null];
|
||||
}
|
||||
}else if($tid == 3){
|
||||
if($config['open_drill_envelope'] != 1){
|
||||
return ['code' => 201, 'msg' => '该功能已关闭', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
//红包是否正在进行
|
||||
$map = [];
|
||||
$map[] = ['tid', '=', $tid];
|
||||
$map[] = ['is_finish', '=', 2];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$map[] = ['is_stop', '=', 2];
|
||||
$envelope_info = db::name('red_envelope')->where($map)->find();
|
||||
if($envelope_info){
|
||||
return ['code' => 201, 'msg' => '该红包尚未结束', 'data' => null];
|
||||
}
|
||||
|
||||
//该种类红包是否存在
|
||||
$map = [];
|
||||
$map[] = ['id', '=', $tid];
|
||||
$envelope_type_info = db::name('envelope_type')->where($map)->find();
|
||||
if(!$envelope_type_info){
|
||||
return ['code' => 201, 'msg' => '该红包类型不存在', 'data' => null];
|
||||
}
|
||||
|
||||
Db::startTrans();
|
||||
try {
|
||||
$insert_data = [];
|
||||
$insert_data['tid'] = $tid;
|
||||
$insert_data['uid'] = $aid;
|
||||
$insert_data['type'] = 1;
|
||||
$insert_data['money'] = $envelope_type_info['price'];
|
||||
$insert_data['price'] = $insert_data['money'] * (1 - $config['envelope_rate']);
|
||||
$insert_data['num'] = $num;
|
||||
$insert_data['open_num'] = 0;
|
||||
$insert_data['add_time'] = time();
|
||||
$envelope_id = db::name('red_envelope')->insertGetId($insert_data);
|
||||
if(!$envelope_id){
|
||||
Db::rollback();
|
||||
return ['code' => 201, 'msg' => "请重试", 'data' => null];
|
||||
}
|
||||
|
||||
//生成红包金额队列
|
||||
$redis = connectionRedis();
|
||||
if($tid == 1){
|
||||
$key_name = "silver:envelope:key:name:". $envelope_id;
|
||||
}else if($tid == 2){
|
||||
$key_name = "gold:envelope:key:name:" . $envelope_id;
|
||||
}else if($tid == 3){
|
||||
$key_name = "drill:envelope:key:name:" . $envelope_id;
|
||||
}
|
||||
|
||||
$redis->del($key_name);
|
||||
$envelope_price_array = model('api/Envelope')->red_envelope_create_money(1, 500, $num, $insert_data['price']);
|
||||
$envelope_insert_data = $envelope_price_array;
|
||||
array_unshift($envelope_insert_data, $key_name);
|
||||
call_user_func_array([$redis, 'rPush'], $envelope_insert_data);
|
||||
|
||||
|
||||
Db::commit();
|
||||
$push_all_envelope_data = [];
|
||||
$push_all_envelope_data['type'] = $tid;
|
||||
$push_all_envelope_data['type_name'] = $envelope_type_info['type_name'];
|
||||
$push_all_envelope_data['num'] = $num;
|
||||
$push_all_envelope_data['second'] = 10;
|
||||
|
||||
//推送socket
|
||||
$push_data = [];
|
||||
$push_data['code'] = 410;
|
||||
$push_data['msg'] = "发红包开始数据播报";
|
||||
$push_data['data'] = $push_all_envelope_data;
|
||||
model('api/WebSocketPush')->send_to_all($push_data);
|
||||
|
||||
return ['code' => 200, 'msg' => '成功', 'data' => null];
|
||||
} catch (\Exception $e) {
|
||||
// 回滚事务
|
||||
dump($e);
|
||||
Db::rollback();
|
||||
return ['code' => 201, 'msg' => '失败', 'data' => null];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//抢红包记录
|
||||
public function get_user_red_envelope_log_list($rid, $room_number, $room_name, $uid, $eid, $tid, $time1, $time2, $order, $sort, $page, $limit){
|
||||
$map = [];
|
||||
if(!empty($rid)){
|
||||
$map[] = ['a.rid', '=', $rid];
|
||||
}
|
||||
if(!empty($room_number)){
|
||||
$map[] = ['c.room_number', '=', $room_number];
|
||||
}
|
||||
if(!empty($room_name)){
|
||||
$map[] = ['c.room_name', 'like', '%'. $room_name .'%'];
|
||||
}
|
||||
if(!empty($uid)){
|
||||
$map[] = ['a.uid', '=', $uid];
|
||||
}
|
||||
if(!empty($eid)){
|
||||
$map[] = ['a.eid', '=', $eid];
|
||||
}
|
||||
if(!empty($tid)){
|
||||
$map[] = ['a.tid', '=', $tid];
|
||||
}
|
||||
|
||||
if (!empty($time1)) {
|
||||
$time1 = strtotime($time1);
|
||||
$map[] = ['a.add_time', '>=', $time1];
|
||||
}
|
||||
|
||||
if (!empty($time2)) {
|
||||
$time2 = strtotime($time2);
|
||||
$map[] = ['a.add_time', '<=', $time2];
|
||||
}
|
||||
|
||||
$list = db::name('user_red_envelope_log')->alias('a')->join('yy_user b', 'a.uid = b.uid')->join('yy_room c', 'a.rid = c.rid')->field('a.id,a.uid,a.rid,a.tid,a.eid,a.money,a.price,a.envelope_price,a.snatch_price,a.room_price,a.add_time,a.is_lucky,b.base64_nick_name,c.base64_room_name,c.room_name,c.room_number')->where($map)->order($order, $sort)->page($page, $limit)->select();
|
||||
foreach ($list as $k => &$v){
|
||||
$v['nick_name'] = mb_convert_encoding(base64_decode($v['base64_nick_name']), 'UTF-8', 'UTF-8');
|
||||
$v['room_name'] = mb_convert_encoding(base64_decode($v['base64_room_name']), 'UTF-8', 'UTF-8');
|
||||
}
|
||||
|
||||
$data = [];
|
||||
$data['count'] = db::name('user_red_envelope_log')->alias('a')->join('yy_user b', 'a.uid = b.uid')->join('yy_room c', 'a.rid = c.rid')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
$totalRowData = db::name('user_red_envelope_log')->alias('a')->join('yy_user b', 'a.uid = b.uid')->join('yy_room c', 'a.rid = c.rid')->field('count(a.id) as count,SUM(a.snatch_price) as snatch_price,SUM(a.room_price) as room_price')->where($map)->find();
|
||||
unset($totalRowData['count']);
|
||||
$data['totalRow'] = $totalRowData;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
324
application/admin/model/Gift.php
Normal file
324
application/admin/model/Gift.php
Normal file
@@ -0,0 +1,324 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\model;
|
||||
|
||||
use think\Db;
|
||||
use think\Model;
|
||||
|
||||
class Gift extends Model
|
||||
{
|
||||
//礼物列表
|
||||
public function gift_list($gid, $gift_name, $gift_price, $is_public_screen, $is_public_server, $is_show, $is_can_buy, $order, $sort, $page = 1, $limit = 20, $type)
|
||||
{
|
||||
$map = [];
|
||||
if (!empty($gid)) {
|
||||
$map[] = ['gid', '=', $gid];
|
||||
}
|
||||
if (!empty($gift_name)) {
|
||||
$map[] = ['gift_name', 'like', '%' . $gift_name . '%'];
|
||||
}
|
||||
if (!empty($gift_price)) {
|
||||
$map[] = ['gift_price', '=', $gift_price];
|
||||
}
|
||||
|
||||
if (!empty($is_public_screen)) {
|
||||
$map[] = ['is_public_screen', '=', $is_public_screen];
|
||||
}
|
||||
|
||||
if (!empty($is_public_server)) {
|
||||
$map[] = ['is_public_server', '=', $is_public_server];
|
||||
}
|
||||
if (!empty($is_show)) {
|
||||
$map[] = ['is_show', '=', $is_show];
|
||||
}
|
||||
if (!empty($is_can_buy)) {
|
||||
$map[] = ['is_can_buy', '=', $is_can_buy];
|
||||
}
|
||||
|
||||
if(!empty($type)){
|
||||
$map[] = ['type', '=', $type];
|
||||
}
|
||||
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
|
||||
$list = db::name('gift')->where($map)->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('gift')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
//编辑礼物
|
||||
public function edit_gift($data)
|
||||
{
|
||||
if (empty($data)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$room_info = db::name('gift')->find($data['gid']);
|
||||
if (empty($room_info)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
// dump($data);exit;
|
||||
$update_data = [];
|
||||
$update_data['type'] = $data['type'];
|
||||
$update_data['gift_type'] = $data['gift_type'];
|
||||
$update_data['gift_name'] = $data['gift_name'];
|
||||
$update_data['gift_price'] = $data['gift_price'];
|
||||
$update_data['base_image'] = $data['base_image'];
|
||||
$update_data['file_type'] = $data['file_type'];
|
||||
if($data['file_type'] == 1){
|
||||
$update_data['play_image'] = $data['play_image'];
|
||||
}else{
|
||||
$update_data['play_image'] = $data['plays_image'];
|
||||
}
|
||||
$update_data['nid'] = $data['nid'];
|
||||
$update_data['mid'] = $data['mid'];
|
||||
$update_data['position'] = $data['position'];
|
||||
$update_data['pendant_image'] = $data['pendant_image'];
|
||||
$update_data['is_public_screen'] = $data['is_public_screen'];
|
||||
$update_data['is_public_server'] = $data['is_public_server'];
|
||||
$update_data['is_show'] = $data['is_show'];
|
||||
$update_data['is_can_buy'] = $data['is_can_buy'];
|
||||
$update_data['sort'] = $data['sort'];
|
||||
$update_data['update_time'] = time();
|
||||
$update_data['tag_name'] = trim($data['tag_name']);
|
||||
$reslut = db::name('gift')->where(['gid' => $data['gid']])->update($update_data);
|
||||
if (!$reslut) {
|
||||
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 200, 'msg' => '修改成功', 'data' => null];
|
||||
}
|
||||
}
|
||||
//添加礼物
|
||||
public function add_gift($data)
|
||||
{
|
||||
$add_data = [];
|
||||
$add_data['type'] = $data['type'];
|
||||
$add_data['gift_type'] = $data['gift_type'];
|
||||
$add_data['gift_name'] = $data['gift_name'];
|
||||
$add_data['gift_price'] = $data['gift_price'];
|
||||
$add_data['base_image'] = $data['base_image'];
|
||||
$add_data['file_type'] = $data['file_type'];
|
||||
// $add_data['play_image'] = $data['play_image'];
|
||||
if($data['file_type'] == 1){
|
||||
$add_data['play_image'] = $data['play_image'];
|
||||
}else{
|
||||
$add_data['play_image'] = $data['plays_image'];
|
||||
}
|
||||
$add_data['nid'] = $data['nid'];
|
||||
$add_data['mid'] = $data['mid'];
|
||||
$add_data['position'] = $data['position'];
|
||||
$add_data['pendant_image'] = $data['pendant_image'];
|
||||
$add_data['is_public_screen'] = $data['is_public_screen'];
|
||||
$add_data['is_public_server'] = $data['is_public_server'];
|
||||
$add_data['is_show'] = $data['is_show'];
|
||||
$add_data['is_can_buy'] = $data['is_can_buy'];
|
||||
$add_data['sort'] = $data['sort'];
|
||||
$add_data['update_time'] = time();
|
||||
$add_data['add_time'] = time();
|
||||
$add_data['tag_name'] = trim($data['tag_name']);
|
||||
$reslut = db::name('gift')->insert($add_data);
|
||||
if (!$reslut) {
|
||||
return ['code' => 201, 'msg' => '添加失败', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 200, 'msg' => '添加成功', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
//获取礼物信息
|
||||
public function gift_info($gid)
|
||||
{
|
||||
if (empty($gid)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$gift_info = db::name('gift')->where(['gid' => $gid])->find();
|
||||
$gift_info['http_base_image'] = localpath_to_netpath($gift_info['base_image']);
|
||||
$gift_info['http_play_image'] = localpath_to_netpath($gift_info['play_image']);
|
||||
$gift_info['pendant_image_path'] = localpath_to_netpath($gift_info['pendant_image']);
|
||||
$gift_info['plays_image'] = $gift_info['play_image'];
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $gift_info];
|
||||
}
|
||||
|
||||
//删除礼物
|
||||
public function del_gift($gid)
|
||||
{
|
||||
if (empty($gid)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
if($gid == 37 || $gid == 38 || $gid == 36){
|
||||
return ['code' => 201, 'msg' => '该礼物无法删除', 'data' => null];
|
||||
}
|
||||
|
||||
$reslut = db::name('gift')->where(['gid' => $gid])->update(['is_delete' => 2, 'delete_time' => time()]);
|
||||
if (!$reslut) {
|
||||
return ['code' => 201, 'msg' => '删除失败', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 200, 'msg' => '删除成功', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
//批量删除礼物
|
||||
public function batch_delete_gift($data){
|
||||
if(empty($data)){
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
|
||||
$gid_list = [];
|
||||
foreach ($data as $k => $v){
|
||||
if(in_array($v['gid'], [36,37,38])) {
|
||||
['code' => 201, 'msg' => '包含不能删除礼物', 'data' => null];
|
||||
}
|
||||
$gid_list[] = $v['gid'];
|
||||
}
|
||||
|
||||
$map = [];
|
||||
$map[] = ['gid', 'in', $gid_list];
|
||||
$date = [];
|
||||
$date['is_delete'] = 2;
|
||||
$date['delete_time'] = time();
|
||||
$reslut = db::name('gift')->where($map)->update($date);
|
||||
if($reslut){
|
||||
return ['code' => 200, 'msg' => '删除成功', 'data' => null];
|
||||
}else{
|
||||
return ['code' => 201, 'msg' => '删除失败', 'data' => null];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
//列表
|
||||
public function get_gift_position_list($order, $sort, $page = 1, $limit = 20)
|
||||
{
|
||||
|
||||
$list = db::name('gift_position')->order($order, $sort)->page($page, $limit)->select();
|
||||
|
||||
$data = [];
|
||||
$data['count'] = db::name('gift_position')->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
//列表
|
||||
public function get_privacy_gift_list($gid, $order, $sort, $page = 1, $limit = 20)
|
||||
{
|
||||
$map = [];
|
||||
if (!empty($gid)) {
|
||||
$map[] = ['a.gid', '=', $gid];
|
||||
}
|
||||
|
||||
$map[] = ['a.is_delete', '=', 1];
|
||||
// $map[] = ['b.is_gift_debris', '=', 2];
|
||||
|
||||
$list = db::name('room_privacy_gift')->alias('a')->join('yy_gift b', 'a.gid = b.gid')->field('b.*, a.id, a.duration')->where($map)->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('room_privacy_gift')->alias('a')->join('yy_gift b', 'a.gid = b.gid')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
//编辑礼物
|
||||
public function edit_privacy_gift($data)
|
||||
{
|
||||
if (empty($data)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$room_info = db::name('room_privacy_gift')->find($data['id']);
|
||||
if (empty($room_info)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$map = [];
|
||||
$map[] = ['gid', '=', $data['gid']];
|
||||
$map[] = ['id', 'neq', $data['id']];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$room_privacy_gift = db::name('room_privacy_gift')->where($map)->find();
|
||||
if($room_privacy_gift){
|
||||
return ['code' => 201, 'msg' => '该礼物已添加过', 'data' => null];
|
||||
}
|
||||
|
||||
// dump($data);exit;
|
||||
$update_data = [];
|
||||
$update_data['gid'] = $data['gid'];
|
||||
$update_data['duration'] = $data['duration'];
|
||||
$update_data['update_time'] = time();
|
||||
$reslut = db::name('room_privacy_gift')->where(['id' => $data['id']])->update($update_data);
|
||||
if (!$reslut) {
|
||||
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 200, 'msg' => '修改成功', 'data' => null];
|
||||
}
|
||||
}
|
||||
//添加
|
||||
public function add_privacy_gift($data)
|
||||
{
|
||||
$map = [];
|
||||
$map[] = ['gid', '=', $data['gid']];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$room_privacy_gift = db::name('room_privacy_gift')->where($map)->find();
|
||||
if($room_privacy_gift){
|
||||
return ['code' => 201, 'msg' => '该礼物已添加过', 'data' => null];
|
||||
}
|
||||
|
||||
$add_data = [];
|
||||
$add_data['gid'] = $data['gid'];
|
||||
$add_data['duration'] = $data['duration'];
|
||||
$add_data['update_time'] = time();
|
||||
$add_data['add_time'] = time();
|
||||
$reslut = db::name('room_privacy_gift')->insert($add_data);
|
||||
if (!$reslut) {
|
||||
return ['code' => 201, 'msg' => '添加失败', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 200, 'msg' => '添加成功', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
//获取信息
|
||||
public function get_privacy_gift_info($id)
|
||||
{
|
||||
if (empty($id)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$gift_info = db::name('room_privacy_gift')->where(['id' => $id])->find();
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $gift_info];
|
||||
}
|
||||
|
||||
//删除礼物
|
||||
public function del_privacy_gift($id)
|
||||
{
|
||||
if (empty($id)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
|
||||
$reslut = db::name('room_privacy_gift')->where(['id' => $id])->update(['is_delete' => 2, 'update_time' => time()]);
|
||||
if (!$reslut) {
|
||||
return ['code' => 201, 'msg' => '删除失败', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 200, 'msg' => '删除成功', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
//可选礼物列表
|
||||
public function get_optional_gift_list($gid, $order, $sort, $page, $limit){
|
||||
$config = get_uncache_system_config();
|
||||
$map = [];
|
||||
$map[] = ['type', '=', 1];
|
||||
$map[] = ['is_show', '=', 1];
|
||||
$map[] = ['is_can_buy', '=', 1];
|
||||
// $map[] = ['is_gift_debris', '=', 2];
|
||||
if(!empty($config['cp_gift_id'])){
|
||||
$map[] = ['gid', 'neq', $config['cp_gift_id']];
|
||||
}
|
||||
$list = db::name('gift')->where($map)->select();
|
||||
|
||||
|
||||
$data = [];
|
||||
$data['count'] = db::name('gift')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
823
application/admin/model/Guild.php
Normal file
823
application/admin/model/Guild.php
Normal file
@@ -0,0 +1,823 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\model;
|
||||
|
||||
use think\Db;
|
||||
use think\Model;
|
||||
|
||||
class Guild extends Model
|
||||
{
|
||||
//公会列表
|
||||
public function guild_list($id, $guild_name, $order, $sort, $page = 1, $limit = 20,$jie_shan=2)
|
||||
{
|
||||
$map = [];
|
||||
if (!empty($id)) {
|
||||
$map[] = ['a.id|a.guild_special_id', '=', $id];
|
||||
}
|
||||
$start_time = input('start', '');
|
||||
$end_time = input('end', '');
|
||||
if(empty($start_time)) {
|
||||
$start_time = strtotime(date('Ymd'));
|
||||
|
||||
} else {
|
||||
$start_time = strtotime($start_time);
|
||||
}
|
||||
if(empty($end_time)) {
|
||||
$end_time = time();
|
||||
} else {
|
||||
$end_time = strtotime($end_time);
|
||||
}
|
||||
$build_sql = db::name('room_guild_charm_count_day')
|
||||
->field('guild_id,SUM(amount) as total_gift_total_price')
|
||||
->where('add_time', 'between', [$start_time, $end_time])
|
||||
->group('guild_id')->buildSql();
|
||||
|
||||
if($jie_shan==2){
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
}else{
|
||||
$map[] = ['is_delete', '=', 2];
|
||||
}
|
||||
|
||||
|
||||
$list = db::name('guild')->alias('a')
|
||||
->join($build_sql.'b', 'a.id = b.guild_id', 'LEFT')
|
||||
->field('a.id, a.guild_name, a.base64_guild_name, a.cover, b.total_gift_total_price, a.add_time,a.update_time,a.is_show,a.guild_special_id')
|
||||
->where($map)->order('b.total_gift_total_price', 'desc')->page($page, $limit)->select();
|
||||
foreach ($list as $k => &$v) {
|
||||
|
||||
$v['guild_name'] = mb_convert_encoding(base64_decode($v['base64_guild_name']), 'UTF-8', 'UTF-8');
|
||||
$v['cover'] = localpath_to_netpath($v['cover']);
|
||||
$v['total_gift_total_price'] = empty($v['total_gift_total_price']) ? 0 : $v['total_gift_total_price'];
|
||||
}
|
||||
$data = [];
|
||||
$data['count'] = db::name('guild')->alias('a')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
//编辑公会
|
||||
public function edit_guild($data)
|
||||
{
|
||||
if (empty($data)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
|
||||
$user_info = db::name('user')->find($data['uid']);
|
||||
if(!$user_info){
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
|
||||
$guild_info = db::name('guild')->find($data['id']);
|
||||
if (empty($guild_info)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
|
||||
Db::startTrans();
|
||||
try {
|
||||
//是否修改会长
|
||||
if($data['uid'] != $guild_info['uid']){
|
||||
$map = [];
|
||||
$map[] = ['uid', '=', $data['uid']];
|
||||
$map[] = ['status', '=', 1];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$guild_infos = db::name('user_guild')->where($map)->find();
|
||||
if($guild_infos){
|
||||
return ['code' => 201, 'msg' => '该用户已加入公会', 'data' => null];
|
||||
}
|
||||
if(empty($user_info['real_name']) || empty($user_info['card_id'])) {
|
||||
return ['code' => 201, 'msg' => '请先实名认证', 'data' => null];
|
||||
}
|
||||
//将之前会长退出公会
|
||||
$update_data = [];
|
||||
$update_data['is_delete'] = 2;
|
||||
$update_data['update_time'] = time();
|
||||
$reslut = db::name('user_guild')->where('uid',$guild_info['uid'])->update($update_data);
|
||||
if(!$reslut){
|
||||
Db::rollback();
|
||||
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
|
||||
}
|
||||
|
||||
$update_data = [];
|
||||
$update_data['is_deacon'] = 2;
|
||||
$update_data['update_time'] = time();
|
||||
$reslut = db::name('user')->where('uid', $guild_info['uid'])->update($update_data);
|
||||
if(!$reslut){
|
||||
Db::rollback();
|
||||
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
|
||||
}
|
||||
|
||||
//新会长进入公会
|
||||
//该用户是否有房间
|
||||
$rid = 0;
|
||||
$room_info = db::name('room')->where('room_owner_uid',$data['uid'])->find();
|
||||
if($room_info){
|
||||
$rid = $room_info['rid'];
|
||||
}
|
||||
//加入公会
|
||||
$insert_data = [];
|
||||
$insert_data['uid'] = $data['uid'];
|
||||
$insert_data['guild_id'] = $data['id'];
|
||||
$insert_data['rid'] = $rid;
|
||||
$insert_data['card_id'] = $user_info['card_id'];
|
||||
$insert_data['status'] = 1;
|
||||
$insert_data['add_time'] = time();
|
||||
$insert_data['is_deacon'] = 1;
|
||||
$insert_data['is_show_room'] = 1;
|
||||
$reslut = db::name('user_guild')->insertGetId($insert_data);
|
||||
if(!$reslut){
|
||||
Db::rollback();
|
||||
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
|
||||
}
|
||||
|
||||
$update_data = [];
|
||||
$update_data['is_deacon'] = 1;
|
||||
$update_data['update_time'] = time();
|
||||
$reslut = db::name('user')->where('uid', $data['uid'])->update($update_data);
|
||||
if(!$reslut){
|
||||
Db::rollback();
|
||||
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$data['guild_special_id'] = trim($data['guild_special_id']);
|
||||
if(!empty($data['guild_special_id'])){
|
||||
if(!preg_match("/^[1-9][0-9]*$/" ,$data['guild_special_id']) || ($data['guild_special_id'] <= 1000)){
|
||||
return ['code' => 201, 'msg' => '请输入至少4位正整数!', 'data' => null];
|
||||
}
|
||||
if(!empty($data['guild_special_id'])){
|
||||
$is_exists = db::name('guild')->where([['id','<>',$data['id']]])->where(['guild_special_id|uid'=>trim($data['guild_special_id'])])->find();
|
||||
if($is_exists){
|
||||
Db::rollback();
|
||||
return ['code' => 201, 'msg' => '该靓号已经存在其它公会!', 'data' => null];
|
||||
}
|
||||
}
|
||||
}else{
|
||||
$data['guild_special_id'] = "";
|
||||
}
|
||||
|
||||
|
||||
$update_data = [];
|
||||
$update_data['uid'] = $data['uid'];
|
||||
$update_data['guild_name'] = $data['guild_name'];
|
||||
$update_data['base64_guild_name'] = base64_encode($data['guild_name']);
|
||||
$update_data['cover'] = $data['cover'];
|
||||
$update_data['money'] = $data['money'];
|
||||
$update_data['update_time'] = time();
|
||||
$update_data['guild_special_id'] = $data['guild_special_id'];
|
||||
$update_data['intro'] = trim($data['intro']);
|
||||
|
||||
$reslut = db::name('guild')->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 add_guild($data)
|
||||
{
|
||||
$user_info = db::name('user')->find($data['uid']);
|
||||
if(!$user_info){
|
||||
return ['code' => 201, 'msg' => '该用户不存在', 'data' => null];
|
||||
}
|
||||
if(empty($user_info['real_name']) || empty($user_info['card_id'])) {
|
||||
return ['code' => 201, 'msg' => '请先实名认证', 'data' => null];
|
||||
}
|
||||
$map = [];
|
||||
$map[] = ['uid', '=', $data['uid']];
|
||||
$map[] = ['status', '=', 1];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$guild_info = db::name('user_guild')->where($map)->find();
|
||||
if($guild_info){
|
||||
return ['code' => 201, 'msg' => '该用户已有公会', 'data' => null];
|
||||
}
|
||||
|
||||
Db::startTrans();
|
||||
try {
|
||||
|
||||
|
||||
$data['guild_special_id'] = trim($data['guild_special_id']);
|
||||
if(!empty($data['guild_special_id'])){
|
||||
if(!preg_match("/^[1-9][0-9]*$/" ,$data['guild_special_id']) || ($data['guild_special_id'] <= 1000)){
|
||||
return ['code' => 201, 'msg' => '请输入至少4位正整数!', 'data' => null];
|
||||
}
|
||||
if(!empty($data['guild_special_id'])){
|
||||
$is_exists = db::name('guild')->where(['guild_special_id|uid'=>trim($data['guild_special_id'])])->find();
|
||||
if($is_exists){
|
||||
Db::rollback();
|
||||
return ['code' => 201, 'msg' => '该靓号已经存在其它公会!', 'data' => null];
|
||||
}
|
||||
}
|
||||
}else{
|
||||
$data['guild_special_id'] = "";
|
||||
}
|
||||
|
||||
|
||||
//添加公会
|
||||
$add_data = [];
|
||||
$add_data['uid'] = $data['uid'];
|
||||
$add_data['guild_name'] = $data['guild_name'];
|
||||
$add_data['base64_guild_name'] = base64_encode($data['guild_name']);
|
||||
$add_data['cover'] = $data['cover'];
|
||||
$add_data['money'] = 0;
|
||||
$add_data['num'] = 1;
|
||||
$add_data['add_time'] = time();
|
||||
$add_data['guild_special_id'] = $data['guild_special_id'];
|
||||
$add_data['intro'] = trim($data['intro']);
|
||||
$guild_id = db::name('guild')->insertGetId($add_data);
|
||||
if (!$guild_id) {
|
||||
return ['code' => 201, 'msg' => '添加失败', 'data' => null];
|
||||
}
|
||||
|
||||
//该用户是否有房间
|
||||
$rid = 0;
|
||||
$room_info = db::name('room')->where('room_owner_uid',$data['uid'])->find();
|
||||
if($room_info){
|
||||
$rid = $room_info['rid'];
|
||||
}
|
||||
|
||||
//加入公会
|
||||
$insert_data = [];
|
||||
$insert_data['uid'] = $data['uid'];
|
||||
$insert_data['guild_id'] = $guild_id;
|
||||
$insert_data['rid'] = $rid;
|
||||
$insert_data['card_id'] = $user_info['card_id'];
|
||||
$insert_data['status'] = 1;
|
||||
$insert_data['add_time'] = time();
|
||||
$insert_data['is_deacon'] = 1;
|
||||
$insert_data['is_show_room'] = 1;
|
||||
$reslut = db::name('user_guild')->insertGetId($insert_data);
|
||||
if(!$reslut){
|
||||
Db::rollback();
|
||||
return ['code' => 201, 'msg' => '添加失败', 'data' => null];
|
||||
}
|
||||
|
||||
$update_data = [];
|
||||
$update_data['is_deacon'] = 1;
|
||||
$update_data['update_time'] = time();
|
||||
$reslut = db::name('user')->where('uid', $data['uid'])->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 guild_info($id)
|
||||
{
|
||||
if (empty($id)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$gift_info = db::name('guild')->where(['id' => $id])->find();
|
||||
$gift_info['http_base_image'] = localpath_to_netpath($gift_info['cover']);
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $gift_info];
|
||||
}
|
||||
|
||||
//删除公会
|
||||
public function del_guild($id)
|
||||
{
|
||||
if (empty($id)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$gid_info = db::name('guild')->where('id', $id)->find();
|
||||
if(!$gid_info){
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
|
||||
$reslut = db::name('guild')->where(['id' => $id])->update(['is_delete' => 2, 'update_time' => time()]);
|
||||
if (!$reslut) {
|
||||
return ['code' => 201, 'msg' => '删除失败', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 200, 'msg' => '删除成功', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
//批量删除公会
|
||||
public function batch_delete_guild($data){
|
||||
if(empty($data)){
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
|
||||
$gid_list = [];
|
||||
foreach ($data as $k => $v){
|
||||
$gid_list[] = $v['gid'];
|
||||
}
|
||||
|
||||
$map = [];
|
||||
$map[] = ['id', 'in', $gid_list];
|
||||
$date = [];
|
||||
$date['is_delete'] = 2;
|
||||
$date['delete_time'] = time();
|
||||
$reslut = db::name('guild')->where($map)->update($date);
|
||||
if($reslut){
|
||||
return ['code' => 200, 'msg' => '删除成功', 'data' => null];
|
||||
}else{
|
||||
return ['code' => 201, 'msg' => '删除失败', 'data' => null];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//公会用户详情
|
||||
public function get_user_guild_list($id, $uid, $order, $sort, $page = 1, $limit = 20){
|
||||
$map = [];
|
||||
|
||||
if(!empty($uid)){
|
||||
$map[] = ['a.uid', '=', $uid];
|
||||
}
|
||||
// dump($id);exit;
|
||||
$map[] = ['a.guild_id', '=', $id];
|
||||
$map[] = ['a.status', '=', 1];
|
||||
$map[] = ['a.is_delete', '=', 1];
|
||||
|
||||
$list = db::name('user_guild')->alias('a')->join('yy_user b', 'a.uid = b.uid')->field('a.*,b.nick_name,b.base64_nick_name')->where($map)->order($order, $sort)->page($page, $limit)->select();
|
||||
foreach ($list as $k => &$v) {
|
||||
$v['nick_name'] = mb_convert_encoding(base64_decode($v['base64_nick_name']), 'UTF-8', 'UTF-8');
|
||||
}
|
||||
$data = [];
|
||||
$data['count'] = db::name('user_guild')->alias('a')->join('yy_user b', 'a.uid = b.uid')->field('a.*')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
|
||||
}
|
||||
|
||||
//设置显示状态
|
||||
public function set_is_show($id, $is_show)
|
||||
{
|
||||
$info = Db::name('guild')->find($id);
|
||||
if(empty($info)) {
|
||||
return ['code' => 201, 'msg' => '数据不存在', 'data' => ''];
|
||||
}
|
||||
$result = Db::name('guild')->where('id', $id)->update(['is_show' => $is_show, 'update_time' => time()]);
|
||||
return ['code' => 200, 'msg' => '设置成功', 'data' => ''];
|
||||
}
|
||||
|
||||
//用户公会信息
|
||||
public function user_guild_info($id){
|
||||
$user_guild_info = db::name('user_guild')->where('id', $id)->where('status', 1)->where('is_delete', 1)->find();
|
||||
if(!$user_guild_info){
|
||||
return ['code' => 201, 'msg' => '该用户信息不存在', 'data' => null];
|
||||
}
|
||||
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $user_guild_info];
|
||||
|
||||
}
|
||||
|
||||
//编辑用户公会信息
|
||||
public function edit_user_guild($data){
|
||||
if(empty($data['id'])){
|
||||
return ['code' => 201, 'msg' => '参数错误', 'data' => ''];
|
||||
}
|
||||
|
||||
$user_guild_info = db::name('user_guild')->where('id', $data['id'])->where('status', 1)->where('is_delete', 1)->find();
|
||||
if(!$user_guild_info){
|
||||
return ['code' => 201, 'msg' => '该用户信息不存在', 'data' => null];
|
||||
}
|
||||
|
||||
if($user_guild_info['is_deacon'] == 1){
|
||||
// return ['code' => 201, 'msg' => '无法修改会长信息', 'data' => null];
|
||||
}
|
||||
|
||||
$update = [];
|
||||
$update['is_show_room'] = $data['is_show_room'];
|
||||
$update['update_time'] = time();
|
||||
$result = db::name('user_guild')->where('id', $data['id'])->update($update);
|
||||
if($result){
|
||||
return ['code' => 200, 'msg' => '编辑成功', 'data' => null];
|
||||
}else{
|
||||
return ['code' => 201, 'msg' => '编辑失败', 'data' => null];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
//公会排行列表
|
||||
public function get_guild_rank_list($id, $start, $end, $order, $sort, $page = 1, $limit = 20)
|
||||
{
|
||||
$map = [];
|
||||
if (!empty($id)) {
|
||||
$map[] = ['a.id', '=', $id];
|
||||
}
|
||||
$where = [];
|
||||
if(!empty($start)) {
|
||||
$where[] = ['add_time', '>=', strtotime($start)];
|
||||
}
|
||||
if(!empty($end)) {
|
||||
$where[] = ['add_time', '<=', strtotime($end)];
|
||||
}
|
||||
|
||||
$map[] = ['a.is_delete', '=', 1];
|
||||
|
||||
$build_sql = db::name('room_guild_charm_count_day')->field('guild_id,SUM(amount) as total_gift_total_price,add_time')->where($where)->group('guild_id')->buildSql();
|
||||
|
||||
$list = db::name('guild')->alias('a')->join($build_sql.'b', 'a.id = b.guild_id', 'LEFT')->field('a.*,b.total_gift_total_price')->where($map)->order($order, $sort)->page($page, $limit)->select();
|
||||
foreach ($list as $k => &$v) {
|
||||
$v['guild_name'] = mb_convert_encoding(base64_decode($v['base64_guild_name']), 'UTF-8', 'UTF-8');
|
||||
$v['cover'] = localpath_to_netpath($v['cover']);
|
||||
if(empty($v['total_gift_total_price'])){
|
||||
$v['total_gift_total_price'] = 0;
|
||||
}
|
||||
}
|
||||
$data = [];
|
||||
$data['count'] = db::name('guild')->alias('a')->join($build_sql.'b', 'a.id = b.guild_id', 'LEFT')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
// $totalRowData = Db::name('guild')->alias('a')->join($build_sql.'b', 'a.id = b.guild_id', 'LEFT')->field('total_gift_total_price')->where($map)->find();
|
||||
|
||||
// $data['totalRow'] = $totalRowData;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
//公会用户列表
|
||||
public function get_guild_user_rank_list($guild_id, $uid, $start, $end, $order, $sort, $page = 1, $limit = 20)
|
||||
{
|
||||
$map = [];
|
||||
if (!empty($uid)) {
|
||||
$map[] = ['a.uid', '=', $uid];
|
||||
}
|
||||
$where = [];
|
||||
if(!empty($start)) {
|
||||
$where[] = ['add_time', '>=', strtotime($start)];
|
||||
}
|
||||
if(!empty($end)) {
|
||||
$where[] = ['add_time', '<=', strtotime($end)];
|
||||
}
|
||||
|
||||
$map[] = ['a.guild_id', '=', $guild_id];
|
||||
$map[] = ['a.status', '=', 1];
|
||||
$map[] = ['a.is_delete', '=', 1];
|
||||
|
||||
$build_sql = db::name('user_guild_charm_count_day')->field('uid,SUM(amount) as total_gift_total_price,add_time')->where($where)->group('uid')->buildSql();
|
||||
|
||||
$list = db::name('user_guild')->alias('a')->join($build_sql.'b', 'a.uid = b.uid', 'LEFT')->join('yy_user c', 'a.uid = c.uid')->field('a.*,b.total_gift_total_price,c.base64_nick_name,c.head_pic')->where($map)->order($order, $sort)->page($page, $limit)->select();
|
||||
foreach ($list as $k => &$v) {
|
||||
$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']);
|
||||
if(empty($v['total_gift_total_price'])){
|
||||
$v['total_gift_total_price'] = 0;
|
||||
}
|
||||
}
|
||||
$data = [];
|
||||
$data['count'] = db::name('user_guild')->alias('a')->join($build_sql.'b', 'a.uid = b.uid', 'LEFT')->join('yy_user c', 'a.uid = c.uid')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
// $totalRowData = Db::name('guild')->alias('a')->join($build_sql.'b', 'a.id = b.guild_id', 'LEFT')->field('total_gift_total_price')->where($map)->find();
|
||||
|
||||
// $data['totalRow'] = $totalRowData;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
|
||||
//公会房间列表
|
||||
public function get_guild_room_rank_list($guild_id, $room_number, $start, $end, $order, $sort, $page = 1, $limit = 20)
|
||||
{
|
||||
$map = [];
|
||||
if (!empty($room_number)) {
|
||||
$map[] = ['c.room_number', '=', $room_number];
|
||||
}
|
||||
$where = [];
|
||||
if(!empty($start)) {
|
||||
$where[] = ['add_time', '>=', strtotime($start)];
|
||||
}
|
||||
if(!empty($end)) {
|
||||
$where[] = ['add_time', '<=', strtotime($end)];
|
||||
}
|
||||
|
||||
$map[] = ['a.guild_id', '=', $guild_id];
|
||||
$map[] = ['a.status', '=', 1];
|
||||
$map[] = ['a.is_delete', '=', 1];
|
||||
$map[] = ['a.rid', '>', 0];
|
||||
|
||||
$build_sql = db::name('room_guild_charm_count_day')->field('rid,SUM(amount) as total_gift_total_price,add_time')->where($where)->group('rid')->buildSql();
|
||||
|
||||
$list = db::name('user_guild')->alias('a')->join($build_sql.'b', 'a.rid = b.rid', 'LEFT')->join('yy_room c', 'a.rid = c.rid')->field('a.*,b.total_gift_total_price,c.base64_room_name,c.room_cover,c.room_number')->where($map)->order($order, $sort)->page($page, $limit)->select();
|
||||
foreach ($list as $k => &$v) {
|
||||
$v['room_name'] = mb_convert_encoding(base64_decode($v['base64_room_name']), 'UTF-8', 'UTF-8');
|
||||
$v['room_cover'] = localpath_to_netpath($v['room_cover']);
|
||||
if(empty($v['total_gift_total_price'])){
|
||||
$v['total_gift_total_price'] = 0;
|
||||
}
|
||||
}
|
||||
$data = [];
|
||||
$data['count'] = db::name('user_guild')->alias('a')->join($build_sql.'b', 'a.rid = b.rid', 'LEFT')->join('yy_room c', 'a.rid = c.rid')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
// $totalRowData = Db::name('guild')->alias('a')->join($build_sql.'b', 'a.id = b.guild_id', 'LEFT')->field('total_gift_total_price')->where($map)->find();
|
||||
|
||||
// $data['totalRow'] = $totalRowData;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
//获取列表
|
||||
public function give_guild_subsidy_list($guild_id, $uid, $is_fa, $order, $sort, $page, $limit, $belong_week){
|
||||
$map = [];
|
||||
if(!empty($guild_id)){
|
||||
$map[] = ['guild_id', '=', $guild_id];
|
||||
}
|
||||
if(!empty($uid)){
|
||||
$map[] = ['guild_uid_id', '=', $uid];
|
||||
}
|
||||
|
||||
if(!empty($is_fa)){
|
||||
$map[] = ['is_fa', '=', $is_fa];
|
||||
}
|
||||
|
||||
// if(!empty($is_delete)){
|
||||
// $map[] = ['is_delete', '=', $is_delete];
|
||||
// }
|
||||
|
||||
|
||||
// if(!empty($start)){
|
||||
// $now_time = strtotime($start);
|
||||
// $last_week = strtotime('-1 week last sunday', $now_time);
|
||||
// $map[] = ['last_week_time', '=', $last_week];
|
||||
// }else{
|
||||
// $now_time = time();
|
||||
// $last_week = strtotime('-1 week last sunday', $now_time);
|
||||
// $map[] = ['last_week_time', '=', $last_week];
|
||||
// }
|
||||
|
||||
if(!empty($belong_week)){
|
||||
$map[] = ['belong_week', '=', $belong_week];
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
$map[] = ['type', '=', 1];
|
||||
$list = db::name('guild_week_earnings_log')->where($map)->order($order, $sort)->page($page, $limit)->select();
|
||||
foreach ($list as $k => &$v){
|
||||
$guild_info = db::name('guild')->find($v['guild_id']);
|
||||
$v['guild_name'] = mb_convert_encoding(base64_decode($guild_info['base64_guild_name']), 'UTF-8', 'UTF-8');
|
||||
$user_info = db::name('user')->find($v['guild_uid_id']);
|
||||
$v['nick_name'] = mb_convert_encoding(base64_decode($user_info['base64_nick_name']), 'UTF-8', 'UTF-8');
|
||||
}
|
||||
|
||||
$data = [];
|
||||
$data['count'] = db::name('guild_week_earnings_log')->where($map)->count();
|
||||
|
||||
$totalRowData = db::name('guild_week_earnings_log')->field('SUM(change_value) as change_value,SUM(earnings) as earnings')->where($map)->find();
|
||||
$data['totalRow'] = $totalRowData;
|
||||
|
||||
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
//批量结算
|
||||
// public function batch_give_guild_subsidy($data){
|
||||
// if(empty($data)){
|
||||
// return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
// }
|
||||
|
||||
// $gid_list = [];
|
||||
// foreach ($data as $k => $v){
|
||||
// if(in_array($v['is_delete'], [2])) {
|
||||
// ['code' => 201, 'msg' => '批量结算中包含已发放的', 'data' => null];
|
||||
// }
|
||||
// $gid_list[] = $v['id'];
|
||||
// }
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// try {
|
||||
// Db::startTrans();
|
||||
// $map = [];
|
||||
// $map[] = ['id', 'in', $gid_list];
|
||||
// $map[] = ['is_delete', '=', 1];
|
||||
// $list = db::name('user_guild_week_earnings')->where($map)->select();
|
||||
// if(!empty($list)){
|
||||
// foreach ($list as $k => $v){
|
||||
// if($v['user_earnings'] > 0){
|
||||
// $reslut = model('admin/User')->change_user_money_by_uid($v['uid'], $v['user_earnings'], 1, 39, '公会补贴收益', $v['uid'], 0, 0);
|
||||
// if ($reslut['code'] == 201) {
|
||||
// Db::rollback();
|
||||
// return ['code' => 201, 'msg' => $reslut['msg'], 'data' => null];
|
||||
// }
|
||||
// }
|
||||
// $reslut = db::name('user_guild_week_earnings')->where('id', $v['id'])->update(['is_delete' => 2, 'update_time' => time()]);
|
||||
// if (!$reslut) {
|
||||
// Db::rollback();
|
||||
// return ['code' => 201, 'msg' => $reslut['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 batch_give_guild_subsidy(){
|
||||
|
||||
$week_start = date('Y-m-d', strtotime("last week Monday"));
|
||||
$week_end = date('Y-m-d', strtotime("last week Sunday"));
|
||||
$balance_week = $week_start."-".$week_end;
|
||||
|
||||
|
||||
// $week_start = date('Y-m-d', strtotime("this week Monday"));
|
||||
// $week_end = date('Y-m-d', strtotime("this week Sunday"));
|
||||
// $balance_week = $week_start."-".$week_end;
|
||||
|
||||
|
||||
|
||||
$is_had_deal = db::name('guild_week_earnings_log')->where(['is_delete'=>1,'belong_week'=>$balance_week,'is_fa'=>2])->find();
|
||||
if(empty($is_had_deal)){
|
||||
return ['code' => 201, 'msg' => "没有要结算的工资", 'data' => null];
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
db::name('guild_week_earnings_log')->where(['is_delete'=>1,'belong_week'=>$balance_week,'is_fa'=>2])->update(['is_delete'=>2,'update_time'=>time()]);
|
||||
|
||||
|
||||
|
||||
//推入队列
|
||||
$redis = connectionRedis();
|
||||
$redis->rPush('balance_guild_wages_date',$balance_week);
|
||||
|
||||
//推入事务逻辑
|
||||
// $data = model('api/RoomWages')->batch_give_guild_subsidy($balance_week);
|
||||
|
||||
// if($data['code'] != 200){
|
||||
// return ['code' => 200, 'msg' =>$data['msg'], 'data' => null];
|
||||
// }
|
||||
|
||||
return ['code' => 200, 'msg' => "发放成功", 'data' => null];
|
||||
} catch (\Exception $e) {
|
||||
// 回滚事务
|
||||
Db::rollback();
|
||||
|
||||
return ['code' => 201, 'msg' => "发放失败", 'data' => null];
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//补贴详情
|
||||
public function get_give_guild_subsidy_info($id){
|
||||
if(empty($id)){
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
|
||||
$user_guild_week_earnings = db::name('user_guild_week_earnings')->where('id', $id)->find();
|
||||
if(!$user_guild_week_earnings){
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $user_guild_week_earnings];
|
||||
}
|
||||
|
||||
//修改补贴
|
||||
public function edit_give_room_subsidy($id, $user_earnings){
|
||||
if(empty($id)){
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
|
||||
$user_guild_week_earnings = db::name('user_guild_week_earnings')->where('id', $id)->find();
|
||||
if(!$user_guild_week_earnings){
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
|
||||
if($user_earnings < 0){
|
||||
return ['code' => 201, 'msg' => '收益不能小于0', 'data' => null];
|
||||
}
|
||||
|
||||
if($user_guild_week_earnings['is_delete'] == 2){
|
||||
return ['code' => 201, 'msg' => '该收益已结算,无法编辑', 'data' => null];
|
||||
}
|
||||
|
||||
$update = [];
|
||||
$update['user_earnings'] = $user_earnings;
|
||||
$update['update_time'] = time();
|
||||
$reslut = db::name('user_guild_week_earnings')->where('id', $id)->update($update);
|
||||
if($reslut){
|
||||
return ['code' => 200, 'msg' => '编辑成功', 'data' => null];
|
||||
}else{
|
||||
return ['code' => 201, 'msg' => '编辑失败', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//解散公会
|
||||
public function diss_guild($guild_id){
|
||||
$guild_info = db::name('guild')->where(['id'=>$guild_id,'is_delete'=>1])->find();
|
||||
if(empty($guild_info)){
|
||||
return ['code' => 201, 'msg' => '公会不存在!', 'data' => null];
|
||||
}
|
||||
try {
|
||||
Db::startTrans();
|
||||
//成员解散
|
||||
db::name('user_guild')->where(['guild_id'=>$guild_id,'status'=>1,'is_delete'=>1])->update(['is_delete'=>2,'quit_type'=>3,'quit_time'=>time()]);
|
||||
|
||||
//退会
|
||||
$update_data = [];
|
||||
$update_data['is_deacon'] = 2;
|
||||
$update_data['update_time'] = time();
|
||||
$reslut = db::name('user')->where('uid', $guild_info['uid'])->update($update_data);
|
||||
|
||||
//解散公会
|
||||
db::name('guild')->where('id',$guild_id)->update(['is_delete'=>2,'is_show'=>2,'num'=>0,'guild_special_id'=>""]);
|
||||
|
||||
Db::commit();
|
||||
return ['code' => 200, 'msg' => '解散成功!', 'data' => null];
|
||||
}catch (\Exception $e) {
|
||||
// 回滚事务
|
||||
Db::rollback();
|
||||
return ['code' => 201, 'msg' => '解散失败', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
//公会合并
|
||||
public function guild_combine($cancel_guild_id,$join_guild_id){
|
||||
$guild_info1 = db::name('guild')->where(['id'=>$cancel_guild_id,'is_delete'=>1])->find();
|
||||
if(empty($guild_info1)){
|
||||
return ['code' => 201, 'msg' => '被解散公会不存在!', 'data' => null];
|
||||
}
|
||||
$guild_info2 = db::name('guild')->where(['id'=>$join_guild_id,'is_delete'=>1])->find();
|
||||
if(empty($guild_info2)){
|
||||
return ['code' => 201, 'msg' => '并入公会不存在!', 'data' => null];
|
||||
}
|
||||
try {
|
||||
Db::startTrans();
|
||||
//a公会成员人数统计
|
||||
$num = db::name('user_guild')->where(['guild_id'=>$cancel_guild_id,'status'=>1,'is_delete'=>1])->count("*");
|
||||
|
||||
//将a公会成员加入b公会
|
||||
$s_date = date('Y-m-d H:i:s');
|
||||
db::name('user_guild')->where(['guild_id'=>$cancel_guild_id,'status'=>1,'is_delete'=>1])->update(['guild_id'=>$join_guild_id,'is_deacon'=>2,'remarks'=>"{$s_date}公会id:{$cancel_guild_id}合并到公会id:{$join_guild_id}"]);
|
||||
db::name('guild')->where(['id'=>$join_guild_id,'is_delete'=>1])->inc('num',$num)->update(['update_time'=>time()]);
|
||||
|
||||
|
||||
//取消a公会 工会长身份
|
||||
$update_data = [];
|
||||
$update_data['is_deacon'] = 2;
|
||||
$update_data['update_time'] = time();
|
||||
$reslut = db::name('user')->where('uid', $guild_info1['uid'])->update($update_data);
|
||||
db::name('guild')->where(['id'=>$cancel_guild_id])->update(['guild_special_id'=>"",'num'=>0,'is_delete'=>2,'is_show'=>2]);
|
||||
|
||||
Db::commit();
|
||||
|
||||
return ['code' => 200, 'msg' => '合并成功!', 'data' => null];
|
||||
}catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
return ['code' => 201, 'msg' => '合并失败', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
147
application/admin/model/GuildMoneyLog.php
Normal file
147
application/admin/model/GuildMoneyLog.php
Normal file
@@ -0,0 +1,147 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\model;
|
||||
|
||||
use think\Db;
|
||||
use think\Model;
|
||||
|
||||
class GuildMoneyLog extends Model
|
||||
{
|
||||
//公会流水列表
|
||||
public function get_list($guild_id, $start, $end, $page = 1, $limit = 20)
|
||||
{
|
||||
$map = [];
|
||||
|
||||
if($guild_id) {
|
||||
$map[] = ['a.room_guild_id', '=', $guild_id];
|
||||
}
|
||||
if($start) {
|
||||
$map[] = ['a.add_time', '>=', strtotime($start)];
|
||||
}
|
||||
if($end) {
|
||||
$map[] = ['a.add_time', '<=', strtotime($end)];
|
||||
}
|
||||
$map[] = ['a.room_guild_id', '>', 0];
|
||||
// dump($map);die;
|
||||
$list = db::name('user_send_gift')->alias('a')
|
||||
->field('a.*,b.room_name,b.room_number,b.room_owner_uid,c.guild_name,c.base64_guild_name,c.uid')
|
||||
->leftJoin('yy_room b', 'a.rid = b.rid')
|
||||
->leftJoin('yy_guild c', 'a.room_guild_id = c.id')
|
||||
->where($map)->order('a.add_time', 'desc')->page($page, $limit)->select();
|
||||
$uid_arr = $receive_uid_arr = [];
|
||||
foreach ($list as $val) {
|
||||
$uid_arr[] = $val['uid'];
|
||||
$receive_uid_arr[] = $val['receive_uid'];
|
||||
}
|
||||
$uid_arr = array_merge($uid_arr, $receive_uid_arr);
|
||||
$user_list = Db::name('user')->whereIn('uid', $uid_arr)->column('nick_name', 'uid');
|
||||
|
||||
foreach ($list as $k => &$v) {
|
||||
$v['guild_name'] = mb_convert_encoding(base64_decode($v['base64_guild_name']), 'UTF-8', 'UTF-8');
|
||||
$v['send_nick_name'] = $user_list[$v['uid']] ?? '';
|
||||
$v['receive_nick_name'] = $user_list[$v['receive_uid']] ?? '';
|
||||
}
|
||||
$data = [];
|
||||
$data['count'] = db::name('user_send_gift')->alias('a')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
$gift_total_price = Db::name('user_send_gift')->alias('a')->where($map)->sum('gift_total_price');
|
||||
$totalRowData = ['gift_total_price' => $gift_total_price];
|
||||
$data['totalRow'] = $totalRowData;
|
||||
// $data['totalRow'] = ['gift_total_price' => strval($gift_total_price)];
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
public function get_guild_room_money_log_list($guild_id, $rid, $start, $end, $page, $limit)
|
||||
{
|
||||
$rid_arr = [];
|
||||
if($rid) {
|
||||
$rid_arr = [$rid];
|
||||
}
|
||||
// else {
|
||||
// $rid_arr = $this->get_guild_room_list($guild_id);
|
||||
// }
|
||||
// dump($rid_arr);die;
|
||||
$map = [];
|
||||
if(!empty($rid_arr)) {
|
||||
$map[] = ['a.rid', 'in', $rid_arr];
|
||||
}
|
||||
if($start) {
|
||||
$map[] = ['a.add_time', '>=', strtotime($start)];
|
||||
}
|
||||
if($end) {
|
||||
$map[] = ['a.add_time', '<=', strtotime($end)];
|
||||
}
|
||||
if($guild_id > 0) {
|
||||
$map[] = ['a.room_guild_id', '=', $guild_id];
|
||||
}
|
||||
$map[] = ['a.room_guild_id', '>', 0];
|
||||
|
||||
$list = db::name('user_send_gift')->alias('a')
|
||||
->field('a.*,b.room_name,b.base64_room_name,b.room_number,b.room_owner_uid,c.guild_name,c.base64_guild_name,c.uid')
|
||||
->leftJoin('yy_room b', 'a.rid = b.rid')
|
||||
->leftJoin('yy_guild c', 'a.room_guild_id = c.id')
|
||||
->where($map)->order('a.add_time', 'desc')->page($page, $limit)->select();
|
||||
$uid_arr = $receive_uid_arr = [];
|
||||
foreach ($list as $val) {
|
||||
$uid_arr[] = $val['uid'];
|
||||
$receive_uid_arr[] = $val['receive_uid'];
|
||||
}
|
||||
$uid_arr = array_merge($uid_arr, $receive_uid_arr);
|
||||
$user_list = Db::name('user')->whereIn('uid', $uid_arr)->column('nick_name', 'uid');
|
||||
|
||||
foreach ($list as $k => &$v) {
|
||||
$v['guild_name'] = mb_convert_encoding(base64_decode($v['base64_guild_name']), 'UTF-8', 'UTF-8');
|
||||
$v['send_nick_name'] = $user_list[$v['uid']] ?? '';
|
||||
$v['receive_nick_name'] = $user_list[$v['receive_uid']] ?? '';
|
||||
$v['room_name'] = mb_convert_encoding(base64_decode($v['base64_room_name']), 'UTF-8', 'UTF-8');
|
||||
}
|
||||
$data = [];
|
||||
$data['count'] = db::name('user_send_gift')->alias('a')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
$totalRowData = Db::name('user_send_gift')->alias('a')
|
||||
->field('SUM(gift_total_price) as gift_total_price, SUM(room_owner_profit) as room_owner_profit')
|
||||
->where($map)->find();
|
||||
|
||||
$data['totalRow'] = $totalRowData;
|
||||
// $data['totalRow'] = ['gift_total_price' => strval($gift_total_price)];
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
//获取工会签约房间列表
|
||||
public function get_guild_room_list($guild_id = 0, $is_move = 0)
|
||||
{
|
||||
$map = [];
|
||||
if($guild_id) {
|
||||
$map[] = ['guild_id', '=', $guild_id];
|
||||
}
|
||||
if($is_move) {
|
||||
$map[] = ['is_delete', '=', $is_move];
|
||||
}
|
||||
$map[] = ['status', '=', 1];
|
||||
|
||||
$uid = Db::name('user_guild')->where($map)->column('uid');
|
||||
$uid_arr = Db::name('user')->where(['uid' => $uid, 'is_sign' => 1])->column('uid');
|
||||
$rid_arr = Db::name('room')->where(['room_owner_uid' => $uid_arr, 'room_status' => 1])->column('rid');
|
||||
return $rid_arr;
|
||||
}
|
||||
|
||||
//获取工会签约房间列表
|
||||
public function get_guild_room_list_by_guild_id($guild_id)
|
||||
{
|
||||
$map = [
|
||||
['a.guild_id', '=', $guild_id],
|
||||
['a.status', '=', 1],
|
||||
['b.is_sign', '=', 1],
|
||||
];
|
||||
$list = Db::name('user_guild')->alias('a')
|
||||
->leftJoin('yy_user b', 'a.uid = b.uid')
|
||||
->leftJoin('yy_room c', 'a.uid = c.room_owner_uid')
|
||||
->field('a.is_delete,c.rid,c.base64_room_name')
|
||||
->where($map)
|
||||
->select();
|
||||
foreach ($list as &$val) {
|
||||
$val['room_name'] = mb_convert_encoding(base64_decode($val['base64_room_name']), 'UTF-8', 'UTF-8');
|
||||
$val['is_delete_title'] = $val['is_delete'] == 1 ? '未离开' : '离开';
|
||||
}
|
||||
return $list;
|
||||
}
|
||||
}
|
||||
271
application/admin/model/Jpush.php
Normal file
271
application/admin/model/Jpush.php
Normal file
@@ -0,0 +1,271 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\model;
|
||||
|
||||
use think\Model;
|
||||
|
||||
class Jpush extends Model
|
||||
{
|
||||
|
||||
public $client;
|
||||
public $message_data;
|
||||
public function __construct()
|
||||
{
|
||||
$config = get_system_config();
|
||||
$this->client = new \JPush\Client($config['jpush_app_key'], $config['jpush_master_secret']);
|
||||
$this->message_data[1000] = '系统消息';
|
||||
$this->message_data[1001] = '情缘消息';
|
||||
$this->message_data[1002] = '陪玩订单消息';
|
||||
}
|
||||
|
||||
//全体推送
|
||||
public function push_all_notification_message($platform, $title, $message, $data = [])
|
||||
{
|
||||
if (empty($this->message_data[$data['code']])) {
|
||||
return ['code' => 201, 'msg' => '消息类型不存在', 'data' => null];
|
||||
}
|
||||
|
||||
// 完整的推送示例
|
||||
// 这只是使用样例,不应该直接用于实际生产环境中 !!
|
||||
try {
|
||||
$response = $this->client->push();
|
||||
if ($platform == 1) {
|
||||
$response = $response->setPlatform(array('ios'));
|
||||
} elseif ($platform == 2) {
|
||||
$response = $response->setPlatform(array('android'));
|
||||
} elseif ($platform == 3) {
|
||||
$response = $response->setPlatform(array('ios', 'android'));
|
||||
}
|
||||
|
||||
// 一般情况下,关于 audience 的设置只需要调用 addAlias、addTag、addTagAnd 或 addRegistrationId
|
||||
// 这四个方法中的某一个即可,这里仅作为示例,当然全部调用也可以,多项 audience 调用表示其结果的交集
|
||||
// 即是说一般情况下,下面三个方法和没有列出的 addTagAnd 一共四个,只适用一个便可满足大多数的场景需求
|
||||
|
||||
// ->addAlias('alias')
|
||||
// ->addTag(array('tag1', 'tag2'))
|
||||
// ->addRegistrationId($registration_id)
|
||||
|
||||
$response = $response->addAllAudience()
|
||||
->iosNotification($message, array(
|
||||
'title' => $title,
|
||||
//'sound' => 'sound.caf',
|
||||
// 'badge' => '+1',
|
||||
// 'content-available' => true,
|
||||
// 'mutable-content' => true,
|
||||
//'category' => '',
|
||||
'extras' => $data,
|
||||
))
|
||||
->androidNotification($message, array(
|
||||
'title' => $title,
|
||||
// 'builder_id' => 2,
|
||||
'extras' => $data
|
||||
))
|
||||
->options(array(
|
||||
// sendno: 表示推送序号,纯粹用来作为 API 调用标识,
|
||||
// API 返回时被原样返回,以方便 API 调用方匹配请求与返回
|
||||
// 这里设置为 100 仅作为示例
|
||||
|
||||
// 'sendno' => 100,
|
||||
|
||||
// time_to_live: 表示离线消息保留时长(秒),
|
||||
// 推送当前用户不在线时,为该用户保留多长时间的离线消息,以便其上线时再次推送。
|
||||
// 默认 86400 (1 天),最长 10 天。设置为 0 表示不保留离线消息,只有推送当前在线的用户可以收到
|
||||
// 这里设置为 1 仅作为示例
|
||||
|
||||
// 'time_to_live' => 1,
|
||||
|
||||
// apns_production: 表示APNs是否生产环境,
|
||||
// True 表示推送生产环境,False 表示要推送开发环境;如果不指定则默认为推送开发环境
|
||||
|
||||
'apns_production' => false,
|
||||
|
||||
// big_push_duration: 表示定速推送时长(分钟),又名缓慢推送,把原本尽可能快的推送速度,降低下来,
|
||||
// 给定的 n 分钟内,均匀地向这次推送的目标用户推送。最大值为1400.未设置则不是定速推送
|
||||
// 这里设置为 1 仅作为示例
|
||||
|
||||
// 'big_push_duration' => 1
|
||||
))
|
||||
->setSmsMessage(array(
|
||||
'delay_time' => 60,
|
||||
'signid' => 154,
|
||||
'temp_id' => 1,
|
||||
'temp_para' => array(
|
||||
'code' => 357
|
||||
),
|
||||
'active_filter' => false
|
||||
))
|
||||
->send();
|
||||
//print_r($response);
|
||||
return ['code' => 200, 'msg' => '推送成功', 'data' => null];
|
||||
} catch (\JPush\Exceptions\APIConnectionException $e) {
|
||||
// try something here
|
||||
//print $e;
|
||||
return ['code' => 201, 'msg' => '推送失败', 'data' => null];
|
||||
} catch (\JPush\Exceptions\APIRequestException $e) {
|
||||
// try something here
|
||||
// print $e;
|
||||
return ['code' => 201, 'msg' => '推送失败', 'data' => null];
|
||||
}
|
||||
}
|
||||
//个人推送
|
||||
public function push_notification_message($uid, $title, $message, $data = [])
|
||||
{
|
||||
if (empty($this->message_data[$data['code']])) {
|
||||
return ['code' => 201, 'msg' => '消息类型不存在', 'data' => null];
|
||||
}
|
||||
$uid = strval($uid);
|
||||
|
||||
// 完整的推送示例
|
||||
// 这只是使用样例,不应该直接用于实际生产环境中 !!
|
||||
try {
|
||||
$response = $this->client->push()
|
||||
->setPlatform(array('ios', 'android'));
|
||||
// 一般情况下,关于 audience 的设置只需要调用 addAlias、addTag、addTagAnd 或 addRegistrationId
|
||||
// 这四个方法中的某一个即可,这里仅作为示例,当然全部调用也可以,多项 audience 调用表示其结果的交集
|
||||
// 即是说一般情况下,下面三个方法和没有列出的 addTagAnd 一共四个,只适用一个便可满足大多数的场景需求
|
||||
|
||||
// ->addAlias('alias')
|
||||
// ->addTag(array('tag1', 'tag2'))
|
||||
// ->addRegistrationId($registration_id)
|
||||
//->addAllAudience()
|
||||
|
||||
$response = $response->addAlias($uid)
|
||||
|
||||
->setNotificationAlert($message)
|
||||
->iosNotification($message, array(
|
||||
'sound' => 'sound.caf',
|
||||
// 'badge' => '+1',
|
||||
// 'content-available' => true,
|
||||
// 'mutable-content' => true,
|
||||
'category' => 'jiguang',
|
||||
'extras' => $data,
|
||||
))
|
||||
->androidNotification($message, array(
|
||||
'title' => $title,
|
||||
// 'builder_id' => 2,
|
||||
'extras' => $data,
|
||||
))
|
||||
->message($message, array(
|
||||
'title' => $title,
|
||||
// 'content_type' => 'text',
|
||||
'extras' => $data,
|
||||
))->options(array(
|
||||
// sendno: 表示推送序号,纯粹用来作为 API 调用标识,
|
||||
// API 返回时被原样返回,以方便 API 调用方匹配请求与返回
|
||||
// 这里设置为 100 仅作为示例
|
||||
|
||||
// 'sendno' => 100,
|
||||
|
||||
// time_to_live: 表示离线消息保留时长(秒),
|
||||
// 推送当前用户不在线时,为该用户保留多长时间的离线消息,以便其上线时再次推送。
|
||||
// 默认 86400 (1 天),最长 10 天。设置为 0 表示不保留离线消息,只有推送当前在线的用户可以收到
|
||||
// 这里设置为 1 仅作为示例
|
||||
|
||||
// 'time_to_live' => 1,
|
||||
|
||||
// apns_production: 表示APNs是否生产环境,
|
||||
// True 表示推送生产环境,False 表示要推送开发环境;如果不指定则默认为推送开发环境
|
||||
|
||||
'apns_production' => false,
|
||||
|
||||
// big_push_duration: 表示定速推送时长(分钟),又名缓慢推送,把原本尽可能快的推送速度,降低下来,
|
||||
// 给定的 n 分钟内,均匀地向这次推送的目标用户推送。最大值为1400.未设置则不是定速推送
|
||||
// 这里设置为 1 仅作为示例
|
||||
|
||||
// 'big_push_duration' => 1
|
||||
))
|
||||
->setSmsMessage(array(
|
||||
'delay_time' => 60,
|
||||
'signid' => 154,
|
||||
'temp_id' => 1,
|
||||
'temp_para' => array(
|
||||
'code' => 357
|
||||
),
|
||||
'active_filter' => false
|
||||
))
|
||||
->send();
|
||||
print_r($response);
|
||||
} catch (\JPush\Exceptions\APIConnectionException $e) {
|
||||
// try something here
|
||||
//print $e;
|
||||
return ['code' => 201, 'msg' => '推送失败', 'data' => null];
|
||||
} catch (\JPush\Exceptions\APIRequestException $e) {
|
||||
// try something here
|
||||
// print $e;
|
||||
return ['code' => 201, 'msg' => '推送失败', 'data' => null];
|
||||
}
|
||||
}
|
||||
//推送APP内消息
|
||||
public function push_message($uid, $title, $message, $data = [])
|
||||
{
|
||||
|
||||
if (empty($this->message_data[$data['code']])) {
|
||||
return ['code' => 201, 'msg' => '消息类型不存在', 'data' => null];
|
||||
}
|
||||
// 完整的推送示例
|
||||
// 这只是使用样例,不应该直接用于实际生产环境中 !!
|
||||
try {
|
||||
$response = $this->client->push()
|
||||
->setPlatform(array('ios', 'android'));
|
||||
// 一般情况下,关于 audience 的设置只需要调用 addAlias、addTag、addTagAnd 或 addRegistrationId
|
||||
// 这四个方法中的某一个即可,这里仅作为示例,当然全部调用也可以,多项 audience 调用表示其结果的交集
|
||||
// 即是说一般情况下,下面三个方法和没有列出的 addTagAnd 一共四个,只适用一个便可满足大多数的场景需求
|
||||
|
||||
// ->addAlias('alias')
|
||||
// ->addTag(array('tag1', 'tag2'))
|
||||
// ->addRegistrationId($registration_id)
|
||||
//->addAllAudience()
|
||||
|
||||
$response = $response->addAlias($uid)
|
||||
->message($message, array(
|
||||
'title' => $title,
|
||||
// 'content_type' => 'text',
|
||||
'extras' => $data,
|
||||
))
|
||||
->options(array(
|
||||
// sendno: 表示推送序号,纯粹用来作为 API 调用标识,
|
||||
// API 返回时被原样返回,以方便 API 调用方匹配请求与返回
|
||||
// 这里设置为 100 仅作为示例
|
||||
|
||||
// 'sendno' => 100,
|
||||
|
||||
// time_to_live: 表示离线消息保留时长(秒),
|
||||
// 推送当前用户不在线时,为该用户保留多长时间的离线消息,以便其上线时再次推送。
|
||||
// 默认 86400 (1 天),最长 10 天。设置为 0 表示不保留离线消息,只有推送当前在线的用户可以收到
|
||||
// 这里设置为 1 仅作为示例
|
||||
|
||||
// 'time_to_live' => 1,
|
||||
|
||||
// apns_production: 表示APNs是否生产环境,
|
||||
// True 表示推送生产环境,False 表示要推送开发环境;如果不指定则默认为推送开发环境
|
||||
|
||||
'apns_production' => false,
|
||||
|
||||
// big_push_duration: 表示定速推送时长(分钟),又名缓慢推送,把原本尽可能快的推送速度,降低下来,
|
||||
// 给定的 n 分钟内,均匀地向这次推送的目标用户推送。最大值为1400.未设置则不是定速推送
|
||||
// 这里设置为 1 仅作为示例
|
||||
|
||||
// 'big_push_duration' => 1
|
||||
))
|
||||
->setSmsMessage(array(
|
||||
'delay_time' => 60,
|
||||
'signid' => 154,
|
||||
'temp_id' => 1,
|
||||
'temp_para' => array(
|
||||
'code' => 357
|
||||
),
|
||||
'active_filter' => false
|
||||
))
|
||||
->send();
|
||||
print_r($response);
|
||||
} catch (\JPush\Exceptions\APIConnectionException $e) {
|
||||
// try something here
|
||||
//print $e;
|
||||
return ['code' => 201, 'msg' => '推送失败', 'data' => null];
|
||||
} catch (\JPush\Exceptions\APIRequestException $e) {
|
||||
// try something here
|
||||
// print $e;
|
||||
return ['code' => 201, 'msg' => '推送失败', 'data' => null];
|
||||
}
|
||||
}
|
||||
}
|
||||
142
application/admin/model/Message.php
Normal file
142
application/admin/model/Message.php
Normal file
@@ -0,0 +1,142 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\model;
|
||||
|
||||
use think\Model;
|
||||
use think\Db;
|
||||
|
||||
class Message extends Model
|
||||
{
|
||||
protected $pk = 'smid';
|
||||
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_message_list($smid, $title, $order, $sort, $page, $limit)
|
||||
{
|
||||
$map = [];
|
||||
if (!empty($smid)) {
|
||||
$map[] = ['smid', '=', $smid];
|
||||
}
|
||||
if (!empty($title)) {
|
||||
$map[] = ['title', 'like', '%' . $title . '%'];
|
||||
}
|
||||
$user_list = db::name('message')->where($map)->order($order, $sort)->page($page, $limit)->select();
|
||||
$data = [];
|
||||
$data['count'] = db::name('message')->where($map)->count();
|
||||
$data['list'] = $user_list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
public function get_message_info($smid)
|
||||
{
|
||||
$map = [];
|
||||
$map[] = ['smid', '=', $smid];
|
||||
$info = db::name('message')->where($map)->find();
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $info];
|
||||
}
|
||||
|
||||
// public function add_message($datas)
|
||||
// {
|
||||
// set_time_limit(0);
|
||||
// ini_set('memory_limit', '1024M');
|
||||
|
||||
// $validate = validate('message');
|
||||
// $reslut = $validate->scene('adminAdd')->check($datas);
|
||||
// if ($reslut !== true) {
|
||||
// return ['code' => 201, 'msg' => $validate->getError(), 'data' => null];
|
||||
// }
|
||||
// $message = model('message');
|
||||
// $reslut = $message->save($datas);
|
||||
// $smid = $message->smid;
|
||||
// if ($reslut) {
|
||||
// //批量增加用户消息
|
||||
// $uid_list = db::name('user')->column('uid');
|
||||
// $now_time = time();
|
||||
// $insert_data = [];
|
||||
// foreach ($uid_list as $k => $v) {
|
||||
// $data = [];
|
||||
// $data['type'] = 1;
|
||||
// $data['id'] = $smid;
|
||||
// $data['uid'] = $v;
|
||||
// $data['title'] = $datas['title'];
|
||||
// $data['content'] = $datas['content'];
|
||||
// $data['is_read'] = 1;
|
||||
// $data['read_time'] = 0;
|
||||
// $data['add_time'] = $now_time;
|
||||
// $data['update_time'] = $now_time;
|
||||
// $insert_data[] = $data;
|
||||
// // if (count($insert_data) % 2000 == 0) {
|
||||
// // db::name('user_message')->insertAll($insert_data);
|
||||
// // }
|
||||
// }
|
||||
// if (!empty($insert_data)) {
|
||||
// db::name('user_message')->insertAll($insert_data);
|
||||
// }
|
||||
// return ['code' => 200, 'msg' => '添加成功', 'data' => ''];
|
||||
// } else {
|
||||
// return ['code' => 201, 'msg' => '添加失败', 'data' => ''];
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
|
||||
public function add_message($data)
|
||||
{
|
||||
set_time_limit(0);
|
||||
ini_set('memory_limit', '1024M');
|
||||
$validate = validate('message');
|
||||
$reslut = $validate->scene('adminAdd')->check($data);
|
||||
if ($reslut !== true) {
|
||||
return ['code' => 201, 'msg' => $validate->getError(), 'data' => null];
|
||||
}
|
||||
$message = model('message');
|
||||
$reslut = $message->save($data);
|
||||
$smid = $message->smid;
|
||||
$data1 = $data;
|
||||
if ($reslut) {
|
||||
//队列插入数据
|
||||
$redis = connectionRedis();
|
||||
$redis->rPush('admin_add_message111',$smid.'-61116-'.$data1['title'].'-61116-'.$data1['content']);
|
||||
return ['code' => 200, 'msg' => '添加成功', 'data' => ''];
|
||||
} else {
|
||||
return ['code' => 201, 'msg' => '添加失败', 'data' => ''];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public function edit_message($data)
|
||||
{
|
||||
$validate = validate('message');
|
||||
$reslut = $validate->scene('adminEdit')->check($data);
|
||||
if ($reslut !== true) {
|
||||
return ['code' => 201, 'msg' => $validate->getError(), 'data' => null];
|
||||
}
|
||||
$reslut = model('message')->isUpdate(true)->save($data);
|
||||
if (!$reslut) {
|
||||
return ['code' => 201, 'msg' => '编辑失败', 'data' => ''];
|
||||
} else {
|
||||
$update_data = [];
|
||||
$update_data['title'] = $data['title'];
|
||||
$update_data['content'] = $data['content'];
|
||||
$update_data['is_show'] = $data['is_show'];
|
||||
db::name('user_message')->where(['smid' => $data['smid']])->update($update_data);
|
||||
return ['code' => 200, 'msg' => '编辑成功', 'data' => ''];
|
||||
}
|
||||
}
|
||||
}
|
||||
244
application/admin/model/Monster.php
Normal file
244
application/admin/model/Monster.php
Normal file
@@ -0,0 +1,244 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\model;
|
||||
|
||||
use think\Db;
|
||||
use think\Model;
|
||||
|
||||
class Monster extends Model
|
||||
{
|
||||
//列表
|
||||
public function get_monster_list($order, $sort, $page = 1, $limit = 20)
|
||||
{
|
||||
|
||||
$list = db::name('Monster')->order($order, $sort)->page($page, $limit)->select();
|
||||
$total_num = db::name('Monster')->sum('num');
|
||||
foreach ($list as $k => &$v) {
|
||||
$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'];
|
||||
$v['rate'] = round(($v['num']/$total_num), 6) * 100;
|
||||
$v['rate'] .= '%';
|
||||
}
|
||||
$data = [];
|
||||
$data['count'] = db::name('Monster')->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
//获取礼物列表
|
||||
public function get_gift_list(){
|
||||
$map = [];
|
||||
// $map[] = ['gid', 'not in', [36,37,38]];
|
||||
$map[] = ['type', '=', 1];
|
||||
$map[] = ['is_show','=',1];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$list = db::name('gift')->where($map)->order('gift_price asc')->select();
|
||||
foreach ($list as $k => &$v) {
|
||||
$v['base_image'] = localpath_to_netpath($v['base_image']);
|
||||
}
|
||||
$data = [];
|
||||
$data['count'] = db::name('gift')->where($map)->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('Monster')->find($data['id']);
|
||||
if (empty($monster_info)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
|
||||
$map = [];
|
||||
$map[] = ['gid', '=', $data['gid']];
|
||||
$map[] = ['type', '=', 1];
|
||||
$map[] = ['is_show','=',1];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$gift_info = db::name('gift')->where($map)->find();
|
||||
if(!$gift_info){
|
||||
return ['code' => 201, 'msg' => '配置礼物不存在', 'data' => null];
|
||||
}
|
||||
|
||||
if($monster_info['multiple'] * 10 != $gift_info['gift_price']){
|
||||
return ['code' => 201, 'msg' => '配置礼物的价格必须为倍数的10倍', 'data' => null];
|
||||
}
|
||||
|
||||
Db::startTrans();
|
||||
try {
|
||||
|
||||
$update_data = [];
|
||||
$update_data['type_name'] = $data['type_name'];
|
||||
// $update_data['multiple'] = $data['multiple'];
|
||||
$update_data['gid'] = $data['gid'];
|
||||
$update_data['num'] = $data['num'];
|
||||
$update_data['update_time'] = time();
|
||||
$reslut = db::name('Monster')->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('Monster')->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('monster_multiple')->order($order, $sort)->page($page, $limit)->select();
|
||||
foreach ($list as $k => &$v) {
|
||||
|
||||
}
|
||||
$data = [];
|
||||
$data['count'] = db::name('monster_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('monster_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('monster_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('monster_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('monster_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){
|
||||
$gift_info = db::name('Monster')->alias('a')->join('yy_gift b', 'a.gid = b.gid')->field('b.gid,b.gift_name,b.base_image,b.gift_price,a.type_name')->where('a.type', $v['win_type'])->find();
|
||||
$v['gid'] = $gift_info['gid'];
|
||||
$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['type_name'] = $gift_info['type_name'];
|
||||
}
|
||||
}
|
||||
$data = [];
|
||||
$data['count'] = db::name('monster_log')->count();
|
||||
$data['list'] = $list;
|
||||
$totalRowData = db::name('monster_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_monster_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('Monster')->where('type', $v['type'])->value('type_name');
|
||||
}
|
||||
|
||||
$data = [];
|
||||
$data['count'] = db::name('user_monster_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_monster_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('Monster')->where('type', $v['win_type'])->value('type_name');
|
||||
$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'];
|
||||
}
|
||||
$data = [];
|
||||
$data['count'] = db::name('user_monster_win_log')->where('mid', $mid)->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
575
application/admin/model/Multiple.php
Normal file
575
application/admin/model/Multiple.php
Normal file
@@ -0,0 +1,575 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\model;
|
||||
|
||||
use think\Db;
|
||||
use think\Model;
|
||||
|
||||
class Multiple extends Model
|
||||
{
|
||||
//类型列表
|
||||
public function get_gift_multiple_type_list($id, $name, $order, $sort, $page = 1, $limit = 20)
|
||||
{
|
||||
$map = [];
|
||||
if (!empty($id)) {
|
||||
$map[] = ['id', '=', $id];
|
||||
}
|
||||
if (!empty($name)) {
|
||||
$map[] = ['name', 'like', '%' . $name . '%'];
|
||||
}
|
||||
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
|
||||
$list = db::name('gift_multiple_type')->where($map)->order($order, $sort)->page($page, $limit)->select();
|
||||
foreach ($list as $k => &$v) {
|
||||
|
||||
}
|
||||
$data = [];
|
||||
$data['count'] = db::name('gift_multiple_type')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
//编辑类型
|
||||
public function edit_gift_multiple_type($data)
|
||||
{
|
||||
if (empty($data)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$info = db::name('gift_multiple_type')->find($data['id']);
|
||||
if (empty($info)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
|
||||
$update_data = [];
|
||||
$update_data['name'] = $data['name'];
|
||||
$update_data['update_time'] = time();
|
||||
$reslut = db::name('gift_multiple_type')->where(['id' => $data['id']])->update($update_data);
|
||||
if (!$reslut) {
|
||||
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 200, 'msg' => '修改成功', 'data' => null];
|
||||
}
|
||||
}
|
||||
//添加类型
|
||||
public function add_gift_multiple_type($data)
|
||||
{
|
||||
|
||||
$add_data = [];
|
||||
$add_data['name'] = $data['name'];
|
||||
$add_data['update_time'] = time();
|
||||
$add_data['add_time'] = time();
|
||||
$reslut = db::name('gift_multiple_type')->insert($add_data);
|
||||
if (!$reslut) {
|
||||
return ['code' => 201, 'msg' => '添加失败', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 200, 'msg' => '添加成功', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
//获取类型信息
|
||||
public function get_gift_multiple_type_info($id)
|
||||
{
|
||||
if (empty($id)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$info = db::name('gift_multiple_type')->where(['id' => $id])->find();
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $info];
|
||||
}
|
||||
|
||||
//删除类型
|
||||
public function del_gift_multiple_type($id)
|
||||
{
|
||||
if (empty($id)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
|
||||
$reslut = db::name('gift_multiple_type')->where(['id' => $id])->update(['is_delete' => 2, 'update_time' => time()]);
|
||||
if (!$reslut) {
|
||||
return ['code' => 201, 'msg' => '删除失败', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 200, 'msg' => '删除成功', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//列表
|
||||
public function get_gift_multiple_rate_list($pid, $order, $sort, $page = 1, $limit = 20)
|
||||
{
|
||||
set_time_limit(0);
|
||||
ini_set('memory_limit', '1024M');
|
||||
$redis = connectionRedis();
|
||||
|
||||
$map = [];
|
||||
if (!empty($pid)) {
|
||||
$map[] = ['pid', '=', $pid];
|
||||
}
|
||||
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$count = db::name('gift_multiple_rate')->where($map)->sum('rate_num');
|
||||
$list = db::name('gift_multiple_rate')->where($map)->order($order, $sort)->page($page, $limit)->select();
|
||||
$total_unopen_num = 0;
|
||||
$total_open_num = 0;
|
||||
foreach ($list as $k => &$v) {
|
||||
$v['rate'] = round(($v['rate_num']/$count),6)*100;
|
||||
$v['rate'] = $v['rate'].'%';
|
||||
|
||||
$un_redis_list = [];
|
||||
if(in_array($v['pid'],$un_redis_list)){
|
||||
$v['unopen_num'] = $v['rate_num'];
|
||||
$v['open_num'] = $v['rate_num'];
|
||||
|
||||
}else{
|
||||
$keyname = "multiple:list:type:".$v['pid'];
|
||||
$redis_data_list = $redis->Lrange($keyname, 0, -1);
|
||||
$redis_gift_data = [];
|
||||
foreach ($redis_data_list as $a => $b) {
|
||||
$gift_data = explode('-', $b);
|
||||
if (empty($redis_gift_data[$gift_data[1]])) {
|
||||
$redis_gift_data[$gift_data[1]] = 1;
|
||||
} else {
|
||||
$redis_gift_data[$gift_data[1]]++;
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($redis_gift_data[$v['multiple']])) {
|
||||
$v['unopen_num'] = 0;
|
||||
} else {
|
||||
$v['unopen_num'] = $redis_gift_data[$v['multiple']];
|
||||
}
|
||||
// $total_unopen_num += $v['unopen_num'];
|
||||
$sum_num = $count;
|
||||
if(count($redis_data_list) > $sum_num){
|
||||
$count_redis_data_list = count($redis_data_list);
|
||||
$place = ceil($count_redis_data_list/$sum_num);
|
||||
$v['open_num'] = $v['rate_num']*$place - $v['unopen_num'];
|
||||
}else{
|
||||
$v['open_num'] = $v['rate_num'] - $v['unopen_num'];
|
||||
}
|
||||
// $total_open_num += $v['open_num'];
|
||||
}
|
||||
}
|
||||
$data = [];
|
||||
$data['count'] = db::name('gift_multiple_rate')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
//编辑
|
||||
public function edit_gift_multiple_rate($data)
|
||||
{
|
||||
if (empty($data)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$info = db::name('gift_multiple_rate')->find($data['id']);
|
||||
if (empty($info)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$map = [];
|
||||
$map[] = ['multiple', '=', $data['multiple']];
|
||||
$map[] = ['pid', 'neq', $info['pid']];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$gift_multiple_rate = db::name('gift_multiple_rate')->where($map)->find();
|
||||
if($gift_multiple_rate){
|
||||
return ['code' => 201, 'msg' => '该倍率已添加过', 'data' => null];
|
||||
}
|
||||
|
||||
// dump($data);exit;
|
||||
$update_data = [];
|
||||
$update_data['multiple'] = $data['multiple'];
|
||||
$update_data['rate_num'] = $data['rate_num'];
|
||||
$update_data['update_time'] = time();
|
||||
$reslut = db::name('gift_multiple_rate')->where(['id' => $data['id']])->update($update_data);
|
||||
if (!$reslut) {
|
||||
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 200, 'msg' => '修改成功', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
//添加
|
||||
public function add_gift_multiple_rate($data)
|
||||
{
|
||||
$map = [];
|
||||
$map[] = ['pid', '=', $data['pid']];
|
||||
$map[] = ['multiple', '=', $data['multiple']];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$gift_multiple_rate = db::name('gift_multiple_rate')->where($map)->find();
|
||||
if($gift_multiple_rate){
|
||||
return ['code' => 201, 'msg' => '该倍率已添加过', 'data' => null];
|
||||
}
|
||||
|
||||
$add_data = [];
|
||||
$add_data['pid'] = $data['pid'];
|
||||
$add_data['multiple'] = $data['multiple'];
|
||||
$add_data['rate_num'] = $data['rate_num'];
|
||||
$add_data['update_time'] = time();
|
||||
$add_data['add_time'] = time();
|
||||
$reslut = db::name('gift_multiple_rate')->insert($add_data);
|
||||
if (!$reslut) {
|
||||
return ['code' => 201, 'msg' => '添加失败', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 200, 'msg' => '添加成功', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
//获取信息
|
||||
public function get_gift_multiple_rate_info($id)
|
||||
{
|
||||
if (empty($id)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$info = db::name('gift_multiple_rate')->where(['id' => $id])->find();
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $info];
|
||||
}
|
||||
|
||||
//删除
|
||||
public function del_gift_multiple_rate($id)
|
||||
{
|
||||
if (empty($id)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
|
||||
$reslut = db::name('gift_multiple_rate')->where(['id' => $id])->update(['is_delete' => 2, 'update_time' => time()]);
|
||||
if (!$reslut) {
|
||||
return ['code' => 201, 'msg' => '删除失败', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 200, 'msg' => '删除成功', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
public function get_user_send_gift_rate_list($uid, $room_id, $room_uid, $receive_uid, $gid, $gift_name, $start, $end, $order, $sort, $page = 1, $limit = 20)
|
||||
{
|
||||
$map = [];
|
||||
if (!empty($uid)) {
|
||||
$map[] = ['a.uid', '=', $uid];
|
||||
}
|
||||
|
||||
if (!empty($room_id)) {
|
||||
$map[] = ['c.room_number', '=', $room_id];
|
||||
}
|
||||
if (!empty($room_uid)) {
|
||||
$map[] = ['a.room_uid', '=', $room_uid];
|
||||
}
|
||||
|
||||
if (!empty($receive_uid)) {
|
||||
$map[] = ['a.receive_uid', '=', $receive_uid];
|
||||
}
|
||||
if (!empty($gid)) {
|
||||
$map[] = ['a.gid', '=', $gid];
|
||||
}
|
||||
if (!empty($gift_name)) {
|
||||
$map[] = ['a.gift_name', 'like', '%' . $gift_name . '%'];
|
||||
}
|
||||
|
||||
if (!empty($start)) {
|
||||
$map[] = ['a.add_time', '>=', strtotime($start)];
|
||||
}
|
||||
if (!empty($end)) {
|
||||
$map[] = ['a.add_time', '<=', strtotime($end)];
|
||||
}
|
||||
|
||||
if (empty($order)) {
|
||||
$order = 'a.sid';
|
||||
}
|
||||
if (empty($sort)) {
|
||||
$sort = 'desc';
|
||||
}
|
||||
|
||||
$list = db::name('user_send_gift_rate')
|
||||
->alias('a')->join('yy_user b', 'a.uid = b.uid')->join('yy_room c', 'a.rid = c.rid')
|
||||
->field('a.*,b.nick_name,c.room_name')->where($map)->order($order, $sort)->page($page, $limit)->select();
|
||||
foreach ($list as $k => $v) {
|
||||
$list[$k]['user_nick_name'] = $v['uid'] . '-' . $v['nick_name'];
|
||||
}
|
||||
$data = [];
|
||||
|
||||
$data['list'] = $list;
|
||||
$totalRowData = db::name('user_send_gift_rate')->alias('a')->join('yy_user b', 'a.uid = b.uid')->join('yy_room c', 'a.rid = c.rid')->field('count(a.sid) as count,SUM(a.gift_num) as gift_num,SUM(a.gift_total_price) as gift_total_price,SUM(a.win_price) as win_price,SUM(a.room_owner_profit) as room_owner_profit, SUM(a.room_host_profit) as room_host_profit, SUM(a.receiver_profit) as receiver_profit')->where($map)->find();
|
||||
$data['count'] = $totalRowData['count'];
|
||||
unset($totalRowData['count']);
|
||||
//dump($totalRowData);
|
||||
$data['totalRow'] = $totalRowData;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
|
||||
//获取列表
|
||||
public function room_subsidy($order, $sort, $page, $limit)
|
||||
{
|
||||
$map = [];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$list = db::name('room_subsidy_lucky')->where($map)->order($order, $sort)->page($page, $limit)->select();
|
||||
foreach ($list as $k => &$v){
|
||||
if($v['type'] == 2){
|
||||
$v['money'] = $v['money'].'%';
|
||||
}
|
||||
}
|
||||
$data = [];
|
||||
$data['count'] = db::name('room_subsidy_lucky')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
//删除
|
||||
public function room_subsidy_del($id)
|
||||
{
|
||||
|
||||
$del = db::name('room_subsidy_lucky')->where(['id' => $id])->update(['is_delete' => 2]);
|
||||
if ($del) {
|
||||
return ['code' => 200, 'msg' => '删除成功', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 201, 'msg' => '删除失败', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
//获取
|
||||
public function room_subsidy_info($id)
|
||||
{
|
||||
if (empty($id)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$room_subsidy_info = db::name('room_subsidy_lucky')->find($id);
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $room_subsidy_info];
|
||||
}
|
||||
|
||||
//修改
|
||||
public function edit_room_subsidy($id, $level_name, $total_gift_price, $money, $type)
|
||||
{
|
||||
if (empty($id)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$arr = [];
|
||||
$arr['type'] = $type;
|
||||
$arr['level_name'] = $level_name;
|
||||
$arr['total_gift_price'] = $total_gift_price;
|
||||
$arr['money'] = $money;
|
||||
$arr['update_time'] = time();
|
||||
$upd = db::name('room_subsidy_lucky')->where(['id' => $id])->update($arr);
|
||||
if ($upd) {
|
||||
return ['code' => 200, 'msg' => '修改成功', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
//添加
|
||||
public function add_room_subsidy($level_name, $total_gift_price, $money, $type)
|
||||
{
|
||||
$arr = [];
|
||||
$arr['type'] = $type;
|
||||
$arr['level_name'] = $level_name;
|
||||
$arr['total_gift_price'] = $total_gift_price;
|
||||
$arr['money'] = $money;
|
||||
$arr['add_time'] = time();
|
||||
$add = db::name('room_subsidy_lucky')->insert($arr);
|
||||
if ($add) {
|
||||
return ['code' => 200, 'msg' => '添加成功', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 201, 'msg' => '添加失败', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
//获取列表
|
||||
public function give_room_subsidy_list($room_number, $uid, $is_delete, $order, $sort, $page, $limit, $start){
|
||||
$map = [];
|
||||
if(!empty($room_number)){
|
||||
$rid = db::name('room')->where('room_number', $room_number)->value('rid');
|
||||
$map[] = ['rid', '=', $rid];
|
||||
}
|
||||
if(!empty($uid)){
|
||||
$map[] = ['uid', '=', $uid];
|
||||
}
|
||||
if(!empty($is_delete)){
|
||||
$map[] = ['is_delete', '=', $is_delete];
|
||||
}
|
||||
if(!empty($start)){
|
||||
$now_time = strtotime($start);
|
||||
$last_week = strtotime('-1 week last sunday', $now_time);
|
||||
$map[] = ['last_week_time', '=', $last_week];
|
||||
}else{
|
||||
$now_time = time();
|
||||
$last_week = strtotime('-1 week last sunday', $now_time);
|
||||
$map[] = ['last_week_time', '=', $last_week];
|
||||
}
|
||||
|
||||
$map[] = ['type', '=', 2];
|
||||
$list = db::name('user_room_week_earnings')->where($map)->order($order, $sort)->page($page, $limit)->select();
|
||||
foreach ($list as $k => &$v){
|
||||
$room_info = db::name('room')->find($v['rid']);
|
||||
$v['room_number'] = $room_info['room_number'];
|
||||
$v['room_name'] = mb_convert_encoding(base64_decode($room_info['base64_room_name']), 'UTF-8', 'UTF-8');
|
||||
$user_info = db::name('user')->find($v['uid']);
|
||||
$v['nick_name'] = mb_convert_encoding(base64_decode($user_info['base64_nick_name']), 'UTF-8', 'UTF-8');
|
||||
|
||||
|
||||
}
|
||||
|
||||
$data = [];
|
||||
$data['count'] = db::name('user_room_week_earnings')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
//批量结算
|
||||
public function batch_give_room_subsidy($data){
|
||||
if(empty($data)){
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
|
||||
$gid_list = [];
|
||||
foreach ($data as $k => $v){
|
||||
if(in_array($v['is_delete'], [2])) {
|
||||
return ['code' => 201, 'msg' => '批量结算中包含已发放的', 'data' => null];
|
||||
}
|
||||
$gid_list[] = $v['id'];
|
||||
}
|
||||
|
||||
Db::startTrans();
|
||||
try {
|
||||
|
||||
$map = [];
|
||||
$map[] = ['id', 'in', $gid_list];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$list = db::name('user_room_week_earnings')->where($map)->select();
|
||||
if(!empty($list)){
|
||||
foreach ($list as $k => $v){
|
||||
$reslut = model('admin/User')->change_user_money_by_uid($v['uid'], $v['user_earnings'], 1, 35, '房间幸运补贴收益', $v['uid'], 0, $v['rid']);
|
||||
if ($reslut['code'] == 201) {
|
||||
Db::rollback();
|
||||
return ['code' => 201, 'msg' => $reslut['msg'], 'data' => null];
|
||||
}
|
||||
$reslut = db::name('user_room_week_earnings')->where('id', $v['id'])->update(['is_delete' => 2, 'update_time' => time()]);
|
||||
if (!$reslut) {
|
||||
Db::rollback();
|
||||
return ['code' => 201, 'msg' => $reslut['msg'], 'data' => null];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 提交事务
|
||||
Db::commit();
|
||||
return ['code' => 200, 'msg' => "发放成功", 'data' => null];
|
||||
} catch (\Exception $e) {
|
||||
// 回滚事务
|
||||
Db::rollback();
|
||||
return ['code' => 201, 'msg' => "发放失败", 'data' => null];
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
//补贴详情
|
||||
public function get_give_room_subsidy_info($id){
|
||||
if(empty($id)){
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
|
||||
$user_room_week_earnings = db::name('user_room_week_earnings')->where('id', $id)->find();
|
||||
if(!$user_room_week_earnings){
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $user_room_week_earnings];
|
||||
}
|
||||
|
||||
//修改补贴
|
||||
public function edit_give_room_subsidy($id, $user_earnings){
|
||||
if(empty($id)){
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
|
||||
$user_room_week_earnings = db::name('user_room_week_earnings')->where('id', $id)->find();
|
||||
if(!$user_room_week_earnings){
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
|
||||
if($user_earnings < 0){
|
||||
return ['code' => 201, 'msg' => '收益不能小于0', 'data' => null];
|
||||
}
|
||||
|
||||
if($user_room_week_earnings['is_delete'] == 2){
|
||||
return ['code' => 201, 'msg' => '该收益已结算,无法编辑', 'data' => null];
|
||||
}
|
||||
|
||||
$update = [];
|
||||
$update['user_earnings'] = $user_earnings;
|
||||
$update['update_time'] = time();
|
||||
$reslut = db::name('user_room_week_earnings')->where('id', $id)->update($update);
|
||||
if($reslut){
|
||||
return ['code' => 200, 'msg' => '编辑成功', 'data' => null];
|
||||
}else{
|
||||
return ['code' => 201, 'msg' => '编辑失败', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
//监控宝箱redis list 剩余宝箱数量 生成
|
||||
//tid 宝箱类型
|
||||
//is_reset 0不重置 1重置
|
||||
public function control_gift_multiple($id = 0, $is_reset = 0)
|
||||
{
|
||||
set_time_limit(0);
|
||||
ini_set('memory_limit', '1024M');
|
||||
$redis = connectionRedis();
|
||||
// dump($id);
|
||||
// dump($is_reset);
|
||||
// exit;
|
||||
$map = [];
|
||||
if (!empty($id)) {
|
||||
$map[] = ['id', '=', $id];
|
||||
}
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$gift_multiple_type_list = db::name('gift_multiple_type')->where($map)->select();
|
||||
$list_len = 0;
|
||||
foreach ($gift_multiple_type_list as $k => $v) {
|
||||
|
||||
$map = [];
|
||||
$map[] = ['pid', '=', $v['id']];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$gift_multiple_rate_list = Db::name('gift_multiple_rate')->where($map)->select();
|
||||
$keyname = "multiple:list:type:" . $v['id'];
|
||||
if ($is_reset == 1) {
|
||||
$redis->del($keyname); //如果重置则删除原队列
|
||||
}
|
||||
//剩余开奖次数少于5000 则补充下一期奖池
|
||||
if ($redis->llen($keyname) < 500) {
|
||||
$insert_data = [];
|
||||
$total_gift_value = 0;
|
||||
|
||||
foreach ($gift_multiple_rate_list as $m => $n) {
|
||||
//更新添加次数
|
||||
for ($q = 0; $q < $n['rate_num']; $q++) {
|
||||
$insert_data[] = $n['multiple'];
|
||||
}
|
||||
}
|
||||
|
||||
shuffle($insert_data);
|
||||
|
||||
if (!empty($gift_multiple_rate_list)) {
|
||||
//插入期日志表
|
||||
$data = [];
|
||||
$data['pid'] = $v['id'];
|
||||
$data['total_num'] = count($insert_data);
|
||||
$data['open_num'] = 0;
|
||||
$data['config_text'] = json_encode($gift_multiple_rate_list);
|
||||
$data['add_time'] = time();
|
||||
$data['update_time'] = time();
|
||||
$bl_id = db::name('gift_multiple_log')->insertGetId($data);
|
||||
foreach ($insert_data as $p => $q) {
|
||||
$insert_data[$p] = $bl_id . '-' . $insert_data[$p];
|
||||
}
|
||||
// shuffle($insert_data);
|
||||
array_unshift($insert_data, $keyname);
|
||||
call_user_func_array([$redis, 'rPush'], $insert_data);
|
||||
}
|
||||
}
|
||||
$list_len = $redis->llen($keyname);
|
||||
//echo date('Y-m-d H:i:s') . " " . $keyname . "宝箱剩余数量:$list_len" . "\r\n";
|
||||
}
|
||||
|
||||
return ['code' => 200, 'msg' => '生成成功', 'data' => "剩余数量: $list_len"];
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
153
application/admin/model/NewBox.php
Normal file
153
application/admin/model/NewBox.php
Normal file
@@ -0,0 +1,153 @@
|
||||
<?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];
|
||||
}
|
||||
|
||||
}
|
||||
251
application/admin/model/Nobility.php
Normal file
251
application/admin/model/Nobility.php
Normal file
@@ -0,0 +1,251 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\model;
|
||||
|
||||
use think\Db;
|
||||
use think\Model;
|
||||
|
||||
class Nobility extends Model
|
||||
{
|
||||
//列表
|
||||
public function get_nobility_list($order, $sort, $page = 1, $limit = 20)
|
||||
{
|
||||
$map = [];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
|
||||
$list = db::name('nobility')->where($map)->order($order, $sort)->page($page, $limit)->select();
|
||||
foreach ($list as $k => &$v) {
|
||||
$v['image'] = localpath_to_netpath($v['image']);
|
||||
}
|
||||
$data = [];
|
||||
$data['count'] = db::name('nobility')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
//编辑
|
||||
public function edit_nobility($data)
|
||||
{
|
||||
if (empty($data)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$nobility_info = db::name('nobility')->find($data['lid']);
|
||||
if (empty($nobility_info)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
|
||||
$update_data = [];
|
||||
// $update_data['level'] = $data['level'];
|
||||
$update_data['name'] = $data['name'];
|
||||
$update_data['image'] = $data['image'];
|
||||
// $update_data['change_value'] = $data['change_value'];
|
||||
// $update_data['images'] = $data['images'];
|
||||
$update_data['pay_price'] = $data['pay_price'];
|
||||
$update_data['renew_price'] = $data['renew_price'];
|
||||
$update_data['pay_coin'] = $data['pay_coin'];
|
||||
$update_data['renew_coin'] = $data['renew_coin'];
|
||||
// $update_data['play_image'] = $data['play_image'];
|
||||
// $update_data['is_public_server'] = $data['is_public_server'];
|
||||
// $update_data['is_kick'] = $data['is_kick'];
|
||||
// $update_data['is_show_rank'] = $data['is_show_rank'];
|
||||
// $update_data['is_freedom_micro'] = $data['is_freedom_micro'];
|
||||
// $update_data['is_look_visitor'] = $data['is_look_visitor'];
|
||||
$update_data['day_num'] = $data['day_num'];
|
||||
$update_data['update_time'] = time();
|
||||
$reslut = db::name('nobility')->where(['lid' => $data['lid']])->update($update_data);
|
||||
if (!$reslut) {
|
||||
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 200, 'msg' => '修改成功', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
//获取信息
|
||||
public function nobility_info($lid)
|
||||
{
|
||||
if (empty($lid)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$gift_info = db::name('nobility')->where(['lid' => $lid])->find();
|
||||
$gift_info['image'] = localpath_to_netpath($gift_info['image']);
|
||||
// $gift_info['images'] = localpath_to_netpath($gift_info['images']);
|
||||
// $gift_info['http_play_image'] = localpath_to_netpath($gift_info['play_image']);
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $gift_info];
|
||||
}
|
||||
|
||||
//权限列表
|
||||
public function get_nobility_power_list($order, $sort, $page = 1, $limit = 20)
|
||||
{
|
||||
$map = [];
|
||||
|
||||
$list = db::name('nobility_power')->where($map)->order($order, $sort)->page($page, $limit)->select();
|
||||
foreach ($list as $k => &$v) {
|
||||
$v['image'] = localpath_to_netpath($v['image']);
|
||||
}
|
||||
$data = [];
|
||||
$data['count'] = db::name('nobility_power')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
//获取信息
|
||||
public function nobility_power_info($id)
|
||||
{
|
||||
if (empty($id)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$gift_info = db::name('nobility_power')->where(['id' => $id])->find();
|
||||
$gift_info['image'] = localpath_to_netpath($gift_info['image']);
|
||||
$gift_info['images'] = localpath_to_netpath($gift_info['images']);
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $gift_info];
|
||||
}
|
||||
|
||||
//编辑
|
||||
public function edit_nobility_power($data)
|
||||
{
|
||||
if (empty($data)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$nobility_info = db::name('nobility_power')->find($data['id']);
|
||||
if (empty($nobility_info)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
|
||||
$update_data = [];
|
||||
$update_data['name'] = $data['name'];
|
||||
$update_data['image'] = $data['image'];
|
||||
$update_data['images'] = $data['images'];
|
||||
$update_data['content'] = $data['content'];
|
||||
$update_data['update_time'] = time();
|
||||
$reslut = db::name('nobility_power')->where(['id' => $data['id']])->update($update_data);
|
||||
if (!$reslut) {
|
||||
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 200, 'msg' => '修改成功', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
//用户爵位列表
|
||||
public function get_user_nobility_list($order, $sort, $page = 1, $limit = 20)
|
||||
{
|
||||
$map = [];
|
||||
$map[] = ['a.is_delete', '=', 1];
|
||||
$map[] = ['a.status', '=', 1];
|
||||
$list = db::name('user_nobility')->alias('a')->join('yy_user b', 'a.uid = b.uid')->join('yy_nobility c', 'c.lid = a.lid')->field('a.id, b.uid, b.nick_name, b.base64_nick_name, b.head_pic, c.name, a.add_time, a.update_time')->where($map)->order($order, $sort)->page($page, $limit)->select();
|
||||
foreach ($list as $k => &$v) {
|
||||
$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']);
|
||||
}
|
||||
$data = [];
|
||||
$data['count'] = db::name('user_nobility')->alias('a')->join('yy_user b', 'a.uid = b.uid')->join('yy_nobility c', 'c.lid = a.lid')->field('a.id')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
//列表
|
||||
public function get_nobility_decorate_list($lid, $order, $sort, $page = 1, $limit = 20)
|
||||
{
|
||||
$map = [];
|
||||
$map[] = ['a.is_delete', '=', 1];
|
||||
$map[] = ['a.lid', '=', $lid];
|
||||
$banner_list = db::name('nobility_decorate')->alias('a')->join('yy_decorate b', 'a.did = b.did')->field('a.*,b.title,b.type,b.base_image')->where($map)->order($order, $sort)->select();
|
||||
foreach ($banner_list as $k => &$v){
|
||||
$v['base_image'] = localpath_to_netpath($v['base_image']);
|
||||
}
|
||||
$data = [];
|
||||
$data['count'] = db::name('nobility_decorate')->alias('a')->join('yy_decorate b', 'a.did = b.did')->field('a.*,b.title,b.type,b.base_image')->where($map)->count();
|
||||
$data['list'] = $banner_list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
//获取
|
||||
public function nobility_decorate_info($id)
|
||||
{
|
||||
if (empty($id)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$report_type = db::name('nobility_decorate')->find($id);
|
||||
$report_type['decorate_id'] = $report_type['did'];
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $report_type];
|
||||
}
|
||||
|
||||
//添加
|
||||
public function add_nobility_decorate($lid, $did, $day_num)
|
||||
{
|
||||
if(empty($lid) || empty($did)){
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
|
||||
// if($day_num < 1){
|
||||
// return ['code' => 201, 'msg' => '天数不能小于1天', 'data' => null];
|
||||
// }
|
||||
|
||||
$decorate_info = db::name('decorate')->where('did', $did)->find();
|
||||
// if($decorate_info['type'] == 2){
|
||||
// $type = 4;
|
||||
// }else if($decorate_info['type'] == 2){
|
||||
// $type = 2;
|
||||
// }else if($decorate_info['type'] == 3){
|
||||
// $type = 3;
|
||||
// }elseif($decorate_info['type'] == 4){
|
||||
// $type = 6;
|
||||
// }
|
||||
|
||||
$arr = [];
|
||||
$arr['lid'] = $lid;
|
||||
$arr['did'] = $did;
|
||||
$arr['type'] = $decorate_info['type'];
|
||||
// $arr['day_num'] = $day_num;
|
||||
$arr['add_time'] = time();
|
||||
$arr['update_time'] = time();
|
||||
$add = db::name('nobility_decorate')->insert($arr);
|
||||
if ($add) {
|
||||
return ['code' => 200, 'msg' => '添加成功', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 201, 'msg' => '添加失败', 'data' => null];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//修改
|
||||
public function edit_nobility_decorate($id, $did, $day_num = 0)
|
||||
{
|
||||
if (empty($id)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
|
||||
// if($day_num < 1){
|
||||
// return ['code' => 201, 'msg' => '天数不能小于1天', 'data' => null];
|
||||
// }
|
||||
|
||||
$decorate_info = db::name('decorate')->where('did', $did)->find();
|
||||
// if($decorate_info['type'] == 1){
|
||||
// $type = 4;
|
||||
// }else if($decorate_info['type'] == 2){
|
||||
// $type = 2;
|
||||
// }else if($decorate_info['type'] == 3){
|
||||
// $type = 3;
|
||||
// }elseif($decorate_info['type'] == 4){
|
||||
// $type = 6;
|
||||
// }
|
||||
$type = $decorate_info['type'];
|
||||
$upd = db::name('nobility_decorate')->where(['id' => $id])->update(['did' => $did, 'type' => $type, 'day_num' => $day_num, 'update_time' => time()]);
|
||||
if ($upd) {
|
||||
return ['code' => 200, 'msg' => '修改成功', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//删除
|
||||
public function del_nobility_decorate($id)
|
||||
{
|
||||
$del = db::name('nobility_decorate')->where(['id' => $id])->update(['is_delete' => 2, 'update_time' => time()]);
|
||||
if ($del) {
|
||||
return ['code' => 200, 'msg' => '删除成功', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 201, 'msg' => '删除失败', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
419
application/admin/model/Play.php
Normal file
419
application/admin/model/Play.php
Normal file
@@ -0,0 +1,419 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\model;
|
||||
|
||||
use think\Db;
|
||||
use think\Model;
|
||||
|
||||
class Play extends Model
|
||||
{
|
||||
//游戏列表
|
||||
public function game_list($gid, $game_name, $is_show, $order, $sort, $page = 1, $limit = 20)
|
||||
{
|
||||
$map = [];
|
||||
if (!empty($gid)) {
|
||||
$map[] = ['gid', '=', $gid];
|
||||
}
|
||||
if (!empty($game_name)) {
|
||||
$map[] = ['game_name', 'like', '%' . $game_name . '%'];
|
||||
}
|
||||
if (!empty($is_show)) {
|
||||
$map[] = ['is_show', '=', $is_show];
|
||||
}
|
||||
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$list = db::name('game')->where($map)->order($order, $sort)->page($page, $limit)->select();
|
||||
foreach ($list as $k => &$v) {
|
||||
$game_level = db::name('game_skill_level')->field('game_level_name')->where(['gid' => $v['gid']])->select();
|
||||
$str = '';
|
||||
foreach ($game_level as $m => $n) {
|
||||
$str .= $n['game_level_name'] . ',';
|
||||
}
|
||||
$v['game_level_name'] = $str;
|
||||
$v['game_ico1'] = localpath_to_netpath($v['game_ico1']);
|
||||
$v['game_ico2'] = localpath_to_netpath($v['game_ico2']);
|
||||
$v['game_ico'] = localpath_to_netpath($v['game_ico']);
|
||||
$v['cover_image'] = localpath_to_netpath($v['cover_image']);
|
||||
$v['skill_image'] = localpath_to_netpath($v['skill_image']);
|
||||
}
|
||||
$data = [];
|
||||
$data['count'] = db::name('game')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
//编辑游戏
|
||||
public function edit_game($data)
|
||||
{
|
||||
if (empty($data)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$game = db::name('game')->find($data['gid']);
|
||||
if (empty($game)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$update_data = [];
|
||||
$update_data['game_name'] = $data['game_name'];
|
||||
$update_data['game_ico'] = $data['game_ico'];
|
||||
$update_data['game_ico1'] = $data['game_ico1'];
|
||||
$update_data['game_ico2'] = $data['game_ico2'];
|
||||
$update_data['cover_image'] = $data['cover_image'];
|
||||
$update_data['skill_image'] = $data['skill_image'];
|
||||
$update_data['is_show'] = $data['is_show'];
|
||||
$update_data['sort'] = $data['sort'];
|
||||
$update_data['update_time'] = time();
|
||||
$reslut = db::name('game')->where(['gid' => $data['gid']])->update($update_data);
|
||||
if (!$reslut) {
|
||||
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 200, 'msg' => '修改成功', 'data' => null];
|
||||
}
|
||||
}
|
||||
//添加游戏
|
||||
public function add_game($data)
|
||||
{
|
||||
|
||||
$update_data['game_name'] = $data['game_name'];
|
||||
$update_data['game_ico'] = $data['game_ico'];
|
||||
$update_data['game_ico1'] = $data['game_ico1'];
|
||||
$update_data['game_ico2'] = $data['game_ico2'];
|
||||
$update_data['cover_image'] = $data['cover_image'];
|
||||
$update_data['skill_image'] = $data['skill_image'];
|
||||
$update_data['is_show'] = $data['is_show'];
|
||||
$update_data['sort'] = $data['sort'];
|
||||
$update_data['update_time'] = time();
|
||||
$update_data['add_time'] = time();
|
||||
$reslut = db::name('game')->insert($update_data);
|
||||
if (!$reslut) {
|
||||
return ['code' => 201, 'msg' => '添加失败', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 200, 'msg' => '添加成功', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
//获取游戏信息
|
||||
public function game_info($gid)
|
||||
{
|
||||
if (empty($gid)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$info = db::name('game')->where(['gid' => $gid])->find();
|
||||
$info['http_game_ico'] = localpath_to_netpath($info['game_ico']);
|
||||
$info['http_game_ico1'] = localpath_to_netpath($info['game_ico1']);
|
||||
$info['http_game_ico2'] = localpath_to_netpath($info['game_ico2']);
|
||||
$info['http_cover_image'] = localpath_to_netpath($info['cover_image']);
|
||||
$info['http_skill_image'] = localpath_to_netpath($info['skill_image']);
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $info];
|
||||
}
|
||||
|
||||
//删除游戏
|
||||
public function del_game($gid)
|
||||
{
|
||||
if (empty($gid)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$reslut = db::name('game')->where(['gid' => $gid])->update(['is_delete' => 2, 'delete_time' => time()]);
|
||||
if (!$reslut) {
|
||||
return ['code' => 201, 'msg' => '删除失败', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 200, 'msg' => '删除成功', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
//游戏等级列表
|
||||
public function game_skill_level_list($lid, $gid, $game_level_name, $order, $sort, $page = 1, $limit = 20)
|
||||
{
|
||||
$map = [];
|
||||
if (!empty($lid)) {
|
||||
$map[] = ['a.lid', '=', $lid];
|
||||
}
|
||||
if (!empty($game_level_name)) {
|
||||
$map[] = ['a.game_level_name', 'like', '%' . $game_level_name . '%'];
|
||||
}
|
||||
if (!empty($gid)) {
|
||||
$map[] = ['a.gid', '=', $gid];
|
||||
}
|
||||
|
||||
$map[] = ['a.is_delete', '=', 1];
|
||||
$list = db::name('game_skill_level')->where($map)->alias('a')
|
||||
->join('yy_game b', 'a.gid = b.gid')
|
||||
->field(
|
||||
'a.*,b.game_name'
|
||||
)->where($map)->order($order, $sort)->page($page, $limit)->select();
|
||||
foreach ($list as $k => &$v) {
|
||||
$v['gid_game_name'] = $v['gid'] . '-' . $v['game_name'];
|
||||
}
|
||||
$data = [];
|
||||
$data['count'] = db::name('game_skill_level')->where($map)->alias('a')
|
||||
->join('yy_game b', 'a.gid = b.gid')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
//编辑游戏等级
|
||||
public function edit_game_skill_level($data)
|
||||
{
|
||||
if (empty($data)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$game = db::name('game_skill_level')->find($data['lid']);
|
||||
if (empty($game)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$update_data = [];
|
||||
$update_data['gid'] = $data['gid'];
|
||||
$update_data['game_level_name'] = $data['game_level_name'];
|
||||
$update_data['update_time'] = time();
|
||||
$reslut = db::name('game_skill_level')->where(['lid' => $data['lid']])->update($update_data);
|
||||
if (!$reslut) {
|
||||
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 200, 'msg' => '修改成功', 'data' => null];
|
||||
}
|
||||
}
|
||||
//添加游戏等级
|
||||
public function add_game_skill_level($data)
|
||||
{
|
||||
$add_data = [];
|
||||
$update_data['gid'] = $data['gid'];
|
||||
$update_data['game_level_name'] = $data['game_level_name'];
|
||||
$update_data['update_time'] = time();
|
||||
$update_data['add_time'] = time();
|
||||
$reslut = db::name('game_skill_level')->insert($update_data);
|
||||
if (!$reslut) {
|
||||
return ['code' => 201, 'msg' => '添加失败', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 200, 'msg' => '添加成功', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
//获取游戏等级信息
|
||||
public function game_skill_level_info($lid)
|
||||
{
|
||||
if (empty($lid)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$info = db::name('game_skill_level')->where(['lid' => $lid])->find();
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $info];
|
||||
}
|
||||
|
||||
//删除 游戏等级
|
||||
public function del_game_skill_level($lid)
|
||||
{
|
||||
if (empty($lid)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$reslut = db::name('game_skill_level')->where(['lid' => $lid])->update(['is_delete' => 2, 'delete_time' => time()]);
|
||||
if (!$reslut) {
|
||||
return ['code' => 201, 'msg' => '删除失败', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 200, 'msg' => '删除成功', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
//陪玩主播 列表
|
||||
public function player_list($uid, $nick_name, $sex, $special_uid, $gid, $real_name, $is_top, $is_recommend, $is_business, $status, $order, $sort, $page = 1, $limit = 20)
|
||||
{
|
||||
$map = [];
|
||||
if (!empty($uid)) {
|
||||
$map[] = ['a.uid', '=', $uid];
|
||||
}
|
||||
if (!empty($nick_name)) {
|
||||
$map[] = ['b.nick_name', 'like', '%' . $nick_name . '%'];
|
||||
}
|
||||
if (!empty($sex)) {
|
||||
$map[] = ['b.sex', '=', $sex];
|
||||
}
|
||||
if (!empty($special_uid)) {
|
||||
$map[] = ['b.special_uid', '=', $special_uid];
|
||||
}
|
||||
if (!empty($gid)) {
|
||||
$map[] = ['a.gid', '=', $gid];
|
||||
}
|
||||
if (!empty($real_name)) {
|
||||
$map[] = ['b.real_name', 'like', '%' . $real_name . '%'];
|
||||
}
|
||||
if (!empty($is_top)) {
|
||||
$map[] = ['a.is_top', '=', $is_top];
|
||||
}
|
||||
if (!empty($is_recommend)) {
|
||||
$map[] = ['a.is_recommend', '=', $is_recommend];
|
||||
}
|
||||
if (!empty($is_business)) {
|
||||
$map[] = ['a.is_business', '=', $is_business];
|
||||
}
|
||||
if (!empty($status)) {
|
||||
$map[] = ['a.status', '=', $status];
|
||||
}
|
||||
|
||||
$list = db::name('user_player')
|
||||
->alias('a')
|
||||
->join('yy_user b', 'a.uid = b.uid')
|
||||
->field('a.*,b.nick_name,b.sex,b.special_uid,b.real_name')
|
||||
->where($map)->order($order, $sort)->page($page, $limit)->select();
|
||||
foreach ($list as $k => &$v) {
|
||||
$game_name = db::name('game')->where(['gid' => $v['gid']])->value('game_name');
|
||||
$game_skill_level = db::name('game_skill_level')->where(['lid' => $v['lid']])->value('game_level_name');
|
||||
$v['game_level_name'] = $game_name . '-' . $game_skill_level;
|
||||
$v['cover_image'] = localpath_to_netpath($v['cover_image']);
|
||||
$v['skill_image'] = localpath_to_netpath($v['skill_image']);
|
||||
}
|
||||
$data = [];
|
||||
$data['count'] = db::name('user_player')->alias('a')
|
||||
->join('yy_user b', 'a.uid = b.uid')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
//编辑 陪玩主播
|
||||
public function edit_player($data)
|
||||
{
|
||||
if (empty($data)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$info = db::name('user_player')->find($data['pid']);
|
||||
if (empty($info)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$update_data = [];
|
||||
$update_data['price'] = $data['price'];
|
||||
$update_data['skill_image'] = $data['skill_image'];
|
||||
$update_data['cover_image'] = $data['cover_image'];
|
||||
$update_data['introduction'] = $data['introduction'];
|
||||
$update_data['is_top'] = $data['is_top'];
|
||||
$update_data['is_recommend'] = $data['is_recommend'];
|
||||
$update_data['is_business'] = $data['is_business'];
|
||||
$update_data['flag'] = $data['flag'];
|
||||
$update_data['remarks'] = $data['remarks'];
|
||||
$update_data['status'] = $data['status'];
|
||||
$update_data['update_time'] = time();
|
||||
if ($data['status'] != $info['status']) {
|
||||
$update_data['deal_time'] = time();
|
||||
}
|
||||
$user_info = db::name('user')->find($info['uid']);
|
||||
if ($update_data['status'] == 2) {
|
||||
$player_game_list = explode(',', $user_info['player_game_list']);
|
||||
$player_game_list[] = $info['gid'];
|
||||
$player_game_list = array_unique($player_game_list);
|
||||
$user_data = [];
|
||||
$user_data['is_player'] = 2;
|
||||
$user_data['player_game_list'] = trim(implode(',', $player_game_list), ',');
|
||||
db::name('user')->where('uid', $info['uid'])->update($user_data);
|
||||
} else {
|
||||
$player_game_list = explode(',', $user_info['player_game_list']);
|
||||
if (!empty($player_game_list)) {
|
||||
$key_array = array_keys($player_game_list, $info['gid']);
|
||||
if (!empty($key_array)) {
|
||||
unset($player_game_list[$key_array[0]]);
|
||||
$player_game_list = array_unique($player_game_list);
|
||||
$user_data = [];
|
||||
$user_data['is_player'] = 2;
|
||||
$user_data['player_game_list'] = trim(implode(',', $player_game_list), ',');
|
||||
db::name('user')->where('uid', $info['uid'])->update($user_data);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
$reslut = db::name('user_player')->where(['pid' => $data['pid']])->update($update_data);
|
||||
if (!$reslut) {
|
||||
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 200, 'msg' => '修改成功', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
//获取 陪玩主播 信息
|
||||
public function player_info($pid)
|
||||
{
|
||||
if (empty($pid)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$info = db::name('user_player')->where(['pid' => $pid])->find();
|
||||
$info['cover_image'] = localpath_to_netpath($info['cover_image']);
|
||||
$info['skill_image'] = localpath_to_netpath($info['skill_image']);
|
||||
$info['sound'] = localpath_to_netpath($info['sound']);
|
||||
|
||||
$user = db::name('user')->where(['uid' => $info['uid']])->find();
|
||||
$info['nickname_real_name'] = $user['nick_name'] . '-' . $user['real_name'];
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $info];
|
||||
}
|
||||
|
||||
//删除 陪玩主播
|
||||
public function del_player($pid)
|
||||
{
|
||||
if (empty($pid)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$reslut = db::name('user_player')->where(['pid' => $pid])->delete();
|
||||
if (!$reslut) {
|
||||
return ['code' => 201, 'msg' => '删除失败', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 200, 'msg' => '删除成功', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
//陪玩订单 列表
|
||||
public function player_order_list($order_sn, $uid, $player_uid, $price, $service_rate, $status, $is_over, $order, $sort, $page = 1, $limit = 20)
|
||||
{
|
||||
|
||||
$map = [];
|
||||
if (!empty($order_sn)) {
|
||||
$map[] = ['order_sn', '=', $order_sn];
|
||||
}
|
||||
|
||||
if (!empty($uid)) {
|
||||
$map[] = ['uid', '=', $uid];
|
||||
}
|
||||
if (!empty($player_uid)) {
|
||||
$map[] = ['player_uid', '=', $player_uid];
|
||||
}
|
||||
if (!empty($price)) {
|
||||
$map[] = ['price', '=', $price];
|
||||
}
|
||||
if (!empty($service_rate)) {
|
||||
$map[] = ['service_rate', '=', $service_rate];
|
||||
}
|
||||
if (!empty($status)) {
|
||||
$map[] = ['status', '=', $status];
|
||||
}
|
||||
if (!empty($is_over)) {
|
||||
$map[] = ['is_over', '=', $is_over];
|
||||
}
|
||||
if (empty($order)) {
|
||||
$order = 'oid';
|
||||
}
|
||||
if (empty($sort)) {
|
||||
$sort = 'desc';
|
||||
}
|
||||
$list = db::name('user_player_order')->where($map)->order($order, $sort)->page($page, $limit)->select();
|
||||
foreach ($list as $k => &$v) {
|
||||
$v['game_name'] = db::name('game')->where(['gid' => $v['gid']])->value('game_name');
|
||||
$u_nickname = db::name('user')->where(['uid' => $v['uid']])->value('nick_name');
|
||||
$p_nickname = db::name('user')->where(['uid' => $v['player_uid']])->value('nick_name');
|
||||
$v['uid_nickname'] = $v['uid'] . '-' . $u_nickname;
|
||||
$v['player_uid_nickname'] = $v['player_uid'] . '-' . $p_nickname;
|
||||
}
|
||||
$data = [];
|
||||
$data['count'] = db::name('user_player_order')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
|
||||
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
//获取 陪玩订单 信息
|
||||
public function player_order_info($oid)
|
||||
{
|
||||
if (empty($oid)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$info = db::name('user_player_order')->where(['oid' => $oid])->find();
|
||||
$u_nickname = db::name('user')->where(['uid' => $info['uid']])->value('nick_name');
|
||||
$p_nickname = db::name('user')->where(['uid' => $info['player_uid']])->value('nick_name');
|
||||
$info['uid_nickname'] = $info['uid'] . '-' . $u_nickname;
|
||||
$info['player_uid_nickname'] = $info['player_uid'] . '-' . $p_nickname;
|
||||
$info['game_name'] = db::name('game')->where(['gid' => $info['gid']])->value('game_name');
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $info];
|
||||
}
|
||||
}
|
||||
118
application/admin/model/Relation.php
Normal file
118
application/admin/model/Relation.php
Normal file
@@ -0,0 +1,118 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace app\admin\model;
|
||||
|
||||
|
||||
use think\Db;
|
||||
|
||||
class Relation extends AdminComModel
|
||||
{
|
||||
//获取数据
|
||||
public function get_list($page = 1, $page_limit = 15)
|
||||
{
|
||||
$list = Db::name('relation')->where('is_delete', 1 )
|
||||
->order('id', 'desc')
|
||||
->page($page, $page_limit)->select();
|
||||
$count = Db::name('relation')->count();
|
||||
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取数据成功';
|
||||
$data['data'] = $list;
|
||||
$data['count'] = $count;
|
||||
return json($data);
|
||||
}
|
||||
//添加
|
||||
public function add($name, $color, $day)
|
||||
{
|
||||
if (empty($name) || empty($color) || empty($day)) {
|
||||
return ['code' => 201, 'msg' => '参数错误', 'data' => null];
|
||||
}
|
||||
$type = input('type', 0);
|
||||
if(empty($type)) {
|
||||
return ['code' => 201, 'msg' => '请选择类型', 'data' => null];
|
||||
}
|
||||
$info = Db::name('relation')
|
||||
->where('name', $name)
|
||||
->where('is_delete', 1)
|
||||
->where('type', $type)
|
||||
->find();
|
||||
if ($info) {
|
||||
return ['code' => 201, 'msg' => '话题已存在', 'data' => null];
|
||||
}
|
||||
$data = $this->append_add_update_time([
|
||||
'name' => $name,
|
||||
'color' => $color,
|
||||
'day' => $day,
|
||||
'type' => $type,
|
||||
]);
|
||||
try {
|
||||
Db::name('relation')->insert($data);
|
||||
return ['code' => 200, 'msg' => '添加成功', 'data' => null];
|
||||
} catch (\Exception $e) {
|
||||
return ['code' => 201, 'msg' => '添加失败', 'data' => null];
|
||||
}
|
||||
|
||||
}
|
||||
//获取信息
|
||||
public function get_info($id)
|
||||
{
|
||||
$info = Db::name('relation')->find($id);
|
||||
if (empty($info)) {
|
||||
return ['code' => 201, 'msg' => '数据不存在', 'data' => null];
|
||||
}
|
||||
return ['code' => 200, 'msg' => '获取数据成功', 'data' => $info];
|
||||
}
|
||||
//编辑
|
||||
public function edit($id, $name, $color, $day)
|
||||
{
|
||||
if (empty($id)) {
|
||||
return ['code' => 201, 'msg' => '参数ID错误', 'data' => null];
|
||||
}
|
||||
if (empty($name) || empty($color) || empty($day)) {
|
||||
return ['code' => 201, 'msg' => '参数错误', 'data' => null];
|
||||
}
|
||||
$type = input('type', 0);
|
||||
if(empty($type)) {
|
||||
return ['code' => 201, 'msg' => '请选择类型', 'data' => null];
|
||||
}
|
||||
$info = Db::name('relation')
|
||||
->where('name', $name)
|
||||
->where('is_delete', 1)
|
||||
->where('id', 'neq', $id)
|
||||
->where('type', $type)
|
||||
->find();
|
||||
if ($info) {
|
||||
return ['code' => 201, 'msg' => '话题已存在', 'data' => null];
|
||||
}
|
||||
$result = Db::name('relation')->where('id', $id)
|
||||
->update([
|
||||
'name' => $name,
|
||||
'color' => $color,
|
||||
'day' => $day,
|
||||
'update_time' => time(),
|
||||
'type' => $type,
|
||||
|
||||
]);
|
||||
if ($result) {
|
||||
return ['code' => 200, 'msg' => '修改成功', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
|
||||
}
|
||||
}
|
||||
//删除
|
||||
public function del($id)
|
||||
{
|
||||
$info = Db::name('relation')->find( $id);
|
||||
if (empty($info)) {
|
||||
return ['code' => 201, 'msg' => '数据不存在', 'data' => null];
|
||||
}
|
||||
$result = Db::name('relation')->where('id', $id)
|
||||
->update(['is_delete' => 2, 'update_time' => time()]);
|
||||
if ($result) {
|
||||
return ['code' => 200, 'msg' => '删除成功', 'data' => null];
|
||||
}
|
||||
return ['code' => 201, 'msg' => '删除失败', 'data' => null];
|
||||
}
|
||||
}
|
||||
30
application/admin/model/ReloadDb.php
Normal file
30
application/admin/model/ReloadDb.php
Normal file
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace app\admin\model;
|
||||
|
||||
|
||||
use think\Db;
|
||||
|
||||
class ReloadDb
|
||||
{
|
||||
private static $time = null;
|
||||
|
||||
/**
|
||||
* 检测或执行主动重连
|
||||
* @author andy3513
|
||||
* @param int $timeout 超时时间
|
||||
* @param array $config 连接参数
|
||||
*/
|
||||
public static function init($timeout = 7200,$config = []){
|
||||
$time = time();
|
||||
if(null === self::$time){
|
||||
self::$time = $time;
|
||||
}
|
||||
$exprie = $time - self::$time;
|
||||
if($exprie >= $timeout){
|
||||
Db::connect($config, true);
|
||||
self::$time = $time;
|
||||
}
|
||||
}
|
||||
}
|
||||
149
application/admin/model/Report.php
Normal file
149
application/admin/model/Report.php
Normal file
@@ -0,0 +1,149 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\model;
|
||||
|
||||
use think\Db;
|
||||
use think\Model;
|
||||
|
||||
class Report extends Model
|
||||
{
|
||||
//获取举报列表
|
||||
public function report_list($uid, $to_uid, $nick_name, $to_nick_name, $order, $sort, $page = 1, $limit = 20)
|
||||
{
|
||||
$map = [];
|
||||
if (!empty($uid)) {
|
||||
$map[] = ['a.uid', '=', $uid];
|
||||
}
|
||||
if (!empty($to_uid)) {
|
||||
$map[] = ['a.to_uid', '=', $to_uid];
|
||||
}
|
||||
if (!empty($nick_name)) {
|
||||
$map[] = ['b.nick_name', 'like', '%' . $nick_name . '%'];
|
||||
}
|
||||
$list = db::name('user_report')
|
||||
->alias('a')->join('yy_user b', 'a.uid = b.uid')
|
||||
->field('a.*,b.nick_name')->where($map)->order($order, $sort)->page($page, $limit)->select();
|
||||
foreach ($list as $k => &$v) {
|
||||
$list[$k]['user_nick_name'] = $v['uid'] . '-' . $v['nick_name'];
|
||||
$to_nick_name = db::name('user')->where(['uid' => $v['to_uid']])->value('nick_name');
|
||||
$list[$k]['to_nick_name'] = $v['to_uid'] . '-' . $to_nick_name;
|
||||
$list[$k]['to_nick_name'] = $v['to_uid'] . '-' . $to_nick_name;
|
||||
$list[$k]['type_name'] = db::name('report_type')->where(['id' => $v['type_id']])->value('type_name');
|
||||
$image_data = explode(',', $v['image']);
|
||||
$v['image_list'] = [];
|
||||
if (!empty($image_data)) {
|
||||
foreach ($image_data as $m => $n) {
|
||||
$v['image_list'][] = localpath_to_netpath($n);
|
||||
}
|
||||
}
|
||||
}
|
||||
$data = [];
|
||||
$data['count'] = db::name('user_report')->alias('a')->join('yy_user b', 'a.uid = b.uid')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
//获取举报详情
|
||||
public function report_info($rid)
|
||||
{
|
||||
if (empty($rid)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$room_type_info = db::name('user_report')->find($rid);
|
||||
$room_type_info['uid_name'] = db::name('user')->where(['uid' => $room_type_info['uid']])->value('nick_name');
|
||||
$room_type_info['to_uid_name'] = db::name('user')->where(['uid' => $room_type_info['to_uid']])->value('nick_name');
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $room_type_info];
|
||||
}
|
||||
|
||||
//修改举报信息
|
||||
public function edit_user_info($rid, $status)
|
||||
{
|
||||
if (empty($rid)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$upd = db::name('user_report')->where(['rid' => $rid])->update(['status' => $status, 'update_time' => time(), 'deal_time' => time()]);
|
||||
if ($upd) {
|
||||
return ['code' => 200, 'msg' => '修改成功', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//删除举报信息
|
||||
public function del_Report($rid)
|
||||
{
|
||||
$del = db::name('user_report')->where(['rid' => $rid])->delete();
|
||||
if ($del) {
|
||||
return ['code' => 200, 'msg' => '删除成功', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 201, 'msg' => '删除失败', 'data' => null];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//举报类型 列表
|
||||
public function report_type_list($order, $sort, $page = 1, $limit = 20)
|
||||
{
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
|
||||
$banner_list = db::name('report_type')->where($map)->order($order, $sort)->select();
|
||||
$data = [];
|
||||
$data['count'] = db::name('report_type')->where($map)->count();
|
||||
$data['list'] = $banner_list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
//获取举报类型
|
||||
public function report_type_info($id)
|
||||
{
|
||||
if (empty($id)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$report_type = db::name('report_type')->find($id);
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $report_type];
|
||||
}
|
||||
|
||||
//添加举报类型
|
||||
public function add_report_type($type_name)
|
||||
{
|
||||
$arr = [];
|
||||
$arr['type_name'] = $type_name;
|
||||
$arr['add_time'] = time();
|
||||
$arr['update_time'] = time();
|
||||
$add = db::name('report_type')->insert($arr);
|
||||
if ($add) {
|
||||
return ['code' => 200, 'msg' => '添加成功', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 201, 'msg' => '添加失败', 'data' => null];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//修改举报类型
|
||||
public function edit_report_type($id, $type_name)
|
||||
{
|
||||
if (empty($id)) {
|
||||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||||
}
|
||||
$upd = db::name('report_type')->where(['id' => $id])->update(['type_name' => $type_name, 'update_time' => time()]);
|
||||
if ($upd) {
|
||||
return ['code' => 200, 'msg' => '修改成功', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//删除举报类型
|
||||
public function del_report_type($id)
|
||||
{
|
||||
$del = db::name('report_type')->where(['id' => $id])->update(['is_delete' => 2, 'delete_time' => time()]);
|
||||
if ($del) {
|
||||
return ['code' => 200, 'msg' => '删除成功', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 201, 'msg' => '删除失败', 'data' => null];
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
1439
application/admin/model/Room.php
Normal file
1439
application/admin/model/Room.php
Normal file
File diff suppressed because it is too large
Load Diff
383
application/admin/model/Sprite.php
Normal file
383
application/admin/model/Sprite.php
Normal file
@@ -0,0 +1,383 @@
|
||||
<?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];
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
391
application/admin/model/Statistics.php
Normal file
391
application/admin/model/Statistics.php
Normal file
@@ -0,0 +1,391 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\model;
|
||||
|
||||
use think\Model;
|
||||
use think\Db;
|
||||
|
||||
class Statistics extends Model
|
||||
{
|
||||
//获取首页基础统计数据
|
||||
public function welcome_data()
|
||||
{
|
||||
$data = [];
|
||||
//获取系统会员总人数
|
||||
$data['user_all_count'] = db::name('user')->count();
|
||||
//今日会员新增总数
|
||||
$data['user_today_count'] = db::name('user')->whereTime('add_time', 'today')->count();
|
||||
//本周会员新增总数
|
||||
$data['user_week_count'] = db::name('user')->whereTime('add_time', 'week')->count();
|
||||
//获取系统订单总人数
|
||||
$data['user_player_order_all_amount'] = db::name('user_player_order')->sum('total_amount');
|
||||
//今日订单新增总数
|
||||
$data['user_player_order_today_amount'] = db::name('user_player_order')->whereTime('add_time', 'today')->sum('total_amount');
|
||||
//本周订单新增总数
|
||||
$data['user_player_order_week_amount'] = db::name('user_player_order')->whereTime('add_time', 'week')->sum('total_amount');
|
||||
//获取系统充值总人数
|
||||
$data['user_recharge_all_amount'] = db::name('user_recharge')->where(['pay_status' => 2])->sum('money');
|
||||
//今日充值新增总数
|
||||
$data['user_recharge_today_amount'] = db::name('user_recharge')->where(['pay_status' => 2])->whereTime('add_time', 'today')->sum('money');
|
||||
//本周充值新增总数
|
||||
$data['user_recharge_week_amount'] = db::name('user_recharge')->where(['pay_status' => 2])->whereTime('add_time', 'week')->sum('money');
|
||||
//获取系统打赏总人数
|
||||
$data['user_send_gift_all_amount'] = db::name('user_send_gift')->sum('gift_total_price');
|
||||
//今日打赏新增总数
|
||||
$data['user_send_gift_today_amount'] = db::name('user_send_gift')->whereTime('add_time', 'today')->sum('gift_total_price');
|
||||
//本周打赏新增总数
|
||||
$data['user_send_gift_week_amount'] = db::name('user_send_gift')->whereTime('add_time', 'week')->sum('gift_total_price');
|
||||
//充值总积分
|
||||
$map = [];
|
||||
$map[] = ['money_type', '=', 2];
|
||||
$map[] = ['change_type', 'in', [1,9]];
|
||||
$data['platform_recharge_integral_all_amount'] = db::name('user_money_log')->where($map)->sum('change_value');
|
||||
//充值总余额
|
||||
$map = [];
|
||||
$map[] = ['money_type', '=', 1];
|
||||
$map[] = ['change_type', 'in', [1]];
|
||||
$data['platform_recharge_money_all_amount'] = db::name('user_money_log')->where($map)->sum('change_value');
|
||||
//用户总余额
|
||||
$data['user_all_money'] = db::name('user')->sum('money');
|
||||
//用户总积分
|
||||
$data['user_all_integral'] = db::name('user')->sum('integral');
|
||||
//背包礼物总价值
|
||||
$map = [];
|
||||
$map[] = ['a.num', '>', 0];
|
||||
$map[] = ['a.is_tester', '=', 1];
|
||||
$data['pack_gift_all_amount'] = db::name('user_gift_pack')->alias('a')->join('yy_gift b', 'a.gid = b.gid')->where($map)->sum('a.num*b.gift_price');
|
||||
//总支出
|
||||
$map = [];
|
||||
$map[] = ['box_type', 'in', [4,5,6]];
|
||||
$data['all_out_amount'] = db::name('user_box_count')->where($map)->sum('out_amount');
|
||||
//总收入
|
||||
$data['all_in_amount'] = db::name('user_box_count')->where($map)->sum('in_amount');
|
||||
//总盈亏
|
||||
$data['all_profit'] = $data['all_in_amount'] - $data['all_out_amount'];
|
||||
//总爆率
|
||||
if($data['all_out_amount'] > 0){
|
||||
$data['all_rate'] = round($data['all_in_amount']/$data['all_out_amount'],6);
|
||||
}else{
|
||||
$data['all_rate'] = 0;
|
||||
}
|
||||
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
//获取打赏金额每天统计
|
||||
public function get_send_gift_data_by_day()
|
||||
{
|
||||
//购买
|
||||
$sql = "SELECT FROM_UNIXTIME(add_time, '%Y-%m-%d') AS atime,sum(gift_total_price) as gift_total_price
|
||||
FROM yy_user_send_gift where gift_from_type=1 GROUP BY atime ORDER BY atime desc LIMIT 0,72";
|
||||
$list = Db::query($sql);
|
||||
$gift_data1 = [];
|
||||
foreach ($list as $k => $v) {
|
||||
$gift_data1[$v['atime']] = $v['gift_total_price'];
|
||||
}
|
||||
//背包
|
||||
$sql = "SELECT FROM_UNIXTIME(add_time, '%Y-%m-%d') AS atime,sum(gift_total_price) as gift_total_price
|
||||
FROM yy_user_send_gift where gift_from_type=2 GROUP BY atime ORDER BY atime desc LIMIT 0,72";
|
||||
$list = Db::query($sql);
|
||||
$gift_data2 = [];
|
||||
foreach ($list as $k => $v) {
|
||||
$gift_data2[$v['atime']] = $v['gift_total_price'];
|
||||
}
|
||||
|
||||
$now_hour = strtotime(date('Y-m-d'));
|
||||
$x_data = [];
|
||||
$y_data1 = [];
|
||||
$y_data2 = [];
|
||||
$y_data3 = [];
|
||||
for ($i = 0; $i < 72; $i++) {
|
||||
$l_hour = date('Y-m-d', $now_hour - $i * 24 * 3600);
|
||||
$x_data[$i] = $l_hour;
|
||||
if (!empty($gift_data1[$l_hour])) {
|
||||
$y_data2[$i] = $gift_data1[$l_hour];
|
||||
} else {
|
||||
$y_data2[$i] = 0;
|
||||
}
|
||||
if (!empty($gift_data2[$l_hour])) {
|
||||
$y_data3[$i] = $gift_data2[$l_hour];
|
||||
} else {
|
||||
$y_data3[$i] = 0;
|
||||
}
|
||||
$y_data1[$i] = $y_data2[$i] + $y_data3[$i];
|
||||
}
|
||||
$data = [];
|
||||
$data['x_data'] = array_reverse($x_data);
|
||||
$data['y_data1'] = array_reverse($y_data1);
|
||||
$data['y_data2'] = array_reverse($y_data2);
|
||||
$data['y_data3'] = array_reverse($y_data3);
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
//获取打赏金额每小时统计
|
||||
public function get_send_gift_data_by_hour()
|
||||
{
|
||||
//购买
|
||||
$sql = "SELECT FROM_UNIXTIME(add_time, '%Y-%m-%d %H:00:00') AS atime,sum(gift_total_price) as gift_total_price
|
||||
FROM yy_user_send_gift where gift_from_type=1 GROUP BY atime ORDER BY atime desc LIMIT 0,72";
|
||||
$list = Db::query($sql);
|
||||
$gift_data1 = [];
|
||||
foreach ($list as $k => $v) {
|
||||
$gift_data1[$v['atime']] = $v['gift_total_price'];
|
||||
}
|
||||
//背包
|
||||
$sql = "SELECT FROM_UNIXTIME(add_time, '%Y-%m-%d %H:00:00') AS atime,sum(gift_total_price) as gift_total_price
|
||||
FROM yy_user_send_gift where gift_from_type=2 GROUP BY atime ORDER BY atime desc LIMIT 0,72";
|
||||
$list = Db::query($sql);
|
||||
$gift_data2 = [];
|
||||
foreach ($list as $k => $v) {
|
||||
$gift_data2[$v['atime']] = $v['gift_total_price'];
|
||||
}
|
||||
|
||||
$now_hour = strtotime(date('Y-m-d'));
|
||||
$x_data = [];
|
||||
$y_data1 = [];
|
||||
$y_data2 = [];
|
||||
$y_data3 = [];
|
||||
for ($i = 0; $i < 72; $i++) {
|
||||
$l_hour = date('Y-m-d', $now_hour - $i * 3600);
|
||||
$x_data[$i] = $l_hour;
|
||||
if (!empty($gift_data1[$l_hour])) {
|
||||
$y_data2[$i] = $gift_data1[$l_hour];
|
||||
} else {
|
||||
$y_data2[$i] = 0;
|
||||
}
|
||||
if (!empty($gift_data2[$l_hour])) {
|
||||
$y_data3[$i] = $gift_data2[$l_hour];
|
||||
} else {
|
||||
$y_data3[$i] = 0;
|
||||
}
|
||||
$y_data1[$i] = $y_data2[$i] + $y_data3[$i];
|
||||
}
|
||||
$data = [];
|
||||
$data = [];
|
||||
$data['x_data'] = array_reverse($x_data);
|
||||
$data['y_data1'] = array_reverse($y_data1);
|
||||
$data['y_data2'] = array_reverse($y_data2);
|
||||
$data['y_data3'] = array_reverse($y_data3);
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
//不同类型房间统计
|
||||
public function get_room_type_date()
|
||||
{
|
||||
|
||||
$room_type_list = db::name('room_type')->column('type_name', 'tid');
|
||||
$sql = "SELECT tid,count(1) as count FROM `yy_room` GROUP BY tid";
|
||||
$list = Db::query($sql);
|
||||
$x_data = [];
|
||||
$y_data = [];
|
||||
foreach ($list as $k => $v) {
|
||||
if (!empty($room_type_list[$v['tid']])) {
|
||||
$x_data[$k] = $room_type_list[$v['tid']];
|
||||
$y_data[$k]['name'] = $room_type_list[$v['tid']];
|
||||
$y_data[$k]['value'] = $v['count'];
|
||||
}
|
||||
}
|
||||
$data = [];
|
||||
$data['x_data'] = $x_data;
|
||||
$data['y_data'] = $y_data;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
//陪玩订单数量统计
|
||||
public function get_payer_order_date()
|
||||
{
|
||||
|
||||
$game_list = db::name('game')->column('game_name', 'gid');
|
||||
$sql = "SELECT gid,count(1) as count,sum(total_amount) AS total_amount FROM `yy_user_player_order` GROUP BY gid";
|
||||
$list = Db::query($sql);
|
||||
$x_data = [];
|
||||
$y_data1 = [];
|
||||
$y_data2 = [];
|
||||
foreach ($list as $k => $v) {
|
||||
if (!empty($game_list[$v['gid']])) {
|
||||
$x_data[$k] = $game_list[$v['gid']];
|
||||
$y_data1[$k]['name'] = $game_list[$v['gid']];
|
||||
$y_data1[$k]['value'] = $v['count'];
|
||||
$y_data2[$k]['name'] = $game_list[$v['gid']];
|
||||
$y_data2[$k]['value'] = $v['total_amount'];
|
||||
}
|
||||
}
|
||||
$data = [];
|
||||
$data['x_data'] = $x_data;
|
||||
$data['y_data1'] = $y_data1;
|
||||
$data['y_data2'] = $y_data2;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
|
||||
public function get_recharge_rank_list($uid, $time_section, $page, $limit)
|
||||
{
|
||||
$map = [];
|
||||
if (!empty($uid)) {
|
||||
$map[] = ['uid', '=', $uid];
|
||||
}
|
||||
$map[] = ['pay_status', '=', 2];
|
||||
if (!empty($time_section)) {
|
||||
$time_section = explode(' - ', $time_section);
|
||||
if (count($time_section) != 2) {
|
||||
return ['code' => 201, 'msg' => '时间区间异常', 'data' => null];
|
||||
} else {
|
||||
$start_time = $time_section[0];
|
||||
$end_time = $time_section[1];
|
||||
|
||||
$start_time_time = strtotime($start_time);
|
||||
$end_time_time = strtotime($end_time);
|
||||
$map[] = ['add_time', 'between', [$start_time_time, $end_time_time]];
|
||||
}
|
||||
}
|
||||
$list = db::name('user_recharge')->field('uid,sum(money) as total_money,sum(integral) as total_integral')->where($map)->group('uid')->order('total_money desc')->page($page, $limit)->select();
|
||||
$where = [];
|
||||
$where[] = ['uid', 'in', array_column($list, 'uid')];
|
||||
$user_data = db::name('user')->where($where)->column('*', 'uid');
|
||||
foreach ($list as $k => &$v) {
|
||||
$v['nick_name'] = mb_convert_encoding(base64_decode($user_data[$v['uid']]['base64_nick_name']), 'UTF-8', 'UTF-8');
|
||||
$v['head_pic'] = localpath_to_netpath($user_data[$v['uid']]['head_pic']);
|
||||
}
|
||||
$data = [];
|
||||
$data['count'] = db::name('user_recharge')->where($map)->group('uid')->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
public function get_send_gift_rank_list($uid, $time_section, $page, $limit)
|
||||
{
|
||||
$map = [];
|
||||
if (!empty($uid)) {
|
||||
$map[] = ['uid', '=', $uid];
|
||||
}
|
||||
|
||||
if (!empty($time_section)) {
|
||||
$time_section = explode(' - ', $time_section);
|
||||
if (count($time_section) != 2) {
|
||||
return ['code' => 201, 'msg' => '时间区间异常', 'data' => null];
|
||||
} else {
|
||||
$start_time = $time_section[0];
|
||||
$end_time = $time_section[1];
|
||||
|
||||
$start_time_time = strtotime($start_time);
|
||||
$end_time_time = strtotime($end_time);
|
||||
$map[] = ['add_time', 'between', [$start_time_time, $end_time_time]];
|
||||
}
|
||||
}
|
||||
$list = db::name('user_send_gift')->field('uid,sum(gift_total_price) as total_gift_total_price,sum(gift_num) as total_gift_num')->where($map)->group('uid')->order('total_gift_total_price desc')->page($page, $limit)->select();
|
||||
$where = [];
|
||||
$where[] = ['uid', 'in', array_column($list, 'uid')];
|
||||
$user_data = db::name('user')->where($where)->column('*', 'uid');
|
||||
foreach ($list as $k => &$v) {
|
||||
$v['nick_name'] = mb_convert_encoding(base64_decode($user_data[$v['uid']]['base64_nick_name']), 'UTF-8', 'UTF-8');
|
||||
$v['head_pic'] = localpath_to_netpath($user_data[$v['uid']]['head_pic']);
|
||||
}
|
||||
$data = [];
|
||||
$data['count'] = db::name('user_send_gift')->where($map)->group('uid')->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
public function get_receive_gift_rank_list($uid, $time_section, $page, $limit)
|
||||
{
|
||||
$map = [];
|
||||
if (!empty($uid)) {
|
||||
$map[] = ['receive_uid', '=', $uid];
|
||||
}
|
||||
|
||||
if (!empty($time_section)) {
|
||||
$time_section = explode(' - ', $time_section);
|
||||
if (count($time_section) != 2) {
|
||||
return ['code' => 201, 'msg' => '时间区间异常', 'data' => null];
|
||||
} else {
|
||||
$start_time = $time_section[0];
|
||||
$end_time = $time_section[1];
|
||||
|
||||
$start_time_time = strtotime($start_time);
|
||||
$end_time_time = strtotime($end_time);
|
||||
$map[] = ['add_time', 'between', [$start_time_time, $end_time_time]];
|
||||
}
|
||||
}
|
||||
$list = db::name('user_send_gift')->field('receive_uid,sum(receiver_profit) as total_gift_total_price,sum(gift_num) as total_gift_num')->where($map)->group('receive_uid')->order('total_gift_total_price desc')->page($page, $limit)->select();
|
||||
$where = [];
|
||||
$where[] = ['uid', 'in', array_column($list, 'receive_uid')];
|
||||
$user_data = db::name('user')->where($where)->column('*', 'uid');
|
||||
foreach ($list as $k => &$v) {
|
||||
$v['nick_name'] = mb_convert_encoding(base64_decode($user_data[$v['receive_uid']]['base64_nick_name']), 'UTF-8', 'UTF-8');
|
||||
$v['head_pic'] = localpath_to_netpath($user_data[$v['receive_uid']]['head_pic']);
|
||||
}
|
||||
$data = [];
|
||||
$data['count'] = db::name('user_send_gift')->where($map)->group('receive_uid')->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
public function get_player_order_rank_list($uid, $time_section, $order, $sort, $page, $limit)
|
||||
{
|
||||
$map = [];
|
||||
if (!empty($uid)) {
|
||||
$map[] = ['player_uid', '=', $uid];
|
||||
}
|
||||
$map[] = ['status', '=', 3];
|
||||
$map[] = ['is_over', '=', 1];
|
||||
if (!empty($time_section)) {
|
||||
$time_section = explode(' - ', $time_section);
|
||||
if (count($time_section) != 2) {
|
||||
return ['code' => 201, 'msg' => '时间区间异常', 'data' => null];
|
||||
} else {
|
||||
$start_time = $time_section[0];
|
||||
$end_time = $time_section[1];
|
||||
|
||||
$start_time_time = strtotime($start_time);
|
||||
$end_time_time = strtotime($end_time);
|
||||
$map[] = ['add_time', 'between', [$start_time_time, $end_time_time]];
|
||||
}
|
||||
}
|
||||
|
||||
$list = db::name('user_player_order')->field('uid,sum(total_amount) as total_total_amount,sum(num) as total_num')->where($map)->group('player_uid')->order('total_total_amount desc')->page($page, $limit)->select();
|
||||
$where = [];
|
||||
$where[] = ['uid', 'in', array_column($list, 'uid')];
|
||||
$user_data = db::name('user')->where($where)->column('*', 'uid');
|
||||
foreach ($list as $k => &$v) {
|
||||
$v['nick_name'] = mb_convert_encoding(base64_decode($user_data[$v['uid']]['base64_nick_name']), 'UTF-8', 'UTF-8');
|
||||
$v['head_pic'] = localpath_to_netpath($user_data[$v['uid']]['head_pic']);
|
||||
}
|
||||
$data = [];
|
||||
$data['count'] = db::name('user_player_order')->where($map)->group('uid')->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
|
||||
//用户消费排行统计
|
||||
|
||||
public function get_user_consume_rank_list($uid, $time_section, $page, $limit)
|
||||
{
|
||||
$map = [];
|
||||
if (!empty($uid)) {
|
||||
$map[] = ['uid', '=', $uid];
|
||||
}
|
||||
$map[] = ['money_type', '=', 1];
|
||||
$map[] = ['change_value', '<', 0];
|
||||
if (!empty($time_section)) {
|
||||
$time_section = explode(' - ', $time_section);
|
||||
if (count($time_section) != 2) {
|
||||
return ['code' => 201, 'msg' => '时间区间异常', 'data' => null];
|
||||
} else {
|
||||
$start_time = $time_section[0];
|
||||
$end_time = $time_section[1];
|
||||
|
||||
$start_time_time = strtotime($start_time);
|
||||
$end_time_time = strtotime($end_time);
|
||||
$map[] = ['add_time', 'between', [$start_time_time, $end_time_time]];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$list = db::name('user_money_log')->field('uid,ABS(SUM(change_value)) as total_change_value')->where($map)->group('uid')->order('total_change_value desc')->page($page, $limit)->select();
|
||||
$where = [];
|
||||
$where[] = ['uid', 'in', array_column($list, 'uid')];
|
||||
$user_data = db::name('user')->where($where)->column('*', 'uid');
|
||||
foreach ($list as $k => &$v) {
|
||||
$v['nick_name'] = mb_convert_encoding(base64_decode($user_data[$v['uid']]['base64_nick_name']), 'UTF-8', 'UTF-8');
|
||||
$v['head_pic'] = localpath_to_netpath($user_data[$v['uid']]['head_pic']);
|
||||
}
|
||||
$data = [];
|
||||
$data['count'] = db::name('user_money_log')->where($map)->group('uid')->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
}
|
||||
156
application/admin/model/SystemMenu.php
Normal file
156
application/admin/model/SystemMenu.php
Normal file
@@ -0,0 +1,156 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\model;
|
||||
|
||||
use think\Db;
|
||||
use think\Model;
|
||||
|
||||
class SystemMenu extends Model
|
||||
{
|
||||
|
||||
// 获取初始化数据
|
||||
public function getSystemInit($aid = 0)
|
||||
{
|
||||
$homeInfo = [
|
||||
'title' => '首页',
|
||||
'href' => 'page/welcome.html',
|
||||
];
|
||||
$logoInfo = [
|
||||
'title' => '后台 管理',
|
||||
'image' => 'images/logo.png',
|
||||
'href' => 'javascript:;',
|
||||
];
|
||||
$menuInfo = $this->getMenuList($aid);
|
||||
$systemInit = [
|
||||
'homeInfo' => $homeInfo,
|
||||
'logoInfo' => $logoInfo,
|
||||
'menuInfo' => $menuInfo,
|
||||
];
|
||||
return $systemInit;
|
||||
}
|
||||
|
||||
// 获取菜单列表
|
||||
private function getMenuList($aid)
|
||||
{
|
||||
$menuList = Db::name('system_menu')
|
||||
->field('id,pid,title,icon,href,target')
|
||||
->where('status', 1)
|
||||
->where('type', 'in', [1, 2])
|
||||
->order('sort', 'desc')
|
||||
->select();
|
||||
//超级管理员默认有所有权限
|
||||
if ($aid != 1) {
|
||||
$admin_info = db::name('admin')->find($aid);
|
||||
if (empty($admin_info)) {
|
||||
return ['code' => 201, 'msg' => '管理员信息不存在', 'data' => null];
|
||||
}
|
||||
$system_menu_id_list_data = explode(',', $admin_info['system_menu_id_list']);
|
||||
foreach ($menuList as $k => &$v) {
|
||||
if ($v['pid'] != 0) {
|
||||
if (!in_array($v['id'], $system_menu_id_list_data)) {
|
||||
unset($menuList[$k]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$menuList = $this->buildMenuChild(0, $menuList);
|
||||
return $menuList;
|
||||
}
|
||||
|
||||
//递归获取子菜单
|
||||
private function buildMenuChild($pid, $menuList)
|
||||
{
|
||||
$treeList = [];
|
||||
foreach ($menuList as &$v) {
|
||||
|
||||
if ($pid == $v['pid']) {
|
||||
$node = $v;
|
||||
$child = $this->buildMenuChild($v['id'], $menuList);
|
||||
if (!empty($child)) {
|
||||
$node['child'] = $child;
|
||||
}
|
||||
// todo 后续此处加上用户的权限判断
|
||||
$treeList[] = $node;
|
||||
}
|
||||
}
|
||||
return $treeList;
|
||||
}
|
||||
public function get_all_system_menu_list($aid)
|
||||
{
|
||||
$menuList = Db::name('system_menu')
|
||||
->field('id,pid,title,icon,href,target')
|
||||
->where('status', 1)
|
||||
->where('type', 'in', [1, 2])
|
||||
->order('sort', 'desc')
|
||||
->select();
|
||||
|
||||
$admin_info = db::name('admin')->find($aid);
|
||||
if (empty($admin_info)) {
|
||||
return ['code' => 201, 'msg' => '管理员信息不存在', 'data' => null];
|
||||
}
|
||||
|
||||
$system_menu_id_list_data = explode(',', $admin_info['system_menu_id_list']);
|
||||
$menu_data = [];
|
||||
// dump($menuList);die;
|
||||
foreach ($menuList as $k => &$v) {
|
||||
// $v['is_show'] = 1; //有权限
|
||||
// if (!in_array($v['id'], $system_menu_id_list_data) && $aid != 1) {
|
||||
// $v['is_show'] = 2; //无权限
|
||||
// }
|
||||
$checked = false; //有权限
|
||||
if (in_array($v['id'], $system_menu_id_list_data) ) {
|
||||
|
||||
$checked = true; //无权限
|
||||
}
|
||||
|
||||
$v['checked'] = $checked;
|
||||
$v['spread'] = true;
|
||||
$menu_data[$v['id']] = $v;
|
||||
}
|
||||
foreach ($menu_data as $key => $val) {
|
||||
if ($val['checked'] === true && $val['pid'] != 0) {
|
||||
$menu_data[$val['pid']]['checked'] = false;
|
||||
}
|
||||
}
|
||||
// dump($menu_data);die;
|
||||
// dump($menu_data);die;
|
||||
// $menuList = $this->buildMenuChild(0, $menuList);
|
||||
$menuList = $this->_getManySonData($menu_data);
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $menuList];
|
||||
}
|
||||
|
||||
//树形创建
|
||||
private function _getManySonData($data, $sonName = 'children')
|
||||
{
|
||||
$tree = [];
|
||||
//第一步,将分类id作为数组key,并创建children单元
|
||||
|
||||
foreach ($data as $key => $val) {
|
||||
// dump($val);
|
||||
$tree[$val['id']] = $val;
|
||||
$tree[$val['id']][$sonName] = [];
|
||||
}
|
||||
//第二步,利用引用,将每个分类添加到父类children数组中,这样一次遍历即可形成树形结构。
|
||||
foreach ($tree as $key => $val) {
|
||||
if ($val['pid'] != 0) {
|
||||
$tree[$val['pid']][$sonName][] = &$tree[$key];
|
||||
if ($tree[$key][$sonName] == null) {
|
||||
unset($tree[$key][$sonName]); //如果children为空,则删除该children元素(可选)
|
||||
}
|
||||
}
|
||||
}
|
||||
//第三步,删除无用的非根节点数据
|
||||
foreach ($tree as $key => $val) {
|
||||
if (isset($val['pid']) && $val['pid'] != 0) {
|
||||
unset($tree[$key]);
|
||||
}
|
||||
}
|
||||
$result = [];
|
||||
foreach ($tree as $key => $val) {
|
||||
$result[] = $val;
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
208
application/admin/model/Upload.php
Normal file
208
application/admin/model/Upload.php
Normal file
@@ -0,0 +1,208 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace app\admin\model;
|
||||
|
||||
use think\Model;
|
||||
use Qiniu\Storage\UploadManager;
|
||||
use Qiniu\Auth;
|
||||
use think\facade\Env;
|
||||
use Qcloud\Cos\Client;
|
||||
|
||||
class Upload extends Model
|
||||
{
|
||||
//单文件上传
|
||||
public function single_file_upload($file, $file_category_name = 'all')
|
||||
{
|
||||
//判断上传方式
|
||||
$config = get_system_config();
|
||||
if ($config['file_upload_type'] == 1) {
|
||||
$reslut = $this->local_upload($file, $file_category_name);
|
||||
} elseif ($config['file_upload_type'] == 2) {
|
||||
$reslut = $this->qiniu_upload($file, $file_category_name);
|
||||
}elseif ($config['file_upload_type'] == 3) {
|
||||
$reslut = $this->tencent_upload($file, $file_category_name);
|
||||
}
|
||||
return $reslut;
|
||||
}
|
||||
|
||||
|
||||
public function server_local_upload($filePath){
|
||||
|
||||
$config = get_system_config();
|
||||
$accessKey = $config['qiniu_access_key'];
|
||||
$secretKey = $config['qiniu_secret_key'];
|
||||
$bucket = $config['qiniu_bucket_name'];
|
||||
// 构建鉴权对象
|
||||
$auth = new Auth($accessKey, $secretKey);
|
||||
// 生成上传 Token
|
||||
$token = $auth->uploadToken($bucket);
|
||||
// 初始化 UploadManager 对象并进行文件的上传。
|
||||
$uploadMgr = new UploadManager();
|
||||
// 调用 UploadManager 的 putFile 方法进行文件的上传。
|
||||
$local_filePath= Env::get('root_path')."/public/".$filePath;
|
||||
list($ret, $err) = $uploadMgr->putFile($token, $filePath, $local_filePath);
|
||||
if ($err !== null) {
|
||||
return ['code' => 201, 'msg' => "上传失败", 'data' => null];
|
||||
} else {
|
||||
$data = [];
|
||||
$data['image_path'] = $ret['key'];
|
||||
$data['size'] = 0;
|
||||
$data['http_image_path'] = localpath_to_netpath($ret['key']);
|
||||
|
||||
return ['code' => 200, 'msg' => "上传成功", 'data' => $data];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function local_upload($file, $file_category_name = 'all')
|
||||
{
|
||||
// // 获取表单上传文件 例如上传了001.jpg
|
||||
|
||||
// 移动到框架应用根目录/uploads/ 目录下
|
||||
$root_path = 'public/uploads/' . $file_category_name;
|
||||
mkdirs($root_path); //创建文件
|
||||
$info = $file->validate(['ext' => 'jpeg,jpg,png,gif,mp4,mp3,wgt,svga'])->move('./uploads/' . $file_category_name);
|
||||
if ($info) {
|
||||
$file_info = $info->getInfo();
|
||||
// 成功上传后 获取上传信息
|
||||
// 输出 jpg
|
||||
// echo $info->getExtension();
|
||||
// // 输出 20160820/42a79759f284b767dfcb2a0197904287.jpg
|
||||
// echo $info->getSaveName();
|
||||
// // 输出 42a79759f284b767dfcb2a0197904287.jpg
|
||||
// echo $info->getFilename();
|
||||
$image_path = '/uploads/' . $file_category_name . '/' . $info->getSaveName(); //返回的地址
|
||||
$image_path = str_replace("\\", "/", $image_path);
|
||||
$img['image_path'] = $image_path;
|
||||
$img['size'] = $file_info['size'];
|
||||
$img['http_image_path'] = localpath_to_netpath($image_path);
|
||||
return ['code' => 200, 'msg' => '上传成功', 'data' => $img];
|
||||
} else {
|
||||
|
||||
return ['code' => 201, 'msg' => '上传失败', 'data' => null];
|
||||
}
|
||||
}
|
||||
public function qiniu_upload($file, $file_category_name = 'all')
|
||||
{
|
||||
$config = get_system_config();
|
||||
$accessKey = $config['qiniu_access_key'];
|
||||
$secretKey = $config['qiniu_secret_key'];
|
||||
$bucket = $config['qiniu_bucket_name'];
|
||||
|
||||
if (empty($file)) {
|
||||
return ['code' => 201, 'msg' => '请上传文件', 'data' => null];
|
||||
}
|
||||
|
||||
$validate_reslut = $file->validate(['ext' => 'jpeg,jpg,png,gif,mp4,mp3,wgt,svga'])->check();
|
||||
if (!$validate_reslut) {
|
||||
return ['code' => 201, 'msg' => '非法上传存储类型', 'data' => null];
|
||||
}
|
||||
$extension = strtolower(pathinfo($file->getInfo('name'), PATHINFO_EXTENSION));
|
||||
$file_info = $file->getInfo();
|
||||
|
||||
|
||||
// 构建鉴权对象
|
||||
$auth = new Auth($accessKey, $secretKey);
|
||||
// 生成上传 Token
|
||||
$token = $auth->uploadToken($bucket);
|
||||
// 要上传文件的本地路径
|
||||
$filePath = $file_info['tmp_name'];
|
||||
// 上传到存储后保存的文件名
|
||||
$savename = date('Ymd') . '/' . md5(microtime(true)) . ".$extension";
|
||||
$key = $file_category_name . '/' . $savename;
|
||||
// 初始化 UploadManager 对象并进行文件的上传。
|
||||
$uploadMgr = new UploadManager();
|
||||
// 调用 UploadManager 的 putFile 方法进行文件的上传。
|
||||
list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath);
|
||||
if ($err !== null) {
|
||||
return ['code' => 201, 'msg' => "上传失败", 'data' => null];
|
||||
} else {
|
||||
$data = [];
|
||||
$data['image_path'] = $ret['key'];
|
||||
$data['size'] = $file_info['size'];
|
||||
$data['http_image_path'] = localpath_to_netpath($ret['key']);
|
||||
|
||||
return ['code' => 200, 'msg' => "上传成功", 'data' => $data];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function get_qiniu_upload_token()
|
||||
{
|
||||
$config = get_system_config();
|
||||
$accessKey = $config['qiniu_access_key'];
|
||||
$secretKey = $config['qiniu_secret_key'];
|
||||
$bucket = $config['qiniu_bucket_name'];
|
||||
$auth = new Auth($accessKey, $secretKey);
|
||||
$token = $auth->uploadToken($bucket);
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => ['token' => $token]];
|
||||
}
|
||||
public function tencent_upload($file, $file_category_name = 'all')
|
||||
{
|
||||
|
||||
$config = get_system_config();
|
||||
$secretId = $config['tencent_secret_id'];
|
||||
// $secretId = 111111;
|
||||
$secretKey = $config['tencent_secret_key'];
|
||||
$region = $config['tencent_territory'];
|
||||
$bucket = $config['tencent_bucket_name'];
|
||||
|
||||
if (empty($file)) {
|
||||
return ['code' => 201, 'msg' => '请上传文件', 'data' => null];
|
||||
}
|
||||
// dump($file);exit;
|
||||
|
||||
$validate_reslut = $file->validate(['ext' => 'jpeg,jpg,png,gif,mp4,mp3,wgt,svga'])->check();
|
||||
// dump($file);exit;
|
||||
if (!$validate_reslut) {
|
||||
return ['code' => 201, 'msg' => '非法上传存储类型', 'data' => null];
|
||||
}
|
||||
|
||||
$extension = strtolower(pathinfo($file->getInfo('name'), PATHINFO_EXTENSION));
|
||||
$file_info = $file->getInfo();
|
||||
|
||||
|
||||
// 构建鉴权对象
|
||||
$cosClient = new Client(
|
||||
array(
|
||||
'region' => $region,
|
||||
'schema' => 'https', //协议头部,默认为http
|
||||
'credentials'=> array(
|
||||
'secretId' => $secretId ,
|
||||
'secretKey' => $secretKey
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
// 要上传文件的本地路径
|
||||
$filePath = $file_info['tmp_name'];
|
||||
// 上传到存储后保存的文件名
|
||||
$savename = date('Ymd') . '/' . md5(microtime(true)) . ".$extension";
|
||||
$key = $file_category_name . '/' . $savename;
|
||||
// 初始化 UploadManager 对象并进行文件的上传。
|
||||
$file = fopen($filePath, "rb");
|
||||
|
||||
if ($file) {
|
||||
$result = $cosClient->putObject(array(
|
||||
'Bucket' => $bucket,
|
||||
'Key' => $key,
|
||||
'Body' => $file)
|
||||
);
|
||||
|
||||
$data = [];
|
||||
$data['image_path'] = $result['Key'];
|
||||
$data['size'] = $file_info['size'];
|
||||
$data['http_image_path'] = localpath_to_netpath($result['Key']);
|
||||
$data['mp4_task_id'] = '';
|
||||
$data['extension'] = $extension;
|
||||
|
||||
return ['code' => 200, 'msg' => "上传成功", 'data' => $data];
|
||||
}else{
|
||||
return ['code' => 201, 'msg' => "上传失败", 'data' => null];
|
||||
}
|
||||
}
|
||||
}
|
||||
1110
application/admin/model/User.php
Normal file
1110
application/admin/model/User.php
Normal file
File diff suppressed because it is too large
Load Diff
10
application/admin/model/UserGiftPack.php
Normal file
10
application/admin/model/UserGiftPack.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\model;
|
||||
|
||||
use think\Model;
|
||||
|
||||
class UserGiftPack extends Model
|
||||
{
|
||||
|
||||
}
|
||||
20
application/admin/model/UserGiftPackLog.php
Normal file
20
application/admin/model/UserGiftPackLog.php
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\model;
|
||||
|
||||
use think\Model;
|
||||
|
||||
class UserGiftPackLog extends Model
|
||||
{
|
||||
public static function TypeLable()
|
||||
{
|
||||
//1系统赠送2宝箱获得3个人赠送
|
||||
return [
|
||||
'1' => '系统赠送',
|
||||
'2' => '宝箱获得',
|
||||
'3' => '个人打赏',
|
||||
'4' => '玩法获取',
|
||||
'5' => '盲盒巡音会获取',
|
||||
];
|
||||
}
|
||||
}
|
||||
19
application/admin/model/UserMessage.php
Normal file
19
application/admin/model/UserMessage.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\model;
|
||||
|
||||
use think\Model;
|
||||
|
||||
class UserMessage extends Model
|
||||
{
|
||||
protected $pk = 'mid';
|
||||
|
||||
public static function TypeLable()
|
||||
{
|
||||
return [
|
||||
'1' => '系统消息',
|
||||
'2' => '订单消息',
|
||||
'3' => '情缘消息',
|
||||
];
|
||||
}
|
||||
}
|
||||
87
application/admin/model/UserMoneyLog.php
Normal file
87
application/admin/model/UserMoneyLog.php
Normal file
@@ -0,0 +1,87 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\model;
|
||||
|
||||
use think\Model;
|
||||
|
||||
class UserMoneyLog extends Model
|
||||
{
|
||||
protected $pk = 'log_id';
|
||||
|
||||
public static function ChangeTypeLable()
|
||||
{
|
||||
return [
|
||||
'1' => '系统调节',
|
||||
// '2' => '陪玩下单',
|
||||
// '3' => '陪玩超时退款',
|
||||
'4' => '礼物打赏',
|
||||
// '5' => '陪玩接单',
|
||||
'6' => '礼物收赏',
|
||||
'7' => '礼物打赏厅主收益',
|
||||
// '8' => '购买守护',
|
||||
'9' => '余额充值',
|
||||
// '10' => '陪玩订单取消退款',
|
||||
'11' => '兑换消耗余额',
|
||||
'12' => '兑换增加金币',
|
||||
'13' => '提现',
|
||||
// '14' => '推广用户充值返利',
|
||||
'15' => '提现驳回',
|
||||
'16' => '开宝箱',
|
||||
'17' => '用户转赠',
|
||||
// '18' => '发红包支出',
|
||||
// '19' => '抢红包收入',
|
||||
// '20' => '抢红包厅主流水',
|
||||
'21' => '购买装扮',
|
||||
'22' => '会员邀请收益',
|
||||
'23' => '签约成功主持获得金币',
|
||||
'24' => '拍卖签约扣除金币',
|
||||
'25' => '制作人续约',
|
||||
'26' => '前制作人获取签约用户被拍金币',
|
||||
'27' => '新人签约唱歌获取金币',
|
||||
'28' => '礼物打赏主持收益',
|
||||
'29' => '幸运礼物打赏',
|
||||
'30' => '幸运礼物返币',
|
||||
'31' => '幸运礼物收赏',
|
||||
'32' => '幸运礼物打赏厅主收益',
|
||||
'33' => '幸运礼物打赏主持收益',
|
||||
'34' => '房间补贴收益',
|
||||
'35' => '幸运补贴收益',
|
||||
'36' => '购买会员消费',
|
||||
'37' => '更换邀请人消费',
|
||||
'38' => '礼物打赏制作人收益',
|
||||
'39' => '公会补贴收益',
|
||||
'40' => '购买门票消费金币',
|
||||
'41' => '获取门票',
|
||||
'42' => '仲夏夜梦曲投入票数',
|
||||
'43' => '新手签约奖励',
|
||||
// '18' => '开箱获取欧皇钥匙',
|
||||
// '19' => '消耗欧皇钥匙开箱',
|
||||
// '18' => '兑换积攒池',
|
||||
// '19' => '积攒池兑换'
|
||||
'44' => '购买爵位',
|
||||
'18' => '退出公会扣除',
|
||||
'19' => '退出公会增加',
|
||||
'52' => '抢头条',
|
||||
'53' => '删除用户关系',
|
||||
'61' => '龙蛋神谕投币',
|
||||
|
||||
'62' => '每日签到奖励',
|
||||
'63' => '倍数玩法消费',
|
||||
|
||||
|
||||
|
||||
|
||||
];
|
||||
}
|
||||
|
||||
public static function MoneyTypeLable()
|
||||
{
|
||||
return [
|
||||
'1' => '余额',
|
||||
'2' => '金币',
|
||||
'3' => '票数',
|
||||
// '3' => '欧皇钥匙',
|
||||
// '3' => '积攒金额'
|
||||
];
|
||||
}
|
||||
}
|
||||
82
application/admin/model/UserPack.php
Normal file
82
application/admin/model/UserPack.php
Normal file
@@ -0,0 +1,82 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\model;
|
||||
|
||||
use think\Model;
|
||||
use think\Db;
|
||||
|
||||
class UserPack extends Model
|
||||
{
|
||||
//获取配置参数
|
||||
public function add_user_pack_gift($aid, $uid, $gid, $num)
|
||||
{
|
||||
if($aid != 1) {
|
||||
return ['code' => 201, 'msg' => '非超管用户不能向背包送礼物', 'data' => null];
|
||||
}
|
||||
$map = [];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$map[] = ['is_show', '=', 1];
|
||||
$map[] = ['is_can_buy', '=', 2];
|
||||
$map[] = ['gid', '=', $gid];
|
||||
$gift_info = Db::name('gift')->where($map)->find();
|
||||
if(empty($gift_info)) {
|
||||
return ['code' => 201, 'msg' => '礼物信息不存在', 'data' => null];
|
||||
}
|
||||
$user_info = Db::name('user')->find($uid);
|
||||
if(empty($user_info)) {
|
||||
return ['code' => 201, 'msg' => '用户信息不存在', 'data' => null];
|
||||
}
|
||||
|
||||
$map = [];
|
||||
$map[] = ['uid', '=', $uid];
|
||||
$map[] = ['gid', '=', $gid];
|
||||
$info = Db::name('user_gift_pack')->where($map)->find();
|
||||
Db::startTrans();
|
||||
try {
|
||||
if($info) {
|
||||
$data = [
|
||||
'total_num' => $info['total_num'] + $num,
|
||||
'num' => $info['num'] + $num,
|
||||
'admin_id' => $aid,
|
||||
'admin_add_num' => $info['admin_add_num'] + $num,
|
||||
'update_time' => time(),
|
||||
];
|
||||
Db::name('user_gift_pack')->where('pid', $info['pid'])->update($data);
|
||||
} else {
|
||||
$data = [
|
||||
'total_num' => $num,
|
||||
'num' => $num,
|
||||
'admin_id' => $aid,
|
||||
'admin_add_num' => $num,
|
||||
'update_time' => time(),
|
||||
'add_time' => time(),
|
||||
'gid' => $gid,
|
||||
'uid' => $uid,
|
||||
];
|
||||
Db::name('user_gift_pack')->insert($data);
|
||||
}
|
||||
$insert_data = [
|
||||
'uid' => $uid,
|
||||
'type' => 5,
|
||||
'gid' => $gid,
|
||||
'change_num' => $num,
|
||||
'after_num' => $num,
|
||||
'gift_price' => $gift_info['gift_price'],
|
||||
'total_gift_price' => $gift_info['gift_price'] * $num,
|
||||
'remarks' => '平台补发',
|
||||
'update_time' => time(),
|
||||
'add_time' => time(),
|
||||
'admin_id' => $aid,
|
||||
];
|
||||
Db::name('user_gift_pack_log')->insert($insert_data);
|
||||
Db::commit();
|
||||
return ['code' => 200, 'msg' => "修改成功", 'data' => null];
|
||||
} catch (\Exception $e) {
|
||||
// 回滚事务
|
||||
dump($e);
|
||||
Db::rollback();
|
||||
return ['code' => 201, 'msg' => "请重试", 'data' => null];
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
29
application/admin/model/UserPlayer.php
Normal file
29
application/admin/model/UserPlayer.php
Normal file
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\model;
|
||||
|
||||
use think\Model;
|
||||
|
||||
class UserPlayer extends Model
|
||||
{
|
||||
protected $auto = ['update_time'];
|
||||
protected $insert = [
|
||||
'add_time',
|
||||
|
||||
'order_duration' => 0,
|
||||
'order_count' => 0,
|
||||
'order_total_amount' => 0,
|
||||
'service_rate' => 0,
|
||||
'last_login_time' => 0,
|
||||
'flag' => '',
|
||||
'is_top' => 1,
|
||||
'is_recommend' => 1,
|
||||
'is_business' => 1,
|
||||
'remarks' => '',
|
||||
'status' => 1,
|
||||
'deal_time' => 0,
|
||||
|
||||
];
|
||||
protected $update = ['update_time'];
|
||||
|
||||
}
|
||||
45
application/admin/model/UserPlayerOrder.php
Normal file
45
application/admin/model/UserPlayerOrder.php
Normal file
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\model;
|
||||
|
||||
use think\Db;
|
||||
use think\Model;
|
||||
|
||||
class UserPlayerOrder extends Model
|
||||
{
|
||||
public function close_palyer_order()
|
||||
{
|
||||
$player_order_close_max_time = get_system_config('player_order_close_max_time');
|
||||
$close_time = time() - $player_order_close_max_time; //30分钟自动关闭订单
|
||||
$map = [];
|
||||
$map[] = ['status', '=', 1];
|
||||
$map[] = ['is_over', '=', 1];
|
||||
$map[] = ['add_time', '<', $close_time];
|
||||
$list = db::name('user_player_order')->where($map)->select();
|
||||
foreach ($list as $k => $v) {
|
||||
Db::startTrans();
|
||||
try {
|
||||
$data = [];
|
||||
$data['oid'] = $v['oid'];
|
||||
$data['is_over'] = 2;
|
||||
$data['over_close_time'] = time();
|
||||
$reslut = db::name('user_player_order')->update($data);
|
||||
if (!$reslut) {
|
||||
Db::rollback();
|
||||
return ['code' => 201, 'msg' => '请重试', 'data' => null];
|
||||
}
|
||||
//用户积分返回
|
||||
$reslut = model('admin/User')->change_user_money_by_uid($v['uid'], $v['total_amount'], 2, 3, "陪玩订单超时退款:" . $v['order_sn'], $v['player_uid'], $v['oid']);
|
||||
if ($reslut['code'] != 200) {
|
||||
Db::rollback();
|
||||
return ['code' => 201, 'msg' => '请重试', 'data' => null];
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
// 回滚事务
|
||||
Db::rollback();
|
||||
return ['code' => 201, 'msg' => "请重试", 'data' => null];
|
||||
}
|
||||
}
|
||||
return date('Y-m-d H:i:s') . 'success' . PHP_EOL;
|
||||
}
|
||||
}
|
||||
46
application/admin/model/UserRelation.php
Normal file
46
application/admin/model/UserRelation.php
Normal file
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\model;
|
||||
|
||||
use think\Model;
|
||||
|
||||
class UserRelation extends Model
|
||||
{
|
||||
protected $pk = 'rid';
|
||||
protected $auto = ['update_time'];
|
||||
protected $insert = [
|
||||
'add_time',
|
||||
'status' => 1,
|
||||
'deal_time' => 0,
|
||||
|
||||
];
|
||||
protected $update = ['update_time'];
|
||||
|
||||
protected function setAddTimeAttr()
|
||||
{
|
||||
return time();
|
||||
}
|
||||
|
||||
protected function setUpdateTimeAttr()
|
||||
{
|
||||
return time();
|
||||
}
|
||||
public static function TypeLable()
|
||||
{
|
||||
return [
|
||||
'1' => '情侣',
|
||||
'2' => '师徒',
|
||||
'3' => '守护',
|
||||
];
|
||||
}
|
||||
|
||||
public function get_relation_type_lable($type)
|
||||
{
|
||||
$data = $this->TypeLable();
|
||||
if (empty($data[$type])) {
|
||||
return '';
|
||||
} else {
|
||||
return $data[$type];
|
||||
}
|
||||
}
|
||||
}
|
||||
28
application/admin/model/UserRelationApply.php
Normal file
28
application/admin/model/UserRelationApply.php
Normal file
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\model;
|
||||
|
||||
use think\Model;
|
||||
|
||||
class UserRelationApply extends Model
|
||||
{
|
||||
protected $pk = 'aid';
|
||||
protected $auto = ['update_time'];
|
||||
protected $insert = [
|
||||
'add_time',
|
||||
'status' => 1,
|
||||
'deal_time' => 0,
|
||||
|
||||
];
|
||||
protected $update = ['update_time'];
|
||||
|
||||
protected function setAddTimeAttr()
|
||||
{
|
||||
return time();
|
||||
}
|
||||
|
||||
protected function setUpdateTimeAttr()
|
||||
{
|
||||
return time();
|
||||
}
|
||||
}
|
||||
130
application/admin/model/Userzone.php
Normal file
130
application/admin/model/Userzone.php
Normal file
@@ -0,0 +1,130 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\model;
|
||||
|
||||
use think\Db;
|
||||
use think\Model;
|
||||
|
||||
class Userzone extends Model
|
||||
{
|
||||
|
||||
//获取举报列表
|
||||
public function user_zone_list($uid, $nick_name, $content, $show_status, $page = 1, $limit = 20)
|
||||
{
|
||||
$map = [];
|
||||
if (!empty($uid)) {
|
||||
$map[] = ['a.uid', '=', $uid];
|
||||
}
|
||||
if (!empty($nick_name)) {
|
||||
$map[] = ['b.nick_name', 'like', '%' . $nick_name . '%'];
|
||||
}
|
||||
if (!empty($content)) {
|
||||
$map[] = ['a.content', 'like', '%' . $content . '%'];
|
||||
}
|
||||
if (!empty($show_status)) {
|
||||
$map[] = ['a.show_status', '=', $show_status];
|
||||
}
|
||||
$list = db::name('user_zone')
|
||||
->alias('a')->join('yy_user b', 'a.uid = b.uid')
|
||||
->field('a.*,b.nick_name')->where($map)->page($page, $limit)->order("zid desc")->select();
|
||||
foreach ($list as $k => &$v) {
|
||||
$list[$k]['user_nick_name'] = $v['uid'] . '-' . $v['nick_name'];
|
||||
$image_data = explode(',', $v['images']);
|
||||
$v['image_list'] = [];
|
||||
if (!empty($image_data)) {
|
||||
foreach ($image_data as $m => $n) {
|
||||
$v['image_list'][] = localpath_to_netpath($n);
|
||||
}
|
||||
}
|
||||
|
||||
$v['sound'] = localpath_to_netpath($v['sound']);
|
||||
$v['video'] = localpath_to_netpath($v['video']);
|
||||
}
|
||||
$data = [];
|
||||
$data['count'] = db::name('user_zone')->alias('a')->join('yy_user b', 'a.uid = b.uid')->where($map)->count();
|
||||
$data['list'] = $list;
|
||||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||||
}
|
||||
//审核发布说说
|
||||
// public function zone_examine($zid, $show_status)
|
||||
// {
|
||||
// $map = [];
|
||||
// $map[] = ['zid', '=', $zid];
|
||||
// $zone_info = db::name('user_zone')->where($map)->find();
|
||||
// if (empty($zone_info)) {
|
||||
// return ['code' => 201, 'msg' => '说说不存在', 'data' => null];
|
||||
// }
|
||||
// if (!in_array($show_status, [1, 2, 3])) {
|
||||
// return ['code' => 201, 'msg' => '审核状态参数错误', 'data' => null];
|
||||
// }
|
||||
// $data = [];
|
||||
// $data['zid'] = $zid;
|
||||
// $data['show_status'] = $show_status; //默认显示
|
||||
// $data['update_time'] = time(); //默认显示
|
||||
// $reslut = db::name('user_zone')->update($data);
|
||||
// if ($reslut) {
|
||||
// return ['code' => 200, 'msg' => '操作成功', 'data' => null];
|
||||
// } else {
|
||||
// return ['code' => 201, 'msg' => '操作失败', 'data' => null];
|
||||
// }
|
||||
// }
|
||||
|
||||
public function get_zone_info($zid)
|
||||
{
|
||||
$map = [];
|
||||
$map[] = ['zid', '=', $zid];
|
||||
$zone_info = db::name('user_zone')->where($map)->find();
|
||||
if (empty($zone_info)) {
|
||||
return ['code' => 201, 'msg' => '说说不存在', 'data' => null];
|
||||
}
|
||||
$user_info = db::name('user')->find($zone_info['uid']);
|
||||
$zone_info['user_name'] = $user_info['user_name'];
|
||||
$zone_info['nick_name'] = mb_convert_encoding(base64_decode($user_info['base64_nick_name']), 'UTF-8', 'UTF-8');
|
||||
$zone_info['http_sound'] = localpath_to_netpath($zone_info['sound']);
|
||||
|
||||
$zone_info['http_video'] = localpath_to_netpath($zone_info['video']);
|
||||
|
||||
|
||||
$zone_info['image_list'] = '';
|
||||
if (!empty($zone_info['images'])) {
|
||||
$image_data = explode(',', $zone_info['images']);
|
||||
foreach ($image_data as $m => &$n) {
|
||||
$n = localpath_to_netpath($n);
|
||||
}
|
||||
$zone_info['image_list']=join(',',$image_data);
|
||||
|
||||
}
|
||||
|
||||
return ['code' => 200, 'msg' => 'success', 'data' => $zone_info];
|
||||
}
|
||||
|
||||
//审核发布说说
|
||||
public function edit_zone($data)
|
||||
{
|
||||
$map = [];
|
||||
$map[] = ['zid', '=', $data['zid']];
|
||||
$zone_info = db::name('user_zone')->where($map)->find();
|
||||
if (empty($zone_info)) {
|
||||
return ['code' => 201, 'msg' => '说说不存在', 'data' => null];
|
||||
}
|
||||
if (!in_array($data['show_status'], [1, 2, 3])) {
|
||||
return ['code' => 201, 'msg' => '审核状态参数错误', 'data' => null];
|
||||
}
|
||||
if (!in_array($data['is_recommend'], [1, 2])) {
|
||||
return ['code' => 201, 'msg' => '推荐状态参数错误', 'data' => null];
|
||||
}
|
||||
$update_data = [];
|
||||
$update_data['zid'] = $data['zid'];
|
||||
$update_data['is_recommend'] = $data['is_recommend']; //默认显示
|
||||
$update_data['show_status'] = $data['show_status']; //默认显示
|
||||
$update_data['update_time'] = time(); //默认显示
|
||||
$reslut = db::name('user_zone')->update($update_data);
|
||||
if ($reslut) {
|
||||
return ['code' => 200, 'msg' => '操作成功', 'data' => null];
|
||||
} else {
|
||||
return ['code' => 201, 'msg' => '操作失败', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
1166
application/admin/model/Website.php
Normal file
1166
application/admin/model/Website.php
Normal file
File diff suppressed because it is too large
Load Diff
42
application/admin/validate/Admin.php
Normal file
42
application/admin/validate/Admin.php
Normal file
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\validate;
|
||||
|
||||
use think\Validate;
|
||||
|
||||
class Admin extends Validate
|
||||
{
|
||||
/**
|
||||
* 定义验证规则
|
||||
* 格式:'字段名' => ['规则1','规则2'...]
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
|
||||
protected $rule = [
|
||||
'user_name' => 'require|unique:admin,user_name,,aid',
|
||||
// 'password' => 'require|regex:[a-zA-Z0-9]{6,16}',
|
||||
'password' => 'require',
|
||||
|
||||
];
|
||||
|
||||
/**
|
||||
* 定义错误信息
|
||||
* 格式:'字段名.规则名' => '错误信息'
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $message = [
|
||||
'user_name.require' => '用户名必须',
|
||||
'user_name.unique' => '用户名已被占用',
|
||||
|
||||
'password.require' => '密码必须',
|
||||
// 'password.regex' => '密码必须6-16位字母或者数字组成',
|
||||
|
||||
];
|
||||
|
||||
protected $scene = [
|
||||
'adminEditPassword' => ['password'],
|
||||
'adminAdd' => ['user_name', 'password'],
|
||||
];
|
||||
}
|
||||
43
application/admin/validate/BoxGiveGift.php
Normal file
43
application/admin/validate/BoxGiveGift.php
Normal file
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\validate;
|
||||
|
||||
use think\Validate;
|
||||
|
||||
class BoxGiveGift extends Validate
|
||||
{
|
||||
/**
|
||||
* 定义验证规则
|
||||
* 格式:'字段名' => ['规则1','规则2'...]
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
|
||||
protected $rule = [
|
||||
'uid' => 'require',
|
||||
'tid' => 'require',
|
||||
'gid' => 'require',
|
||||
'num' => 'require',
|
||||
|
||||
];
|
||||
|
||||
/**
|
||||
* 定义错误信息
|
||||
* 格式:'字段名.规则名' => '错误信息'
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $message = [
|
||||
'uid.require' => '用户id必须',
|
||||
'tid.require' => '类型必须',
|
||||
'gid.require' => '礼物id必须',
|
||||
'num.require' => '数量必须',
|
||||
|
||||
|
||||
|
||||
];
|
||||
|
||||
protected $scene = [
|
||||
'adminAdd' => ['uid', 'tid', 'gid', 'num'],
|
||||
];
|
||||
}
|
||||
41
application/admin/validate/BoxType.php
Normal file
41
application/admin/validate/BoxType.php
Normal file
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\validate;
|
||||
|
||||
use think\Validate;
|
||||
|
||||
class BoxType extends Validate
|
||||
{
|
||||
/**
|
||||
* 定义验证规则
|
||||
* 格式:'字段名' => ['规则1','规则2'...]
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
|
||||
protected $rule = [
|
||||
'type_name' => 'require|length:1,20',
|
||||
'open_price' => 'require',
|
||||
'open_status' => 'require|in:1,2',
|
||||
];
|
||||
|
||||
/**
|
||||
* 定义错误信息
|
||||
* 格式:'字段名.规则名' => '错误信息'
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $message = [
|
||||
'type_name.require' => '类型名称必须',
|
||||
'type_name.length' => '类型名称长度必须1~200之间',
|
||||
'open_price.require' => '单价必须',
|
||||
'open_status.require' => '开启状态必须',
|
||||
'open_status.in' => '开启状态参数错误',
|
||||
|
||||
];
|
||||
|
||||
protected $scene = [
|
||||
'adminAdd' => ['type_name', 'open_price', 'open_status'],
|
||||
'adminEdit' => ['type_name', 'open_price', 'open_status'],
|
||||
];
|
||||
}
|
||||
36
application/admin/validate/Message.php
Normal file
36
application/admin/validate/Message.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\validate;
|
||||
|
||||
use think\Validate;
|
||||
|
||||
class Message extends Validate
|
||||
{
|
||||
/**
|
||||
* 定义验证规则
|
||||
* 格式:'字段名' => ['规则1','规则2'...]
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
|
||||
protected $rule = [
|
||||
'title' => 'require',
|
||||
'content' => 'require',
|
||||
];
|
||||
|
||||
/**
|
||||
* 定义错误信息
|
||||
* 格式:'字段名.规则名' => '错误信息'
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $message = [
|
||||
'title.require' => '标题必须',
|
||||
'content.require' => '内容必须',
|
||||
];
|
||||
|
||||
protected $scene = [
|
||||
'adminAdd' => ['title', 'content'],
|
||||
'adminEdit' => ['title', 'content'],
|
||||
];
|
||||
}
|
||||
53
application/admin/validate/Room.php
Normal file
53
application/admin/validate/Room.php
Normal file
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\validate;
|
||||
|
||||
use think\Validate;
|
||||
|
||||
class Room extends Validate
|
||||
{
|
||||
/**
|
||||
* 定义验证规则
|
||||
* 格式:'字段名' => ['规则1','规则2'...]
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
|
||||
protected $rule = [
|
||||
'room_name' => 'require|length:1,20',
|
||||
'room_intro' => 'require|length:1,200',
|
||||
'room_cover' => 'require',
|
||||
'room_number' => 'require|number|unique:room',
|
||||
'room_password' => 'regex:[A-Z0-9]{4}',
|
||||
'room_owner_uid' => 'require',
|
||||
'room_background_id' => 'require',
|
||||
'cate_id' => 'require',
|
||||
];
|
||||
|
||||
/**
|
||||
* 定义错误信息
|
||||
* 格式:'字段名.规则名' => '错误信息'
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $message = [
|
||||
'room_name.require' => '房间名必须',
|
||||
'room_name.length' => '房间名长度必须1~200之间',
|
||||
'room_cover.require' => '房间封面必须',
|
||||
'room_number.require' => '房间号必须',
|
||||
'room_number.number' => '房间号必须为纯数字',
|
||||
'room_number.unique' => '房间号已存在',
|
||||
'room_password.regex' => '房间密码必须4位数字或字母组合',
|
||||
'room_owner_uid.require' => '厅主ID必须',
|
||||
'room_background_id.require' => '房间背景图必须',
|
||||
'cate_id.require' => '房间分类必须',
|
||||
];
|
||||
|
||||
protected $scene = [
|
||||
'adminAdd' => ['room_name', 'room_cover', 'room_number', 'room_password', 'room_owner_uid', 'room_background_id', 'cate_id'],
|
||||
'adminEdit' => ['room_name', 'room_cover', 'room_number', 'room_password', 'room_background_id', 'cate_id'],
|
||||
'apiEdit' => ['room_name', 'room_cover', 'room_password', 'room_background_id'],
|
||||
'apiAdd' => ['room_name', 'room_cover', 'room_password', 'room_background_id', 'cate_id'],
|
||||
|
||||
];
|
||||
}
|
||||
74
application/admin/validate/User.php
Normal file
74
application/admin/validate/User.php
Normal file
@@ -0,0 +1,74 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\validate;
|
||||
|
||||
use think\Validate;
|
||||
|
||||
class User extends Validate
|
||||
{
|
||||
/**
|
||||
* 定义验证规则
|
||||
* 格式:'字段名' => ['规则1','规则2'...]
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
|
||||
protected $rule = [
|
||||
'user_name' => 'require|unique:user,user_name,,uid|mobile',
|
||||
'password' => 'require|regex:[a-zA-Z0-9]{6,16}',
|
||||
'trade_password' => 'require|regex:\d{6}',
|
||||
'nick_name' => 'require|length:1,8',
|
||||
'nick_name' => 'require',
|
||||
'birthday' => 'require|regex:\d{4}-\d{2}-\d{2}',
|
||||
'constellation' => 'require|in:白羊座,金牛座,双子座,巨蟹座,狮子座,处女座,天秤座,天蝎座,射手座,摩羯座,双鱼座,水瓶座',
|
||||
'head_pic' => 'require',
|
||||
'sex' => 'require|in:1,2',
|
||||
'is_can_recharge' => 'require|in:1,2',
|
||||
'is_sign' => 'require|in:1,2',
|
||||
'login_status' => 'require|in:1,2',
|
||||
'system' => 'require|in:0,1,2',
|
||||
'special_uid' => 'unique:user,special_uid,,uid|integer',
|
||||
];
|
||||
|
||||
/**
|
||||
* 定义错误信息
|
||||
* 格式:'字段名.规则名' => '错误信息'
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $message = [
|
||||
'user_name.require' => '用户名必须',
|
||||
'user_name.unique' => '用户名已被占用',
|
||||
'user_name.mobile' => '用户名必须是手机号码',
|
||||
'password.require' => '密码必须',
|
||||
'password.regex' => '密码必须6-16位字母或者数字组成',
|
||||
'trade_password.require' => '交易密码必须',
|
||||
'trade_password.regex' => '交易密码必须6数字组成',
|
||||
'nick_name.require' => '用户昵称必须',
|
||||
'nick_name.length' => '用户昵称必须1~8个字符',
|
||||
'birthday.require' => '出生日期必须',
|
||||
'birthday.regex' => '出生日期格式非法',
|
||||
'constellation.require' => '请填写星座',
|
||||
'constellation.in' => '星座类型错误',
|
||||
'head_pic.require' => '用户头像必须',
|
||||
'is_can_recharge.require' => '是否可代充状态必须',
|
||||
'is_can_recharge.in' => '是否可代充状态非法',
|
||||
'is_sign.require' => '是否签约状态必须',
|
||||
'is_sign.in' => '是否签约状态非法',
|
||||
'login_status.require' => '是否允许登录状态必须',
|
||||
'login_status.in' => '是否允许登录状态非法',
|
||||
'special_uid.unique' => '该靓号已占用',
|
||||
'special_uid.integer' => '靓号格式错误',
|
||||
];
|
||||
|
||||
protected $scene = [
|
||||
|
||||
'adminEdit' => ['nick_name', 'sex', 'login_status'],
|
||||
'adminEditPassword' => ['password'],
|
||||
'apiEditPassword' => ['password'],
|
||||
'apiEditTradePassword' => ['trade_password'],
|
||||
'apiAdd' => ['user_name', 'password'],
|
||||
'apiEditInfo' => ['nick_name', 'birthday', 'constellation'],
|
||||
|
||||
];
|
||||
}
|
||||
50
application/admin/validate/UserPlayer.php
Normal file
50
application/admin/validate/UserPlayer.php
Normal file
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\validate;
|
||||
|
||||
use think\Validate;
|
||||
|
||||
class UserPlayer extends Validate
|
||||
{
|
||||
/**
|
||||
* 定义验证规则
|
||||
* 格式:'字段名' => ['规则1','规则2'...]
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
|
||||
protected $rule = [
|
||||
'uid' => 'require',
|
||||
'gid' => 'require',
|
||||
'lid' => 'require',
|
||||
'price' => 'require',
|
||||
// 'price' => 'number|between:0,10000',
|
||||
'skill_image' => 'require',
|
||||
'cover_image' => 'require',
|
||||
'sound' => 'require',
|
||||
'sound_duration' => 'number|between:0,60',
|
||||
'introduction' => 'require',
|
||||
];
|
||||
|
||||
/**
|
||||
* 定义错误信息
|
||||
* 格式:'字段名.规则名' => '错误信息'
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $message = [
|
||||
// 'price.require' => '单价',
|
||||
// 'price.between' => '单价设置范围0~10000',
|
||||
'skill_image.require' => '请上传技能截图',
|
||||
'cover_image.unique' => '请上传封面图',
|
||||
'sound.require' => '语音介绍必须',
|
||||
'sound_duration.number' => '语音介绍时长必须为数字',
|
||||
'sound_duration.between' => '语音介绍时长范围最长60s',
|
||||
'introduction.require' => '个人介绍必填',
|
||||
];
|
||||
|
||||
protected $scene = [
|
||||
'apiAdd' => ['uid', 'gid', 'lid', 'price', 'skill_image', 'cover_image', 'sound', 'sound_duration', 'introduction'],
|
||||
'apiEdit' => ['uid','lid', 'price', 'skill_image', 'cover_image', 'sound', 'sound_duration', 'introduction'],
|
||||
];
|
||||
}
|
||||
34
application/admin/validate/UserRelation.php
Normal file
34
application/admin/validate/UserRelation.php
Normal file
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\validate;
|
||||
|
||||
use think\Validate;
|
||||
|
||||
class UserRelation extends Validate
|
||||
{
|
||||
protected $rule = [
|
||||
'uid' => 'require',
|
||||
'recived_uid' => 'require',
|
||||
'type' => 'require|in:1,2,3'
|
||||
|
||||
];
|
||||
|
||||
/**
|
||||
* 定义错误信息
|
||||
* 格式:'字段名.规则名' => '错误信息'
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $message = [
|
||||
'uid.require' => 'uid必须',
|
||||
'recived_uid.require' => 'recived_uid必须',
|
||||
'type.require' => '关系类型必须',
|
||||
'type.in' => '关系类型非法',
|
||||
|
||||
];
|
||||
|
||||
protected $scene = [
|
||||
'apiAdd' => ['uid', 'recived_uid', 'type'],
|
||||
'apiAdd' => ['uid', 'recived_uid', 'type'],
|
||||
];
|
||||
}
|
||||
36
application/admin/validate/UserRelationApply.php
Normal file
36
application/admin/validate/UserRelationApply.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\validate;
|
||||
|
||||
use think\Validate;
|
||||
|
||||
class UserRelationApply extends Validate
|
||||
{
|
||||
protected $rule = [
|
||||
'uid' => 'require',
|
||||
'recived_uid' => 'require',
|
||||
'type' => 'require|in:1,2,3',
|
||||
'status' => 'in:1,2,3'
|
||||
|
||||
];
|
||||
|
||||
/**
|
||||
* 定义错误信息
|
||||
* 格式:'字段名.规则名' => '错误信息'
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $message = [
|
||||
'uid.require' => 'uid必须',
|
||||
'recived_uid.require' => 'recived_uid必须',
|
||||
'type.require' => '关系类型必须',
|
||||
'type.in' => '关系类型非法',
|
||||
'status.in' => '状态非法',
|
||||
|
||||
];
|
||||
|
||||
protected $scene = [
|
||||
'apiAdd' => ['uid', 'recived_uid', 'type', 'status'],
|
||||
'apiEdit' => ['status'],
|
||||
];
|
||||
}
|
||||
31
application/admin/validate/UserZone.php
Normal file
31
application/admin/validate/UserZone.php
Normal file
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\validate;
|
||||
|
||||
use think\Validate;
|
||||
|
||||
class UserZone extends Validate
|
||||
{
|
||||
protected $rule = [
|
||||
'sound_duration' => 'number|between:0,60',
|
||||
'content' => 'length:1,300',
|
||||
];
|
||||
|
||||
/**
|
||||
* 定义错误信息
|
||||
* 格式:'字段名.规则名' => '错误信息'
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $message = [
|
||||
'sound_duration.number' => '声音长度参数非法',
|
||||
'sound_duration.between' => '声音最大限制60s',
|
||||
// 'content.require' => '请填写内容',
|
||||
'content.length' => '内容字数超出限制',
|
||||
|
||||
];
|
||||
|
||||
protected $scene = [
|
||||
'apiAdd' => ['sound_duration', 'content'],
|
||||
];
|
||||
}
|
||||
29
application/admin/validate/UserZoneComment.php
Normal file
29
application/admin/validate/UserZoneComment.php
Normal file
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\validate;
|
||||
|
||||
use think\Validate;
|
||||
|
||||
class UserZoneComment extends Validate
|
||||
{
|
||||
protected $rule = [
|
||||
|
||||
'content' => 'require|length:1,300',
|
||||
];
|
||||
|
||||
/**
|
||||
* 定义错误信息
|
||||
* 格式:'字段名.规则名' => '错误信息'
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $message = [
|
||||
'content.require' => '请填写内容',
|
||||
'content.length' => '内容字数超出限制',
|
||||
|
||||
];
|
||||
|
||||
protected $scene = [
|
||||
'apiAdd' => ['content'],
|
||||
];
|
||||
}
|
||||
1
application/admin/view/login/login.html
Normal file
1
application/admin/view/login/login.html
Normal file
@@ -0,0 +1 @@
|
||||
13132
|
||||
77
application/anchor/controller/Apip.php
Normal file
77
application/anchor/controller/Apip.php
Normal file
@@ -0,0 +1,77 @@
|
||||
<?php
|
||||
|
||||
namespace app\anchor\controller;
|
||||
|
||||
use think\Controller;
|
||||
use think\captcha\Captcha;
|
||||
use think\DB;
|
||||
|
||||
class Apip extends Controller
|
||||
{
|
||||
public function initialize()
|
||||
{
|
||||
header('Access-Control-Allow-Origin: *');
|
||||
add_operation(3, 0); //用户行为日志
|
||||
}
|
||||
public function login()
|
||||
{
|
||||
|
||||
$captcha = input('captcha');
|
||||
$username = input('username');
|
||||
$password = input('password');
|
||||
if (empty($captcha)) {
|
||||
return ajaxReturn(201, '验证码不能为空');
|
||||
}
|
||||
// if (!captcha_check($captcha)) {
|
||||
// // 验证失败
|
||||
// return ajaxReturn(201, '验证码错误');
|
||||
// }
|
||||
if (empty($username)) {
|
||||
return ajaxReturn(201, '用户名不能为空');
|
||||
}
|
||||
if (empty($password)) {
|
||||
return ajaxReturn(201, '密码不能为空');
|
||||
}
|
||||
$map = [];
|
||||
$map[] = ['user_name', '=', $username];
|
||||
$map[] = ['password', '=', md5($password)];
|
||||
$info = db::name('user')->where($map)->find();
|
||||
if (empty($info)) {
|
||||
return ajaxReturn(201, '用户名不存在');
|
||||
} else {
|
||||
|
||||
if (md5($password) != $info['password']) {
|
||||
return ajaxReturn(201, '密码错误');
|
||||
}
|
||||
if ($info['is_anchor'] != 2) {
|
||||
return ajaxReturn(201, '普通用户无法登录');
|
||||
}
|
||||
$login_token = generateRandom(32);
|
||||
$login_token = $info['login_token']; //防止用户APP掉线 此处不更新登录token
|
||||
$data = [];
|
||||
$data['uid'] = $info['uid'];
|
||||
$data['login_token'] = $login_token;
|
||||
$data['update_time'] = time();
|
||||
$reslut = db::name('user')->update($data);
|
||||
if (!$reslut) {
|
||||
return ajaxReturn(201, '登录失败', '');
|
||||
} else {
|
||||
return ajaxReturn(200, '登录成功', $login_token);
|
||||
}
|
||||
}
|
||||
}
|
||||
public function verify()
|
||||
{
|
||||
$config = [
|
||||
'codeSet' => '0123456789',
|
||||
// 验证码字体大小
|
||||
'fontSize' => 30,
|
||||
// 验证码位数
|
||||
'length' => 4,
|
||||
// 关闭验证码杂点
|
||||
'useNoise' => false,
|
||||
];
|
||||
$captcha = new Captcha($config);
|
||||
return $captcha->entry();
|
||||
}
|
||||
}
|
||||
51
application/anchor/controller/Capital.php
Normal file
51
application/anchor/controller/Capital.php
Normal file
@@ -0,0 +1,51 @@
|
||||
<?php
|
||||
|
||||
namespace app\anchor\controller;
|
||||
|
||||
use think\Controller;
|
||||
use think\Request;
|
||||
use think\DB;
|
||||
|
||||
class Capital extends Common
|
||||
{
|
||||
|
||||
|
||||
//获取房间流水 列表
|
||||
public function room_money_log()
|
||||
{
|
||||
$rid = -1;
|
||||
$room_info = Db::name("room")->where(array("room_owner_uid" => $this->uid))->find();
|
||||
if (!empty($room_info)) {
|
||||
$rid = $room_info['rid'];
|
||||
}
|
||||
$room_number = 0;
|
||||
$room_name = '';
|
||||
$time1 = input('time1', '');
|
||||
$time2 = input('time2', 0);
|
||||
|
||||
$order = input('order', 'a.sid');
|
||||
$sort = input('sort', 'desc');
|
||||
$page = input('page', 1);
|
||||
$limit = input('limit', 20);
|
||||
$reslut = model('admin/Capital')->room_money_log($rid, $room_number, $room_name, $time1, $time2, $order, $sort, $page, $limit);
|
||||
$data = [];
|
||||
$data['code'] = 0;
|
||||
$data['msg'] = '获取成功';
|
||||
$data['count'] = $reslut['data']['count'];
|
||||
$data['data'] = $reslut['data']['list'];
|
||||
$data['totalRow'] = $reslut['data']['totalRow'];
|
||||
return json($data);
|
||||
}
|
||||
//获取资金改变类型
|
||||
public function get_change_type()
|
||||
{
|
||||
$data = model('admin/UserMoneyLog')->ChangeTypeLable();
|
||||
return ajaxReturn(200, '', $data);
|
||||
}
|
||||
//获取资金类型
|
||||
public function get_money_type()
|
||||
{
|
||||
$data = model('admin/UserMoneyLog')->MoneyTypeLable();
|
||||
return ajaxReturn(200, '', $data);
|
||||
}
|
||||
}
|
||||
37
application/anchor/controller/Common.php
Normal file
37
application/anchor/controller/Common.php
Normal file
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
namespace app\anchor\controller;
|
||||
|
||||
use think\Controller;
|
||||
use think\Request;
|
||||
use think\Db;
|
||||
|
||||
class Common extends Controller
|
||||
{
|
||||
public $uid;
|
||||
public function initialize()
|
||||
{
|
||||
header('Access-Control-Allow-Origin: *');
|
||||
|
||||
// ajaxReturn(301, '系统维护');
|
||||
$login_token = input('login_token', 0);
|
||||
$reslut = model('User')->check_login_token($login_token);
|
||||
if ($reslut['code'] == 201) {
|
||||
return ajaxReturn(301, $reslut['msg'], $reslut['data']);
|
||||
} else {
|
||||
$this->uid = $reslut['data'];
|
||||
}
|
||||
add_operation(3, $this->uid); //用户行为日志
|
||||
}
|
||||
public function check_login_status()
|
||||
{
|
||||
$user_name = Db::name("user")->where(array("uid" => $this->uid))->value("user_name");
|
||||
$data['data'] = $user_name;
|
||||
ajaxReturn(1, '登录成功', $data);
|
||||
}
|
||||
public function get_menu_list()
|
||||
{
|
||||
$data = model('SystemMenu')->getSystemInit($this->uid);
|
||||
return json($data);
|
||||
}
|
||||
}
|
||||
10
application/anchor/model/Capital.php
Normal file
10
application/anchor/model/Capital.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace app\anchor\model;
|
||||
|
||||
use think\Model;
|
||||
|
||||
class Capital extends Model
|
||||
{
|
||||
//
|
||||
}
|
||||
63
application/anchor/model/SystemMenu.php
Normal file
63
application/anchor/model/SystemMenu.php
Normal file
@@ -0,0 +1,63 @@
|
||||
<?php
|
||||
|
||||
namespace app\anchor\model;
|
||||
|
||||
use think\Db;
|
||||
use think\Model;
|
||||
|
||||
class SystemMenu extends Model
|
||||
{
|
||||
|
||||
// 获取初始化数据
|
||||
public function getSystemInit($aid = 0)
|
||||
{
|
||||
$homeInfo = [
|
||||
'title' => '首页',
|
||||
'href' => '',
|
||||
];
|
||||
$logoInfo = [
|
||||
'title' => '系统 管理',
|
||||
'image' => 'images/logo.png',
|
||||
];
|
||||
$menuInfo = $this->getMenuList($aid);
|
||||
$systemInit = [
|
||||
'homeInfo' => $homeInfo,
|
||||
'logoInfo' => $logoInfo,
|
||||
'menuInfo' => $menuInfo,
|
||||
];
|
||||
return $systemInit;
|
||||
}
|
||||
|
||||
// 获取菜单列表
|
||||
private function getMenuList($aid)
|
||||
{
|
||||
$menuList = Db::name('system_menu_anchor')
|
||||
->field('id,pid,title,icon,href,target')
|
||||
->where('status', 1)
|
||||
->where('type', 'in', [1, 2])
|
||||
->order('sort', 'desc')
|
||||
->select();
|
||||
|
||||
$menuList = $this->buildMenuChild(0, $menuList);
|
||||
return $menuList;
|
||||
}
|
||||
|
||||
//递归获取子菜单
|
||||
private function buildMenuChild($pid, $menuList)
|
||||
{
|
||||
$treeList = [];
|
||||
foreach ($menuList as &$v) {
|
||||
|
||||
if ($pid == $v['pid']) {
|
||||
$node = $v;
|
||||
$child = $this->buildMenuChild($v['id'], $menuList);
|
||||
if (!empty($child)) {
|
||||
$node['child'] = $child;
|
||||
}
|
||||
// todo 后续此处加上用户的权限判断
|
||||
$treeList[] = $node;
|
||||
}
|
||||
}
|
||||
return $treeList;
|
||||
}
|
||||
}
|
||||
24
application/anchor/model/User.php
Normal file
24
application/anchor/model/User.php
Normal file
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
namespace app\anchor\model;
|
||||
|
||||
use think\Model;
|
||||
use think\DB;
|
||||
|
||||
class User extends Model
|
||||
{
|
||||
public function check_login_token($login_token)
|
||||
{
|
||||
if (empty($login_token)) {
|
||||
return ['code' => 201, 'msg' => '登录失效', 'data' => ''];
|
||||
}
|
||||
$map = [];
|
||||
$map[] = ['login_token', '=', $login_token];
|
||||
$user_info = db::name('user')->where($map)->find();
|
||||
if (empty($user_info)) {
|
||||
return ['code' => 201, 'msg' => '登录失效', 'data' => ''];
|
||||
} else {
|
||||
return ['code' => 200, 'msg' => '登录成功', 'data' => $user_info['uid']];
|
||||
}
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user