初始代码

This commit is contained in:
wangmingwei
2026-04-21 16:49:46 +08:00
parent aae9dc4036
commit f0453ff3a3
2396 changed files with 256575 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>yunzhupaas-visualdev-onlinedev</artifactId>
<groupId>com.yunzhupaas</groupId>
<version>5.2.0-RELEASE</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>yunzhupaas-visualdev-onlinedev-controller</artifactId>
<dependencies>
<dependency>
<groupId>com.yunzhupaas</groupId>
<artifactId>yunzhupaas-visualdev-onlinedev-biz</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.yunzhupaas</groupId>
<artifactId>yunzhupaas-visualdev-integrate-biz</artifactId>
<version>${project.version}</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,58 @@
package com.yunzhupaas.onlinedev.controller;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import com.yunzhupaas.base.ActionResult;
import com.yunzhupaas.base.vo.PageListVO;
import com.yunzhupaas.base.vo.PaginationVO;
import com.yunzhupaas.onlinedev.entity.VisualLogEntity;
import com.yunzhupaas.onlinedev.model.log.VisualLogPage;
import com.yunzhupaas.onlinedev.model.log.VisualLogVo;
import com.yunzhupaas.onlinedev.service.VisualLogService;
import com.yunzhupaas.permission.entity.UserEntity;
import com.yunzhupaas.permission.service.UserService;
import com.yunzhupaas.util.DateUtil;
import com.yunzhupaas.util.JsonUtil;
import com.yunzhupaas.util.UploaderUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@Slf4j
@Tag(name = "在线开发数据日志", description = "OnlineLog")
@RestController
@RequestMapping("/api/visualdev/OnlineLog")
public class VisualLogController {
@Autowired
private VisualLogService visualLogService;
@Autowired
private UserService userService;
@Operation(summary = "列表")
@GetMapping
public ActionResult<PageListVO<VisualLogVo>> list(VisualLogPage page) {
List<VisualLogEntity> list = visualLogService.getLogList(page);
List<String> userId = list.stream().map(t -> t.getCreatorUserId()).collect(Collectors.toList());
List<UserEntity> userList = userService.getUserName(userId);
List<VisualLogVo> listVo = new ArrayList<>();
for (VisualLogEntity entity : list) {
VisualLogVo vo = JsonUtil.getJsonToBean(entity, VisualLogVo.class);
UserEntity userEntity = userList.stream().filter(t -> vo.getCreatorUserId().equals(t.getId())).findFirst().orElse(null);
if (userEntity != null) {
vo.setCreatorUserName(userEntity.getRealName());
vo.setHeadIcon(UploaderUtil.uploaderImg(userEntity.getHeadIcon()));
}
vo.setCreatorTime(DateUtil.dateToString(entity.getCreatorTime(), "yyyy-MM-dd HH:mm"));
listVo.add(vo);
}
PaginationVO paginationVO = JsonUtil.getJsonToBean(page, PaginationVO.class);
return ActionResult.page(listVo, paginationVO);
}
}

View File

