审查视图

app/portal/controller/OrderSalesmanController.php 11.1 KB
1 2 3 4 5 6 7 8 9 10 11
<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2019/6/9
 * Time: 15:34
 */

namespace app\portal\controller;

王晓刚 authored
12
use app\portal\model\AddressModel;
13 14 15 16
use app\portal\model\IndentGoodsModel;
use app\portal\model\IndentModel;
use cmf\controller\WeChatBaseController;
use think\Db;
王晓刚 authored
17
use think\Image;
18 19 20 21

class OrderSalesmanController extends WeChatBaseController
{
    protected $user_id;
王晓刚 authored
22 23 24 25 26
    protected $beforeActionList = [
        'check'             => ['except' => 'getGradeClass'],
    ];

    protected function check() {
27 28 29 30
        $user_id = cmf_get_current_user_id();
        $this->user_id = $user_id;
        $my_user = Db::name('my_user')->where(['uid'=>$user_id])->find();
        if(empty($my_user)){
王晓刚 authored
31 32 33 34
            $this->error('查无此人','','','');
        }
        if($my_user['status'] != 2){
            $this->error('您还不是业务员那','','','');
35 36 37 38 39 40 41 42 43 44
        }
    }
    public function get_all(){
        $param = $this->request->param();
        if(!empty($param['is_courier'])){
            $where['is_courier'] = ['eq',$param['is_courier']];
        }
        $user_id = $this->user_id;
        $where['salesman_uid'] = ['eq',$user_id];
        $where['indent_type'] = ['eq',2];
王晓刚 authored
45
        $where['state'] = ['eq',2];
46 47 48
        $indentModel = new IndentModel();
        $data = $indentModel->selectData($where);
        $indentGoodsModel = new IndentGoodsModel();
王晓刚 authored
49
        $indent_ids = [];
50 51 52
        foreach($data as $key => $vo){
            $indent_goods = $indentGoodsModel->selectData(['indent_id'=>$vo['id']]);
            $data[$key]['indent_goods'] = $indent_goods;
4  
anyv authored
53 54 55 56
            //判断订单是不是平台订单
            if($vo['indent_type'] == 1){
                $data[$key]['dizhi'] = Db::name('address') -> where('id',$vo['indent_address']) -> find();
            }
王晓刚 authored
57
            $indent_ids[] = $vo['id'];
58
        }
王晓刚 authored
59 60 61 62 63 64
        $goods_count = $indentGoodsModel->where(['indent_id'=>['in',$indent_ids]])->group('goods_id')->order('indent_id desc')->select()->toArray();
        foreach($goods_count as $key => $g_c){
            $number_sum = $indentGoodsModel->where(['indent_id'=>['in',$indent_ids],'goods_id'=>$g_c['goods_id']])->sum('number');
            $goods_count[$key]['number_sum'] = $number_sum;
        }
        $this->assign('goods_count',$goods_count);
4  
anyv authored
65 66
        $school = Db::name('school')->where('uid',$user_id)->order('create_time desc')->select()->toArray();
        if(count($school)!=0){
王晓刚 authored
67
            $schools = [];
4  
anyv authored
68 69 70 71
            foreach ($school as $key => $val){
                $schools[$key]['value'] = $val['id'];
                $schools[$key]['text'] = $val['school'];
            }
2  
anyv authored
72 73 74
            $this->assign('school',json_encode($schools));
        }else{
            $this->assign('school','');
4  
anyv authored
75
        }
76
        $this->assign('data',$data);
王晓刚 authored
77
        $this->assign('count',count($data));
78 79 80 81 82 83 84
        return $this->fetch();
    }
    public function getGradeClass(){
        $school_id = $this->request->param('school_id',0,'intval');
        if(empty($school_id)){
            $this->error('缺少必要参数');
        }
王晓刚 authored
85 86 87 88 89 90 91 92 93 94 95 96 97 98
        $grade = Db::name('grade_class')->where(['school_id'=>$school_id])->select()->toArray();
        foreach($grade as $key => $g){
            $class = explode('-',$g['class']);
            $grade[$key]['start'] = $class[0];
            $grade[$key]['end'] = $class[1];
        }
        $this->success('SUCCESS','',$grade);
    }
    public function getOrderSalesman(){
        $param = $this->request->param();
        if(!empty($param['school'])){
            $where['school'] = ['eq',$param['school']];
        }
        if(!empty($param['grade'])){
99
            $param['grade'] = explode(' - ',$param['grade']);
100 101
            $where['grade'] = ['eq',$param['grade'][0]];
            $where['class'] = ['eq',$param['grade'][1]];
王晓刚 authored
102
        }
王晓刚 authored
103 104 105
        if(!empty($param['state'])){
            $where['state'] = ['eq',$param['state']];
        }else{
王晓刚 authored
106
            $where['state'] = ['eq',2];
王晓刚 authored
107
        }
108 109 110
        if(!empty($param['is_courier'])){
            $where['is_courier'] = ['eq',$param['is_courier']];
        }
王晓刚 authored
111 112 113
//        else{
//            $where['is_courier'] = ['eq',1];
//        }
王晓刚 authored
114 115 116 117 118 119
        $user_id = $this->user_id;
        $where['salesman_uid'] = ['eq',$user_id];
        $where['indent_type'] = ['eq',2];
        $indentModel = new IndentModel();
        $data = $indentModel->selectData($where);
        $indentGoodsModel = new IndentGoodsModel();
王晓刚 authored
120
        $indent_ids = [];
王晓刚 authored
121 122 123
        foreach($data as $key => $vo){
            $indent_goods = $indentGoodsModel->selectData(['indent_id'=>$vo['id']]);
            $data[$key]['indent_goods'] = $indent_goods;
124 125 126 127 128 129
            if($vo['is_courier'] == 2){
                $address = Db::name('address')->where(['id'=>$vo['indent_address']])->find();
                $data[$key]['region'] = $address['region'];
                $data[$key]['detailed'] = $address['detailed'];
                $data[$key]['phone'] = $address['phone'];
            }
王晓刚 authored
130 131 132 133 134 135
            $indent_ids[] = $vo['id'];
        }
        $goods_count = $indentGoodsModel->where(['indent_id'=>['in',$indent_ids]])->group('goods_id')->order('indent_id desc')->select()->toArray();
        foreach($goods_count as $key => $g_c){
            $number_sum = $indentGoodsModel->where(['indent_id'=>['in',$indent_ids],'goods_id'=>$g_c['goods_id']])->sum('number');
            $goods_count[$key]['number_sum'] = $number_sum;
王晓刚 authored
136
        }
王晓刚 authored
137 138 139
        $result['data'] = $data;
        $result['goods_count'] = $goods_count;
        $this->success('SUCCESS','',$result);
140
    }
王晓刚 authored
141 142 143 144 145 146 147 148 149
    public function send(){
        $param = $this->request->param();
        if(empty($param['is_courier'])){
            $this->error('缺少必要参数1');
        }
        if($param['is_courier'] == 1){
            if(empty($param['start_time'])){
                $this->error('缺少必要参数2');
            }
150 151 152
//            if(empty($param['end_time'])){
//                $this->error('缺少必要参数3');
//            }
王晓刚 authored
153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
        }else if($param['is_courier'] == 2){
            if(empty($param['logistic_name'])){
                $this->error('缺少必要参数4');
            }
            if(empty($param['logistic_code'])){
                $this->error('缺少必要参数5');
            }
        }
        if(empty($param['indent_id'])){
            $this->error('缺少必要参数6');
        }
        $where['id'] = ['eq',$param['indent_id']];
        $indentModel = new IndentModel();
        $indent = $indentModel->findData($where);
        if(empty($indent)){
            $this->error('查询为空');
        }
        if($indent['state'] != 2){
            $this->error('订单不是待支付状态');
        }
        $arr = [];
        if($param['is_courier'] == 1){
            $arr['start_time'] = $param['start_time'];
176
//            $arr['end_time'] = $param['end_time'];
177 178 179
        }else if($param['is_courier'] == 2){
            $arr['logistic_name'] = $param['logistic_name'];
            $arr['logistic_code'] = $param['logistic_code'];
王晓刚 authored
180 181
        }
        $arr['state'] = 5;
王晓刚 authored
182
        $result = $indentModel->updateData($where,$arr);////
王晓刚 authored
183 184
        $this->success('发货成功');
    }
王晓刚 authored
185 186
    public function send_all(){
        $param = $this->request->param();
187
        if(empty($param['start_time2']) || empty($param['indent_ids'])){
王晓刚 authored
188 189 190 191
            $this->error('缺少必要参数');
        }
        $indent_ids = explode(',',$param['indent_ids']);
        $data['start_time'] = $param['start_time2'];
192
//        $data['end_time'] = $param['end_time2'];
王晓刚 authored
193 194
        $data['state'] = 5;
        $indentModel = new IndentModel();
195 196 197 198
        $result = $indentModel->updateData(['id'=>['in',$indent_ids]],$data);
        if(empty($result)){
            $this->error('更新失败');
        }else{
王晓刚 authored
199
            $this->success('发货成功');
200
        }
王晓刚 authored
201 202 203 204 205 206 207
    }
    public function get_one(){
        $id = $this->request->param('id',0,'intval');
        if(empty($id)){
            $this->error('缺少必参数','','','');
        }
        $indentModel = new IndentModel();
王晓刚 authored
208
        $indent = $indentModel->findData(['id'=>$id])->toArray();
王晓刚 authored
209 210 211 212 213
        if(empty($indent)){
            $this->error('查询为空');
        }
        $indentGoodsModel = new IndentGoodsModel();
        $indent_goods = $indentGoodsModel->selectData(['indent_id'=>$indent['id']]);
王晓刚 authored
214 215
        if(!empty($indent['indent_address'])){
            $addressModel = new AddressModel();
王晓刚 authored
216
            $indent_address = $addressModel->findData(['id'=>$indent['indent_address']])->toArray();
王晓刚 authored
217 218
            $indent['indent_address'] = $indent_address;
        }
王晓刚 authored
219 220 221 222
        $indent['indent_goods'] = $indent_goods;
        $this->assign('data',$indent);
        return $this->fetch();
    }
王晓刚 authored
223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247
    public function take_all(){
        $indent_ids = $this->request->param('indent_ids');
        $data['state'] = 3;
        $indent_ids = explode(',',$indent_ids);
        $where['id'] = ['in',$indent_ids];
        $indentModel = new IndentModel();
        $result = $indentModel->updateData($where,$data);
        if(empty($result)){
            $this->error('更新失败');
        }else{
            $this->success('更新成功');
        }
    }
    public function take_one(){
        $indent_id = $this->request->param('indent_id');
        $data['state'] = 3;
        $where['id'] = ['eq',$indent_id];
        $indentModel = new IndentModel();
        $result = $indentModel->updateData($where,$data);
        if(empty($result)){
            $this->error('更新失败');
        }else{
            $this->success('更新成功');
        }
    }
王晓刚 authored
248 249 250 251 252 253 254 255 256 257 258 259 260 261

