Commit 93be1855 authored by clone's avatar clone

Merge branch 'test-hujun1.15' into test

# Conflicts: # application/api/controller/Member.php
parents 59e7055a 259b29ea
...@@ -33,5 +33,23 @@ ...@@ -33,5 +33,23 @@
<arguments>1.0-name-matches-false-false-node_modules</arguments> <arguments>1.0-name-matches-false-false-node_modules</arguments>
</matcher> </matcher>
</filter> </filter>
<filter>
<id>1521081255881</id>
<name></name>
<type>26</type>
<matcher>
<id>org.eclipse.ui.ide.multiFilter</id>
<arguments>1.0-name-matches-false-false-node_modules</arguments>
</matcher>
</filter>
<filter>
<id>1522052779116</id>
<name></name>
<type>26</type>
<matcher>
<id>org.eclipse.ui.ide.multiFilter</id>
<arguments>1.0-name-matches-false-false-node_modules</arguments>
</matcher>
</filter>
</filteredResources> </filteredResources>
</projectDescription> </projectDescription>
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
namespace app\api\controller; namespace app\api\controller;
use app\api\untils\GeTuiUntils;
use app\model\AAgents;
use think\Request; use think\Request;
use app\api\extend\Basic; use app\api\extend\Basic;
use app\api\untils\MessageUntils; use app\api\untils\MessageUntils;
...@@ -20,8 +22,9 @@ class Member extends Basic ...@@ -20,8 +22,9 @@ class Member extends Basic
/** /**
* 用户登陆 * 用户登陆
* *
* @return type * @return \think\Response
* @throws \think\exception\DbException
*/ */
public function login() { public function login() {
...@@ -64,11 +67,11 @@ class Member extends Basic ...@@ -64,11 +67,11 @@ class Member extends Basic
return $this->response($data['status'], $data['msg'],$data['data']); return $this->response($data['status'], $data['msg'],$data['data']);
} }
/** /**
* 退出登录 * 退出登录
* *
* @return type * @return \think\Response
*/ */
public function logout() { public function logout() {
$id = $this->userId ? $this->userId : $this->params['id']; $id = $this->userId ? $this->userId : $this->params['id'];
...@@ -88,92 +91,76 @@ class Member extends Basic ...@@ -88,92 +91,76 @@ class Member extends Basic
return $this->response($data['status'], $data['msg']); return $this->response($data['status'], $data['msg']);
} }
/** /**
* 发送短信 * 发送短信
* @param Request $this->request *
* @return type
*/
/**
* @return \think\Response * @return \think\Response
* @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException * @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException * @throws \think\exception\DbException
*/ */
public function sendSms() { public function sendSms() {
$data['data'] = array(); $data['data'] = [];
$data['status'] = 101; $data['status'] = 101;
if ($this->request->param('phone')) {
$phone = $this->request->param('phone'); if (empty($this->params['phone'])) {
$data['msg'] = '手机号码为空';
return $this->response($data['status'], '手机号码为空', $data['data']);
}
if (check_phone($phone)) { if (!check_phone($this->params['phone'])) {
$noteLog = new NoteLog(); return $this->response($data['status'], '手机号码错误', $data['data']);
$send_time = $noteLog->field('send_time')->where('phone', $phone) }
->where('is_success',1)
->where('send_time','between time',[date('Y-m-d').' 00:00:00',date('Y-m-d').' 23:59:59'])
->select();
$num = count($send_time); //发送数量
if (!empty($send_time[$num-1]) && (time() - strtotime($send_time[$num-1]->send_time) < 58) && $num != 0) { $noteLog = new NoteLog();
$data['msg'] = '1分钟内不能再次获取验证码'; $send_time = $noteLog->field('send_time')->where('phone', $this->params['phone'])
} elseif ($num > 7){ ->where('is_success',1)
$data['msg'] = '短信发送超过上限'; ->where('send_time','between time',[date('Y-m-d').' 00:00:00',date('Y-m-d').' 23:59:59'])
} else { ->select();
$result['statusMsg'] = ''; $num = count($send_time); //发送数量
$result['statusCode'] = '';
//注册发送短信验证
if ($this->request->param('type') == 'add') {
$num = $this->user->where([
'user_phone'=> $phone,
'status' => 0
])->count();
if ($num > 0) {
return $this->response($data['status'], '您已注册,请登录');
}
}
//忘记密码验证 if (!empty($send_time[$num-1]) && (time() - strtotime($send_time[$num-1]->send_time) < 58) && $num != 0) {
if ($this->request->param('type') == 'forget') { return $this->response($data['status'], '1分钟内不能再次获取验证码', $data['data']);
$num = $this->user->where('user_phone', $phone)->count(); }
if ($num == 0) {
return $this->response($data['status'], '您未注册,请注册'); if ($num > 7){
} return $this->response($data['status'], '短信发送超过上限', $data['data']);
} }
$message = new MessageUntils();
$_code = mt_rand(1000, 9999) . ''; $result['statusMsg'] = '';
$result = $message->sendCCPSMS($phone, array($_code, '5分钟'), 214759); $result['statusCode'] = '';
$noteLog->phone = $phone; //注册发送短信验证
$noteLog->template_msg = '【同联商业】您的验证码为'.$_code.',请于5分钟内正确输入,如非本人操作,请忽略此短信。'; if ($this->request->param('type') == 'add') {
$noteLog->code = $_code; $num = $this->user->where([
$noteLog->send_time = date('Y-m-d H:i:s'); 'user_phone'=> $this->params['phone'],
$result['statusCode'] = 1; 'status' => 0
if ($result['statusCode'] == 1) { ])->count();
$jwt = new JwtUntils();
$noteLog->is_success = 1; if ($num > 0) {
$jwt_data['phone'] = $phone; return $this->response($data['status'], '您已注册,请登录');
$jwt_data['code'] = $_code; }
}
$data['data']['sms_code'] = $_code;
$data['data']['token'] = $jwt->createToken($jwt_data); //忘记密码验证
$data['status'] = 200; if ($this->request->param('type') == 'forget') {
$data['msg'] = '发送短信成功'; $num = $this->user->where('user_phone', $this->params['phone'])->count();
} else { if ($num == 0) {
$noteLog->is_success = 2; return $this->response($data['status'], '您未注册,请注册');
$data['msg'] = '短信发送失败';
}
$noteLog->save();
}
} else {
$data['msg'] = '手机号码错误';
} }
}
$message = new MessageUntils();
$result = $message->sendCheckCode($this->params['phone']);
if (empty($result['status'])) {
$data['code'] = 101;
$data['msg'] = '短信发送失败';
} else { } else {
$data['msg'] = '手机号码为空'; $data['data']['token'] = $result['token'];
$data['data']['sms_code'] = $result['sms_code'];
$data['msg'] = '短信发送成功';
} }
return $this->response($data['status'], $data['msg'], $data['data']); return $this->response($data['status'], $data['msg'], $data['data']);
} }
...@@ -256,7 +243,6 @@ class Member extends Basic ...@@ -256,7 +243,6 @@ class Member extends Basic
if ($this->params['code'] == $code && $code == '') { if ($this->params['code'] == $code && $code == '') {
return $this->response(101, '验证码错误'); return $this->response(101, '验证码错误');
} }
$referrer_id = $this->request->param('referrer_id'); $referrer_id = $this->request->param('referrer_id');
$referrer_source = $this->request->param('referrer_source'); $referrer_source = $this->request->param('referrer_source');
if (!empty($referrer_id)) { if (!empty($referrer_id)) {
...@@ -296,7 +282,12 @@ class Member extends Basic ...@@ -296,7 +282,12 @@ class Member extends Basic
} }
} }
} }
$insert_data['referrer_id'] = $referrer_id;
$ge_tui = new GeTuiUntils();
$agent_ = new AAgents();
$agent_data = $agent_->getAgentInfo('device_id',$referrer_id);
$content = '你有新客户【'.$user_nick.'-'.$phone.'】成功注册App';
$ge_tui->public_push_message_for_one($referrer_id,$agent_data['device_id'],'邀请注册',$content);
} }
$insert_data['referrer_source'] = $referrer_source; $insert_data['referrer_source'] = $referrer_source;
} }
...@@ -400,11 +391,14 @@ class Member extends Basic ...@@ -400,11 +391,14 @@ class Member extends Basic
} }
return $this->response($data['status'], $data['msg'], $data['data']); return $this->response($data['status'], $data['msg'], $data['data']);
} }
/** /**
* 邀请记录 * 邀请记录
* *
* @return type * @return \think\Response
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/ */
public function inviteList() { public function inviteList() {
// $id = $this->params['id']; // $id = $this->params['id'];
...@@ -435,11 +429,14 @@ class Member extends Basic ...@@ -435,11 +429,14 @@ class Member extends Basic
return $this->response($data['status'], $data['msg'], $data['data']); return $this->response($data['status'], $data['msg'], $data['data']);
} }
/** /**
* 生成邀请二维码 * 生成邀请二维码
* *
* @return type * @return \think\Response
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/ */
public function qrCode() { public function qrCode() {
...@@ -465,10 +462,14 @@ class Member extends Basic ...@@ -465,10 +462,14 @@ class Member extends Basic
} }
return $this->response($data['status'], $data['msg'], $data['data']); return $this->response($data['status'], $data['msg'], $data['data']);
} }
/** /**
* 通过AuthToken获取用户信息编辑用 * 通过AuthToken获取用户信息编辑用
* @return type *
* @return \think\Response
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/ */
public function getUserInfo() { public function getUserInfo() {
...@@ -488,6 +489,9 @@ class Member extends Basic ...@@ -488,6 +489,9 @@ class Member extends Basic
* 上传头像 * 上传头像
* *
* @return \think\Response * @return \think\Response
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/ */
public function uploadHeadImg() { public function uploadHeadImg() {
$data['status'] = 101; $data['status'] = 101;
......
...@@ -123,22 +123,24 @@ class GeTuiUntils { ...@@ -123,22 +123,24 @@ class GeTuiUntils {
return $template; return $template;
} }
/** /**
* 对某个人推送消息-公共 * 对某个人推送消息-公共
* *
* zhuwei
*
* 2017-11-07 10:31:27 * 2017-11-07 10:31:27
* @author zhuwei
* @param $id
* @param $device_id
* @param $title
* @param $content
* @return array|void
*/ */
function public_push_message_for_one($id, $device_id, $title, $content) function public_push_message_for_one($id, $device_id, $title, $content)
{ {
$homeurl = $this->http_host(); $home_url = $this->http_host();
$data['agent_id'] =$id; $data['agent_id'] = $id;
$data['black_title'] = $title; $data['black_title'] = $title;
$data['content'] = $content; $data['content'] = $content;
$data['device_id'] = $device_id; $data['device_id'] = $device_id;
$data['touchuan'] = json_encode(array( $data['touchuan'] = json_encode(array(
'title' => $title, 'title' => $title,
'content' => $content, 'content' => $content,
...@@ -146,11 +148,10 @@ class GeTuiUntils { ...@@ -146,11 +148,10 @@ class GeTuiUntils {
'url' => '', 'url' => '',
'name' => $title, 'name' => $title,
'id' => '69', 'id' => '69',
'imageUrl' => $homeurl .'notice_android_logo.png')); 'imageUrl' => $home_url .'notice_android_logo.png'));
return $this->push_message_for_one($data); return $this->push_message_for_one($data);
} }
public function http_host() public function http_host()
{ {
$http_type = $http_type =
......
...@@ -9,6 +9,8 @@ ...@@ -9,6 +9,8 @@
namespace app\api\untils; namespace app\api\untils;
use app\model\NoteLog;
class MessageUntils { class MessageUntils {
public function __construct() { public function __construct() {
...@@ -62,4 +64,62 @@ class MessageUntils { ...@@ -62,4 +64,62 @@ class MessageUntils {
return $data; return $data;
} }
/**
* 发送常规验证短信
*
* @param $phone
* @return SimpleXMLElement[]
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function sendCheckCode($phone) {
$result_data['msg'] = '';
$result_data['status'] = true;
$noteLog = new NoteLog();
$send_time = $noteLog->field('send_time')->where('phone', $phone)
->where('is_success',1)
->where('send_time','between time',[date('Y-m-d').' 00:00:00',date('Y-m-d').' 23:59:59'])
->select();
$num = count($send_time); //发送数量
if (!empty($send_time[$num-1]) && (time() - strtotime($send_time[$num-1]->send_time) < 58) && $num != 0) {
$result_data['msg'] = '1分钟内不能再次获取验证码';
$result_data['status'] = false;
return $result_data;
}
if ($num > 7){
$result_data['msg'] = '短信发送超过上限';
$result_data['status'] = false;
return $result_data;
}
$message = new MessageUntils();
$_code = mt_rand(1000, 9999) . '';
$result = $message->sendCCPSMS($phone, array($_code, '5分钟'), 214759);
$noteLog->phone = $phone;
$noteLog->template_msg = '【同联商业】您的验证码为'.$_code.',请于5分钟内正确输入,如非本人操作,请忽略此短信。';
$noteLog->code = $_code;
$noteLog->send_time = date('Y-m-d H:i:s');
$result['statusCode'] = 0;
if ($result['statusCode'] == "000000") {
$jwt = new JwtUntils();
$noteLog->is_success = 1;
$jwt_data['phone'] = $phone;
$jwt_data['code'] = $_code;
$result_data['sms_code'] = $_code;
$result_data['token'] = $jwt->createToken($jwt_data);
$result_data['status'] = true;
} else {
$noteLog->is_success = 2;
$result_data['status'] = false;
}
$noteLog->save();
return $result_data;
}
} }
<?php
namespace app\api_broker\consts;
/**
* Created by PhpStorm.
* User : zw
* Date : 2018/3/17
* Time : 9:50
* Intro: 公共常量
*/
class ConfigConst
{
const USER_TYPE_A = "A类(成交意愿较强)";
const USER_TYPE_B = "B类(成交意愿中等)";
const USER_TYPE_C = "C类(成交意愿较弱)";
const INDUSTRY_TYPE_FIRST = "轻餐饮";
const INDUSTRY_TYPE_SECOND = "重餐饮";
const INDUSTRY_TYPE_THIRD = "百货零售";
const INDUSTRY_TYPE_FOURTH = "服装";
const INDUSTRY_TYPE_FIFTH = "亲子教育";
const INDUSTRY_TYPE_SIXTH = "休闲娱乐";
const AREA_REQUIREMENT_FIRST = "30平米内";
const AREA_REQUIREMENT_SECOND = "30-60平米";
const AREA_REQUIREMENT_THIRD = "60-100平米";
const AREA_REQUIREMENT_FOURTH = "100平米以上";
const PRICE_REQUIREMENT_FIRST = "月租金10000元以内";
const PRICE_REQUIREMENT_SECOND = "月租金10000-30000元";
const PRICE_REQUIREMENT_THIRD = "月租金30000元以上";
}
\ No newline at end of file
...@@ -88,6 +88,9 @@ class CellPhone extends Basic ...@@ -88,6 +88,9 @@ class CellPhone extends Basic
$aliYunPhone->editStatus($phone_x, $phone_a, $phone_b, $record, $time, 0,$result['data']['mappingId'],$setting['is_privacy']); //记录绑定 $aliYunPhone->editStatus($phone_x, $phone_a, $phone_b, $record, $time, 0,$result['data']['mappingId'],$setting['is_privacy']); //记录绑定
$this->msg = 'Binding Rong success'; $this->msg = 'Binding Rong success';
$this->data = ['phone' => $phone_x['phone_x']]; $this->data = ['phone' => $phone_x['phone_x']];
} else{
$this->code = 101;
$this->msg = '操作频繁,请10秒后再操作。';
} }
}else { }else {
/*阿里云*/ /*阿里云*/
...@@ -98,7 +101,7 @@ class CellPhone extends Basic ...@@ -98,7 +101,7 @@ class CellPhone extends Basic
$this->data = ['phone' => $phone_x['phone_x']]; $this->data = ['phone' => $phone_x['phone_x']];
} else { } else {
$this->code = 101; $this->code = 101;
$this->msg = '绑定失败,请重试!'; $this->msg = '操作频繁,请10秒后再操作。';
} }
} }
......
...@@ -47,19 +47,21 @@ class Client extends Basic ...@@ -47,19 +47,21 @@ class Client extends Basic
if (!empty($this->params['user_nick']) || !empty($this->params['id'])) { if (!empty($this->params['user_nick']) || !empty($this->params['id'])) {
if ($this->request->isPost()) { if ($this->request->isPost()) {
if (!empty($this->params['id'])) { if (!empty($this->params['id'])) {
//编辑
//编辑 //编辑
$data['start'] = $this->user->edit($this->params, $this->params['id']); $data['start'] = $this->user->edit($this->params, $this->params['id']);
$this->operating_records($this->params['ccr_id'], $type=3, $remark='用户编辑',0,$this->params['id']);
$name=$table->where('id',$this->params['agents_id'])->value('realname');
//var_dump($name);
$remark='客方修改为 '.$name;
$this->operating_records($this->params['ccr_id'], $type=3, $remark,0,$this->params['id']);
} else { } else {
//添加 //添加
$data['start'] = $this->user->edit($this->params); $data['start'] = $this->user->edit($this->params);
if ($data['start'] != 1) { if ($data['start'] != 1) {
$this->code = 101; $this->code = 101;
$this->msg = '该客户手机号已存在于系统内'; $this->msg = '该用户已存在';
}
if($data['start']==1){
$data['id']= $this->user->id;
$this->operating_records($this->params['ccr_id'], $type=3, $remark='用户添加',0,$data['id']);
}else{ }else{
$data['id']= $this->user->id; $data['id']= $this->user->id;
//获取客方数据 //获取客方数据
...@@ -322,5 +324,34 @@ class Client extends Basic ...@@ -322,5 +324,34 @@ class Client extends Basic
} }
/**
* 邀请记录
*
* @return \think\Response
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function inviteList() {
$data['status'] = 101;
$data['data'] = array();
$data['msg'] = '';
if (empty($this->agentId)) {
return $this->response($data['status'],'id is null');
}
$where['status'] = 0;
$where['referrer_id'] = $this->agentId;
$where['referrer_source'] = 20;
$fields = 'user_nick,user_phone,user_pic,create_time';
$data['data'] = $this->user->getUserByWhere($where, $fields);
foreach ($data['data'] as $k=>$v) {
$data['data'][$k]['user_pic'] = HEADERIMGURL.$v['user_pic'];
}
$data['status'] = 200;
return $this->response($data['status'], $data['msg'], $data['data']);
}
} }
...@@ -29,13 +29,13 @@ class FollowUp extends Basic ...@@ -29,13 +29,13 @@ class FollowUp extends Basic
*/ */
public function report() public function report()
{ {
/* $params = $this->params; $params = $this->params;
if (!isset($params['report_agent_id']) || !isset($params['report_store_id']) || !isset($params['user_id']) || if (!isset($params['report_agent_id']) || !isset($params['report_store_id']) || !isset($params['user_id']) ||
!isset($params['house_ids']) || !isset($params['vehicle']) ) { !isset($params['house_ids']) || !isset($params['vehicle']) ) {
return $this->response("101", "请求参数错误"); return $this->response("101", "请求参数错误");
}*/ }
$params = array( /* $params = array(
"report_agent_id" => 1, "report_agent_id" => 1,
"report_store_id" => 1, "report_store_id" => 1,
"user_id" => 1, "user_id" => 1,
...@@ -43,7 +43,7 @@ class FollowUp extends Basic ...@@ -43,7 +43,7 @@ class FollowUp extends Basic
"vehicle" => 10, "vehicle" => 10,
"intro" => "123123123", "intro" => "123123123",
"to_see_time" => date("Y-m-d H:i:s", time()), "to_see_time" => date("Y-m-d H:i:s", time()),
); );*/
$result = $this->followUpModel->addFollowUp($params); $result = $this->followUpModel->addFollowUp($params);
if($result["code"] == 200){ if($result["code"] == 200){
return $this->response("200", "request success", ["id",$result["msg"]]); return $this->response("200", "request success", ["id",$result["msg"]]);
......
<?php <?php
/** /**
* Created by PhpStorm. * Created by PhpStorm.
* User: fuju * User: fu ju
* Date: 2018/2/6 * Date: 2018/2/6
* Time: 15:03 * Time: 15:03
*/ */
namespace app\index\controller; namespace app\api_broker\controller;
use app\api_broker\extend\Basic;
use app\index\extend\Basic;
use app\model\GLabels; use app\model\GLabels;
use think\Session; use think\Session;
...@@ -54,6 +53,9 @@ class Label extends Basic ...@@ -54,6 +53,9 @@ class Label extends Basic
* 获取打电话的标签 * 获取打电话的标签
* *
* @return \think\Response * @return \think\Response
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/ */
public function getLabelsList() { public function getLabelsList() {
$result['code'] = 200; $result['code'] = 200;
...@@ -67,4 +69,24 @@ class Label extends Basic ...@@ -67,4 +69,24 @@ class Label extends Basic
return $this->response($result['code'], $result['msg'], $result['data']); return $this->response($result['code'], $result['msg'], $result['data']);
} }
/**
* 楼盘标签
*
* @return \think\Response
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function getLabelsShopList() {
$result['code'] = 200;
$result['msg'] = '';
$pageNo = empty($this->params['pageNo']) ? 1 : $this->params['pageNo'];
$pageSize = empty($this->params['pageSize']) ? 10 : $this->params['pageSize'];
$labels = new GLabels();
$field = 'id,name,create_time';
$where['type'] = 0;
$result['data']['list'] = $labels->getList($pageNo, $pageSize, 'id DESC', $field, $where);
$result['data']['total'] = $labels->getTotal($where);
return $this->response($result['code'], $result['msg'], $result['data']);
}
} }
\ No newline at end of file
<?php
namespace app\api_broker\controller;
use app\api_broker\extend\Basic;
use app\api_broker\service\MyCenterService;
use think\Exception;
use think\Request;
/**
* Created by PhpStorm.
* User : zw
* Date : 2018/3/12
* Time : 下午1:34
* Intro:
*/
class MyCenter extends Basic{
private $service_;
public function __construct(Request $request = null)
{
parent::__construct($request);
$this->service_ = new MyCenterService();
}
/**
* 我得个人中心
* @return \think\Response
*/
public function center(){
$params = $this->params;
/* $params = array(
"agent_id" => 1
);*/
// if(!isset($params["agent_id"])){
// return $this->response("101","请求参数错误");
// }
if (empty($params['agent_id'])) {
if (empty($this->agentId)) {
return $this->response("101","请求参数错误");
}
$agent_id = $this->agentId;
} else {
$agent_id = $params["agent_id"];
}
try{
$result = $this->service_->center($agent_id);
if($result){
return $this->response("200","request success",$result);
}else{
return $this->response("200","request null");
}
}catch (Exception $exception){
return $this->response("101","request error, msg:" . $exception);
}
}
}
<?php
namespace app\api_broker\controller;
use app\api_broker\extend\Basic;
use app\api_broker\service\PerformanceService;
use Think\Exception;
use think\Request;
/**
* Created by PhpStorm.
* User : zw
* Date : 2018/3/20
* Time : 下午2:06
* Intro: 业绩模块
*/
class Performance extends Basic
{
private $service_;
function __construct(Request $request = null)
{
parent::__construct($request);
$this->service_ = new PerformanceService();
}
/**
* 业绩汇总,
* @return \think\Response
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function selectPerformanceByTime()
{
$params = $this->params;
/* $params = array(
"agent_id" => 1,
"type" => 1, //1表示个人业绩排行 2门店 3区域
"end_day" => "",
"start_day" =>""
);*/
if (!isset($params["agent_id"]) || !isset($params["type"])) {
return $this->response("101", "请求参数错误");
}
//默认排序一周
$end_day = isset($params["end_day"]) ? $params["end_day"] : date("Y-m-d", strtotime("-1 day"));
$start_day = isset($params["start_day"]) ? $params["start_day"] : date("Y-m-d", strtotime("-7 day"));
$list = $this->service_->totalAgent($params["agent_id"], $params["type"], $end_day, $start_day);
//dump($list);
if (count($list) > 0) {
$result["list"] = $list;
$result["start_time"] = $start_day;
$result["end_time"] = $end_day;
return $this->response("200", "request success", $result);
}
}
/**
* 个人业绩
* @return \think\Response
*/
public function agentPerformanceBySearch()
{
header('Access-Control-Allow-Origin:*');
$params = $this->params;
/* $params = array(
"agent_id" => 1,
"start_time" => "2018-03-23",
"end_time" => "2018-03-23",
"is_case" => 2,//1经纪人 2案场
"house_id" => 0
);*/
if (!isset($params["agent_id"]) || !isset($params["start_time"]) || !isset($params["end_time"])) {
return $this->response("101", "请求参数错误");
}
$house_id = 0;
if (isset($params["house_id"])) {
$house_id = $params["house_id"];
}
try {
$result = $this->service_->personagePerformance($params["agent_id"], $params["start_time"], $params["end_time"],
$params["is_case"], $house_id);
return $this->response("200", "request success", $result);
} catch (Exception $exception) {
return $this->response("101", "request error,msg:" . $exception);
}
}
/**
* 门店业绩
* @return \think\Response
*/
public function storePerformanceBySearch()
{
$params = $this->params;
/* $params = array(
"agent_id" => 1,
"start_time" => "2018-03-10",
"end_time" => "2018-03-23",
);*/
try {
$result = $this->service_->storePerformance($params["agent_id"], $params["start_time"], $params["end_time"]);
return $this->response("200", "request success", $result);
} catch (Exception $exception) {
return $this->response("101", "request error,msg:" . $exception);
}
}
/**
* 各个状态的订单列表暂不分页,
* @return \think\Response
*/
public function orderNoList()
{
$params = $this->params;
/* $params = array(
"agent_id" => 1,
"start_time" => "2018-03-13",
"end_time" => "2018-03-26",
"is_case" => 2,//1经纪人 2案场
"house_id" => 0,
"type" => 1 // 1带看 2进场 3收款 4成交报告
);*/
if (!isset($params["agent_id"]) || !isset($params["start_time"]) || !isset($params["end_time"]) || !isset($params["type"])) {
return $this->response("101", "请求参数错误");
}
$house_id = 0;
if (isset($params["house_id"])) {
$house_id = $params["house_id"];
}
try {
$result = $this->service_->orderList($params["agent_id"], $params["start_time"], $params["end_time"],
$params["is_case"], $house_id, $params["type"]);
return $this->response("200", "request success", $result);
} catch (Exception $exception) {
return $this->response("101", "request error,msg:" . $exception);
}
}
/**
* 门店或者经纪人业绩排行
* @return \think\Response
*/
public function storeOrAgentSort(){
$params = $this->params;
/* $params = array(
"agent_id" => 1,
"start_time" => "2018-03-10",
"end_time" => "2018-03-23",
);*/
if (!isset($params["agent_id"]) || !isset($params["start_time"]) || !isset($params["end_time"])) {
return $this->response("101", "请求参数错误");
}
try {
$result = $this->service_->storeSortByDistrictId($params["agent_id"], $params["start_time"], $params["end_time"]);
return $this->response("200", "request success", $result);
} catch (Exception $exception) {
return $this->response("101", "request error,msg:" . $exception);
}
}
}
...@@ -13,13 +13,12 @@ use think\Exception; ...@@ -13,13 +13,12 @@ use think\Exception;
* User : zw * User : zw
* Date : 2018/1/24 * Date : 2018/1/24
* Time : 14:24 * Time : 14:24
* Intro: * Intro: 报备流程
*/ */
class Report extends Basic class Report extends Basic
{ {
private $service_; private $service_;
private $fulModel; private $fulModel;
private $oReportModel;
public function __construct($request = null) public function __construct($request = null)
...@@ -82,35 +81,35 @@ class Report extends Basic ...@@ -82,35 +81,35 @@ class Report extends Basic
* 获取报备列表 * 获取报备列表
* @return \think\Response * @return \think\Response
*/ */
public function reportList(){ public function reportList()
/* $params = array( {
"agent_id" =>1, /* $params = array(
"type" => 1,//1表示全部 2表示进场 3 表示收款 4成交报告 "agent_id" =>1,
"page_no"=>1, "type" => 1,//1表示全部 2表示进场 3 表示收款 4成交报告
"page_size"=>15 "page_no"=>1,
);*/ "page_size"=>15
);*/
$params = $this->params; $params = $this->params;
if(!isset($params["agent_id"]) || !isset($params["type"])){ if (!isset($params["agent_id"]) || !isset($params["type"])) {
return $this->response("101", "请求参数错误"); return $this->response("101", "请求参数错误");
} }
$pageNo = empty($params['page_no']) ? 1 : $params['page_no']; $pageNo = empty($params['page_no']) ? 1 : $params['page_no'];
$pageSize = empty($params['page_size']) ? 15 : $params['page_size']; $pageSize = empty($params['page_size']) ? 15 : $params['page_size'];
$field = "a.id,a.user_id,a.user_phone,a.user_name,a.predict_see_time,b.id as order_id,b.order_no,b.house_id,b.house_title"; $field = "a.id,a.user_id,a.user_phone,a.user_name,a.predict_see_time,b.id as order_id,b.order_no,b.house_id,b.house_title";
$params["report_agent_id"] = $params["agent_id"]; $params["report_agent_id"] = $params["agent_id"];
$result = $this->service_->orderList($field,$params,$pageNo,$pageSize); $result = $this->service_->orderList($field, $params, $pageNo, $pageSize);
return $this->response("200","request success",$result); return $this->response("200", "request success", $result);
} }
/** /**
* 新增跟进 * 新增跟进
* @return \think\Response * @return \think\Response
...@@ -133,7 +132,7 @@ class Report extends Basic ...@@ -133,7 +132,7 @@ class Report extends Basic
"explain" =>"1,2",//备注 "explain" =>"1,2",//备注
"explain_img" =>"1,2"//备注图 "explain_img" =>"1,2"//备注图
);*/ );*/
header('Access-Control-Allow-Origin:*');
$params = $this->params; $params = $this->params;
if (!isset($params['report_id']) || !isset($params['agent_id']) || !isset($params['user_type']) || if (!isset($params['report_id']) || !isset($params['agent_id']) || !isset($params['user_type']) ||
!isset($params['industry_type']) || !isset($params['area_requirement']) || !isset($params['price_requirement'])) { !isset($params['industry_type']) || !isset($params['area_requirement']) || !isset($params['price_requirement'])) {
...@@ -155,10 +154,11 @@ class Report extends Basic ...@@ -155,10 +154,11 @@ class Report extends Basic
*/ */
public function getFollowUpList() public function getFollowUpList()
{ {
/* $params = array( /* $params = array(
"report_id" => 1,// 报备id "report_id" => 1,// 报备id
"agent_id" => 1,//非必填 经纪人id 没有就获取最新一条跟进记录 "agent_id" => 1,//非必填 经纪人id 没有就获取最新一条跟进记录
);*/ );*/
header('Access-Control-Allow-Origin:*');
$params = $this->params; $params = $this->params;
if (!isset($params["report_id"])) { if (!isset($params["report_id"])) {
return $this->response("101", "请求参数错误"); return $this->response("101", "请求参数错误");
...@@ -166,7 +166,7 @@ class Report extends Basic ...@@ -166,7 +166,7 @@ class Report extends Basic
$field_ = "id,report_id,agent_id,user_type,decision_maker,industry_type,area_requirement,price_requirement,province $field_ = "id,report_id,agent_id,user_type,decision_maker,industry_type,area_requirement,price_requirement,province
,city,district,business_area,other_area,explain,explain_img,create_time,update_time"; ,city,district,business_area,other_area,explain,explain_img,create_time,update_time";
$order_ = "crate_time desc"; $order_ = "create_time desc";
$where_ = []; $where_ = [];
$where_["report_id"] = $params["report_id"]; $where_["report_id"] = $params["report_id"];
...@@ -181,7 +181,7 @@ class Report extends Basic ...@@ -181,7 +181,7 @@ class Report extends Basic
return $this->response("300", "not fund list", []); return $this->response("300", "not fund list", []);
} }
} catch (Exception $e) { } catch (Exception $e) {
return $this->response("101", "request error:" . $e); return $this->response("101", "request error:" . $e);
} }
......
...@@ -6,6 +6,7 @@ use app\api_broker\extend\Basic; ...@@ -6,6 +6,7 @@ use app\api_broker\extend\Basic;
use app\model\AttentionModel; use app\model\AttentionModel;
use app\model\GHouses; use app\model\GHouses;
use app\model\GHousesImgs; use app\model\GHousesImgs;
use app\model\Regions;
/** /**
* Created by PhpStorm. * Created by PhpStorm.
...@@ -29,14 +30,19 @@ class Shop extends Basic ...@@ -29,14 +30,19 @@ class Shop extends Basic
$this->attentionModel = new AttentionModel(); $this->attentionModel = new AttentionModel();
} }
/**查询商品列表 b c端公用 /**
* 查询商品列表 b c端公用
* @return \think\Response * @return \think\Response
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/ */
public function getShopList() public function getShopList()
{ {
/* $params = array( /*$params = array(
"site_area" => 1, //来源 1c首页 2c搜索 3b首页 4b搜索 "site_area" => 4, //来源 1c首页 2c搜索 3b首页 4b搜索
"title" => "vv", //1,2 external_title ,3,4internal_title "title" => "vv", //1,2 external_title ,3,4internal_title
"house_id" => 1,
"is_carefully_chosen" => 0, //精选商铺--0否1是 "is_carefully_chosen" => 0, //精选商铺--0否1是
"shop_type" => 0, //商铺类型(0商场,1街铺) "shop_type" => 0, //商铺类型(0商场,1街铺)
"disc" => "黄浦区", "disc" => "黄浦区",
...@@ -46,6 +52,7 @@ class Shop extends Basic ...@@ -46,6 +52,7 @@ class Shop extends Basic
"rent_price_start" => 1000,//租金 rent_price "rent_price_start" => 1000,//租金 rent_price
"rent_price_end" => 10000,//租金 "rent_price_end" => 10000,//租金
"shop_sign" => "临近地铁,临近地铁2", "shop_sign" => "临近地铁,临近地铁2",
"agent_id" => 630, //添加经纪人id
"pageNo" => 1, "pageNo" => 1,
"pageSize" => 15 "pageSize" => 15
);*/ );*/
...@@ -76,6 +83,9 @@ class Shop extends Basic ...@@ -76,6 +83,9 @@ class Shop extends Basic
} else if (isset($params['title'])) { } else if (isset($params['title'])) {
$conditions['internal_title'] = array( "like", "%" . trim($params['title']) . "%" ); $conditions['internal_title'] = array( "like", "%" . trim($params['title']) . "%" );
} }
if(isset($params['house_id'])){
$conditions['id'] = array( "eq", $params['house_id'] );
}
$order_ = ""; $order_ = "";
$spTagArr = array(); $spTagArr = array();
switch ($params['site_area']) { switch ($params['site_area']) {
...@@ -100,6 +110,10 @@ class Shop extends Basic ...@@ -100,6 +110,10 @@ class Shop extends Basic
$conditions['shop_type'] = array( "eq", $params['shop_type'] ); $conditions['shop_type'] = array( "eq", $params['shop_type'] );
} }
if(isset($params['agent_id'])){
$conditions['upload_id'] = array( "eq", $params['agent_id'] );
}
$area_start = isset($params['shop_area_start']) ? $params['shop_area_start'] : -1; $area_start = isset($params['shop_area_start']) ? $params['shop_area_start'] : -1;
$area_end = isset($params['shop_area_end']) ? $params['shop_area_end'] : -1; $area_end = isset($params['shop_area_end']) ? $params['shop_area_end'] : -1;
if ($area_start >= 0 && $area_end >= 0) { //面积 if ($area_start >= 0 && $area_end >= 0) { //面积
...@@ -133,13 +147,15 @@ class Shop extends Basic ...@@ -133,13 +147,15 @@ class Shop extends Basic
default: default:
$this->response("101", "请求数据异常"); $this->response("101", "请求数据异常");
} }
if (!empty($conditions)) { if (!empty($conditions) ) {
$conditions['status'] = array( 'eq', 1 ); //只显示上架 $conditions['status'] = array( 'eq', 1 ); //只显示上架
if ($params['site_area'] == 1 || $params['site_area'] == 2) if ($params['site_area'] == 1 || $params['site_area'] == 2)
$conditions['is_show'] = array( 'eq', 0 ); //c端只显示可显示的楼盘 $conditions['is_show'] = array( 'eq', 0 ); //c端只显示可显示的楼盘
} }
if( isset($conditions['upload_id'])){
unset($conditions['status']);
}
$result = $this->gHousesModel->getHousesList($pageNo, $pageSize, $order_, $field, $conditions, $spTagArr); $result = $this->gHousesModel->getHousesList($pageNo, $pageSize, $order_, $field, $conditions, $spTagArr);
//获取图片信息 //获取图片信息
foreach ($result as $key => $val) { foreach ($result as $key => $val) {
...@@ -157,17 +173,21 @@ class Shop extends Basic ...@@ -157,17 +173,21 @@ class Shop extends Basic
return $this->response("200", 'request success', $result); return $this->response("200", 'request success', $result);
} }
/** /**
* 楼盘详情 * 楼盘详情
* @return \think\Response * @return \think\Response
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/ */
public function getShopDetail() public function getShopDetail()
{ {
/* $params = array( /* $params = array(
"id" => 1, "id" => 5,
"site_area" => 1, //1.c端 3.b端 "site_area" => 1, //1.c端 3.b端
"user_id" => 12 //if c端 用户登录后传入user_id "user_id" => 2 //if c端 用户登录后传入user_id
);*/ );*/
$params = $this->params; $params = $this->params;
...@@ -192,7 +212,7 @@ class Shop extends Basic ...@@ -192,7 +212,7 @@ class Shop extends Basic
a.industry_type,a.shop_area_start,a.shop_area_end,a.shop_type,a.residue_num,a.shop_sign,a.is_carefully_chosen,a.rent_type, a.industry_type,a.shop_area_start,a.shop_area_end,a.shop_type,a.residue_num,a.shop_sign,a.is_carefully_chosen,a.rent_type,
a.rent_price,a.management_fee,a.slotting_fee,a.total,a.market_area,a.is_has_gas,a.file_path,a.longitude,a.latitude, a.rent_price,a.management_fee,a.slotting_fee,a.total,a.market_area,a.is_has_gas,a.file_path,a.longitude,a.latitude,
b.enter_num,b.internal_item_advantage as item_advantage,b.sign_rule,b.do_business_date, b.opening_date,b.traffic, b.enter_num,b.internal_item_advantage as item_advantage,b.sign_rule,b.do_business_date, b.opening_date,b.traffic,
b.auditorium,b.tiny_brochure_url,b.start_business_date"; b.auditorium,b.tiny_brochure_url,b.start_business_date,a.upload_id";
} }
...@@ -219,11 +239,151 @@ class Shop extends Basic ...@@ -219,11 +239,151 @@ class Shop extends Basic
$attention["is_del"] = array( "eq", 0 ); $attention["is_del"] = array( "eq", 0 );
$attResult = $this->attentionModel->getAttentionByUserIdAndHouseId($attention); $attResult = $this->attentionModel->getAttentionByUserIdAndHouseId($attention);
if (count($attResult) > 0) if (count($attResult) > 0)
$result ["attention"] = $attResult["id"]; $result ["attention"] = $attResult[0]["id"];
} }
return $this->response("200", 'request success', $result); return $this->response("200", 'request success', $result);
} }
/**
* 新增和编辑商铺
*
* @return \think\Response
* @throws \Exception
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
* @throws \think\exception\PDOException
*/
public function edit() {
$result['code'] = 200;
$result['msg'] = '';
$result['data'] = [];
if ($this->request->isPost()) {
$this->gHousesModel->startTrans();
$this->params['userId'] = $this->agentId;
$house_id = $this->gHousesModel->app_add($this->params); //添加或编辑商铺
if ($house_id) {
$this->gHousesModel->commit();
$result['data']['house_id'] = $house_id;
$result['data']['internal_title'] = $this->params['internal_title'];
} else {
$this->gHousesModel->rollback();
$data['code'] = 101;
$data['msg'] = 'Add houses failure';
}
} else {
if (empty($this->params['id'])) {
$result['code'] = 101;
$result['msg'] = 'Id is null';
} else {
//获取商铺详情
$result['data'] = $this->gHousesModel->getHouseById($this->params['id']);
}
}
return $this->response($result['code'], $result['msg'], $result['data']);;
}
/**
* 上传商铺图片
*
* @return \think\Response
*/
public function uploadHouseFile() {
$data['status'] = 101;
$data['msg'] = '';
$data['data'] = '';
$file = request()->file('file');
if($file){
$path = ROOT_PATH . 'public' . DS . 'resource'. DS . 'lib'. DS .'Attachments'. DS .'images';
$info = $file->validate(['size'=>1024000,'ext'=>'jpg,png'])->move($path);
if($info){
$img_path = $info->getSaveName(); //生成的图片路径
$data['img_type'] = $this->params['img_type'];
$data['img_name'] = $img_path;
$img = new GHousesImgs();
$img->addHouseImg($data,$this->params['house_id']);
$data['status'] = 200;
$data['msg'] = '上传成功';
$data['data'] = [
'file_name' => CK_IMG_URL .'images'. DS . $img_path,
];
}else{
// 上传失败获取错误信息
$data['msg'] = $file->getError();
}
} else {
$data['msg'] = '没有该文件';
}
return $this->response($data['status'], $data['msg'], $data['data']);
}
/**
* 删除图片
*
* @return \think\Response
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function delHouseFile() {
$data['status'] = 101;
$data['msg'] = '';
$data['data'] = '';
if(empty($this->params['save_path']) || empty($this->params['house_id'])){
return $this->response($data['status'], 'Save_path or id house_id is null', $data['data']);
}
$img = new GHousesImgs();
$id = $img->getHouseImagesInfo('id',[
'house_id' => $this->params['house_id'],
'img_name' => $this->params['save_path'],
'img_status' => 0
]);
if (empty($id['id'])) {
$data['msg'] = '没有该文件';
} else {
$path = ROOT_PATH . 'public' . DS . 'resource'. DS . 'lib'. DS .'Attachments'. DS .'Images/';
@unlink($path.$this->params['save_path']);
$img->editData(['img_status'=>1],$id['id'], 'id');
$data['status'] = 200;
}
return $this->response($data['status'], $data['msg'], $data['data']);
}
/**
* 获取省市区数据
*
* @return \think\Response
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function getAddress() {
$regions = new Regions();
$data = $regions->getRegionsCity();
return $this->response(200, '', $data);
}
/**
* 获取省市区
*
* @return \think\Response
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function getRegions() {
$regions = new Regions();
$data = $regions->getRegions($this->params['code'], $this->params['parent_code']);
return $this->response(200, '', $data);
}
} }
<?php
namespace app\api_broker\controller;
use app\api_broker\extend\Basic;
use app\api_broker\service\StatementService;
use app\model\RAgentNote;
use app\model\RAgentReport;
use think\Exception;
use think\Request;
/**
* Created by PhpStorm.
* User : zw
* Date : 2018/3/8
* Time : 上午11:22
* Intro:
*/
class Statement extends Basic
{
private $service_;
public function __construct(Request $request = null)
{
parent::__construct($request);
$this->service_ = new StatementService();
}
public function dayStatement()
{
header('Access-Control-Allow-Origin:*');
$params = $this->params;
/*$params = array(
"agent_id" => 715,
"time_start" => date("Y-m-d", time()),
"time_end" => date("Y-m-d", time()) . " 23:59:59",
);*/
if (!isset($params["agent_id"]) || !isset($params["time_start"]) || !isset($params["time_end"])) {
return $this->response("101", "请求参数错误");
}
try {
$result = $this->service_->selectStatementByAgentId($params["agent_id"], $params["time_start"], $params["time_end"]);
if (count($result) > 0) {
return $this->response("200", "request success", $result);
} else {
return $this->response("200", "request is null");
}
} catch (Exception $exception) {
return $this->response("101", "request is error,msg:" . $exception);
}
}
/**
* 生成日报和周报图片
*
* @return \think\Response
*/
public function weekWorkImg()
{
header('Access-Control-Allow-Origin:*');
if (empty($this->params["agent_id"]) || empty($this->params["img"])) {
return $this->response("101", "参数错误");
}
$img_title = "";
$img = "";
//单图
$base64_image_content = $this->params["img"];
if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image_content, $array)) {
$img_title = $array[2]; //jpeg
$img = base64_decode(str_replace($array[1], '', $base64_image_content)); //返回文件流
}
$tmp_file = time();
$img_name = md5(uniqid($tmp_file)) . '.' . $img_title;//图片名
$url = 'static/week_work_img/' . $img_name;
$code = 200;
$msg = '';
if (file_put_contents($url, $img)) {
$agent_report = new RAgentReport();
if (empty($this->params['type'])) {
$data['start_date'] = $this->params['start_date'];
$data['end_date'] = $this->params['end_date'];
} else {
$data['start_date'] = $this->params['start_date'];
$data['end_date'] = $this->params['start_date'];
}
$data['agent_id'] = $this->params['agent_id'];
$data['img_url'] = $img_name;
$data['type'] = $this->params['type'];
$data['img_name'] = CURRENT_URL.$url;
$result = $agent_report->editData($data);
} else {
$result = 0;
}
if (!$result) {
$code = 101;
$msg = '生成图片失败';
}
return $this->response($code, $msg, $data['img_name']);
}
/**
* 保存周报日报四个字段
*
* @return \think\Response
* @throws \think\exception\DbException
*/
public function setReportContent() {
header('Access-Control-Allow-Origin:*');
$code = 200;
$msg = '';
$data = [];
$note = new RAgentNote();
if ($this->request->isGet()) {
$data = $note->get(['agent_id'=>$this->agentId]);
} else {
$save_data['agent_id'] = $this->agentId;
$save_data['content'] = $this->params['content'];
if (empty($this->params['id'])) {
$result = $note->editData($save_data);
} else {
$result = $note->editData($save_data, $this->params['id']);
}
if (!$result) {
$code = 101;
$msg = '添加失败';
}
}
return $this->response($code, $msg, $data);
}
/**
* 获取周报或者日报
*
* @return \think\Response
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function getWeekOrDay() {
header('Access-Control-Allow-Origin:*');
$code = 200;
$msg = '';
if (empty($this->agentId)) {
return $this->response(101, 'Agent_id is null!');
}
$agent_report = new RAgentReport();
$pageNo = empty($params['pageNo']) ? 1 : $params['pageNo'];
$pageSize = empty($params['pageSize']) ? 15 : $params['pageSize'];
$fields = 'id,create_time,start_date,end_date,img_url';
$where['is_del'] = 0;
$where['agent_id'] = $this->agentId;
if ($this->params['type'] == 1) {
$where['type'] = 1;
} else {
$where['type'] = 0;
}
$data['list'] = $agent_report->getList($pageNo, $pageSize, 'id desc', $fields, $where);
$data['total'] = $agent_report->getTotal($where);
foreach ($data['list'] as $k=>$v) {
$data['list'][$k]['img_url'] = CURRENT_URL.'static/week_work_img/'.$data['list'][$k]['img_url'];
}
return $this->response($code, $msg, $data);
}
}
\ No newline at end of file
<?php
/**
* Created by PhpStorm.
* User: fuju
* Date: 2018/3/23
* Time: 18:06
*/
namespace app\api_broker\controller;
use app\api_broker\extend\Basic;
use app\model\AAgents;
use app\model\SSupervision;
class Supervise extends Basic
{
/**
* 监督执行
*
* @return \think\Response
*/
public function add() {
$supervision = new SSupervision();
if (empty($this->params['id'])) {
return $this->response(101, 'Id is null');
}
$data['id'] = '';
$data['content'] = $this->params['content'];
$data['longitude'] = $this->params['longitude'];
$data['latitude'] = $this->params['latitude'];
$data['address'] = $this->params['address'];
$data['agent_id'] = $this->params['agent_id'];
$data['district_id'] = $this->params['district_id'];
$data['store_id'] = $this->params['store_id'];
$supervision->editData($data, $this->params['id']);
return $this->response(200, '', ['id'=>$this->params['id']]);
}
/**
* 上传监督执行图片
*
* @return \think\Response
*/
public function uploadSuperviseFile() {
$data['status'] = 101;
$data['msg'] = '';
$data['data'] = '';
$file = request()->file('file');
if($file){
$path = ROOT_PATH . 'public' . DS . 'resource'. DS . 'lib'. DS .'Attachments'. DS .'images'.DS.'supervise';
$info = $file->validate(['size'=>1024000,'ext'=>'jpg,png'])->move($path);
if($info){
$img_path = $info->getSaveName(); //生成的图片路径
$data['img_url'] = $img_path;
$supervision = new SSupervision();
$supervision->editData($data);
$data['status'] = 200;
$data['msg'] = '上传成功';
$data['data'] = [
'file_name' => CK_IMG_URL .'images/supervise/' . $img_path,
'id' => $supervision->id
];
}else{
// 上传失败获取错误信息
$data['msg'] = $file->getError();
}
} else {
$data['msg'] = '没有该文件';
}
return $this->response($data['status'], $data['msg'], $data['data']);
}
/**
* 监督执行列表
*
* @return \think\Response
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function getSupervise() {
$pageNo = empty($this->params['pageNo']) ? 1 : $this->params['pageNo'];
$pageSize = empty($this->params['pageSize']) ? 15 : $this->params['pageSize'];
$verify = new AAgents();
$agent_data = $verify->getAgentInfo('level,store_id,district_id', $this->params['agent_id']);
switch ($agent_data['level']) {
case 20 :
$where = 'a.store_id = '.$agent_data['store_id'];break;
case 30 :
$where = 'a.district_id = '.$agent_data['district_id'];break;
case 40 :
$where = 'a.store_id = '.$agent_data['store_id'] . ' or a.district_id = '.$agent_data['district_id'];break;
default :
$where = 'agent_id = '.$this->params['agent_id'];
}
$supervision = new SSupervision();
$fields = 'longitude,latitude,address,content,img_url,b.name,a.create_time';
if (empty($where)) {
return $this->response(101, 'Params is error');
}
$data['list'] = $supervision->getSupervisionList($pageNo, $pageSize, 'a.id desc', $fields, $where);
foreach ($data['list'] as $k=>$v) {
$data['list'][$k]['img_url'] = CK_IMG_URL .'images/supervise/' . $v['img_url'];
}
$data['total'] = $supervision->getSupervisionListTotal($where);
return $this->response(200, '', $data);
}
}
\ No newline at end of file
...@@ -65,48 +65,24 @@ class Basic extends Controller ...@@ -65,48 +65,24 @@ class Basic extends Controller
} elseif (strtoupper($this->request->method()) === "POST") { } elseif (strtoupper($this->request->method()) === "POST") {
$this->params = $this->request->param() != null ? $this->request->param() : null; $this->params = $this->request->param() != null ? $this->request->param() : null;
} }
/*临时验证 start*/
if (isset($this->params['AuthToken']) && $this->params['AuthToken'] != 'null' && !empty($this->params['AuthToken'])) {
$jwt = new JWT();
$this->authToken = $this->params['AuthToken'];
$result = $jwt->decode($this->authToken, config('jwt_key'), array('HS256')); //解码token
if (isset($result->data)) {
$this->timeStamp_ = $result->timeStamp_;
$this->agentPhone = $result->data->phone;
$is = Db::table('agents')->where('phone', $this->agentPhone)->count();
} else {
$is = 0;
}
if ($is == 0) {
echo json_encode(array("code" => "300", "msg" => "用户验证失败,重新登录!", "data" => [], "type" => "json")); if (isset($this->params['AuthToken']) && $this->params['AuthToken'] != 'null' && !empty($this->params['AuthToken'])) {
exit; $jwt = new \Firebase\JWT\JWT();
} $this->authToken = $this->params['AuthToken'];
$result = $jwt->decode($this->authToken, config('jwt_key'), array( 'HS256' )); //解码token
$this->agentId = $result->data->id;
$this->agentPhone = $result->data->phone;
$this->agentName = $result->data->name;
$this->timeStamp_ = $result->timeStamp_;
} }
$requestPath = $this->request->routeInfo()["rule"][0] . "/" . $this->request->routeInfo()["rule"][1]; $requestPath = $this->request->routeInfo()["rule"][0] . "/" . $this->request->routeInfo()["rule"][1];
//过滤掉不需要验证token的接口
if (!in_array(trim($requestPath), $this->filterVerify)) { if (!in_array(trim($requestPath), $this->filterVerify)) {
$this->tokenVerify(); //$this->tokenVerify();
} }
/*临时验证 end*/ unset($this->params["AuthToken"]);
/* if (isset($this->params['AuthToken']) && $this->params['AuthToken'] != 'null' && !empty($this->params['AuthToken'])) {
$jwt = new \Firebase\JWT\JWT();
$this->authToken = $this->params['AuthToken'];
$result = $jwt->decode($this->authToken, config('jwt_key'), array( 'HS256' )); //解码token
$this->userId = $result->data->id;
$this->phone = $result->data->phone;
$this->userNick = $result->data->userNick;
$this->timeStamp_ = $result->timeStamp_;
}
$requestPath = $this->request->routeInfo()["rule"][0] . "/" . $this->request->routeInfo()["rule"][1];
//过滤掉不需要验证token的接口
if (!in_array(trim($requestPath), $this->filterVerify)) {
$this->tokenVerify();
}*/
} }
/** /**
...@@ -141,7 +117,7 @@ class Basic extends Controller ...@@ -141,7 +117,7 @@ class Basic extends Controller
public function verifyAgentInfo() public function verifyAgentInfo()
{ {
$agentModel = new AAgents(); $agentModel = new AAgents();
$agentArr = $agentModel->getAgentById("id,store_id,name,phone"); $agentArr = $agentModel->getAgentById("id,store_id,name,phone");
if (count($agentArr) > 0 && ($agentArr["id"] != $this->agentId || $agentArr["user_phone"] != $this->agentPhone)) { if (count($agentArr) > 0 && ($agentArr["id"] != $this->agentId || $agentArr["user_phone"] != $this->agentPhone)) {
echo json_encode(array( "code" => "300", "msg" => "用户验证失败,重新登录!", "data" => [], "type" => "json" )); echo json_encode(array( "code" => "300", "msg" => "用户验证失败,重新登录!", "data" => [], "type" => "json" ));
exit; exit;
...@@ -205,7 +181,7 @@ class Basic extends Controller ...@@ -205,7 +181,7 @@ class Basic extends Controller
$attr[$path] = "{$ppath}-{$attr[$id]}"; $attr[$path] = "{$ppath}-{$attr[$id]}";
$attr['sub'] = isset($attr['sub']) ? $attr['sub'] : []; $attr['sub'] = isset($attr['sub']) ? $attr['sub'] : [];
$attr['spl'] = str_repeat("&nbsp;&nbsp;&nbsp;├&nbsp;&nbsp;", substr_count($ppath, '-')); $attr['spl'] = str_repeat("&nbsp;&nbsp;&nbsp;├&nbsp;&nbsp;", substr_count($ppath, '-'));
$sub = $attr['sub']; $sub = $attr['sub'];
unset($attr['sub']); unset($attr['sub']);
$tree[] = $attr; $tree[] = $attr;
if (!empty($sub)) { if (!empty($sub)) {
...@@ -278,15 +254,15 @@ class Basic extends Controller ...@@ -278,15 +254,15 @@ class Basic extends Controller
* @param int $user_id * @param int $user_id
* @return bool|false|int * @return bool|false|int
*/ */
public function operating_records($agents_id = 0, $type = '' ,$remark = '',$house_id=0,$user_id=0) { public function operating_records($agents_id = 0, $type = '', $remark = '', $house_id = 0, $user_id = 0)
{
$records = new GOperatingRecords(); $records = new GOperatingRecords();
$result = $records->record($agents_id, $type, $remark,$house_id,$user_id); $result = $records->record($agents_id, $type, $remark, $house_id, $user_id);
return $result; return $result;
} }
} }
<?php
namespace app\api_broker\service;
use app\model\AAgents;
/**
* Created by PhpStorm.
* User : zw
* Date : 2018/3/12
* Time : 下午1:47
* Intro:
*/
class MyCenterService{
private $agentModel;
const USER_LEVEL_FIST = "业务员"; //经纪人
const USER_LEVEL_SECOND = "店长"; //店长
const USER_LEVEL_THIRD = "总监"; //总监
function __construct()
{
$this->agentModel = new AAgents();
}
/**
* 我得个人中心
* @param $agent_id
* @return false|null|\PDOStatement|string|\think\Collection
*/
public function center($agent_id){
$field = "a.id,a.store_id,a.auth_group_id,a.district_id,a.level,a.name,a.phone,a.sex,a.img,a.status,b.store_name,
c.district_name";
$params["agent_id"] = $agent_id;
$result = $this->agentModel->getAgentsInfoByAgentId($field,$params);
if(count($result) <= 0){
return null;
}
$result = $result[0];
$level_name = self::USER_LEVEL_FIST;
if($result["level"] == 20){
$level_name = self::USER_LEVEL_SECOND;
}elseif ($result["level"] == 30 || $result["level"] == 40 ){
$level_name = self::USER_LEVEL_THIRD;
}
$result["level_name"] = $level_name;
$result["sign"] = $result["district_name"].$result["store_name"];
if(!empty($result["img"])){
$result["img"] = AGENTHEADERIMGURL . $result["img"];
}
//todo 需要计算暂时没做。
//$result["money_total"] = 1000;
return $result;
}
}
\ No newline at end of file
This diff is collapsed.
...@@ -2,7 +2,9 @@ ...@@ -2,7 +2,9 @@
namespace app\api_broker\service; namespace app\api_broker\service;
use app\api\untils\GeTuiUntils;
use app\model\GHouses; use app\model\GHouses;
use app\model\GHousesToAgents;
use app\model\HouseInfos; use app\model\HouseInfos;
use app\model\OrderModel; use app\model\OrderModel;
use app\model\OReportModel; use app\model\OReportModel;
...@@ -24,8 +26,8 @@ class ReportService ...@@ -24,8 +26,8 @@ class ReportService
function __construct() function __construct()
{ {
$this->reportModel = new OReportModel(); $this->reportModel = new OReportModel();
$this->orderModel = new OrderModel(); $this->orderModel = new OrderModel();
$this->oReportModel = new OReportModel(); $this->oReportModel = new OReportModel();
} }
...@@ -50,6 +52,7 @@ class ReportService ...@@ -50,6 +52,7 @@ class ReportService
/** /**
* 生成报备和保存订单 * 生成报备和保存订单
*
* @param $agent_id * @param $agent_id
* @param $agent_name * @param $agent_name
* @param $store_id * @param $store_id
...@@ -61,6 +64,9 @@ class ReportService ...@@ -61,6 +64,9 @@ class ReportService
* @param $intro * @param $intro
* @param $predict_see_time * @param $predict_see_time
* @return int * @return int
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/ */
public function verifyReport($agent_id, $agent_name, $store_id, $user_id, $user_phone, $user_name, $house_ids, $vehicle, $intro, $predict_see_time) public function verifyReport($agent_id, $agent_name, $store_id, $user_id, $user_phone, $user_name, $house_ids, $vehicle, $intro, $predict_see_time)
{ {
...@@ -71,10 +77,18 @@ class ReportService ...@@ -71,10 +77,18 @@ class ReportService
if ($id > 0) { if ($id > 0) {
$house_arr = explode(",", $house_ids); $house_arr = explode(",", $house_ids);
$order_arr = []; $order_arr = [];
$agent = new GHousesToAgents();
$ge_tui = new GeTuiUntils();
foreach ($house_arr as $k => $v) { foreach ($house_arr as $k => $v) {
//todo 批量插入到数据库 //todo 批量插入到数据库
$order_no = $this->createOrderNumber(); $order_no = $this->createOrderNumber();
array_push($order_arr, $this->orderBin($order_no, $id, $v)); array_push($order_arr, $this->orderBin($order_no, $id, $v));
$device_id = $agent->getAgentList($v);
foreach ($device_id as $k => $v) {
$content = "【{$v['store_name']}】店【{$agent_name}】约带看【{$order_arr['house_title']}】商铺";
$ge_tui->public_push_message_for_one($v['id'], $v['device_id'], '报备', $content);
}
} }
//todo 保存order表 //todo 保存order表
return $this->orderModel->insertOrderByAll($order_arr); return $this->orderModel->insertOrderByAll($order_arr);
...@@ -83,25 +97,49 @@ class ReportService ...@@ -83,25 +97,49 @@ class ReportService
} }
public function orderList($field,$params,$pageNo,$pageSize){ /**
* 报备订单列表
* @param $field
* @param $params
* @param $pageNo
* @param $pageSize
* @return false|null|\PDOStatement|string|\think\Collection
*/
public function orderList($field, $params, $pageNo, $pageSize)
{
//todo 获取我报备的我的案场的,如果是店长则获取其下所有的经纪人
$vModel = new VerifyService();
$agentArr = $vModel->getAgentsByAgentId($params["report_agent_id"]);
if ($agentArr) {
$params["report_agent_id"] = $agentArr;
}
$result = $this->oReportModel->selectReportList($field,$params,$pageNo,$pageSize); $caseHouseId = $vModel->getCaseHouseIdByAgentId($params["report_agent_id"]);
$ids_str = ""; $ids = "";
if(count($result) > 0){ foreach ($caseHouseId as $item) {
foreach ($result as $k=>$v){ $ids .= $item["houses_id"] . ",";
$result[$k]["user_phone"] = preg_replace('/(\d{3})\d{4}(\d{4})/','$1****$2',$v["user_phone"]); }
$ids = rtrim($ids, ",");
$ids = $ids ? $ids : 0;
$params["house_ids"] = $ids;
$result = $this->oReportModel->selectReportList($field, $params, $pageNo, $pageSize);
$ids_str .= $v["order_id"] .","; $ids_str = "";
if (count($result) > 0) {
foreach ($result as $k => $v) {
//$result[$k]["user_phone"] = preg_replace('/(\d{3})\d{4}(\d{4})/', '$1****$2', $v["user_phone"]);
$ids_str .= $v["order_id"] . ",";
} }
$ids_str = rtrim($ids_str, ","); $ids_str = rtrim($ids_str, ",");
$sign_arr = $this->orderSign($ids_str); $sign_arr = $this->orderSign($ids_str);
foreach ($result as $k=>$v){ foreach ($result as $k => $v) {
foreach ($sign_arr as $value){ foreach ($sign_arr as $value) {
if($v["order_id"] == $value["order_id"]){ if ($v["order_id"] == $value["order_id"]) {
$result[$k]["sign"] .= $this->signTitle($value["type"]).","; $result[$k]["sign"] .= $this->signTitle($value["type"]) . ",";
} }
} }
...@@ -112,13 +150,16 @@ class ReportService ...@@ -112,13 +150,16 @@ class ReportService
return null; return null;
} }
public function orderSign($ids_str){
public function orderSign($ids_str)
{
return $this->orderModel->selectSign($ids_str); return $this->orderModel->selectSign($ids_str);
} }
private function signTitle($type){ public function signTitle($type)
switch ($type){ {
switch ($type) {
case 2: case 2:
return "进场"; return "进场";
case 3: case 3:
...@@ -179,9 +220,9 @@ class ReportService ...@@ -179,9 +220,9 @@ class ReportService
*/ */
private function orderBin($order_no, $f_id, $house_id) private function orderBin($order_no, $f_id, $house_id)
{ {
$houseModel = new GHouses(); $houseModel = new GHouses();
$houseResult = $houseModel->getHouseDetail("id,internal_title",["id"=>$house_id]); $houseResult = $houseModel->getHouseDetail("id,internal_title", [ "id" => $house_id ]);
$house_title = count($houseResult) > 0 && isset($houseResult["internal_title"]) ? $houseResult["internal_title"] : null ; $house_title = count($houseResult) > 0 && isset($houseResult["internal_title"]) ? $houseResult["internal_title"] : null;
$param["order_no"] = $order_no; $param["order_no"] = $order_no;
$param["f_id"] = $f_id; $param["f_id"] = $f_id;
$param["house_id"] = $house_id; $param["house_id"] = $house_id;
......
<?php
namespace app\api_broker\service;
use app\model\AAgents;
use app\model\FollowUpLogModel;
use app\model\GHouses;
use app\model\Users;
/**
* Created by PhpStorm.
* User : zw
* Date : 2018/3/8
* Time : 上午11:33
* Intro:
*/
class StatementService
{
private $agentModel;
private $houseModel;
private $userModel;
private $followUpModel;
const USER_LEVEL_FIST = 0; //经纪人
const USER_LEVEL_SECOND = 1; //店长
const USER_LEVEL_THIRD = 2; //总监
function __construct()
{
$this->agentModel = new AAgents();
$this->houseModel = new GHouses();
$this->userModel = new Users();
$this->followUpModel = new FollowUpLogModel();
}
/**
* @param $agent_id
* @param $time_start
* @param $time_end
* @return array|null
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function selectStatementByAgentId($agent_id, $time_start, $time_end)
{
$field = "id,store_id,district_id,level,name,phone,sex,status";
$agent_result = $this->agentModel->getAgentById($field, [ "agent_id" => $agent_id ]);
if (count($agent_result) <= 0) {
return null;
}
$user_type = self::USER_LEVEL_FIST; //经纪人权限,0经纪人 1店长 2总监
if ($agent_result[0]["level"] == 20) {
$user_type = self::USER_LEVEL_SECOND;
} elseif ($agent_result[0]["level"] == 30 || $agent_result[0]["level"] == 40) {
$user_type = self::USER_LEVEL_THIRD;
}
$store_id = $agent_result[0]["store_id"];
$district_id = $agent_result[0]["district_id"];
$conditions["agent_id"] = $agent_id;
$conditions['create_time'] = array( 'between', array( $time_start, $time_end ) );
return $this->selectStatement($conditions, $user_type, $store_id, $district_id);
}
private function selectStatement($conditions, $user_type, $store_id, $district_id)
{
$result = $params = [];
switch ($user_type) {
case 0:
//todo
break;
case 1:
//todo 统计门店下的所有经纪人
$params["store_id"] = $store_id;
$params["status"] = 0; //只查询正常状态的经纪人
break;
case 2:
$params["district_id"] = $district_id;
$params["status"] = 0; //只查询正常状态的经纪人
break;
}
$agent_total = 1; //进到这里的经纪人肯定都存在所以默认此经纪人数量为1
$store_list = $district_list = [];
if (!empty($params)) {
$agentsArr = $this->agentModel->getAgentsByStoreId($params);
$agent_total = count($agentsArr);
//dump($agentsArr);
if ($agent_total > 0) {
$agentIds = "";
foreach ($agentsArr as $key => $value) {
$agentIds .= $value["id"] . ",";
if ($user_type == 1) {
$store_list = $this->getStoreList($conditions, $value["id"],$value["name"],$key);
}
}
$agentIds = rtrim($agentIds, ",");
$conditions["agent_id"] = array( "in", $agentIds );
if($user_type == 2){
$district_lists = $this->getDistrictList($conditions,$district_id);
$district_list = $district_lists["district_list"];
$result["last_week_total"] = $district_lists["last_week_total"];
}
}
}
$result["agent_total"] = $agent_total;
$result["house_num"] = $this->houseModel->getAddHouseNumByAgentId($conditions);
$result["user_num"] = $this->userModel->getAddUserNumByAgentId($conditions);
$result["follow_up_num"] = $this->followUpModel->getAddFollowUpNumByAgentId($conditions);
//todo
$result["store_list"] = $store_list;
$result["district_list"] = $district_list;
return $result;
}
private function getStoreList($conditions,$agent_id,$agent_name,$key){
$conditions_ = $conditions;
$conditions_["agent_id"] = $agent_id;
//是门店 统计个人业绩
$store_list[$key]["agent_id"] = $agent_id;
$store_list[$key]["agent_name"] = $agent_name;
$store_list[$key]["house_num"] = $this->houseModel->getAddHouseNumByAgentId($conditions_);
$store_list[$key]["user_num"] = $this->userModel->getAddUserNumByAgentId($conditions_);
$store_list[$key]["follow_up_num"] = $this->followUpModel->getAddFollowUpNumByAgentId($conditions_);
return $store_list;
}
private function getDistrictList($conditions,$district_id){
//根据门店统计本周人数和上周人数
$time_start = $conditions['time_start'];
$last_week_start_time = date("Y-m-d" . " 00:00:00", strtotime("$time_start -1 week"));
$last_week_end_time = date("Y-m-d" . " 23:59:59", strtotime("$time_start -1 day"));
$where_["quit_time"] = array( 'between', array( $last_week_start_time, $last_week_end_time ) );
$where_["district_id"] = $district_id;
$result = $this->agentModel->countAgentNum($where_); //上周人数
$conditions_ = $conditions;
$conditions_["district_id"] = $district_id;//本周人数
$results = $this->agentModel->countAgentNum($conditions_);
//dump($results);
$last_week_total = 0;
foreach ($results as $key=>$value){
$last_week_total += $value["agent_num"];
$paramArr["store_id"] = $value["store_id"];
$paramArr["level"] = array("in",[20,40]);
$agentsResult = $this->agentModel->getAgentsByStoreId($paramArr);
$results[$key]["name"] = count($agentsResult) > 0 ? $agentsResult[0]["name"]: null;
foreach ($result as $i =>$item){
if($value["store_id"] == $item["store_id"]){
$results[$key]["last_week_num"] = $item["agent_num"];
}
}
}
$district_list["last_week_total"] = $last_week_total;
$district_list["district_list"] = $results;
return $district_list;
}
}
\ No newline at end of file
<?php
namespace app\api_broker\service;
use app\model\AAgents;
use app\model\GHousesToAgents;
/**
* Created by PhpStorm.
* User : zw
* Date : 2018/3/23
* Time : 14:11
* Intro:
*/
class VerifyService
{
private $agentModel;
public function __construct()
{
$this->agentModel = new AAgents();
}
/**
* 经纪人身份验证 获取经纪人
* @param $agent_id
* @return null|string
*/
public function getAgentsByAgentId($agent_id)
{
$params["id"] = $agent_id;
$result = $this->agentModel->searchAgentsByKeyword("id,store_id,district_id,level", $params);
if (count($result) > 0) {
$arr_list = [];
switch ($result[0]["level"]) {
case 10:
return $result[0]["id"];
case 20:
$arr_list = $this->agentModel->searchAgentsByKeyword("id", [ "store_id" => $result[0]["store_id"] ]);
break;
case 30:
case 40:
$arr_list = $this->agentModel->searchAgentsByKeyword("id", [ "district_id" => $result[0]["district_id"] ]);
break;
}
$ids = "";
if (count($arr_list) > 0) {
foreach ($arr_list as $item) {
$ids .= $item["id"] . ",";
}
}
$ids = rtrim($ids, ",");
return $ids;
}
return null;
}
public function getCaseHouseIdByAgentId($agent_id)
{
$houseToAgentModel = new GHousesToAgents();
$params["a.agents_id"] = $agent_id;
$params["a.type"] = 1; //案场权限人
$params["a.is_del"] = 0;
$house_arr = $houseToAgentModel->getHouseByAgentId("a.houses_id,b.internal_title", $params);
if (count($house_arr) > 0) {
return $house_arr;
}
return null;
}
}
\ No newline at end of file
...@@ -66,6 +66,8 @@ class Index ...@@ -66,6 +66,8 @@ class Index
{ {
return view('index/more_chengjiao'); return view('index/more_chengjiao');
} }
/** /**
* 楼盘详情 * 楼盘详情
......
<?php
//配置文件
return [
];
\ No newline at end of file
<?php
namespace app\app_broker\controller;
use app\model\AppVersion;
use app\model\HouseImgs;
use app\model\HouseInfos;
use think\Controller;
use think\Response;
class Index
{
public function achieve_fork()
{
return view('index/achieve_fork');
}
public function achieve_ywy()
{
return view('index/achieve_ywy');
}
public function achieve_md()
{
return view('index/achieve_md');
}
public function achieve_ac()
{
return view('index/achieve_ac');
}
public function cs_0328()
{
return view('index/cs_0328');
}
public function weekly()
{
return view('index/weekly');
}
public function customerinfo_genjin()
{
return view('index/customerinfo_genjin');
}
public function weekly_my()
{
return view('index/weekly_my');
}
public function weekly_image()
{
return view('index/weekly_image');
}
public function weekly_achieve_dz()
{
return view('index/weekly_achieve_dz');
}
public function weekly_achieve_mdzj()
{
return view('index/weekly_achieve_mdzj');
}
public function daily()
{
return view('index/daily');
}
public function daily_my()
{
return view('index/daily_my');
}
public function daily_achieve_mdzj()
{
return view('index/daily_achieve_mdzj');
}
public function daily_achieve_dz()
{
return view('index/daily_achieve_dz');
}
public function daily_achieve_ywy()
{
return view('index/daily_achieve_ywy');
}
public function __construct()
{
}
public function index()
{
return view('index/index');
}
}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>同联商业</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0" />
<meta name="Keywords" content="" />
<meta name="Description" content="" />
</head>
<body style="display: none;">
<div id="app">
<header id="header">
<a class="ps-back" href="javascript:(history.length>1?history.go(-1):window.location='/');" id="back_btn"></a>
<h2 id="title">本周业绩</h2>
</header>
<div class="header_seat"></div>
<footer class="oh" @touchstart="testStart" @touchend="testEnd">
<div class="oh fl">
<a class="fl" :href="linkAchieveYwy">个人业绩</a>
</div>
<div class="oh fl" v-if="userLevel!=10">
<a class="fl" v-if="userLevel==40" :href="linkAchieveQy">区域业绩</a>
<a class="fl" v-else :href="linkAchieveMd">门店业绩</a>
</div>
</footer>
</div>
<script src="/app/js/libs/require.min.js" data-js="/app/js/achieve_fork.js" data-main="/app/js/main" defer async="true"></script>
</body>
</html>
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>同联商业</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0" />
<meta name="Keywords" content="" />
<meta name="Description" content="" />
</head>
<body style="display: none;">
<div id="app">
<header class="achieve-header dz-achieve-header">
<a class="achieve-header-back" href="javascript:;"></a>
<div class="achieve-header-tab">
<a href="javascript:;" v-for="(item,index) in tabsMain" :class="{active:index == initTabNumMain}" @click="tabMain(index)">{{item.title}}</a>
</div>
<div class="mulu_relate" href="javascript:;"><span id="list_name">全部</span><img src="/app/images/all_ic.png"></div>
</header>
<div class="header_seat"></div>
<div class="achieve-content-ac">
<div class="search-area">
<img src="/app/images/ic_rili-.png" />
<div><input type="date" id="startdateid" v-model="startDate" /></div>
<span></span>
<div><input type="date" id="enddateid" v-model="endDate" /></div>
<button id="searchBtn">搜索</button>
</div>
<ul class="nav-area" v-for="(item,index) in tabsMain" :key="item.title" v-show="index == initTabNumMain">
<li v-for="(item2,index2) in item.data" :key="item2.name" :id="'tab_'+index+'_'+index2" :class="{tab_selected:index2 == item.initTabNumSub}" @click="tabSub(index, index2)">
<span>{{item2.name}}</span>
<span>{{item2.num}}</span>
</li>
</ul>
</div>
<div v-for="(item,index) in tabsMain" :key="item.title" v-show="index == initTabNumMain">
<section v-for='(item2,index2) in item.data' :key="item2.name" v-show="index2 == item.initTabNumSub" :id="'sec_'+index+'_'+index2" class="sec-tab" >
<div>
<ul :id="'content_'+index+'_'+index2" class="sec-tab-ul">
<li v-for='(item3,index3) in item2.dataList'>
<div>
<span>{1}</span>
<span>{2}</span>
</div>
<div>
<span>{3}</span>
<span>{4}</span>
</div>
</li>
</ul>
</div>
<div :id="'loading_pic_'+index+'_'+index2" class="loading_pic">
<img src="/app/images/jz2.gif" />
<p>正在加载...</p>
</div>
<div :id="'no_more_'+index+'_'+index2" class="no_more">没有更多了</div>
<div :id="'mask_ld_'+index+'_'+index2" class="no_more">
<img src="/app/images/ic_wushuju-.png" class="ic_wushuju">
<p>暂无数据...</p>
</div>
</section>
</div>
</div>
<script src="/app/js/libs/require.min.js" data-js="/app/js/achieve_ywy.js" data-main="/app/js/main" defer async="true"></script>
</body>
</html>
\ No newline at end of file
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>同联商业</title>
<meta http-equiv="X-UA-Compatible" content="IE=10" />
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0" />
<meta name="Keywords" content="" />
<meta name="Description" content="" />
</head>
<body style="display: none;">
<div id="app">
<ul>
<li v-for="(item, index) in dataMain" :key="item.App_version.id" :data-index="index" :data-id="item.App_version.id" :data="item" @click="changeSt($event,item.App_version.version,item.App_version.id, index,)">
<div>{{item.App_version.version+','+item.App_version.id+','+index}}</div>
<div>{{item.App_version.content}}</div>
</li>
</ul>
</div>
<script src="/app/js/libs/require.min.js" data-js="/app/js/cs_0328.js" data-main="/app/js/main" defer async="true"></script>
</body>
</html>
\ No newline at end of file
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>同联商业</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0" />
<meta name="Keywords" content="" />
<meta name="Description" content="" />
</head>
<body style="display: none;">
<div id="app">
<!--<header id="header">
<a class="ps-back" href="javascript:(history.length>1?history.go(-1):window.location='/');" id="back_btn"></a>
<h2 id="title">跟进</h2>
</header>
<div class="header_seat"></div>-->
<div class="list_a">
<p>
1、属于哪类客户?<span>*必填</span>
</p>
<div id="list_a">
<input name="radio_a" type="radio" id="btn1" value="1" v-model="user_type">
<label for="btn1"></label>
<i class="list_i">A类(成交意愿较强)</i>
<input name="radio_a" type="radio" id="btn2" value="2" v-model="user_type">
<label for="btn2"></label>
<i class="list_i">B类(成交意愿中等)</i>
<input name="radio_a" type="radio" id="btn3" value="3" v-model="user_type">
<label for="btn3"></label>
<i class="list_i">C类(成交意愿较弱)</i>
</div>
</div>
<div class="list_a">
<p>
2、第一决策人是谁?
</p>
<div id="list_b">
<input type="text" placeholder="请输入" name="text" id="content1" v-model.trim="decision_maker">
</div>
</div>
<div class="list_a">
<p>
3、租商铺做什么?<span>*必填</span>
</p>
<div id="list_c">
<input name="radio_c" type="radio" id="btn4" value="1" v-model="industry_type">
<label for="btn4"></label>
<i class="list_i">
轻餐饮
</i>
<input name="radio_c" type="radio" id="btn5" value="2" v-model="industry_type">
<label for="btn5"></label>
<i class="list_i">
重餐饮
</i>
<input name="radio_c" type="radio" id="btn6" value="3" v-model="industry_type">
<label for="btn6"></label>
<i class="list_i">
百货零售
</i>
<input name="radio_c" type="radio" id="btn7" value="4" v-model="industry_type">
<label for="btn7"></label>
<i class="list_i">
服装
</i>
<input name="radio_c" type="radio" id="btn8" value="5" v-model="industry_type">
<label for="btn8"></label>
<i class="list_i">
亲子教育
</i>
<input name="radio_c" type="radio" id="btn9" value="6" v-model="industry_type">
<label for="btn9"></label>
<i class="list_i">
休闲娱乐
</i>
</div>
</div>
<div class="list_a">
<p>
4、对面积的要求?<span>*必填</span>
</p>
<div id="list_d">
<input name="radio_d" type="radio" id="area1" value="1" v-model="area_requirement">
<label for="area1"></label>
<i class="list_i">
30㎡以内
</i>
<input name="radio_d" type="radio" id="area2" value="2" v-model="area_requirement">
<label for="area2"></label>
<i class="list_i">
30-60㎡
</i>
<input name="radio_d" type="radio" id="area3" value="3" v-model="area_requirement">
<label for="area3"></label>
<i class="list_i">
60-100㎡
</i>
<input name="radio_d" type="radio" id="area4" value="4" v-model="area_requirement">
<label for="area4"></label>
<i class="list_i">
100㎡以上
</i>
</div>
</div>
<div class="list_a">
<p>
5、对价格的要求?<span>*必填</span>
</p>
<div id="list_e">
<input name="radio_e" type="radio" id="money1" value="1" v-model="price_requirement">
<label for="money1"></label>
<i class="list_i">
月租金10000以内
</i>
<input name="radio_e" type="radio" id="money2" value="2" v-model="price_requirement">
<label for="money2"></label>
<i class="list_i">
月租金10000-30000元
</i>
<input name="radio_e" type="radio" id="money3" value="3" v-model="price_requirement">
<label for="money3"></label>
<i class="list_i">
月租金30000元以上
</i>
</div>
</div>
<div class="list_a" id="list_aa">
<p>
6、选在哪些区域?
</p>
<div class="area_list">
<select id="area_province" v-model="province" @change="changeProvince($event)">
<option v-for="item in provinceList" :value="item.code" :key="item.code">{{item.name}}</option>
</select>
<img src="/app/images/but_down.png" class="but_down">
<select id="area_city" v-model="city" @change="changeCity($event)">
<option v-for="item in cityList" :value="item.code" :key="item.code">{{item.name}}</option>
</select>
<img src="/app/images/but_down.png" class="but_down">
<select id="area_area" v-model="district">
<option v-for="item in districtList" :value="item.code" :key="item.code">{{item.fullName}}</option>
</select>
<img src="/app/images/but_down.png" class="but_down">
<input id="business_area" type="text" v-model="business_area" placeholder="请输入商圈信息" />
<textarea placeholder="请输入其他信息" name="content" id="content_area" v-model.trim="other_area"></textarea>
</div>
</div>
<div class="list_a">
<p @touchstart="testStart" @touchend="testEnd">
7、补充说明
</p>
<textarea placeholder="请输入其他信息" name="content" id="content_area1" v-model.trim="explain"></textarea>
<div class="pic">
图片上传
</div>
<div class="upload-area">
<imgshow-component v-for="item in imgShowList" v-bind:data="item" :key="item.name" v-on:deleteimg="deleteimgMain"></imgshow-component>
<div class="add-pic" id="add_pic" v-show="!uploadImgFlag">
<input type="file" name="img" id="input_img" @change="uploadImg($event)">
</div>
<div class="loading_new" id="loading_animate" v-show="uploadImgFlag">
<div class="loader4"></div>
<span id="loading_msg">上传中...</span>
</div>
</div>
</div>
<div class="customerinfo-submit-btn hide-btn">
<a href="javascript:;" id="btn_save_new" v-show="!submitFlag" @click.prevent.stop="save">提交</a>
<a href="javascript:;" id="btn_save_temp_new" v-show="submitFlag">正在保存...</a>
</div>
</div>
<script src="/app/js/libs/require.min.js" data-js="/app/js/customer_gj.js" data-main="/app/js/main" defer async="true"></script>
<script type="text/x-template" id="imgShow1">
<div class="sc_img">
<img :src="data.name" class="preview">
<img class="del_img" :src="deleteImgPrefix" v-model="deleteimg" @click="deleteimg">
</div>
</script>
</body>
</html>
\ No newline at end of file
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>福居好房</title>
<meta http-equiv="X-UA-Compatible" content="IE=10" />
<meta name="viewport" content="initial-scale=1, maximum-scale=1, minimum-scale=1">
<!--页面 禁止缩放 user-scalable=0 -->
<meta http-equiv="Cache-Control" content="no-siteapp" />
<!-- 禁止广告 -->
<meta name="Keywords" content="" />
<!--关键词-->
<meta name="Description" content="" />
<link href="css/common.css" rel="stylesheet">
<!--<link href="css/spl.css" rel="stylesheet">-->
<link href="css/weely.css" rel="stylesheet">
</head>
<body>
<header id="header">
<a class="ps-back" href="javascript:(history.length>1?history.go(-1):window.location='/');"></a>
<h2 id="title">业绩日报</h2>
<a class="word-link" href="javascript:;">我的日报</a>
</header>
<div class="header_seat"></div>
<div class="weekly_time liudan">
<ul>
<li>
<span class="weekly_span">
</span>
<p class="weekly_p">
请选择你要汇报的楼盘(可多选)
</p>
</li>
</ul>
</div>
<div class="weekly_lp liudan">
<ul id="uc_03" class="ui-choose choose-type-right" multiple="multiple">
</ul>
</div>
<button class="weekly_btn">确认</button>
<!--编辑器输出1-->
<script src="js/jquery.js" charset="utf-8"></script>
<script src="js/commonsrc.js" charset="utf-8"></script>
<script type="text/javascript" src="js/layer.js" ></script>
<script src="js/common.js" charset="utf-8"></script>
<script src="js/ui-choose.js" charset="utf-8"></script>
<script>
$(function() {
//实例化
$('.ui-choose').ui_choose();
// uc_03 ul 多选
var uc_03 = $('#uc_03').data('ui-choose');
uc_03.click = function(index, item) {
console.log('click', index);
};
uc_03.change = function(index, item) {
console.log('change', index);
};
var _appToken = getUrlParam("token");
if(_appToken !== null) {
$(document).on('click', '.ps-back', function(e){
e.preventDefault();
if(device.isIos()){
location.href = "abcd";//传给app用
}else if(device.isAndroid()){
try{
window.android.onBackPressed();
}catch(e){
console.log('window.android.onBackPressed未能执行');
}
}else{
console.log('other device');
}
});
h5Page(_appToken, function(data) {
loadMain();
});
} else {
loadMain();
}
function loadMain() {
//判断是否案场
var _usertable = localStorage.getItem("usertable");
var _userInfo = JSON.parse(decodeURIComponent(localStorage.getItem('userinfo')));
$('.word-link').click(function(e){
e.preventDefault();
e.stopPropagation();
var _addAppStr = (_appToken !== null) ? '?appEnter=1' : ''; //判断是否是app访问的,进行一些处理
location.href = 'daily_my.html?' + _addAppStr;
});
if(_usertable == "agents") {
$(".liudan").show();
var _data;
if(ServerHost.indexOf('fujuhaofang') >= 0){
_data = {
'app_name': 'fuju',
'app_type': 0
};
}else{
_data = {
'app_name': 'futang',
'app_type': 1
};
};
$.ajax({
url: ServerHost + "/AppTab1/applyData",
data: _data,
type: "POST",
dataType: "json",
beforeSend: function() {},
success: function(response) {
var html = "";
$.each(response['house'], function(i, item) {
html += "<li id='" + item.id + "'>" + item.title + "</li>";
});
$("#uc_03").html(html);
},
error: function() {}
});
};
$('.weekly_btn').click(function(e) {
var _ul_temp = $(".weekly_lp ul .selected");
//if(_ul_temp.length > 0) {
var array = [];
_ul_temp.each(function(i, v) {
var _tempObj = {};
var _v = $(v);
_tempObj['id'] = _v.attr('id');
_tempObj['house_name'] = _v.html();
array.push(_tempObj);
});
var data = {
'house': array
};
var urlEn = encodeURIComponent(JSON.stringify(data));
var _addAppStr = (_appToken !== null) ? 'appEnter=1&' : ''; //判断是否是app访问的,进行一些处理
if(_ul_temp.length > 0) {
if(_userInfo['boss'] && _userInfo['boss'] == 1){
//市场部总监
window.location.href = "daily_achieve_sczj.html?" + _addAppStr + 'daily_data=' + urlEn;
}else{
//普通组长
window.location.href = "daily_achieve_zz.html?" + _addAppStr + 'daily_data=' + urlEn;
}
} else {
layer.open({
content: '未选择楼盘',
skin: 'msg',
time: 2
});
return;
}
});
}
});
</script>
</body>
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>同联商业</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="Keywords" content="" />
<meta name="Description" content="" />
</head>
<body style="display: none;">
<div id="app">
<header id="header">
<a class="ps-back" href="javascript:(history.length>1?history.go(-1):window.location='/');"></a>
<h2 id="title">业绩日报</h2>
<a class="word-link" :href="reportLink">我的日报</a>
</header>
<div class="header_seat"></div>
<div id="screen_shot_area">
<div id="titile_temp">汇报人:{{userName}}</div>
<div id="titile_before">今日总结 {{dateNow}}</div>
<div id="tab_table_area">
<section>
<table border="0" cellspacing="0" cellpadding="0" class="table-type1">
<tbody>
<tr class="table-tr-header">
<td></td>
<td>房源</td>
<td>客源</td>
<td>带看</td>
<td>业绩(元)</td>
<td>实收(元)</td>
</tr>
<tr class="table-tr-riwancheng">
<td>日完成</td>
<td>{{fangyuan}}</td>
<td><input type="number" placeholder="填写" /></td>
<td>{{daikan}}</td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
</tr>
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="0" class="table-type6">
<tbody>
<tr class="table-tr-single">
<td colspan="5">业绩与实收的月数据</td>
</tr>
<tr class="table-tr-header">
<td></td>
<td>月目标</td>
<td>月完成</td>
<td>差额</td>
<td>人均</td>
</tr>
<tr is="my-tr1" v-for="(item, index) in trArr" v-bind:data="item" :peoplenum="peopleNum" :daynum="nowDayNum" :key="item.titlename"></tr>
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="0" class="table-type2">
<tr class="table-tr-single">
<td colspan="2">核心目标量化和完成目标的措施和方法及时间节点</td>
</tr>
<tr class="">
<td>9:15-11:45</td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>12:30-14:30</td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>14:30-17:45</td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>18:30-20:00</td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>完不成如<br />何惩罚自<br /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
</table>
<table border="0" cellspacing="0" cellpadding="0" class="table-type11">
<tbody>
<tr class="table-tr-single">
<td colspan="5">店长个人数据</td>
</tr>
<tr class="table-tr-header">
<td>带看</td>
<td>陪看</td>
<td>更新</td>
<td>网络</td>
<td>开单</td>
</tr>
<tr>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="text" placeholder="填写" /></td>
</tr>
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="0" class="table-type4">
<tr class="table-tr-single">
<td colspan="3">员工打分和点评(1-10分)</td>
</tr>
<tr class="table-tr-header" id="groupInfoArea">
<td>员工</td>
<td>分数</td>
<td>点评</td>
</tr>
<!--<tr>
<td>刘丹丹</td>
<td><input type="number" placeholder="填写" /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>-->
<tr class="table-tr-textarea tr-padding20">
<td>绩效奖惩的<br />执行情况</td>
<td colspan="2">
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="table-tr-textarea tr-padding20">
<td>今日总结</td>
<td colspan="2">
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
</table>
<table border="0" cellspacing="0" cellpadding="0" class="table-type1">
<tbody>
<tr class="table-tr-single">
<td colspan="6">明日计划</td>
</tr>
<tr class="table-tr-header">
<td></td>
<td>房源</td>
<td>客源</td>
<td>带看</td>
<td>业绩(元)</td>
<td>实收(元)</td>
</tr>
<tr class="table-tr-mingrimubiao">
<td>明日目标</td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
</tr>
<tr class="table-tr-textarea tr-padding35">
<td>绩效奖惩制定</td>
<td colspan="5">
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="table-tr-textarea tr-padding35">
<td>明日措施与方法</td>
<td colspan="5">
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="0" class="table-type9">
<tr class="table-tr-single">
<td colspan="6">同联六项管理、自我考核评分标准(每项1-10分)</td>
</tr>
<tr>
<td>六项管理</td>
<td>分数</td>
<td>提高方法</td>
</tr>
<tr class="">
<td>目标管理</td>
<td><input type="number" placeholder="填写" /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>心态管理</td>
<td><input type="number" placeholder="填写" /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>时间管理</td>
<td><input type="number" placeholder="填写" /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>学习管理</td>
<td><input type="number" placeholder="填写" /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>行动管理</td>
<td><input type="number" placeholder="填写" /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>动力管理</td>
<td><input type="number" placeholder="填写" /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
</table>
</section>
</div>
<div id="time_stamp_area"></div>
</div>
<div class="btn-area">
<button id="btn_ok" @click.stop.prevent="save">提交</button>
</div>
<div id="loading_pic" class="week-sp loading_pic">
<img src="/app/images/jz2.gif" />
<p>正在加载...</p>
</div>
</div>
<script src="/app/js/libs/require.min.js" data-js="/app/js/daily_achieve_dz.js" data-main="/app/js/main" data-norem="yes" defer async="true"></script>
<script type="text/x-template" id="tr1">
<tr>
<td>{{data.titlename}}</td>
<td><input type="number" placeholder="填写" v-model.number="mubiao" /></td>
<td><input type="number" placeholder="填写" v-model.number="wancheng" /></td>
<td>{{mubiao-wancheng}}</td>
<td>{{renjun}}</td>
</tr>
</script>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>同联商业</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="Keywords" content="" />
<meta name="Description" content="" />
</head>
<body style="display: none;">
<div id="app">
<header id="header">
<a class="ps-back" href="javascript:;" @click.stop.prevent="pageBack"></a>
<h2 id="title">业绩日报</h2>
<a class="word-link" :href="reportLink">我的日报</a>
</header>
<div class="header_seat"></div>
<div id="screen_shot_area">
<div id="titile_temp">汇报人:{{userName}}</div>
<div id="titile_before">今日总结 {{dateNow}}</div>
<div id="tab_table_area">
<section>
<table border="0" cellspacing="0" cellpadding="0" class="table-type6">
<tbody>
<tr class="table-tr-header">
<td></td>
<td>月目标</td>
<td>月完成</td>
<td>差额</td>
<td>人均</td>
</tr>
<tr is="my-tr1" v-for="(item, index) in trArr" v-bind:data="item" :peoplenum="peopleNum" :daynum="nowDayNum" :key="item.titlename"></tr>
<tr class="table-tr-textarea tr-padding20">
<td>业绩方面<br />的当前工<br />作重点</td>
<td colspan="4">
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="0" class="table-type7">
<tr class="table-tr-single">
<td colspan="2">人员汇报</td>
</tr>
<tr class="">
<td>人员目标</td>
<td><input type="number" placeholder="填写" id="renshu_mubiao" /></td>
</tr>
<tr class="">
<td>现在人数</td>
<td id="renshu_now">{{peopleNum}}</td>
</tr>
<tr class="">
<td>人数差额</td>
<td><input type="number" placeholder="填写" id="renshu_chae" /></td>
</tr>
<tr class="table-tr-textarea tr-padding20">
<td>人员方面的<br />当前重点工作</td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="table-tr-single">
<td colspan="2">工作总结</td>
</tr>
<tr class="table-tr-textarea tr-padding60">
<td>今日工作总结</td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="table-tr-textarea tr-padding60">
<td>明日工作总结</td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
</table>
<table border="0" cellspacing="0" cellpadding="0" class="table-type9">
<tr class="table-tr-single">
<td colspan="6">同联六项管理、自我考核评分标准(每项1-10分)</td>
</tr>
<tr>
<td>六项管理</td>
<td>分数</td>
<td>提高方法</td>
</tr>
<tr class="">
<td>目标管理</td>
<td><input type="number" placeholder="填写" /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>心态管理</td>
<td><input type="number" placeholder="填写" /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>时间管理</td>
<td><input type="number" placeholder="填写" /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>学习管理</td>
<td><input type="number" placeholder="填写" /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>行动管理</td>
<td><input type="number" placeholder="填写" /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>动力管理</td>
<td><input type="number" placeholder="填写" /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
</table>
</section>
</div>
<div id="time_stamp_area"></div>
</div>
<div class="btn-area">
<button id="btn_ok" @click.stop.prevent="save">提交</button>
</div>
<div id="loading_pic" class="week-sp loading_pic">
<img src="/app/images/jz2.gif" />
<p>正在加载...</p>
</div>
</div>
<script src="/app/js/libs/require.min.js" data-js="/app/js/daily_achieve_mdzj.js" data-main="/app/js/main" data-norem="yes" defer async="true"></script>
<script type="text/x-template" id="tr1">
<tr>
<td>{{data.titlename}}</td>
<td><input type="number" placeholder="填写" v-model.number="mubiao" /></td>
<td><input type="number" placeholder="填写" v-model.number="wancheng" /></td>
<td>{{mubiao-wancheng}}</td>
<td>{{renjun}}</td>
</tr>
</script>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>同联商业</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="Keywords" content="" />
<meta name="Description" content="" />
</head>
<body style="display: none;">
<div id="app">
<header id="header">
<a class="ps-back" href="javascript:;" @click.stop.prevent="pageBack"></a>
<h2 id="title">业绩日报</h2>
<a class="word-link" :href="reportLink">我的日报</a>
</header>
<div class="header_seat"></div>
<div id="screen_shot_area">
<div id="titile_temp">汇报人:{{userName}}</div>
<div id="titile_before">今日总结 {{dateNow}}</div>
<div id="tab_table_area">
<section>
<table border="0" cellspacing="0" cellpadding="0" class="table-type1">
<tbody>
<tr class="table-tr-header">
<td></td>
<td>房源</td>
<td>客源</td>
<td>带看</td>
<td>业绩(元)</td>
<td>实收(元)</td>
</tr>
<tr class="table-tr-riwancheng">
<td>日完成</td>
<td>{{fangyuan}}</td>
<td><input type="number" placeholder="填写" /></td>
<td>{{daikan}}</td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
</tr>
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="0" class="table-type10">
<tbody>
<tr class="table-tr-single">
<td colspan="4">业绩与实收的月数据</td>
</tr>
<tr class="table-tr-header">
<td></td>
<td>月目标</td>
<td>月完成</td>
<td>差额</td>
</tr>
<tr is="my-tr1" v-for="(item, index) in trArr" v-bind:data="item" :key="item.titlename"></tr>
<tr class="table-tr-textarea tr-padding60">
<td>数据情况总结</td>
<td colspan="3">
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="0" class="table-type1">
<tbody>
<tr class="table-tr-single">
<td colspan="6">明日计划</td>
</tr>
<tr class="table-tr-header">
<td></td>
<td>房源</td>
<td>客源</td>
<td>带看</td>
<td>业绩(元)</td>
<td>实收(元)</td>
</tr>
<tr class="table-tr-mingrimubiao">
<td>明日目标</td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
</tr>
<!--<tr class="table-tr-textarea tr-padding35">
<td>明日措施与方法</td>
<td colspan="4">
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>-->
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="0" class="table-type2">
<tr class="table-tr-single">
<td colspan="2">核心目标量化和完成目标的措施和方法及时间节点</td>
</tr>
<tr class="">
<td>9:15-11:45</td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>12:30-14:30</td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>14:30-17:45</td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>18:30-20:00</td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>完不成如<br />何惩罚自<br /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
</table>
<table border="0" cellspacing="0" cellpadding="0" class="table-type9">
<tr class="table-tr-single">
<td colspan="6">同联六项管理、自我考核评分标准(每项1-10分)</td>
</tr>
<tr>
<td>六项管理</td>
<td>分数</td>
<td>提高方法</td>
</tr>
<tr class="">
<td>目标管理</td>
<td><input type="number" placeholder="填写" /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>心态管理</td>
<td><input type="number" placeholder="填写" /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>时间管理</td>
<td><input type="number" placeholder="填写" /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>学习管理</td>
<td><input type="number" placeholder="填写" /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>行动管理</td>
<td><input type="number" placeholder="填写" /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>动力管理</td>
<td><input type="number" placeholder="填写" /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
</table>
</section>
</div>
<div id="time_stamp_area"></div>
</div>
<div class="btn-area">
<button id="btn_ok" @click.stop.prevent="save">提交</button>
</div>
<div id="loading_pic" class="week-sp loading_pic">
<img src="/app/images/jz2.gif" />
<p>正在加载...</p>
</div>
</div>
<script src="/app/js/libs/require.min.js" data-js="/app/js/daily_achieve_ywy.js" data-main="/app/js/main" data-norem="yes" defer async="true"></script>
<script type="text/x-template" id="tr1">
<tr>
<td>{{data.titlename}}</td>
<td><input type="number" placeholder="填写" v-model.number="mubiao" /></td>
<td><input type="number" placeholder="填写" v-model.number="wancheng" /></td>
<td>{{mubiao-wancheng}}</td>
</tr>
</script>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>福居好房</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0" />
<meta name="Keywords" content="" />
<meta name="Description" content="" />
</head>
<body style="display: none;">
<div id="app">
<header id="header">
<a class="ps-back" href="javascript:(history.length>1?history.go(-1):window.location='/');"></a>
<h2 id="title">我的日报</h2>
</header>
<div class="header_seat"></div>
<div id="table_area">
<table border="" cellspacing="" cellpadding="">
<tbody id="appendArea">
<tr>
<th>上传时间</th>
<th>周报</th>
</tr>
<tr v-for="(item, index) in dataList" :key="item.id">
<td>{{item.create_time}}</td>
<td><a :href="hrefPre+item.img_url">查看</a></td>
</tr>
</tbody>
</table>
</div>
<div id="loading_pic" class="loading_pic">
<img src="/app/images/jz2.gif" />
<p>正在加载...</p>
</div>
<div id="no_more" class="no_more">没有更多了</div>
</div>
<script src="/app/js/libs/require.min.js" data-js="/app/js/daily_my.js" data-main="/app/js/main" defer async="true"></script>
</body>
</html>
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment