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; + } + }