Преглед изворни кода

add - 后台入驻通过自动配置任务项

liugc пре 1 година
родитељ
комит
a5082d175d

+ 11 - 2
app/adminapi/lists/training/TrainingCourseLists.php

@@ -16,6 +16,7 @@ namespace app\adminapi\lists\training;
 
 
 use app\adminapi\lists\BaseAdminDataLists;
+use app\common\model\goods_category\GoodsCategory;
 use app\common\model\training\TrainingCourse;
 use app\common\lists\ListsSearchInterface;
 
@@ -55,12 +56,20 @@ class TrainingCourseLists extends BaseAdminDataLists implements ListsSearchInter
      */
     public function lists(): array
     {
-        return TrainingCourse::where($this->searchWhere)
-            ->field(['id', 'course_name', 'course_picture', 'course_url', 'course_lock', 'course_length', 'course_question_setting', 'course_question_score'])
+        $lists = TrainingCourse::with(['goodsCategory'])->where($this->searchWhere)
+            ->field(['*'])
             ->limit($this->limitOffset, $this->limitLength)
             ->order(['id' => 'desc'])
             ->select()
             ->toArray();
+        foreach ($lists as &$item) {
+            if($item['goodsCategory']){
+                $item['category_id_text'] = $item['goodsCategory']['name'];
+                $item['category_two_text'] = GoodsCategory::where('id',$item['goodsCategory']['pid']??0)->value('name')??'';
+                $item['category_three_text'] = GoodsCategory::where('id',GoodsCategory::where('id',$item['goodsCategory']['pid'])->value('pid')??0)->value('name')??'';
+            }
+        }
+        return $lists;
     }
 
 

+ 11 - 2
app/adminapi/lists/training/TrainingQuestionsLists.php

@@ -16,6 +16,7 @@ namespace app\adminapi\lists\training;
 
 
 use app\adminapi\lists\BaseAdminDataLists;
+use app\common\model\goods_category\GoodsCategory;
 use app\common\model\training\TrainingQuestions;
 use app\common\lists\ListsSearchInterface;
 
@@ -55,12 +56,20 @@ class TrainingQuestionsLists extends BaseAdminDataLists implements ListsSearchIn
      */
     public function lists(): array
     {
-        return TrainingQuestions::where($this->searchWhere)
-            ->field(['id', 'training_course_id', 'title', 'question_type', 'question_selects', 'question_answer', 'question_analysis'])
+        $lists = TrainingQuestions::with(['goodsCategory'])->where($this->searchWhere)
+            ->field(['*'])
             ->limit($this->limitOffset, $this->limitLength)
             ->order(['id' => 'desc'])
             ->select()
             ->toArray();
+        foreach ($lists as &$item) {
+            if($item['goodsCategory']){
+                $item['category_id_text'] = $item['goodsCategory']['name'];
+                $item['category_two_text'] = GoodsCategory::where('id',$item['goodsCategory']['pid']??0)->value('name')??'';
+                $item['category_three_text'] = GoodsCategory::where('id',GoodsCategory::where('id',$item['goodsCategory']['pid'])->value('pid')??0)->value('name')??'';
+            }
+        }
+        return $lists;
     }
 
 

+ 11 - 2
app/adminapi/lists/training/TrainingTaskLists.php

@@ -16,6 +16,7 @@ namespace app\adminapi\lists\training;
 
 
 use app\adminapi\lists\BaseAdminDataLists;
+use app\common\model\goods_category\GoodsCategory;
 use app\common\model\training\TrainingTask;
 use app\common\lists\ListsSearchInterface;
 
@@ -55,12 +56,20 @@ class TrainingTaskLists extends BaseAdminDataLists implements ListsSearchInterfa
      */
     public function lists(): array
     {
-        return TrainingTask::where($this->searchWhere)
-            ->field(['id', 'task_name', 'training_course_id'])
+        $lists =  TrainingTask::with(['goodsCategory'])->where($this->searchWhere)
+            ->field(['*'])
             ->limit($this->limitOffset, $this->limitLength)
             ->order(['id' => 'desc'])
             ->select()
             ->toArray();
+        foreach ($lists as &$item) {
+            if($item['goodsCategory']){
+                $item['category_id_text'] = $item['goodsCategory']['name'];
+                $item['category_two_text'] = GoodsCategory::where('id',$item['goodsCategory']['pid']??0)->value('name')??'';
+                $item['category_three_text'] = GoodsCategory::where('id',GoodsCategory::where('id',$item['goodsCategory']['pid'])->value('pid')??0)->value('name')??'';
+            }
+        }
+        return $lists;
     }
 
 

+ 9 - 1
app/adminapi/logic/master_worker_register/MasterWorkerRegisterLogic.php

