add:任务10提交接口

This commit is contained in:
chenbo 2023-10-18 11:17:03 +08:00
parent aa0e5c9ae6
commit fe312ed117
5 changed files with 79 additions and 19 deletions

View File

@ -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('任务不存在');

View File

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

View File

@ -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

View File

@ -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()
{

View File

@ -4,5 +4,5 @@ namespace app\common\model;
class ShopMerchantSettleinLog extends BaseModel
{
protected $name = 'shop_merchant_settle_log';
protected $name = 'shop_merchant_settlein_log';
}