修复内容

This commit is contained in:
2026-01-16 18:26:15 +08:00
parent daae84b827
commit 41ad75af08
4 changed files with 81 additions and 41 deletions

View File

@@ -22,48 +22,47 @@ class Calendar extends ApiBase
$startDate = $month . '-01';
$endDate = date('Y-m-t', strtotime($startDate)); // 获取该月最后一天
// 查询该月份的所有服务数据
// 查询该月份的所有服务数据,关联商品表和员工表
$service = Db::name('order_exe')
->where('date', '>=', $startDate)
->where('date', '<=', $endDate)
->where('abnormal', 0)
->order('date asc, addtime asc')
->alias('oe')
->join('goods g', 'oe.goods_id = g.id', 'LEFT')
->join('staff s', 'oe.staff_id = s.id', 'LEFT')
->where('oe.date', '>=', $startDate)
->where('oe.date', '<=', $endDate)
->where('oe.abnormal', 0)
->where('s.onwork', 1)
->where('s.leave', 1)
->where('oe.staff_id', '<>', null)
->field('oe.date,oe.addtime,oe.start_time,oe.timeout,oe.xq,oe.staff_id,s.name as staff_name,g.name as goods_name')
->order('oe.date asc, oe.addtime asc')
->select();
$serviceDate = [];
if ($service) {
//查询到有数据,就去找服务人员
foreach ($service as $v) {
if ($v['staff_id'] != null) {
$staffName = Db::name('staff')->where('id', $v['staff_id'])
->where('onwork', 1)
->where('leave', 1)
->find();
if ($staffName){
// 处理服务时间
$timeRange = '';
if (!empty($v['start_time']) && !empty($v['timeout'])) {
// 判断是否为时间戳(数字)
$startTimestamp = is_numeric($v['start_time']) ? $v['start_time'] : strtotime($v['start_time']);
$timeoutTimestamp = is_numeric($v['timeout']) ? $v['timeout'] : strtotime($v['timeout']);
$startTime = date('H:i', $startTimestamp);
$timeoutTime = date('H:i', $timeoutTimestamp);
$timeRange = $startTime . '-' . $timeoutTime;
} elseif (!empty($v['start_time'])) {
$startTimestamp = is_numeric($v['start_time']) ? $v['start_time'] : strtotime($v['start_time']);
$startTime = date('H:i', $startTimestamp);
$timeRange = $startTime;
}
$serviceDate[] = [
'date' => $v['date'],
'staff_name' => $staffName['name'],
'addtime' => $v['addtime'] == 1 ? '上午' : ($v['addtime'] == 2 ? '下午' : ''), //1表示上午2表示下午
'serviceTime' => $timeRange,
'xq' => $v['xq'] ?? $this->getChineseWeekDay($v['date']), // 如果没有xq字段则根据日期计算
];
}
// 处理服务时间
$timeRange = '';
if (!empty($v['start_time']) && !empty($v['timeout'])) {
// 判断是否为时间戳(数字)
$startTimestamp = is_numeric($v['start_time']) ? $v['start_time'] : strtotime($v['start_time']);
$timeoutTimestamp = is_numeric($v['timeout']) ? $v['timeout'] : strtotime($v['timeout']);
$startTime = date('H:i', $startTimestamp);
$timeoutTime = date('H:i', $timeoutTimestamp);
$timeRange = $startTime . '-' . $timeoutTime;
} elseif (!empty($v['start_time'])) {
$startTimestamp = is_numeric($v['start_time']) ? $v['start_time'] : strtotime($v['start_time']);
$startTime = date('H:i', $startTimestamp);
$timeRange = $startTime;
}
$serviceDate[] = [
'date' => $v['date'],
'staff_name' => $v['staff_name'] ?? '',
'goods_name' => $v['goods_name'] ?? '',
'addtime' => $v['addtime'] == 1 ? '上午' : ($v['addtime'] == 2 ? '下午' : ''), //1表示上午2表示下午
'serviceTime' => $timeRange,
'xq' => $v['xq'] ?? $this->getChineseWeekDay($v['date']), // 如果没有xq字段则根据日期计算
];
}
}
return $this->_success("成功", $serviceDate);

View File

@@ -2,7 +2,8 @@
namespace app\api\controller;
use app\api\logic\StaffgoodsLogic;
use app\common\server\UrlServer;
use app\api\model\{Orderexe};
use app\api\model\OrderEvaluate;
use app\api\model\Orderexe;
use think\Db;
class Staffgoods extends ApiBase
@@ -412,17 +413,33 @@ class Staffgoods extends ApiBase
if (!empty($zorderId)) {
$where['order_id'] = $zorderId;
}
$lists = Db::name('orderexe_evaluate')
$lists = OrderEvaluate::with(['orderexe' => function ($query) {
$query->field('id,goods_id');
}, 'orderexe.goods'])
->where($where)
->order('id desc')
->paginate(10);
// 获取 items 并修改
$items = $lists->items();
foreach ($items as $k => $v) {
$items[$k]['create_time'] = date('Y-m', $v['create_time']);
$dataArray = [];
if (is_array($items) && count($items) > 0) {
foreach ($items as $v) {
$dataArray[] = [
'id' => $v['id'],
'content' => $v['content'],
'create_time' => date('Y-m-d', $v['create_time']),
'eceives' => $v['eceives'],
'eceivesd' => $v['eceivesd'],
'score' => $v['score'],
'goods_name' => $v['orderexe']['goods']['name'],
'goods_image' => $v['orderexe']['goods']['image'],
'min_price' => $v['orderexe']['goods']['min_price'],
];
}
}
$lists->items($items);
$this->_success('获取数据成功', $lists);
$this->_success('获取数据成功', $dataArray);
}
//员工的工资单

View File

@@ -0,0 +1,17 @@
<?php
namespace app\api\model;
use think\Model;
use think\model\relation\HasOne;
class OrderEvaluate extends Model
{
protected $name = 'orderexe_evaluate';
//关联子订单
public function orderexe():HasOne
{
return $this->hasOne('Orderexe','id','order_id');
}
}

View File

@@ -97,6 +97,13 @@ class Orderexe extends Model
return $this->hasMany('order_goods', 'order_id', 'id');
}
//关联商品
public function goods()
{
return $this->belongsTo('goods', 'goods_id', 'id')
->field('id,name,image,min_price');
}
public function getGoodsCountAttr($value, $data)
{