|
@@ -31,6 +31,8 @@ use App\Model\Size;
|
|
|
use function Hyperf\Support\retry;
|
|
|
use Hyperf\Paginator\Paginator;
|
|
|
use App\Model\User;
|
|
|
+use App\Model\Website;
|
|
|
+
|
|
|
#[RpcService(name: "PublicRpcService", protocol: "jsonrpc-http", server: "jsonrpc-http")]
|
|
|
class PublicRpcService implements PublicRpcServiceInterface
|
|
|
{
|
|
@@ -672,8 +674,10 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
$count = $template->count();
|
|
|
// $countQuery = clone $template;
|
|
|
$row = $template
|
|
|
- ->leftJoin('template', 'template_class.id', '=', 'template.template_class_id')
|
|
|
- ->select('template_class.*', DB::raw('COUNT(template.id) as template_count'))
|
|
|
+ ->leftJoin('template', function ($join) {
|
|
|
+ $join->on('template_class.class_id', '=', 'template.template_class_id');
|
|
|
+ })
|
|
|
+ ->select('template_class.*', DB::raw('COUNT(template.template_class_id) as template_count'))
|
|
|
->groupBy('template_class.id')
|
|
|
->orderBy('template_class.id', 'desc')
|
|
|
->offset(($data['page'] - 1) * $data['pageSize'])
|
|
@@ -765,25 +769,35 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
$where = [
|
|
|
'id' => $data['id'],
|
|
|
];
|
|
|
- $template = TemplateClass::where($where)->first();
|
|
|
- if (empty($template)) {
|
|
|
+ $template_class = TemplateClass::where($where)->first();
|
|
|
+ if (empty($template_class)) {
|
|
|
return Result::error("未查询到风格", 0);
|
|
|
}
|
|
|
- if($template->type == 1){
|
|
|
+ if($template_class->type == 1){
|
|
|
return Result::error("默认风格不能删除", 0);
|
|
|
}
|
|
|
-
|
|
|
- try{
|
|
|
- // 默认风格 1
|
|
|
- $template = Template::where('template_class_id',$data['id'])->update(['template_class_id'=>1]);
|
|
|
- if(empty($template)){
|
|
|
- Db::rollBack();
|
|
|
- return Result::error("删除失败", 0);
|
|
|
+ $template = Template::where('template_class_id',$template_class['class_id'])->get();
|
|
|
+ if(!empty($template->all())){
|
|
|
+ try{
|
|
|
+ // 默认风格 1
|
|
|
+ Db::beginTransaction();
|
|
|
+ $template = Template::where('template_class_id',$template['class_id'])->update(['template_class_id'=>1]);
|
|
|
+
|
|
|
+ if(empty($template)){
|
|
|
+ Db::rollBack();
|
|
|
+ return Result::error("删除失败", 0);
|
|
|
+ }
|
|
|
+ $result = TemplateClass::where($where)->delete();
|
|
|
+ }catch (\Exception $e){
|
|
|
+ return Result::error("删除失败".$e->getMessage(), 0);
|
|
|
}
|
|
|
- $result = TemplateClass::where($where)->delete();
|
|
|
- }catch (\Exception $e){
|
|
|
- return Result::error("删除失败".$e->getMessage(), 0);
|
|
|
+ }else{
|
|
|
+ $result = TemplateClass::where('id',$data['id'])->delete();
|
|
|
+ }
|
|
|
+ if(empty($result)){
|
|
|
+ return Result::error("删除失败", 0);
|
|
|
}
|
|
|
+
|
|
|
return Result::success($result);
|
|
|
}
|
|
|
/**
|
|
@@ -793,7 +807,11 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
*/
|
|
|
public function getTemplateClass(array $data): array
|
|
|
{
|
|
|
- $result = TemplateClass::where('name','like','%'.$data['template_name'].'%')->get();
|
|
|
+ $where = [];
|
|
|
+ if (!empty($data['template_name'])) {
|
|
|
+ $where['name'] = $data['template_name'];
|
|
|
+ }
|
|
|
+ $result = TemplateClass::where($where)->get();
|
|
|
if(empty($result)){
|
|
|
return Result::error("暂无风格", 0);
|
|
|
}
|
|
@@ -871,7 +889,14 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
{
|
|
|
$rector = Sector::where('template_id', $data['id'])->first();
|
|
|
if (!empty($rector)) {
|
|
|
- return Result::error("此皮肤已被绑定,不可删除", 0);
|
|
|
+ return Result::error("此皮肤已被绑定通栏,不可删除", 0);
|
|
|
+ }
|
|
|
+ $template = WebsiteTemplateInfo::where('template_id', $data['id'])->first();
|
|
|
+ if(empty($template)){
|
|
|
+ return Result::error("此皮肤已被绑定网站,不可删除", 0);
|
|
|
+ }
|
|
|
+ if($template->type == 1){
|
|
|
+ return Result::error("默认皮肤不能删除", 0);
|
|
|
}
|
|
|
$result = Template::where('id', $data['id'])->delete();
|
|
|
var_dump($result, '-------------------delete');
|
|
@@ -1280,7 +1305,7 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
$result = WebsiteTemplateInfo::insertGetId(['website_id' => $data['website_id'], 'page_type' => $page_type, 'user_id' => $data['user_id']]);
|
|
|
|
|
|
}else{
|
|
|
- if($website_template_info['action_id'] == 2){
|
|
|
+ if($website_template_info['status'] == 2){
|
|
|
return Result::error('网站已应用,不可再次修改!');
|
|
|
}
|
|
|
$result = WebsiteTemplateInfo::where('website_id', $data['website_id'])->update(['page_type' => $page_type],['action_id' => 1,'user_id' => $data['user_id']]);
|
|
@@ -1323,6 +1348,8 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
$escapedKeyword = addcslashes($data['keyword'], '%_'); // 转义通配符
|
|
|
$where[] = [DB::raw("JSON_EXTRACT(template_keyword, '$[*]') LIKE ?"), "%$escapedKeyword%"];
|
|
|
}
|
|
|
+ }else{
|
|
|
+ $query = Template::where($where);
|
|
|
}
|
|
|
$template_id = WebsiteTemplateInfo::where('website_id', $data['website_id'])->first(['template_id', 'page_type']);
|
|
|
// return Result::success($template_id);
|
|
@@ -1336,16 +1363,11 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
}
|
|
|
// 确保 $template_page 为有效数据,避免 SQL 注入风险,这里使用参数绑定
|
|
|
$template_page_str = json_encode($template_page);
|
|
|
- if (isset($query)) {
|
|
|
- $result['template'] = $query->where($where)
|
|
|
- ->whereRaw("JSON_CONTAINS(template.page_type, ?)", [$template_page_str])
|
|
|
- ->paginate($data['page_size'], ['*'], 'page', $data['page']);
|
|
|
- } else {
|
|
|
- $result['template'] = Template::where($where)
|
|
|
- ->whereRaw("JSON_CONTAINS(template.page_type, ?)", [$template_page_str])
|
|
|
- ->paginate($data['page_size'], ['*'], 'page', $data['page']);
|
|
|
- }
|
|
|
- if (empty($result['template']['data'])) {
|
|
|
+ $result['template'] = $query->where($where)
|
|
|
+ ->whereRaw("JSON_CONTAINS(template.page_type, ?)", [$template_page_str])
|
|
|
+ ->orderBy('updated_at','desc')
|
|
|
+ ->paginate($data['page_size'], ['*'], 'page', $data['page']);
|
|
|
+ if (empty($result['template'])) {
|
|
|
$result['template'] = Template::orderBy('updated_at','desc')
|
|
|
->paginate($data['page_size'], ['*'], 'page', $data['page']);
|
|
|
}
|
|
@@ -1391,6 +1413,7 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
*/
|
|
|
public function saveWebsiteTemplate(array $data): array
|
|
|
{
|
|
|
+ // return Result::success($data);
|
|
|
$website_template_info = WebsiteTemplateInfo::where('website_id', $data['website_id'])->first();
|
|
|
if(empty($website_template_info)){
|
|
|
return Result::error('请先填写网站基础信息!');
|
|
@@ -1403,20 +1426,50 @@ class PublicRpcService implements PublicRpcServiceInterface
|
|
|
return Result::error('请完成之前的步骤!');
|
|
|
}
|
|
|
$template_info = WebsiteTemplate::where('website_id', $data['website_id'])->first();
|
|
|
- var_dump($data['template_data']);
|
|
|
- if(empty($template_info)){
|
|
|
- $template = WebsiteTemplate::insertGetId([
|
|
|
- 'website_id' => $data['website_id'],
|
|
|
- 'template_data' => $data['template_data']
|
|
|
- ]);
|
|
|
- }else{
|
|
|
- $template = WebsiteTemplate::where('website_id', $data['website_id'])->update(['template_data' => $data['template_data']]);
|
|
|
+ // var_dump($data['template_data']);
|
|
|
+ try{
|
|
|
+ Db::beginTransaction();
|
|
|
+ if(empty($template_info)){
|
|
|
+ $template = WebsiteTemplate::insertGetId([
|
|
|
+ 'website_id' => $data['website_id'],
|
|
|
+ 'template_data' => $data['template_data'],
|
|
|
+ 'user_id' => $data['user_id'],
|
|
|
+ 'canvas_data' => $data['canvas_data'],
|
|
|
+ ]);
|
|
|
+ }else{
|
|
|
+ $template = WebsiteTemplate::where('website_id', $data['website_id'])->update(['template_data' => $data['template_data'],'user_id' => $data['user_id'],'canvas_data' => $data['canvas_data']]);
|
|
|
+ }
|
|
|
+ if(empty($template)){
|
|
|
+ Db::rollback();
|
|
|
+ return Result::error('保存失败!');
|
|
|
+ }else{
|
|
|
+ $tempalte_info = WebsiteTemplateInfo::where('website_id', $data['website_id'])->update(['status' => 1]);
|
|
|
+ if(empty($tempalte_info)){
|
|
|
+ Db::rollback();
|
|
|
+ return Result::error('保存失败!');
|
|
|
+ }
|
|
|
+ Db::commit();
|
|
|
+ }
|
|
|
+ }catch (\Exception $e){
|
|
|
+ return Result::error('模版数据格式错误!');
|
|
|
+ }
|
|
|
+ return Result::success($template);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 自助建站---流程---6.返显保存的模版
|
|
|
+ * @param array $data
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function getWebsiteTemplate(array $data): array
|
|
|
+ {
|
|
|
+ $web = Website::where('id', $data['website_id'])->first();
|
|
|
+ if(empty($web)){
|
|
|
+ return Result::error('未查询到网站信息!');
|
|
|
}
|
|
|
+ $template = WebsiteTemplate::where('website_id', $data['website_id'])->first();
|
|
|
if(empty($template)){
|
|
|
- return Result::error('保存失败!');
|
|
|
- }else{
|
|
|
- return Result::success($template);
|
|
|
+ return Result::error('未查询到模版!');
|
|
|
}
|
|
|
+ return Result::success($template);
|
|
|
}
|
|
|
-
|
|
|
}
|