Browse Source

chengx

master
jianglong 3 years ago
parent
commit
31e17cc8c6
  1. 6
      application/admin/controller/Client.php
  2. 24
      application/admin/controller/Login.php
  3. 13
      application/admin/model/Admin.php
  4. 3
      application/admin/view/client/point_detail.html
  5. 9
      application/admin/view/client/take_add.html
  6. 2
      application/admin/view/login/index.html
  7. 1
      application/home/controller/Index.php
  8. 82
      application/task/controller/Task.php
  9. 3
      config/app.php

6
application/admin/controller/Client.php

@ -1025,6 +1025,7 @@ class Client extends Common{
$out_point_log['type'] = 1; $out_point_log['type'] = 1;
$out_point_log['aid'] = $data['aid']; $out_point_log['aid'] = $data['aid'];
$out_point_log['in_point'] = $admin_point['in_point']; $out_point_log['in_point'] = $admin_point['in_point'];
$out_point_log['after_point'] = $admin_point['in_point'] - $out_point;
$out_point_log['active_id'] = $data['active_id']; $out_point_log['active_id'] = $data['active_id'];
$out_point_log['active_name'] = $activeInfo['name']; $out_point_log['active_name'] = $activeInfo['name'];
$out_point_log['money'] = $can_out_money; $out_point_log['money'] = $can_out_money;
@ -1052,12 +1053,13 @@ class Client extends Common{
$out_point_log['change'] = $in_point; $out_point_log['change'] = $in_point;
$out_point_log['type'] = 0; $out_point_log['type'] = 0;
$out_point_log['in_point'] = $admin_point['in_point']; $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_id'] = $data['active_id'];
$out_point_log['active_name'] = $activeInfo['name']; $out_point_log['active_name'] = $activeInfo['name'];
$out_point_log['money'] = intval($data['take_money']); $out_point_log['money'] = intval($data['take_money']);
$out_point_log['point'] = $out_point_log['use_point'] = $in_point; $out_point_log['point'] = $out_point_log['use_point'] = $in_point;
$out_point_log['remark'] = $activeInfo['content']; $out_point_log['remark'] = $activeInfo['content'];
$out_point_log['out_time'] = strtotime(date('Y-m-d',strtotime('+1 years +1 days'))); $out_point_log['out_time'] = strtotime(date('Y-m-d',strtotime('+1 years +1 days')))-1;
$out_point_log['add_time'] = time(); $out_point_log['add_time'] = time();
Db::table('admin_point_log')->insert($out_point_log); Db::table('admin_point_log')->insert($out_point_log);
@ -1072,6 +1074,8 @@ class Client extends Common{
$message['aid'] = $data['aid']; $message['aid'] = $data['aid'];
$message['openid'] = $admin['openid']?$admin['openid']:''; $message['openid'] = $admin['openid']?$admin['openid']:'';
$message['tempid'] = 0; $message['tempid'] = 0;
$message['take_time'] = $data['take_time'];
$message['good_name'] = $data['good_name'];
$message['take_money'] = intval($data['take_money']); $message['take_money'] = intval($data['take_money']);
$message['out_point'] = $out_point; $message['out_point'] = $out_point;
$message['get_point'] = $in_point; $message['get_point'] = $in_point;

24
application/admin/controller/Login.php

@ -20,17 +20,21 @@ class Login extends Controller
} }
} }
public function index(){ public function index(){
$code = $_GET["code"]; $code = request()->param("code");
$wechat= $_GET["wechat"]; $wechat= request()->param("wechat");
$weixinInfo = config('weixin_info'); $weixinInfo = config('weixin_info');
$appid = $weixinInfo['appid']; $appid = $weixinInfo['appid'];
$appsecret = $weixinInfo['appSecret']; $appsecret = $weixinInfo['appSecret'];
$wxInfo = []; $wxInfo = [];
$wxid = 0;
$openid = "";
$admin = new Admin();
if($wechat && !$code){ if($wechat && !$code){
$redirect_uri = urlencode ( 'http://jm.ilixo.com/admin/login/index?wechat='.$wechat );//将字符串以 URL 编码。 $redirect_uri = rawurlencode( 'http://jm.iiixo.com/admin/login/index/wechat/'.$wechat.".html" );//将字符串以 URL 编码。
$url ="https://open.weixin.qq.com/connect/oauth2/authorize?appid=$appid&redirect_uri=$redirect_uri& $url ="https://open.weixin.qq.com/connect/oauth2/authorize?appid={$appid}&redirect_uri={$redirect_uri}&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect";
response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect";
header("Location:".$url);//header() 函数向客户端发送原始的 HTTP 报头。 header("Location:".$url);//header() 函数向客户端发送原始的 HTTP 报头。
return ;
}else if($wechat && $code){ }else if($wechat && $code){
//Get access_token //Get access_token
$access_token_url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid={$appid}&secret={$appsecret}&code={$code}&grant_type=authorization_code"; $access_token_url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid={$appid}&secret={$appsecret}&code={$code}&grant_type=authorization_code";
@ -41,19 +45,21 @@ class Login extends Controller
//获取openid //获取openid
$openid = $access_token_array['openid'];//获取openid对应的值 $openid = $access_token_array['openid'];//获取openid对应的值
//Get user info //Get user info
$userinfo_url = "https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid&lang=zh_CN"; $userinfo_url = "https://api.weixin.qq.com/sns/userinfo?access_token={$access_token}&openid={$openid}&lang=zh_CN";
$userinfo_json = $this->https_request($userinfo_url); $userinfo_json = $this->https_request($userinfo_url);
$wxInfo = json_decode($userinfo_json,ture); $wxInfo = json_decode($userinfo_json,true);
$openid = $wxInfo['openid'];
$wxid = $admin->saveWxUserInfo($wxInfo);
} }
if(request()->isPost()) { if(request()->isPost()) {
$data = input('post.'); $data = input('post.');
$admin = new Admin();
$return = $admin->login($data,$this->system['code'],$wxInfo); $return = $admin->login($data,$this->system['code'],$wxInfo);
return ['code' => $return['code'], 'msg' => $return['msg']]; return ['code' => $return['code'], 'msg' => $return['msg']];
}else{ }else{
$this->assign("wxid",$wxid);
$this->assign("openid",$openid);
return $this->fetch(); return $this->fetch();
} }
} }