@@ -15,6 +15,8 @@
 namespace app\adminapi\logic\master_worker_register;
 
 
+use app\adminapi\logic\training\TrainingBlockConfigLogic;
+use app\adminapi\logic\training\TrainingWorkerTaskLogic;
 use app\common\enum\notice\NoticeEnum;
 use app\common\model\master_worker\MasterWorker;
 use app\common\model\master_worker\MasterWorkerAuth;
@@ -161,7 +163,13 @@ class MasterWorkerRegisterLogic extends BaseLogic
             MasterWorkerScore::create([
                 'worker_id' => $masterWorker->id
             ]);
-
+            $block_setting = TrainingBlockConfigLogic::getBlockConfig(1);
+            TrainingWorkerTaskLogic::add([
+                'master_worker_id' => $masterWorker->id,
+                'shop_goods_id' => $block_setting['shop_goods_id']??0,
+                'training_task_id' => $block_setting['training_task_id']??0,
+                'task_list' => $block_setting['task_list']??0,
+            ]);
             $masterWorkerRegister = MasterWorkerRegister::where($where)->findOrEmpty();
             if ($masterWorkerRegister->isEmpty()) {
                 MasterWorkerRegister::create([

+ 6 - 9
app/adminapi/logic/tenant/TenantRegisterLogic.php

@@ -17,6 +17,7 @@ namespace app\adminapi\logic\tenant;
 
 use app\adminapi\logic\master_worker\MasterWorkerTeamLogic;
 use app\adminapi\logic\master_worker_register\MasterWorkerRegisterLogic;
+use app\adminapi\logic\training\TrainingBlockConfigLogic;
 use app\adminapi\logic\training\TrainingWorkerTaskLogic;
 use app\common\model\dict\DictData;
 use app\common\model\tenant\TenantRegister;
@@ -133,17 +134,13 @@ class TenantRegisterLogic extends BaseLogic
                 if($res === false){
                     throw new \Exception(MasterWorkerTeamLogic::getError());
                 }
-                //
-                $training_task_id = DictData::where('status', 1)->where('type_value', 'training_task_id')->value('value')??0;
-                if($training_task_id){
-                    $team_task_list = DictData::where('status', 1)->where('type_value', 'team_task_list')->column('value')??[];
+                $block_setting = TrainingBlockConfigLogic::getBlockConfig(2);
+                if($block_setting['training_task_id']){
                     $res = TrainingWorkerTaskLogic::add([
                         'master_worker_id' => $worker_id,
-                        'shop_goods_id' => 0,
-                        //'training_task_id' => $params['training_task_id']??0,
-                        //'task_list' => $params['task_list']??'',
-                        'training_task_id' => $training_task_id,
-                        'task_list' => $team_task_list,
+                        'shop_goods_id' => $block_setting['shop_goods_id']??0,
+                        'training_task_id' => $block_setting['training_task_id']??0,
+                        'task_list' => $block_setting['task_list']??0,
                     ]);
                     if($res === false){
                         throw new \Exception(TrainingWorkerTaskLogic::getError());

+ 121 - 0
app/adminapi/logic/training/TrainingBlockConfigLogic.php

@@ -0,0 +1,121 @@
+<?php
+// +----------------------------------------------------------------------
+// | likeadmin快速开发前后端分离管理后台(PHP版)
+// +----------------------------------------------------------------------
+// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
+// | 开源版本可自由商用,可去除界面版权logo
+// | gitee下载:https://gitee.com/likeshop_gitee/likeadmin
+// | github下载:https://github.com/likeshop-github/likeadmin
+// | 访问官网:https://www.likeadmin.cn
+// | likeadmin团队 版权所有 拥有最终解释权
+// +----------------------------------------------------------------------
+// | author: likeadminTeam
+// +----------------------------------------------------------------------
+
+namespace app\adminapi\logic\training;
+
+
+use app\common\model\training\TrainingBlockConfig;
+use app\common\logic\BaseLogic;
+use think\facade\Db;
+
+
+/**
+ * TrainingBlockConfig逻辑
+ * Class TrainingBlockConfigLogic
+ * @package app\adminapi\logic
+ */
+class TrainingBlockConfigLogic extends BaseLogic
+{
+
+
+    /**
+     * @notes 添加
+     * @param array $params
+     * @return bool
+     * @author likeadmin
+     * @date 2025/03/06 18:08
+     */
+    public static function add(array $params): bool
+    {
+        Db::startTrans();
+        try {
+            TrainingBlockConfig::create([
+                'identity_source' => $params['identity_source'],
+                'block_number' => $params['block_number'],
+                'block_name' => $params['block_name'],
+                'block_setting' => $params['block_setting']
+            ]);
+
+            Db::commit();
+            return true;
+        } catch (\Exception $e) {
+            Db::rollback();
+            self::setError($e->getMessage());
+            return false;
+        }
+    }
+
+
+    /**
+     * @notes 编辑
+     * @param array $params
+     * @return bool
+     * @author likeadmin
+     * @date 2025/03/06 18:08
+     */
+    public static function edit(array $params): bool
+    {
+        Db::startTrans();
+        try {
+            TrainingBlockConfig::where('id', $params['id'])->update([
+                'identity_source' => $params['identity_source'],
+                'block_number' => $params['block_number'],
+                'block_name' => $params['block_name'],
+                'block_setting' => $params['block_setting']
+            ]);
+
+            Db::commit();
+            return true;
+        } catch (\Exception $e) {
+            Db::rollback();
+            self::setError($e->getMessage());
+            return false;
+        }
+    }
+
+
+    /**
+     * @notes 删除
+     * @param array $params
+     * @return bool
+     * @author likeadmin
+     * @date 2025/03/06 18:08
+     */
+    public static function delete(array $params): bool
+    {
+        return TrainingBlockConfig::destroy($params['id']);
+    }
+
+
+    /**
+     * @notes 获取详情
+     * @param $params
+     * @return array
+     * @author likeadmin
+     * @date 2025/03/06 18:08
+     */
+    public static function detail($params): array
+    {
+        return TrainingBlockConfig::findOrEmpty($params['id'])->toArray();
+    }
+
+    public static function getBlockConfig($identity_source,$type = 'all')
+    {
+        $block_setting = TrainingBlockConfig::where('identity_source',$identity_source)->value('block_setting');
+        $block_setting = json_decode($block_setting,true);
+        $settings = array_column($block_setting,'type_value','type');
+        return ($type==='all')?$settings:$settings[$type];
+    }
+
+}

+ 6 - 2
app/adminapi/logic/training/TrainingTaskLogic.php

@@ -38,11 +38,13 @@ class TrainingTaskLogic extends BaseLogic
      */
     public static function add(array $params): bool
     {
+        if($params['subclass']) $params['subclass'] = end($params['subclass']);
         Db::startTrans();
         try {
             TrainingTask::create([
                 'task_name' => $params['task_name'],
-                'training_course_id' => array_map('intval', $params['training_course_id'])
+                'training_course_id' => array_map('intval', $params['training_course_id']),
+                'subclass' => $params['subclass']??0,
             ]);
 
             Db::commit();
@@ -64,11 +66,13 @@ class TrainingTaskLogic extends BaseLogic
      */
     public static function edit(array $params): bool
     {
+        if($params['subclass']) $params['subclass'] = end($params['subclass']);
         Db::startTrans();
         try {
             TrainingTask::where('id', $params['id'])->update([
                 'task_name' => $params['task_name'],
-                'training_course_id' => json_encode(array_map('intval', $params['training_course_id']))
+                'training_course_id' => json_encode(array_map('intval', $params['training_course_id'])),
+                'subclass' => $params['subclass']??0,
             ]);
 
             Db::commit();

+ 4 - 0
app/adminapi/logic/training/TrainingWorkerTaskLogic.php

@@ -126,6 +126,10 @@ class TrainingWorkerTaskLogic extends BaseLogic
      */
     public static function trainingCourseRecord($masterWorkerId,$training_task_id): array
     {
+        $ids = TrainingWorkerCourse::where('training_task_id',$training_task_id)->column('id');
+        if(count($ids)>0){
+            return $ids;
+        }
         $training_course_ids  = json_decode(TrainingTask::where('id',$training_task_id)->value('training_course_id')??'[]',true);
         // 添加该工程师的所有培训课程初始化记录
         foreach ($training_course_ids as $course_id) {

+ 34 - 0
app/common/model/training/TrainingBlockConfig.php

@@ -0,0 +1,34 @@
+<?php
+// +----------------------------------------------------------------------
+// | likeadmin快速开发前后端分离管理后台(PHP版)
+// +----------------------------------------------------------------------
+// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
+// | 开源版本可自由商用,可去除界面版权logo
+// | gitee下载:https://gitee.com/likeshop_gitee/likeadmin
+// | github下载:https://github.com/likeshop-github/likeadmin
+// | 访问官网:https://www.likeadmin.cn
+// | likeadmin团队 版权所有 拥有最终解释权
+// +----------------------------------------------------------------------
+// | author: likeadminTeam
+// +----------------------------------------------------------------------
+
+namespace app\common\model\training;
+
+
+use app\common\model\BaseModel;
+
+
+
+/**
+ * TrainingBlockConfig模型
+ * Class TrainingBlockConfig
+ * @package app\common\model
+ */
+class TrainingBlockConfig extends BaseModel
+{
+    
+    protected $name = 'training_block_config';
+    
+
+    
+}

+ 5 - 2
app/common/model/training/TrainingCourse.php

@@ -16,7 +16,7 @@ namespace app\common\model\training;
 
 
 use app\common\model\BaseModel;
-
+use app\common\model\goods_category\GoodsCategory;
 
 
 /**
@@ -31,6 +31,9 @@ class TrainingCourse extends BaseModel
     protected $type = [
         'course_question_setting' => 'array',
     ];
-
+    public function goodsCategory()
+    {
+        return $this->hasOne(GoodsCategory::class,'id','subclass');
+    }
     
 }

+ 5 - 2
app/common/model/training/TrainingQuestions.php

@@ -16,7 +16,7 @@ namespace app\common\model\training;
 
 
 use app\common\model\BaseModel;
-
+use app\common\model\goods_category\GoodsCategory;
 
 
 /**
@@ -31,6 +31,9 @@ class TrainingQuestions extends BaseModel
     protected $type = [
         'question_selects' => 'array',
     ];
-
+    public function goodsCategory()
+    {
+        return $this->hasOne(GoodsCategory::class,'id','subclass');
+    }
     
 }

+ 5 - 2
app/common/model/training/TrainingTask.php

@@ -16,7 +16,7 @@ namespace app\common\model\training;
 
 
 use app\common\model\BaseModel;
-
+use app\common\model\goods_category\GoodsCategory;
 
 
 /**
@@ -31,6 +31,9 @@ class TrainingTask extends BaseModel
     protected $type = [
         'training_course_id' => 'array',
     ];
-
+    public function goodsCategory()
+    {
+        return $this->hasOne(GoodsCategory::class,'id','subclass');
+    }
     
 }

+ 10 - 0
app/tenantapi/logic/master_worker/MasterWorkerLogic.php

@@ -15,6 +15,8 @@
 namespace app\tenantapi\logic\master_worker;
 
 
+use app\adminapi\logic\training\TrainingBlockConfigLogic;
+use app\adminapi\logic\training\TrainingWorkerTaskLogic;
 use app\common\model\master_worker\MasterWorker;
 use app\common\logic\BaseLogic;
 use app\common\model\master_worker\MasterWorkerRetentionMoneyLog;
@@ -110,6 +112,14 @@ class MasterWorkerLogic extends BaseLogic
                 'audit_state' => 1,
             ]);
 
+            $block_setting = TrainingBlockConfigLogic::getBlockConfig(1);
+            TrainingWorkerTaskLogic::add([
+                'master_worker_id' => $masterWorker->id,
+                'shop_goods_id' => $block_setting['shop_goods_id']??0,
+                'training_task_id' => $block_setting['training_task_id']??0,
+                'task_list' => $block_setting['task_list']??0,
+            ]);
+
             MasterWorkerRegister::create([
                 'maintain_exp_type' => isset($params['maintain_exp_type'])?$params['maintain_exp_type']:0,
                 'other_exp_type' => isset($params['other_exp_type'])?$params['other_exp_type']:'',

+ 0 - 1
app/workerapi/controller/LoginController.php

@@ -140,7 +140,6 @@ class LoginController extends BaseApiController
         if($updata['worker_id']==0){
             return $this->fail('审核失败');
         }
-        MasterWorkerRegister::where('id', $params['worker_register_id'])->update($updata);
         return $this->success('审核通过', ['worker_register_id'=>$params['worker_register_id']], 1, 1);
     }
 

+ 10 - 0
app/workerapi/logic/MasterWorkerRegisterLogic.php

@@ -1,6 +1,8 @@
 <?php
 namespace app\workerapi\logic;
 
+use app\adminapi\logic\training\TrainingBlockConfigLogic;
+use app\adminapi\logic\training\TrainingWorkerTaskLogic;
 use app\common\model\master_worker\MasterWorker;
 use app\common\model\master_worker\MasterWorkerScore;
 use app\common\model\master_worker_register\MasterWorkerRegister;
@@ -78,6 +80,14 @@ class MasterWorkerRegisterLogic extends BaseLogic
             MasterWorkerScore::create([
                 'worker_id' => $masterWorker->id
             ]);
+            MasterWorkerRegister::where('id', $params['worker_register_id'])->update(['worker_id' => $masterWorker->id]);
+            $block_setting = TrainingBlockConfigLogic::getBlockConfig(1);
+            TrainingWorkerTaskLogic::add([
+                'master_worker_id' => $masterWorker->id,
+                'shop_goods_id' => $block_setting['shop_goods_id']??0,
+                'training_task_id' => $block_setting['training_task_id']??0,
+                'task_list' => $block_setting['task_list']??0,
+            ]);
         }
         return $masterWorker->id;
     }