diff --git a/app/api/controller/TaskController.php b/app/api/controller/TaskController.php index 287aa5eaa..a6f7d8a31 100644 --- a/app/api/controller/TaskController.php +++ b/app/api/controller/TaskController.php @@ -397,7 +397,7 @@ class TaskController extends BaseApiController public function commit_town_task_type_marketing_director_10() { try { - $parmas = $this->request->param(); //id stage stage1第一阶段完成证明 stage2 stage3 stage4 + $parmas = $this->request->param(); //id stage stage_1第一阶段完成证明 stage_2 stage_3 stage_4 $task = TaskLogic::detail($parmas); if (empty($task)) { $this->fail('任务不存在'); diff --git a/app/common/logic/approve/ApproveLogic.php b/app/common/logic/approve/ApproveLogic.php index 986ae9ffd..0a52ffadb 100644 --- a/app/common/logic/approve/ApproveLogic.php +++ b/app/common/logic/approve/ApproveLogic.php @@ -23,30 +23,20 @@ class ApproveLogic extends BaseLogic } // 修改任务完成状态 if ($params['check_status'] == 2) { - self::pass($approve,$userInfo); + self::pass($approve); } // 回调商城,通知审核状态 if (in_array($approve['type'], [2, 3])) { $shopMerchantInfo = json_decode($approve['extend'], true); - self::shopCallBack($approve, $shopMerchantInfo, $params); + self::shopCallBack($approve, $shopMerchantInfo, $params, $userInfo); } } - private static function pass(Approve $approve, $userInfo) + private static function pass(Approve $approve) { - Db::startTrans(); $approve->check_status = 2; $approve->save(); - // 记录商户入驻时间,镇农科公司市场部长任务会使用到 - $shopMerchantInfo = json_decode($approve['extend'], true); - $data = [ - 'town_company_id' => $userInfo['company_id'], - 'mer_intention_id' => $shopMerchantInfo['mer_intention_id'], - 'create_time' => time() - ]; - ShopMerchantSettleinLog::create($data); - Db::commit(); } private static function refuse(Approve $approve, $params) @@ -56,13 +46,25 @@ class ApproveLogic extends BaseLogic $approve->save(); } - private static function shopCallBack(Approve $approve, $shopMerchantInfo, $params) + private static function shopCallBack(Approve $approve, $shopMerchantInfo, $params, $userInfo) { $status = $params['check_status'] == 2? 1: 2; + // 通过商户入驻审批, 记录商户入驻时间,镇农科公司市场部长任务会使用到 + if ($status == 1 && $approve['type'] == 2) { + $shopMerchantInfo = json_decode($approve['extend'], true); + $data = [ + 'town_company_id' => $userInfo['company_id'], + 'mer_intention_id' => $shopMerchantInfo['mer_intention_id'], + 'create_time' => time() + ]; + ShopMerchantSettleinLog::create($data); + } + // 通知商城审批状态 $requestResponse = HttpClient::create()->request('POST', env('url.shop_prefix') . '/api/merchant/syncStatus/'.$shopMerchantInfo['mer_intention_id'], [ 'body' => ['status' => $status, 'type' => $approve['type'] ==2 ? 1: 2, 'remark'=> $params['remark']??''] ]); + Log::info(['通知商城审批状态-参数', ['status' => $status, 'type' => $approve['type']]]); Log::info(['通知商城审批状态-响应', [$requestResponse->getContent()]]); } diff --git a/app/common/logic/task/TaskLogic.php b/app/common/logic/task/TaskLogic.php index f5fa3e36e..2d866cfb6 100644 --- a/app/common/logic/task/TaskLogic.php +++ b/app/common/logic/task/TaskLogic.php @@ -575,8 +575,14 @@ class TaskLogic extends BaseLogic case 'town_task_type_marketing_director_9': self::dealTaskMarketingDirector9($taskSchedulePlan); break; + // 数字农贸宣传、加工业务建设和招商任务 case 'town_task_type_marketing_director_10': - self::dealTaskMarketingDirector10($taskSchedulePlan); + // 该任务的判定都需要上传资料,后台审批任务是否完成. 因此每天自动结算时,任务状态不为完成的,都做关闭任务处理 + $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; @@ -1474,8 +1480,58 @@ class TaskLogic extends BaseLogic } return $taskMoney; } + + + /** + * 伪代码注释 自动判定时逻辑 + * 任务累计天数 < 第一阶段天数 关闭任务 + * 任务累计天数 = 第一阶段 判定任务完成情况,计算任务金额,分润结算 + * 第一阶段 < 任务累计天数 < 第一+第二阶段天数 关闭任务 + * 任务累计天数 = 第一+第二阶段 判定任务完成情况,计算任务金额,分润结算 + * 第一+第二阶段 < 任务累计天数 < 第一+第二+第三阶段天数 关闭任务 + * 任务累计天数 = 第一+第二+第三阶段 判定任务完成情况,计算任务金额,分润结算 + * 第一+第二+第三阶段天数 < 任务累计天数 且不能整除30 关闭任务 + * 任务累计天数 > 第一+第二+第三阶段天数 且能整除30 判定任务完成情况,计算金额,分润结算 + */ + + /** + * @param $taskSchedulePlan + * 数字农贸宣传业务、加工业务的建设和招商工作 后台审批通过时做结算 把凭证保存到任务的extend中 + */ private static function dealTaskMarketingDirector10($taskSchedulePlan) { + $templateInfo = $taskSchedulePlan['template_info']; + $dayCount = $templateInfo['day_count']; + $stageDayOne = $templateInfo['stage_day_one']; + $stageDayTwoCount = bcadd($templateInfo['stage_day_one'], $templateInfo['stage_day_two']); + $stageDayThreeCount = bcadd($templateInfo['stage_day_three'], $stageDayTwoCount); + $townCompany = Company::where(['id' => $templateInfo['company_id']])->find(); + $taskInfo = Task::where(['id' => $taskSchedulePlan['task_id']])->find(); + + // 任务累计天数 < 第一阶段天数 关闭任务 + if ($dayCount < $stageDayOne) { + (new Task())->closeTask($taskSchedulePlan['task_id']); + } + + // 任务累计天数 = 第一阶段 判定任务完成情况,计算任务金额,分润结算 + if ($dayCount == $stageDayOne) { + + } + + // 第一阶段 < 任务累计天数 < 第一+第二阶段天数 关闭任务 + if ($dayCount < $stageDayTwoCount) { + + } + + // 任务累计天数 = 第一+第二阶段 判定任务完成情况,计算任务金额,分润结算 + + // 第一+第二阶段 < 任务累计天数 < 第一+第二+第三阶段天数 关闭任务 + + // 任务累计天数 = 第一+第二+第三阶段 判定任务完成情况,计算任务金额,分润结算 + + // 第一+第二+第三阶段天数 < 任务累计天数 且不能整除30 关闭任务 + + // 任务累计天数 > 第一+第二+第三阶段天数 且能整除30 判定任务完成情况,计算金额,分润 } /** @@ -1655,7 +1711,6 @@ class TaskLogic extends BaseLogic TaskSchedulingPlan::where(['id' => $taskSchedulePlan['id']])->update( [ - 'create_time' => $time+86400, //第二天的00:00:00 'update_time' =>time(), 'start_time'=>$time+86400, //第二天的00:00:00 'end_time'=>$time+86400+86399 //第二天的 23:59:59 @@ -1663,7 +1718,6 @@ class TaskLogic extends BaseLogic Task::where('id', $taskSchedulePlan['task_id'])->update( [ - 'create_time' => $time+86400, 'update_time' => time(), 'start_time'=> $time+86400, 'end_time'=> $time+86400+86399 diff --git a/app/common/model/Approve.php b/app/common/model/Approve.php index 822d0850c..33d000b6f 100644 --- a/app/common/model/Approve.php +++ b/app/common/model/Approve.php @@ -11,6 +11,10 @@ class Approve extends BaseModel use SoftDelete; protected $name = 'approve'; protected $deleteTime = 'delete_time'; + const APPROVE_TYPE_1 = 1; // 其他任务 + const APPROVE_TYPE_2 = 2; // 商户入驻 + const APPROVE_TYPE_3 = 3; // 开通交易 + const APPROVE_TYPE_4 = 4; // 镇农科市场部长数字农贸宣传业务、加工业务的建设和招商任务 public function task() { diff --git a/app/common/model/ShopMerchantSettleinLog.php b/app/common/model/ShopMerchantSettleinLog.php index e679e2155..93e3872d6 100644 --- a/app/common/model/ShopMerchantSettleinLog.php +++ b/app/common/model/ShopMerchantSettleinLog.php @@ -4,5 +4,5 @@ namespace app\common\model; class ShopMerchantSettleinLog extends BaseModel { - protected $name = 'shop_merchant_settle_log'; + protected $name = 'shop_merchant_settlein_log'; } \ No newline at end of file