diff --git a/niucloud/app/adminapi/controller/student/Student.php b/niucloud/app/adminapi/controller/student/Student.php index 5ba7e270..e74a0e51 100644 --- a/niucloud/app/adminapi/controller/student/Student.php +++ b/niucloud/app/adminapi/controller/student/Student.php @@ -52,13 +52,13 @@ class Student extends BaseAdminController */ public function add(){ $data = $this->request->params([ + ["user_id",0], ["campus_id",0], ["class_id",0], - ["user_id",0], ["name",""], ["gender",0], ["age",0.00], - ["birthday","2025-05-23 17:31:39"], + ["birthday","2025-05-26 16:25:55"], ["emergency_contact",""], ["contact_phone",""], ["note",""], @@ -77,13 +77,13 @@ class Student extends BaseAdminController */ public function edit(int $id){ $data = $this->request->params([ + ["user_id",0], ["campus_id",0], ["class_id",0], - ["user_id",0], ["name",""], ["gender",0], ["age",0.00], - ["birthday","2025-05-23 17:31:39"], + ["birthday","2025-05-26 16:25:55"], ["emergency_contact",""], ["contact_phone",""], ["note",""], @@ -106,6 +106,10 @@ class Student extends BaseAdminController } + public function getCustomerResourcesAll(){ + return success(( new StudentService())->getCustomerResourcesAll()); + } + public function getCampusAll(){ return success(( new StudentService())->getCampusAll()); } @@ -114,8 +118,4 @@ class Student extends BaseAdminController return success(( new StudentService())->getClassGradeAll()); } - public function getMemberAll(){ - return success(( new StudentService())->getMemberAll()); - } - } diff --git a/niucloud/app/adminapi/route/student.php b/niucloud/app/adminapi/route/student.php index cbad5514..dc4405a5 100644 --- a/niucloud/app/adminapi/route/student.php +++ b/niucloud/app/adminapi/route/student.php @@ -15,6 +15,7 @@ use app\adminapi\middleware\AdminCheckRole; use app\adminapi\middleware\AdminCheckToken; use app\adminapi\middleware\AdminLog; + // USER_CODE_BEGIN -- student Route::group('student', function () { @@ -30,12 +31,12 @@ Route::group('student', function () { //删除学员 Route::delete('student/:id', 'student.Student/del'); + Route::get('customer_resources_all','student.Student/getCustomerResourcesAll'); + Route::get('campus_all','student.Student/getCampusAll'); Route::get('class_grade_all','student.Student/getClassGradeAll'); - Route::get('member_all','student.Student/getMemberAll'); - })->middleware([ AdminCheckToken::class, AdminCheckRole::class, diff --git a/niucloud/app/model/student/Student.php b/niucloud/app/model/student/Student.php index 51271e2e..c8f5786c 100644 --- a/niucloud/app/model/student/Student.php +++ b/niucloud/app/model/student/Student.php @@ -16,12 +16,12 @@ use think\model\concern\SoftDelete; use think\model\relation\HasMany; use think\model\relation\HasOne; +use app\model\customer_resources\CustomerResources; + use app\model\campus\Campus; use app\model\class_grade\ClassGrade; -use app\model\member\Member; - /** * 学员模型 * Class Student @@ -127,6 +127,10 @@ class Student extends BaseModel + public function customerResources(){ + return $this->hasOne(CustomerResources::class, 'id', 'user_id')->joinType('left')->withField('name,id')->bind(['user_id_name'=>'name']); + } + public function campus(){ return $this->hasOne(Campus::class, 'id', 'campus_id')->joinType('left')->withField('campus_name,id')->bind(['campus_id_name'=>'campus_name']); } @@ -135,8 +139,4 @@ class Student extends BaseModel return $this->hasOne(ClassGrade::class, 'id', 'class_id')->joinType('left')->withField('class_name,id')->bind(['class_id_name'=>'class_name']); } - public function member(){ - return $this->hasOne(Member::class, 'member_id', 'user_id')->joinType('left')->withField('nickname,member_id')->bind(['user_id_name'=>'nickname']); - } - } diff --git a/niucloud/app/service/admin/student/StudentService.php b/niucloud/app/service/admin/student/StudentService.php index 49d47d0f..e0c28b69 100644 --- a/niucloud/app/service/admin/student/StudentService.php +++ b/niucloud/app/service/admin/student/StudentService.php @@ -12,9 +12,9 @@ namespace app\service\admin\student; use app\model\student\Student; +use app\model\customer_resources\CustomerResources; use app\model\campus\Campus; use app\model\class_grade\ClassGrade; -use app\model\member\Member; use core\base\BaseAdminService; @@ -39,10 +39,10 @@ class StudentService extends BaseAdminService */ public function getPage(array $where = []) { - $field = 'id,campus_id,class_id,user_id,name,gender,age,birthday,emergency_contact,contact_phone,note,status,created_at,updated_at,deleted_at'; + $field = 'id,user_id,campus_id,class_id,name,gender,age,birthday,emergency_contact,contact_phone,note,status,created_at,updated_at,deleted_at'; $order = 'id asc'; - $search_model = $this->model->withSearch(["campus_id","name","emergency_contact","contact_phone","created_at"], $where)->with(['campus','classGrade','member'])->field($field)->order($order); + $search_model = $this->model->withSearch(["campus_id","name","emergency_contact","contact_phone","created_at"], $where)->with(['customerResources','campus','classGrade'])->field($field)->order($order); $list = $this->pageQuery($search_model); return $list; } @@ -54,9 +54,9 @@ class StudentService extends BaseAdminService */ public function getInfo(int $id) { - $field = 'id,campus_id,class_id,user_id,name,gender,age,birthday,emergency_contact,contact_phone,note,status,created_at,updated_at,deleted_at'; + $field = 'id,user_id,campus_id,class_id,name,gender,age,birthday,emergency_contact,contact_phone,note,status,created_at,updated_at,deleted_at'; - $info = $this->model->field($field)->where([['id', "=", $id]])->with(['campus','classGrade','member'])->findOrEmpty()->toArray(); + $info = $this->model->field($field)->where([['id', "=", $id]])->with(['customerResources','campus','classGrade'])->findOrEmpty()->toArray(); return $info; } @@ -98,6 +98,11 @@ class StudentService extends BaseAdminService } + public function getCustomerResourcesAll(){ + $customerResourcesModel = new CustomerResources(); + return $customerResourcesModel->select()->toArray(); + } + public function getCampusAll(){ $campusModel = new Campus(); return $campusModel->select()->toArray(); @@ -108,10 +113,5 @@ class StudentService extends BaseAdminService return $classGradeModel->select()->toArray(); } - public function getMemberAll(){ - $memberModel = new Member(); - return $memberModel->select()->toArray(); - } - } diff --git a/niucloud/app/service/api/pay/PayService.php b/niucloud/app/service/api/pay/PayService.php index 37dc895f..15db923c 100644 --- a/niucloud/app/service/api/pay/PayService.php +++ b/niucloud/app/service/api/pay/PayService.php @@ -14,9 +14,11 @@ namespace app\service\api\pay; use app\dict\common\ChannelDict; use app\dict\pay\PayDict; use app\dict\pay\PaySceneDict; +use app\model\customer_resources\CustomerResources; use app\model\member\Member; use app\model\order_table\OrderTable; use app\model\pay\Pay; +use app\model\student\Student; use app\model\sys\Poster; use app\service\core\member\CoreMemberService; use app\service\core\pay\CorePayService; @@ -163,7 +165,9 @@ class PayService extends BaseApiService public function qrcodeNotify($data,$order_id) { + $student = new Student(); $order = new OrderTable(); + $cust = new CustomerResources(); $order_info = $order->where(['id' => $order_id])->find(); if($order_info['order_status'] == 'pending' and !empty($order_info['ipv3'])){ $resource = $data['resource']; @@ -176,6 +180,24 @@ class PayService extends BaseApiService $info = json_decode($decrypted, true); $order->where(['payment_id' => $info['out_trade_no']])->update(['order_status' => 'paid','payment_time' => date("Y-m-d H:i:s")]); + + $order_count = $order->where(['resource_id' => $order_info['resource_id']])->count(); + + if($order_count <= 1){ + $cust_info = $cust->where(['id' => $order_info['resource_id']])->find(); + + $sex_arr = ['male' => 1, 'female' => 2, 'other' => 0]; + //首次支付创建学员 + $student->insert([ + 'name' => $cust_info['name'], + 'gender' => $sex_arr[$cust_info['gender']], + 'age' => $cust_info['age'], + 'campus_id' => $cust_info['campus'], + 'class_id' => $order_info['class_id'], + 'status' => 1, + 'user_id' => $order_info['resource_id'] + ]); + } } } diff --git a/niucloud/app/validate/student/Student.php b/niucloud/app/validate/student/Student.php index a018ae10..998d2d8c 100644 --- a/niucloud/app/validate/student/Student.php +++ b/niucloud/app/validate/student/Student.php @@ -20,24 +20,24 @@ class Student extends BaseValidate { protected $rule = [ - 'class_id' => 'require', 'user_id' => 'require', + 'class_id' => 'require', 'name' => 'require', 'gender' => 'require', 'status' => 'require', ]; protected $message = [ - 'class_id.require' => ['common_validate.require', ['class_id']], 'user_id.require' => ['common_validate.require', ['user_id']], + 'class_id.require' => ['common_validate.require', ['class_id']], 'name.require' => ['common_validate.require', ['name']], 'gender.require' => ['common_validate.require', ['gender']], 'status.require' => ['common_validate.require', ['status']], ]; protected $scene = [ - "add" => ['campus_id', 'class_id', 'user_id', 'name', 'gender', 'age', 'birthday', 'emergency_contact', 'contact_phone', 'note', 'status'], - "edit" => ['campus_id', 'class_id', 'user_id', 'name', 'gender', 'age', 'birthday', 'emergency_contact', 'contact_phone', 'note', 'status'] + "add" => ['user_id', 'campus_id', 'class_id', 'name', 'gender', 'age', 'birthday', 'emergency_contact', 'contact_phone', 'note', 'status'], + "edit" => ['user_id', 'campus_id', 'class_id', 'name', 'gender', 'age', 'birthday', 'emergency_contact', 'contact_phone', 'note', 'status'] ]; }