测试app文件上传
This commit is contained in:
parent
fbe38770cc
commit
082d3fb1e0
|
|
@ -0,0 +1,108 @@
|
|||
<?php
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
use think\Controller;
|
||||
use think\Db;
|
||||
use app\bj\controller\Common;
|
||||
use think\helper\hash\Md5;
|
||||
use think\Log;
|
||||
use \think\Validate;
|
||||
|
||||
class Appversion extends Base{
|
||||
protected $page_num = 10;
|
||||
protected $file_max = 1024*1024*50;//10MB
|
||||
public function index($page = 1){
|
||||
$data = input();
|
||||
$pd = true;
|
||||
$parameter = [];
|
||||
if(array_key_exists('tt', $data)){
|
||||
$page = $data['page_num'];
|
||||
unset($data['page_num']);
|
||||
unset($data['tt']);
|
||||
$pd = false;
|
||||
// if($data['status_num'] === "0" || $data['status_num'] === "1"){
|
||||
// $parameter['is_del'] = $data['status_num'];
|
||||
// }
|
||||
// if($data['tel']){
|
||||
// $parameter['tel'] = $data['tel'];
|
||||
// }
|
||||
// if($data['email']){
|
||||
// $parameter['email'] = $data['email'];
|
||||
// }
|
||||
// if($data['s_time']){
|
||||
// $parameter['create_time'] = ['>=',$data['s_time']];
|
||||
// }
|
||||
// if($data['e_time']){
|
||||
// $parameter['create_time'] = ['<=',$data['e_time']];
|
||||
// }
|
||||
}
|
||||
$num = Db::table('app_version_log')->where($parameter)->count();
|
||||
$result = Db::table('app_version_log')->order('id desc')->page($page,$this->page_num)->select();
|
||||
if(!$pd){
|
||||
$result['num'] = $num;
|
||||
$result['data'] = $result;
|
||||
return $this->msg(0,'success',$result);
|
||||
}
|
||||
$this->assign([
|
||||
'result' => $result,
|
||||
'num' => $num,
|
||||
]);
|
||||
return $this->fetch();
|
||||
}
|
||||
|
||||
|
||||
public function app_add(){
|
||||
return $this->fetch();
|
||||
}
|
||||
|
||||
public function app_add_action(){
|
||||
$file = request()->file('apk');
|
||||
$name = request()->param();
|
||||
$num = Db::table('app_version_log')->where(['name'=>$name['file_name'],'version_num'=>$name['version_num']])->count();
|
||||
// dump($num);
|
||||
if($num > 0){
|
||||
return $this->msg(10001,'版本号已存在');
|
||||
}
|
||||
if($file){
|
||||
// 移动到框架应用根目录/public/uploads/ 目录下
|
||||
$file_name_new = $name['file_name'].'_'.$name['version_num'].'.apk';
|
||||
$info = $file->validate(['size'=>$this->file_max,'ext'=>'apk'])->move(ROOT_PATH . 'public' . DS . 'app_update_file',$file_name_new);
|
||||
if($info){
|
||||
$result = Db::table('app_version_log')->insert([
|
||||
'name'=>$name['file_name'],
|
||||
'version_num'=>$name['version_num'],
|
||||
'content'=>$name['content'],
|
||||
'download_url'=>'http://tc.pcxbc.com/app_update_file/'.$file_name_new,
|
||||
'create_time'=>date('Y-m-d H:i:s'),
|
||||
]);
|
||||
if($result){
|
||||
return $this->msg([]);
|
||||
}else{
|
||||
return $this->msg(10002);
|
||||
}
|
||||
// 成功上传后 获取上传信息
|
||||
// 输出 jpg
|
||||
// echo $info->getExtension();
|
||||
// // 输出 20160820/42a79759f284b767dfcb2a0197904287.jpg
|
||||
// echo $info->getSaveName();
|
||||
// // 输出 42a79759f284b767dfcb2a0197904287.jpg
|
||||
// echo $info->getFilename();
|
||||
}else{
|
||||
// 上传失败获取错误信息
|
||||
return $this->msg(10001, $file->getError());
|
||||
// echo $file->getError();
|
||||
}
|
||||
}else{
|
||||
return $this->msg(10001, '文件缺失');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
################################################################other################################################################
|
||||
################################################################other################################################################
|
||||
################################################################other################################################################
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,216 @@
|
|||
<?php
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
use think\Controller;
|
||||
use think\Db;
|
||||
use think\Cache;
|
||||
use think\Log;
|
||||
|
||||
class Base extends Controller{
|
||||
|
||||
protected $ceshiyong_token = 'caadd1be045a65f30b92aa805f1de54a';
|
||||
protected $token_time = 86400*3;
|
||||
protected $return_data_all = [
|
||||
// '0' => ['success',[]],
|
||||
'10001'=>'关键参数缺失',
|
||||
'10002'=>'操作失败',
|
||||
'10003'=>'信息核实错误',
|
||||
'10004'=>'未找到有效数据',
|
||||
'10005'=>'参数格式错误',
|
||||
'10006'=>'参数不能为空',
|
||||
'10007'=>'',
|
||||
'10008'=>'',
|
||||
'10009'=>'',
|
||||
'10010'=>'',
|
||||
'20001'=>'登录失效',
|
||||
];
|
||||
|
||||
################################################################接口################################################################
|
||||
################################################################接口################################################################
|
||||
################################################################接口################################################################
|
||||
|
||||
// 操作记录留存
|
||||
// $data = ['aud_id'=>'xxxxxxxxxxxxxxx','order_list'=>[1,2,3,4,5]]
|
||||
public function abnormal_data_log_action($dacall_methoda = 0,$content='未记录的内容',$use_database_name='未记录的数据库名'){
|
||||
$result = Db::table('app_data_log')->insert([
|
||||
'create_time'=>date('Y-m-d H:i:s'),
|
||||
'call_method'=>$this->base_call_method[$dacall_methoda],
|
||||
'content'=>$content,
|
||||
'use_database_name'=>$use_database_name,
|
||||
]);
|
||||
}
|
||||
|
||||
// 检查变量是否是一个只有数字的一维数组
|
||||
public function is_num_array($array = [1,2,3],$type=1) {
|
||||
if (!is_array($array)) {
|
||||
return false; // 变量不是数组
|
||||
}
|
||||
foreach ($array as $value) {
|
||||
if (!is_numeric($value)) {
|
||||
return false; // 数组中包含非数字元素
|
||||
}
|
||||
}
|
||||
if($type!=1){
|
||||
return true;
|
||||
}
|
||||
$result = Db::table('app_card_data')->where(['is_del'=>0])->cache(true,3600)->select();//查询结果缓存3600秒
|
||||
if(empty(array_diff($array, array_column($result, 'id')))){
|
||||
return true;// 数组是一维的且只包含数字,且已经跟数据库比对过,每个数值都是有效
|
||||
}else{
|
||||
return false;//跟数据库比对过,存在无效数值
|
||||
}
|
||||
}
|
||||
public function validate_user_identity($data) {
|
||||
$validate_user = Db::table('app_user_data')->where(['id'=>$data])->count();
|
||||
if($validate_user<=0){
|
||||
return false;
|
||||
}else{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
// 判断字符串是手机还是邮箱
|
||||
public function is_tel_email($str) {
|
||||
// 手机号码的正则表达式(中国大陆格式)(下面正则实际判断的是是否为11位数字)
|
||||
$mobilePattern = '/^\d{11}$/';
|
||||
// 电子邮件地址的正则表达式
|
||||
$emailPattern = '/^[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/';
|
||||
// 判断是否为手机号码
|
||||
if (preg_match($mobilePattern, $str)) {
|
||||
return 'tel';
|
||||
}
|
||||
// 判断是否为电子邮件地址
|
||||
if (preg_match($emailPattern, $str)) {
|
||||
return 'email';
|
||||
}
|
||||
// 如果都不是,返回其他
|
||||
return false;
|
||||
}
|
||||
|
||||
// 计算年龄
|
||||
public function calculate_age($data = '1991-04-20'){
|
||||
$today = time(); // 获取当前时间的 Unix 时间戳
|
||||
$birthDate = strtotime($data); // 将出生日期字符串转换为 Unix 时间戳
|
||||
if ($birthDate !== false) {
|
||||
$age = date('Y', $today) - date('Y', $birthDate);
|
||||
// 如果当前年份的月份和日期小于出生年份的月份和日期,那么年龄减一
|
||||
if (date('m-d', $today) < date('m-d', $birthDate)) {
|
||||
$age--;
|
||||
}
|
||||
return $age;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// 秒转化格式,00:00:00
|
||||
public function handle_hour_branch_second($data = '2000'){
|
||||
$hours = intval($data / 3600);
|
||||
$minutes = intval(($data % 3600) / 60);
|
||||
$remainingSeconds = $data % 60;
|
||||
return [
|
||||
'h' => str_pad($hours, 2, '0', STR_PAD_LEFT),
|
||||
'm' => str_pad($minutes, 2, '0', STR_PAD_LEFT),
|
||||
's' => str_pad($remainingSeconds, 2, '0', STR_PAD_LEFT)
|
||||
];
|
||||
}
|
||||
|
||||
// 判断token是否过期
|
||||
public function token_time_validate($token){
|
||||
// cache($token,time());
|
||||
// return true;
|
||||
$time = cache($token);
|
||||
// dump($time);
|
||||
if($time === false){
|
||||
return false;
|
||||
}
|
||||
$diff_time = time() - $time;
|
||||
// dump($diff_time);
|
||||
if($diff_time > $this->token_time){
|
||||
return false;
|
||||
}
|
||||
cache($token, time());
|
||||
return true;
|
||||
}
|
||||
|
||||
// 计算天数
|
||||
public function daysSince($pastDate,$now = false)
|
||||
{
|
||||
// 创建一个表示过去日期的 DateTime 对象
|
||||
$past = new \DateTime($pastDate);
|
||||
if($now === false){
|
||||
// 创建一个表示当前日期的 DateTime 对象
|
||||
$now = new \DateTime();
|
||||
}else{
|
||||
$now = new \DateTime($now);
|
||||
}
|
||||
// 使用 DateTime::diff() 方法计算两个日期之间的差值
|
||||
$interval = $past->diff($now);
|
||||
// 返回相差的天数
|
||||
return $interval->format('%a');
|
||||
}
|
||||
|
||||
// 计算月份
|
||||
public function calculateAgeInMonthsWithPrecision($birthDateStr) {
|
||||
// 获取当前日期
|
||||
$now = new \DateTime();
|
||||
// 将出生日期字符串转换为 DateTime 对象
|
||||
$birthDate = \DateTime::createFromFormat('Y-m-d', $birthDateStr);
|
||||
// 计算两者之间的差距(以月为单位,包含部分月份的小数)
|
||||
$interval = $now->diff($birthDate);
|
||||
$ageInMonths = $interval->y * 12 + $interval->m; // 年份乘以12加上月份
|
||||
$remainingDays = $interval->d; // 当前月内的剩余天数
|
||||
// 将剩余天数转换为小数月份(假设一个月为30天,进行近似计算)
|
||||
$partialMonth = $remainingDays / 30;
|
||||
// 结果精确到小数点后两位
|
||||
$ageInMonthsPrecise = round($ageInMonths + $partialMonth, 2);
|
||||
return $ageInMonthsPrecise;
|
||||
}
|
||||
// 曲线页面-底部统计动作
|
||||
public function base_target_initial_cumulative_weight($data = []){
|
||||
// 第一种:用户详情(所有数据都有)
|
||||
// 第二种:手动记录(只有最新体重)
|
||||
// 第三种:修改原始体重(只有原始体重)
|
||||
// dump($data);
|
||||
if(count($data) > 0){
|
||||
$result_data['target_weight'] = $data['target_weight'];
|
||||
$result_data['initial_weight'] = $data['initial_weight'];
|
||||
$result_data['cumulative_weight'] = bcsub($data['weight'],$data['initial_weight'],2);
|
||||
$result_data['cumulative_day'] = $data['initial_date'] == 0?0:$this->daysSince($data['initial_date']);
|
||||
}else{
|
||||
$result_data['target_weight'] = 0;
|
||||
$result_data['initial_weight'] = 0;
|
||||
$result_data['cumulative_weight'] = 0;
|
||||
$result_data['cumulative_day'] = 0;
|
||||
}
|
||||
// dump($result_data);
|
||||
return $result_data;
|
||||
}
|
||||
|
||||
// 判断一个参数是否为数字且大于等于0
|
||||
function isPositiveNumber($value) {
|
||||
return is_numeric($value) && $value >= 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function msg($data,$str=''){
|
||||
if(is_array($data)){
|
||||
return json(['code'=>0,'msg'=>'操作成功','data'=>$data]);
|
||||
}else{
|
||||
if($str != ''){
|
||||
return json(['code'=>$data,'msg'=>$str]);
|
||||
}
|
||||
return json(['code'=>$data,'msg'=>$this->return_data_all[$data]]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function ceshiyong(){
|
||||
$result = Db::query("select * from app_card_data");
|
||||
dump($result);
|
||||
$result2 = Db::table('app_card_data')->select();
|
||||
dump($result2);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,197 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="x-admin-sm">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>app版本管理</title>
|
||||
<meta name="renderer" content="webkit">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="viewport" content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi" />
|
||||
<link rel="stylesheet" href="/x_admin/css/font.css">
|
||||
<link rel="stylesheet" href="/x_admin/css/xadmin.css">
|
||||
<script type="text/javascript" src="/x_admin/lib/layui/layui.js" charset="utf-8"></script>
|
||||
<script type="text/javascript" src="/x_admin/js/xadmin.js"></script>
|
||||
<script type="text/javascript" src="/x_admin/js/jq.js"></script>
|
||||
<!-- 让IE8/9支持媒体查询,从而兼容栅格 -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
|
||||
<script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
</head>
|
||||
<body>
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-row">
|
||||
<form class="layui-form">
|
||||
<div class="layui-form-item">
|
||||
<label for="L_email" class="layui-form-label">
|
||||
<!-- <span class="x-red">*</span>邮箱 -->
|
||||
</label>
|
||||
<div class="layui-input-inline">
|
||||
<!-- <input type="text" id="L_email" name="email" required="" lay-verify="email" autocomplete="off" class="layui-input"> -->
|
||||
<input type="file" id="upload_file_app" lay-verify="upload_file_app" name="data_excel">
|
||||
</div>
|
||||
<!-- <div class="layui-form-mid layui-word-aux">
|
||||
<span class="x-red">*</span>将会成为您唯一的登入名
|
||||
</div> -->
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label for="file_name" class="layui-form-label">
|
||||
<span class="x-red"></span>文件名</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" id="file_name" name="file_name" required="" lay-verify="file_name" autocomplete="off" class="layui-input" readonly></div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label for="version_num" class="layui-form-label">
|
||||
<span class="x-red">*</span>版本号</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" id="version_num" name="version_num" required="" lay-verify="version_num" autocomplete="off" class="layui-input"></div>
|
||||
<div class="layui-form-mid layui-word-aux">以大写V开头最多10个字符(由数字跟英文"."组成)</div></div>
|
||||
<div class="layui-form-item">
|
||||
<label for="content" class="layui-form-label">
|
||||
<span class="x-red">*</span>描述</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" id="content" name="content" required="" lay-verify="content" autocomplete="off" class="layui-input"></div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label for="L_repass" class="layui-form-label"></label>
|
||||
<div class="layui-btn" id="add" lay-filter="add" lay-submit="">增加</div>
|
||||
<!-- <input value="登录" lay-submit lay-filter="add" type="submit" class="layui-btn">
|
||||
<button class="layui-btn" lay-filter="add" lay-submit="">增加</button> -->
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="layui-fluid">
|
||||
<div id="official_1" class="layui-row">
|
||||
<div style="margin-left: 8%;margin-top: 5%;font-size: 25px;">请先下载模板文件,信息填写完成并上传该文件后点击生成</div>
|
||||
<img style="width: 90%;margin-left: 3%;"src="/uploads/code_demo.png?v=1.0" alt="">
|
||||
<div class="layui-form-item" style="width: 30%;margin-left: 33%;margin-top: 5%;">
|
||||
<span>步骤1:</span><a href="/uploads/code_demo.xlsx" class="layui-btn" lay-filter="add">下载模板文件</a>
|
||||
</div>
|
||||
<div class="layui-form-item" style="width: 50%;margin-left: 33%;margin-top: 5%;">
|
||||
<span>步骤2:</span><input type="file" id="data_excel" name="data_excel">
|
||||
</div>
|
||||
<div class="layui-form-item" style="width: 30%;margin-left: 33%;margin-top: 5%;">
|
||||
<span>步骤3:</span><button class="layui-btn" lay-filter="add" lay-submit="" onclick="add_data()">生成</button>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
var file_name_all = ''
|
||||
var file_name = ''
|
||||
var file_extension = ''
|
||||
var pd = true
|
||||
|
||||
$('#upload_file_app').on('change', function() {
|
||||
// 获取被选择的文件
|
||||
var fileInput = $(this)[0];
|
||||
var file = fileInput.files[0];
|
||||
|
||||
// 检查是否有文件被选择
|
||||
if (file) {
|
||||
// 获取文件的名称
|
||||
file_name_all = file.name;
|
||||
// 使用lastIndexOf和substring来获取文件名(不包括后缀)
|
||||
var lastIndex = file_name_all.lastIndexOf('.');
|
||||
file_name = lastIndex !== -1 ? file_name_all.substring(0, lastIndex) : file_name_all;
|
||||
// 获取文件后缀
|
||||
file_extension = lastIndex !== -1 ? file_name_all.substring(lastIndex + 1) : '';
|
||||
$('#file_name').val(file_name)
|
||||
// console.log($('#upload_file_app')[0].files[0])
|
||||
// formdata.append('apk',$('#upload_file_app')[0].files[0])
|
||||
}
|
||||
});
|
||||
|
||||
$('#add').click(function(){
|
||||
var formdata = new FormData();
|
||||
formdata.append('apk',$('#upload_file_app')[0].files[0])
|
||||
formdata.append('file_name',$('#file_name').val())
|
||||
formdata.append('version_num',$('#version_num').val())
|
||||
formdata.append('content',$('#content').val())
|
||||
// return
|
||||
if(pd){
|
||||
// pd = false
|
||||
console.log('进来了')
|
||||
$.ajax({
|
||||
url:"/appversion/app_add_action", //请求的url地址
|
||||
contentType:false,
|
||||
processData:false,
|
||||
async:true,//请求是否异步,默认为异步,这也是ajax重要特性
|
||||
data:formdata, //参数值
|
||||
type:"POST", //请求方式
|
||||
success:function(req){
|
||||
//请求成功时处理
|
||||
// layer.alert("增加成功", {icon: 6},function() {
|
||||
// //关闭当前frame
|
||||
// xadmin.close();
|
||||
// // 可以对父窗口进行刷新
|
||||
// xadmin.father_reload();
|
||||
// });
|
||||
console.log(req)
|
||||
},
|
||||
error:function(){
|
||||
//请求出错处理
|
||||
pd = true
|
||||
}
|
||||
});
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
layui.use(['form', 'layer','jquery'],function() {
|
||||
$ = layui.jquery;
|
||||
var form = layui.form,
|
||||
layer = layui.layer;
|
||||
|
||||
//自定义验证规则
|
||||
form.verify({
|
||||
|
||||
// upload_file_app: function(value) {
|
||||
// if (value == '') {
|
||||
// return '请先选择文件';
|
||||
// }
|
||||
// },
|
||||
// file_name: function(value) {
|
||||
// if (value == '') {
|
||||
// return '必须填写文件名';
|
||||
// }
|
||||
// },
|
||||
// version_num: [/^V[\d.]{0,9}$/, '版本号必须以大写V开头最多10个字符(由数字跟英文"."组成)'],
|
||||
// content: function(value) {
|
||||
// if (value == '') {
|
||||
// return '必须填写描述';
|
||||
// }
|
||||
// },
|
||||
|
||||
});
|
||||
|
||||
//监听提交
|
||||
form.on('submit(add)',function(data) {
|
||||
//发异步,把数据提交给php
|
||||
return false;
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
//加载提示开启
|
||||
function load() {
|
||||
var index = layer.load(1, {
|
||||
shade: [0.1, '#fff'] //0.1透明度的白色背景
|
||||
});
|
||||
}
|
||||
// 关闭加载提示
|
||||
function c_load() {
|
||||
layer.close(layer.index)
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
// });
|
||||
</script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
@ -0,0 +1,348 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="x-admin-sm">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>app版本管理</title>
|
||||
<meta name="renderer" content="webkit">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="viewport" content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi" />
|
||||
<link rel="stylesheet" href="/x_admin/css/font.css">
|
||||
<link rel="stylesheet" href="/x_admin/css/xadmin.css">
|
||||
<script src="/x_admin/lib/layui/layui.js" charset="utf-8"></script>
|
||||
<script type="text/javascript" src="/x_admin/js/xadmin.js"></script>
|
||||
<style>
|
||||
/* th{
|
||||
min-width:30px;
|
||||
} */
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="x-nav">
|
||||
<span class="layui-breadcrumb">
|
||||
<a href="">首页</a>
|
||||
<a href="">演示</a>
|
||||
<a>
|
||||
<cite>导航元素</cite></a>
|
||||
</span>
|
||||
<a class="layui-btn layui-btn-small" style="line-height:1.6em;margin-top:3px;float:right" onclick="location.reload()" title="刷新">
|
||||
<i class="layui-icon layui-icon-refresh" style="line-height:30px"></i></a>
|
||||
</div>
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-row layui-col-space15">
|
||||
<div class="layui-col-md12">
|
||||
<div class="layui-card">
|
||||
<!-- <div class="layui-card-body ">
|
||||
<form class="layui-form layui-col-space5">
|
||||
<div class="layui-inline layui-show-xs-block">
|
||||
<input class="layui-input" autocomplete="off" placeholder="开始日" name="start" id="s_time">
|
||||
</div>
|
||||
<div class="layui-inline layui-show-xs-block">
|
||||
<input class="layui-input" autocomplete="off" placeholder="截止日" name="end" id="e_time">
|
||||
</div>
|
||||
<div class="layui-inline layui-show-xs-block">
|
||||
<input type="text" name="username" placeholder="请输入用户手机" autocomplete="off" class="layui-input" id="tel">
|
||||
</div>
|
||||
<div class="layui-inline layui-show-xs-block">
|
||||
<input type="text" name="username" placeholder="请输入用户邮箱" autocomplete="off" class="layui-input" id="email">
|
||||
</div>
|
||||
<div class="layui-input-inline layui-show-xs-block">
|
||||
<select name="contrller" id="status_num">
|
||||
<option value="">状态</option>
|
||||
<option value="0">启用</option>
|
||||
<option value="1">停用</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="layui-inline layui-show-xs-block">
|
||||
<div class="layui-btn" lay-submit="" lay-filter="sreach" onclick="find('y')"><i class="layui-icon"></i></div>
|
||||
</div>
|
||||
</form>
|
||||
</div> -->
|
||||
<div class="layui-card-header">
|
||||
<!-- <button class="layui-btn layui-btn-danger" onclick="delAll()"><i class="layui-icon"></i>批量停用</button> -->
|
||||
<!-- <button class="layui-btn" onclick="xadmin.open('添加用户','/appversion/app_add','100%','100%')"><i class="layui-icon"></i>添加</button> -->
|
||||
<button class="layui-btn" onclick="xadmin.open('添加版本','/appversion/app_add','80%','60%')"><i class="layui-icon"></i>添加</button>
|
||||
</div>
|
||||
<div class="layui-card-body layui-table-body layui-table-main">
|
||||
<table class="layui-table layui-form">
|
||||
<thead>
|
||||
<tr>
|
||||
<!-- <th><input type="checkbox" lay-filter="checkall" name="" lay-skin="primary"></th> -->
|
||||
<th>ID</th>
|
||||
<th>文件名</th>
|
||||
<th>版本号</th>
|
||||
<th>描述</th>
|
||||
<th>创建时间</th>
|
||||
<!-- <th>操作</th></tr> -->
|
||||
</thead>
|
||||
<tbody id='content'>
|
||||
|
||||
{volist name="result" id="vo"}
|
||||
<tr>
|
||||
<!-- <td><input type="checkbox" name="id" value="{$vo.id}" lay-skin="primary"></td> -->
|
||||
<td>{$vo.id}</td>
|
||||
<td>{$vo.name}</td>
|
||||
<td>{$vo.version_num}</td>
|
||||
<td>{$vo.content}</td>
|
||||
<td>{$vo.create_time}</td>
|
||||
</tr>
|
||||
{/volist}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="layui-card-body ">
|
||||
<div id="page" style="text-align: center;">
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="layui-card-body ">
|
||||
<div class="page">
|
||||
<div>
|
||||
<a class="prev" href=""><<</a>
|
||||
<a class="num" href="">1</a>
|
||||
<span class="current">2</span>
|
||||
<a class="num" href="">3</a>
|
||||
<a class="num" href="">489</a>
|
||||
<a class="next" href="">>></a>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
<script>
|
||||
var form
|
||||
layui.use(['laydate','form'], function(){
|
||||
var laydate = layui.laydate;
|
||||
form = layui.form;
|
||||
|
||||
|
||||
// 监听全选
|
||||
form.on('checkbox(checkall)', function(data){
|
||||
|
||||
if(data.elem.checked){
|
||||
$('tbody input').prop('checked',true);
|
||||
}else{
|
||||
$('tbody input').prop('checked',false);
|
||||
}
|
||||
form.render('checkbox');
|
||||
});
|
||||
|
||||
//执行一个laydate实例
|
||||
laydate.render({
|
||||
elem: '#s_time' //指定元素
|
||||
});
|
||||
|
||||
//执行一个laydate实例
|
||||
laydate.render({
|
||||
elem: '#e_time' //指定元素
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
var page_num;
|
||||
var laypage;
|
||||
var all_page = "{$num}";
|
||||
layui.use('laypage', function () {
|
||||
laypage = layui.laypage;
|
||||
|
||||
//执行一个laypage实例
|
||||
laypage.render({
|
||||
elem: 'page',
|
||||
count: all_page, //数据总数,从服务端得到
|
||||
limit: 10,
|
||||
groups:10,
|
||||
jump: function (obj, first) {
|
||||
//首次不执行
|
||||
if (!first) {
|
||||
//obj包含了当前分页的所有参数,比如:
|
||||
console.log(obj.curr); //得到当前页,以便向服务端请求对应页的数据。
|
||||
console.log(obj.limit); //得到每页显示的条数
|
||||
page_num = obj.curr;
|
||||
find("n")
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
/*用户-停用*/
|
||||
function member_stop(obj,id){
|
||||
|
||||
// return
|
||||
var title = '',is_del,num
|
||||
if($(obj).attr('title')=='启用'){
|
||||
title = '停用'
|
||||
is_del = 1
|
||||
num = 5
|
||||
}else{
|
||||
title = '启用'
|
||||
is_del = 0
|
||||
num = 6
|
||||
}
|
||||
// console.log('点击时'+$(obj).attr('title')+'====='+id+'===传到后台是否删除:'+is_del)
|
||||
layer.confirm('确认要'+ title +'吗?',function(index){
|
||||
load()
|
||||
$.ajax({
|
||||
url:"member_is_del", //请求的url地址
|
||||
dataType:"json", //返回格式为json
|
||||
async:true,//请求是否异步,默认为异步,这也是ajax重要特性
|
||||
data:{"id":id,'is_del':is_del}, //参数值
|
||||
type:"POST", //请求方式
|
||||
success:function(req){
|
||||
c_load()
|
||||
//请求成功时处理
|
||||
if(req['code'] == 0){
|
||||
//发异步把用户状态进行更改
|
||||
$(obj).attr('title',title)
|
||||
if(is_del == 1){
|
||||
$(obj).parents("tr").find(".td-status").find('span').addClass('layui-btn-disabled').html('已'+ title);
|
||||
}else{
|
||||
$(obj).parents("tr").find(".td-status").find('span').removeClass('layui-btn-disabled').html('已'+ title);
|
||||
}
|
||||
layer.msg('已停用!',{icon: num});
|
||||
}else{
|
||||
layer.msg('操作失败!',{icon: 5});
|
||||
}
|
||||
},
|
||||
error:function(){
|
||||
//请求出错处理
|
||||
}});
|
||||
});
|
||||
}
|
||||
|
||||
function delAll (argument) {
|
||||
// layer.msg('停用成功', {icon: 2});
|
||||
// return
|
||||
var ids = [];
|
||||
// 获取选中的id
|
||||
$('tbody input').each(function(index, el) {
|
||||
if($(this).prop('checked')){
|
||||
ids.push($(this).val())
|
||||
}
|
||||
});
|
||||
if(ids.length <= 0){
|
||||
return
|
||||
}
|
||||
console.log(ids);
|
||||
layer.confirm('确认要停用吗?ID为:'+ids.toString(),function(index){
|
||||
//捉到所有被选中的,发异步进行删除
|
||||
$.ajax({
|
||||
url:"member_is_del", //请求的url地址
|
||||
dataType:"json", //返回格式为json
|
||||
async:true,//请求是否异步,默认为异步,这也是ajax重要特性
|
||||
data:{"id":ids,'is_del':1}, //参数值
|
||||
type:"POST", //请求方式
|
||||
success:function(req){
|
||||
c_load()
|
||||
//请求成功时处理
|
||||
if(req['code'] == 0){
|
||||
//发异步把用户状态进行更改
|
||||
layer.msg('停用成功', {icon: 1});
|
||||
$(".layui-form-checked").not('.header').parents('tr').find(".td-status").find('span').addClass('layui-btn-disabled').html('已停用');
|
||||
}else{
|
||||
layer.msg('操作失败!',{icon: 2});
|
||||
}
|
||||
},
|
||||
error:function(){
|
||||
//请求出错处理
|
||||
}});
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
function find(pd) {
|
||||
if(!page_num || pd == 'y'){
|
||||
page_num = 1;
|
||||
}
|
||||
|
||||
page({
|
||||
"status_num":$('#status_num').val(),
|
||||
"tel":$('#tel').val(),
|
||||
"email":$('#email').val(),
|
||||
"s_time":$('#s_time').val(),
|
||||
"e_time":$('#e_time').val(),
|
||||
"page_num":page_num,
|
||||
"tt":1},pd);
|
||||
}
|
||||
function page(data,pd) {
|
||||
console.log(data)
|
||||
load()
|
||||
$.ajax({
|
||||
url: "member_list", //请求的url地址s
|
||||
dataType: "json", //返回格式为json
|
||||
async: true,//请求是否异步,默认为异步,这也是ajax重要特性
|
||||
data: data, //参数值
|
||||
type: "POST", //请求方式
|
||||
success: function (req) {
|
||||
console.log(req)
|
||||
c_load();
|
||||
if (req['code'] == 0) {
|
||||
|
||||
var str,str_s,str_c,str_all="";
|
||||
|
||||
for (let i = 0; i < req['data']['data'].length; i++) {
|
||||
if(req['data']['data'][i]['is_del'] == 1){
|
||||
str = '<span onclick="member_stop(this,\''+req['data']['data'][i]['id']+'\')" class="layui-btn layui-btn-normal layui-btn-mini layui-btn-disabled" title="停用">已停用</span>'
|
||||
}else{
|
||||
str = '<span onclick="member_stop(this,\''+ req['data']['data'][i]['id'] +'\')" class="layui-btn layui-btn-normal layui-btn-mini" title="启用">已启用</span>'
|
||||
}
|
||||
str_c = "<tr>"+
|
||||
'<td><input type="checkbox" name="id" value="'+req['data']['data'][i]['id']+'" lay-skin="primary"></td>'+
|
||||
'<td>'+req['data']['data'][i]['id']+'</td>'+
|
||||
'<td>'+req['data']['data'][i]['token']+'</td>'+
|
||||
'<td>'+req['data']['data'][i]['tel']+'</td>'+
|
||||
'<td>'+req['data']['data'][i]['email']+'</td>'+
|
||||
'<td>'+req['data']['data'][i]['create_time']+'</td>'+
|
||||
'<td class="td-status">'+
|
||||
str+
|
||||
'</td>'
|
||||
'</tr>'
|
||||
str_all = str_all+str_c;
|
||||
}
|
||||
$('#content').html(str_all);
|
||||
|
||||
form.render();
|
||||
if(pd == 'y'){
|
||||
$("#page").html("")
|
||||
laypage.render({
|
||||
elem: 'page',
|
||||
count: req['data']['num'], //数据总数,从服务端得到
|
||||
limit: 10,
|
||||
groups:10,
|
||||
jump: function (obj, first) {
|
||||
//首次不执行
|
||||
if (!first) {
|
||||
//obj包含了当前分页的所有参数,比如:
|
||||
console.log(obj.curr); //得到当前页,以便向服务端请求对应页的数据。
|
||||
console.log(obj.limit); //得到每页显示的条数
|
||||
page_num = obj.curr;
|
||||
// page({"page":page_num,"tt":1});
|
||||
find("n")
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
} else {
|
||||
layer.msg(req['msg'])
|
||||
}
|
||||
},
|
||||
error: function () {
|
||||
//请求出错处理
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//加载提示开启
|
||||
function load() {
|
||||
var index = layer.load(1, {
|
||||
shade: [0.1, '#fff'] //0.1透明度的白色背景
|
||||
});
|
||||
}
|
||||
// 关闭加载提示
|
||||
function c_load() {
|
||||
layer.close(layer.index)
|
||||
}
|
||||
</script>
|
||||
</html>
|
||||
|
|
@ -103,14 +103,14 @@
|
|||
</li>
|
||||
<li>
|
||||
<a href="javascript:;">
|
||||
<i class="iconfont left-nav-li" lay-tips="分类管理"></i>
|
||||
<cite>分类管理</cite>
|
||||
<i class="iconfont left-nav-li" lay-tips="APP版本管理"></i>
|
||||
<cite>APP版本管理</cite>
|
||||
<i class="iconfont nav_right"></i></a>
|
||||
<ul class="sub-menu">
|
||||
<li>
|
||||
<a onclick="xadmin.add_tab('多级分类','cate.html')">
|
||||
<a onclick="xadmin.add_tab('APP版本管理','/appversion/index')">
|
||||
<i class="iconfont"></i>
|
||||
<cite>多级分类</cite></a>
|
||||
<cite>APP版本管理</cite></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
|
@ -306,7 +306,7 @@
|
|||
</div>
|
||||
<div class="layui-tab-content">
|
||||
<div class="layui-tab-item layui-show">
|
||||
<iframe src='welcome' frameborder="0" scrolling="yes" class="x-iframe"></iframe>
|
||||
<iframe src='/admin/welcome' frameborder="0" scrolling="yes" class="x-iframe"></iframe>
|
||||
</div>
|
||||
</div>
|
||||
<div id="tab_show"></div>
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ use think\Log;
|
|||
|
||||
class Base extends Controller{
|
||||
|
||||
protected $ceshiyong_token = 'caadd1be045a65f30b92aa805f1de54a';
|
||||
protected $base_call_method = ['内部'];
|
||||
protected $token_time = 86400*3;
|
||||
protected $return_data_all = [
|
||||
|
|
@ -117,6 +118,7 @@ class Base extends Controller{
|
|||
// 判断token是否过期
|
||||
public function token_time_validate($token){
|
||||
// cache($token,time());
|
||||
// return true;
|
||||
$time = cache($token);
|
||||
// dump($time);
|
||||
if($time === false){
|
||||
|
|
@ -194,7 +196,7 @@ class Base extends Controller{
|
|||
|
||||
public function msg($data,$str=''){
|
||||
if(is_array($data)){
|
||||
return json(['code'=>0,'msg'=>'success','data'=>$data]);
|
||||
return json(['code'=>0,'msg'=>'操作成功','data'=>$data]);
|
||||
}else{
|
||||
if($str != ''){
|
||||
return json(['code'=>$data,'msg'=>$str]);
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ class Calculatebody extends Controller{
|
|||
// $result['fat_w'] = $result['fat_r'] / 100 * $data['weight'];
|
||||
$result['fat_w'] = bcmul(bcdiv($result['fat_r'],'100',20),$data['weight'],2);
|
||||
// $result['proteinval'] = $result['protein'] / 100 * $data['weight'];
|
||||
$result['proteinval'] = bcmul(bcdiv($result['protein'],'100',20),$data['weight'],3);
|
||||
$result['proteinval'] = bcmul(bcdiv($result['protein'],'100',20),$data['weight'],2);
|
||||
//肌肉量=体重-脂肪量-骨量
|
||||
// $result['muscleval'] = $result['weight'] - $result['fat_w'] - $result['bone'];
|
||||
$result['muscleval'] = bcsub(bcsub($result['weight'],$result['fat_w'],20),$result['bone'],2);
|
||||
|
|
@ -34,7 +34,7 @@ class Calculatebody extends Controller{
|
|||
$result['muscle'] = bcmul(bcdiv($result['muscleval'],$data['weight'],20),'100.0',2);
|
||||
// 水份=肌肉量-蛋白量
|
||||
// $result['water'] = $result['muscleval'] - $result['proteinval'];
|
||||
$result['water'] = bcsub($result['muscleval'],$result['proteinval'],3);
|
||||
$result['water'] = bcsub($result['muscleval'],$result['proteinval'],2);
|
||||
// $result['lbm'] = (1 - $result['fat_r'] / 100) * $data['weight'];
|
||||
$result['lbm'] = bcmul(bcsub('1',bcdiv($result['fat_r'],'100',20),20),$data['weight'],2);
|
||||
|
||||
|
|
@ -283,9 +283,9 @@ class Calculatebody extends Controller{
|
|||
// 除 bcdiv(,,20)
|
||||
if ($gender == 1){
|
||||
// $num2 = 0.015 * $weight + (2.0 - 0.00055 * $impedance) * $height / 100 - 1.15;
|
||||
$num2 = bcsub(bcadd(bcmul('0.015',$weight,20),bcdiv(bcmul(bcsub('2.0',bcmul('0.00055',$impedance,20),20),$height,20),'100.0',20),20),'1.15',1);
|
||||
$num2 = bcsub(bcadd(bcmul('0.015',$weight,20),bcdiv(bcmul(bcsub('2.0',bcmul('0.00055',$impedance,20),20),$height,20),'100.0',20),20),'1.15',2);
|
||||
// $num3 = (0.0 - (0.00115 * $impedance + 0.01)) * $weight + (49.64 - 0.031 * $impedance) * $height / 100.0 + $impedance * 0.08 + $age * 0.04 + 15.4;
|
||||
$num3 = bcsub(bcsub(bcsub(bcsub(bcmul(bcsub('0.0',bcadd(bcmul('0.00115',$impedance,20),'0.01',20),20),$weight,20),bcdiv(bcmul(bcsub('49.64',bcmul('0.031',$impedance,20)),$height,20),'100.0',20),20),bcmul($impedance,'0.08'),20),bcmul($age,'0.04'),20),'15.4',20);
|
||||
$num3 = bcsub(bcsub(bcsub(bcsub(bcmul(bcsub('0.0',bcadd(bcmul('0.00115',$impedance,20),'0.01',20),20),$weight,20),bcdiv(bcmul(bcsub('49.64',bcmul('0.031',$impedance,20)),$height,20),'100.0',20),20),bcmul($impedance,'0.08'),20),bcmul($age,'0.04'),20),'15.4',2);
|
||||
// $num4 = 1000000.0/($num*(2.688*$impedance-78.28))-(10058/$impedance)-0.22*$age+52.6;
|
||||
$num4 = bcadd(bcsub(bcsub(bcdiv('1000000.0',bcmul($num,bcsub(bcmul('2.688',$impedance,20),'78.28',20),20),20),bcdiv('10058',$impedance,20),20),bcmul('0.22',$age,20),20),'52.6',20);
|
||||
// $num5 = -930000.0 / $num / (1.966 * $impedance - 58.46) + (13176 / $impedance) - 0.06 * $age + 40.0;
|
||||
|
|
@ -295,7 +295,7 @@ class Calculatebody extends Controller{
|
|||
// $num7 = 0.895 * $num4;
|
||||
$num7 = bcmul('0.895',$num4,20);
|
||||
// $num8 = 0.8 * (100.0 - $num5 - $num4 - $num2 / $weight);
|
||||
$num8 = bcmul('0.8',bcsub(bcsub(bcsub('100.0',$num5,20),$num4,20),bcdiv($num2,$weight,20),20),1);
|
||||
$num8 = bcmul('0.8',bcsub(bcsub(bcsub('100.0',$num5,20),$num4,20),bcdiv($num2,$weight,20),20),2);
|
||||
// $num9 = 0.304 * $weight - 25.58 * $height / 100.0 + 0.131 * $age + 0.005 * $impedance + 22.0;
|
||||
$num9 = bcadd(bcadd(bcadd(bcsub(bcmul('0.304',$weight,20),bcdiv(bcmul('25.58',$height,20),'100.0',20),20),bcmul('0.131',$age,20),20),bcmul('0.005',$impedance,20),20),'22.0',0);
|
||||
// $num10 = (9.0 + 0.0015 * $impedance) * $weight + (1350.0 - 0.88 * $impedance) * $height / 100.0 + (188 / $age) + 0.748 * $impedance - 1053.0;
|
||||
|
|
@ -308,7 +308,7 @@ class Calculatebody extends Controller{
|
|||
|
||||
}else{
|
||||
// $num2 = 2.2E-05 * $impedance * $weight + (4.99 - 0.00284 * $impedance) * $height / 100.0 + 0.0012 * $impedance - 4.45;
|
||||
$num2 = bcsub(bcadd(bcadd(bcmul(bcmul('0.000022',$impedance,20),$weight,20),bcdiv(bcmul(bcsub('4.99',bcmul('0.00284',$impedance,20),20),$height,20),'100.0',20),20),bcmul('0.0012',$impedance,20),20),'4.45',1);
|
||||
$num2 = bcsub(bcadd(bcadd(bcmul(bcmul('0.000022',$impedance,20),$weight,20),bcdiv(bcmul(bcsub('4.99',bcmul('0.00284',$impedance,20),20),$height,20),'100.0',20),20),bcmul('0.0012',$impedance,20),20),'4.45',2);
|
||||
// $num3 = (0.0 - (0.00115 * $impedance + 0.01)) * $weight + (49.64 - 0.031 * $impedance) * $height / 100.0 + $impedance * 0.08 + $age * 0.04 + 6.0;
|
||||
$num3 = bcadd(bcadd(bcadd(bcadd(bcmul(bcsub('0.0',bcadd(bcmul('0.00115',$impedance,20),'0.01',20),20),$weight,20),bcdiv(bcmul(bcsub('49.64',bcmul('0.031',$impedance,20),20),$height,20),'100.0',20),20),bcmul($impedance,'0.08',20),20),bcmul($age,'0.04',20),20),'6.0',2);
|
||||
// $num4 = 1000000.0 / ($num * (2.467 * $impedance - 75.37)) - (14215 / $impedance) - 0.034 * $age + 43.2;
|
||||
|
|
@ -320,13 +320,13 @@ class Calculatebody extends Controller{
|
|||
// $num7 = 0.857 * $num4 - 0.36;
|
||||
$num7 = bcsub(bcmul('0.857',$num4,20),'0.36',20);
|
||||
// $num8 = 0.75 * (100.0 - $num5 - $num4 - $num2 / $weight);
|
||||
$num8 = bcmul('0.75',bcsub('100.0',bcsub($num5,bcsub($num4,bcdiv($num2,$weight,20),20),20),20),20);
|
||||
$num8 = bcmul('0.75',bcsub('100.0',bcsub($num5,bcsub($num4,bcdiv($num2,$weight,20),20),20),20),2);
|
||||
// $num9 = 0.304 * $weight - 25.58 * $height / 100.0 + 0.131 * $age + 0.005 * $impedance + 22.0;
|
||||
$num9 = bcadd(bcadd(bcadd(bcsub(bcmul(0.304,$weight,20),bcdiv(bcmul(25.58,$height,20),'100.0',20),20),bcmul('0.131',$age,20),20),bcmul('0.005',$impedance,20),20),'22.0',0);
|
||||
// $num10 = (0.00307 * $impedance + 1.5) * $weight + (1459.0 - 0.989 * $impedance) * $height / 100.0 + $age * 0.9 + 0.923 * $impedance - 950.0;
|
||||
$num10 = bcsub(bcadd(bcadd(bcadd(bcmul(bcadd(bcmul('0.00307',$impedance,20),'1.5',20),$weight,20),bcdiv(bcmul(bcsub('1459.0',bcmul('0.989',$impedance,20),20),$height,20),'100.0',20),20),bcmul($age,'0.9',20),20),bcmul('0.923',$impedance,20),20),'950.0',0);
|
||||
// $num11 = $age * (0.95 + 0.02 * ($num - 21.2)) + ($impedance - 500) * 0.02;
|
||||
$num11 = bcadd(bcmul($age,bcadd(0.95,bcmul('0.02',bcsub($num,'21.2',20),20),20),20),bcmul(bcsub($impedance,'500',20),'0.02',20),20);
|
||||
$num11 = bcadd(bcmul($age,bcadd(0.95,bcmul('0.02',bcsub($num,'21.2',20),20),20),20),bcmul(bcsub($impedance,'500',20),'0.02',20),0);
|
||||
|
||||
// $standard_weight = ($height-80)*0.7;
|
||||
$standard_weight = bcmul(bcsub($height,'80',20),'0.6',20);
|
||||
|
|
@ -335,11 +335,11 @@ class Calculatebody extends Controller{
|
|||
$result_data['bmi'] = $num;
|
||||
// $num2 = (($num2 > $weight * 0.15) ? ($weight * 0.15) : $num2);
|
||||
if(bccomp($num2, bcmul($weight,'0.15',20), 20) === 1){
|
||||
$num2 = bcmul($weight,'0.15',1);
|
||||
$num2 = bcmul($weight,'0.15',2);
|
||||
}
|
||||
// $result_data['bone'] = ($num2 < $weight * 0.02) ? ($weight * 0.02) : $num2;
|
||||
if(bccomp($num2, bcmul($weight,'0.02',20), 20) === -1){
|
||||
$result_data['bone'] = bcmul($weight,'0.02',1);
|
||||
$result_data['bone'] = bcmul($weight,'0.02',2);
|
||||
}else{
|
||||
$result_data['bone'] = $num2;
|
||||
}
|
||||
|
|
@ -350,7 +350,7 @@ class Calculatebody extends Controller{
|
|||
// $result_data['muscle'] = ($num3 < 15.0) ? 15.0 : $num3;
|
||||
// dump($num3);
|
||||
if(bccomp($num3, '15.0', 20) === -1){
|
||||
$result_data['muscle'] = '15.0';
|
||||
$result_data['muscle'] = '15.00';
|
||||
}else{
|
||||
$result_data['muscle'] = $num3;
|
||||
}
|
||||
|
|
@ -361,7 +361,7 @@ class Calculatebody extends Controller{
|
|||
}
|
||||
// $result_data['water'] = ($num4 < 20.0) ? 20.0 : $num4;
|
||||
if(bccomp($num4, '20.0', 20) === -1){
|
||||
$result_data['water'] = '20.0';
|
||||
$result_data['water'] = '20.00';
|
||||
}else{
|
||||
$result_data['water'] = $num4;
|
||||
}
|
||||
|
|
@ -372,7 +372,7 @@ class Calculatebody extends Controller{
|
|||
// $result_data['fat_r'] = ($num5 < 5.0) ? 5.0 : $num5;
|
||||
|
||||
if(bccomp($num5, '5.0', 20) === -1){
|
||||
$result_data['fat_r'] = '5.0';
|
||||
$result_data['fat_r'] = '5.00';
|
||||
}else{
|
||||
// $result_data['fat_r'] = $num5;
|
||||
// dump($num5);
|
||||
|
|
@ -380,7 +380,7 @@ class Calculatebody extends Controller{
|
|||
}
|
||||
// $result_data['sfr'] = $num6 <= 0 ? "0" : $num6;
|
||||
if(bccomp($num6, '0.0', 20) === -1){
|
||||
$result_data['sfr'] = '0.0';
|
||||
$result_data['sfr'] = '0.00';
|
||||
}else{
|
||||
$result_data['sfr'] = $num6;
|
||||
}
|
||||
|
|
@ -388,11 +388,11 @@ class Calculatebody extends Controller{
|
|||
$result_data['skeletalmuscle'] = substr($num7, 0, strpos($num7, ".") + 3);
|
||||
// $num8 = (($num8 > 50.0) ? 50.0 : $num8);
|
||||
if(bccomp($num8, '50.0', 20) === 1){
|
||||
$num8 = '50.0';
|
||||
$num8 = '50.00';
|
||||
}
|
||||
// $result_data['protein'] = ($num8 < 10.0) ? 10.0 : $num8;
|
||||
if(bccomp($num8, '10.0', 20) === -1){
|
||||
$result_data['protein'] = '10.0';
|
||||
$result_data['protein'] = '10.00';
|
||||
}else{
|
||||
$result_data['protein'] = $num8;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -116,7 +116,7 @@ class Card extends Base{
|
|||
|
||||
// 手动记录
|
||||
// $data = ['id'=>'2','time'=>'1991-04-20 10:10:10','height'=>'15.1','weight'=>'75.1']
|
||||
public function card_manual_recording($data = ['aud_id'=>'25','time'=>'2024-04-11 10:10:15','height'=>'175.6','weight'=>'70.2','token'=>'0dafb98a10995c98b5a33b7d59d986ca']){
|
||||
public function card_manual_recording($data = ['aud_id'=>'61','time'=>'2024-06-06 10:10:15','height'=>'175','weight'=>'68','token'=>'0dafb98a10995c98b5a33b7d59d986ca']){
|
||||
if(count(input('post.')) > 0){
|
||||
$data = input('post.');
|
||||
}else{
|
||||
|
|
@ -446,11 +446,11 @@ class Card extends Base{
|
|||
'last_update_time'=>date('Y-m-d H:i:s'),
|
||||
'age'=>$get_body_value['age'],
|
||||
'height'=>$get_body_value['身高2'],
|
||||
'height_data'=>$get_body_value['身高'],
|
||||
'height_val'=>$get_body_value['身高'],
|
||||
'weight'=>$get_body_value['体重2'],
|
||||
'weight_data'=>$get_body_value['体重'],
|
||||
'weight_val'=>$get_body_value['体重'],
|
||||
'bmi'=>$get_body_value['BMI2'],
|
||||
'bmi_data'=>$get_body_value['BMI'],
|
||||
'bmi_val'=>$get_body_value['BMI'],
|
||||
'score'=>$get_body_value['身体得分'],
|
||||
'fat_r'=> implode(',',$get_body_value['脂肪率']),
|
||||
'fat_w'=>implode(',',$get_body_value['脂肪量']),
|
||||
|
|
|
|||
|
|
@ -15,7 +15,8 @@ class Index extends Base{
|
|||
protected $default_card = ['2','6','8'];
|
||||
protected $card_data = [
|
||||
'2'=>['身体数据','body',['height'=>['身高','cm','-'],'weight'=>['体重','公斤','-'],'bmi'=>['BMI','无','-']]],
|
||||
'6'=>['跳绳数据','skip',['jump_time'=>['用时','无','--:--:--'],'jump_num'=>['本次次数','次','-'],'average_num'=>['平均成绩','个','-'],'jump_kcal'=>['卡路里','kcal','-']]],
|
||||
// '6'=>['跳绳数据','skip',['jump_time'=>['用时','无','--:--:--'],'jump_num'=>['本次次数','次','-'],'average_num'=>['平均成绩','个','-'],'jump_kcal'=>['卡路里','kcal','-']]],
|
||||
'6'=>['跳绳数据','skip',['jump_time'=>['用时','无','--:--:--'],'jump_num'=>['本次次数','次','-'],'jump_kcal'=>['卡路里','kcal','-']]],
|
||||
'8'=>['肺活量','vitalcapacity',['average'=>['本次数据','ml','-']]],
|
||||
];
|
||||
|
||||
|
|
@ -147,6 +148,10 @@ class Index extends Base{
|
|||
array_push($temporary_data,['id'=>$result[$i]['id'],'nickname'=>$result[$i]['nickname']]);
|
||||
}
|
||||
}else{
|
||||
for ($i=0; $i < count($result); $i++) {
|
||||
$result[$i]['age'] = $this->calculate_age($result[$i]['birthday']);
|
||||
// array_push($temporary_data,['id'=>$result[$i]['id'],'nickname'=>$result[$i]['nickname'],'age'=>$this->calculate_age($result[$i]['birthday'])]);
|
||||
}
|
||||
$temporary_data = $result;
|
||||
}
|
||||
return $this->msg($temporary_data);
|
||||
|
|
@ -421,6 +426,8 @@ class Index extends Base{
|
|||
'birthday' => 'require|date',
|
||||
'gender' => 'require|number|in:0,1,2',
|
||||
'grade' => 'require',
|
||||
'height' => 'require|number',
|
||||
'weight' => 'require|number',
|
||||
];
|
||||
$msg = [
|
||||
'aan_id.require' => '账号信息缺失',
|
||||
|
|
@ -428,12 +435,16 @@ class Index extends Base{
|
|||
'birthday.require' => '生日缺失',
|
||||
'gender.require' => '性别缺失',
|
||||
'grade.require' => '年级缺失',
|
||||
'height.require' => '身高缺失',
|
||||
'weight.require' => '体重缺失',
|
||||
|
||||
'aan_id.number' => '账号信息格式错误',
|
||||
'nickname.chsAlpha' => '昵称只能是只能是汉字、字母',
|
||||
'birthday.date' => '生日信息格式错误',
|
||||
'gender.number' => '性别格式错误',
|
||||
'gender.in' => '性别信息错误',
|
||||
'height.number' => '身高必须为数字',
|
||||
'weight.number' => '体重必须为数字',
|
||||
];
|
||||
$validate = new Validate($rule,$msg);
|
||||
$result = $validate->check($data);
|
||||
|
|
@ -447,6 +458,8 @@ class Index extends Base{
|
|||
$parameter['gender'] = $data['gender'];
|
||||
$parameter['grade'] = $data['grade'];
|
||||
$parameter['card_order'] = '2,6,8';
|
||||
$parameter['height'] = $data['height'];
|
||||
$parameter['weight'] = $data['weight'];
|
||||
$parameter['create_time'] = date('Y-m-d H:i:s');
|
||||
$parameter['last_update_time'] = date('Y-m-d H:i:s');
|
||||
$parameter_pd = Db::table('app_account_number')->where(['id'=>$parameter['aan_id']])->count();
|
||||
|
|
@ -468,6 +481,8 @@ class Index extends Base{
|
|||
'birthday' => 'require|date',
|
||||
'gender' => 'require|number|in:0,1,2',
|
||||
'grade' => 'require',
|
||||
'height' => 'require|number',
|
||||
'weight' => 'require|number',
|
||||
];
|
||||
$msg = [
|
||||
'id.require' => '用户信息缺失',
|
||||
|
|
@ -475,12 +490,16 @@ class Index extends Base{
|
|||
'birthday.require' => '生日缺失',
|
||||
'gender.require' => '性别缺失',
|
||||
'grade.require' => '年级缺失',
|
||||
'height.require' => '身高缺失',
|
||||
'weight.require' => '体重缺失',
|
||||
|
||||
'id.number' => '用户信息格式错误',
|
||||
'nickname.chsAlphaNum' => '昵称只能是只能是汉字、字母、数字',
|
||||
'birthday.date' => '生日信息格式错误',
|
||||
'gender.number' => '性别格式错误',
|
||||
'gender.in' => '性别信息错误',
|
||||
'height.number' => '身高必须为数字',
|
||||
'weight.number' => '体重必须为数字',
|
||||
];
|
||||
$validate = new Validate($rule,$msg);
|
||||
$result = $validate->check($data);
|
||||
|
|
@ -491,6 +510,8 @@ class Index extends Base{
|
|||
$parameter['id'] = $data['id'];
|
||||
$parameter['nickname'] = $data['nickname'];
|
||||
$parameter['birthday'] = $data['birthday'];
|
||||
$parameter['height'] = $data['height'];
|
||||
$parameter['weight'] = $data['weight'];
|
||||
$parameter['gender'] = $data['gender'];
|
||||
$parameter['grade'] = $data['grade'];
|
||||
$parameter['last_update_time'] = date('Y-m-d H:i:s');
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ use \think\Validate;
|
|||
use PHPMailer\PHPMailer\PHPMailer;
|
||||
|
||||
class Login extends Base{
|
||||
protected $code_time = 3600;
|
||||
protected $code_time = 60;
|
||||
protected $default_head_pic = 'http://tc.pcxbc.com/tsf/head_pic.jpg';
|
||||
|
||||
|
||||
|
|
@ -304,7 +304,7 @@ class Login extends Base{
|
|||
|
||||
public function check_code($data = 18530934717 , $code = 123456){
|
||||
// 默认验证码正确
|
||||
return true;
|
||||
// return true;
|
||||
// dump($data);
|
||||
// dump(cache($data));
|
||||
// die;
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ class Skip extends Base{
|
|||
################################################################接口################################################################
|
||||
################################################################接口################################################################
|
||||
// 手动记录
|
||||
public function skip_manual_recording($data = ['aud_id'=>'26','r_time'=>'2024-05-25 10:10:15','num'=>'582','time_m'=>'10','time_s'=>'00','type'=>'free','token'=>'0dafb98a10995c98b5a33b7d59d986ca']){
|
||||
public function skip_manual_recording($data = ['aud_id'=>'58','r_time'=>'2024-05-25 10:10:15','num'=>'582','time_m'=>'10','time_s'=>'00','type'=>'free','token'=>'caadd1be045a65f30b92aa805f1de54a']){
|
||||
if(count(input('post.')) > 0){
|
||||
$data = input('post.');
|
||||
}
|
||||
|
|
@ -34,6 +34,10 @@ class Skip extends Base{
|
|||
if(!array_key_exists('aud_id', $data) || !array_key_exists('r_time', $data) || !array_key_exists('num', $data) || !array_key_exists('time_m', $data) || !array_key_exists('time_s', $data) || !array_key_exists('type', $data) || !array_key_exists('token', $data)){
|
||||
return $this->msg(10001);
|
||||
}
|
||||
if(intval($data['num'] != $data['num']) || intval($data['time_m'] != $data['time_m']) || intval($data['time_s'] != $data['time_s'])){
|
||||
return $this->msg(10005);
|
||||
}
|
||||
// cache($data['token'],time());
|
||||
if($this->token_time_validate($data['token']) === false){
|
||||
return $this->msg(20001);
|
||||
}
|
||||
|
|
@ -44,7 +48,9 @@ class Skip extends Base{
|
|||
if(abs($data['time_s']) >= 60){
|
||||
return $this->msg(10005);
|
||||
}
|
||||
|
||||
// cache($data['token']);
|
||||
// dump($data);
|
||||
// die;
|
||||
return $this->skip_manual_recording_action($data);
|
||||
}
|
||||
// 今日数据
|
||||
|
|
@ -64,7 +70,7 @@ class Skip extends Base{
|
|||
return $this->skip_today_data_action($data);
|
||||
}
|
||||
// 曲线
|
||||
public function skip_curve_chart($data = ['aud_id'=>'26','time'=>'2024-05-25','token'=>'0dafb98a10995c98b5a33b7d59d986ca']){
|
||||
public function skip_curve_chart($data = ['aud_id'=>'26','time'=>'2024/05/25','token'=>'0dafb98a10995c98b5a33b7d59d986ca']){
|
||||
if(count(input('post.')) > 0){
|
||||
$data = input('post.');
|
||||
}
|
||||
|
|
@ -103,22 +109,29 @@ class Skip extends Base{
|
|||
public function skip_manual_recording_action($data){
|
||||
// 分秒转换为秒
|
||||
$data['time'] = abs($data['time_m'])*60+abs($data['time_s']);
|
||||
$last_data_body = Db::table('app_card_body_data')->where(['aud_id'=>$data['aud_id']])->order('record_time desc,id desc')->field('id,weight,record_time')->find();
|
||||
$last_data_body = Db::table('app_card_body_data')->where(['aud_id'=>$data['aud_id']])->order('record_time desc,id desc')->field('id,weight_val,record_time')->find();
|
||||
if(!$last_data_body){
|
||||
return $this->msg(10004);
|
||||
$last_data_body = Db::table('app_user_data')->where(['id'=>$data['aud_id']])->field('id,weight as weight_val')->find();
|
||||
if(!$last_data_body){
|
||||
return $this->msg(10004);
|
||||
}
|
||||
}
|
||||
$data_set = [
|
||||
'create_time'=>date('Y-m-d H:i:s'),
|
||||
'last_update_time'=>date('Y-m-d H:i:s'),
|
||||
'jump_num'=>$data['num'],
|
||||
'jump_time'=>$data['time'],
|
||||
'jump_kcal'=>$this->skip_kcal_calculate($data['num'],$data['time'],$last_data_body['weight'])['totalCalories'],
|
||||
'average_num'=>$this->skip_kcal_calculate($data['num'],$data['time'],$last_data_body['weight'])['averageAchievement'],
|
||||
'average_kcal'=>$this->skip_kcal_calculate($data['num'],$data['time'],$last_data_body['weight'])['caloriesPerMinute'],
|
||||
'jump_kcal'=>$this->skip_kcal_calculate($data['num'],$data['time'],$last_data_body['weight_val'])['totalCalories'],
|
||||
'average_num'=>$this->skip_kcal_calculate($data['num'],$data['time'],$last_data_body['weight_val'])['averageAchievement'],
|
||||
'average_kcal'=>$this->skip_kcal_calculate($data['num'],$data['time'],$last_data_body['weight_val'])['caloriesPerMinute'],
|
||||
'aud_id'=>$data['aud_id'],
|
||||
'record_time'=>$data['r_time'],
|
||||
'jump_type'=>$data['type']
|
||||
];
|
||||
// dump($data);
|
||||
// dump($last_data_body['weight_val']);
|
||||
// dump($data_set);
|
||||
// die;
|
||||
$last_data_body = Db::table('app_card_skip_data')->insert($data_set);
|
||||
$result = [
|
||||
'today_jump_num'=>0,
|
||||
|
|
@ -180,7 +193,7 @@ class Skip extends Base{
|
|||
|
||||
|
||||
$audid = $data['aud_id'];
|
||||
$timeData = explode('-', $data['time']);
|
||||
$timeData = explode('/', $data['time']);
|
||||
|
||||
// 根据$timeData的长度构建不同的查询条件
|
||||
$map = ['aud_id' => $audid];
|
||||
|
|
|
|||
|
|
@ -16,12 +16,12 @@ class Sportstesting extends Base{
|
|||
protected $page_num = 10;
|
||||
|
||||
protected $city_data_rule_name = [
|
||||
'xc'=>'现场',
|
||||
'xc'=>'现场类项目',
|
||||
'xc_1'=>'第一类:素质项目Ⅰ(8分)',
|
||||
'xc_2'=>'第二类:素质项目Ⅱ(8分)',
|
||||
'xc_3'=>'第三类:运动能力Ⅰ(8分)',
|
||||
'xc_4'=>'第四类:运动能力Ⅱ(6分)',
|
||||
'gc'=>'过程',
|
||||
'gc'=>'过程类项目',
|
||||
'gc_8_m'=>'8年级体质健康统测(10分)',
|
||||
'gc_8_r'=>'8年级体育与健康知识机考(10分)',
|
||||
];
|
||||
|
|
@ -799,7 +799,7 @@ class Sportstesting extends Base{
|
|||
$user_data = Db::table('app_user_data')->where(['id'=>$data['aud_id']])->field('id,grade')->find();
|
||||
$result['list'] = [
|
||||
[
|
||||
'name'=>'现场',
|
||||
'name'=>'现场类项目',
|
||||
'key'=>'xc',
|
||||
'list'=>[
|
||||
['name'=>'第一类:素质项目Ⅰ(8分)','key'=>'xc_1','list'=>[
|
||||
|
|
@ -811,7 +811,7 @@ class Sportstesting extends Base{
|
|||
],
|
||||
],
|
||||
[
|
||||
'name'=>'过程',
|
||||
'name'=>'过程类项目',
|
||||
'key'=>'gc',
|
||||
'list'=>[
|
||||
['name'=>'8年级体质健康统测(10分)','key'=>'gc_8_m','list'=>[
|
||||
|
|
|
|||
|
|
@ -13,8 +13,8 @@ class Vitalcapacity extends Base{
|
|||
protected $standard = [
|
||||
['min_val'=>'90','max_val'=>'100','text'=>'优秀','color'=>'#6492F6'],
|
||||
['min_val'=>'80','max_val'=>'89','text'=>'良好','color'=>'#5AD06D'],
|
||||
['min_val'=>'66','max_val'=>'79','text'=>'及格','color'=>'#FFAB00'],
|
||||
['min_val'=>'10','max_val'=>'65','text'=>'不及格','color'=>'#FF5656'],
|
||||
['min_val'=>'60','max_val'=>'79','text'=>'及格','color'=>'#FFAB00'],
|
||||
['min_val'=>'10','max_val'=>'59','text'=>'不及格','color'=>'#FF5656'],
|
||||
['min_val'=>'0','max_val'=>'9','text'=>'无效','color'=>'#FF5656'],
|
||||
];
|
||||
|
||||
|
|
@ -36,7 +36,7 @@ class Vitalcapacity extends Base{
|
|||
################################################################接口################################################################
|
||||
|
||||
// 数据记录
|
||||
public function vitalcapacity_save_record_data($data = ['aud_id'=>'25','one'=>'1500','two'=>'1200','three'=>'1456','time'=>'2024-05-25 10:10:15','token'=>'0dafb98a10995c98b5a33b7d59d986ca']){
|
||||
public function vitalcapacity_save_record_data($data = ['aud_id'=>'61','one'=>'1500','two'=>'3600','three'=>'2123','time'=>'2024-05-25 10:10:15','token'=>'0dafb98a10995c98b5a33b7d59d986ca']){
|
||||
if(count(input('post.')) > 0){
|
||||
$data = input('post.');
|
||||
}
|
||||
|
|
@ -53,7 +53,7 @@ class Vitalcapacity extends Base{
|
|||
return $this->vitalcapacity_save_record_data_action($data);
|
||||
}
|
||||
// 数据报告
|
||||
public function vitalcapacity_data_report($data = ['aud_id'=>'25','token'=>'0dafb98a10995c98b5a33b7d59d986ca']){
|
||||
public function vitalcapacity_data_report($data = ['aud_id'=>'58','token'=>'0dafb98a10995c98b5a33b7d59d986ca']){
|
||||
if(count(input('post.')) > 0){
|
||||
$data = input('post.');
|
||||
}
|
||||
|
|
@ -67,7 +67,7 @@ class Vitalcapacity extends Base{
|
|||
return $this->vitalcapacity_data_report_action($data);
|
||||
}
|
||||
// 曲线
|
||||
public function vitalcapacity_curve_chart($data = ['aud_id'=>'25','time'=>'2024-05-25','token'=>'0dafb98a10995c98b5a33b7d59d986ca']){
|
||||
public function vitalcapacity_curve_chart($data = ['aud_id'=>'60','time'=>'2024','token'=>'0dafb98a10995c98b5a33b7d59d986ca']){
|
||||
if(count(input('post.')) > 0){
|
||||
$data = input('post.');
|
||||
}
|
||||
|
|
@ -99,19 +99,18 @@ class Vitalcapacity extends Base{
|
|||
$user_msg = Db::name('app_user_data')->where(['id'=>$data['aud_id']])->field('grade,gender')->find();
|
||||
if($user_msg){
|
||||
$achievement_judge_data = $this->vitalcapacity_achievement_judge(['average'=>$temporary_arr['average'],'grade'=>$user_msg['grade'],'gender'=>$user_msg['gender']]);
|
||||
|
||||
$temporary_arr['score'] = $achievement_judge_data['score'].','.$achievement_judge_data['level'].','.$this->color[$achievement_judge_data['level']];
|
||||
$temporary_arr['score_val'] = $achievement_judge_data['score'];
|
||||
}else{
|
||||
return $this->msg(10004);
|
||||
}
|
||||
|
||||
$result = Db::table('app_card_vitalcapacity_data')->insert($temporary_arr);
|
||||
if($result){
|
||||
$time = $result[0]['record_time'];
|
||||
$time = strtotime($time);
|
||||
$time = date('Y年m月d日 H:i:s', $time);
|
||||
|
||||
return $this->msg(['average'=>$temporary_arr['average'].'ml','level'=>$achievement_judge_data['level'],'time'=>$time,'list'=>$this->standard0,'offset'=>$temporary_arr['score_val']]);
|
||||
return $this->msg(['average'=>$temporary_arr['average'].'ml','level'=>$achievement_judge_data['level'],'time'=>$time,'list'=>$this->standard0,'offset'=>$this->vitalcapacity_standard_interval($temporary_arr['score_val'])]);
|
||||
}else{
|
||||
return $this->msg(10002);
|
||||
}
|
||||
|
|
@ -126,7 +125,9 @@ class Vitalcapacity extends Base{
|
|||
$time = strtotime($time);
|
||||
$time = date('Y年m月d日 H:i:s', $time);
|
||||
$o_l = explode(',',$result[0]['score']);
|
||||
return $this->msg(['average'=>$result[0]['average'].'ml','level'=>$o_l[1],'time'=>$time,'list'=>$this->standard0,'offset'=>$o_l[0]]);
|
||||
// dump($o_l);
|
||||
// $this->vitalcapacity_standard_interval($o_l[0]);
|
||||
return $this->msg(['average'=>$result[0]['average'].'ml','level'=>$o_l[1],'time'=>$time,'list'=>$this->standard0,'offset'=>$this->vitalcapacity_standard_interval($o_l[0])]);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -134,7 +135,7 @@ class Vitalcapacity extends Base{
|
|||
################################################################vitalcapacity_save_record_data
|
||||
public function vitalcapacity_curve_chart_action($data){
|
||||
$audid = $data['aud_id'];
|
||||
$timeData = explode('-', $data['time']);
|
||||
$timeData = explode('/', $data['time']);
|
||||
|
||||
// 根据$timeData的长度构建不同的查询条件
|
||||
$map = ['aud_id' => $audid];
|
||||
|
|
@ -152,6 +153,9 @@ class Vitalcapacity extends Base{
|
|||
return $this->msg(10005); // 无效的时间数据格式
|
||||
}
|
||||
|
||||
// dump($map);
|
||||
// die;
|
||||
|
||||
// 使用查询构造器进行查询
|
||||
$result = Db::name('app_card_vitalcapacity_data')->where($map)->field('one_val,two_val,three_val,average_val,score_val,aud_id,record_time,DATEPART(hour, record_time) AS hour,DATEPART(day, record_time) AS day,DATEPART(month, record_time) AS month')->order('record_time')->select();
|
||||
|
||||
|
|
@ -164,7 +168,7 @@ class Vitalcapacity extends Base{
|
|||
$key_condition = 'month';
|
||||
}
|
||||
// dump($map);
|
||||
// dump($result);
|
||||
// dump($key_condition);
|
||||
// die;
|
||||
foreach ($this->curve_data_format as $key => $value) {
|
||||
$temporary_arr['title'] = $value[0];
|
||||
|
|
@ -174,6 +178,7 @@ class Vitalcapacity extends Base{
|
|||
$temporary_arr['line']['series'][0]['name'] = $value[0];
|
||||
$temporary_arr['line']['series'][0]['data'] = [];
|
||||
foreach ($result as $k => $v) {
|
||||
// dump($key_condition);
|
||||
if($key_condition == 'hour'){
|
||||
if(in_array($result[$k][$key_condition].'时',$temporary_arr['line']['categories'])){
|
||||
$num = array_search($result[$k][$key_condition].'时', $temporary_arr['line']['categories']);
|
||||
|
|
@ -182,7 +187,7 @@ class Vitalcapacity extends Base{
|
|||
array_push($temporary_arr['line']['categories'],$result[$k][$key_condition].'时');
|
||||
array_push($temporary_arr['line']['series'][0]['data'],$result[$k][$key]);
|
||||
}
|
||||
}else if($key_condition = 'day'){
|
||||
}else if($key_condition == 'day'){
|
||||
if(in_array($result[$k]['month'].'/'.$result[$k][$key_condition],$temporary_arr['line']['categories'])){
|
||||
$num = array_search($result[$k]['month'].'/'.$result[$k][$key_condition], $temporary_arr['line']['categories']);
|
||||
$temporary_arr['line']['series'][0]['data'][$num] = bcadd($temporary_arr['line']['series'][0]['data'][$num],$result[$k][$key],2);
|
||||
|
|
@ -190,7 +195,6 @@ class Vitalcapacity extends Base{
|
|||
array_push($temporary_arr['line']['categories'],$result[$k]['month'].'/'.$result[$k][$key_condition]);
|
||||
array_push($temporary_arr['line']['series'][0]['data'],$result[$k][$key]);
|
||||
}
|
||||
|
||||
}else{
|
||||
if(in_array($result[$k]['month'].'月',$temporary_arr['line']['categories'])){
|
||||
$num = array_search($result[$k]['month'].'月', $temporary_arr['line']['categories']);
|
||||
|
|
@ -215,7 +219,10 @@ class Vitalcapacity extends Base{
|
|||
|
||||
################################################################肺活量数据卡片接口################################################################
|
||||
################################################################肺活量数据卡片接口################################################################
|
||||
|
||||
// 加 bcadd(,,20)
|
||||
// 减 bcsub(,,20)
|
||||
// 乘 bcmul(,,20)
|
||||
// 除 bcdiv(,,20)
|
||||
// 肺活量成绩判断
|
||||
public function vitalcapacity_achievement_judge($data){
|
||||
$str = "sex = ".$data['gender']." and ".$data['grade']." <= ".$data['average'];
|
||||
|
|
@ -228,6 +235,33 @@ class Vitalcapacity extends Base{
|
|||
// 肺活量判断区间
|
||||
public function vitalcapacity_standard_interval($data){
|
||||
// 缓存一周
|
||||
$temporary_qj = $this->standard;
|
||||
$max = 0;
|
||||
$min = 0;
|
||||
$num = 0;
|
||||
foreach ($temporary_qj as $key => $value) {
|
||||
if($data >= $value['min_val'] && $data <= $value['max_val']){
|
||||
$max = $value['max_val'];
|
||||
$min = $value['min_val'];
|
||||
$num = $key;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
$num = count($temporary_qj)-1-$num;
|
||||
$temporary_num = bcmul(bcdiv(bcsub($data,$min,20),bcsub($max,$min,20),2),bcdiv(100,count($temporary_qj),2),2);
|
||||
$result = bcadd(bcmul(bcdiv(100,count($temporary_qj),2),$num,2),$temporary_num,2);
|
||||
// dump($data);
|
||||
// dump($num);
|
||||
// dump($result);
|
||||
// dump($temporary_num);
|
||||
// dump(bcdiv(100,count($temporary_qj),2));
|
||||
// dump($temporary_num);
|
||||
// dump($temporary_qj);
|
||||
return $result;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,6 +26,14 @@ Route::any('/admin/login', 'admin/login/login');
|
|||
Route::post('/admin/login_action', 'admin/login/login_action');
|
||||
// 管理后台首页
|
||||
Route::any('/admin/index', 'admin/index/index');
|
||||
Route::any('/admin/welcome', 'admin/index/welcome');
|
||||
|
||||
// APP版本管理
|
||||
Route::any('/appversion/index', 'admin/appversion/index');
|
||||
Route::any('/appversion/app_add', 'admin/appversion/app_add');
|
||||
Route::any('/appversion/app_add_action', 'admin/appversion/app_add_action');
|
||||
|
||||
|
||||
// // Route::get('/admin/welcome', 'admin/index/welcome');
|
||||
// // // APP账号角色管理
|
||||
// // // APP账号数据列表
|
||||
|
|
@ -133,17 +141,6 @@ Route::any('/update_my_password', 'app/myinformation/update_my_password');
|
|||
// Route::any('/vitalcapacity_data_report', 'app/sportstesting/vitalcapacity_data_report');
|
||||
// // 曲线
|
||||
// Route::any('/vitalcapacity_curve_chart', 'app/sportstesting/vitalcapacity_curve_chart');
|
||||
// Route::any('/skip_device_check', 'app/skip/skip_device_check');
|
||||
// Route::any('/skip_device_check', 'app/skip/skip_device_check');
|
||||
// Route::any('/skip_device_check', 'app/skip/skip_device_check');
|
||||
// Route::any('/skip_device_check', 'app/skip/skip_device_check');
|
||||
// Route::any('/skip_device_check', 'app/skip/skip_device_check');
|
||||
// Route::any('/skip_device_check', 'app/skip/skip_device_check');
|
||||
// Route::any('/skip_device_check', 'app/skip/skip_device_check');
|
||||
// Route::any('/skip_device_check', 'app/skip/skip_device_check');
|
||||
// Route::any('/skip_device_check', 'app/skip/skip_device_check');
|
||||
// Route::any('/skip_device_check', 'app/skip/skip_device_check');
|
||||
// Route::any('/skip_device_check', 'app/skip/skip_device_check');
|
||||
|
||||
// // ################################################################其它测试################################################################
|
||||
// // ################################################################其它测试################################################################
|
||||
|
|
@ -155,6 +152,8 @@ Route::any('/update_my_password', 'app/myinformation/update_my_password');
|
|||
|
||||
Route::any('/wuyong', 'app/sportstesting/aaaaaaaaaaaaaaa');
|
||||
|
||||
|
||||
// Route::any('/app_update_file/*', 'app/sportstesting/aaaaaaaaaaaaaaa');
|
||||
// 处理404错误 z
|
||||
Route::miss(function(){
|
||||
return '404 Not Found(out)';
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
|
|
@ -74,6 +74,7 @@
|
|||
* @return {[type]} [description]
|
||||
*/
|
||||
Xadmin.prototype.open = function (title,url,w,h,full) {
|
||||
// console.log(title)
|
||||
if (title == null || title == '') {
|
||||
var title=false;
|
||||
};
|
||||
|
|
@ -86,9 +87,10 @@
|
|||
if (h == null || h == '') {
|
||||
var h=($(window).height() - 50);
|
||||
};
|
||||
// console.log(w+'======='+h)
|
||||
var index = layer.open({
|
||||
type: 2,
|
||||
area: [w+'px', h +'px'],
|
||||
area: [w, h],
|
||||
fix: false, //不固定
|
||||
maxmin: true,
|
||||
shadeClose: true,
|
||||
|
|
|
|||
Loading…
Reference in New Issue