@@ -0,0 +1,154 @@
package com.yunzhupaas.onlinedev.controller;
import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.core.util.ObjectUtil;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import com.yunzhupaas.base.ActionResult;
import com.yunzhupaas.constant.MsgCode;
import com.yunzhupaas.onlinedev.entity.VisualPersonalEntity;
import com.yunzhupaas.onlinedev.model.personalList.*;
import com.yunzhupaas.onlinedev.service.VisualPersonalService;
import com.yunzhupaas.util.JsonUtil;
import com.yunzhupaas.util.RandomUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 个性化列表视图控制器
*
* @author 云筑产品开发平台组
* @version v5.1.0
* @copyright 深圳市乐程软件有限公司
* @date 2024/11/6 10:25:31
*/
@Slf4j
@Tag(name = "在线开发个性化列表", description = "OnlinePersonal")
@RestController
@RequestMapping("/api/visualdev/personal")
public class VisualPersonalController {
@Autowired
private VisualPersonalService visualPersonalService;
@Operation(summary = "列表")
@Parameters({
@Parameter(name = "menuId", description = "菜单id")
})
@GetMapping
public ActionResult getList(VisualPersPagiantion pagiantion) {
StpUtil.checkPermissionOr(pagiantion.getMenuId());
List<VisualPersonalVo> listVo = visualPersonalService.getListVo(pagiantion.getMenuId());
return ActionResult.success(listVo);
}
@Operation(summary = "新建")
@Parameters({
@Parameter(name = "form", description = "个性化列表视图表单")
})
@PostMapping
public ActionResult create(@RequestBody VisualPersonalForm form) {
StpUtil.checkPermissionOr(form.getMenuId());
VisualPersonalEntity entity = JsonUtil.getJsonToBean(form, VisualPersonalEntity.class);
if (ObjectUtil.isEmpty(form.getId()) || VisualPersConst.SYSTEM_ID.equals(form.getId())) {
if (form.getFullName().length() > 6) {
return ActionResult.fail(MsgCode.EXIST005.get());
}
if (visualPersonalService.isExistByFullName(form.getFullName(), null, form.getMenuId())) {
return ActionResult.fail(MsgCode.EXIST001.get());
}
List<VisualPersonalEntity> list = visualPersonalService.getList(form.getMenuId());
if (list.size() >= 5) {
return ActionResult.fail(MsgCode.VS028.get());
}
entity.setId(RandomUtil.uuId());
entity.setStatus(0);
entity.setType(1);
visualPersonalService.save(entity);
}
return ActionResult.success(MsgCode.SU001.get(), entity.getId());
}
@Operation(summary = "详情")
@Parameters({
@Parameter(name = "id", description = "个性化id"),
@Parameter(name = "menuId", description = "菜单id"),
})
@GetMapping("/{id}")
public ActionResult info(@PathVariable("id") String id, VisualPersPagiantion pagiantion) {
StpUtil.checkPermissionOr(pagiantion.getMenuId());
VisualPersonalInfo info = visualPersonalService.getInfo(id);
return ActionResult.success(info);
}
@Operation(summary = "修改")
@Parameters({
@Parameter(name = "id", description = "视图id"),
@Parameter(name = "form", description = "表单数据")
})
@PutMapping("/{id}")
public ActionResult update(@PathVariable("id") String id, @RequestBody VisualPersonalForm form) {
StpUtil.checkPermissionOr(form.getMenuId());
if (visualPersonalService.getById(id) != null) {
if (form.getFullName().length() > 6) {
return ActionResult.fail(MsgCode.EXIST005.get());
}
if (visualPersonalService.isExistByFullName(form.getFullName(), id, form.getMenuId())) {
return ActionResult.fail(MsgCode.EXIST001.get());
}
VisualPersonalEntity entity = JsonUtil.getJsonToBean(form, VisualPersonalEntity.class);
boolean b = visualPersonalService.updateById(entity);
if (b) {
return ActionResult.success(MsgCode.SU004.get());
}
}
return ActionResult.success(MsgCode.FA002.get());
}
@Operation(summary = "设置默认")
@Parameters({
@Parameter(name = "id", description = "视图id"),
@Parameter(name = "menuId", description = "菜单id")
})
@PutMapping("/{id}/setDefault")
public ActionResult updateStatus(@PathVariable("id") String id, VisualPersPagiantion pagiantion) {
StpUtil.checkPermissionOr(pagiantion.getMenuId());
List<VisualPersonalEntity> list = visualPersonalService.getList(pagiantion.getMenuId());
for (VisualPersonalEntity entity : list) {
if (entity.getId().equals(id)) {
entity.setStatus(1);
} else {
entity.setStatus(0);
}
}
boolean b = visualPersonalService.updateBatchById(list);
if (b) {
return ActionResult.success(MsgCode.SU004.get());
}
return ActionResult.success(MsgCode.FA002.get());
}
@Operation(summary = "删除")
@Parameters({
@Parameter(name = "id", description = "视图id"),
@Parameter(name = "menuId", description = "菜单id")
})
@DeleteMapping("/{id}")
public ActionResult delete(@PathVariable("id") String id, VisualPersPagiantion pagiantion) {
StpUtil.checkPermissionOr(pagiantion.getMenuId());
if (visualPersonalService.getById(id) != null) {
boolean b = visualPersonalService.removeById(id);
if (b) {
return ActionResult.success(MsgCode.SU003.get());
}
}
return ActionResult.success(MsgCode.FA003.get());
}
}

