审查视图

application/admin/controller/Iphone.php 8.4 KB
郭盛 authored
1 2 3 4
<?php

namespace app\admin\controller;
郭盛 authored
5
use app\api\controller\Pay;
郭盛 authored
6 7
use app\common\controller\Backend;
use think\Db;
郭盛 authored
8
use app\nsms\nsms;
郭盛 authored
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71

/**
 * 苹果用户购买素材订单
 *
 * @icon fa fa-circle-o
 */
class Iphone extends Backend
{
    
    /**
     * Iphone模型对象
     * @var \app\admin\model\Iphone
     */
    protected $model = null;

    public function _initialize()
    {
        parent::_initialize();
        $this->model = new \app\admin\model\Iphone;

    }
    
    /**
     * 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法
     * 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑
     * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
     */
    

    /**
     * 查看
     */
    public function index()
    {
        //当前是否为关联查询
        $this->relationSearch = true;
        //设置过滤方法
        $this->request->filter(['strip_tags']);
        if ($this->request->isAjax())
        {
            //如果发送的来源是Selectpage,则转发到Selectpage
            if ($this->request->request('keyField'))
            {
                return $this->selectpage();
            }
            list($where, $sort, $order, $offset, $limit) = $this->buildparams();
            $total = $this->model
                    ->with(['pic','video'])
                    ->where($where)
                    ->order($sort, $order)
                    ->count();

            $list = $this->model
                    ->with(['pic','video'])
                    ->where($where)
                    ->order($sort, $order)
                    ->limit($offset, $limit)
                    ->select();

            foreach ($list as $row) {
                $row->getRelation('pic')->visible(['title']);
            }
            $list = collection($list)->toArray();
郭盛 authored
72 73 74 75 76 77 78
            foreach ($list as &$v){
                if(!empty($v['video_id'])){
                    $video_id = unserialize($v['video_id']);
                    //获取视频标题
                    $v['video.title'] = Db::name('video')->where('id',$video_id['id'])->value('title');
                }
                $v['user_phone'] = Db::name('user')->where('id',$v['user_id'])->value('mobile');
郭盛 authored
79
                $v['user_id'] = Db::name('user')->where('id',$v['user_id'])->value('nickname');
郭盛 authored
80 81 82 83 84 85 86
            }
            $result = array("total" => $total, "rows" => $list);

            return json($result);
        }
        return $this->view->fetch();
    }
郭盛 authored
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125

    /**
     * 编辑
     */
    public function edit($ids = null)
    {
        $row = $this->model->get($ids);
        if (!$row) {
            $this->error(__('No Results were found'));
        }
        $adminIds = $this->getDataLimitAdminIds();
        if (is_array($adminIds)) {
            if (!in_array($row[$this->dataLimitField], $adminIds)) {
                $this->error(__('You have no permission'));
            }
        }
        if ($this->request->isPost()) {
            $params = $this->request->post("row/a");
            if ($params) {
                $params = $this->preExcludeFields($params);


                //先查询一遍数据是否已经是支付状态
                $data = Db::name('iphone')->where('id',$ids)->find();

                //查询用户余额
                $user_info = Db::name('user')->where('id',$data['user_id'])->find();


                $result = false;
                Db::startTrans();
                try {
                    //是否采用模型验证
                    if ($this->modelValidate) {
                        $name = str_replace("\\model\\", "\\validate\\", get_class($this->model));
                        $validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.edit' : $name) : $this->modelValidate;
                        $row->validateFailException(true)->validate($validate);
                    }
郭盛 authored
126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
                    if($user_info['is_vip'] == 1){
                        //未支付状态下才变更用户余额
                        if($data['status'] == 1){
                            if($params['status'] == 2){
                                //判断金额是否充足
                                if($user_info['money'] < $data['total']){
                                    $this->error('您的余额不足,请充值后购买');
                                }else{


                                    //用户购买的什么素材
                                    if(empty($data['video_id'])){
                                        $pic = Db::name('pic')->where('id',$data['pic_id'])->find();

                                        //发送短信,通知客户
                                        $mobile = $user_info['mobile'];
                                        $content = "【仁甲看见SHOP】,感谢您购买仁甲看见SHOP素材。图片标题:$pic[title],云盘地址:$pic[url]";
                                        //发送短信

                                        $this->sms($mobile,$content);

                                    }elseif (empty($data['pic_id'])){
                                        $video_id = unserialize($data['video_id']);
                                        $video = Db::name('video')->where('id',$video_id['id'])->find();
                                        //发送短信,通知客户
                                        $mobile = $user_info['mobile'];
                                        if($video_id['attr'] == 1){
                                            $content = "【仁甲看见SHOP】,感谢您购买仁甲看见SHOP素材。视频标题:$video[title],云盘地址:$video[two_url]";
                                        }elseif ($video_id['attr'] == 2){
                                            $content = "【仁甲看见SHOP】,感谢您购买仁甲看见SHOP素材。视频标题:$video[title],云盘地址:$video[four_url]";
                                        }elseif ($video_id['attr'] == 3){
                                            $content = "【仁甲看见SHOP】,感谢您购买仁甲看见SHOP素材。视频标题:$video[title],云盘地址:$video[eight_url]";
                                        }
                                        //发送短信
                                        $this->sms($mobile,$content);
郭盛 authored
161
                                    }
郭盛 authored
162 163
                                    $update = $user_info['money'] - $data['total'];
                                    Db::name('user')->where('id',$user_info['id'])->update(['money'=>$update]);
郭盛 authored
164 165 166 167 168 169
                                }
                            }
                        }
                    }

郭盛 authored
170
郭盛 authored
171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193
                    $result = $row->allowField(true)->save($params);
                    Db::commit();
                } catch (ValidateException $e) {
                    Db::rollback();
                    $this->error($e->getMessage());
                } catch (PDOException $e) {
                    Db::rollback();
                    $this->error($e->getMessage());
                } catch (Exception $e) {
                    Db::rollback();
                    $this->error($e->getMessage());
                }
                if ($result !== false) {
                    $this->success();
                } else {
                    $this->error(__('No rows were updated'));
                }
            }
            $this->error(__('Parameter %s can not be empty', ''));
        }
        $this->view->assign("row", $row);
        return $this->view->fetch();
    }
郭盛 authored
194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219



    //发送短信
    public function sms($mobile,$content){
        $note = array(
            'content' 	=> $content,//短信内容
            'mobile' 	=> $mobile,//手机号码
            'productid' => '676767',//模板id
            'xh'		=> ''//小号
        );
        $result = $this->send_sms($note);
        return $result;
    }
    function send_sms($data){
        //todo 短信账号密码
//        require_once EXTEND_PATH . 'nsms/nsms.php';
        $url 		= "http://www.ztsms.cn/sendNSms.do";
        $username 	= 'hangpai';
        $password 	= 'Cxz307312';
        $sendAPI = new nsms($url, $username, $password);
        $sendAPI->data = $data;/*初始化数据包*/
        $return = $sendAPI->sendSMS('POST');
        return $return;
    }
郭盛 authored
220
}