add:1.商户入驻审批通过时,记录通过时间作为商户入驻时间。shop_merchant_settle_log 2.市场部长任务1,2,3判定和结算
This commit is contained in:
parent
6fb8556c59
commit
f5f28988e5
@ -33,7 +33,7 @@ class ApproveController extends BaseApiController
|
||||
if (!$approve) {
|
||||
throw new Exception('数据不存在');
|
||||
}
|
||||
ApproveLogic::audit($approve, $params);
|
||||
ApproveLogic::audit($approve, $params, $this->userInfo);
|
||||
return $this->success('操作成功');
|
||||
} catch (Exception $exception) {
|
||||
return $this->fail(ApproveLogic::getError() ?? $exception->getMessage());
|
||||
|
80
app/common/logic/ShopRequestLogic.php
Normal file
80
app/common/logic/ShopRequestLogic.php
Normal file
@ -0,0 +1,80 @@
|
||||
<?php
|
||||
|
||||
namespace app\common\logic;
|
||||
|
||||
use Symfony\Component\HttpClient\HttpClient;
|
||||
use think\Exception;
|
||||
|
||||
class ShopRequestLogic extends BaseLogic
|
||||
{
|
||||
public static $shopUrlPrefix;
|
||||
public function __construct()
|
||||
{
|
||||
self::$shopUrlPrefix = env('url.shop_prefix');
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询时间范围内,某一农科公司下的 供应链商户入驻统计
|
||||
*/
|
||||
public static function getSupplyChainMerchantCount($param)
|
||||
{
|
||||
try {
|
||||
$requestResponse = HttpClient::create()->request('GET', self::$shopUrlPrefix . '', [
|
||||
'query' => $param
|
||||
]);
|
||||
return $requestResponse->getContent();
|
||||
} catch (Exception $e) {
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询商户入驻5天内是否完成商品上架
|
||||
*/
|
||||
public static function getProductListing($param)
|
||||
{
|
||||
try {
|
||||
$requestResponse = HttpClient::create()->request('GET', self::$shopUrlPrefix . '', [
|
||||
'query' => $param
|
||||
]);
|
||||
return $requestResponse->getContent();
|
||||
} catch (Exception $e) {
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 商户入驻20天后是否完成库存更新
|
||||
*/
|
||||
public static function getStockUpdate($param)
|
||||
{
|
||||
try {
|
||||
$requestResponse = HttpClient::create()->request('GET', self::$shopUrlPrefix . '', [
|
||||
'query' => $param
|
||||
]);
|
||||
return $requestResponse->getContent();
|
||||
} catch (Exception $e) {
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询商户采购金额
|
||||
*/
|
||||
public static function getPurchaseAmount($param)
|
||||
{
|
||||
try {
|
||||
$requestResponse = HttpClient::create()->request('GET', self::$shopUrlPrefix . '', [
|
||||
'query' => $param
|
||||
]);
|
||||
return $requestResponse->getContent();
|
||||
} catch (Exception $e) {
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -4,6 +4,7 @@ namespace app\common\logic\approve;
|
||||
|
||||
use app\common\logic\BaseLogic;
|
||||
use app\common\model\Approve;
|
||||
use app\common\model\ShopMerchantSettleinLog;
|
||||
use Symfony\Component\HttpClient\HttpClient;
|
||||
use think\facade\Db;
|
||||
use think\facade\Log;
|
||||
@ -11,7 +12,7 @@ use think\facade\Log;
|
||||
|
||||
class ApproveLogic extends BaseLogic
|
||||
{
|
||||
public static function audit($approve, $params)
|
||||
public static function audit($approve, $params, $userInfo)
|
||||
{
|
||||
// 拒绝通过
|
||||
if ($params['check_status'] == 3) {
|
||||
@ -22,7 +23,7 @@ class ApproveLogic extends BaseLogic
|
||||
}
|
||||
// 修改任务完成状态
|
||||
if ($params['check_status'] == 2) {
|
||||
self::pass($approve);
|
||||
self::pass($approve,$userInfo);
|
||||
}
|
||||
|
||||
// 回调商城,通知审核状态
|
||||
@ -32,10 +33,20 @@ class ApproveLogic extends BaseLogic
|
||||
}
|
||||
}
|
||||
|
||||
private static function pass(Approve $approve)
|
||||
private static function pass(Approve $approve, $userInfo)
|
||||
{
|
||||
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)
|
||||
|
@ -156,9 +156,23 @@ class TownShareProfit
|
||||
$masterMoney = bcdiv($taskInfo['money'], 2, 2);
|
||||
|
||||
$remark = '来自任务【' . $taskSchedulePlan['template_info']['title'] . '】,';
|
||||
|
||||
//负责人收益 todo
|
||||
if ($taskSchedulePlan['template_info']['extend']['task_role'] == 1) {
|
||||
|
||||
}
|
||||
//市场部长收益
|
||||
if ($taskSchedulePlan['template_info']['extend']['task_role'] == 2) {
|
||||
$serviceManagerUser = User::where(['company_id' => $company['id'], 'group_id' => 16])->find();
|
||||
Log::info([$taskSchedulePlan['template_info']['title'].'结算-市场部长用户信息', $serviceManagerUser]);
|
||||
}
|
||||
//服务部长收益 任务金额的50%为服务部长的收益
|
||||
$serviceManagerUser = User::where(['company_id' => $company['id'], 'group_id' => 14])->find();
|
||||
Log::info([$taskSchedulePlan['template_info']['title'].'结算-服务部长用户信息', $serviceManagerUser]);
|
||||
if ($taskSchedulePlan['template_info']['extend']['task_role'] == 3) {
|
||||
$serviceManagerUser = User::where(['company_id' => $company['id'], 'group_id' => 14])->find();
|
||||
Log::info([$taskSchedulePlan['template_info']['title'].'结算-服务部长用户信息', $serviceManagerUser]);
|
||||
}
|
||||
|
||||
|
||||
// 用户收益变动
|
||||
$arr = [$serviceManagerUser['id'], AccountLogEnum::UM_INC_TASK, AccountLogEnum::INC, $masterMoney, $taskSchedulePlan['sn'], $remark.'任务结算获得收益' . $masterMoney . '元', ['company_id' => $company['id'], 'proportion' => $proportion], 1];
|
||||
$this->master($arr);
|
||||
@ -213,4 +227,61 @@ class TownShareProfit
|
||||
{
|
||||
return AccountLogLogic::add($data[0], $data[1], $data[2], $data[3], $data[4], $data[5], $data[6], $data[7]);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function dealTaskSettlementMarketingDirector1($taskInfo, $townCompany, $taskSchedulePlan)
|
||||
{
|
||||
try {
|
||||
Db::startTrans();
|
||||
$this->shareProfit($taskInfo, $townCompany, $taskSchedulePlan);
|
||||
// 更改结算状态
|
||||
(new TaskSchedulingPlan())->settlement($taskSchedulePlan['id']);
|
||||
// 更改任务状态
|
||||
Task::where(['id' => $taskSchedulePlan['task_id']])->update(['status' => 3]);
|
||||
Db::commit();
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
Log::error($taskSchedulePlan['template_info']['title'].'-任务结算失败:' . $e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public function dealTaskSettlementMarketingDirector2(Task $taskInfo, Company $townCompany, TaskSchedulingPlan $taskSchedulePlan)
|
||||
{
|
||||
try {
|
||||
Db::startTrans();
|
||||
$this->shareProfit($taskInfo, $townCompany, $taskSchedulePlan);
|
||||
// 更改结算状态
|
||||
(new TaskSchedulingPlan())->settlement($taskSchedulePlan['id']);
|
||||
// 更改任务状态
|
||||
Task::where(['id' => $taskSchedulePlan['task_id']])->update(['status' => 3]);
|
||||
Db::commit();
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
Log::error($taskSchedulePlan['template_info']['title'].'-任务结算失败:' . $e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public function dealTaskSettlementMarketingDirector3(Task $taskInfo, Company $townCompany, TaskSchedulingPlan $taskSchedulePlan)
|
||||
{
|
||||
try {
|
||||
Db::startTrans();
|
||||
$this->shareProfit($taskInfo, $townCompany, $taskSchedulePlan);
|
||||
// 更改结算状态
|
||||
(new TaskSchedulingPlan())->settlement($taskSchedulePlan['id']);
|
||||
// 更改任务状态
|
||||
Task::where(['id' => $taskSchedulePlan['task_id']])->update(['status' => 3]);
|
||||
Db::commit();
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
Log::error($taskSchedulePlan['template_info']['title'].'-任务结算失败:' . $e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -16,9 +16,11 @@ namespace app\common\logic\task;
|
||||
|
||||
|
||||
use app\common\logic\finance\TownShareProfit;
|
||||
use app\common\logic\ShopRequestLogic;
|
||||
use app\common\model\CompanyComplaintFeedback;
|
||||
use app\common\model\contract\Contract;
|
||||
use app\common\model\dict\DictData;
|
||||
use app\common\model\ShopMerchantSettleinLog;
|
||||
use app\common\model\task\Task;
|
||||
use app\common\logic\BaseLogic;
|
||||
use app\common\model\Company;
|
||||
@ -508,47 +510,304 @@ class TaskLogic extends BaseLogic
|
||||
try {
|
||||
Log::info(['镇农科公司定时任务结算执行-任务计划', $taskSchedulePlan]);
|
||||
$taskTemplateInfo = $taskSchedulePlan['template_info'];
|
||||
// 任务类型用的数据字典主键id,将id和value作映射,避免测试和正式环境数据字典数据不一致时出问题
|
||||
$townTaskTypeList = DictData::where(['type_value' => 'town_task_type', 'status' => 1])->column('value', 'id');
|
||||
switch ($townTaskTypeList[$taskTemplateInfo['type']]){
|
||||
// 负责人任务结算 todo
|
||||
if ($taskTemplateInfo['extend']['task_role'] == 1) {
|
||||
|
||||
case 'town_task_type_1':
|
||||
// 协助总负责人开展工作任务
|
||||
self::dealTownTask1($taskSchedulePlan);
|
||||
break;
|
||||
case 'town_task_type_2':
|
||||
// 拓展小组服务团队工作任务
|
||||
self::dealTownTask2($taskSchedulePlan);
|
||||
break;
|
||||
case 'town_task_type_3':
|
||||
// 督促小组服务团队完成任务,协助开展工作,解决问题任务
|
||||
self::dealTownTask3($taskSchedulePlan);
|
||||
break;
|
||||
case 'town_task_type_4':
|
||||
// 督促小组服务团队学习任务
|
||||
self::dealTownTask4($taskSchedulePlan);
|
||||
break;
|
||||
case 'town_task_type_5':
|
||||
// 督促小组服务团队完成需求收集和交易任务
|
||||
self::dealTownTask5($taskSchedulePlan);
|
||||
break;
|
||||
case 'town_task_type_6':
|
||||
// 督促小组服务团队入股村联络员所成立的公司任务
|
||||
self::dealTownTask6($taskSchedulePlan);
|
||||
break;
|
||||
case 'town_task_type_7':
|
||||
// 安全工作任务
|
||||
self::dealTownTask7($taskSchedulePlan);
|
||||
break;
|
||||
default :
|
||||
return true;
|
||||
}
|
||||
// 市场部长任务结算
|
||||
if ($taskTemplateInfo['extend']['task_role'] == 2) {
|
||||
self::marketingManagerTaskSettlement($taskSchedulePlan);
|
||||
}
|
||||
// 服务部长任务结算
|
||||
if ($taskTemplateInfo['extend']['task_role'] == 3) {
|
||||
self::serviceManagerTaskSettlement($taskSchedulePlan);
|
||||
}
|
||||
|
||||
} catch (Exception $e) {
|
||||
Log::error(['镇农科任务结算失败',$e]);
|
||||
Log::error(['镇农科任务结算失败',$e->getFile(), $e->getLine(), $e->getMessage()]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $taskSchedulePlan
|
||||
* 市场部长任务结算
|
||||
*/
|
||||
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':
|
||||
|
||||
break;
|
||||
case 'town_task_type_marketing_director_5':
|
||||
|
||||
break;
|
||||
case 'town_task_type_marketing_director_6':
|
||||
|
||||
break;
|
||||
case 'town_task_type_marketing_director_7':
|
||||
|
||||
break;
|
||||
case 'town_task_type_marketing_director_8':
|
||||
|
||||
break;
|
||||
case 'town_task_type_marketing_director_9':
|
||||
|
||||
break;
|
||||
case 'town_task_type_marketing_director_10':
|
||||
|
||||
break;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $taskSchedulePlan
|
||||
* 市场部长协助总负责人开展工作 任务完成判定和结算
|
||||
*/
|
||||
private static function dealTaskMarketingDirector1($taskSchedulePlan)
|
||||
{
|
||||
Log::info(['镇农科公司定时任务结算执行-'.$taskSchedulePlan['template_info']['title']]);
|
||||
$taskTemplateInfo = $taskSchedulePlan['template_info'];
|
||||
$taskInfo = Task::where(['id' => $taskSchedulePlan['task_id']])->find();
|
||||
$townCompany = Company::where(['id' => $taskTemplateInfo['company_id']])->find();
|
||||
$groupServiceCompanyList = Company::where(['street' => $townCompany['street'], 'company_type' => 18])->select()->toArray();
|
||||
$isDone = 1; // 任务是否完成标记
|
||||
$isTaskSchedule = 0; // 下属小组服务公司是否有每日任务安排标记
|
||||
|
||||
foreach ($groupServiceCompanyList as $groupServiceCompany) {
|
||||
// 查询小组服务公司是否有对应的每日任务安排
|
||||
$templateList = TaskTemplate::where(['company_id' => $groupServiceCompany['id']])->whereIn('type', [31, 32, 33])->select()->toArray();
|
||||
// 未做任务安排的小组服务公司不在判定范围内,跳出本次循环
|
||||
if(count($templateList) === 3) {
|
||||
$isTaskSchedule = 1;
|
||||
// 查询小组服务公司的循环任务有没有全部做完 任意有一个任务没有做完,则判定为该小组服务公司没有完成每日任务,即协助总负责人开展工作任务也认定失败
|
||||
foreach ($templateList as $template) {
|
||||
$task = Task::where(['template_id' => $template['id'], 'status' => 3])->find();
|
||||
if (empty($task)) {
|
||||
$isDone = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 下属小组服务公司有任务安排,也完成了任务
|
||||
if ($isDone === 1 && $isTaskSchedule === 1) {
|
||||
// 做任务结算,分润
|
||||
(new TownShareProfit())->dealTaskSettlementMarketingDirector1($taskInfo, $townCompany, $taskSchedulePlan);
|
||||
} else {
|
||||
// 关闭任务
|
||||
(new Task())->closeTask($taskSchedulePlan['task_id']);
|
||||
Log::info('协助总负责人开展工作任务,结算失败:' . $taskTemplateInfo['title'] . '未完成。任务:' . json_encode($taskInfo));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 招驻供应链商户 单次任务 任务完成判定和结算
|
||||
* 判定条件 : 任务下发60天内,供应链商户在商城开户并缴纳押金不少于5000,>=6家
|
||||
* 当前任务进行天数 < 第一阶段天数 只刷新任务时间
|
||||
* 当前任务进行天数 = 第一阶段天数 判定任务完成情况,结算
|
||||
*/
|
||||
private static function dealTaskMarketingDirector2($taskSchedulePlan)
|
||||
{
|
||||
$templateInfo = $taskSchedulePlan['template_info'];
|
||||
$dayCount = $templateInfo['day_count'];
|
||||
$townCompany = Company::where(['id' => $templateInfo['company_id']])->find();
|
||||
$taskInfo = Task::where(['id' => $taskSchedulePlan['task_id']])->find();
|
||||
// 当前任务进行天数 < 第一阶段天数 只刷新任务时间
|
||||
if ($dayCount < $templateInfo['stage_day_one']) {
|
||||
self::flushTaskTime($taskSchedulePlan);
|
||||
return true;
|
||||
}
|
||||
|
||||
// 当前任务进行天数 = 第一阶段天数 判定任务完成情况,结算
|
||||
if ($dayCount == $templateInfo['stage_day_one']) {
|
||||
// 请求商城接口,获取完成几家 todo
|
||||
$param['start_time'] = strtotime(date('Y-m-d', $templateInfo['cretate_time'])) + 86400;
|
||||
$param['end_time'] = time();
|
||||
$result = ShopRequestLogic::getSupplyChainMerchantCount($param);
|
||||
if (!$result) {
|
||||
Log::error('查询供应链商户统计接口失败'.ShopRequestLogic::getError());
|
||||
return false;
|
||||
}
|
||||
$count = 0; // todo 从$result取值
|
||||
|
||||
// 完成数小于3,关闭任务,不做结算
|
||||
if ($count < 3){
|
||||
(new Task())->closeTask($taskSchedulePlan['task_id']);
|
||||
}
|
||||
// 完成数大于等于3,结算
|
||||
$target = $templateInfo['extend']['target'];
|
||||
$perMoney = bcdiv(bcmul($templateInfo['stage_day_one'], $templateInfo['money']), $target); // 完成单个金额
|
||||
|
||||
if ($count >= 6) {
|
||||
$count = 6;
|
||||
}
|
||||
$taskInfo['money'] = bcmul($count, $perMoney); // 任务金额
|
||||
// 结算,分润
|
||||
(new TownShareProfit())->dealTaskSettlementMarketingDirector2($taskInfo, $townCompany, $taskSchedulePlan);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 协助供应链商户商品上架和库存更新 长期 判定与结算
|
||||
* 请求商城接口,查询每个商户入驻5天内是否完成商品上架
|
||||
* 请求商城接口,查询每个商户商品上架构后15天内是否完成库存更新
|
||||
*
|
||||
*/
|
||||
public static function dealTaskMarketingDirector3($company, $template, $task, $type)
|
||||
{
|
||||
// 商城商户入驻申请id 与商户已关联
|
||||
$shopMerchantSettleinLogList= ShopMerchantSettleinLog::where(['town_company_id'=>$company['id']])->select()->toArray();
|
||||
// 遍历农科公司区域下的商户,对每个商户进行判定
|
||||
foreach ($shopMerchantSettleinLogList as $item) {
|
||||
|
||||
// 入驻5天内是否完成商品上架
|
||||
$startTime = $item['create_time']; // 入驻时间
|
||||
$endTime = bcadd($startTime, bcmul(86400, $template['stage_day_one']));
|
||||
// 只在入驻5天后的最后一天结算
|
||||
if (date('Y-m-d', $endTime) == date('Y-m-d', time())) {
|
||||
$merIntentionId = $item['mer_intention_id'];
|
||||
$param = [
|
||||
'start_time' => $startTime,
|
||||
'end_time' => $endTime,
|
||||
'mer_intention_id' => $merIntentionId,
|
||||
];
|
||||
$result = ShopRequestLogic::getProductListing($param);
|
||||
Log::info(['4.市场部长-供应链商户完成商品上架和库存更新任务-查询商城接口结果', json_encode($result)]);
|
||||
// 完成则结算 todo 返回字段要对接
|
||||
if ($result['is_done'] == 1){
|
||||
// 结算金额 任务金额/目标数 * 天数
|
||||
$task['money'] = bcmul($template['stage_day_one'], bcdiv($template['money'], $template['extend']['target']));
|
||||
$taskSchedulePlan = TaskSchedulingPlan::where(['id', $task['scheduling_plan_id']])
|
||||
->withJoin(['scheduling'], 'left')
|
||||
->where('scheduling.company_type', 41)
|
||||
->where('is_pay',0)
|
||||
->with(['template_info'])
|
||||
->find();
|
||||
Log::info(['5.市场部长-供应链商户完成商品上架任务-$taskSchedulePlan', json_encode($taskSchedulePlan)]);
|
||||
(new TownShareProfit())->dealTaskSettlementMarketingDirector3($task, $company, $taskSchedulePlan);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 商品上架构后15天内是否完成库存更新
|
||||
$startTime = $item['create_time'];
|
||||
$endTime = bcadd($startTime, bcmul( 86400, bcadd($template['stage_day_one'], $template['stage_day_two']))) ;
|
||||
// 只在上架完成15天后的最后一天结算
|
||||
if (date('Y-m-d', $endTime) == date('Y-m-d', time())) {
|
||||
$merIntentionId = $item['mer_intention_id'];
|
||||
$param = [
|
||||
'start_time' => $startTime,
|
||||
'end_time' => $endTime,
|
||||
'mer_intention_id' => $merIntentionId,
|
||||
];
|
||||
$result1 = ShopRequestLogic::getStockUpdate($param); // todo 返回字段要对接
|
||||
Log::info(['4.市场部长-供应链商户完成库存更新任务-查询商城接口结果', json_encode($result)]);
|
||||
if ($result1['is_done'] == 1){
|
||||
// 结算金额 任务金额/目标数 * 天数
|
||||
$task['money'] = bcmul($template['stage_day_two'], bcdiv($template['money_two'], $template['extend']['target']));
|
||||
$taskSchedulePlan = TaskSchedulingPlan::where(['id', $task['scheduling_plan_id']])
|
||||
->withJoin(['scheduling'], 'left')
|
||||
->where('scheduling.company_type', 41)
|
||||
->where('is_pay',0)
|
||||
->with(['template_info'])
|
||||
->find();
|
||||
Log::info(['5.市场部长-供应链商户完成商品上架任务-$taskSchedulePlan', json_encode($taskSchedulePlan)]);
|
||||
(new TownShareProfit())->dealTaskSettlementMarketingDirector3($task, $company, $taskSchedulePlan);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 未完成的情况下,每天自动关闭任务
|
||||
$task = Task::where(['id'=>$taskSchedulePlan['task_id']])->find();
|
||||
if ($task['status'] != 3) {
|
||||
(new Task())->closeTask($task['id']);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 协助供应链商户采购任务 长期 判定与结算
|
||||
* 根据每个商户入驻时间,推出各个周期范围的起始时间,商户申请id,指定商品id。请求商城接口
|
||||
*/
|
||||
public static function dealTaskMarketingDirector4($company, $template, $task)
|
||||
{
|
||||
// 商城商户入驻申请id 与商户已关联
|
||||
$shopMerchantSettleinLogList= ShopMerchantSettleinLog::where(['town_company_id'=>$company['id']])->select()->toArray();
|
||||
// 遍历农科公司区域下的商户,对每个商户进行判定
|
||||
foreach ($shopMerchantSettleinLogList as $item) {
|
||||
$startTime = $item['create_time']; // 入驻时间
|
||||
$endTime = bcadd($startTime, bcmul(86400, $template['stage_day_one']));
|
||||
$merIntentionId = $item['mer_intention_id'];
|
||||
$param = [
|
||||
'start_time' => $startTime,
|
||||
'end_time' => $endTime,
|
||||
'mer_intention_id' => $merIntentionId,
|
||||
];
|
||||
$result1 = ShopRequestLogic::getStockUpdate($param); // todo 返回字段要对接
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $taskSchedulePlan
|
||||
* 服务部长任务结算
|
||||
*/
|
||||
private static function serviceManagerTaskSettlement($taskSchedulePlan)
|
||||
{
|
||||
$taskTemplateInfo = $taskSchedulePlan['template_info'];
|
||||
// 任务类型用的数据字典主键id,将id和value作映射,避免测试和正式环境数据字典数据不一致时出问题
|
||||
$townTaskTypeList = DictData::where(['type_value' => 'town_task_type', 'status' => 1])->column('value', 'id');
|
||||
switch ($townTaskTypeList[$taskTemplateInfo['type']]){
|
||||
|
||||
case 'town_task_type_1':
|
||||
// 协助总负责人开展工作任务
|
||||
self::dealTownTask1($taskSchedulePlan);
|
||||
break;
|
||||
case 'town_task_type_2':
|
||||
// 拓展小组服务团队工作任务
|
||||
self::dealTownTask2($taskSchedulePlan);
|
||||
break;
|
||||
case 'town_task_type_3':
|
||||
// 督促小组服务团队完成任务,协助开展工作,解决问题任务
|
||||
self::dealTownTask3($taskSchedulePlan);
|
||||
break;
|
||||
case 'town_task_type_4':
|
||||
// 督促小组服务团队学习任务
|
||||
self::dealTownTask4($taskSchedulePlan);
|
||||
break;
|
||||
case 'town_task_type_5':
|
||||
// 督促小组服务团队完成需求收集和交易任务
|
||||
self::dealTownTask5($taskSchedulePlan);
|
||||
break;
|
||||
case 'town_task_type_6':
|
||||
// 督促小组服务团队入股村联络员所成立的公司任务
|
||||
self::dealTownTask6($taskSchedulePlan);
|
||||
break;
|
||||
case 'town_task_type_7':
|
||||
// 安全工作任务
|
||||
self::dealTownTask7($taskSchedulePlan);
|
||||
break;
|
||||
default :
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 系统自动判定镇农科公司下属小组服务公司 是否100%完成每日任务:三轮车任务,档案更新任务,平台交易任务
|
||||
*/
|
||||
@ -576,8 +835,6 @@ class TaskLogic extends BaseLogic
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
// 下属小组服务公司有任务安排,也完成了任务
|
||||
|
8
app/common/model/ShopMerchantSettleinLog.php
Normal file
8
app/common/model/ShopMerchantSettleinLog.php
Normal file
@ -0,0 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace app\common\model;
|
||||
|
||||
class ShopMerchantSettleinLog extends BaseModel
|
||||
{
|
||||
protected $name = 'shop_merchant_settle_log';
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user