实习记录_2

1.这段时间负责项目的积分模块,自己用bootstrap写了前端的页面,结果效果和同事的风格不一致,被嫌弃了(其实我挺不喜欢突然改动的)

解决:查看同事的源代码,复制,粘贴,解决风格不统一的问题

2.在使用接口自动推送功能的时候,先配置接口的回调地址,然后接口会自动去调用指定的函数。

    如果自身的函数有问题,接口只会提示接口传送失败,根本就不会详细地报错。这里没办法用打印的方式来测试方法 执行到那个位置

解决:用file_put_contents()函数, 我先前 从未用这个函数来调试代码(哈哈哈谢谢我的同事)

 

<?php
namespace app\Push\controller;
use think\Db;
use think\Controller;

class Push   extends Controller
{
    public function youzan_accept()
    {
        /**
         * 
         */

        $AppID = "***************";//商家后台AppID,如果是三方服务商,这里是client_id
        $AppSecret = "***************";//商家后台AppSecret,如果是三方服务商,这里是client_secret
        $json = file_get_contents('php://input'); //接收推送数据
        $data = json_decode($json, true);

        file_put_contents('data/data.txt',$data);


        /**
         * 判断消息是否合法
         */
        $msg = $data['msg'];
        $signString = $AppID."".$msg."".$AppSecret;
        $sign = md5($signString);
        if($sign != $data['sign']){

            exit();
        }

        /**
         * msg是经过unicode(UTF-8)编码的消息对象,所以要进行解码
         */
        $msg = json_decode(urldecode($msg),true);
          $msg_json=json_encode($msg);
        //file_put_contents('data/msg.txt',$msg_json);



        if($data['type'] == "POINTS"){
            //处理交易信息,代码如果执行到这里的时候就会创建msg.txt文件
            file_put_contents('data/msg.txt',$msg_json);
           $points = json_decode($msg_json, true);
            //将推送过来的数据去更新我的数据库表
                Db::name('fans_info')->where("user_id", $points['fans_id'])->update(['points' => $points['total']]);



        }

        if($data['type'] == "ITEM"){
            //处理商品信息
        }



        /**
         * 只要收到推送消息就立即返回成功消息
         */
        if ($data){
            $result = array("code"=>0,"msg"=>"success") ;
            return json_encode($result);
        }
    }

}

 

 

 

 

 

3.关于执行操作的时候,需要传递当条记录的表单的id,由于我表格的td是循环输出的,所以直接我不可能在input中设置id 在将值传递获取

解决:用url的方式成功将表中想要的数据传送

<li><a onclick="iframe_select('/push/Getfans/points_changelog?uid={$user.user_id}')" >查看积分的变更记录</a></li>
                <li><a onclick="iframe_select('/push/Getfans/points_alter_form.html?uid={$user.user_id}&points={$user.points}')" >编辑粉丝的积分</a></li>
                <li><a  class="redirect" post-msg="永久删除数据将无法恢复,您确定吗?"redirect-url="/push/Getfans/fans_delete.html?uid={$user.user_id}" >删除粉丝</a></li>

 

4.在搜索框中实现模糊查询

方案:跟上面的url传递的方式一样,点击查找的时候,获取框中的值作为参数,传递到后台,然后将数据进行数据库的模糊查询(*我觉得有必要去实践一下mysql的全文索引)

  //根据用户的昵称查询用户粉丝
        $nick =$_GET['nickname'];
     //paginate的第三个参数是点击页数的时候会自动会获取前端页面的参数,不然的话会报未定义索引nickname,
        //如果方法没有参数传递的时候,则paginate不需要写第三个参数
        $result = Db::name('fans_info')->where('nick', 'like', '%' . $nick . '%')->paginate(10, false, ['query' => request()->get()]);

 

 

posted @ 2017-08-05 16:46  阿鸠  阅读(316)  评论(0编辑  收藏  举报