fix:前台教师详情接口修改、TOOL类公共方法上下数据方法修改

This commit is contained in:
xjh 2023-05-10 10:48:46 +08:00
parent eb3d245509
commit 29c3238e85
2 changed files with 39 additions and 10 deletions

View File

@ -76,7 +76,9 @@ class Teachers extends BaseController
{ {
$params = $request->param(); $params = $request->param();
$this->validate($params, ['teacher_id|教师id' => 'require']); $this->validate($params, [
'teacher_id|教师id' => 'require'
]);
$find = ModelTeachers::field([ $find = ModelTeachers::field([
'a.teacher_id', 'a.teacher_id',
@ -87,6 +89,7 @@ class Teachers extends BaseController
'b.subject_name', 'b.subject_name',
'a.teacher_content', 'a.teacher_content',
'a.teacher_intro', 'a.teacher_intro',
'a.teacher_order',
]) ])
->alias('a') ->alias('a')
->leftjoin('subject b', 'a.subject_guid = b.subject_guid') ->leftjoin('subject b', 'a.subject_guid = b.subject_guid')
@ -95,6 +98,19 @@ class Teachers extends BaseController
->where('teacher_id', $params['teacher_id']) ->where('teacher_id', $params['teacher_id'])
->find(); ->find();
return msg(0, '获取教师详情成功!', ['data' => $find]); $last_next = Tool::getLastNextData(
ModelTeachers::class,
$find->teacher_order,
[
'field' => ['teacher_id', 'teacher_name'],
'extraWhere' => [['subject_guid', '=', $find->subject_guid]],
]
);
return msg(0, '获取教师详情成功!', [
'data' => $find,
'last' => $last_next[0],
'next' => $last_next[1],
]);
} }
} }

View File

@ -314,25 +314,38 @@ class Tool
* 上下个数据返回 * 上下个数据返回
* *
* @author xjh * @author xjh
* @param \think\Model $model 模型层对象 * @param string $model 模型层命名空间地址
* @param array $sortField 排序字段信息[排序字段字段名,当前排序值] * @param int|array $sort_field_info 排序字段信息 :当前排序值(排序字段默认走模型层定义好的) | [排序字段字段名,当前排序值]
* @param array $extends 扩展 * @param array $extends 扩展
* @param array $extends["field"] 数据结果集标识要返回的字段(默认全部字段返回) * @param array $extends["field"] 数据结果集标识要返回的字段(默认全部字段返回)
* @param string $extends["type"] 返回类型 all(默认):[上个数据,下个数据] | last:上个数据 | next:下个数据 * @param string $extends["type"] 返回类型 all(默认):[上个数据,下个数据] | last:上个数据 | next:下个数据
* @param array $extends["extraWhere"] 额外查询条件(批量混合查询格式: [ ['user_name','=','name'],... ] * @param array $extends["extraWhere"] 额外查询条件(批量混合查询格式: [ ['user_name','=','name'],... ]
* @return string|array * @return string|array
*/ */
public static function getLastNextData(\think\Model $model, array $sortField, array $extends) public static function getLastNextData(string $model, $sort_field_info, array $extends =[])
{ {
//模型对象初始化
$model = new $model();
//排序字段信息初始化
$order_field_name = null;
$order_field_val = null;
if (is_array($sort_field_info)) {
$order_field_name = $sort_field_info[0];
$order_field_val = $sort_field_info[1];
} else if (is_int($sort_field_info)) {
if (!isset($model->order_field)) {
throwErrorMsg(__METHOD__ . "若排序字段信息为字符串,则必须要在模型层定义排序字段");
}
$order_field_name = $model->order_field;
$order_field_val = $sort_field_info;
}
//非必传参数初始化 //非必传参数初始化
$extra_where = isset($extends['extraWhere']) ? $extends['extraWhere'] : []; $extra_where = isset($extends['extraWhere']) ? $extends['extraWhere'] : [];
$field = isset($extends['field']) ? $extends['field'] : null; $field = isset($extends['field']) ? $extends['field'] : null;
$type = isset($extends['type']) ? $extends['type'] : 'all'; $type = isset($extends['type']) ? $extends['type'] : 'all';
// 排序字段名
$order_field_name = $sortField[0];
// 排序字段当前值
$order_field_val = $sortField[1];
//闭包查询函数 //闭包查询函数
$query = function ($op) use ($model, $order_field_name, $order_field_val, $field, $extra_where) { $query = function ($op) use ($model, $order_field_name, $order_field_val, $field, $extra_where) {
@ -340,11 +353,11 @@ class Tool
if ($field) $model = $model->field($field); if ($field) $model = $model->field($field);
return $model->where($order_field_name, $op, $order_field_val) return $model->where($order_field_name, $op, $order_field_val)
->where($extra_where) ->where($extra_where)
->limit(1)
->order($order_field_name, $order) ->order($order_field_name, $order)
->find(); ->find();
}; };
//获取指定类型数据
switch ($type) { switch ($type) {
case 'all': case 'all':
return [$query('<'), $query('>')]; return [$query('<'), $query('>')];