于宏哲PHP 1 year ago
parent
commit
7fafb16dc5
  1. 1
      admin/components.d.ts
  2. 2
      admin/src/addon/zhjw/views/feedback/feedback_edit.vue
  3. 20
      admin/src/addon/zhjw/views/orders/orders_edit.vue
  4. 3
      niucloud/addon/shop/app/lang/zh-cn/validate.php
  5. 18
      niucloud/addon/zhjw/app/adminapi/controller/orders/Orders.php
  6. 4
      niucloud/addon/zhjw/app/validate/campuses/Campuses.php
  7. 4
      niucloud/addon/zhjw/app/validate/classes/Classes.php
  8. 4
      niucloud/addon/zhjw/app/validate/courses/Courses.php
  9. 5
      niucloud/addon/zhjw/app/validate/staff/Staff.php
  10. 4
      niucloud/addon/zhjw/app/validate/venues/Venues.php
  11. 4
      niucloud/app/api/controller/member/Member.php
  12. 2
      niucloud/app/api/route/member.php
  13. 48
      niucloud/app/service/api/member/MemberService.php

1
admin/components.d.ts

@ -17,6 +17,7 @@ declare module '@vue/runtime-core' {
ElButton: typeof import('element-plus/es')['ElButton'] ElButton: typeof import('element-plus/es')['ElButton']
ElCalendar: typeof import('element-plus/es')['ElCalendar'] ElCalendar: typeof import('element-plus/es')['ElCalendar']
ElCard: typeof import('element-plus/es')['ElCard'] ElCard: typeof import('element-plus/es')['ElCard']
ElCascader: typeof import('element-plus/es')['ElCascader']
ElCheckbox: typeof import('element-plus/es')['ElCheckbox'] ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup'] ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup']
ElCol: typeof import('element-plus/es')['ElCol'] ElCol: typeof import('element-plus/es')['ElCol']

2
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 type { FormInstance } from 'element-plus'
import { getFeedbackInfo,addFeedback,editFeedback, getWithStudentsList } from '@/addon/zhjw/api/feedback'; import { getFeedbackInfo,addFeedback,editFeedback, getWithStudentsList } from '@/addon/zhjw/api/feedback';
import { useRoute } from 'vue-router' import { useRoute } from 'vue-router'
import { img } from '@/utils/common'
const route = useRoute() const route = useRoute()
const id:number = parseInt(route.query.id); const id:number = parseInt(route.query.id);
const loading = ref(false) const loading = ref(false)

20
admin/src/addon/zhjw/views/orders/orders_edit.vue

@ -35,7 +35,7 @@
</el-form-item> </el-form-item>
<el-form-item :label="t('amount')" prop="amount"> <el-form-item :label="t('amount')" prop="amount">
<el-input-number v-model="formData.amount" clearable :placeholder="t('amountPlaceholder')" class="input-width" :min = "0.01" max = "999999" /> <el-input-number v-model="formData.amount" clearable :placeholder="t('amountPlaceholder')" class="input-width" :min = "0.01" :max = "999999" />
</el-form-item> </el-form-item>
<el-form-item :label="t('orderType')" prop="order_type"> <el-form-item :label="t('orderType')" prop="order_type">
@ -188,10 +188,20 @@ const formRules = computed(() => {
] ]
, ,
amount: [ amount: [
{ required: true, message: t('amountPlaceholder'), trigger: 'blur' }, { 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() }}}, {
] 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: [ order_type: [
{ required: true, message: t('orderTypePlaceholder'), trigger: 'blur' }, { required: true, message: t('orderTypePlaceholder'), trigger: 'blur' },

3
niucloud/addon/shop/app/lang/zh-cn/validate.php

@ -4,4 +4,7 @@ return [
'common_validate' => [ 'common_validate' => [
'mobile' => '手机号格式有误', 'mobile' => '手机号格式有误',
], ],
'common_validate' => [
'email' => '邮箱格式有误',
],
]; ];

18
niucloud/addon/zhjw/app/adminapi/controller/orders/Orders.php

@ -12,7 +12,7 @@
namespace addon\zhjw\app\adminapi\controller\orders; namespace addon\zhjw\app\adminapi\controller\orders;
use core\base\BaseAdminController; 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",["",""]], ["payment_time",["",""]],
["create_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 * @return \think\Response
*/ */
public function info(int $id){ 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'); $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]); return success('ADD_SUCCESS', ['id' => $id]);
} }
@ -86,7 +86,7 @@ class Orders extends BaseAdminController
]); ]);
$this->validate($data, 'addon\zhjw\app\validate\orders\Orders.edit'); $this->validate($data, 'addon\zhjw\app\validate\orders\Orders.edit');
(new CommonService())->edit($id, $data); (new OrdersService())->edit($id, $data);
return success('EDIT_SUCCESS'); return success('EDIT_SUCCESS');
} }
@ -96,17 +96,17 @@ class Orders extends BaseAdminController
* @return \think\Response * @return \think\Response
*/ */
public function del(int $id){ public function del(int $id){
(new CommonService())->del($id); (new OrdersService())->del($id);
return success('DELETE_SUCCESS'); return success('DELETE_SUCCESS');
} }
public function getStudentsAll(){ public function getStudentsAll(){
return success(( new CommonService())->getStudentsAll()); return success(( new OrdersService())->getStudentsAll());
} }
public function getContractsAll(){ public function getContractsAll(){
return success(( new CommonService())->getContractsAll()); return success(( new OrdersService())->getContractsAll());
} }
} }

