CollocationController.php 4.8 KB
<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/12/25
 * Time: 11:49
 */

namespace app\admin\controller;


use cmf\controller\AdminBaseController;

use think\Db;
use think\Validate;

class CollocationController extends AdminBaseController
{
    public function index(){
        $where=[];
        $param = $this->request->param();
        $keyword = empty($param['keyword']) ? '' : $param['keyword'];
        if (!empty($keyword)) {
            $where['product_name|application|insurer'] = ['like', "%$keyword%"];
        }
        $data=Db::name('collocation')
            ->where('delete_time',0)
            ->where($where)
            ->order('create_time desc')
            ->paginate(10);
        $list = $data->items();
        foreach($list as $key => $l){
            $subjoin_insurance = Db::name('subjoin_insurance')->where(array('delete_time'=>0,'collocation_id',$list['id']))->select()->toArray();
            $list[$key]['subjoin_insurance'] = $subjoin_insurance;
        }
        $data->appends($param);
        $this->assign([
            'data'=>$list,
            'page'=>$data->render(),
            'keyword'=>$keyword,
        ]);
        return $this->fetch();
    }
    //编辑
    public function edit(){
        $id=$this->request->param('id', 0, 'intval');
        if($this->request->isPost()){
            $param=$this->request->param();
            $validate = new Validate([
                'insurance_company_id' => 'require',
                'product_name' => 'require',
                'insurance_type_id' => 'require',
                'insurance_price' => 'require',
                'pay_method_id' => 'require',
                'pay_method_price' => 'require',
                'guarantee_deadline' => 'require',
                'insurance_num' => 'require',
                'application' => 'require',
                'insurer' => 'require',
                'relation' => 'require',
                'insurer_birthday' => 'require',
                'insurer_time' => 'require',
                'take_time' => 'require',
                'insure_time' => 'require',
                'remit' => 'require',
            ]);
            $validate->message([
                'insurance_company_id' => '请选择保险公司!',
                'product_name' => '产品名称不能为空!',
                'insurance_type_id' => '请选择保险类型!',
                'insurance_price' => '保险金额不能为空!',
                'pay_method_id' => '请选择缴费方式!',
                'pay_method_price' => '期缴保费不能为空!',
                'guarantee_deadline' => '请选择保障期限!',
                'insurance_num' => '保险单号不能为空!',
                'application' => '投保人不能为空!',
                'insurer' => '保险人不能为空!',
                'relation' => '请选择与保险人关系!',
                'insurer_birthday' => '保险人生日不能为空!',
                'insurer_time' => '投保日期不能为空!',
                'take_time' => '合同生效日期不能为空!',
                'insure_time' => '保险时间不能为空!',
                'remit' => '请选择保单豁免!',
            ]);
            if (!$validate->check($param)) {
                $this->error($validate->getError());
            }
            $param['update_time']=time();
            Db::name('collocation')
                ->where('id',$id)
                ->update($param);
            $this->success('更新成功!');
        }else{
            $data=Db::name('collocation')
                ->where('id',$id)
                ->find();
            $subjoin_insurance = Db::name('subjoin_insurance')->where(array('delete_time'=>0,'collocation_id',$data['id']))->find();
            $data['subjoin_insurance'] = $subjoin_insurance;
            $this->assign([
                'data'=>$data,
            ]);
            return $this->fetch();
        }
    }
    //删除
    public function delete(){
        $param = $this->request->param();

        if (isset($param['id'])) {
            $id = $this->request->param('id', 0, 'intval');
            $resultPortal = Db::name('collocation')
                ->where(['id' => $id])
                ->update(['delete_time' => time()]);
            if($resultPortal){
                $this->success("删除成功!", '');
            }else{
                $this->error("删除失败!", '');
            }

        }

        if (isset($param['ids'])) {
            $ids = $this->request->param('ids/a');
            $result = Db::name('collocation')
                ->where(['id' => ['in', $ids]])
                ->update(['delete_time' => time()]);
            if ($result) {
                $this->success("删除成功!", '');
            }else{
                $this->error("删除失败!", '');
            }
        }
    }
}