diff --git a/api/controllers/wxapp/licheb/Brokerage.php b/api/controllers/wxapp/licheb/Brokerage.php new file mode 100644 index 00000000..8205d4e4 --- /dev/null +++ b/api/controllers/wxapp/licheb/Brokerage.php @@ -0,0 +1,171 @@ +login_white = array();//登录白名单 + $this->check_status = array();//用户状态校验 + $this->check_mobile = array();//需要手机号 + $this->check_headimg = array();//授权微信信息 + $this->load->model('app/licheb/app_licheb_brokerage_model'); + $this->load->model('app/liche/app_liche_users_model'); + $this->load->model('receiver/receiver_clues_model'); + + $this->load->model('auto/auto_series_model'); + $this->load->model('auto/auto_brand_model'); + $this->load->model('auto/auto_attr_model'); + $this->load->model('auto/auto_cars_model'); + } + + protected function get(){ + $biz_id = $this->session['new_biz_id'] ? $this->session['new_biz_id'] : intval($this->session['biz_id']); + $row = $this->app_licheb_brokerage_model->get(['biz_id'=>$biz_id,'status'=>1]); + $data = [ + 'id' => $row['id'] ? $row['id'] : '', + 'brokerage_1' => $row['brokerage_1'] ? $row['brokerage_1'] : 0, + 'brokerage_2' => $row['brokerage_2'] ? $row['brokerage_2'] : 0, + ]; + return $data; + } + //创建佣金 + protected function post(){ + $biz_id = $this->session['new_biz_id'] ? $this->session['new_biz_id'] : intval($this->session['biz_id']); + $brokerage_1 = $this->input_param('brokerage_1'); + $brokerage_2 = $this->input_param('brokerage_2'); + $row = $this->app_licheb_brokerage_model->get(['biz_id'=>$biz_id,'status'=>1]); + if($row){ + throw new Exception('数据已存在', ERR_PARAMS_ERROR); + } + $data = [ + 'biz_id' => $biz_id, + 'brokerage_1' => $brokerage_1, + 'brokerage_2' => $brokerage_2, + 'status' => 1, + 'c_time' => time() + ]; + $result = $this->app_licheb_brokerage_model->add($data); + if($result){ + throw new Exception('添加成功', API_CODE_SUCCESS); + }else{ + throw new Exception('添加失败', ERR_PARAMS_ERROR); + } + } + //修改佣金 + protected function put(){ + $biz_id = $this->session['new_biz_id'] ? $this->session['new_biz_id'] : intval($this->session['biz_id']); + $id = $this->input_param('id'); + $brokerage_1 = $this->input_param('brokerage_1'); + $brokerage_2 = $this->input_param('brokerage_2'); + $row = $this->app_licheb_brokerage_model->get(['id'=>$id,'biz_id'=>$biz_id]); + if(!$row){ + throw new Exception('数据不存在', ERR_PARAMS_ERROR); + } + $up_data = [ + 'brokerage_1' => $brokerage_1, + 'brokerage_2' => $brokerage_2 + ]; + $result = $this->app_licheb_brokerage_model->update($up_data,['id'=>$id]); + if($result){ + throw new Exception('修改成功', API_CODE_SUCCESS); + }else{ + throw new Exception('修改失败', ERR_PARAMS_ERROR); + } + } + + //转介绍订单 + protected function get_orders(){ + $biz_id = $this->session['new_biz_id'] ? $this->session['new_biz_id'] : intval($this->session['biz_id']); + $keyword = $this->input_param('keyword'); + + $page = $this->input_param('page'); + $size = $this->input_param('size'); + + !$page && $page = 1; + !$size && $size = 10; + + $t1 = 'lc_receiver_clues'; + $t2 = 'lc_receiver_orders'; + $where = [ + "{$t2}.status>=" => 0, + "{$t1}.recommend_id>" => 0, + "{$t2}.biz_id" => $biz_id + ]; + if($keyword){ + if(is_numeric($keyword)){ + $where["{$t1}.mobile like '%{$keyword}%'"] = null; + }else{ + $where["{$t1}.name like '%{$keyword}%'"] = null; + } + } + $count = $this->receiver_clues_model->selectClues($where,'', '', '', 1); + $lists = []; + if($count){ + $fileds = "{$t1}.recommend_id,{$t1}.c_time as b_time,{$t1}.name,{$t1}.mobile,{$t2}.brand_id,{$t2}.s_id,{$t2}.v_id,{$t2}.cor_id,{$t2}.c_time"; + $rows = $this->receiver_clues_model->selectClues($where,"{$t1}.id desc", $page, $size,0,$fileds); + + //品牌车型 + $brand_arr = array_unique(array_column($rows,'brand_id')); + $brands = $this->auto_brand_model->get_map_by_ids($brand_arr,'id,name'); + //车系车型 + $series_arr = array_unique(array_column($rows,'s_id')); + $series = $this->auto_series_model->get_map_by_ids($series_arr,'id,name'); + + //获取车辆属性 + $version_arr = array_unique(array_column($rows,'v_id')); + $color_arr = array_unique(array_column($rows,'cor_id')); + $attrs_arr = array_merge($version_arr,$color_arr); + $attrs = $this->auto_attr_model->get_map_by_ids($attrs_arr,'id,title'); + + //获取报备用户 + $uids = array_unique(array_column($rows,'recommend_id')); + $uid_str = implode(',',$uids); + $user_rows = []; + $uid_str && $user_rows = $this->app_liche_users_model->map('id','',["id in ($uid_str)"=>null],'','','','id,nickname,up_uid'); + + foreach($rows as $key=>$val){ + $brand_name = isset($brands[$val['brand_id']]) ? $brands[$val['brand_id']][0]['name'] : ''; + $serie_name = isset($series[$val['s_id']]) ? $series[$val['s_id']][0]['name'] : ''; + $color = isset($attrs[$val['cor_id']]) ? $attrs[$val['cor_id']][0]['title'] : ''; + $version = isset($attrs[$val['v_id']]) ? $attrs[$val['v_id']][0]['title'] : ''; + $user = $user_rows[$val['recommend_id']] ? $user_rows[$val['recommend_id']][0] : []; + $nickname = $user['nickname'] ? name_asterisk($user['nickname']) : ''; + $up_nickname = ''; + if($user['up_uid']){ + $up_user = $this->app_liche_users_model->get(['id'=>$user['up_uid']],'nickname'); + $up_nickname = $up_user['nickname'] ? '(上级:'.name_asterisk($up_user['nickname']).')' : ''; + } + $car = $this->auto_cars_model->get(['brand_id'=>$val['brand_id'],'s_id'=>$val['s_id'],'v_id'=>$val['v_id']],'brokerage_1,brokerage_2'); + $info = [ + '品牌车型' => "{$brand_name}{$serie_name}-{$color}-{$version}", + '报备人' => $nickname.$up_nickname, + '佣金金额' => $car['brokerage_1']+$car['brokerage_2'], + '订单日期' => date('Y-m-d',$val['c_time']), + ]; + $lists[] = [ + 'name' => $val['name'], + 'mobile' => mobile_asterisk($val['mobile']), + 'info' => $info, + 'b_time' => date('Y-m-d',$val['b_time']) + ]; + } + } + $data = [ + 'list' => $lists, + 'total' => $count + ]; + return $data; + } +} diff --git a/common/libraries/entity/Deal_entity.php b/common/libraries/entity/Deal_entity.php index b05c8e82..ea6fe8e4 100755 --- a/common/libraries/entity/Deal_entity.php +++ b/common/libraries/entity/Deal_entity.php @@ -41,22 +41,29 @@ class Deal_entity $this->load->model('auto/auto_cars_model'); $this->load->model($this->app_config['model'], 'mdUser'); $this->load->model('app/Deal_log_model', 'mdDealLog'); + $this->load->model('app/licheb/app_licheb_brokerage_model'); $order = $this->ci->receiver_orders_model->get(['id'=>$oid]); $clue = $this->ci->receiver_clues_model->get(['id'=>$order['clue_id']]); if(!$clue){ return array('code' => 0, 'msg' => '参数错误'); } + if(!$clue['recommend_id']){ + return array('code' => 0, 'msg' => '该订单不存在分销'); + } //该线索是否存在分销 if($this->ci->mdDealLog->get(['ex_id'=>$clue['id'],'status>='=>0])){ return array('code' => 0, 'msg' => '该线索已存在分销记录'); } - $where = [ - 'brand_id' => $order['brand_id'], - 's_id' => $order['s_id'], - 'v_id' => $order['v_id'], - 'status' => 1 - ]; - $car = $this->ci->auto_cars_model->get($where); + $car = $this->app_licheb_brokerage_model->get(['biz_id'=>$order['biz_id']],'brokerage_1,brokerage_2'); + if(!$car){ + $where = [ + 'brand_id' => $order['brand_id'], + 's_id' => $order['s_id'], + 'v_id' => $order['v_id'], + 'status' => 1 + ]; + $car = $this->ci->auto_cars_model->get($where,'brokerage_1,brokerage_2'); + } if(!$car['brokerage_1'] && !$car['brokerage_2']){ return array('code' => 0, 'msg' => '该车辆未设置分销佣金'); } diff --git a/common/libraries/receiver/Customers_entity.php b/common/libraries/receiver/Customers_entity.php index 995f8ea1..ec7c8dfc 100644 --- a/common/libraries/receiver/Customers_entity.php +++ b/common/libraries/receiver/Customers_entity.php @@ -31,7 +31,9 @@ class Customers_entity */ public function add_log_visit($customer_id, $uid, $uname, $content, $type = '', $visit = 0, $imgs = [], $cf_platform = 'wxapp') { - $result = $this->add_log($customer_id, $uid, $uname, $content, $type, $cf_platform, $imgs); + if($content){ + $result = $this->add_log($customer_id, $uid, $uname, $content, $type, $cf_platform, $imgs); + } if ($visit && $result) {//更新客户已回访 $this->ci->load->model('receiver/receiver_customers_visit_model', 'mdCustomersVisit'); $result = $this->ci->mdCustomersVisit->update(array('contact' => 2, 'status' => 2) diff --git a/common/models/app/licheb/App_licheb_brokerage_model.php b/common/models/app/licheb/App_licheb_brokerage_model.php new file mode 100644 index 00000000..67a08453 --- /dev/null +++ b/common/models/app/licheb/App_licheb_brokerage_model.php @@ -0,0 +1,19 @@ +table_name, 'default'); + } +} diff --git a/common/models/receiver/Receiver_clues_model.php b/common/models/receiver/Receiver_clues_model.php index f1b97ef6..996b0f9b 100644 --- a/common/models/receiver/Receiver_clues_model.php +++ b/common/models/receiver/Receiver_clues_model.php @@ -72,7 +72,7 @@ class Receiver_clues_model extends HD_Model return $this->db->get()->result_array(); } - public function selectClues($where = array(), $order = '', $page = 0, $page_size = 20, $count = 0){ + public function selectClues($where = array(), $order = '', $page = 0, $page_size = 20, $count = 0 ,$fileds = ''){ $this->db->from('lc_receiver_clues'); $this->db->join('lc_receiver_orders', 'lc_receiver_orders.clue_id = lc_receiver_clues.id and lc_receiver_orders.status>=0', 'left'); @@ -84,7 +84,11 @@ class Receiver_clues_model extends HD_Model $this->db->distinct()->select('lc_receiver_clues.*'); return $this->db->count_all_results(); }else{ - $this->db->select('lc_receiver_clues.*,lc_receiver_orders.id as o_id'); + if($fileds){ + $this->db->select($fileds); + }else{ + $this->db->select('lc_receiver_clues.*,lc_receiver_orders.id as o_id'); + } $this->db->group_by('lc_receiver_clues.id'); } diff --git a/sql/app/licheb.sql b/sql/app/licheb.sql index 799f359f..02eeedda 100644 --- a/sql/app/licheb.sql +++ b/sql/app/licheb.sql @@ -23,3 +23,20 @@ create table lc_app_licheb_users ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='狸车宝用户表'; alter table lc_app_licheb_users add column jsondata json default null comment '其他信息' after biz_id; alter table lc_app_licheb_users modify biz_id varchar(200) not null default 0 comment '门店id多个用逗号隔开(1,2,3)'; + +-- ---------------------------- +-- Title:商家订单分佣配置 +-- Author:lcc +-- Table:lc_app_licheb_brokerage +-- --------------------------- +drop table if exists lc_app_licheb_brokerage; +create table lc_app_licheb_brokerage ( + id int(10) not null auto_increment comment '自增id', + biz_id varchar(50) not null default '' comment '商家id', + brokerage_1 decimal(12,2) not null default 0.00 comment '一级佣金', + brokerage_2 decimal(12,2) not null default 0.00 comment '二级佣金', + status tinyint(1) not null default 0 comment '状态(1正常 0禁用 -1删除)', + c_time int(10) not null default 0 comment '创建时间', + u_time timestamp not null default current_timestamp on update current_timestamp comment '更新时间', + primary key (id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商家订单分佣配置';