This commit is contained in:
chenbo 2023-10-24 14:26:19 +08:00
parent f7dc74b3fc
commit 02f1b63096

@ -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']));