1,收定->2 */ public function list() { $param = $this->request->only(['page', 'type']); $data = ActivityModel::withAttr('timestate')->where(['type' => $param['type'], 'del' => 0, 'show' => 1, 'root_id' => request()->token['root_org']]) ->field('id,cover,title,start_date,end_date,end_date as timestate') ->order(['id' => 'desc']) ->page($param['page'], 6) ->select(); return json(['code' => 0, 'data' => $data, 'msg' => '获取成功']); } public function details($id) { $token = request()->token; $data = ActivityModel::where(['id' => $id, 'del' => 0, 'root_id' => $token['root_org']])->field('id,cover,title,content,type,start_date,end_date, end_date as timestate,view,money,address,poster,cate,show')->find(); // 添加足迹 if (!empty($token['uid']) && !$token['isEmployee']) { event(new FootPrints($token['uid'], $token['share_employee'] ?? 0, $token['share_org'] ?? 0, $data)); } // 判断是否交定 $hadPay = ActivityOrder::where(['user_id' => $token['uid'], 'activity_id' => $data['id'], 'state' => 1])->count(); if ($hadPay) $data['had_pay'] = 1; else $data['had_pay'] = 0; //是否报名 $data['is_activity'] = 0; // $aw[] = ['uid','=',$token['uid']]; // $org = Org::where([['path', 'like', $token['root_org'] . '-%']])->column('id'); // $aw[] = ['org_id','in',$org]; // $is = Customer::where($aw)->value('id'); $cw[] = ['type', 'in', ['activity_sign_up', 'activitySignUp']]; $is = EmployeeMsg::where($cw)->whereRaw('data->"$.aid"=' . $id . ' and data->"$.uid"=' . $token['uid'])->order('id desc')->find(); if ($is) { $data['is_activity'] = 1; } $qrcode = ActivitySign::where([['aid', '=', $id], ['uid', '=', $token['uid']]])->value('qrcode'); $ali_oss_bindurl = config('app.ali_oss_bindurl'); $url = 'https://' . $ali_oss_bindurl . '/'; $data['qrcode'] = $qrcode ? $url . $qrcode : ''; ActivityModel::where('id', $id)->inc('view')->update(); return json(['code' => 0, 'data' => $data, 'msg' => '获取成功']); } /* * 活动报名客户列表 * auth kjl * date 2022/01/10 * type已交定,已到访,未到访已签单 * 查询自己跟踪的所有客户 */ public function activity_users() { $param = $this->request->only(['id', 'type', 'p', 'pagesize']); $token = request()->token; $param['type'] = $param['type'] ?: '全部'; // $where[] = ['reg_info','like','%aid'.'":'.$param['id'].',%']; $where[] = ['pipe_type', 'in', ['activity_sign_up', 'activitySignUp']]; $where[] = ['employee_id', '=', $token['employee_id']]; //自己邀请的人员 $field = 'customer.id,customer.uid,customer.state,customer.verify,customer.verify_employee_id,customer.verify_addtime,employee.root_id'; if ($param['type'] && $param['type'] != '全部') { $c_where[] = ['customer.state', 'like', '%' . $param['type'] . '%']; $c_where[] = ['employee.root_id', '=', $token['root_org']]; $c_where[] = ['customer.uid', '>', 0]; $uids = Customer::where($c_where)->withJoin(['employee' => []], 'inner') ->field($field)->select()->toArray(); if (!$uids) return json(['code' => 0, 'data' => [], 'msg' => '获取成功']); $where[] = ['uid', 'in', array_column($uids, 'uid')]; } $footprints = FootprintsModel::with(['customer', 'employee', 'user'])->where($where)->where(function ($query) use ($param) { $query->where("reg_info->'$.aid'=" . $param['id']); })->field('id,uid,employee_id,reg_info reg_infos,addtime')->order('id', 'desc')->page($param['p'], $param['pagesize'])->select()->toArray(); $verify = [0 => '未核实', 1 => '核实有效', 2 => '核实无效']; $employees = Employee::where([['root_id', '=', $token['root_org']]])->column('name', 'id'); foreach ($footprints as $k => $v) { $json = json_decode($v['reg_infos'], true); unset($footprints[$k]['reg_infos']); $footprints[$k]['name'] = $json['name']; $footprints[$k]['phone'] = $json['phone']; $footprints[$k]['addtime'] = date('Y-m-d', strtotime($v['addtime'])); $footprints[$k]['state'] = $v['customer'] ? $v['customer']['state'] : ''; $footprints[$k]['verify'] = $v['customer'] ? $v['customer']['verify'] : 0; $footprints[$k]['verify_name'] = $v['customer'] ? $verify[$v['customer']['verify']] : '未核实'; $footprints[$k]['verify_employee_id'] = $eid = $v['customer'] ? $v['customer']['verify_employee_id'] : 0; $footprints[$k]['verify_employee_name'] = !$eid ? '' : $employees[$eid]; unset($footprints[$k]['customer']); } return json(['code' => 0, 'data' => $footprints, 'msg' => '获取成功']); } /* * 确认到访客户列表 * auth kjl * date 2022/01/10 * is_manager是否是管理者,org_id组织结构id * 管理者查询本部门所有人员的客户列表 * 非管理者查询自己的客户列表 */ public function confirm() { $param = $this->request->only(['id', 'p', 'pagesize']); $token = request()->token; // $token['employee_id'] = 1; // $token['root_org'] = 1; // $token['is_manager'] = 1; if ($token['is_manager']) { $u_where[] = ['org_id', '=', $token['root_org']]; } else { $u_where[] = ['id', '=', $token['employee_id']]; } $eids = Employee::where($u_where)->field('id,name')->select()->toArray(); $where[] = ['employee_id', 'in', array_column($eids, 'id')]; $where[] = ['pipe_type', 'in', ['activity_sign_up', 'activitySignUp']]; // $where[] = ['reg_info','like','%aid'.'":"'.$param['id'].'"%']; $p = (int)$param['p'] ?: 1; $pagesize = (int)$param['pagesize'] ?: 10; $footprints = FootprintsModel::with(['customer', 'employee', 'user'])->where($where)->where(function ($query) use ($param) { $query->where("reg_info->'$.aid'=" . $param['id']); })->field('id,uid,employee_id,reg_info reg_infos,addtime')->order('id', 'desc')->page($p, $pagesize)->select()->toArray(); $verify = [0 => '未核实', 1 => '核实有效', 2 => '核实无效']; $employees = Employee::where([['root_id', '=', $token['root_org']]])->column('name', 'id'); foreach ($footprints as $k => $v) { $json = json_decode($v['reg_infos'], true); unset($footprints[$k]['reg_infos']); $footprints[$k]['name'] = $json['name']; $footprints[$k]['phone'] = $json['phone']; $footprints[$k]['addtime'] = date('Y-m-d', strtotime($v['addtime'])); $footprints[$k]['state'] = $v['customer'] ? $v['customer']['state'] : ''; $footprints[$k]['verify'] = $v['customer'] ? $v['customer']['verify'] : 0; $footprints[$k]['verify_name'] = $v['customer'] ? $verify[$v['customer']['verify']] : '未核实'; $footprints[$k]['verify_employee_id'] = $eid = $v['customer'] ? $v['customer']['verify_employee_id'] : 0; $footprints[$k]['verify_employee_name'] = !$eid ? '' : $employees[$eid]; unset($footprints[$k]['customer']); } return json(['code' => 0, 'data' => $footprints, 'msg' => '获取成功']); } /* * 核实是否到访 * auth kjl * date 2022/01/11 */ public function verify() { $param = $this->request->only(['uid', 'verify']); $token = request()->token; Customer::update(['verify' => $param['verify'], 'verify_employee_id' => $token['employee_id']], ['uid' => $param['uid']]); return json(['code' => 0, 'msg' => '操作成功']); } /* * 活动排行榜 * auth kjl * date 2022/01/11 * type 邀约,到访,收订,签单 */ public function ranking_list() { $param = $this->request->only(['id', 'type', 'is_org', 'p', 'pagesize']); $token = request()->token; // $token['employee_id'] = 1; // $token['root_org'] = 1; if ($param['type'] && $param['type'] != '邀约') { $cc_where[] = ['state', 'like', '%' . $param['type'] . '%']; $uids = Customer::where($cc_where)->column('uid'); $where[] = ['uid', 'in', $uids]; } //团队排行 if (isset($param['is_org']) && $param['is_org']) { $ee_where[] = ['org_id', '=', $token['root_org']]; $eids = Employee::where($ee_where)->column('id'); $where[] = ['employee_id', 'in', $eids]; } //排行榜 $where[] = ['pipe_type', 'in', ['activity_sign_up', 'activitySignUp']]; $res = FootprintsModel::with(['employee'])->where($where)->where(function ($query) use ($param) { $query->where("reg_info->'$.aid'=" . $param['id']); })->field("employee_id,count('id') as count")->group('employee_id')->order("count desc")->select()->toArray(); foreach ($res as $k => $v) { $res[$k]['ranking'] = $k + 1; $res[$k]['headimgurl'] = $v['img']; } $result['my_ranking'] = ['count' => 0, 'employee_name' => '', 'headimgurl' => '', 'ranking' => '无排名', 'employee_id' => $token['employee_id']]; foreach ($res as $k => $v) { if ($v['employee_id'] == $token['employee_id']) { $result['my_ranking']['count'] = $v['count']; $result['my_ranking']['ranking'] = $v['ranking']; $result['my_ranking']['headimgurl'] = $v['headimgurl']; $result['my_ranking']['employee_name'] = $v['employee_name']; break; } } $res = $res ? array_slice($res, ($param['p'] - 1) * $param['pagesize'], $param['pagesize']) : []; // if ($res) { // $c_where[] = ['id','in',array_column($res,'employee_id')]; // $user = Employee::with('user')->where($c_where)->select()->toArray(); // $users = array_column($user,'user','id'); // $names = array_column($user,'name','id'); // foreach ($res as $k => $v) { // $res[$k]['headimgurl'] = isset($users[$v['employee_id']]) ? $users[$v['employee_id']]['headimgurl'] : ''; // $res[$k]['employee_name'] = isset($names[$v['employee_id']]) ? $names[$v['employee_id']] : ''; // } // } $result['ranking'] = $res; // $result['my_ranking']['headimgurl'] = isset($users[$param['eid']]) ? $users[$param['eid']]['headimgurl'] : ''; // $result['my_ranking']['employee_name'] = isset($names[$param['eid']]) ? $names[$param['eid']] : ''; return json(['code' => 0, 'data' => $result, 'msg' => '获取成功']); } /* * 团队邀约排行榜 * auth kjl * date 2022/01/11 * id活动id,type邀约,到访,收订,签单,eid,p,pagesize,org_id */ public function team_ranking_list() { $param = $this->request->only(['id', 'type', 'p', 'pagesize']); $token = request()->token; $token['root_org'] = 1; if ($param['type'] && $param['type'] != '邀约') { $cc_where[] = ['state', 'like', '%' . $param['type'] . '%']; $uids = Customer::where($cc_where)->column('uid'); $where[] = ['footprints.uid', 'in', $uids]; } $org_info = Org::find($token['root_org'])->toArray(); $leave = explode('-', $org_info['path'])[0]; // $where[] = ['f.reg_info','like','%aid'.'":"'.$param['id'].'"%'];//活动id $where[] = ['org.path', 'like', $leave . '-%']; //全公司 $field = 'org.id org_id,org.name,footprints.id,count(footprints.id) count'; $row = Employee::withJoin(['org' => [], 'footprints' => []], 'inner') // ->where($where) // ->where(function ($query) use ($param) { // $query->where("footprints.reg_info->'$.aid'=".$param['id']); // }) ->field('count(footprints.id) count') // ->group('employee.org_id') // ->order('count desc') ->fetchsql() ->select(); // $row = Db::table('ays_employee e') // ->join('ays_org o','o.id=e.org_id') // ->join('ays_footprints f','f.employee_id=e.id') // ->where($where) // ->field($field) // ->group('e.org_id') // ->order('count desc') // ->select()->toArray(); $res['my_team'] = ['ranking' => '无排名', 'org_id' => $param['org_id'], 'name' => '', 'count' => 0]; foreach ($row as $k => $v) { $row[$k]['ranking'] = $k + 1; if ($v['org_id'] == $token['root_org']) { $res['my_team']['ranking'] = $row[$k]['ranking']; $res['my_team']['name'] = $v['name']; $res['my_team']['count'] = $v['count']; } } $res['team'] = $row; return json(['code' => 0, 'data' => $res, 'msg' => '获取成功']); } /* * 小程序活动列表页面 */ public function activity_list() { $page = input('page', 1); $limit = input('limit', 10); $token = request()->token; // $token['root_org'] = 23; $w[] = ['root_id', '=', $token['root_org']]; $w[] = ['del', '=', 0]; $w[] = ['show', '=', 1]; $data = ActivityModel::where($w) ->field('id,cover,title,start_date,end_date,cate') ->order(['end_date' => 'desc']) ->page($page, $limit) ->select()->toArray(); $count = ActivityModel::where($w)->count(); return json(['code' => 0, 'data' => $data, 'count' => $count, 'msg' => '获取成功']); } /* * 活动报名 * date 2022-03-31 * // $token['uid'] = 1; // $token['root_org'] = 1; // $token['isEmployee'] = 0; 如果客户已经是别人的客户,仍然可以报名,需要给分享人发送消息提醒 */ public function activity_sign() { $token = request()->token; if($token['isEmployee']) return json(['code' => 1, 'msg' => '业务员无法参加活动', 'data' => '业务员无法参加活动']); $param = $this->request->only(['phone', 'aid', 'uid']); //查询是否已经报名 $sign_where[] = ['aid', '=', $param['aid']]; $sign_where[] = ['uid', '=', $token['uid']]; $sign = ActivitySign::where($sign_where)->findOrEmpty(); if (!$sign->isEmpty()) return json(['code' => 1, 'msg' => '已报名该活动', 'data' => '已报名该活动']); $aec = new Aec(config('app.aec_key'), config('app.aec_iv')); $phone = $aec->encrypt($param['phone']); //活动已经结束无法报名 $info = ActivityModel::where('id', $param['aid'])->find(); if ($info['del'] == 1 || $info['show'] == 0 || date('Y-m-d') > $info['end_date']) { return json(['code' => 1, 'msg' => '活动结束或已下架,无法报名']); } $emp = Employee::where([['root_id', '=', $token['root_org']], ['uid', '=', $param['uid']], ['state', '=', '在职']])->find(); $share_employee_id = $emp->id; // 设计师能否报备、获取客户 $de_where[] = ['root_id', '=', $token['root_org']]; $de_where[] = ['name', '=', 'designer_get_customer']; $info_de_where = Setting::where($de_where)->findOrEmpty(); $org_type = Org::where('id', '=', $emp['org_id'])->value('org_type'); if (!$info_de_where->isEmpty() && $org_type == 2) { if ((int)$info_de_where['content'] != 1) { return json(['code' => 1, 'msg' => '请联系业务员进行报名']); } } //查询是否已经建档 $orgs = Org::where([['path', 'like', $token['root_org'] . '-%']])->column('id'); $aw[] = ['phone|phone1|phone2', '=', $phone]; $aw[] = ['org_id', 'in', $orgs]; $aw[] = ['is_resource','=',0]; $customer_list = Customer::where($aw)->select()->toArray(); $aw[] = ['employee_id','=',$share_employee_id]; $customer = Customer::where($aw)->findOrEmpty(); $have_customer = []; foreach($customer_list as $k => $v) { if ($v['employee_id'] > 0 && $v['employee_id'] != $share_employee_id) { $have_customer[] = $v; } } $root_id = request()->token['root_org']; $empcrm_repeat[] = ['root_id', '=', $root_id]; $empcrm_repeat[] = ['name', '=', 'empcrm_customer_repeat']; $repeat_setting = Setting::where($empcrm_repeat)->findOrEmpty(); //判断同部门 if (!$repeat_setting->isEmpty()) { $repeat_org = explode(',', $repeat_setting['content']); if (in_array($emp['org_id'], $repeat_org)) { // 需要验证 if (!empty($have_customer)) { foreach ($have_customer as $ex) { if (in_array($ex['org_id'], $repeat_org)) { $have_emp = Employee::where('id', '=', $ex['employee_id'])->value('name'); return json(['code' => 1, 'msg' => '您已是' . $have_emp . '的客户,请联系他预约']); } } } } } // 客户跟进保护规则 /* $c_where[] = ['phone|phone1|phone2', '=', $phone]; $c_where[] = ['org_id', 'in', $orgs]; $c_where[] = ['is_resource','=',0]; $c_where[] = ['employee_id', 'not null', null]; $c_where[] = ['employee_id', '<>', $share_employee_id]; $have_customer = Customer::where($c_where)->select()->toArray(); */ $customer_ids = array_column($have_customer, 'id'); if (!empty($customer_ids)) { $yylf_state = CustomerVisitLog::changeState('预约量房', 'chaos'); $lf_state = CustomerVisitLog::changeState('已量房', 'chaos'); $yydc_state = CustomerVisitLog::changeState('预约活动', 'chaos'); $dc_state = CustomerVisitLog::changeState('已到场', 'chaos'); $yydd_state = CustomerVisitLog::changeState('预约到店', 'chaos'); $dd_state = CustomerVisitLog::changeState('已到店', 'chaos'); $sub_setting = Setting::where([['root_id', '=', $token['root_org']], ['name', '=', 'subscribe_protected']])->findOrEmpty(); if (!$sub_setting->isEmpty()){ $setting_content = json_decode($sub_setting['content'], true); foreach ($setting_content as $k_s => $v_s){ if (!empty($v_s['state']) && !empty($v_s['day']) && $v_s['state'] == 1){ $continue = false; $sub_state = 0; $errmsg = '您已有预约,无需重复预约'; $check_log = false; $check_where = []; switch ($k_s){ case 'liangfang': $sub_state = 3; $visit_state = 1; $check_log = true; $check_where[] = ['customer_id', 'in', $customer_ids]; $check_where[] = ['addtime', '>', date('Y-m-d H:i:s',time() - 24*3600*$v_s['day'])]; $check_where[] = ['employee_id', 'in', array_column($have_customer, 'employee_id')]; $check_where[] = ['state', 'in', $lf_state]; break; case 'yliangfang': //预约量房 $sub_state = 3; $visit_state = 0; break; case 'daodian': $sub_state = 1; $visit_state = 1; $check_log = true; $check_where[] = ['customer_id', 'in', $customer_ids]; $check_where[] = ['addtime', '>', date('Y-m-d H:i:s',time() - 24*3600*$v_s['day'])]; $check_where[] = ['employee_id', 'in', array_column($have_customer, 'employee_id')]; $check_where[] = ['state', 'in', $dd_state]; break; case 'ydaodian': $sub_state = 1; $visit_state = 0; break; case 'daochang': $sub_state = 2; $visit_state = 1; $check_log = true; $check_where[] = ['customer_id', 'in', $customer_ids]; $check_where[] = ['addtime', '>', date('Y-m-d H:i:s',time() - 24*3600*$v_s['day'])]; $check_where[] = ['employee_id', 'in', array_column($have_customer, 'employee_id')]; $check_where[] = ['state', 'in', $dc_state]; break; case 'ydaochang': $sub_state = 2; $visit_state = 0; break; default: $continue = true; break; } if ($continue) continue; // 查询保护时间段内添加的预约量房记录 unset($v_where); $v_where[] = ['customer_id', 'in', $customer_ids]; $v_where[] = ['addtime', '>', date('Y-m-d H:i:s',time() - 24*3600*$v_s['day'])]; $v_where[] = ['employee_id', 'in', array_column($have_customer, 'employee_id')]; $v_where[] = ['type', '=', $sub_state]; $v_where[] = ['state', '=', $visit_state]; $sub_list = CustomersSubscribe::where($v_where)->select()->toArray(); if (!empty($sub_list)){ return json(['code' => 1, 'msg' => $errmsg]); } if ($check_log) { $log_list = CustomerVisitLog::where($check_where)->select()->toArray(); if (!empty($log_list)){ return json(['code' => 1, 'msg' => $errmsg]); } } } } } } //如果手机号客户没建档,则建档分配给分享人 //如果手机号客户已建档没有分配业务员,则直接分配给分享人 //如果手机号客户已建档已分配,则不变,给分享人发消息通知即可 $uid = $param['uid']; //分享人的uid , $need_new = false; // 是否需要创建新客户 $param['employee_id'] = $share_employee_id; if ($customer->isEmpty()) { //分享人没有该客户 查询公海 $waters = Customer::where([['phone|phone1|phone2', '=', $phone],['org_id', 'in', $orgs],['is_resource','=',0],['employee_id','null',null]])->findOrEmpty(); if ($waters->isEmpty()) { $need_new = true; // 公海没有 }else{ Customer::where([['id', 'in', $waters->id]])->update(['employee_id' => $share_employee_id, 'org_id' => $emp->org_id, 'state' => '待确认', 'remark' => '公海获取', 'fresh' => 1, 'ext->ext6' => '', 'designer_id' => null]); } }else{ //已经有该客户 } //邀约日期默认活动开始日期 $adate = ActivityModel::where('id', $param['aid'])->value('start_date'); $param['date'] = $adate <= date('Y-m-d') ? date('Y-m-d') : $adate; if ($need_new) { //建档 $save = []; $save['uid'] = $param['uid']; $save['employee_id'] = $param['employee_id']; $save['clue_id'] = CustomerClue::where([['uid', '=', $token['uid']], ['org_id', 'in', $orgs], ['employee_id', '=', $param['employee_id']]])->value('id') ?: 0; $save['phone'] = $phone; $save['name'] = User::where('id', $token['uid'])->value('nickname') ?: ''; $save['state'] = 0; $save['org_id'] = Employee::where('id', $param['employee_id'])->value('org_id'); $save['remark'] = '活动报名建档'; $save['sex'] = 1; $save['aid'] = $param['aid']; $cid = Customer::insertGetId($save); $this->addFirstCustoemrVisitLog($cid); if ($save['clue_id']) { CustomerClue::where('id', $save['clue_id'])->update(['state' => 1]); } } else { $cid = $customer->id; } //查询是否可以报名 $sw[] = ['type', '=', 2]; $sw[] = ['state', '=', 0]; $sw[] = ['customer_id', '=', $cid]; $sw[] = ['aid', '>', 0]; $check = CustomersSubscribe::where($sw)->findOrEmpty(); //if(!$check->isEmpty()) return json(['code' => 1, 'msg' => '您有已报名的活动未参加,请联系业务员!']); //建档成功后直接邀约 //已经邀约过无法重复邀约 $visitlog = CustomerVisitLog::where([['aid', '=', $param['aid']], ['customer_id', '=', $cid]])->find(); if ($cid && $param['date'] && !$visitlog) { $save = []; $save['customer_id'] = $cid; $save['type'] = 3; $save['next_contact_date'] = $param['date']; $save['remark'] = '活动邀约'; $save['employee_id'] = $param['employee_id']; $save['user_id'] = $param['uid']; $save['state'] = 6; $save['aid'] = $param['aid']; CustomerVisitLog::insertGetId($save); // $update['state'] = 0;//已经报备后的客户状态不变 $update['aid'] = $param['aid']; $update['revisit_time'] = $param['date']; $update['last_contact_date'] = date('Y-m-d'); $update['updatetime'] = date('Y-m-d H:i:s'); $update['fresh'] = 0; Customer::where('id', $cid)->update($update); } $info = User::where('id', $token['uid'])->find()->toArray(); $str = json_encode(['uid' => (int)$token['uid'], 'aid' => (int)$param['aid']]); if ($uid != $param['uid']) { //如果报名客户是其他业务员的客户,需要给分享人发送消息提醒 $fenxiangren = Employee::where([['uid', '=', $uid], ['root_id', '=', $token['root_org']], ['state', '=', '在职']])->find()->toArray(); $yewuyan = Employee::where([['uid', '=', $param['uid']], ['root_id', '=', $token['root_org']], ['state', '=', '在职']])->find()->toArray(); $con = $yewuyan['name'] . '的客户在您分享的活动中报名'; event(new Msg($fenxiangren['id'], $con, 'activitySignUp', $str)); $con = '您的客户‘' . $info['nickname'] . '’通过‘' . $fenxiangren['name'] . '’分享的活动报名'; event(new Msg($yewuyan['id'], $con, 'activitySignUp', $str)); } else { $a = ActivityModel::where('id', $param['aid'])->find()->toArray(); $con = '您的客户' . $info['nickname'] . '已报名您分享的《' . $a['title'] . '》活动'; event(new Msg($param['employee_id'], $con, 'activitySignUp', $str)); } //预约表添加数据 $subscribe = [ 'customer_id' => $cid, 'subscribe_date' => $param['date'], 'employee_id' => $param['employee_id'], 'type' => 2, 'aid' => (int)$param['aid'], 'org_id' => Employee::where('id', $param['employee_id'])->value('org_id') ]; CustomersSubscribe::insertGetId($subscribe); //生成报名二维码 //二维码内容,活动id,报名人uid $qrcode_con = $param['aid'] .'&'.$cid.'&'.$token['uid']; $cate = ActivityModel::where('id',$param['aid'])->value('cate'); $qrcode_con = $qrcode_con.'&'.$cate; //生成二维码 $name = uniqid() . '.jpg'; $path = 'activityqrcode/' . $name; $img = qrcode($qrcode_con, 'upload/'.$name); $res = ossUpload($path, 'upload/'.$name); @unlink('upload/'.$name); //删除本地文件 ActivitySign::insertGetId([ 'aid' => $param['aid'], 'root_id' => $token['root_org'], 'uid' => $token['uid'], 'share_uid' => $param['uid'], 'share_employee_id' => $param['employee_id'], 'qrcode' => $path, 'qrcode_con' => $qrcode_con, 'addtime' => date('Y-m-d H:i:s') ]); $ali_oss_bindurl = config('app.ali_oss_bindurl'); $url = 'https://' . $ali_oss_bindurl . '/'.$path; return json(['code' => 0, 'msg' => '报名成功','url'=>$url]); } /** * 新建客户时添加一条跟进记录 * $id 客户id */ public function addFirstCustoemrVisitLog($id) { $token = $this->request->token; $info = Customer::where('id', $id)->find(); $name = Employee::where('id', $info->employee_id)->value('name'); $remark = '业务员' . $name . '对客户' . $info->name . '进行报备'; $save = [ 'customer_id' => $id, 'type' => '', 'next_contact_date' => date('Y-m-d'), 'remark' => $remark, 'addtime' => date('Y-m-d H:i:s'), 'employee_id' => $info->employee_id, 'user_id' => $info->uid, 'state' => 1, 'org_id' => $info->org_id, 'customer_employee_id' => $info->employee_id, 'customer_org_id' => $info->org_id ]; CustomerVisitLog::insertGetId($save); return true; } }