客户回访调整
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
namespace app\admin\controller;
|
||||
|
||||
use app\common\controller\Backend;
|
||||
use think\Db;
|
||||
|
||||
/**
|
||||
* 客户回访记录
|
||||
@@ -49,10 +50,9 @@ class Firmcustomerfollowuprecord extends Backend
|
||||
return $this->selectpage();
|
||||
}
|
||||
list($where, $sort, $order, $offset, $limit) = $this->buildparams();
|
||||
|
||||
$list = $this->model
|
||||
|
||||
->where($where)
|
||||
->where('firmcustomer_id','=',input('ids'))
|
||||
->order($sort, $order)
|
||||
->paginate($limit);
|
||||
|
||||
@@ -68,4 +68,70 @@ class Firmcustomerfollowuprecord extends Backend
|
||||
return $this->view->fetch();
|
||||
}
|
||||
|
||||
public function newadd()
|
||||
{
|
||||
if (false === $this->request->isPost()) {
|
||||
$customer_id = input('ids');
|
||||
$customer = Db::table('fa_firmcustomer')->where('id',$customer_id)->find();
|
||||
$this->view->assign('customer',$customer);
|
||||
return $this->view->fetch();
|
||||
}
|
||||
$params = $this->request->post();
|
||||
if (empty($params)) {
|
||||
$this->error(__('Parameter %s can not be empty', ''));
|
||||
}
|
||||
$params = $this->preExcludeFields($params);
|
||||
|
||||
if ($this->dataLimit && $this->dataLimitFieldAutoFill) {
|
||||
$params[$this->dataLimitField] = $this->auth->id;
|
||||
}
|
||||
$customerData = Db::table('fa_firmcustomer')->where('id',$params['firmcustomer_id'])->find();
|
||||
$dataList = [];
|
||||
foreach ($params['visit_info'] as $value){
|
||||
$data = $params;
|
||||
unset($data['visit_info']);
|
||||
$data['rel_wx'] = $customerData['rel_wx'];
|
||||
$data['rel_group'] = $customerData['rel_group'];
|
||||
$data['visit_msg'] = $value['visit_msg'];
|
||||
$data['day'] = $value['day'];
|
||||
$data['followup_time'] = $value['times'];
|
||||
$dataList[] = $data;
|
||||
|
||||
}
|
||||
$result = false;
|
||||
Db::startTrans();
|
||||
try {
|
||||
//是否采用模型验证
|
||||
if ($this->modelValidate) {
|
||||
$name = str_replace("\\model\\", "\\validate\\", get_class($this->model));
|
||||
$validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.add' : $name) : $this->modelValidate;
|
||||
$this->model->validateFailException()->validate($validate);
|
||||
}
|
||||
$fields = Db::table('fa_firmcustomerfollowuprecord')->getTableFields();
|
||||
|
||||
foreach ($dataList as $value){
|
||||
$validData = array_intersect_key($value, array_flip($fields));
|
||||
$result = Db::table('fa_firmcustomerfollowuprecord')->insertGetId($validData);
|
||||
if ($result){
|
||||
$firmcustomerfollowuptimelist = [];
|
||||
$firmcustomerfollowuptimelist['firmcustomerfollowuprecord_id']=$result;
|
||||
$firmcustomerfollowuptimelist['day']=$value['day'];
|
||||
$firmcustomerfollowuptimelist['followup_time']=$value['followup_time'];
|
||||
Db::table('fa_firmcustomerfollowuptimelist')->insert($firmcustomerfollowuptimelist);
|
||||
}else{
|
||||
Db::rollback();
|
||||
$this->error('添加失败,请重新操作');
|
||||
}
|
||||
}
|
||||
Db::commit();
|
||||
} catch (ValidateException|PDOException|Exception $e) {
|
||||
Db::rollback();
|
||||
$this->error($e->getMessage());
|
||||
}
|
||||
if ($result === false) {
|
||||
$this->error(__('No rows were inserted'));
|
||||
}
|
||||
$this->success();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -53,6 +53,7 @@ class Firmcustomerfollowuptimelist extends Backend
|
||||
$list = $this->model
|
||||
->with(['firmcustomerfollowuprecord'])
|
||||
->where($where)
|
||||
->where('firmcustomerfollowuprecord_id','=',input('ids'))
|
||||
->order($sort, $order)
|
||||
->paginate($limit);
|
||||
|
||||
|
||||
@@ -77,14 +77,18 @@ class Mattertemplatecategorization extends Backend
|
||||
$firmstoreprojectsone_id = input('firmstoreprojectsone_id');
|
||||
$firmstoreprojectstwo_id = input('firmstoreprojectstwo_id');
|
||||
$model = $this->model->where('mattertemplate_id',1);
|
||||
$visitmodel = Db::table('fa_mattertemplatecategorization')->where('mattertemplate_id',2);
|
||||
if (!empty($firmstoreprojectsone_id)){
|
||||
$model = $model->where('firmstoreprojectsone_id',$firmstoreprojectsone_id);
|
||||
$visitmodel = $visitmodel->where('firmstoreprojectsone_id',$firmstoreprojectsone_id);
|
||||
}
|
||||
if (!empty($firmstoreprojectstwo_id)){
|
||||
$model = $model->where('firmstoreprojectstwo_id',$firmstoreprojectstwo_id);
|
||||
$visitmodel = $visitmodel->where('firmstoreprojectstwo_id',$firmstoreprojectstwo_id);
|
||||
}
|
||||
$data = $model->select();
|
||||
return json(['total'=>count($data),'data'=>$data]);
|
||||
$visitdata = $visitmodel->select();
|
||||
return json(['data'=>$data,'visit_data'=>$visitdata]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -171,4 +171,16 @@ class Mattertemplatecategorizedcontent extends Backend
|
||||
}
|
||||
$this->success();
|
||||
}
|
||||
public function getAllContent(){
|
||||
$mattertemplatecategorization_id = $this->request->post('id');
|
||||
$type = $this->request->post('type');
|
||||
$data = $this->model->where('mattertemplatecategorization_id',$mattertemplatecategorization_id)
|
||||
->order('id desc');
|
||||
if ($type==1){
|
||||
$data = $data->find();
|
||||
}else{
|
||||
$data = $data->select();
|
||||
}
|
||||
return json(['data'=>$data]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,146 @@
|
||||
<form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Firm_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-firm_id" min="0" data-rule="required"
|
||||
disabled
|
||||
data-source="firm/index" class="form-control selectpage"
|
||||
name="row[firm_id]" type="text" value="{:session_admin_firm_id()}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Firmstore_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-firmstore_id" min="0" data-rule="required"
|
||||
data-source="firmstore/index" class="form-control selectpage"
|
||||
disabled
|
||||
name="row[firmstore_id]" type="text" value="{:session_admin_firmstore_id()}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Name')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-name" class="form-control" name="row[name]" type="text" value="{$customer.name}" disabled>
|
||||
</div>
|
||||
</div>
|
||||
<input type="hidden" id="c-customer-id" value="{$customer.id}">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Firmstoreprojectsone_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-firmstoreprojectsone_id" min="0" data-rule="required" data-source="firmstoreprojectsone/index" class="form-control selectpage" name="row[firmstoreprojectsone_id]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Firmstoreprojectstwo_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-firmstoreprojectstwo_id" min="0" data-rule="required" data-source="firmstoreprojectstwo/index" class="form-control selectpage" name="row[firmstoreprojectstwo_id]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Remark')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-remark" class="form-control" name="row[remark]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Feedback')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-feedback" class="form-control" name="row[feedback]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Firmnotespoints_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-firmnotespoints_id" min="0" data-rule="required" data-value="row[firmnotespoints_id]" class="form-control selectpage" name="row[firmnotespoints_id]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div id="firmnotespoints_template" class="form-group">
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('N天发送')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <input id="firmnotespoints_day" class="form-control c-day" name="day" type="number">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('时间')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <input id="firmnotespoints_times" class="form-control datetimepicker c-times" data-date-format="HH:mm:ss" data-use-current="true" name="times" type="text" value="{:date('H:i:s')}">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('事项要点')}:</label>
|
||||
<div class="col-xs-12 col-sm-6">
|
||||
<input id="firmnotespoints_points" class="form-control c-hui-fang-yao-dian" type="text" value="" placeholder="请输入回访要点" name="points">
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-2">
|
||||
<button type="button" class="form-control shili_huashu_btn" type="button" value="示例话术">示例话术</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Content')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<textarea id="firmnotespoints_content" class="form-control editor c-content" rows="5" name="content" cols="50"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('回访事项ID')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-visit_id" min="0" data-rule="required" data-value="row[firmnotespoints_id]" class="form-control selectpage" name="row[firmnotespoints_id]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div id="visit_template" class="form-group">
|
||||
</div>
|
||||
<div class="form-group" id="c-add_group_last_div">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button id="c-add_group_content" type="button" class="btn btn-sm btn-success btn-append"><i class="fa fa-plus"></i> {:__('Append')}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form_group_add_noshow" style="display: none">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('N天发送')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input class="form-control c-day" name="day" type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('时间')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input class="form-control datetimepicker c-times" data-date-format="HH:mm:ss" data-use-current="true" name="times" type="text" value="{:date('H:i:s')}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('事项要点')}:</label>
|
||||
<div class="col-xs-12 col-sm-6">
|
||||
<input class="form-control c-hui-fang-yao-dian" type="text" value="" placeholder="请输入回访要点" name="points">
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-2">
|
||||
<button type="button" class="form-control shili_huashu_btn" type="button" value="示例话术">示例话术</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Content')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<textarea class="form-control editor c-content" rows="5" name="content" cols="50"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<td width="90">
|
||||
<button type="button" class="btn btn-sm btn-danger btn-remove deleteButton"><i class="fa fa-times"></i></button>
|
||||
</td>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="button" id="submit-button-add" class="btn btn-primary btn-embossed ">{:__('OK')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
@@ -15,7 +15,7 @@
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Followup_time')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-followup_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[followup_time]" type="text" value="{:$row.followup_time?datetime($row.followup_time):''}">
|
||||
<input id="c-followup_time" class="form-control datetimepicker" data-date-format="HH:mm:ss" data-use-current="true" name="row[followup_time]" type="text" value="{:$row.followup_time?datetime($row.followup_time):''}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group layer-footer">
|
||||
|
||||
Reference in New Issue
Block a user