mirror of
https://gitee.com/dromara/RuoYi-Vue-Plus.git
synced 2026-09-18 01:25:28 +08:00
在线h5开发
This commit is contained in:
parent
6f04adaa83
commit
75b9a2edc2
@ -1,18 +1,20 @@
|
||||
package com.luban.api.controller;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.dromara.md.form.api.constant.BaseConstant;
|
||||
import com.dromara.md.form.utils.TenantHelper;
|
||||
import com.luban.api.constant.ProjectStatus;
|
||||
import com.luban.api.dto.H5ProjectContentDTO;
|
||||
import com.luban.api.dto.query.H5ProjectQueryDTO;
|
||||
import com.luban.api.entity.H5Project;
|
||||
import com.luban.api.service.H5FormService;
|
||||
import com.luban.api.service.H5ProjectService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.satoken.utils.LoginHelper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
@ -34,19 +36,17 @@ public class H5ProjectController {
|
||||
|
||||
@Autowired
|
||||
private H5ProjectService h5ProjectService;
|
||||
@Autowired
|
||||
private H5FormService h5FormService;
|
||||
|
||||
/**
|
||||
* 查询所有H5项目
|
||||
*
|
||||
* @return H5项目列表
|
||||
*/
|
||||
@Operation(summary = "查询所有H5项目")
|
||||
@GetMapping
|
||||
public List<H5Project> listAllH5Projects() {
|
||||
return h5ProjectService.list();
|
||||
}
|
||||
// /**
|
||||
// * 查询所有H5项目
|
||||
// *
|
||||
// * @return H5项目列表
|
||||
// */
|
||||
// @Operation(summary = "查询所有H5项目")
|
||||
// @GetMapping
|
||||
// public List<H5Project> listAllH5Projects() {
|
||||
// return h5ProjectService.list();
|
||||
// }
|
||||
|
||||
/**
|
||||
* 分页查询H5项目
|
||||
@ -76,91 +76,68 @@ public class H5ProjectController {
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建H5项目
|
||||
* 创建或更新H5项目
|
||||
*
|
||||
* @param id H5项目ID,为空时创建,不为空时更新
|
||||
* @param request 包含H5项目信息和内容的请求
|
||||
* @return 项目ID
|
||||
*/
|
||||
@Operation(summary = "创建H5项目")
|
||||
@PostMapping
|
||||
public Long createH5Project(@RequestBody CreateH5ProjectRequest request) {
|
||||
H5Project h5Project = new H5Project();
|
||||
h5Project.setType(request.getType());
|
||||
h5Project.setTitle(request.getTitle());
|
||||
h5Project.setContentUpdatedAt(request.getContentUpdatedAt());
|
||||
h5Project.setDescription(request.getDescription());
|
||||
h5Project.setPreviewUrl(request.getPreviewUrl());
|
||||
h5Project.setPreviewUrlWatermark(request.getPreviewUrlWatermark());
|
||||
h5Project.setPreviewWidth(request.getPreviewWidth());
|
||||
h5Project.setPreviewHeight(request.getPreviewHeight());
|
||||
h5Project.setStatus(request.getStatus());
|
||||
h5Project.setCreatedBy(LoginHelper.getUserId());
|
||||
boolean success = h5ProjectService.saveH5ProjectWithContent(h5Project, request.getContent(), request.getGroupIds());
|
||||
if (success) {
|
||||
return h5Project.getId();
|
||||
@Operation(summary = "创建或更新H5项目")
|
||||
@PostMapping("/saveOrUpdate")
|
||||
public Long saveOrUpdate(@RequestParam(required = false) Long id, @RequestBody CreateH5ProjectRequest request) {
|
||||
H5Project h5Project;
|
||||
boolean isUpdate = id != null;
|
||||
|
||||
if (isUpdate) {
|
||||
h5Project = h5ProjectService.getById(id);
|
||||
if (h5Project == null) {
|
||||
throw new ServiceException("项目不存在");
|
||||
}
|
||||
if (h5Project.getStatus() != ProjectStatus.Draft.getValue()) {
|
||||
throw new ServiceException("只能更新草稿状态的项目");
|
||||
}
|
||||
BeanUtil.copyProperties(request, h5Project);
|
||||
} else {
|
||||
throw new RuntimeException("创建项目失败");
|
||||
h5Project = BeanUtil.copyProperties(request, H5Project.class);
|
||||
h5Project.setStatus(ProjectStatus.Draft.getValue());
|
||||
h5Project.setCreatedBy(LoginHelper.getUserId());
|
||||
}
|
||||
|
||||
boolean success;
|
||||
if (isUpdate) {
|
||||
success = h5ProjectService.updateH5ProjectWithContent(h5Project, request.getContent(), request.getGroupIds());
|
||||
} else {
|
||||
success = h5ProjectService.saveH5ProjectWithContent(h5Project, request.getContent(), request.getGroupIds());
|
||||
}
|
||||
|
||||
if (!success) {
|
||||
throw new ServiceException(isUpdate ? "更新项目失败" : "创建项目失败");
|
||||
}
|
||||
return h5Project.getId();
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新H5项目
|
||||
* 更新H5项目状态
|
||||
*
|
||||
* @param id H5项目ID
|
||||
* @param request 包含H5项目信息和内容的请求
|
||||
* @param id H5项目ID
|
||||
* @param status 状态值
|
||||
* @return 是否更新成功
|
||||
*/
|
||||
@Operation(summary = "更新 H5 项目")
|
||||
@PostMapping("/update/{id}")
|
||||
public Boolean updateH5Project(@PathVariable Long id, @RequestBody CreateH5ProjectRequest request) {
|
||||
@Operation(summary = "更新H5项目状态")
|
||||
@PostMapping("/updateStatus")
|
||||
public Boolean updateStatus(@RequestParam Long id, @RequestParam Integer status) {
|
||||
H5Project h5Project = h5ProjectService.getById(id);
|
||||
if (h5Project == null) {
|
||||
throw new RuntimeException("项目不存在");
|
||||
throw new ServiceException("项目不存在");
|
||||
}
|
||||
|
||||
h5Project.setType(request.getType());
|
||||
h5Project.setTitle(request.getTitle());
|
||||
h5Project.setContentUpdatedAt(request.getContentUpdatedAt());
|
||||
h5Project.setDescription(request.getDescription());
|
||||
h5Project.setPreviewUrl(request.getPreviewUrl());
|
||||
h5Project.setPreviewUrlWatermark(request.getPreviewUrlWatermark());
|
||||
h5Project.setPreviewWidth(request.getPreviewWidth());
|
||||
h5Project.setPreviewHeight(request.getPreviewHeight());
|
||||
h5Project.setStatus(request.getStatus());
|
||||
|
||||
return h5ProjectService.updateH5ProjectWithContent(h5Project, request.getContent(), request.getGroupIds());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 更新H5项目
|
||||
*
|
||||
* @param id H5项目ID
|
||||
* @param request 包含H5项目信息和内容的请求
|
||||
* @return 是否更新成功
|
||||
*/
|
||||
@Operation(summary = "更新状态")
|
||||
@PostMapping("updateStatus")
|
||||
public Boolean updateStatus(@RequestParam Long id, @RequestBody CreateH5ProjectRequest request) {
|
||||
H5Project h5Project = h5ProjectService.getById(id);
|
||||
if (h5Project == null) {
|
||||
throw new RuntimeException("项目不存在");
|
||||
Long currentUserId = LoginHelper.getUserId();
|
||||
if (!currentUserId.equals(h5Project.getCreatedBy())) {
|
||||
throw new ServiceException("无权限操作此项目");
|
||||
}
|
||||
|
||||
h5Project.setType(request.getType());
|
||||
h5Project.setTitle(request.getTitle());
|
||||
h5Project.setContentUpdatedAt(request.getContentUpdatedAt());
|
||||
h5Project.setDescription(request.getDescription());
|
||||
h5Project.setPreviewUrl(request.getPreviewUrl());
|
||||
h5Project.setPreviewUrlWatermark(request.getPreviewUrlWatermark());
|
||||
h5Project.setPreviewWidth(request.getPreviewWidth());
|
||||
h5Project.setPreviewHeight(request.getPreviewHeight());
|
||||
h5Project.setStatus(request.getStatus());//TODO 改成发布状态
|
||||
|
||||
//获取表单并保存
|
||||
h5FormService.saveForm(request.getContent());
|
||||
|
||||
return h5ProjectService.updateH5ProjectWithContent(h5Project, request.getContent(), request.getGroupIds());
|
||||
h5Project.setStatus(status);
|
||||
return h5ProjectService.updateById(h5Project);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -190,7 +167,6 @@ public class H5ProjectController {
|
||||
private String previewUrlWatermark;
|
||||
private Integer previewWidth;
|
||||
private Integer previewHeight;
|
||||
private Integer status;
|
||||
private List<Long> groupIds;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user