From ca72235378ea675daaf7f406ea3f58043ed1b220 Mon Sep 17 00:00:00 2001 From: ahbmz Date: Tue, 13 Jun 2023 19:05:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=98=AF=E5=90=A6=E4=B8=BA?= =?UTF-8?q?=E7=AC=AC=E4=B8=80=E6=8A=A5=E5=A4=87=E6=9F=A5=E8=AF=A2=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/admin/controller/Client.php | 207 +++++++++++++++++-------- application/admin/view/client/add.html | 23 ++- application/admin/view/client/edit.html | 13 +- application/admin/view/client/index.html | 22 ++- application/admin/view/personclient/index.html | 12 +- 5 files changed, 196 insertions(+), 81 deletions(-) diff --git a/application/admin/controller/Client.php b/application/admin/controller/Client.php index cd9d9fe..cae622c 100644 --- a/application/admin/controller/Client.php +++ b/application/admin/controller/Client.php @@ -1,6 +1,7 @@ fetch(); } + //查询30天内 是否为第一报备人 + public function searchClient() + { + $id = Request::param('id'); + //查询所有管理员(去除admin) + $adminResult = Db::name('admin')->where('group_id', '<>', 1)->field('admin_id,username')->select(); + $this->assign('adminResult', $adminResult); + + if (Request::isAjax()) { +// + $_data = Db::table('crm_leads')->where(['id' => $id])->field('house,building,number')->find(); + if (empty($_data)) { + return json(['code' => -200, 'msg' => '数据不存在!', 'data' => []]); + } + //小于30天判断 + $now = date('Y-m-d H:i:s',strtotime('-1 month')); + $data_list = Db::table('crm_leads')->where($_data)->where('at_time', '>', $now)->order('at_time','ASC')->select(); + if (isset($data_list[0]['id']) && $id == $data_list[0]['id']) { + $msg = ['code' => 0, 'msg' => '是否为第一报备:是', 'data' => []]; + } else { + $msg = ['code' => -200, 'msg' => '是否为第一报备:否', 'data' => []]; + } + return json($msg); + } + + } + //(我的客户)列表 public function perCliList(){ @@ -72,14 +100,14 @@ class Client extends Common{ return $this->fetch('personclient/index'); } - //成交客户列表 + //成交客户列表 public function successCliList(){ if(request()->isPost()){ $where = []; $where['issuccess'] = 1; if(session('aid')!=1){ - $where['pr_user'] = Session::get('username'); + $where['pr_user'] = Session::get('username'); } $key=input('post.key'); $page =input('page')?input('page'):1; @@ -99,7 +127,7 @@ class Client extends Common{ $this -> assign('khRankList',$khRankList); $this -> assign('khStatusList',$khStatusList); $this -> assign('xsSourceList',$xsSourceList); //线索/客户来源 - //查询所有管理员(去除admin) + //查询所有管理员(去除admin) $adminResult = Db::name('admin')->where('group_id','<>', 1)->field('admin_id,username')->select(); $this -> assign('adminResult',$adminResult); return $this->fetch('client/chengjiao'); @@ -162,7 +190,7 @@ class Client extends Common{ unset($value['I']); $value['phone'] = $value['J'];//J 联系号码 unset($value['J']); - + $value['kh_rank'] = $value['K'];//K 客户级别 unset($value['K']); $value['kh_status'] = $value['L'];//L 客户状态 @@ -172,11 +200,11 @@ class Client extends Common{ $value['remark'] = $value['N'];//N 备注 unset($value['N']); $value['pr_user'] = Session::get('username');//H 负责人 - + $value['ut_time'] = date("Y-m-d H:i:s",time());//Q更新于 $value['at_time'] = date("Y-m-d H:i:s",time());//R创建时间 $value['at_user'] = Session::get('username');//T创建人 - $value['status'] = 1; + $value['status'] = 1; //导入客户 //A客户名称,B客户级别,C客户状态,D最新跟进记录,E实际跟进时间,F下次跟进时间,G手机 //H微信号,I未跟进天数,J客户来源,K备注,L负责人,M所属公海,N划入公海时间 @@ -272,14 +300,14 @@ class Client extends Common{ $data['pro'] = Request::param('pro'); $data['city'] = Request::param('city'); $data['area'] = Request::param('area'); - $data['house'] = Request::param('house'); - $data['building'] = Request::param('building'); - $data['number'] = Request::param('number'); + $data['house'] = trim(Request::param('house')); + $data['building'] = trim(Request::param('building')); + $data['number'] = trim(Request::param('number')); $wdata = array( - 'pro'=>$data['pro'], - 'city'=>$data['city'], - 'area'=>$data['area'], +// 'pro'=>$data['pro'], +// 'city'=>$data['city'], +// 'area'=>$data['area'], 'house'=>$data['house'], 'building'=>$data['building'], 'number'=>$data['number'] @@ -346,10 +374,13 @@ class Client extends Common{ if (Request::isAjax()){ $data = Request::param(); $data['ut_time'] = date("Y-m-d H:i:s",time()); + $data['house'] = trim($data['house']); + $data['building'] = trim($data['building']); + $data['number'] = trim($data['number']); $wdata = array( - 'pro'=>$data['pro'], - 'city'=>$data['city'], - 'area'=>$data['area'], +// 'pro'=>$data['pro'], +// 'city'=>$data['city'], +// 'area'=>$data['area'], 'house'=>$data['house'], 'building'=>$data['building'], 'number'=>$data['number'] @@ -440,7 +471,7 @@ class Client extends Common{ public function rankEdit(){ if (Request::isAjax()){ $data = Request::param(); - // 获取原状态 + // 获取原状态 $oldstatus = Db::table('crm_client_rank')->where(['id'=>$data['id']])->find(); $oldstatusname = $oldstatus['rank_name']; $ischange = false; @@ -581,7 +612,7 @@ class Client extends Common{ //移入公海 public function toMoveGh(){ - //1,获取提交的线索ID 【1,2,3,4,】 + //1,获取提交的线索ID 【1,2,3,4,】 $ids = Request::param('ids'); $this -> assign('ids',$ids); if (Request::isAjax()){ @@ -625,7 +656,7 @@ class Client extends Common{ // } } - + $libTypeList = Db::table('crm_liberum_type')->select(); $this -> assign('libTypeList',$libTypeList); @@ -670,22 +701,22 @@ class Client extends Common{ $result['comment'][$k]['reply'] = Db::table('crm_reply')->where(['comment_id'=>$v['id']])->select(); } - - $cid = Session::get('aid'); //获取当前登录账号 + + $cid = Session::get('aid'); //获取当前登录账号 $curname = Session::get('username'); //获取当前登录账号 - - - - //$this ->assign('cid',$cid); //获取当前登录账号$data['id'] - $group_id = Db::table('admin')->where(['admin_id'=>$cid])->field('group_id')->find(); - - - $this ->assign('group_id',$group_id['group_id']); //获取当前登录权限组账号 - - $this ->assign('curname',$curname); //获取当前登录账号 - + + + + //$this ->assign('cid',$cid); //获取当前登录账号$data['id'] + $group_id = Db::table('admin')->where(['admin_id'=>$cid])->field('group_id')->find(); + + + $this ->assign('group_id',$group_id['group_id']); //获取当前登录权限组账号 + + $this ->assign('curname',$curname); //获取当前登录账号 + $this ->assign('result',$result); - //$this ->assign('result1',integer($result['id'])); //跟进上一个 下一个 获取当前id。 + //$this ->assign('result1',integer($result['id'])); //跟进上一个 下一个 获取当前id。 return $this -> fetch('client/dialogue'); } @@ -818,7 +849,7 @@ class Client extends Common{ return $this -> fetch('personclient/alter_pr_user'); } - //客户行业 + //客户行业 public function hangyeList(){ if(request()->isPost()){ $page =input('page')?input('page'):1; @@ -850,7 +881,7 @@ class Client extends Common{ public function hangyeEdit(){ if (Request::isAjax()){ $data = Request::param(); - // 获取原状态 + // 获取原状态 $oldstatus = Db::table('crm_client_hangye')->where(['id'=>$data['id']])->find(); $oldstatusname = $oldstatus['hy_name']; $ischange = false; @@ -1013,11 +1044,17 @@ class Client extends Common{ } $pre_point = $admin_point['in_point']; - //再计算抵扣积分 提货金额*0.01 = 可抵扣金额 * (积分/金额比) - $can_out_money = intval(intval($data['take_money'])*0.01); + //再计算抵扣积分 提货金额 = 可抵扣金额 * (积分/金额比) + $can_out_money = intval($data['take_money']); $out_point = intval($can_out_money*$out_mpney_point_rate); + if($admin_point['in_point']<$out_point){ + //看最多可抵扣积分和金额 + $can_out_money = intval($admin_point['in_point']/$out_mpney_point_rate); + $out_point = intval($can_out_money*$out_mpney_point_rate); + } + //如果当前用户的在期积分大于抵扣积分 生成抵扣积分记录 扣除想要的积分值 - if($admin_point['in_point']>$out_point){ + if($out_point>0){ $out_point_log = []; $out_point_log['aid'] = $data['aid']; $out_point_log['take_id'] = $result; @@ -1028,6 +1065,7 @@ class Client extends Common{ $out_point_log['after_point'] = $admin_point['in_point'] - $out_point; $out_point_log['active_id'] = $data['active_id']; $out_point_log['active_name'] = $activeInfo['name']; + $out_point_log['take_money'] = intval($data['take_money']); $out_point_log['money'] = $can_out_money; $out_point_log['point'] = $out_point; $out_point_log['remark'] = $activeInfo['content']; @@ -1039,33 +1077,37 @@ class Client extends Common{ Db::table('admin_point')->where(['id'=>$admin_point['id']])->setDec('in_point',$out_point); //依次扣除 用户id 要扣除多少分 $this->subAdminPoint($data['aid'],$out_point); - }else{ - $out_point = 0; } + //重新获取最新的数据了 $admin_point = Db::table('admin_point') ->where(['aid' => $data['aid']])->find(); //再计算提货积分 提货金额 * (积分/金额比) - $in_point = intval(intval($data['take_money'])*$get_money_point_rate); - - $out_point_log = []; - $out_point_log['aid'] = $data['aid']; - $out_point_log['take_id'] = $result; - $out_point_log['change'] = $in_point; - $out_point_log['type'] = 0; - $out_point_log['in_point'] = $admin_point['in_point']; - $out_point_log['after_point'] = $admin_point['in_point'] + $in_point; - $out_point_log['active_id'] = $data['active_id']; - $out_point_log['active_name'] = $activeInfo['name']; - $out_point_log['money'] = intval($data['take_money']); - $out_point_log['point'] = $out_point_log['use_point'] = $in_point; - $out_point_log['remark'] = $activeInfo['content']; - $out_point_log['out_time'] = strtotime(date('Y-m-d',strtotime('+1 years +1 days')))-1; - $out_point_log['add_time'] = time(); - Db::table('admin_point_log')->insert($out_point_log); - - //加上提货积分 - Db::table('admin_point')->where(['id'=>$admin_point['id']])->setInc('point',$in_point); - Db::table('admin_point')->where(['id'=>$admin_point['id']])->setInc('in_point',$in_point); + $in_point = intval(intval($data['take_money']-$can_out_money)*$get_money_point_rate); + if($in_point>0){ + + $out_point_log = []; + $out_point_log['aid'] = $data['aid']; + $out_point_log['take_id'] = $result; + $out_point_log['change'] = $in_point; + $out_point_log['type'] = 0; + $out_point_log['in_point'] = $admin_point['in_point']; + $out_point_log['after_point'] = $admin_point['in_point'] + $in_point; + $out_point_log['active_id'] = $data['active_id']; + $out_point_log['active_name'] = $activeInfo['name']; + $out_point_log['take_money'] = intval($data['take_money']); + $out_point_log['money'] = intval($data['take_money']-$can_out_money); + $out_point_log['point'] = $out_point_log['use_point'] = $in_point; + $out_point_log['remark'] = $activeInfo['content']; + $out_point_log['out_time'] = strtotime(date('Y-m-d',strtotime('+1 years +1 days')))-1; + $out_point_log['add_time'] = time(); + Db::table('admin_point_log')->insert($out_point_log); + + //加上提货积分 + Db::table('admin_point')->where(['id'=>$admin_point['id']])->setInc('point',$in_point); + Db::table('admin_point')->where(['id'=>$admin_point['id']])->setInc('in_point',$in_point); + + } + //重新获取最新的数据了 $admin_point = Db::table('admin_point') ->where(['aid' => $data['aid']])->find(); @@ -1082,7 +1124,11 @@ class Client extends Common{ $message['point'] = $admin_point['point']; $message['remark'] = str_replace(["{pre_point}","{take_money}","{out_point}","{get_point}","{point}","{active_content}"],[$pre_point,intval($data['take_money']),$out_point,$in_point,$admin_point['point'],$activeInfo['content']],$weixin_template_0); $message['add_time'] = time(); - Db::table('admin_point_message')->insert($message); + $messageId = Db::table('admin_point_message')->insert($message,0,1); + if($messageId){ + $task = new Task(); + $task->sendWxMessageById($messageId); + } $msg = ['code' => 0,'msg'=>'添加成功!','data'=>[]]; return json($msg); @@ -1096,7 +1142,7 @@ class Client extends Common{ return $this->fetch('client/take_add'); } - //用户积分列表 + //我的积分列表 public function userPointList(){ if(request()->isPost()){ $page =input('page')?input('page'):1; @@ -1113,19 +1159,32 @@ class Client extends Common{ return $this->fetch('client/point_list'); } + + //我的积分列表 + public function personPointList(){ + $aid = $this->sys_admin_info['admin_id']; + $result = db('admin') + -> alias("a") + -> join('admin_point b','a.admin_id=b.aid') + ->where('a.admin_id',$aid) + ->find(); + $this->assign("result",$result); + return $this->fetch('client/point_list3'); + } //用户积分列表 public function userPointDetail(){ $aid = input("id"); if($this->sys_admin_info['group_id'] == 11){ - $aid = $this->sys_admin_info['admin__id']; + $aid = $this->sys_admin_info['admin_id']; } if(request()->isPost()){ $page =input('page')?input('page'):1; $pageSize =input('limit')?input('limit'):config('pageSize'); $list = db('admin_point_log') - ->field("b.*,a.username") + ->field("b.*,a.username,c.remark as take_remark,c.good_name") -> alias("b") -> join('admin a','a.admin_id=b.aid') + -> join('admin_take c','b.take_id=c.id') ->where('b.aid',$aid) ->order("id desc") ->paginate(array('list_rows'=>$pageSize,'page'=>$page)) @@ -1135,6 +1194,26 @@ class Client extends Common{ $this->assign("id",$aid); return $this->fetch('client/point_detail'); } + //用户积分列表 + public function personPointDetail(){ + $aid = $this->sys_admin_info['admin_id']; + if(request()->isPost()){ + $page =input('page')?input('page'):1; + $pageSize =input('limit')?input('limit'):config('pageSize'); + $list = db('admin_point_log') + ->field("b.*,a.username,c.remark as take_remark,c.good_name") + -> alias("b") + -> join('admin a','a.admin_id=b.aid') + -> join('admin_take c','b.take_id=c.id') + ->where('b.aid',$aid) + ->order("id desc") + ->paginate(array('list_rows'=>$pageSize,'page'=>$page)) + ->toArray(); + return $result = ['code'=>0,'msg'=>'获取成功!','data'=>$list['data'],'count'=>$list['total'],'rel'=>1]; + } + $this->assign("id",$aid); + return $this->fetch('client/point_detail2'); + } // 将扣除的积分指定到每条记录上 public function subAdminPoint($aid=0,$out_point=0){ diff --git a/application/admin/view/client/add.html b/application/admin/view/client/add.html index e9ae606..0b29501 100644 --- a/application/admin/view/client/add.html +++ b/application/admin/view/client/add.html @@ -123,22 +123,31 @@
- +
- +
- +
-
-
+
+
【例如:您住在18栋,请输入 18】
+
+ +
+
- +
-
例如:你住在18栋101,请输入【18-103】
+
+
【例如:您住在101门牌号,请输入 101】
+
+ 请谨慎填写:以小区全名 + 楼栋号 + 房号为第一报备判定依据为唯一判定依据 +
@@ -165,7 +174,7 @@ - +
diff --git a/application/admin/view/client/edit.html b/application/admin/view/client/edit.html index e234738..42557ed 100644 --- a/application/admin/view/client/edit.html +++ b/application/admin/view/client/edit.html @@ -134,16 +134,23 @@
- +
-
-
+
【例如:您住在18栋,请输入 18】
+
+ +
+
-
例如:你住在18栋101,请输入【18-103】
+
【例如:您住在101门牌号,请输入 101】
+
+ 请谨慎填写:以小区全名 + 楼栋号 + 房号为第一报备判定依据为唯一判定依据 +
diff --git a/application/admin/view/client/index.html b/application/admin/view/client/index.html index b3139e6..258c806 100644 --- a/application/admin/view/client/index.html +++ b/application/admin/view/client/index.html @@ -195,6 +195,7 @@ @@ -224,7 +225,7 @@ {field: 'id', title: 'ID', width: 80, fixed: true,hide:true}, {field: 'kh_name', title: '客户名称',templet:function (res) { return ""+res.kh_name+""; - },minWidth: 120}, + },minWidth: 40}, {field: 'pro', templet: function (d) { var returnHtml = ''; @@ -232,7 +233,7 @@ returnHtml += d.city ; returnHtml += d.area ; return returnHtml - }, title: '地区',minWidth: 210 + }, title: '地区',minWidth: 160 }, {field: 'house', title: '小区名称',minWidth: 150}, {field: 'bn', templet: function (d) { @@ -241,7 +242,7 @@ returnHtml += '-'; returnHtml += d.number ; return returnHtml - }, title: '门牌号',minWidth: 100 + }, title: '门牌号',minWidth: 60 }, {field: 'phone', title: '联系号码',width: 120 }, {field: 'kh_rank', title: '客户级别',hide:true}, @@ -265,7 +266,7 @@ {field: 'at_user', title: '创建人',hide:true}, {field: 'pr_user_bef', title: '前负责人',hide:true }, {field: 'sort', title: '等级',width: 60}, - {width: 220, align: 'center', toolbar: '#action'} + {width: 320, align: 'center', toolbar: '#action'} ]], limit: 100, //每页默认显示的数量 @@ -295,6 +296,15 @@ layer_add("编辑客户","{:url('Client/edit')}?id="+data.id); }else if(obj.event === 'alter'){ layer_add("转移客户","{:url('Client/alterPrUser')}?ids="+data.id) + }else if(obj.event === 'search_beian'){ + $.post("{:url('Client/searchClient')}?id=" + data.id,[],function (res) { + if (res.code == 0){ + layer.alert(res.msg,{time:5000}); + }else { + layer.alert(res.msg,{time:5000}); + } + + },'json') } }); @@ -453,7 +463,7 @@ /*添加*/ function layer_add(title,url){ - + var indexOpen = layer.open({ type: 2, title: title, @@ -463,7 +473,7 @@ shadeClose: false, //点击空白处是否关闭 maxmin: true, //开启最大化最小化按钮 content:[url], - + }); } diff --git a/application/admin/view/personclient/index.html b/application/admin/view/personclient/index.html index 21b7e77..8afb9fa 100644 --- a/application/admin/view/personclient/index.html +++ b/application/admin/view/personclient/index.html @@ -178,6 +178,7 @@ @@ -248,7 +249,7 @@ {field: 'at_user', title: '创建人',hide:true}, {field: 'pr_user_bef', title: '前负责人',hide:true }, {field: 'sort', title: '等级',width: 60}, - {width: 220, align: 'center', toolbar: '#action'} + {width: 320, align: 'center', toolbar: '#action'} ]], limit: 10 //每页默认显示的数量 }); @@ -363,6 +364,15 @@ layer_add("编辑客户","{:url('Client/edit')}?id="+data.id); }else if(obj.event === 'alter'){ layer_add("转移客户","{:url('Client/alterPrUserPri')}?ids="+data.id) + }else if(obj.event === 'search_beian'){ + $.post("{:url('Client/searchClient')}?id=" + data.id,[],function (res) { + if (res.code == 0){ + layer.alert(res.msg,{time:5000}); + }else { + layer.alert(res.msg,{time:5000}); + } + + },'json') } });