View File

@@ -0,0 +1,197 @@
package com.yunzhupaas.onlinedev.controller;
import com.yunzhupaas.base.ActionResult;
import com.yunzhupaas.base.UserInfo;
import com.yunzhupaas.base.entity.VisualdevEntity;
import com.yunzhupaas.base.entity.VisualdevReleaseEntity;
import com.yunzhupaas.base.model.VisualDevJsonModel;
import com.yunzhupaas.base.model.flow.DataModel;
import com.yunzhupaas.base.model.flow.FlowFormDataModel;
import com.yunzhupaas.base.service.DbLinkService;
import com.yunzhupaas.base.service.FlowFormRelationService;
import com.yunzhupaas.base.service.VisualdevReleaseService;
import com.yunzhupaas.base.service.VisualdevService;
import com.yunzhupaas.base.util.FlowFormDataUtil;
import com.yunzhupaas.base.util.FlowFormHttpReqUtils;
import com.yunzhupaas.database.model.entity.DbLinkEntity;
import com.yunzhupaas.exception.DataException;
import com.yunzhupaas.onlinedev.model.OnlineInfoModel;
import com.yunzhupaas.onlinedev.model.PaginationModel;
import com.yunzhupaas.base.model.OnlineImport.VisualdevModelDataInfoVO;
import com.yunzhupaas.onlinedev.model.VisualParamModel;
import com.yunzhupaas.onlinedev.service.VisualDevInfoService;
import com.yunzhupaas.onlinedev.service.VisualDevListService;
import com.yunzhupaas.onlinedev.service.VisualdevModelDataService;
import com.yunzhupaas.onlinedev.util.onlineDevUtil.FlowFormCustomUtils;
import com.yunzhupaas.onlinedev.util.onlineDevUtil.OnlinePublicUtils;
import com.yunzhupaas.util.*;
import com.yunzhupaas.visual.service.VisualdevApi;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Component
public class VisualdevForFlowController implements VisualdevApi {
@Autowired
private VisualdevReleaseService visualdevReleaseService;
@Autowired
private VisualdevService visualdevService;
@Autowired
private VisualDevListService visualDevListService;
@Autowired
private VisualDevInfoService visualDevInfoService;
@Autowired
private FlowFormHttpReqUtils flowFormHttpReqUtils;
@Autowired
private FlowFormCustomUtils flowFormCustomUtils;
@Autowired
private FlowFormDataUtil flowDataUtil;
@Autowired
private DbLinkService dblinkService;
@Autowired
private FlowFormRelationService flowFormRelationService;
@Autowired
private VisualdevModelDataService visualdevModelDataService;
@Override
public ActionResult saveOrUpdate(FlowFormDataModel flowFormDataModel) {
DataModel dataModel = null;
try {
String id = flowFormDataModel.getId();
String formId = flowFormDataModel.getFormId();
String flowId = flowFormDataModel.getFlowId();
Map<String, Object> map = flowFormDataModel.getMap();
List<Map<String, Object>> formOperates = flowFormDataModel.getFormOperates();
VisualdevReleaseEntity entity = visualdevReleaseService.getById(formId);
VisualdevEntity visualdevEntity = JsonUtil.getJsonToBean(entity, VisualdevEntity.class);
map.put(FlowFormConstant.FLOWID, flowId);
if (map.get(TableFeildsEnum.VERSION.getField().toUpperCase()) != null) {//针对Oracle数据库大小写敏感出现大写字段补充修复
map.put(TableFeildsEnum.VERSION.getField(), map.get(TableFeildsEnum.VERSION.getField().toUpperCase()));
}
//系统表单
if (entity.getType() == 2) {
map.put("formOperates", formOperates);
flowFormHttpReqUtils.saveOrUpdate(visualdevEntity, id, UserProvider.getToken(), map);
} else {
try {
dataModel = flowFormCustomUtils.saveOrUpdate(visualdevEntity, flowFormDataModel);
} catch (SQLException sqlException) {
sqlException.printStackTrace();
} catch (DataException e) {
e.printStackTrace();
}
}
} catch (Exception e) {
e.printStackTrace();
return ActionResult.fail(e.getMessage());
}
return ActionResult.success(dataModel);
}
@Override
public boolean delete(String formId, String id) {
try {
VisualdevReleaseEntity entity = visualdevReleaseService.getById(formId);
VisualdevEntity visualdevEntity = JsonUtil.getJsonToBean(entity, VisualdevEntity.class);
//系统表单
if (entity.getType() == 2) {
flowFormHttpReqUtils.delete(visualdevEntity, id, UserProvider.getToken());
} else {
VisualDevJsonModel visualJsonModel = OnlinePublicUtils.getVisualJsonModel(visualdevEntity);
DbLinkEntity linkEntity = StringUtil.isNotEmpty(visualdevEntity.getDbLinkId()) ? dblinkService.getInfo(visualdevEntity.getDbLinkId()) : null;
flowDataUtil.deleteTable(id, visualJsonModel, linkEntity);
}
} catch (Exception e) {
return false;
}
return true;
}
@Override
public ActionResult info(String formId, String id) {
ActionResult result = new ActionResult();
Map<String, Object> allDataMap = new HashMap();
VisualdevReleaseEntity entity = visualdevReleaseService.getById(formId);
VisualdevEntity visualdevEntity = JsonUtil.getJsonToBean(entity, VisualdevEntity.class);
result.setCode(visualdevEntity == null ? 400 : 200);
result.setMsg(visualdevEntity == null ? "表单信息不存在" : "");
if (visualdevEntity != null) {
//判断是否为系统表单
boolean b = visualdevEntity.getType() == 2;
if (b) {
allDataMap.putAll(flowFormHttpReqUtils.info(visualdevEntity, id, UserProvider.getToken()));
} else {
allDataMap.putAll(flowFormCustomUtils.info(visualdevEntity, id));
}
}
result.setData(allDataMap);
return result;
}
@Override
public VisualdevEntity getFormConfig(String formId) {
VisualdevReleaseEntity entity = visualdevReleaseService.getById(formId);
VisualdevEntity visualdevEntity = JsonUtil.getJsonToBean(entity, VisualdevEntity.class);
return visualdevEntity;
}
@Override
public List<VisualdevEntity> getFormConfigList(List<String> formIds) {
List<VisualdevReleaseEntity> list = visualdevReleaseService.selectByIds(formIds,
VisualdevReleaseEntity::getId,
VisualdevReleaseEntity::getEnCode,
VisualdevReleaseEntity::getFullName,
VisualdevReleaseEntity::getType);
return CollectionUtils.isNotEmpty(list) ? JsonUtil.getJsonToList(list, VisualdevEntity.class) : new ArrayList<>();
}
@Override
public void saveFlowIdByFormIds(String flowId, List<String> formIds) {
flowFormRelationService.saveFlowIdByFormIds(flowId, formIds);
}
@Override
public VisualdevEntity getReleaseInfo(String formId) {
return visualdevService.getReleaseInfo(formId);
}
@Override
public List<Map<String, Object>> getListWithTableList(VisualDevJsonModel visualDevJsonModel, PaginationModel pagination, UserInfo userInfo) {
return visualDevListService.getListWithTableList(visualDevJsonModel, pagination, userInfo);
}
@Override
public VisualdevModelDataInfoVO getEditDataInfo(String id, VisualdevEntity visualdevEntity) {
return visualDevInfoService.getEditDataInfo(id, visualdevEntity, OnlineInfoModel.builder().build());
}
@Override
public DataModel visualCreate(VisualParamModel model) throws Exception {
return visualdevModelDataService.visualCreate(VisualParamModel.builder().visualdevEntity(model.getVisualdevEntity()).data(model.getData()).build());
}
@Override
public DataModel visualUpdate(VisualParamModel model) throws Exception {
return visualdevModelDataService.visualUpdate(model);
}
@Override
public void visualDelete(VisualParamModel model) throws Exception {
visualdevModelDataService.visualDelete(model.getVisualdevEntity(), model.getDataList());
}
@Override
public void deleteByTableName(FlowFormDataModel model) throws Exception {
visualdevModelDataService.deleteByTableName(model);
}
}

