diff --git a/application/admin/controller/Client.php b/application/admin/controller/Client.php index 2f4cc94..b8e0aaf 100644 --- a/application/admin/controller/Client.php +++ b/application/admin/controller/Client.php @@ -899,4 +899,258 @@ class Client extends Common{ } } -} \ No newline at end of file + + //积分活动 + public function activeList(){ + if(request()->isPost()){ + $page =input('page')?input('page'):1; + $pageSize =input('limit')?input('limit'):config('pageSize'); + $list = db('crm_client_active') + ->paginate(array('list_rows'=>$pageSize,'page'=>$page)) + ->toArray(); + return $result = ['code'=>0,'msg'=>'获取成功!','data'=>$list['data'],'count'=>$list['total'],'rel'=>1]; + } + return $this->fetch(); + } + + //添加积分活动 + public function activeAdd(){ + if(request()->isPost()){ + $data = input(); + unset($data['/admin/client/activeadd_html']); + $data['add_time'] = time(); + $result = Db::table('crm_client_active')->insert($data); + if ($result){ + $msg = ['code' => 0,'msg'=>'添加成功!','data'=>[]]; + return json($msg); + }else{ + $msg = ['code' => -200,'msg'=>'添加失败!','data'=>[]]; + return json($msg); + } + } + return $this->fetch('client/active_list_add'); + } + //编辑积分活动 + public function activeEdit(){ + if (Request::isAjax()){ + $data = input(); + unset($data['/admin/client/activeedit_html']); + // 获取原状态 + $oldstatus = Db::table('crm_client_active')->where(['id'=>$data['id']])->find(); + if (!$oldstatus) { + $msg = ['code' => -200,'msg'=>'数据不存在','data'=>[]]; + return json($msg); + }else{ + $ischange = true; + } + + $result = Db::table('crm_client_active')->where(['id'=>$data['id']])->update($data); + if ($result){ + $msg = ['code' => 0,'msg'=>'编辑成功!','data'=>[]]; + return json($msg); + }else{ + $msg = ['code' => -200,'msg'=>'编辑失败!','data'=>[]]; + return json($msg); + } + } + + $result = Db::table('crm_client_active') ->where(['id' => Request::param('id')])->find(); + $this -> assign('result',$result); + return $this -> fetch('client/active_list_edit'); + } + + //删除积分活动 + public function activeDel(){ + $id = Request::param('id'); + // 获取原状态 + $oldstatus = Db::table('crm_client_active')->where(['id'=>$id])->find(); + $oldstatusname = $oldstatus['name']; + + $result = Db::table('crm_client_active')->where('id',$id)->delete(); + if ($result){ + $msg = ['code' => 0,'msg'=>'删除成功!','data'=>[]]; + return json($msg); + }else{ + $msg = ['code' => -200,'msg'=>'删除失败!','data'=>[]]; + return json($msg); + } + } + + //添加积分活动 + public function take(){ + if(request()->isPost()){ + $data = input(); + $weixin_template_0 = config('weixin_template_0'); + $admin = Db::table('admin') ->where(['admin_id' => $data['aid']])->find(); + if(!$admin){ + $msg = ['code' => -200,'msg'=>'经销商不能为空!','data'=>[]]; + return json($msg); + } + //先保存提货单数据 + $data['add_time'] = time(); + $data['take_time'] = strtotime($data['take_time']); + $result = Db::table('admin_take')->insert($data,0,1); + if (!$result){ + $msg = ['code' => -200,'msg'=>'添加失败!','data'=>[]]; + return json($msg); + } + $activeInfo = Db::table('crm_client_active')->where(['id'=>$data['active_id']])->find(); + if(!$activeInfo){ + $msg = ['code' => 0,'msg'=>'添加成功!','data'=>[]]; + return json($msg); + } + $get_money_point_rate = $activeInfo['get_point']/$activeInfo['get_money']; + $out_mpney_point_rate = $activeInfo['out_point']/$activeInfo['out_money']; + $admin_point = Db::table('admin_point') ->where(['aid' => $data['aid']])->find(); + + if(!$admin_point){ + $admin_point['aid'] = $data['aid']; + $admin_point['point'] = 0; + $admin_point['in_point'] = 0; + $admin_point['out_point'] = 0; + $admin_point['add_time'] = time(); + $admin_point['id'] = Db::table('admin_point')->insert($admin_point,0,1); + } + $pre_point = $admin_point['in_point']; + + //再计算抵扣积分 提货金额*0.01 = 可抵扣金额 * (积分/金额比) + $can_out_money = intval(intval($data['take_money'])*0.01); + $out_point = intval($can_out_money*$out_mpney_point_rate); + //如果当前用户的在期积分大于抵扣积分 生成抵扣积分记录 扣除想要的积分值 + if($admin_point['in_point']>$out_point){ + $out_point_log = []; + $out_point_log['aid'] = $data['aid']; + $out_point_log['take_id'] = $result; + $out_point_log['change'] = -$out_point; + $out_point_log['type'] = 1; + $out_point_log['aid'] = $data['aid']; + $out_point_log['in_point'] = $admin_point['in_point']; + $out_point_log['active_id'] = $data['active_id']; + $out_point_log['active_name'] = $activeInfo['name']; + $out_point_log['money'] = $can_out_money; + $out_point_log['point'] = $out_point; + $out_point_log['remark'] = $activeInfo['content']; + $out_point_log['add_time'] = time(); + Db::table('admin_point_log')->insert($out_point_log); + + //扣除 + Db::table('admin_point')->where(['id'=>$admin_point['id']])->setDec('point',$out_point); + 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['aid'] = $data['aid']; + $out_point_log['in_point'] = $admin_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'))); + $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(); + //再生成积分变动消息 + $message = []; + $message['aid'] = $data['aid']; + $message['openid'] = $admin['openid']?$admin['openid']:''; + $message['tempid'] = 0; + $message['take_money'] = intval($data['take_money']); + $message['out_point'] = $out_point; + $message['get_point'] = $in_point; + $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); + + $msg = ['code' => 0,'msg'=>'添加成功!','data'=>[]]; + return json($msg); + } + $aid = input("id"); + $admin = Db::table('admin') ->where(['admin_id' => $aid])->find(); + $this -> assign('aid',$aid); + $this -> assign('admin',$admin); + $activeList = Db::table('crm_client_active') ->where(['status' => 1])->select(); + $this -> assign('activeList',$activeList); + return $this->fetch('client/take_add'); + } + + //用户积分列表 + public function userPointList(){ + if(request()->isPost()){ + $page =input('page')?input('page'):1; + $pageSize =input('limit')?input('limit'):config('pageSize'); + $list = db('admin') + -> alias("a") + -> join('admin_point b','a.admin_id=b.aid') + ->where('a.group_id',11) + ->paginate(array('list_rows'=>$pageSize,'page'=>$page)) + ->toArray(); + + return $result = ['code'=>0,'msg'=>'获取成功!','data'=>$list['data'],'count'=>$list['total'],'rel'=>1]; + } + return $this->fetch('client/point_list'); + } + + //用户积分列表 + public function userPointDetail(){ + $aid = input("id"); + if($this->sys_admin_info['group_id'] == 11){ + $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") + -> alias("b") + -> join('admin a','a.admin_id=b.aid') + ->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_detail'); + } + + // 将扣除的积分指定到每条记录上 + public function subAdminPoint($aid=0,$out_point=0){ + if($aid ==0 || $out_point==0 ){ + return 0; + } + $now_point = $out_point; + + //获取用户所有的提货获取的积分且有效的且有剩余可抵扣的积分记录 按时间正序开始 + $admin_point_logs = Db::table('admin_point_log')->where(['aid'=>$aid,'type'=>0,'status'=>0])->where('use_point','>',0)->order('add_time','asc')->select(); + foreach ($admin_point_logs as $logs){ + if($now_point>0){ + $use_point = $now_point>=$logs['use_point'] ? 0 : $logs['use_point'] - $now_point; + $update = ['use_point'=>$use_point]; + $now_point = $now_point>=$logs['use_point'] ? $now_point-$logs['use_point'] : 0; + Db::table('admin_point_log')->where(['id' => $logs['id']])->update($update); + }else{ + break; + } + } + } +} diff --git a/application/admin/controller/Common.php b/application/admin/controller/Common.php index 76f32f7..7450826 100644 --- a/application/admin/controller/Common.php +++ b/application/admin/controller/Common.php @@ -5,6 +5,7 @@ use think\Controller; class Common extends Controller { protected $mod,$role,$system,$nav,$menudata,$cache_model,$categorys,$module,$moduleid,$adminRules,$HrefId; + public $sys_admin_info; public function initialize() { //判断管理员是否登录 @@ -13,6 +14,8 @@ class Common extends Controller } define('MODULE_NAME',strtolower(request()->controller())); define('ACTION_NAME',strtolower(request()->action())); + //获取管理员信息 + $this->sys_admin_info = Db::table('admin') ->where(['admin_id' => session('aid')])->find(); //权限管理 //当前操作权限ID if(session('aid')!=1){ diff --git a/application/admin/view/auth/admin_list.html b/application/admin/view/auth/admin_list.html index 9f2bf2c..c83a53b 100644 --- a/application/admin/view/auth/admin_list.html +++ b/application/admin/view/auth/admin_list.html @@ -8,13 +8,21 @@ {include file="common/foot"/} + + \ No newline at end of file diff --git a/application/admin/view/client/active_list.html b/application/admin/view/client/active_list.html new file mode 100644 index 0000000..a9def12 --- /dev/null +++ b/application/admin/view/client/active_list.html @@ -0,0 +1,172 @@ + + + + + {:config('sys_name')}后台管理 + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + + + + + + +{include file="common/foot"/} + + + + + + + + \ No newline at end of file diff --git a/application/admin/view/client/active_list_add.html b/application/admin/view/client/active_list_add.html new file mode 100644 index 0000000..d842d53 --- /dev/null +++ b/application/admin/view/client/active_list_add.html @@ -0,0 +1,94 @@ +{include file="common/head"/} +
+ +
+ +
+ +
+ +
+
+
+ +
+ +
+
元-赠送-
+
+ +
+
积分
+
例如:提货1元赠送2积分就是1:2
+
+ +
+ +
+ +
+
积分-抵扣-
+
+ +
+
+
例如:100积分抵扣1元就是100:1
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ + +
+
+
+
+{include file="common/foot"/} + + + + \ No newline at end of file diff --git a/application/admin/view/client/active_list_edit.html b/application/admin/view/client/active_list_edit.html new file mode 100644 index 0000000..770c9d0 --- /dev/null +++ b/application/admin/view/client/active_list_edit.html @@ -0,0 +1,95 @@ +{include file="common/head"/} +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+
元-赠送-
+
+ +
+
积分
+
例如:提货1元赠送2积分就是1:2
+
+ +
+ +
+ +
+
积分-抵扣-
+
+ +
+
+
例如:100积分抵扣1元就是100:1
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ + +
+
+
+
+{include file="common/foot"/} + + + + \ No newline at end of file diff --git a/application/admin/view/client/index.html b/application/admin/view/client/index.html index d345a1e..b3139e6 100644 --- a/application/admin/view/client/index.html +++ b/application/admin/view/client/index.html @@ -215,6 +215,7 @@ var tableIn = table.render({ elem: '#table-list', url: '{:url("index")}', + method: 'post', toolbar: '#topBtn', defaultToolbar:['filter','print','exports'], @@ -384,7 +385,7 @@ }); -//监听搜索 + //监听搜索 form.on('submit(LAY-app-contlist-search)', function(data){ var field = data.field; diff --git a/application/admin/view/client/point_detail.html b/application/admin/view/client/point_detail.html new file mode 100644 index 0000000..6017047 --- /dev/null +++ b/application/admin/view/client/point_detail.html @@ -0,0 +1,171 @@ + + + + + {:config('sys_name')}后台管理 + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + +{include file="common/foot"/} + + + + + + + + \ No newline at end of file diff --git a/application/admin/view/client/point_list.html b/application/admin/view/client/point_list.html new file mode 100644 index 0000000..e9e2a1a --- /dev/null +++ b/application/admin/view/client/point_list.html @@ -0,0 +1,148 @@ + + + + + {:config('sys_name')}后台管理 + + + + + + + + + + + + + + + +
+
+
+ + + + + + + +{include file="common/foot"/} + + + + + + + + \ No newline at end of file diff --git a/application/admin/view/client/take_add.html b/application/admin/view/client/take_add.html new file mode 100644 index 0000000..945347a --- /dev/null +++ b/application/admin/view/client/take_add.html @@ -0,0 +1,89 @@ +{include file="common/head"/} +
+ +
+ +
+ +
+ + +
+
+
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+
+ +
+ +
+
+
+
+ + +
+
+
+
+{include file="common/foot"/} + + + + \ No newline at end of file diff --git a/config/app.php b/config/app.php index 404efdb..c7a317a 100644 --- a/config/app.php +++ b/config/app.php @@ -165,5 +165,6 @@ return [ //文件上传 'addwater'=>false, 'watertext'=>'Meyoo', - 'version'=>'6.0' + 'version'=>'6.0', + 'weixin_template_0' => "您之前剩余积分{pre_point}分,本次提货金额{take_money}元,可使{out_point},本次新增积分{get_point}分,账户累计剩余有效积分为{point}分.请及时使用! (积分使用规则:{active_content})", ]; diff --git a/public/.htaccess b/public/.htaccess index fe29386..34be99d 100644 --- a/public/.htaccess +++ b/public/.htaccess @@ -1,7 +1,10 @@ - RewriteEngine on - RewriteBase / - RewriteCond %{REQUEST_FILENAME} !-d - RewriteCond %{REQUEST_FILENAME} !-f - RewriteRule ^(.*)$ index.php?s=/$1 [QSA,PT,L] - \ No newline at end of file + Options +FollowSymlinks -Multiviews + RewriteEngine On + + RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_FILENAME} !-f +# RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L] + RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1] + + diff --git a/public/.user.ini b/public/.user.ini deleted file mode 100644 index 4623609..0000000 --- a/public/.user.ini +++ /dev/null @@ -1 +0,0 @@ -open_basedir=/www/wwwroot/wrs.365xunxibao.com/:/tmp/ \ No newline at end of file