From 7fafb16dc56f7180e1b8228ddd9330fea7f1e40e Mon Sep 17 00:00:00 2001
From: "1213317725@qq.com" <1213317725@qq.com>
Date: Thu, 20 Mar 2025 10:42:17 +0800
Subject: [PATCH] 1
---
admin/components.d.ts | 1 +
.../zhjw/views/feedback/feedback_edit.vue | 2 +-
.../addon/zhjw/views/orders/orders_edit.vue | 20 ++++++--
.../addon/shop/app/lang/zh-cn/validate.php | 3 ++
.../app/adminapi/controller/orders/Orders.php | 18 +++----
.../zhjw/app/validate/campuses/Campuses.php | 4 +-
.../zhjw/app/validate/classes/Classes.php | 4 +-
.../zhjw/app/validate/courses/Courses.php | 4 +-
.../addon/zhjw/app/validate/staff/Staff.php | 5 +-
.../addon/zhjw/app/validate/venues/Venues.php | 4 +-
niucloud/app/api/controller/member/Member.php | 4 ++
niucloud/app/api/route/member.php | 2 +
.../app/service/api/member/MemberService.php | 48 +++++++++++++++++++
13 files changed, 94 insertions(+), 25 deletions(-)
diff --git a/admin/components.d.ts b/admin/components.d.ts
index 27050e47..c7571e6b 100644
--- a/admin/components.d.ts
+++ b/admin/components.d.ts
@@ -17,6 +17,7 @@ declare module '@vue/runtime-core' {
ElButton: typeof import('element-plus/es')['ElButton']
ElCalendar: typeof import('element-plus/es')['ElCalendar']
ElCard: typeof import('element-plus/es')['ElCard']
+ ElCascader: typeof import('element-plus/es')['ElCascader']
ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup']
ElCol: typeof import('element-plus/es')['ElCol']
diff --git a/admin/src/addon/zhjw/views/feedback/feedback_edit.vue b/admin/src/addon/zhjw/views/feedback/feedback_edit.vue
index 0afbc931..8e788403 100644
--- a/admin/src/addon/zhjw/views/feedback/feedback_edit.vue
+++ b/admin/src/addon/zhjw/views/feedback/feedback_edit.vue
@@ -55,7 +55,7 @@ import { useDictionary } from '@/app/api/dict'
import type { FormInstance } from 'element-plus'
import { getFeedbackInfo,addFeedback,editFeedback, getWithStudentsList } from '@/addon/zhjw/api/feedback';
import { useRoute } from 'vue-router'
-
+import { img } from '@/utils/common'
const route = useRoute()
const id:number = parseInt(route.query.id);
const loading = ref(false)
diff --git a/admin/src/addon/zhjw/views/orders/orders_edit.vue b/admin/src/addon/zhjw/views/orders/orders_edit.vue
index 46b2f883..8bcd4364 100644
--- a/admin/src/addon/zhjw/views/orders/orders_edit.vue
+++ b/admin/src/addon/zhjw/views/orders/orders_edit.vue
@@ -35,7 +35,7 @@
-
+
@@ -188,10 +188,20 @@ const formRules = computed(() => {
]
,
- amount: [
- { required: true, message: t('amountPlaceholder'), trigger: 'blur' },
- { validator: (rule: any, value: string, callback: any) => { if (value && !/^\d{0.01,999999}$/.test(value)) { callback(new Error(t('generateBetween')))} else { callback() }}},
- ]
+amount: [
+ { required: true, message: t('amountPlaceholder'), trigger: 'blur' },
+ {
+ validator: (rule: any, value: string, callback: any) => {
+ const num = parseFloat(value);
+ if (!/^\d+(\.\d{1,2})?$/.test(value) || num < 0.01 || num > 999999) {
+ callback(new Error("请输入正确金额"));
+ } else {
+ callback();
+ }
+ },
+ trigger: 'blur'
+ }
+]
,
order_type: [
{ required: true, message: t('orderTypePlaceholder'), trigger: 'blur' },
diff --git a/niucloud/addon/shop/app/lang/zh-cn/validate.php b/niucloud/addon/shop/app/lang/zh-cn/validate.php
index 7e1d5206..3f6e6f7f 100644
--- a/niucloud/addon/shop/app/lang/zh-cn/validate.php
+++ b/niucloud/addon/shop/app/lang/zh-cn/validate.php
@@ -4,4 +4,7 @@ return [
'common_validate' => [
'mobile' => '手机号格式有误',
],
+ 'common_validate' => [
+ 'email' => '邮箱格式有误',
+ ],
];
diff --git a/niucloud/addon/zhjw/app/adminapi/controller/orders/Orders.php b/niucloud/addon/zhjw/app/adminapi/controller/orders/Orders.php
index 87579ec1..ddb28146 100644
--- a/niucloud/addon/zhjw/app/adminapi/controller/orders/Orders.php
+++ b/niucloud/addon/zhjw/app/adminapi/controller/orders/Orders.php
@@ -12,7 +12,7 @@
namespace addon\zhjw\app\adminapi\controller\orders;
use core\base\BaseAdminController;
-use addon\zhjw\app\service\admin\orders\CommonService;
+use addon\zhjw\app\service\admin\orders\OrdersService;
/**
@@ -37,7 +37,7 @@ class Orders extends BaseAdminController
["payment_time",["",""]],
["create_time",["",""]]
]);
- return success((new CommonService())->getPage($data));
+ return success((new OrdersService())->getPage($data));
}
/**
@@ -46,7 +46,7 @@ class Orders extends BaseAdminController
* @return \think\Response
*/
public function info(int $id){
- return success((new CommonService())->getInfo($id));
+ return success((new OrdersService())->getInfo($id));
}
/**
@@ -65,7 +65,7 @@ class Orders extends BaseAdminController
]);
$this->validate($data, 'addon\zhjw\app\validate\orders\Orders.add');
- $id = (new CommonService())->add($data);
+ $id = (new OrdersService())->add($data);
return success('ADD_SUCCESS', ['id' => $id]);
}
@@ -86,7 +86,7 @@ class Orders extends BaseAdminController
]);
$this->validate($data, 'addon\zhjw\app\validate\orders\Orders.edit');
- (new CommonService())->edit($id, $data);
+ (new OrdersService())->edit($id, $data);
return success('EDIT_SUCCESS');
}
@@ -96,17 +96,17 @@ class Orders extends BaseAdminController
* @return \think\Response
*/
public function del(int $id){
- (new CommonService())->del($id);
+ (new OrdersService())->del($id);
return success('DELETE_SUCCESS');
}
-
+
public function getStudentsAll(){
- return success(( new CommonService())->getStudentsAll());
+ return success(( new OrdersService())->getStudentsAll());
}
public function getContractsAll(){
- return success(( new CommonService())->getContractsAll());
+ return success(( new OrdersService())->getContractsAll());
}
}
diff --git a/niucloud/addon/zhjw/app/validate/campuses/Campuses.php b/niucloud/addon/zhjw/app/validate/campuses/Campuses.php
index 7f0808ac..c1674217 100644
--- a/niucloud/addon/zhjw/app/validate/campuses/Campuses.php
+++ b/niucloud/addon/zhjw/app/validate/campuses/Campuses.php
@@ -42,8 +42,8 @@ class Campuses extends BaseValidate
];
protected $scene = [
- "add" => ['name', 'coordinate', 'address', 'contact_person', 'contact_phone', 'status', 'thumbnail', 'description'],
- "edit" => ['name', 'coordinate', 'address', 'contact_person', 'contact_phone', 'status', 'thumbnail', 'description']
+ "add" => ['name', 'coordinate', 'address', 'contact_person', 'contact_phone', 'status', 'description'],
+ "edit" => ['name', 'coordinate', 'address', 'contact_person', 'contact_phone', 'status', 'description']
];
}
diff --git a/niucloud/addon/zhjw/app/validate/classes/Classes.php b/niucloud/addon/zhjw/app/validate/classes/Classes.php
index ef123f8a..1fb06047 100644
--- a/niucloud/addon/zhjw/app/validate/classes/Classes.php
+++ b/niucloud/addon/zhjw/app/validate/classes/Classes.php
@@ -40,8 +40,8 @@ class Classes extends BaseValidate
];
protected $scene = [
- "add" => ['venue_id', 'thumbnail', 'name', 'max_students', 'start_date', 'end_date', 'status'],
- "edit" => ['venue_id', 'thumbnail', 'name', 'max_students', 'start_date', 'end_date', 'status']
+ "add" => ['venue_id', 'name', 'max_students', 'start_date', 'end_date', 'status'],
+ "edit" => ['venue_id', 'name', 'max_students', 'start_date', 'end_date', 'status']
];
}
diff --git a/niucloud/addon/zhjw/app/validate/courses/Courses.php b/niucloud/addon/zhjw/app/validate/courses/Courses.php
index 4ae8fd6c..d89eca18 100644
--- a/niucloud/addon/zhjw/app/validate/courses/Courses.php
+++ b/niucloud/addon/zhjw/app/validate/courses/Courses.php
@@ -46,8 +46,8 @@ class Courses extends BaseValidate
];
protected $scene = [
- "add" => ['name', 'description', 'thumbnail', 'target_group', 'duration', 'taste_price', 'price', 'is_automatic_signing', 'automatic_signing_time', 'status'],
- "edit" => ['name', 'description', 'thumbnail', 'target_group', 'duration', 'taste_price', 'price', 'is_automatic_signing', 'automatic_signing_time', 'status']
+ "add" => ['name', 'description', 'target_group', 'duration', 'taste_price', 'price', 'is_automatic_signing', 'automatic_signing_time', 'status'],
+ "edit" => ['name', 'description', 'target_group', 'duration', 'taste_price', 'price', 'is_automatic_signing', 'automatic_signing_time', 'status']
];
}
diff --git a/niucloud/addon/zhjw/app/validate/staff/Staff.php b/niucloud/addon/zhjw/app/validate/staff/Staff.php
index 0a436ac0..8e8c19f3 100644
--- a/niucloud/addon/zhjw/app/validate/staff/Staff.php
+++ b/niucloud/addon/zhjw/app/validate/staff/Staff.php
@@ -44,8 +44,9 @@ class Staff extends BaseValidate
];
protected $scene = [
- "add" => ['name', 'header', 'gender', 'phone', 'email', 'position', 'status', 'role_id'],
- "edit" => ['name', 'header', 'gender', 'phone', 'email', 'position', 'status', 'role_id']
+
+ "add" => ['name', 'gender', 'phone', 'email', 'position', 'status', 'role_id'],
+ "edit" => ['name', 'gender', 'phone', 'email', 'position', 'status', 'role_id']
];
}
diff --git a/niucloud/addon/zhjw/app/validate/venues/Venues.php b/niucloud/addon/zhjw/app/validate/venues/Venues.php
index 3c9109fb..41abccd6 100644
--- a/niucloud/addon/zhjw/app/validate/venues/Venues.php
+++ b/niucloud/addon/zhjw/app/validate/venues/Venues.php
@@ -40,8 +40,8 @@ class Venues extends BaseValidate
];
protected $scene = [
- "add" => ['campus_id', 'name', 'thumbnail', 'type', 'capacity', 'available_time', 'status'],
- "edit" => ['campus_id', 'name', 'thumbnail', 'type', 'capacity', 'available_time', 'status']
+ "add" => ['campus_id', 'name', 'type', 'capacity', 'available_time', 'status'],
+ "edit" => ['campus_id', 'name', 'type', 'capacity', 'available_time', 'status']
];
}
diff --git a/niucloud/app/api/controller/member/Member.php b/niucloud/app/api/controller/member/Member.php
index 17442df1..6ec1d896 100644
--- a/niucloud/app/api/controller/member/Member.php
+++ b/niucloud/app/api/controller/member/Member.php
@@ -155,4 +155,8 @@ class Member extends BaseApiController
]);
return success(( new MemberService() )->set_feedback($data));
}
+
+ public function index(){
+ return success(( new MemberService() )->index());
+ }
}
diff --git a/niucloud/app/api/route/member.php b/niucloud/app/api/route/member.php
index 823f6859..ec9c2f49 100644
--- a/niucloud/app/api/route/member.php
+++ b/niucloud/app/api/route/member.php
@@ -114,6 +114,8 @@ Route::group('member', function () {
Route::post('set_feedback', 'member.Member/set_feedback');
+ Route::get('index', 'member.Member/index');
+
})->middleware(ApiChannel::class)
->middleware(ApiCheckToken::class, true)
->middleware(ApiLog::class);
diff --git a/niucloud/app/service/api/member/MemberService.php b/niucloud/app/service/api/member/MemberService.php
index 7a6d9c8e..683be6f6 100644
--- a/niucloud/app/service/api/member/MemberService.php
+++ b/niucloud/app/service/api/member/MemberService.php
@@ -73,7 +73,12 @@ class MemberService extends BaseApiService
->append(['sex_name'])
->findOrEmpty()->toArray();
$data = (new Students())->where(['user_id' => $this->member_id])->find();
+ $info['height'] = $data['height'];
+ $info['weight'] = $data['weight'];
+ $info['score'] = $data['score'];
$info['students_id'] = $data['id'];
+ $info['evaluation_time'] = $data['evaluation_time'];
+
$info['name'] = $data['name'] ?? '';
//课程
@@ -222,6 +227,7 @@ class MemberService extends BaseApiService
->join(['school_courses' => 'd'],'c.courses_id = d.id','left')
->where('a.start_date', '<=', $data['schedule_date'])
->where('a.end_date', '>=', $data['schedule_date'])
+ ->where('a.status','<',3)
->whereRaw("FIND_IN_SET(?, a.max_students)", [$member_info['students_id']])
->field("a.id,a.status,a.venue_id,a.start_date,a.end_date,a.max_students,a.name,b.name as address,d.name as courses_name,
LENGTH(a.max_students) - LENGTH(REPLACE(a.max_students, ',', '')) + 1 as students_count,d.id as courses_id
@@ -278,5 +284,47 @@ class MemberService extends BaseApiService
return true;
}
+ public function index(){
+ $venues = new Venues();
+ $classes = new Classes();
+
+ $data = [];
+ $member_info = $this->getInfo();
+ $data['info'] = $member_info;
+
+
+ $classes_info = $classes
+ ->alias("a")
+ ->join(['school_venues' => 'b'],'a.venue_id = b.id','left')
+ ->join(['school_timetables' => 'c'],'a.id = c.class_id','left')
+ ->join(['school_courses' => 'd'],'c.courses_id = d.id','left')
+ ->where('a.status','<',3)
+ ->whereRaw("FIND_IN_SET(?, a.max_students)", [$member_info['students_id']])
+ ->field("a.id,a.status,a.venue_id,a.start_date,a.end_date,a.max_students,a.name,b.name as address,d.name as courses_name,
+ LENGTH(a.max_students) - LENGTH(REPLACE(a.max_students, ',', '')) + 1 as students_count,d.id as courses_id
+ ")
+ ->order("a.end_date desc")
+ ->group("a.venue_id")
+ ->find();
+
+
+
+ $classes_info['sign_count'] = Db::name("zhjw_students_sign")
+ ->alias("a")
+ ->join(['school_member' => 'b'],'a.students_id = b.member_id','left')
+ ->where(['a.courses_id' => $classes_info['courses_id']])
+ ->count();
+
+ $classes_info['my_sign_count'] = Db::name("zhjw_students_sign")
+ ->alias("a")
+ ->join(['school_member' => 'b'],'a.students_id = b.member_id','left')
+ ->where(['a.courses_id' => $classes_info['courses_id'],'a.students_id' => $member_info['students_id']])
+ ->count();
+
+ $data['classes_info'] = $classes_info;
+
+ return $data;
+ }
+
}