You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
194 lines
6.8 KiB
194 lines
6.8 KiB
<?php
|
|
|
|
namespace app\api\controller\v1\complaint;
|
|
|
|
use app\adminapi\controller\AuthController;
|
|
use app\jobs\OrderExpressJob;
|
|
use app\model\user\User;
|
|
use app\Request;
|
|
use app\services\user\LoginServices;
|
|
use app\services\crud\UserComplaintServices;
|
|
use crmeb\services\FileService;
|
|
use crmeb\services\SpreadsheetExcelService;
|
|
use mysql_xdevapi\Exception;
|
|
use think\exception\ValidateException;
|
|
use app\model\activity\advance\student;
|
|
use PhpOffice\PhpSpreadsheet\IOFactory;
|
|
use think\facade\Db;
|
|
|
|
class ComplaintController extends AuthController
|
|
{
|
|
protected $services = NUll;
|
|
|
|
|
|
public function __construct(UserComplaintServices $services)
|
|
{
|
|
$this->services = $services;
|
|
|
|
}
|
|
|
|
/**
|
|
* 投诉列表
|
|
*/
|
|
public function listComplaint(Request $request)
|
|
{
|
|
$uid = (int)$request->uid();
|
|
return app('json')->success($this->services->getCrudListIndex(['user_id', $uid]));
|
|
}
|
|
|
|
/**
|
|
* 投诉详情
|
|
*/
|
|
public function detailsComplaint(Request $request)
|
|
{
|
|
}
|
|
|
|
|
|
/**
|
|
* 添加投诉 上传模板
|
|
*/
|
|
public function addComplaint(Request $request)
|
|
{
|
|
$data = $request->post();
|
|
//wmc解析excel
|
|
if (!empty($data['type']) && $data['type'] == 1) {
|
|
|
|
$uploadDir = 'uploadsFile/';
|
|
if (!is_dir($uploadDir)) {
|
|
mkdir($uploadDir, 0777, true);
|
|
}
|
|
$tempName = $_FILES['file']['tmp_name'];
|
|
$targetName = $uploadDir . basename($_FILES['file']['name']);
|
|
$fileExtension = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
|
|
if ($fileExtension != 'xlsx') {
|
|
return 1;
|
|
}
|
|
|
|
// 将临时文件移动到目标位置
|
|
if (move_uploaded_file($tempName, $targetName)) {
|
|
$f = public_path() . $targetName;
|
|
$inputFileType = IOFactory::identify($f);
|
|
$reader = IOFactory::createReader($inputFileType);
|
|
|
|
$spreadSheet = $reader->load($f);
|
|
//获取第几张数据表,默认从0开始
|
|
$sheet = $spreadSheet->getSheet(0);
|
|
//获取最大行数
|
|
$rows = $sheet->getHighestRow();
|
|
//获取最大列数
|
|
$cols = $sheet->getHighestColumn();
|
|
//获取全量数据集,返回数组形式数据
|
|
$dataArr = $sheet->rangeToArray('A1:' . $cols . $rows);
|
|
Db::startTrans();
|
|
$user = $request->user()->toArray()['uid'];
|
|
$t = User::where('uid',$user)->find();
|
|
|
|
$school_id = $t['school_id'];
|
|
$classid = $t['class_id'];
|
|
|
|
foreach ($dataArr as $k => $v) {
|
|
if ($k != 0) {
|
|
$data2['account'] = $v[1];
|
|
$data2['pwd'] = md5((string)'qq111111');
|
|
$data2['phone'] = $v[1];
|
|
$data2['group_id'] = 4;
|
|
$data2['school_id'] = $school_id;
|
|
$data2['bind_user_id'] = 0;
|
|
$data2['class_id'] = $classid;
|
|
$data2['real_name'] = $v[0];
|
|
$data2['birthday'] = 0;
|
|
$data2['card_id'] = '';
|
|
$data2['mark'] = '';
|
|
$data2['addres'] = '';
|
|
$data2['user_type'] = 'h5';
|
|
$data2['add_time'] = time();
|
|
$data2['add_ip'] = app('request')->ip();
|
|
$data2['last_time'] = time();
|
|
$data2['last_ip'] = app('request')->ip();
|
|
$data2['nickname'] = substr_replace($v[1], '****', 3, 4);
|
|
$data2['avatar'] = sys_config('h5_avatar');
|
|
|
|
$data2['status'] = 1;
|
|
|
|
$registerStatus = User::insert($data2);
|
|
|
|
if (!$registerStatus) {
|
|
Db::rollback();
|
|
return 1;
|
|
}
|
|
}
|
|
}
|
|
Db::commit();
|
|
return 2;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
//绑定亲属
|
|
if (!empty($data['type']) && $data['type'] == 2) {
|
|
$c = User::where([
|
|
'phone'=>$data['phone'],
|
|
'is_del'=>0
|
|
])->find();
|
|
if($c){
|
|
return app('json')->fail('号码已被注册');
|
|
}
|
|
$user = $request->user()->toArray()['uid'];
|
|
$t = User::where('uid',$user)->find();
|
|
$school_id = $t['school_id'];
|
|
$classid = $t['class_id'];
|
|
|
|
$data2['account'] = $data['phone'];
|
|
$data2['pwd'] = md5((string)'qq111111');
|
|
$data2['phone'] = $data['phone'];
|
|
$data2['group_id'] = 3;
|
|
$data2['school_id'] = $school_id;
|
|
$data2['bind_user_id'] = 0;
|
|
$data2['class_id'] = $classid;
|
|
$data2['real_name'] = $t['nickname'].'的亲属';
|
|
$data2['birthday'] = 0;
|
|
$data2['card_id'] = '';
|
|
$data2['mark'] = '';
|
|
$data2['addres'] = '';
|
|
$data2['user_type'] = 'h5';
|
|
$data2['add_time'] = time();
|
|
$data2['add_ip'] = app('request')->ip();
|
|
$data2['last_time'] = time();
|
|
$data2['last_ip'] = app('request')->ip();
|
|
$data2['nickname'] = substr_replace($data['phone'], '****', 3, 4);
|
|
$data2['avatar'] = sys_config('h5_avatar');
|
|
|
|
$data2['status'] = 1;
|
|
|
|
$registerStatus = User::insert($data2);
|
|
if($registerStatus){
|
|
return app('json')->success('成功');
|
|
}
|
|
return app('json')->fail('失败');
|
|
}
|
|
if (empty($data['content'])) {
|
|
return app('json')->fail(100100);
|
|
}
|
|
if (!empty($data['image'])) {
|
|
// 去除 base64 编码的前缀(如果有的话)
|
|
$decodedData = base64_decode($data['image']);
|
|
$imageName = uniqid() . '.png'; // 使用 uniqid 生成唯一的文件名
|
|
$savePath = 'uploads/' . $imageName; // 指定保存目录和文件名
|
|
// 将解码后的数据保存为文件
|
|
if (file_put_contents($savePath, $decodedData)) {
|
|
// 图片保存成功,获取图片地址
|
|
$imageUrl = 'http://' . $_SERVER['HTTP_HOST'] . '/uploads/' . $imageName;
|
|
$data['image'] = $imageUrl;
|
|
}
|
|
|
|
}
|
|
|
|
$user = $request->user()->toArray();
|
|
$data['school_id'] = $user['school_id'];
|
|
$data['user_id'] = $user['uid'];
|
|
$data['user_name'] = $user['real_name'];
|
|
$data['school_name'] = $this->services->getSchoolData($user['school_id'])['school_name'];
|
|
$this->services->crudSave($data);
|
|
return app('json')->success(100017);
|
|
}
|
|
}
|
|
|