diff --git a/Application/Admin/Controller/StatementMangementController.class.php b/Application/Admin/Controller/StatementMangementController.class.php index 0e741a1d6..69f8a1e01 100644 --- a/Application/Admin/Controller/StatementMangementController.class.php +++ b/Application/Admin/Controller/StatementMangementController.class.php @@ -264,18 +264,29 @@ class StatementMangementController extends ThinkController if (!empty(I('account'))) { $map['accounts'] = ['like', '%' . I('account') . '%']; } - $list = M('reward_record', 'tab_')->where($map)->page($p, $row)->select(); + $list = M('reward_record', 'tab_') + ->field('tab_reward_record.*, tab_promote.account as promote_account, tab_game.partner_id') + ->where($map) + ->join('tab_promote on tab_reward_record.promote_id = tab_promote.id', 'left') + ->join('tab_game on tab_game.relation_game_id = tab_reward_record.relation_game_id', 'left') + ->group('tab_reward_record.id') + ->page($p, $row) + ->select(); if ($list) { $companys[1] = array_column(M('partner', 'tab_')->field('id, partner as name')->select(), 'name', 'id'); $companys[2] = array_column(M('promote_company', 'tab_')->field('id, company_name as name')->select(), 'name', 'id'); $games = array_column(M('game', 'tab_')->field('relation_game_id, relation_game_name')->group('relation_game_id')->select(), 'relation_game_name', 'relation_game_id'); foreach ($list as &$item) { $item['company_name'] = $companys[$item['company_type']][$item['company_id']]; + $item['partner_name'] = $companys[1][$item['partner_id']] ?? '无'; $item['accounts'] = json_decode($item['accounts'], true) ?: []; + $item['settlement_info'] = json_decode($item['settlement_info'], true) ?: []; $item['reward_type_desc'] = $item['reward_type'] == 1 ? "奖励" : "惩罚"; $item['company_type_desc'] = $item['company_type'] == 1 ? "上游公司" : "下游公司"; $item['relation_game_name'] = $games[$item['relation_game_id']]; - $item['reward_time'] = $item['reward_time'] ? date('Y-m-d H:i:s', $item['reward_time']) : '-'; + $item['reward_time'] = $item['reward_time'] ? intval(date('m', $item['reward_time'])) . '月' : '-'; + $item['confirm_time'] = $item['confirm_time'] ? date('Y-m-d H:i:s', $item['confirm_time']) : '-'; + $item['row'] = sizeof($item['settlement_info']) ?? 1; // if ($item['company_type'] == 1) { // } else { @@ -303,11 +314,28 @@ class StatementMangementController extends ThinkController 'money' => I('money'), 'content' => I('content'), 'remark' => I('remark'), - 'reward_time' => strtotime(I('reward_time')) + 'promote_id' => I('promote_id'), + 'settlement_info' => json_encode(I('settlement_info') ? array_values(I('settlement_info')) : []), + 'reward_time' => strtotime(I('reward_time')), + 'confirm_time' => strtotime(I('confirm_time')) ]; - + $settlment_info = I('settlement_info'); $accounts = I('account'); $user_types = I('user_type'); + if ($settlment_info) { + foreach($settlment_info as $item) { + if (!is_numeric($item['price']) || empty($item['price'])) { + return $this->error('请填写完整的结算信息'); + } + } + $promoterIds = array_column($settlment_info, 'promote_id'); + if (in_array(0, $promoterIds)) { + return $this->error('请选择合作方后再提交'); + } + if (sizeof(array_unique($promoterIds)) != sizeof($promoterIds)) { + return $this->error('含有重复的结算方,请确认!'); + } + } if ($accounts) { foreach ($accounts as $index => $account) { @@ -369,13 +397,16 @@ class StatementMangementController extends ThinkController } else { $data = M('reward_record', 'tab_')->where(['id'=>$id])->find(); if (!$data) return $this->error("未找到该记录"); + $data['confirm_time'] = $data['confirm_time'] ? date('Y-m-d H:i:s', $data['confirm_time']) : ''; $data['accounts'] = json_decode($data['accounts'], true) ?: []; + $data['settlement_info'] = json_decode($data['settlement_info'], true) ?: []; $this->assign('data', $data); } } else { $data['reward_time'] = strtotime(date('Y-m-01')); $this->assign('data', $data); } + $this->assign('promoters', M('promote', 'tab_')->where(['level'=>1])->field('id, nickname')->select()); $this->display(); } diff --git a/Application/Admin/View/StatementMangement/rewardManageList.html b/Application/Admin/View/StatementMangement/rewardManageList.html index 43eebf417..a30a829d0 100644 --- a/Application/Admin/View/StatementMangement/rewardManageList.html +++ b/Application/Admin/View/StatementMangement/rewardManageList.html @@ -118,12 +118,13 @@