TrainingWorkerTaskLogic.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <?php
  2. namespace app\workerapi\logic;
  3. use app\common\logic\BaseLogic;
  4. use app\common\model\shops\ShopOrderGoods;
  5. use app\common\model\shops\ShopOrders;
  6. use app\common\model\training\TrainingCourse;
  7. use app\common\model\training\TrainingTask;
  8. use app\common\model\training\TrainingWorkerCourse;
  9. use app\common\model\training\TrainingWorkerQuestion;
  10. use app\common\model\training\TrainingWorkerTask;
  11. use think\facade\Db;
  12. /**
  13. * TrainingWorkerTaskLogic逻辑
  14. * Class TrainingWorkerTaskLogic
  15. * @package app\workerapi\logic\works
  16. */
  17. class TrainingWorkerTaskLogic extends BaseLogic
  18. {
  19. /**
  20. * @notes 验证是否购买
  21. * @param array $params
  22. * @return bool
  23. * @author whitef
  24. * @date 2024/07/10 15:06
  25. */
  26. public static function upTaskOrder($masterWorkerId): bool
  27. {
  28. $taskWorker = TrainingWorkerTask::where('master_worker_id',$masterWorkerId)->findOrEmpty();
  29. if (!$taskWorker->isEmpty() && $taskWorker->shop_orders_id == 0) {
  30. //shop_goods_id INT ( 10 ) DEFAULT 0 NOT NULL COMMENT '商品id(套餐)',
  31. //shop_orders_id int(10) NOT NULL DEFAULT '0' COMMENT '购买单号id',
  32. // 检查是否已经购买套餐
  33. $sn_orders = ShopOrders::where('worker_id',$masterWorkerId)->where('pay_status',1)->where('refund_status',0)->column('id','sn');
  34. if (!empty($sn_orders)) {
  35. $shopOrderGoods = ShopOrderGoods::whereIn('sn',array_keys($sn_orders))->where('shop_goods_id',$taskWorker->shop_goods_id)->findOrEmpty();
  36. if (!$shopOrderGoods->isEmpty()) {
  37. $taskWorker->shop_orders_id = $sn_orders[$shopOrderGoods->sn];
  38. $taskWorker->save();
  39. // 暂时不限制
  40. /*$training_course_ids = json_decode(TrainingTask::where('id',$taskWorker->training_task_id)->value('training_course_id'),true);
  41. // 添加该工程师的所有培训课程初始化记录
  42. foreach ($training_course_ids as $course_id) {
  43. $workerCourse = TrainingWorkerCourse::create([
  44. 'master_worker_id' => $masterWorkerId,
  45. 'training_task_id' => $taskWorker->training_task_id,
  46. 'training_course_id' => $course_id,
  47. 'play_time' => 0,
  48. 'exam_start_time' => 0,
  49. 'exam_end_time' => 0,
  50. 'study_status' => 0,
  51. 'exam_score' => 0,
  52. ]);
  53. // 添加该工程师该课程的所有试题初始化记录
  54. //[{"block_key":1,"select_value":1,"score":"20"},{"block_key":2,"select_value":2,"score":"10"},{"block_key":3,"select_value":3,"score":"70"}]
  55. $course_question = json_decode(TrainingCourse::where('id',$course_id)->value('course_question_setting'),true);
  56. $course_question_ids = array_column($course_question,'select_value');
  57. foreach ($course_question_ids as $question_id) {
  58. $workerQuestion = TrainingWorkerQuestion::create([
  59. 'worker_course_id' => $workerCourse->id,
  60. 'questions_id' => $question_id,
  61. 'worker_answer' => '',
  62. 'exam_score' => 0
  63. ]);
  64. }
  65. }*/
  66. return true;
  67. }
  68. }
  69. }
  70. return false;
  71. }
  72. }