4
niucloud/addon/zhjw/app/validate/campuses/Campuses.php

@ -42,8 +42,8 @@ class Campuses extends BaseValidate
]; ];
protected $scene = [ protected $scene = [
"add" => ['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', 'thumbnail', 'description'] "edit" => ['name', 'coordinate', 'address', 'contact_person', 'contact_phone', 'status', 'description']
]; ];
} }

4
niucloud/addon/zhjw/app/validate/classes/Classes.php

@ -40,8 +40,8 @@ class Classes extends BaseValidate
]; ];
protected $scene = [ protected $scene = [
"add" => ['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', 'thumbnail', 'name', 'max_students', 'start_date', 'end_date', 'status'] "edit" => ['venue_id', 'name', 'max_students', 'start_date', 'end_date', 'status']
]; ];
} }

4
niucloud/addon/zhjw/app/validate/courses/Courses.php

@ -46,8 +46,8 @@ class Courses extends BaseValidate
]; ];
protected $scene = [ protected $scene = [
"add" => ['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', 'thumbnail', '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']
]; ];
} }

5
niucloud/addon/zhjw/app/validate/staff/Staff.php

@ -44,8 +44,9 @@ class Staff extends BaseValidate
]; ];
protected $scene = [ 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']
]; ];
} }

4
niucloud/addon/zhjw/app/validate/venues/Venues.php

@ -40,8 +40,8 @@ class Venues extends BaseValidate
]; ];
protected $scene = [ protected $scene = [
"add" => ['campus_id', 'name', 'thumbnail', 'type', 'capacity', 'available_time', 'status'], "add" => ['campus_id', 'name', 'type', 'capacity', 'available_time', 'status'],
"edit" => ['campus_id', 'name', 'thumbnail', 'type', 'capacity', 'available_time', 'status'] "edit" => ['campus_id', 'name', 'type', 'capacity', 'available_time', 'status']
]; ];
} }

4
niucloud/app/api/controller/member/Member.php

@ -155,4 +155,8 @@ class Member extends BaseApiController
]); ]);
return success(( new MemberService() )->set_feedback($data)); return success(( new MemberService() )->set_feedback($data));
} }
public function index(){
return success(( new MemberService() )->index());
}
} }

2
niucloud/app/api/route/member.php

@ -114,6 +114,8 @@ Route::group('member', function () {
Route::post('set_feedback', 'member.Member/set_feedback'); Route::post('set_feedback', 'member.Member/set_feedback');
Route::get('index', 'member.Member/index');
})->middleware(ApiChannel::class) })->middleware(ApiChannel::class)
->middleware(ApiCheckToken::class, true) ->middleware(ApiCheckToken::class, true)
->middleware(ApiLog::class); ->middleware(ApiLog::class);

48
niucloud/app/service/api/member/MemberService.php

@ -73,7 +73,12 @@ class MemberService extends BaseApiService
->append(['sex_name']) ->append(['sex_name'])
->findOrEmpty()->toArray(); ->findOrEmpty()->toArray();
$data = (new Students())->where(['user_id' => $this->member_id])->find(); $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['students_id'] = $data['id'];
$info['evaluation_time'] = $data['evaluation_time'];
$info['name'] = $data['name'] ?? ''; $info['name'] = $data['name'] ?? '';
//课程 //课程
@ -222,6 +227,7 @@ class MemberService extends BaseApiService
->join(['school_courses' => 'd'],'c.courses_id = d.id','left') ->join(['school_courses' => 'd'],'c.courses_id = d.id','left')
->where('a.start_date', '<=', $data['schedule_date']) ->where('a.start_date', '<=', $data['schedule_date'])
->where('a.end_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']]) ->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, ->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 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; 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;
}
} }

Loading…
Cancel
Save