作者堆叠 专刊

This commit is contained in:
wyn
2026-07-29 17:05:42 +08:00
parent f583f67e24
commit 1ee795b6b9
10 changed files with 2833 additions and 141 deletions

View File

@@ -2081,7 +2081,149 @@ class User extends Base
$re['user'] = $user_info;
return jsonSuccess($re);
}
public function createUserForEditor(){
$data = $this->request->post();
$rule = new Validate([
"email"=>"require",
"address"=>"require",
"firstname"=>"require",
"lastname"=>"require",
"intro"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$account = isset($data['account'])?$data['account']:$data['email'];
$email = $data['email'];
$res_once = $this->user_obj->where("account='$account' or email = '$email'")->find();
if ($res_once != null) {
return json('existence');
}
Db::startTrans();
$inser_data['account'] = trim($account);
$inser_data['password'] = md5(isset($data['password'])?$data['password']:"123456qwe");
$inser_data['email'] = $email;
if(isset($data['phone']))$inser_data['phone'] = $data['phone'];
if(isset($data['orcid']))$inser_data['orcid'] = $data['orcid'];
$inser_data['realname'] = $data['firstname']." ".$data['lastname'];
$inser_data['icon'] = $data['icon'];
$inser_data['ctime'] = time();
$inser_data['openid'] = "";
$id = $this->user_obj->insertGetId($inser_data);
//存入个人额外信息
$insert_reviewer['reviewer_id'] = $id;
$insert_reviewer['test_from'] = "kzeditor";
$insert_reviewer['address'] = $data['address'];
$insert_reviewer['introduction'] = $data['intro'];
$insert_reviewer['firstname'] = $data['firstname'];
$insert_reviewer['lastname'] = $data['lastname'];
if(isset($data['website']))$insert_reviewer['website'] = $data['website'];
if(isset($data['interests']))$insert_reviewer['interests'] = $data['interests'];
$r_res = $this->user_reviewer_info_obj->insert($insert_reviewer);
if($id&&$r_res){
Db::commit();
return jsonSuccess($id);
}else{
Db::rollback();
return jsonError("system error");
}
}
/**
* 修改客座编辑本地资料
* t_user: orcid、phone、realname(firstname lastname)、icon
* t_user_reviewer_info: address、interests、firstname、lastname、introduction(intro)
*/
public function updateUserForEditor()
{
$data = $this->request->post();
$rule = new Validate([
'user_id' => 'require|number',
'firstname' => 'require',
'lastname' => 'require',
'intro' => 'require',
]);
if (!$rule->check($data)) {
return jsonError($rule->getError());
}
$userId = intval($data['user_id']);
$user = $this->user_obj->where('user_id', $userId)->where('state', 0)->find();
if (!$user) {
return jsonError('user not found');
}
Db::startTrans();
try {
$firstName = trim((string)$data['firstname']);
$lastName = trim((string)$data['lastname']);
$userUpdate = [
'realname' => trim($firstName . ' ' . $lastName),
];
if (isset($data['orcid'])) {
$userUpdate['orcid'] = trim((string)$data['orcid']);
}
if (isset($data['phone'])) {
$userUpdate['phone'] = trim((string)$data['phone']);
}
if (isset($data['icon'])) {
$userUpdate['icon'] = trim((string)$data['icon']);
}
$upUser = $this->user_obj->where('user_id', $userId)->update($userUpdate);
if ($upUser === false) {
throw new \Exception('update t_user failed');
}
$reviewerInfo = $this->user_reviewer_info_obj
->where('reviewer_id', $userId)
->where('state', 0)
->find();
$reviewerUpdate = [
'firstname' => $firstName,
'lastname' => $lastName,
];
if (isset($data['address'])) {
$reviewerUpdate['address'] = trim((string)$data['address']);
}
if (isset($data['website'])) {
$reviewerUpdate['website'] = trim((string)$data['website']);
}
if (isset($data['interests'])) {
$reviewerUpdate['interests'] = trim((string)$data['interests']);
}
$reviewerUpdate['introduction'] = trim((string)$data['intro']);
if ($reviewerInfo) {
$upReviewer = $this->user_reviewer_info_obj
->where('reviewer_id', $userId)
->where('state', 0)
->update($reviewerUpdate);
if ($upReviewer === false) {
throw new \Exception('update t_user_reviewer_info failed');
}
} else {
$reviewerUpdate['reviewer_id'] = $userId;
$reviewerUpdate['test_from'] = 'kzeditor';
$insReviewer = $this->user_reviewer_info_obj->insert($reviewerUpdate);
if (!$insReviewer) {
throw new \Exception('insert t_user_reviewer_info failed');
}
}
Db::commit();
return jsonSuccess([
'user_id' => $userId,
'updated' => 1,
]);
} catch (\Exception $e) {
Db::rollback();
return jsonError($e->getMessage());
}
}
/**
* 注册功能
*/
@@ -3370,4 +3512,17 @@ class User extends Base
}
return implode("\n", $lines);
}
public function up_editorIcon_file()
{
$file = request()->file('icon');
if ($file) {
$info = $file->move(ROOT_PATH . 'public' . DS . 'usericon');
if ($info) {
return json(['code' => 0, 'upurl' => str_replace("\\", "/", $info->getSaveName())]);
} else {
return json(['code' => 1, 'msg' => $file->getError()]);
}
}
}
}