From 02f1b6309638fc79b543ecfcbc320e632aea107b Mon Sep 17 00:00:00 2001 From: chenbo <709206448@qq.com> Date: Tue, 24 Oct 2023 14:26:19 +0800 Subject: [PATCH] update --- app/common/logic/task/TaskLogic.php | 126 +++++++++++++++------------- 1 file changed, 69 insertions(+), 57 deletions(-) diff --git a/app/common/logic/task/TaskLogic.php b/app/common/logic/task/TaskLogic.php index c314f30fe..b26e30fe4 100644 --- a/app/common/logic/task/TaskLogic.php +++ b/app/common/logic/task/TaskLogic.php @@ -657,58 +657,63 @@ class TaskLogic extends BaseLogic */ private static function marketingManagerTaskSettlement($taskSchedulePlan) { - $taskTemplateInfo = $taskSchedulePlan['template_info']; - // 任务类型用的数据字典主键id,将id和value作映射,避免测试和正式环境数据字典数据不一致时出问题 - $townTaskTypeList = DictData::where(['type_value' => 'town_task_type_marketing_director', 'status' => 1])->column('value', 'id'); - switch ($townTaskTypeList[$taskTemplateInfo['type']]){ - // 协助总负责人开展工作 - case 'town_task_type_marketing_director_1': - self::dealTaskMarketingDirector1($taskSchedulePlan); - break; - // 招驻供应链商户 - case 'town_task_type_marketing_director_2': - self::dealTaskMarketingDirector2($taskSchedulePlan); - break; - // 协助供应链商户上架商品和库存更新 - case 'town_task_type_marketing_director_3': - self::dealTaskMarketingDirector3($taskSchedulePlan); - break; - // 督促供应链商户完成采购 - case 'town_task_type_marketing_director_4': - self::dealTaskMarketingDirector4($taskSchedulePlan); - break; - // 督促供应链商户完成销售 - case 'town_task_type_marketing_director_5': - self::dealTaskMarketingDirector5($taskSchedulePlan); - break; - // 招驻一般商户 - case 'town_task_type_marketing_director_6': - self::dealTaskMarketingDirector6($taskSchedulePlan); - break; - // 协助一般商户上架商品和库存更新 - case 'town_task_type_marketing_director_7': - self::dealTaskMarketingDirector7($taskSchedulePlan); - break; - // 督促一般商户完成采购 - case 'town_task_type_marketing_director_8': - self::dealTaskMarketingDirector8($taskSchedulePlan); - break; - // 督促一般商户完成销售 - case 'town_task_type_marketing_director_9': - self::dealTaskMarketingDirector9($taskSchedulePlan); - break; - // 数字农贸宣传、加工业务建设和招商任务 - case 'town_task_type_marketing_director_10': - // 该任务的判定都需要上传资料,后台审批任务是否完成. 因此每天自动结算时,任务状态不为完成的,都做关闭任务处理 - $task = Task::where(['id'=>$taskSchedulePlan['task_id']])->find(); - if ($task['status'] != 3) { - (new Task())->closeTask($taskSchedulePlan['task_id']); - } + try { + $taskTemplateInfo = $taskSchedulePlan['template_info']; + // 任务类型用的数据字典主键id,将id和value作映射,避免测试和正式环境数据字典数据不一致时出问题 + $townTaskTypeList = DictData::where(['type_value' => 'town_task_type_marketing_director', 'status' => 1])->column('value', 'id'); + switch ($townTaskTypeList[$taskTemplateInfo['type']]){ + // 协助总负责人开展工作 + case 'town_task_type_marketing_director_1': + self::dealTaskMarketingDirector1($taskSchedulePlan); + break; + // 招驻供应链商户 + case 'town_task_type_marketing_director_2': + self::dealTaskMarketingDirector2($taskSchedulePlan); + break; + // 协助供应链商户上架商品和库存更新 + case 'town_task_type_marketing_director_3': + self::dealTaskMarketingDirector3($taskSchedulePlan); + break; + // 督促供应链商户完成采购 + case 'town_task_type_marketing_director_4': + self::dealTaskMarketingDirector4($taskSchedulePlan); + break; + // 督促供应链商户完成销售 + case 'town_task_type_marketing_director_5': + self::dealTaskMarketingDirector5($taskSchedulePlan); + break; + // 招驻一般商户 + case 'town_task_type_marketing_director_6': + self::dealTaskMarketingDirector6($taskSchedulePlan); + break; + // 协助一般商户上架商品和库存更新 + case 'town_task_type_marketing_director_7': + self::dealTaskMarketingDirector7($taskSchedulePlan); + break; + // 督促一般商户完成采购 + case 'town_task_type_marketing_director_8': + self::dealTaskMarketingDirector8($taskSchedulePlan); + break; + // 督促一般商户完成销售 + case 'town_task_type_marketing_director_9': + self::dealTaskMarketingDirector9($taskSchedulePlan); + break; + // 数字农贸宣传、加工业务建设和招商任务 + case 'town_task_type_marketing_director_10': + // 该任务的判定都需要上传资料,后台审批任务是否完成. 因此每天自动结算时,任务状态不为完成的,都做关闭任务处理 + $task = Task::where(['id'=>$taskSchedulePlan['task_id']])->find(); + if ($task['status'] != 3) { + (new Task())->closeTask($taskSchedulePlan['task_id']); + } // self::dealTaskMarketingDirector10($taskSchedulePlan); - break; - default: - return true; + break; + default: + return true; + } + } catch (Exception $e) { + Log::error(['镇农科任务结算失败',$e->getFile(), $e->getLine(), $e->getMessage()]); } + } /** @@ -779,11 +784,11 @@ class TaskLogic extends BaseLogic $param['end_time'] = time(); $param['responsible_area'] = $townCompany['responsible_area']; $result = ShopRequestLogic::getSupplyChainMerchantCount($param); - if (!$result) { + if ($result['status'] != 200) { Log::error('查询供应链商户统计接口失败'.ShopRequestLogic::getError()); return false; } - $count = $result['count']; // todo 从$result取值 + $count = $result['data']['count']; // 完成数小于3,关闭任务,不做结算 if ($count < 3){ @@ -830,9 +835,13 @@ class TaskLogic extends BaseLogic 'mer_intention_id' => $merIntentionId, ]; $result = ShopRequestLogic::getProductListing($param); - Log::info(['4.市场部长-供应链商户完成商品上架和库存更新任务-查询商城接口结果', json_encode($result)]); - // 达到目标数 完成则结算 todo 返回字段要对接 - if ($result['count'] >= $templateInfo['extend']['target']){ + if ($result['status'] != 200) { + Log::info(['4.市场部长-供应链商户完成商品上架和库存更新任务-查询商城接口结果', json_encode($result)]); + return false; + } + $count = $result['data']['count']; + // 达到目标数 完成则结算 + if ($count >= $templateInfo['extend']['target']){ // 结算金额 任务金额/目标数 * 天数 $taskInfo['money'] = bcmul($templateInfo['stage_day_one'], bcdiv($templateInfo['money'], $templateInfo['extend']['target'])); Log::info(['5.市场部长-供应链商户完成商品上架任务-$taskSchedulePlan', json_encode($taskSchedulePlan)]); @@ -852,8 +861,11 @@ class TaskLogic extends BaseLogic 'end_time' => $endTime, 'mer_intention_id' => $merIntentionId, ]; - $result1 = ShopRequestLogic::getStockUpdate($param); // todo 返回字段要对接 - Log::info(['4.市场部长-供应链商户完成库存更新任务-查询商城接口结果', json_encode($result)]); + $result1 = ShopRequestLogic::getStockUpdate($param); + if ($result['status'] != 200) { + Log::info(['4.市场部长-供应链商户完成库存更新任务-查询商城接口结果', json_encode($result)]); + return false; + } if ($result1['is_done'] == 1){ // 结算金额 任务金额/目标数 * 天数 $taskInfo['money'] = bcmul($templateInfo['stage_day_two'], bcdiv($templateInfo['money_two'], $templateInfo['extend']['target']));