客户回访调整

This commit is contained in:
meimei
2025-04-16 10:08:13 +08:00
parent 7891a254a1
commit 478e257bce
10 changed files with 435 additions and 26 deletions

View File

@@ -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();
}
}

View File

@@ -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);

View File

@@ -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]);
}
}

View File

@@ -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]);
}
}

View File

@@ -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>

View File

@@ -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">