于宏哲PHP 10 months ago
parent
commit
9ba3e4dc7c
  1. 42
      niucloud/app/api/controller/login/Login.php
  2. 3
      niucloud/app/event.php
  3. 124
      niucloud/app/listener/personnel/Student.php
  4. 7
      niucloud/app/service/admin/person_course_schedule/PersonCourseScheduleService.php
  5. 35
      niucloud/app/service/api/pay/PayService.php

42
niucloud/app/api/controller/login/Login.php

@ -12,6 +12,7 @@
namespace app\api\controller\login;
use app\dict\member\MemberLoginTypeDict;
use app\model\order_table\OrderTable;
use app\model\sys\SysConfig;
use app\service\admin\sys\SystemService;
use app\service\api\captcha\CaptchaService;
@ -138,43 +139,8 @@ class Login extends BaseController
}
public function test(){
$pay_config = Db::name("campus_pay")->where(['campus_id' => 1])->find();
$sysConfig = new SysConfig();
$vx_config = $sysConfig->where(['config_key' => 'WECHAT'])->value("value");
$config = [
// 必填-商户号
'mch_id' => $pay_config['mchid'],
// 必填-商户私钥 字符串或路径
'mch_secret_cert' => $pay_config['apiclient_cert'],
// 必填-商户公钥证书路径
'mch_public_cert_path' => $pay_config['apiclient_key'],
// 必填
'notify_url' => 'https://zh.hnhbty.cn/api/pay/qrcodenotify',
// 选填-公众号 的 app_id
'mp_app_id' => $vx_config['app_id'],
// 选填-小程序 的 app_id
'mini_app_id' => '',
'mch_secret_key' => $pay_config['pay_sign_key'],
];
$params = [
'out_trade_no' => '123123',
'body' => '测试',
'money' => 100,
];
$pay = new PayLoader('Wechatpay', $config);
$url = $pay->scan($params);
$path = qrcode(
$url['code_url'],
'',
[],
'upload/qrcode/pay/'
);
echo "<img src='/" . $path . "'>";die;
$order = new OrderTable();
$order_info = $order->where(['id' => 8])->find();
event('Student', ['event_type' => 'add','order_info' => $order_info]);
}
}

3
niucloud/app/event.php

@ -113,6 +113,9 @@ $system_event = [
//计算业绩
'CalculatePerformance' => [ 'app\listener\personnel\CalculatePerformance' ],
//学员
'Student' => [ 'app\listener\personnel\Student' ],
],
'subscribe' => [
],

124
niucloud/app/listener/personnel/Student.php