View File

@@ -0,0 +1,81 @@
package com.yunzhupaas.onlinedev.controller;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import com.yunzhupaas.base.ActionResult;
import com.yunzhupaas.base.vo.DownloadVO;
import com.yunzhupaas.base.service.VisualdevService;
import com.yunzhupaas.base.entity.VisualdevEntity;
import com.yunzhupaas.config.ConfigValueUtil;
import com.yunzhupaas.constant.MsgCode;
import com.yunzhupaas.emnus.ExportModelTypeEnum;
import com.yunzhupaas.exception.WorkFlowException;
import com.yunzhupaas.onlinedev.model.*;
import com.yunzhupaas.util.*;
import com.yunzhupaas.emnus.ModuleTypeEnum;
import com.yunzhupaas.util.FileExport;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
/**
* 0代码app无表开发
*
* @author 云筑产品开发平台组
* @version V3.1.0
* @copyright 深圳市乐程软件有限公司
* @date 2023/09/27
*/
@Tag(name = "0代码app无表开发", description = "ModelAppData")
@RestController
@RequestMapping("/api/visualdev/OnlineDev/App")
public class VisualdevModelAppController {
@Autowired
private VisualdevService visualdevService;
@Autowired
private FileExport fileExport;
@Autowired
private ConfigValueUtil configValueUtil;
@Operation(summary = "功能导出")
@PostMapping("/{modelId}/Actions/ExportData")
public ActionResult exportData(@PathVariable("modelId") String modelId){
VisualdevEntity visualdevEntity = visualdevService.getInfo(modelId);
BaseDevModelVO vo = JsonUtil.getJsonToBean(visualdevEntity,BaseDevModelVO.class);
vo.setModelType(ExportModelTypeEnum.App.getMessage());
DownloadVO downloadVO=fileExport.exportFile(vo,configValueUtil.getTemporaryFilePath(), visualdevEntity.getFullName(), ModuleTypeEnum.VISUAL_APP.getTableName());
return ActionResult.success(downloadVO);
}
@Operation(summary = "功能导入")
@PostMapping(value = "/Model/Actions/ImportData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public ActionResult ImportData(@RequestPart("file") MultipartFile multipartFile) throws WorkFlowException {
//判断是否为.json结尾
if (FileUtil.existsSuffix(multipartFile, ModuleTypeEnum.VISUAL_APP.getTableName())) {
return ActionResult.fail(MsgCode.IMP002.get());
}
//获取文件内容
String fileContent = FileUtil.getFileContent(multipartFile);
BaseDevModelVO vo = JsonUtil.getJsonToBean(fileContent, BaseDevModelVO.class);
if (vo.getModelType() == null || !vo.getModelType().equals(ExportModelTypeEnum.App.getMessage())) {
return ActionResult.fail(MsgCode.VS410.get());
}
VisualdevEntity visualdevEntity = JsonUtil.getJsonToBean(vo, VisualdevEntity.class);
String modelId = visualdevEntity.getId();
if (StringUtil.isNotEmpty(modelId)) {
VisualdevEntity entity = visualdevService.getInfo(modelId);
if (entity != null) {
return ActionResult.fail(MsgCode.VS411.get());
}
}
visualdevEntity.setCreatorTime(DateUtil.getNowDate());
visualdevEntity.setLastModifyTime(null);
visualdevService.create(visualdevEntity);
return ActionResult.success(MsgCode.IMP001.get());
}
}