<?php /** * Created by PhpStorm. * User: Administrator * Date: 2019/1/4 * Time: 9:11 */ namespace app\index\controller; use app\index\model\CollocationModel; use app\index\model\OrderInfoModel; use app\index\model\PageHtmlModel; use app\index\model\SubjoinInsuranceModel; use app\index\model\UserModel; use cmf\controller\WeChatBaseController; use EasyWeChat\Foundation\Application; //我的保单 class MeGuaranteeController extends WeChatBaseController { //授权 function _initialize() { //判断用户是否微信浏览器打开 //$this->isWechat(); //判断是否手机端 //$this->isMobile(); //微信授权 parent::_initialize(); $this->checkWeChatUserLogin(); //阻止拉黑用户 $this->ban(); } public function index(){ $user_id = cmf_get_current_user_id(); $userModel = new UserModel(); $user = $userModel->findUserData(array('id'=>$user_id)); $collocationModel = new CollocationModel(); $no_collocation_count = $collocationModel->collocationCount(array('user_id'=>$user_id));//保单总数 $no_people_count = $collocationModel->peopleCount(array('user_id'=>$user_id));//被保人数 $no_main_total_sum = $collocationModel->totalSum(array('user_id'=>$user_id));//本年保险支出(主险) $subjoinInsuranceModel = new SubjoinInsuranceModel(); $no_vice_total_sum = $subjoinInsuranceModel->subjoinSum(array('s.user_id'=>$user_id));//本年保险支出(附加险) //已托管的保单信息 $orderInfoModel = new OrderInfoModel(); $yes_collocation_count = $orderInfoModel->collocationCount(array('c.user_id'=>$user_id));//托管中状态的保单份数 $yes_people_count = $orderInfoModel->peopleCount(array('c.user_id'=>$user_id));//托管中状态的被保人数 $yes_main_total_sum = $orderInfoModel->totalSum(array('c.user_id'=>$user_id));//托管中状态的本年保险支出(主险) $yes_vice_total_sum = $orderInfoModel->subjoinSum(array('c.user_id'=>$user_id));//托管中状态的本年保险支出(附加险) $insurer = $collocationModel->insurerData(array('user_id'=>$user_id),"insurer");//获取全部保险人 $collocation = $orderInfoModel->selectData(array('c.user_id'=>$user_id));//获取到在托管中状态的保单 //获取第一个被保人的默认信息 $collocation_data = $orderInfoModel->selectData1(array('c.user_id'=>$user_id,'c.insurer'=>!empty($insurer[0]['insurer']) ? $insurer[0]['insurer'] : null)); $pageHtmlModel = new PageHtmlModel(); $page_html = $pageHtmlModel->findData(array('id'=>4)); $this->assign( array( 'user' => $user, 'no_collocation_count' => $no_collocation_count, 'no_people_count' => $no_people_count, 'no_total_sum' => $no_main_total_sum+$no_vice_total_sum, 'yes_collocation_count' => $yes_collocation_count, 'yes_people_count' => $yes_people_count, 'yes_total_sum' => $yes_main_total_sum+$yes_vice_total_sum, 'insurer' => $insurer, 'collocation_data' => $collocation_data, 'page_html'=>$page_html, ) ); return $this->fetch(); } public function guarantee_info(){ $options = [ 'app_id' => config('wechat_config.app_id'), 'secret' => config('wechat_config.secret'), 'payment' => config('wechat_config.payment'), ]; $app = new Application($options); $js = $app->js; $jssdk = $js->config(['chooseImage', 'uploadImage', 'previewImage'], $debug = false, $beta = false, $json = true); $id = $this->request->param('id'); $user_id = cmf_get_current_user_id(); $orderInfoModel = new OrderInfoModel(); $data = $orderInfoModel->findData(array('o.id'=>$id,'o.user_id'=>$user_id))->toArray(); $subjoinInsuranceModel = new SubjoinInsuranceModel(); $subjoin = $subjoinInsuranceModel->selectData2(array('collocation_id'=>$data['id'])); $this->assign( array( 'jssdk'=>$jssdk, 'data'=>$data, 'subjoin'=>$subjoin, ) ); return $this->fetch(); } public function select_status(){ $param = $this->request->param(); if(!empty($param['application'])){ $where['c.application'] = ['eq',$param['application']]; } if(!empty($param['agent_phone'])){ $where['c.agent_phone'] = ['eq',$param['agent_phone']]; } $user_id = cmf_get_current_user_id(); $insurer = $param['insurer']; $time = time(); // $where['c.insurer'] = ['eq',$insurer]; $where = []; $whereor = ''; if(!empty($param['status'])){//0为全部1为托管中2为即将到期3为未托管 if($param['status'] == 1){ $where['o.status'] = ['eq',1]; $where['c.insurer'] = ['eq',$param['insurer']]; // $where['o.order_about_time'] = ['>',$time]; // $where['o.order_expire_time2'] = ['>',$time]; if(!empty($param['application']) && !empty($param['agent_phone'])){ $whereor = "o.status = 3 and o.order_expire_time2 > ".$time." and c.application = "."'"."$param[application]"."'"." and c.agent_phone = $param[agent_phone] and c.insurer ="."'"."$insurer"."'"; }else if(!empty($param['application'])){ $whereor = "o.status = 3 and o.order_expire_time2 > ".$time." and c.application = "."'"."$param[application]"."'"." and c.insurer ="."'"."$insurer"."'"; }else if(!empty($param['agent_phone'])){ $whereor = "o.status = 3 and o.order_expire_time2 > ".$time." and c.agent_phone = $param[agent_phone] and c.insurer ="."'"."$insurer"."'"; }else{ $where['o.user_id'] = ['eq',$user_id]; $whereor = "o.user_id = $user_id and o.status = 3 and o.order_expire_time2 > ".$time." and c.insurer ="."'"."$insurer"."'"; } }else if($param['status'] == 2){ $where['o.status'] = ['eq',3]; $where['c.insurer'] = ['eq',$param['insurer']]; $where['o.order_expire_time2'] = ['>',$time]; $where['o.order_about_time'] = array(array('<',$time),array('>',$time-30*24*60*60));//array(array('gt',1),array('lt',10)) if(!empty($param['application']) && !empty($param['agent_phone'])){ $whereor = "o.status = 1 and c.insurer = "."'".$insurer."'"." and o.order_about_time < $time and o.order_about_time > ".($time-30*24*60*60)." and o.order_expire_time2 > $time and c.application = "."'"."$param[application]"."'"." and c.agent_phone = $param[agent_phone]"; }else if(!empty($param['application'])){ $whereor = "o.status = 1 and c.insurer = "."'".$insurer."'"." and o.order_about_time < $time and o.order_about_time > ".($time-30*24*60*60)." and o.order_expire_time2 > $time and c.application = "."'"."$param[application]"."'".""; }else if(!empty($param['agent_phone'])){ $whereor = "o.status = 1 and c.insurer = "."'".$insurer."'"." and o.order_about_time < $time and o.order_about_time > ".($time-30*24*60*60)." and o.order_expire_time2 > $time and c.agent_phone = $param[agent_phone]"; }else{ $where['o.user_id'] = ['eq',$user_id]; $whereor = "o.user_id = $user_id and o.status = 1 and c.insurer = "."'".$insurer."'"." and o.order_about_time < $time and o.order_about_time > ".($time-30*24*60*60)." and o.order_expire_time2 > $time"; } }else if($param['status'] == 3){ // $where['o.status'] = ['eq',2]; // $where['c.insurer'] = ['eq',$param['insurer']]; // $where['o.order_expire_time2'] = ['<',$time]; if(!empty($param['application']) && !empty($param['agent_phone'])){ $whereor = "(o.status = 3 and o.order_expire_time2 < $time and c.insurer ="."'"."$insurer"."'"." and c.application = "."'"."$param[application]"."'"." and c.agent_phone = $param[agent_phone]) or (o.status = 1 and c.insurer ="."'"."$insurer"."'"." and c.application = "."'"."$param[application]"."'"." and c.agent_phone = $param[agent_phone])"; //$whereor = "(o.user_id = $user_id and o.status = 2 and o.delete_time = 0 and o.order_expire_time2 < $time) or (o.user_id = $user_id and o.status = 1 and c.insurer ="."'"."$insurer"."'"." and o.order_about_time < ".($time-24*30*60*60)." and o.delete_time = 0) or (o.user_id = $user_id and o.status = 3 and c.application = "."'"."$param[application]"."'"." and c.agent_phone = $param[agent_phone] and c.insurer ="."'"."$insurer"."'"."and o.delete_time = 0) or (o.user_id = $user_id and o.status = 3 and o.order_about_time < ".($time-24*30*60*60)." and c.insurer ="."'"."$insurer"."'and o.delete_time = 0)"; }else if(!empty($param['application'])){ $whereor = "(o.status = 3 and o.order_expire_time2 < $time and c.insurer ="."'"."$insurer"."'"." and c.application = "."'"."$param[application]"."'".") or (o.status = 1 and c.insurer ="."'"."$insurer"."'"." and c.application = "."'"."$param[application]"."'".")"; // $whereor = "(o.user_id = $user_id and o.status = 2 and o.delete_time = 0 and o.order_expire_time2 < $time) or (o.user_id = $user_id and o.status = 1 and c.insurer ="."'"."$insurer"."'"." and o.order_about_time < ".($time-24*30*60*60)." and o.delete_time = 0) or (o.user_id = $user_id and o.status = 3 and c.application = "."'"."$param[application]"."'"." and c.insurer ="."'"."$insurer"."'"." and o.delete_time = 0) or (o.user_id = $user_id and o.status = 3 and o.order_about_time < ".($time-24*30*60*60)." and c.insurer ="."'"."$insurer"."' and o.delete_time = 0)"; }else if(!empty($param['agent_phone'])){ $whereor = "(o.status = 3 and o.order_expire_time2 < $time and c.insurer ="."'"."$insurer"."'"." and c.agent_phone = $param[agent_phone]) or (o.status = 1 and c.insurer ="."'"."$insurer"."'"." and c.agent_phone = $param[agent_phone])"; // $whereor = "(o.user_id = $user_id and o.status = 2 and o.delete_time = 0 and o.order_expire_time2 < $time) or (o.user_id = $user_id and o.status = 1 and c.insurer ="."'"."$insurer"."'"." and o.order_about_time < ".($time-24*30*60*60)." and o.delete_time = 0) or (o.user_id = $user_id and o.status = 3 and c.agent_phone = $param[agent_phone] and c.insurer ="."'"."$insurer"."'"." and o.delete_time = 0) or (o.user_id = $user_id and o.status = 3 and o.order_about_time < ".($time-24*30*60*60)." and c.insurer ="."'"."$insurer"."'and o.delete_time = 0)"; }else{ $whereor = "(o.user_id = $user_id and o.status = 3 and o.order_expire_time2 < $time and c.insurer ="."'"."$insurer"."'".")"; // $whereor = "(o.user_id = $user_id and o.status = 2 and o.delete_time = 0 and o.order_expire_time2 < $time) or (o.user_id = $user_id and o.status = 1 and c.insurer ="."'"."$insurer"."'"." and o.order_about_time < ".($time-24*30*60*60)." and o.delete_time = 0) or (o.user_id = $user_id and o.status = 3 and o.order_about_time < ".($time-24*30*60*60)." and c.insurer ="."'"."$insurer"."')"; //$whereor = "(o.status = 2 and o.delete_time = 0) or (o.order_expire_time < $time ) or (o.status = 1 and o.order_about_time < ".($time-24*30*60*60)." and o.delete_time = 0) or (o.status = 3 and o.order_about_time < ".($time-24*30*60*60)." and o.delete_time = 0)"; } } }else{ if(empty($param['application']) || empty($param['agent_phone'])){ $where['o.user_id'] = ['eq',$user_id]; } $where['c.insurer'] = ['eq',$insurer]; } $orderInfoModel = new OrderInfoModel(); $data = $orderInfoModel->selectData1($where,$whereor); $data = $this->dispose($data); $arr['code'] = 20000; $arr['msg'] = 'SUCCESS'; $arr['data'] = $data; return json_encode($arr); } public function dispose($data){ foreach($data as $key => $vo){ $data[$key]['thumbnail'] = cmf_get_image_url($vo['thumbnail']); if($vo['remit'] == 1){ $data[$key]['remit'] = '是'; }else if($vo['remit'] == 2){ $data[$key]['remit'] = '否'; } $data[$key]['take_time'] = date('Y-m-d',$vo['take_time']); $data[$key]['insurer_time'] = date('Y-m-d',$vo['insurer_time']); } return $data; } }