@ -0,0 +1,124 @@
<?php
// +----------------------------------------------------------------------
// | Niucloud-admin 企业快速开发的多应用管理平台
// +----------------------------------------------------------------------
// | 官方网址:https://www.niucloud.com
// +----------------------------------------------------------------------
// | niucloud团队 版权所有 开源版本可自由商用
// +----------------------------------------------------------------------
// | Author: Niucloud Team
// +----------------------------------------------------------------------
namespace app\listener\personnel;
use app\model\class_resources_rel\ClassResourcesRel;
use app\model\course\Course;
use app\model\course_schedule\CourseSchedule;
use app\model\customer_resources\CustomerResources;
use app\model\order_table\OrderTable;
use app\model\student_course_usage\StudentCourseUsage;
use app\model\student_courses\StudentCourses;
use think\facade\Db;
/**
* 学员
*/
class Student
{
protected $personnel;
public function handle(array $params)
{
if ($params['event_type'] === 'add') {
$this->studentAdd($params['data']);
}
if ($params['event_type'] === 'xiaoke') {
$this->studentXiaoke($params['data']);
}
}
public function studentXiaoke($data){
$courseSchedule = new CourseSchedule();
$studentCourses = new StudentCourses();
$student_course_usage = new StudentCourseUsage();
$schedule_info = $courseSchedule->where(['id' => $data['schedule_id']])->find();
$studentCourses_info = $studentCourses->where(['student_id' => $data['student_id'],'course_id' => $schedule_info['course_id']])->find();
$student_course_usage->insert([
'student_course_id' => $studentCourses_info['id'],
'used_hours' => $studentCourses_info['single_session_count'],
'usage_date' => date("Y-m-d")
]);
}
public function studentAdd($order_info){
$student = new \app\model\student\Student();
$order = new OrderTable();
$cust = new CustomerResources();
$class_resources_rel = new ClassResourcesRel();
$course = new Course();
$studentCourses = new StudentCourses();
$order_count = $order->where(['resource_id' => $order_info['resource_id']])->count();
$cust_info = $cust->where(['id' => $order_info['resource_id']])->find();
//创建学员关系逻辑
if($order_count <= 1){
$sex_arr = ['male' => 1, 'female' => 2, 'other' => 0];
//首次支付创建学员
$student_id = $student->insertGetId([
'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']
]);
}else{
$student_id = $student->where(['user_id' => $order_info['resource_id'],'class_id' => $order_info['class_id']])->value('id');
}
//学员课程逻辑
$course_info = $course->where(['id' => $order_info['course_id']])->find();
$studentCourses->insert([
'student_id' => $student_id,
'course_id' => $order_info['course_id'],
'total_hours' => $course_info['session_count'],
'gift_hours' => $course_info['gift_session_count'],
'start_date' => date("Y-m-d"),
'end_date' => date("Y-m-d", strtotime("+30 days")),
'single_session_count' => $course_info['single_session_count']
]);
//班级资源关系逻辑
$is_rel = $class_resources_rel->where(
['resource_id' => $order_info['resource_id'],'class_id' => $order_info['class_id']]
)->find();
if($is_rel){
$class_resources_rel->where(['id' => $is_rel['id']])->update(['status' => 2]);
}else{
$class_resources_rel->insert([
'class_id' => $order_info['class_id'],
'resource_id' => $order_info['resource_id'],
'campus_id' => $cust_info['campus'],
'source_type' => 'student',
'join_time' => time(),
'status' => 1,
'create_time' => date("Y-m-d H:i:s"),
'update_time' => date("Y-m-d H:i:s")
]);
}
}
}

7
niucloud/app/service/admin/person_course_schedule/PersonCourseScheduleService.php

@ -219,10 +219,9 @@ class PersonCourseScheduleService extends BaseAdminService
return $data;
}
public function xk(int $id){
$model = $this->model->where([['id', '=', $id]])->find();
$res = $model->delete();
return $res;
$data = $this->model->where([['id', '=', $id]])->find();
event('Student', ['event_type' => 'xiaoke','data' => $data]);
return true;
}
public function getCustomerResourcesAll(){

35
niucloud/app/service/api/pay/PayService.php

@ -166,9 +166,7 @@ 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'];
@ -182,39 +180,8 @@ class PayService extends BaseApiService
$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();
$cust_info = $cust->where(['id' => $order_info['resource_id']])->find();
if($order_count <= 1){
$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']
]);
}
$is_rel = Db::name("class_resources_rel")->where(
['resource_id' => $order_info['resource_id'],'class_id' => $order_info['class_id']]
)->find();
if($is_rel){
Db::name("class_resources_rel")->where(['id' => $is_rel['id']])->update(['status' => 2]);
}else{
Db::name("class_resources_rel")->insert([
'class_id' => $order_info['class_id'],
'resource_id' => $order_info['resource_id'],
'campus_id' => $cust_info['campus'],
'source_type' => 'student',
'join_time' => time(),
'status' => 1,
'create_time' => date("Y-m-d H:i:s"),
'update_time' => date("Y-m-d H:i:s")
]);
}
event('Student', ['event_type' => 'add','data' => $order_info]);
}
}

Loading…
Cancel
Save