title = '商户折扣管理'; $this->mid = input('mid'); $this->project_id = input('project_id'); $query = $this->_query('merchant_project_product'); $query->equal('mid,project_id')->dateBetween('create_at'); $query->group('product_key')->order('id desc')->page(); } /** * 数据列表处理 * @param array $data * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ protected function _page_filter(&$data) { foreach ($data as &$vo) { $merchant = $this->app->db->name('merchant_list')->where(['id' => $vo['mid']])->find(); $vo['mname'] = $merchant['name']; $project = $this->app->db->name('merchant_project')->where(['id' => $vo['project_id']])->find(); $vo['pname'] = $project['name']; $vo['product_name'] = $this->app->db->name('channel_product')->where(['key' => $vo['product_key']])->value('name'); $percent = $this->app->db->name($this->table)->where(['mid' => $vo['mid'], 'project_id' => $vo['project_id'], 'product_key' => $vo['product_key']])->find(); $vo['rule'] = ''; if ($percent) { $vo['percent'] = $percent['percent']; $vo['rule'] = $this->rule($percent['rule']); } else { $vo['percent'] = $merchant['percent']; } } } protected function rule($rule) { if ($rule) { $rule = json_decode($rule, true); $table = ''; $table .= ''; foreach ($rule as $k => $v) { $table .= ''; } $table .= '
面值 折扣
'.$k.' '.$v.'
'; return $table; } else { return ''; } } # 获取所有选择的面值 private function getCash($mid, $product_key, $project_id) { $product = $this->app->db->name('merchant_product')->where(['mid' => $mid, 'product_key' => $product_key, 'project_id' => $project_id])->select(); $cash = array(); if ($product) { foreach ($product as $k => $v) { if ($v['cash']) { $temp = explode(',', $v['cash']); foreach ($temp as $k1 => $v1) { if (isset($cash[$v1]) && $cash[$v1]) { } else { $cash[$v1] = $v1; } } } } } return $cash; } /** * 表单数据处理 * @param array $data * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ protected function _form_filter(&$data) { $this->mid = input('mid'); $this->project_id = input('project_id'); $this->pid = input('pid'); $this->product_key = input('product_key'); $this->cash = $this->getCash($this->mid, $this->product_key, $this->project_id); $this->rule = array(); $info = $this->app->db->name($this->table)->where(['mid' => $this->mid, 'project_id' => $this->project_id, 'product_key' => $this->product_key])->find(); if (!$info) { $merchant = $this->app->db->name('merchant_list')->where(['id' => $this->mid])->find(); $data['percent'] = $merchant['percent']; } else { $data['percent'] = $info['percent']; if ($info['rule']) { $this->rule = json_decode($info['rule'], true); } } } protected function _form_result($id, $data) { $this->mid = input('mid'); $this->project_id = input('project_id'); $this->pid = input('pid'); $this->product_key = input('product_key'); $this->cash = $this->getCash($this->mid, $this->product_key, $this->project_id); $info = $this->app->db->name($this->table)->where(['mid' => $this->mid, 'project_id' => $this->project_id, 'product_key' => $this->product_key])->find(); $percent = input('percent'); if ($this->cash) { $rule = array(); foreach ($this->cash as $k => $v) { $input = input('cash_percent_' . $v); if ($input) { $rule[$v] = $input; } } if ($rule) { $rule = json_encode($rule); } } else { $rule = ''; } if (!$info) { $mid = $insert['mid'] = $this->mid; $project_id = $insert['project_id'] = $this->project_id; $product_key = $insert['product_key'] = $this->product_key; $insert['percent'] = $percent; if ($rule) { $insert['rule'] = $rule; } $this->app->db->name($this->table)->insert($insert); } else { $mid = $update['mid'] = $this->mid; $project_id = $update['project_id'] = $this->project_id; $product_key = $update['product_key'] = $this->product_key; $update['percent'] = $percent; if ($rule) { $update['rule'] = $rule; } $this->app->db->name($this->table)->where(['id' => $info['id']])->update($update); } } /** * 编辑 * @auth true * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ public function edit() { $this->_form($this->table, 'form'); } /** * 删除渠道商品 * @auth true * @throws \think\db\exception\DbException */ public function remove() { $this->_delete($this->table); } }