    public function upload_img() {
        if($this->request->isAjax()) {
            $img = $this->request->param('img');
            $top = $this->request->param('top');
            if($img) {
                $img_url = $this->base64_image_content($img,'./upload');
                $new_img = Image::open('./upload/'.$img_url);
                $width = $new_img->width();
                $height = $new_img->height();
                $new_img->thumb($width,$height - intval($top) * 2,5);
                $new_img->save('./upload/'.$img_url);
                $this->success('成功','',cmf_get_asset_url($img_url));
            }
王晓刚 authored
262
        }
王晓刚 authored
263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281
    }

    /**
     * [将Base64图片转换为本地图片并保存]
     * @E-mial wuliqiang_aa@163.com
     * @TIME   2017-04-07
     * @WEB    http://blog.iinu.com.cn
     * @param  [Base64] $base64_image_content [要保存的Base64]
     * @param  [目录] $path [要保存的路径]
     */
    private function base64_image_content($base64_image_content,$path){
        //匹配出图片的格式
        if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image_content, $result)){
            $type = $result[2];
            $file_path = "order_img/";
            $new_file = $path."/".$file_path;
            if(!file_exists($new_file)){
                //检查是否有该文件夹,如果没有就创建,并给予最高权限
                mkdir($new_file, 0700);
王晓刚 authored
282
            }
王晓刚 authored
283 284 285 286 287
            $new_file = $new_file.cmf_get_current_user_id().".{$type}";
            if (file_put_contents($new_file, base64_decode(str_replace($result[1], '', $base64_image_content)))){
                return $file_path.cmf_get_current_user_id().".{$type}";
            }else{
                return false;
王晓刚 authored
288
            }
王晓刚 authored
289 290
        }else{
            return false;
王晓刚 authored
291 292
        }
    }
293
}