13
application/admin/model/Admin.php

@ -5,11 +5,9 @@ use think\Db;
class Admin extends Model class Admin extends Model
{ {
protected $pk = 'admin_id'; protected $pk = 'admin_id';
public function login($data,$code,$wxInfo=[]){ public function login($data,$code){
$wxuserid = 0; $wxuserid = 0;
if($wxInfo && isset($wxInfo['openid'])){
$wxuserid = saveWxUserInfo($wxInfo);
}
if($code=='open'){ if($code=='open'){
if(!$this->check($data['vercode'])){ if(!$this->check($data['vercode'])){
return ['code' => 0, 'msg' => '验证码错误']; return ['code' => 0, 'msg' => '验证码错误'];
@ -17,9 +15,9 @@ class Admin extends Model
} }
$user=Db::name('admin')->where('username',$data['username'])->find(); $user=Db::name('admin')->where('username',$data['username'])->find();
if($user) { if($user) {
if(!$user['wxid']){ if(!$user['wxid'] && $data['wxid']){
$update = ["wxid"=>$wxuserid,"openid"=>$wxInfo['openid']]; $update = ["wxid"=>$data['wxid'],"openid"=>$data['openid']];
Db::name('admin')->where('admin_id',$data['admin_id'])->update($update); Db::name('admin')->where('admin_id',$user['admin_id'])->update($update);
} }
if ($user['is_open']==1 && $user['pwd'] == md5($data['password'])){ if ($user['is_open']==1 && $user['pwd'] == md5($data['password'])){
session('username', $user['username']); session('username', $user['username']);
@ -41,6 +39,7 @@ class Admin extends Model
} }
public function saveWxUserInfo($wxInfo){ public function saveWxUserInfo($wxInfo){
$user= Db::name('admin_wxinfo')->where('openid',$wxInfo['openid'])->find(); $user= Db::name('admin_wxinfo')->where('openid',$wxInfo['openid'])->find();
if($user){ if($user){
return $user['id']; return $user['id'];

3
application/admin/view/client/point_detail.html

@ -107,7 +107,8 @@
cols: [[ cols: [[
{checkbox:true,fixed: true}, {checkbox:true,fixed: true},
{field: 'username', title: '经销商名称', }, {field: 'username', title: '经销商名称', },
{field: 'in_point', title:'有效积分'}, {field: 'in_point', title:'有效积分(变动前)'},
{field: 'after_point', title:'有效积分(变动后)'},
{field: 'change', title:'变动积分'}, {field: 'change', title:'变动积分'},
{field:'type', title: '变动类型',toolbar: '#status'}, {field:'type', title: '变动类型',toolbar: '#status'},
{field:'money', title: '提货/抵扣',toolbar: '#money'}, {field:'money', title: '提货/抵扣',toolbar: '#money'},

9
application/admin/view/client/take_add.html

@ -11,6 +11,12 @@
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">提货商品</label>
<div class="layui-input-inline" style="width: 200px;">
<input type="text" name="good_name" lay-verify="required" placeholder="请输入提货商品" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">提货金额</label> <label class="layui-form-label">提货金额</label>
<div class="layui-input-inline" style="width: 200px;"> <div class="layui-input-inline" style="width: 200px;">
<input type="text" name="take_money" lay-verify="required" placeholder="请输入提货金额,请保留整数" autocomplete="off" class="layui-input"> <input type="text" name="take_money" lay-verify="required" placeholder="请输入提货金额,请保留整数" autocomplete="off" class="layui-input">
@ -80,7 +86,8 @@
return false; return false;
}); });
laydate.render({ laydate.render({
elem: '#take_time' elem: '#take_time',
type: 'datetime'
}); });
}); });

2
application/admin/view/login/index.html

@ -44,6 +44,8 @@
<div class="layui-form-item"> <div class="layui-form-item">
<button type="submit" class="layui-btn btn-submit btn-blog" lay-submit lay-filter="login">登录</button> <button type="submit" class="layui-btn btn-submit btn-blog" lay-submit lay-filter="login">登录</button>
</div> </div>
<input type="hidden" name="wxid" value="{$wxid}" />
<input type="hidden" name="openid" value="{$openid}" />
</form> </form>
</div> </div>
<footer> <footer>

1
application/home/controller/Index.php

@ -5,6 +5,7 @@ use clt\Lunar;
use think\facade\Env; use think\facade\Env;
class Index extends Common{ class Index extends Common{
public function initialize(){ public function initialize(){
$this-> redirect('admin/index/index?wechat='.$_GET["wechat"]); $this-> redirect('admin/index/index?wechat='.$_GET["wechat"]);
//exit(); //exit();
parent::initialize(); parent::initialize();

82
application/task/controller/Task.php

@ -34,6 +34,7 @@ class Task extends Controller{
$out_point_log['change'] = -$out_point; $out_point_log['change'] = -$out_point;
$out_point_log['type'] = 2; $out_point_log['type'] = 2;
$out_point_log['in_point'] = $admin_point['in_point']; $out_point_log['in_point'] = $admin_point['in_point'];
$out_point_log['after_point'] = $admin_point['in_point'] - $out_point;
$out_point_log['active_id'] = 0; $out_point_log['active_id'] = 0;
$out_point_log['active_name'] = ""; $out_point_log['active_name'] = "";
$out_point_log['money'] = 0; $out_point_log['money'] = 0;
@ -46,6 +47,87 @@ class Task extends Controller{
} }
} }
// 定时任务 每日过期积分
public function sendWxMessage(){
$weixinInfo = config('weixin_info');
$weixinTemplate = config('weixin_templates');
$now = time();
$appid = $weixinInfo['appid'];
$appsecret = $weixinInfo['appSecret'];
$access_token_url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}&secret={$appsecret}";
$access_token_json = $this->https_request($access_token_url,[]);//自定义函数
$access_token_array = json_decode($access_token_json,true);//对 JSON 格式的字符串进行解码,转换为 PHP 变量,自带函数
//获取access_token
$access_token = $access_token_array['access_token'];//获取access_token对应的值
//待发送的积分消息
//获取所有的用户所有已到期的有剩余积分的数据 求和
$messages = Db::table('admin_point_message')->where(['status'=>0])->order("id desc")->limit(10)->select();
foreach ($messages as $message){
if(!$message['openid'] || !$weixinTemplate[$message['tempid']]){
$update = [
"status"=>-1
];
Db::table('admin_point_message')->where('id',$message['id'])->update($update);
continue;
}
$wxMessage = [
'touser' => $message['openid'],
'template_id' => $weixinTemplate[$message['tempid']],
"url" => 'http://jm.iiixo.com/',
"data"=>[
"first"=>["value"=>"合肥金麓积分变动通知"],
"keyword1"=>["value"=>$message['good_name']?$message['good_name']:"提货商品"],
"keyword2"=>["value"=>$message['take_money']],
"keyword3"=>["value"=>$message['out_point']],
"keyword4"=>["value"=>$message['get_point']."(有效积分:".$message['point'].")"],
// "keyword5"=>["value"=>$message['point']],
"keyword5"=>["value"=>date("Y年m月d日 H:i",$message['take_time']?:$message['add_time'])],
"remark"=>["value"=>$message['remark']],
],
];
$wxMessage = json_encode($wxMessage, JSON_UNESCAPED_UNICODE);
$url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={$access_token}";
$res = $this->https_request($url,$wxMessage);//自定义函数
$result = json_decode($res,true);//对 JSON 格式的字符串进行解码,转换为 PHP 变量,自带函数
if($result['errcode'] == 0 ){
$update = [
"status"=>1,
"send_time" => time(),
];
}else{
$update = [
"status"=>-1,
];
}
Db::table('admin_point_message')->where('id',$message['id'])->update($update);
}
}
public function https_request($url,$data)//自定义函数,访问url返回结果
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
if (! empty($data)) {
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
}
$data = curl_exec($curl);
if (curl_errno($curl)){
return 'ERROR'.curl_error($curl);
}
curl_close($curl);
return $data;
}
// 定时任务 每日监测 // 定时任务 每日监测
public function autotask(){ public function autotask(){

3
config/app.php

@ -171,5 +171,8 @@ return [
'appid' =>'wx105f2afa97beb742', 'appid' =>'wx105f2afa97beb742',
'appSecret' =>'2cf24d763e773191d2de0348b1bb3939', 'appSecret' =>'2cf24d763e773191d2de0348b1bb3939',
], ],
'weixin_templates' => [
'OalkVersPpHdmCLHkWIbVYNHOvd97LcdY-5H3m9pe6M'
]
]; ];

Loading…
Cancel
Save