新增功能
This commit is contained in:
@@ -0,0 +1,244 @@
|
||||
<?php
|
||||
|
||||
namespace app\adminapi\logic;
|
||||
|
||||
use app\common\logic\BaseLogic;
|
||||
use app\common\model\Fan;
|
||||
use app\common\model\FanVisitRecord;
|
||||
use think\facade\Db;
|
||||
|
||||
class FanLogic extends BaseLogic
|
||||
{
|
||||
/**
|
||||
* @notes 添加粉丝
|
||||
* @param array $params
|
||||
* @return int|bool
|
||||
*/
|
||||
public static function add(array $params)
|
||||
{
|
||||
try {
|
||||
if (!empty($params['phone'])) {
|
||||
$exists = Fan::where('phone', $params['phone'])
|
||||
->where('delete_time', null)
|
||||
->find();
|
||||
if ($exists) {
|
||||
self::setError('该手机号已存在');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($params['id_card'])) {
|
||||
$exists = Fan::where('id_card', $params['id_card'])
|
||||
->where('delete_time', null)
|
||||
->find();
|
||||
if ($exists) {
|
||||
self::setError('该身份证号已存在');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$fan = Fan::create([
|
||||
'name' => $params['name'],
|
||||
'phone' => $params['phone'] ?? '',
|
||||
'id_card' => $params['id_card'] ?? '',
|
||||
'age' => $params['age'] ?? 0,
|
||||
'gender' => $params['gender'] ?? 0,
|
||||
'remark' => $params['remark'] ?? '',
|
||||
'creator_id' => $params['creator_id'] ?? 0,
|
||||
'creator_name' => $params['creator_name'] ?? '',
|
||||
'status' => $params['status'] ?? 1,
|
||||
]);
|
||||
|
||||
return $fan->id;
|
||||
} catch (\Exception $e) {
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @notes 编辑粉丝
|
||||
* @param array $params
|
||||
* @return bool
|
||||
*/
|
||||
public static function edit(array $params)
|
||||
{
|
||||
try {
|
||||
if (!empty($params['phone'])) {
|
||||
$exists = Fan::where('phone', $params['phone'])
|
||||
->where('id', '<>', $params['id'])
|
||||
->where('delete_time', null)
|
||||
->find();
|
||||
if ($exists) {
|
||||
self::setError('该手机号已存在');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($params['id_card'])) {
|
||||
$exists = Fan::where('id_card', $params['id_card'])
|
||||
->where('id', '<>', $params['id'])
|
||||
->where('delete_time', null)
|
||||
->find();
|
||||
if ($exists) {
|
||||
self::setError('该身份证号已存在');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
Fan::update([
|
||||
'id' => $params['id'],
|
||||
'name' => $params['name'],
|
||||
'phone' => $params['phone'] ?? '',
|
||||
'id_card' => $params['id_card'] ?? '',
|
||||
'age' => $params['age'] ?? 0,
|
||||
'gender' => $params['gender'] ?? 0,
|
||||
'remark' => $params['remark'] ?? '',
|
||||
'status' => $params['status'] ?? 1,
|
||||
]);
|
||||
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @notes 删除粉丝
|
||||
* @param array $params
|
||||
* @return bool
|
||||
*/
|
||||
public static function delete(array $params)
|
||||
{
|
||||
try {
|
||||
Fan::destroy($params['id']);
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @notes 粉丝详情
|
||||
* @param array $params
|
||||
* @return array
|
||||
*/
|
||||
public static function detail(array $params)
|
||||
{
|
||||
$fan = Fan::findOrEmpty($params['id']);
|
||||
if ($fan->isEmpty()) {
|
||||
return [];
|
||||
}
|
||||
$data = $fan->append(['gender_desc', 'status_desc'])->toArray();
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* @notes 添加回访记录
|
||||
* @param array $params
|
||||
* @return int|bool
|
||||
*/
|
||||
public static function addVisitRecord(array $params)
|
||||
{
|
||||
try {
|
||||
$fan = Fan::findOrEmpty($params['fan_id']);
|
||||
if ($fan->isEmpty()) {
|
||||
self::setError('粉丝不存在');
|
||||
return false;
|
||||
}
|
||||
|
||||
$record = FanVisitRecord::create([
|
||||
'fan_id' => $params['fan_id'],
|
||||
'visit_type' => $params['visit_type'] ?? 1,
|
||||
'visit_time' => !empty($params['visit_time']) ? strtotime($params['visit_time']) : time(),
|
||||
'content' => $params['content'] ?? '',
|
||||
'result' => $params['result'] ?? '',
|
||||
'next_visit_time' => !empty($params['next_visit_time']) ? strtotime($params['next_visit_time']) : null,
|
||||
'operator_id' => $params['operator_id'] ?? 0,
|
||||
'operator_name' => $params['operator_name'] ?? '',
|
||||
]);
|
||||
|
||||
return $record->id;
|
||||
} catch (\Exception $e) {
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @notes 编辑回访记录
|
||||
* @param array $params
|
||||
* @return bool
|
||||
*/
|
||||
public static function editVisitRecord(array $params)
|
||||
{
|
||||
try {
|
||||
FanVisitRecord::update([
|
||||
'id' => $params['id'],
|
||||
'visit_type' => $params['visit_type'] ?? 1,
|
||||
'visit_time' => !empty($params['visit_time']) ? strtotime($params['visit_time']) : time(),
|
||||
'content' => $params['content'] ?? '',
|
||||
'result' => $params['result'] ?? '',
|
||||
'next_visit_time' => !empty($params['next_visit_time']) ? strtotime($params['next_visit_time']) : null,
|
||||
]);
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @notes 删除回访记录
|
||||
* @param array $params
|
||||
* @return bool
|
||||
*/
|
||||
public static function deleteVisitRecord(array $params)
|
||||
{
|
||||
try {
|
||||
FanVisitRecord::destroy($params['id']);
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @notes 回访记录列表
|
||||
* @param array $params
|
||||
* @return array
|
||||
*/
|
||||
public static function visitRecordLists(array $params)
|
||||
{
|
||||
$where = [];
|
||||
if (!empty($params['fan_id'])) {
|
||||
$where[] = ['fan_id', '=', $params['fan_id']];
|
||||
}
|
||||
|
||||
$pageNo = $params['page_no'] ?? 1;
|
||||
$pageSize = $params['page_size'] ?? 15;
|
||||
|
||||
$count = FanVisitRecord::where($where)->count();
|
||||
$lists = FanVisitRecord::where($where)
|
||||
->append(['visit_type_desc'])
|
||||
->order('id', 'desc')
|
||||
->page($pageNo, $pageSize)
|
||||
->select()
|
||||
->toArray();
|
||||
|
||||
foreach ($lists as &$item) {
|
||||
$item['visit_time_text'] = $item['visit_time'] ? date('Y-m-d H:i', $item['visit_time']) : '';
|
||||
$item['next_visit_time_text'] = $item['next_visit_time'] ? date('Y-m-d H:i', $item['next_visit_time']) : '';
|
||||
}
|
||||
|
||||
return [
|
||||
'count' => $count,
|
||||
'lists' => $lists,
|
||||
'page_no' => $pageNo,
|
||||
'page_size' => $pageSize,
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user