mirror of
https://gitee.com/dromara/RuoYi-Vue-Plus.git
synced 2026-09-18 17:38:48 +08:00
saas h5
This commit is contained in:
parent
9780b90795
commit
a65670a51c
@ -15,6 +15,7 @@
|
|||||||
<!-- <module>ruoyi-job</module>-->
|
<!-- <module>ruoyi-job</module>-->
|
||||||
<module>ruoyi-system</module>
|
<module>ruoyi-system</module>
|
||||||
<module>ruoyi-system-saas</module>
|
<module>ruoyi-system-saas</module>
|
||||||
|
<!-- <module>ruoyi-h5-saas</module>-->
|
||||||
<!-- <module>ruoyi-workflow</module>-->
|
<!-- <module>ruoyi-workflow</module>-->
|
||||||
</modules>
|
</modules>
|
||||||
|
|
||||||
|
|||||||
121
ruoyi-modules/ruoyi-h5-saas/pom.xml
Normal file
121
ruoyi-modules/ruoyi-h5-saas/pom.xml
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
<?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>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>ruoyi-modules</artifactId>
|
||||||
|
<version>${revision}</version>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<artifactId>ruoyi-h5-saas</artifactId>
|
||||||
|
|
||||||
|
<description>
|
||||||
|
ruoyi-h5-saas h5系统模块
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<!-- 通用工具-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>ruoyi-common-core</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>ruoyi-common-doc</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>ruoyi-common-mybatis</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>ruoyi-common-translation</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- OSS功能模块 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>ruoyi-common-oss</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>ruoyi-common-log</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- excel-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>ruoyi-common-excel</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- SMS功能模块 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>ruoyi-common-sms</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>ruoyi-common-tenant</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>ruoyi-common-security</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>ruoyi-common-web</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>ruoyi-common-idempotent</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>ruoyi-common-sensitive</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>ruoyi-common-encrypt</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>ruoyi-common-websocket</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>ruoyi-common-sse</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- Apache Dubbo 配置 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.dubbo</groupId>
|
||||||
|
<artifactId>dubbo-spring-boot-starter</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.dubbo</groupId>
|
||||||
|
<artifactId>dubbo-nacos-spring-boot-starter</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<!-- dubbo 远程调用接口 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>ruoyi-api-system</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
</project>
|
||||||
@ -0,0 +1,18 @@
|
|||||||
|
package org.dromara.system.saas.constant;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 包名常量
|
||||||
|
*
|
||||||
|
* @author WeiHongBin
|
||||||
|
*/
|
||||||
|
public final class PackageConstant {
|
||||||
|
|
||||||
|
|
||||||
|
public static final String BASE_PACKAGE = "com.luban.api";
|
||||||
|
|
||||||
|
public static final String CONTROLLER_PACKAGE = BASE_PACKAGE + ".controller";
|
||||||
|
|
||||||
|
public static final String DAO_PACKAGE = BASE_PACKAGE + ".dao";
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,50 @@
|
|||||||
|
package org.dromara.system.saas.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.luban.api.convert.ScriptsConvert;
|
||||||
|
import com.luban.api.entity.Scripts;
|
||||||
|
import com.luban.api.service.ScriptsService;
|
||||||
|
import com.luban.api.vo.ScriptsVO;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 作品 前端控制器
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author lizhengwei
|
||||||
|
* @since 2024-06-21
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/scripts")
|
||||||
|
public class ScriptsController {
|
||||||
|
|
||||||
|
|
||||||
|
private final ScriptsService scriptsService;
|
||||||
|
|
||||||
|
public ScriptsController(ScriptsService scriptsService) {
|
||||||
|
this.scriptsService = scriptsService;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Operation(summary = "根据scriptsId查询")
|
||||||
|
@GetMapping("/{id}")
|
||||||
|
public ScriptsVO findScriptsById(@PathVariable Long id) {
|
||||||
|
return ScriptsConvert.toVO(scriptsService.getById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Operation(summary = "查询所有scripts")
|
||||||
|
@GetMapping
|
||||||
|
public List<ScriptsVO> listAllScriptss(@RequestParam Integer _limit) {
|
||||||
|
QueryWrapper<Scripts> wrapper = new QueryWrapper<>();
|
||||||
|
wrapper.last("limit " + _limit);
|
||||||
|
return scriptsService.list(wrapper).stream().map(ScriptsConvert::toVO).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@ -0,0 +1,51 @@
|
|||||||
|
package org.dromara.system.saas.controller;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.IdUtil;
|
||||||
|
import com.luban.api.exception.UnifiedException;
|
||||||
|
import com.luban.api.vo.FileVO;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author WeiHongBin
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/upload")
|
||||||
|
@Tag(name = "上传文件")
|
||||||
|
@Slf4j
|
||||||
|
public class UploadController {
|
||||||
|
|
||||||
|
// @Value("${upload-path}") todo 改成公共文件上传下载
|
||||||
|
|
||||||
|
public String uploadPath = "data";
|
||||||
|
|
||||||
|
@Operation(summary = "文件上传")
|
||||||
|
@PostMapping
|
||||||
|
public List<FileVO> upload(@Validated MultipartFile files) {
|
||||||
|
String originalFilename = files.getOriginalFilename();
|
||||||
|
assert originalFilename != null;
|
||||||
|
String suffix = originalFilename.substring(originalFilename.lastIndexOf(".") + 1);
|
||||||
|
String key = IdUtil.fastSimpleUUID() + "." + suffix;
|
||||||
|
try {
|
||||||
|
files.transferTo(new File(uploadPath + key));
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new UnifiedException("文件上传失败");
|
||||||
|
}
|
||||||
|
return new ArrayList<FileVO>() {{
|
||||||
|
add(new FileVO() {{
|
||||||
|
setUrl(key);
|
||||||
|
}});
|
||||||
|
}};
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,175 @@
|
|||||||
|
package org.dromara.system.saas.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.hutool.json.JSONUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.luban.api.convert.WorkConvert;
|
||||||
|
import com.luban.api.dto.WorkCreateDTO;
|
||||||
|
import com.luban.api.dto.WorkQueryDTO;
|
||||||
|
import com.luban.api.dto.WorkUpdateDTO;
|
||||||
|
import com.luban.api.entity.Work;
|
||||||
|
import com.luban.api.service.WorkService;
|
||||||
|
import com.luban.api.vo.WorkVO;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import jakarta.validation.Valid;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
|
import org.springframework.util.StringUtils;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 前端控制器
|
||||||
|
* </p>
|
||||||
|
* <p>
|
||||||
|
* 由于业务都非常简单,并没有把业务代码下沉到 service 层
|
||||||
|
*
|
||||||
|
* @author WeiHongBin
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/works")
|
||||||
|
@Tag(name = "作品管理", description = "作品管理")
|
||||||
|
@Slf4j
|
||||||
|
public class WorkController {
|
||||||
|
|
||||||
|
|
||||||
|
private final WorkService workService;
|
||||||
|
|
||||||
|
public WorkController(WorkService workService) {
|
||||||
|
this.workService = workService;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Operation(summary = "根据workId查询")
|
||||||
|
@GetMapping("/has-forms")
|
||||||
|
public List<WorkVO> hasForms() {
|
||||||
|
return WorkConvert.toVO(workService.list());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Operation(summary = "根据workId查询")
|
||||||
|
@GetMapping("/{id}")
|
||||||
|
public WorkVO findWorkById(@PathVariable Long id) {
|
||||||
|
return WorkConvert.toVO(workService.getById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Operation(summary = "查询所有work")
|
||||||
|
@GetMapping
|
||||||
|
public List<WorkVO> listAllWorks(@Valid WorkQueryDTO dto) {
|
||||||
|
WorkVO vo = new WorkVO();
|
||||||
|
vo.setTemplate(Boolean.parseBoolean(dto.getIs_template()));
|
||||||
|
BeanUtils.copyProperties(dto, vo);
|
||||||
|
return workService.list(new QueryWrapper<>(WorkConvert.toEntity(vo))).stream().map(WorkConvert::toVO).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Operation(summary = "分页查询works")
|
||||||
|
@GetMapping("/pageable")
|
||||||
|
public IPage<WorkVO> listWorks(@Valid WorkQueryDTO dto) {
|
||||||
|
WorkVO vo = new WorkVO();
|
||||||
|
vo.setTemplate(Boolean.parseBoolean(dto.getIs_template()));
|
||||||
|
BeanUtils.copyProperties(dto, vo);
|
||||||
|
IPage<Work> page = workService.page(new Page<>(dto.getCurrent(), dto.getSize()), new LambdaQueryWrapper<>(WorkConvert.toEntity(vo)).orderByDesc(Work::getCreateTime));
|
||||||
|
List<WorkVO> voList = page.getRecords().stream().map(WorkConvert::toVO).collect(Collectors.toList());
|
||||||
|
return new Page<WorkVO>(page.getCurrent(), page.getSize(), page.getTotal()).setPages(page.getPages()).setRecords(voList);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Operation(summary = "创建work")
|
||||||
|
@PostMapping
|
||||||
|
public WorkVO createWork(@RequestBody @Valid WorkCreateDTO dto) {
|
||||||
|
WorkVO vo = new WorkVO();
|
||||||
|
BeanUtils.copyProperties(dto, vo);
|
||||||
|
Work work = WorkConvert.toEntity(vo);
|
||||||
|
workService.save(work);
|
||||||
|
return WorkConvert.toVO(work);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Operation(summary = "更新work")
|
||||||
|
@PutMapping("/{id}")
|
||||||
|
public WorkVO updateWork(@PathVariable Long id, @RequestBody @Valid WorkUpdateDTO dto) {
|
||||||
|
Work work = workService.getById(id);
|
||||||
|
if (!StringUtils.isEmpty(dto.getTitle())) {
|
||||||
|
work.setTitle(dto.getTitle());
|
||||||
|
}
|
||||||
|
if (!StringUtils.isEmpty(dto.getDescription())) {
|
||||||
|
work.setDescription(dto.getDescription());
|
||||||
|
}
|
||||||
|
if (!StringUtils.isEmpty(dto.getCoverImageUrl())) {
|
||||||
|
work.setCoverImageUrl(dto.getCoverImageUrl());
|
||||||
|
}
|
||||||
|
if (!CollectionUtils.isEmpty(dto.getPages())) {
|
||||||
|
work.setPages(JSONUtil.toJsonStr(dto.getPages()));
|
||||||
|
}
|
||||||
|
work.setIsTemplate(dto.isTemplate());
|
||||||
|
work.setIsPublish(dto.isPublish());
|
||||||
|
work.setWidth(dto.getWidth());
|
||||||
|
work.setHeight(dto.getWidth());
|
||||||
|
work.setPageMode(dto.getWidth());
|
||||||
|
|
||||||
|
work.setUpdateTime(LocalDateTime.now());
|
||||||
|
workService.saveOrUpdate(work);
|
||||||
|
return WorkConvert.toVO(work);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Operation(summary = "删除work")
|
||||||
|
@DeleteMapping("/{id}")
|
||||||
|
public void deleteWorkById(@PathVariable Long id) {
|
||||||
|
workService.removeById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Operation(summary = "设为模板")
|
||||||
|
@PostMapping("/set-as-template/{id}")
|
||||||
|
public WorkVO markWorkAsTemplate(@PathVariable Long id) {
|
||||||
|
Work work = workService.getById(id);
|
||||||
|
work.setIsTemplate(true);
|
||||||
|
work.setUpdateTime(LocalDateTime.now());
|
||||||
|
workService.updateById(work);
|
||||||
|
return WorkConvert.toVO(work);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Operation(summary = "统计作品总数")
|
||||||
|
@GetMapping("/count")
|
||||||
|
public long countWork() {
|
||||||
|
return workService.count();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Operation(summary = "使用模板")
|
||||||
|
@PostMapping("/use-template/{id}")
|
||||||
|
public WorkVO useTemplate(@PathVariable Long id) {
|
||||||
|
Work work = workService.getById(id);
|
||||||
|
work.setId(null);
|
||||||
|
work.setIsTemplate(false);
|
||||||
|
work.setIsPublish(false);
|
||||||
|
workService.save(work);
|
||||||
|
return WorkConvert.toVO(work);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Operation(summary = "使用模板")
|
||||||
|
@GetMapping("/preview/{id}")
|
||||||
|
public ModelAndView useTemplate(@PathVariable Long id, @RequestParam(value = "view_mode", required = false) String viewMode) {
|
||||||
|
Work work = workService.getById(id);
|
||||||
|
|
||||||
|
// 非预览模式, 查看不到内容
|
||||||
|
boolean canRender = "preview".equals(viewMode) || work.getIsPublish();
|
||||||
|
|
||||||
|
if (!canRender) {
|
||||||
|
work.setPages("[]");
|
||||||
|
}
|
||||||
|
ModelAndView mv = new ModelAndView("engine");
|
||||||
|
//TODO 后端处理前端,这种方式不是很好,最后改成纯前端处理
|
||||||
|
mv.addObject("workString", JSONUtil.toJsonStr(WorkConvert.toVO(work)));
|
||||||
|
mv.addObject("work", work);
|
||||||
|
return mv;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
package org.dromara.system.saas.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 前端控制器
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author WeiHongBin
|
||||||
|
* @since 2019-11-26
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/work-forms")
|
||||||
|
public class WorkFormsController {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
package org.dromara.system.saas.convert;
|
||||||
|
|
||||||
|
import com.luban.api.entity.Scripts;
|
||||||
|
import com.luban.api.vo.ScriptsVO;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Scripts 转换器
|
||||||
|
*
|
||||||
|
* @author WeiHongBin
|
||||||
|
*/
|
||||||
|
public class ScriptsConvert {
|
||||||
|
|
||||||
|
|
||||||
|
public static ScriptsVO toVO(Scripts entity) {
|
||||||
|
ScriptsVO vo = new ScriptsVO();
|
||||||
|
BeanUtils.copyProperties(entity, vo);
|
||||||
|
return vo;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,49 @@
|
|||||||
|
package org.dromara.system.saas.convert;
|
||||||
|
|
||||||
|
import cn.hutool.json.JSONUtil;
|
||||||
|
import com.luban.api.entity.Work;
|
||||||
|
import com.luban.api.vo.WorkVO;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Work 转换器
|
||||||
|
*
|
||||||
|
* @author WeiHongBin
|
||||||
|
*/
|
||||||
|
public class WorkConvert {
|
||||||
|
|
||||||
|
|
||||||
|
public static WorkVO toVO(Work entity) {
|
||||||
|
WorkVO vo = new WorkVO();
|
||||||
|
BeanUtils.copyProperties(entity, vo);
|
||||||
|
if (!StringUtils.isEmpty(entity.getPages())) {
|
||||||
|
vo.setPages(JSONUtil.parseArray(entity.getPages()));
|
||||||
|
}
|
||||||
|
return vo;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static List<WorkVO> toVO(List<Work> entitys) {
|
||||||
|
List<WorkVO> workVOS = new ArrayList<>();
|
||||||
|
for (Work entity : entitys) {
|
||||||
|
workVOS.add(toVO(entity));
|
||||||
|
}
|
||||||
|
return workVOS;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Work toEntity(WorkVO vo) {
|
||||||
|
Work work = new Work();
|
||||||
|
BeanUtils.copyProperties(vo, work);
|
||||||
|
if (!CollectionUtils.isEmpty(vo.getPages())) {
|
||||||
|
work.setPages(JSONUtil.toJsonStr(vo.getPages()));
|
||||||
|
}
|
||||||
|
return work;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,16 @@
|
|||||||
|
package org.dromara.system.saas.dao;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.luban.api.entity.Scripts;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 作品 Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author lizhengwei
|
||||||
|
* @since 2024-06-21
|
||||||
|
*/
|
||||||
|
public interface ScriptsDao extends BaseMapper<Scripts> {
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,16 @@
|
|||||||
|
package org.dromara.system.saas.dao;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.luban.api.entity.Work;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author WeiHongBin
|
||||||
|
* @since 2019-11-26
|
||||||
|
*/
|
||||||
|
public interface WorkDao extends BaseMapper<Work> {
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,16 @@
|
|||||||
|
package org.dromara.system.saas.dao;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.luban.api.entity.WorkForms;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author WeiHongBin
|
||||||
|
* @since 2019-11-26
|
||||||
|
*/
|
||||||
|
public interface WorkFormsDao extends BaseMapper<WorkForms> {
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,37 @@
|
|||||||
|
package org.dromara.system.saas.dto;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页基类
|
||||||
|
*
|
||||||
|
* @author admin
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class PageDtoBase {
|
||||||
|
/**
|
||||||
|
* 每页行数
|
||||||
|
*/
|
||||||
|
@Schema(title = "每页行数")
|
||||||
|
protected Integer size = 10;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 页码
|
||||||
|
*/
|
||||||
|
@Schema(title = "页码")
|
||||||
|
protected Integer current = 1;
|
||||||
|
|
||||||
|
|
||||||
|
public void setSize(Integer size) {
|
||||||
|
if (size != null) {
|
||||||
|
this.size = size;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCurrent(Integer current) {
|
||||||
|
if (current != null) {
|
||||||
|
this.current = current;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
package org.dromara.system.saas.dto;
|
||||||
|
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@Schema(title = "WorkQueryDTO")
|
||||||
|
public class ScriptsQueryDTO {
|
||||||
|
private Integer _limit;
|
||||||
|
}
|
||||||
@ -0,0 +1,35 @@
|
|||||||
|
package org.dromara.system.saas.dto;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author WeiHongBin
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@Schema(title = "WorkCreateDTO")
|
||||||
|
public class WorkCreateDTO {
|
||||||
|
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
private String description;
|
||||||
|
|
||||||
|
private String coverImageUrl;
|
||||||
|
|
||||||
|
private List<Object> pages;
|
||||||
|
|
||||||
|
private LocalDateTime createTime = LocalDateTime.now();
|
||||||
|
|
||||||
|
private LocalDateTime updateTime = LocalDateTime.now();
|
||||||
|
|
||||||
|
private boolean isPublish = false;
|
||||||
|
|
||||||
|
private boolean isTemplate = false;
|
||||||
|
}
|
||||||
@ -0,0 +1,35 @@
|
|||||||
|
package org.dromara.system.saas.dto;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author WeiHongBin
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@Schema(title = "WorkQueryDTO")
|
||||||
|
public class WorkQueryDTO extends PageDtoBase {
|
||||||
|
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
private String description;
|
||||||
|
|
||||||
|
private String coverImageUrl;
|
||||||
|
|
||||||
|
private List<Object> pages;
|
||||||
|
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
private String is_publish;
|
||||||
|
|
||||||
|
private String is_template;
|
||||||
|
}
|
||||||
@ -0,0 +1,42 @@
|
|||||||
|
package org.dromara.system.saas.dto;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author WeiHongBin
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@Schema(title = "WorkQueryDTO")
|
||||||
|
public class WorkUpdateDTO {
|
||||||
|
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
private String description;
|
||||||
|
|
||||||
|
private String coverImageUrl;
|
||||||
|
|
||||||
|
private String width;
|
||||||
|
|
||||||
|
private String height;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 页面模式:h5_swipper、h5_long_page、h5_form
|
||||||
|
*/
|
||||||
|
private String pageMode;
|
||||||
|
|
||||||
|
private List<Object> pages;
|
||||||
|
|
||||||
|
private LocalDateTime updateTime = LocalDateTime.now();
|
||||||
|
|
||||||
|
private boolean isPublish;
|
||||||
|
|
||||||
|
private boolean isTemplate;
|
||||||
|
}
|
||||||
@ -0,0 +1,43 @@
|
|||||||
|
package org.dromara.system.saas.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 作品
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author lizhengwei
|
||||||
|
* @since 2024-06-21
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@Schema(name = "Scripts对象", description = "作品")
|
||||||
|
public class Scripts implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID=1L;
|
||||||
|
|
||||||
|
@TableId(value = "id", type = IdType.AUTO)
|
||||||
|
private Integer id;
|
||||||
|
|
||||||
|
@Schema(title = "标题")
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
@Schema(title = "内容")
|
||||||
|
private String content;
|
||||||
|
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,62 @@
|
|||||||
|
package org.dromara.system.saas.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author WeiHongBin
|
||||||
|
* @since 2019-11-26
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@Schema(title = "Work对象")
|
||||||
|
public class Work implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@TableId(value = "id", type = IdType.AUTO)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@Schema(title = "标题")
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
@Schema(title = "描述")
|
||||||
|
private String description;
|
||||||
|
|
||||||
|
private String coverImageUrl;
|
||||||
|
|
||||||
|
private String pages;
|
||||||
|
|
||||||
|
private String width;
|
||||||
|
|
||||||
|
private String height;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 页面模式:h5_swipper、h5_long_page、h5_form
|
||||||
|
*/
|
||||||
|
private String pageMode;
|
||||||
|
|
||||||
|
private Boolean isPublish;
|
||||||
|
|
||||||
|
private Boolean isTemplate;
|
||||||
|
|
||||||
|
@Schema(title = "创建时间")
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
@Schema(title = "更新时间")
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,36 @@
|
|||||||
|
package org.dromara.system.saas.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author WeiHongBin
|
||||||
|
* @since 2019-11-26
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@Schema(title = "WorkForms对象")
|
||||||
|
public class WorkForms implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@TableId(value = "id", type = IdType.AUTO)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
private String form;
|
||||||
|
|
||||||
|
private Long workId;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,16 @@
|
|||||||
|
package org.dromara.system.saas.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.luban.api.entity.Scripts;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 作品 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author lizhengwei
|
||||||
|
* @since 2024-06-21
|
||||||
|
*/
|
||||||
|
public interface ScriptsService extends IService<Scripts> {
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,16 @@
|
|||||||
|
package org.dromara.system.saas.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.luban.api.entity.WorkForms;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author WeiHongBin
|
||||||
|
* @since 2019-11-26
|
||||||
|
*/
|
||||||
|
public interface WorkFormsService extends IService<WorkForms> {
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,16 @@
|
|||||||
|
package org.dromara.system.saas.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.luban.api.entity.Work;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author WeiHongBin
|
||||||
|
* @since 2019-11-26
|
||||||
|
*/
|
||||||
|
public interface WorkService extends IService<Work> {
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
package org.dromara.system.saas.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.luban.api.dao.ScriptsDao;
|
||||||
|
import com.luban.api.entity.Scripts;
|
||||||
|
import com.luban.api.service.ScriptsService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 作品 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author lizhengwei
|
||||||
|
* @since 2024-06-21
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class ScriptsServiceImpl extends ServiceImpl<ScriptsDao, Scripts> implements ScriptsService {
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
package org.dromara.system.saas.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.luban.api.dao.WorkFormsDao;
|
||||||
|
import com.luban.api.entity.WorkForms;
|
||||||
|
import com.luban.api.service.WorkFormsService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author WeiHongBin
|
||||||
|
* @since 2019-11-26
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class WorkFormsServiceImpl extends ServiceImpl<WorkFormsDao, WorkForms> implements WorkFormsService {
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
package org.dromara.system.saas.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.luban.api.dao.WorkDao;
|
||||||
|
import com.luban.api.entity.Work;
|
||||||
|
import com.luban.api.service.WorkService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author WeiHongBin
|
||||||
|
* @since 2019-11-26
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class WorkServiceImpl extends ServiceImpl<WorkDao, Work> implements WorkService {
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,66 @@
|
|||||||
|
package org.dromara.system.saas.util;
|
||||||
|
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* JSON 转换工具
|
||||||
|
*
|
||||||
|
* @author WeiHongBin
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Component
|
||||||
|
public class JSON {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ObjectMapper objectMapper;
|
||||||
|
|
||||||
|
public String toJSON(Object jsonObj) {
|
||||||
|
try {
|
||||||
|
return objectMapper.writeValueAsString(jsonObj);
|
||||||
|
} catch (JsonProcessingException e) {
|
||||||
|
log.error("JSON 转换异常 转换异常的数据类型: " + jsonObj.getClass().getName(), e);
|
||||||
|
}
|
||||||
|
return jsonObj.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public Map toMap(String json) {
|
||||||
|
try {
|
||||||
|
return objectMapper.readValue(json, Map.class);
|
||||||
|
} catch (IOException e) {
|
||||||
|
log.error("JSON 转换异常", e);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Map<String, String>> toListMapStr(String json) {
|
||||||
|
try {
|
||||||
|
return objectMapper.readValue(json, new TypeReference<List<Map<String, String>>>() {
|
||||||
|
});
|
||||||
|
} catch (IOException e) {
|
||||||
|
log.error("JSON 转换异常", e);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public List<String> toListString(String json) {
|
||||||
|
try {
|
||||||
|
return objectMapper.readValue(json, new TypeReference<List<String>>() {
|
||||||
|
});
|
||||||
|
} catch (IOException e) {
|
||||||
|
log.error("JSON 转换异常", e);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,17 @@
|
|||||||
|
package org.dromara.system.saas.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author WeiHongBin
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@Schema(title = "文件视图对象")
|
||||||
|
public class FileVO {
|
||||||
|
private String url;
|
||||||
|
}
|
||||||
@ -0,0 +1,84 @@
|
|||||||
|
package org.dromara.system.saas.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 统一返回
|
||||||
|
*
|
||||||
|
* @author WeiHongBin
|
||||||
|
*/
|
||||||
|
@Schema(description = "返回响应数据")
|
||||||
|
@Component
|
||||||
|
@Data
|
||||||
|
public class Result<T> {
|
||||||
|
@Schema(title = "返回状态码")
|
||||||
|
private Integer code;
|
||||||
|
@Schema(title = "返回消息")
|
||||||
|
private String msg;
|
||||||
|
@Schema(title = "返回当前状态")
|
||||||
|
private HttpStatus status;
|
||||||
|
@Schema(title = "返回对象")
|
||||||
|
private T data;
|
||||||
|
|
||||||
|
public Result() {
|
||||||
|
this.msg = "成功";
|
||||||
|
setStatus(HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStatus(HttpStatus status) {
|
||||||
|
this.status = status;
|
||||||
|
setCode(status.value());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setCode(Integer code) {
|
||||||
|
this.code = code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Result(T data) {
|
||||||
|
setStatus(HttpStatus.OK);
|
||||||
|
this.msg = "成功";
|
||||||
|
this.data = data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Result(String msg, HttpStatus status, T data) {
|
||||||
|
this.msg = msg;
|
||||||
|
setStatus(status);
|
||||||
|
this.data = data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Result(String msg, HttpStatus status) {
|
||||||
|
this.msg = msg;
|
||||||
|
setStatus(status);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Result<T> ok(T data) {
|
||||||
|
setStatus(HttpStatus.OK);
|
||||||
|
this.msg = "成功";
|
||||||
|
this.data = data;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Result<T> error(HttpStatus status, String msg) {
|
||||||
|
setStatus(status);
|
||||||
|
this.msg = msg;
|
||||||
|
this.data = null;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isOK() {
|
||||||
|
return this.getStatus() == HttpStatus.OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Result{" +
|
||||||
|
"code=" + code +
|
||||||
|
", msg='" + msg + '\'' +
|
||||||
|
", status=" + status +
|
||||||
|
", data=" + data +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,28 @@
|
|||||||
|
package org.dromara.system.saas.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@Schema(title = "Script视图对象")
|
||||||
|
public class ScriptsVO implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private Integer id;
|
||||||
|
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
private String content;
|
||||||
|
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
}
|
||||||
@ -0,0 +1,37 @@
|
|||||||
|
package org.dromara.system.saas.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author WeiHongBin
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@Schema(title = "Work视图对象")
|
||||||
|
public class WorkVO {
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
private String description;
|
||||||
|
|
||||||
|
private String coverImageUrl;
|
||||||
|
|
||||||
|
private List<Object> pages;
|
||||||
|
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
private boolean isPublish;
|
||||||
|
|
||||||
|
private boolean isTemplate;
|
||||||
|
}
|
||||||
@ -0,0 +1,3 @@
|
|||||||
|
java包使用 `.` 分割 resource 目录使用 `/` 分割
|
||||||
|
<br>
|
||||||
|
此文件目的 防止文件夹粘连找不到 `xml` 文件
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="org.dromara.system.saas.mapper.SysSaasApplicationMapper">
|
||||||
|
|
||||||
|
</mapper>
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="org.dromara.system.saas.mapper.SysSaasClientMapper">
|
||||||
|
|
||||||
|
</mapper>
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="org.dromara.system.saas.mapper.SysSaasConfigMapper">
|
||||||
|
|
||||||
|
</mapper>
|
||||||
@ -0,0 +1,36 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="org.dromara.system.saas.mapper.SysSaasDeptMapper">
|
||||||
|
|
||||||
|
<resultMap type="org.dromara.system.saas.domain.vo.SysSaasDeptVo" id="SysDeptResult">
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<select id="selectDeptList" resultMap="SysDeptResult">
|
||||||
|
select
|
||||||
|
<if test="ew.getSqlSelect != null">
|
||||||
|
${ew.getSqlSelect}
|
||||||
|
</if>
|
||||||
|
<if test="ew.getSqlSelect == null">
|
||||||
|
*
|
||||||
|
</if>
|
||||||
|
from sys_saas_dept ${ew.getCustomSqlSegment}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="countDeptById" resultType="Long">
|
||||||
|
select count(*) from sys_saas_dept where del_flag = '0' and dept_id = #{deptId}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectDeptListByRoleId" resultType="Long">
|
||||||
|
select d.dept_id
|
||||||
|
from sys_saas_dept d
|
||||||
|
left join sys_saas_role_dept rd on d.dept_id = rd.dept_id
|
||||||
|
where rd.role_id = #{roleId}
|
||||||
|
<if test="deptCheckStrictly">
|
||||||
|
and d.dept_id not in (select d.parent_id from sys_saas_dept d inner join sys_saas_role_dept rd on d.dept_id = rd.dept_id and rd.role_id = #{roleId})
|
||||||
|
</if>
|
||||||
|
order by d.parent_id, d.order_num
|
||||||
|
</select>
|
||||||
|
|
||||||
|
</mapper>
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="org.dromara.system.saas.mapper.SysSaasDictDataMapper">
|
||||||
|
|
||||||
|
</mapper>
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="org.dromara.system.saas.mapper.SysSaasDictTypeMapper">
|
||||||
|
|
||||||
|
</mapper>
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="org.dromara.system.saas.mapper.SysSaasLogininforMapper">
|
||||||
|
|
||||||
|
</mapper>
|
||||||
@ -0,0 +1,70 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="org.dromara.system.saas.mapper.SysSaasMenuMapper">
|
||||||
|
|
||||||
|
<resultMap type="org.dromara.system.saas.domain.SysSaasMenu" id="SysMenuResult">
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<select id="selectMenuListByUserId" resultMap="SysMenuResult">
|
||||||
|
select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.query_param, m.visible, m.status,
|
||||||
|
m.perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time
|
||||||
|
from sys_saas_menu m
|
||||||
|
left join sys_saas_role_menu rm on m.menu_id = rm.menu_id
|
||||||
|
left join sys_saas_role r on rm.role_id = r.role_id
|
||||||
|
${ew.getCustomSqlSegment}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectMenuTreeByUserId" parameterType="Long" resultMap="SysMenuResult">
|
||||||
|
select distinct m.menu_id,
|
||||||
|
m.parent_id,
|
||||||
|
m.menu_name,
|
||||||
|
m.path,
|
||||||
|
m.component,
|
||||||
|
m.query_param,
|
||||||
|
m.visible,
|
||||||
|
m.status,
|
||||||
|
m.perms,
|
||||||
|
m.is_frame,
|
||||||
|
m.is_cache,
|
||||||
|
m.menu_type,
|
||||||
|
m.icon,
|
||||||
|
m.order_num,
|
||||||
|
m.create_time
|
||||||
|
from sys_saas_menu m
|
||||||
|
left join sys_saas_role_menu rm on m.menu_id = rm.menu_id and m.status = '0'
|
||||||
|
left join sys_saas_role r on rm.role_id = r.role_id and r.status = '0'
|
||||||
|
where m.menu_type in ('M', 'C')
|
||||||
|
and r.role_id in (select role_id from sys_saas_user_role where user_id = #{userId})
|
||||||
|
order by m.parent_id, m.order_num
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectMenuListByRoleId" resultType="Long">
|
||||||
|
select m.menu_id
|
||||||
|
from sys_saas_menu m
|
||||||
|
left join sys_saas_role_menu rm on m.menu_id = rm.menu_id
|
||||||
|
where rm.role_id = #{roleId}
|
||||||
|
<if test="menuCheckStrictly">
|
||||||
|
and m.menu_id not in (select m.parent_id from sys_saas_menu m inner join sys_saas_role_menu rm on m.menu_id =
|
||||||
|
rm.menu_id and rm.role_id = #{roleId})
|
||||||
|
</if>
|
||||||
|
order by m.parent_id, m.order_num
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectMenuPermsByUserId" parameterType="Long" resultType="String">
|
||||||
|
select distinct m.perms
|
||||||
|
from sys_saas_menu m
|
||||||
|
left join sys_saas_role_menu rm on m.menu_id = rm.menu_id and m.status = '0'
|
||||||
|
left join sys_saas_role r on r.role_id = rm.role_id and r.status = '0'
|
||||||
|
where r.role_id in (select role_id from sys_saas_user_role where user_id = #{userId})
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectMenuPermsByRoleId" parameterType="Long" resultType="String">
|
||||||
|
select distinct m.perms
|
||||||
|
from sys_saas_menu m
|
||||||
|
left join sys_saas_role_menu rm on m.menu_id = rm.menu_id
|
||||||
|
where m.status = '0' and rm.role_id = #{roleId}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
</mapper>
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="org.dromara.system.saas.mapper.SysSaasNoticeMapper">
|
||||||
|
|
||||||
|
</mapper>
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="org.dromara.system.saas.mapper.SysSaasOperLogMapper">
|
||||||
|
|
||||||
|
</mapper>
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="org.dromara.system.saas.mapper.SysSaasOssConfigMapper">
|
||||||
|
|
||||||
|
</mapper>
|
||||||
@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="org.dromara.system.saas.mapper.SysSaasOssMapper">
|
||||||
|
|
||||||
|
</mapper>
|
||||||
@ -0,0 +1,29 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="org.dromara.system.saas.mapper.SysSaasPostMapper">
|
||||||
|
|
||||||
|
<resultMap type="org.dromara.system.saas.domain.vo.SysSaasPostVo" id="SysPostResult">
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<select id="selectPagePostList" resultMap="SysPostResult">
|
||||||
|
select
|
||||||
|
<if test="ew.getSqlSelect != null">
|
||||||
|
${ew.getSqlSelect}
|
||||||
|
</if>
|
||||||
|
<if test="ew.getSqlSelect == null">
|
||||||
|
*
|
||||||
|
</if>
|
||||||
|
from sys_saas_post ${ew.getCustomSqlSegment}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectPostsByUserId" parameterType="Long" resultMap="SysPostResult">
|
||||||
|
select p.post_id, p.dept_id, p.post_name, p.post_code, p.post_category
|
||||||
|
from sys_saas_post p
|
||||||
|
left join sys_saas_user_post up on up.post_id = p.post_id
|
||||||
|
left join sys_saas_user u on u.user_id = up.user_id
|
||||||
|
where u.user_id = #{userId}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
</mapper>
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="org.dromara.system.saas.mapper.SysSaasRoleDeptMapper">
|
||||||
|
|
||||||
|
</mapper>
|
||||||
@ -0,0 +1,59 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="org.dromara.system.saas.mapper.SysSaasRoleMapper">
|
||||||
|
|
||||||
|
<resultMap type="org.dromara.system.saas.domain.vo.SysSaasRoleVo" id="SysRoleResult">
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<sql id="selectRoleVo">
|
||||||
|
select distinct r.role_id,
|
||||||
|
r.role_name,
|
||||||
|
r.role_key,
|
||||||
|
r.role_sort,
|
||||||
|
r.data_scope,
|
||||||
|
r.menu_check_strictly,
|
||||||
|
r.dept_check_strictly,
|
||||||
|
r.status,
|
||||||
|
r.del_flag,
|
||||||
|
r.create_time,
|
||||||
|
r.remark
|
||||||
|
from sys_saas_role r
|
||||||
|
left join sys_saas_user_role sur on sur.role_id = r.role_id
|
||||||
|
left join sys_saas_user u on u.user_id = sur.user_id
|
||||||
|
left join sys_saas_dept d on u.dept_id = d.dept_id
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<select id="selectPageRoleList" resultMap="SysRoleResult">
|
||||||
|
<include refid="selectRoleVo"/>
|
||||||
|
${ew.getCustomSqlSegment}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectRoleList" resultMap="SysRoleResult">
|
||||||
|
<include refid="selectRoleVo"/>
|
||||||
|
${ew.getCustomSqlSegment}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectRolePermissionByUserId" parameterType="Long" resultMap="SysRoleResult">
|
||||||
|
<include refid="selectRoleVo"/>
|
||||||
|
WHERE r.del_flag = '0' and sur.user_id = #{userId}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectRolesByUserId" parameterType="Long" resultMap="SysRoleResult">
|
||||||
|
select r.role_id,
|
||||||
|
r.role_name,
|
||||||
|
r.role_key,
|
||||||
|
r.role_sort,
|
||||||
|
r.data_scope,
|
||||||
|
r.status
|
||||||
|
from sys_saas_role r
|
||||||
|
WHERE r.del_flag = '0' and r.role_id in (select role_id from sys_saas_user_role where user_id = #{userId})
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectRoleById" resultMap="SysRoleResult">
|
||||||
|
<include refid="selectRoleVo"/>
|
||||||
|
WHERE r.del_flag = '0' and r.role_id = #{roleId}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
</mapper>
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="org.dromara.system.saas.mapper.SysSaasRoleMenuMapper">
|
||||||
|
|
||||||
|
</mapper>
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="org.dromara.system.saas.mapper.SysSaasSocialMapper">
|
||||||
|
|
||||||
|
</mapper>
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="org.dromara.system.saas.mapper.SysSaasTenantApplicationMapper">
|
||||||
|
|
||||||
|
</mapper>
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="org.dromara.system.saas.mapper.SysSaasTenantMapper">
|
||||||
|
|
||||||
|
</mapper>
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="org.dromara.system.saas.mapper.SysSaasTenantPackageMapper">
|
||||||
|
|
||||||
|
</mapper>
|
||||||
@ -0,0 +1,73 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="org.dromara.system.saas.mapper.SysSaasUserMapper">
|
||||||
|
|
||||||
|
<resultMap type="org.dromara.system.saas.domain.vo.SysSaasUserVo" id="SysUserResult">
|
||||||
|
<id property="userId" column="user_id"/>
|
||||||
|
</resultMap>
|
||||||
|
<resultMap type="org.dromara.system.saas.domain.vo.SysSaasUserExportVo" id="SysUserExportResult">
|
||||||
|
<id property="userId" column="user_id"/>
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<select id="selectPageUserList" resultMap="SysUserResult">
|
||||||
|
select
|
||||||
|
<if test="ew.getSqlSelect != null">
|
||||||
|
${ew.getSqlSelect}
|
||||||
|
</if>
|
||||||
|
<if test="ew.getSqlSelect == null">
|
||||||
|
u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex,
|
||||||
|
u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark
|
||||||
|
</if>
|
||||||
|
from sys_saas_user u
|
||||||
|
${ew.getCustomSqlSegment}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectUserList" resultMap="SysUserResult">
|
||||||
|
select
|
||||||
|
<if test="ew.getSqlSelect != null">
|
||||||
|
${ew.getSqlSelect}
|
||||||
|
</if>
|
||||||
|
<if test="ew.getSqlSelect == null">
|
||||||
|
u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex,
|
||||||
|
u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark
|
||||||
|
</if>
|
||||||
|
from sys_saas_user u
|
||||||
|
${ew.getCustomSqlSegment}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectUserExportList" resultMap="SysUserExportResult">
|
||||||
|
select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex,
|
||||||
|
u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
|
||||||
|
d.dept_name, d.leader, u1.user_name as leaderName
|
||||||
|
from sys_saas_user u
|
||||||
|
left join sys_saas_dept d on u.dept_id = d.dept_id
|
||||||
|
left join sys_saas_user u1 on u1.user_id = d.leader
|
||||||
|
${ew.getCustomSqlSegment}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectAllocatedList" resultMap="SysUserResult">
|
||||||
|
select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time
|
||||||
|
from sys_saas_user u
|
||||||
|
left join sys_saas_dept d on u.dept_id = d.dept_id
|
||||||
|
left join sys_saas_user_role sur on u.user_id = sur.user_id
|
||||||
|
left join sys_saas_role r on r.role_id = sur.role_id
|
||||||
|
${ew.getCustomSqlSegment}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectUnallocatedList" resultMap="SysUserResult">
|
||||||
|
select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time
|
||||||
|
from sys_saas_user u
|
||||||
|
left join sys_saas_dept d on u.dept_id = d.dept_id
|
||||||
|
left join sys_saas_user_role sur on u.user_id = sur.user_id
|
||||||
|
left join sys_saas_role r on r.role_id = sur.role_id
|
||||||
|
${ew.getCustomSqlSegment}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="countUserById" resultType="Long">
|
||||||
|
select count(*) from sys_saas_user where del_flag = '0' and user_id = #{userId}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
</mapper>
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="org.dromara.system.saas.mapper.SysSaasUserPostMapper">
|
||||||
|
|
||||||
|
</mapper>
|
||||||
@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="org.dromara.system.saas.mapper.SysSaasUserRoleMapper">
|
||||||
|
|
||||||
|
<select id="selectUserIdsByRoleId" resultType="Long">
|
||||||
|
select u.user_id from sys_saas_user u
|
||||||
|
inner join sys_saas_user_role sur
|
||||||
|
on u.user_id = sur.user_id and sur.role_id = #{roleId}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
</mapper>
|
||||||
Loading…
Reference in New Issue
Block a user