29 changed files with 1133 additions and 1 deletions
-
109system/src/main/java/com/canvas/web/config/SwaggerConfig.java
-
21system/src/main/java/com/canvas/web/modules/material/criteria/MaterialQueryCriteria.java
-
32system/src/main/java/com/canvas/web/modules/material/criteria/ThemeQueryCriteria.java
-
2system/src/main/java/com/canvas/web/modules/material/domain/Material.java
-
30system/src/main/java/com/canvas/web/modules/material/domain/MaterialClass.java
-
47system/src/main/java/com/canvas/web/modules/material/domain/MaterialFolder.java
-
29system/src/main/java/com/canvas/web/modules/material/domain/OrgaClass.java
-
36system/src/main/java/com/canvas/web/modules/material/domain/ThemeClass.java
-
47system/src/main/java/com/canvas/web/modules/material/domain/ThemeFolder.java
-
30system/src/main/java/com/canvas/web/modules/material/domain/ThemeInFolder.java
-
14system/src/main/java/com/canvas/web/modules/material/dto/FolderDTO.java
-
21system/src/main/java/com/canvas/web/modules/material/dto/MaterialDTO.java
-
15system/src/main/java/com/canvas/web/modules/material/dto/ThemeClassDTO.java
-
10system/src/main/java/com/canvas/web/modules/material/repository/MaterialClassRepository.java
-
13system/src/main/java/com/canvas/web/modules/material/repository/MaterialFolderRepository.java
-
37system/src/main/java/com/canvas/web/modules/material/repository/MaterialRepository.java
-
10system/src/main/java/com/canvas/web/modules/material/repository/OrgaClassRepository.java
-
18system/src/main/java/com/canvas/web/modules/material/repository/ThemeClassRepository.java
-
13system/src/main/java/com/canvas/web/modules/material/repository/ThemeFolderRepository.java
-
7system/src/main/java/com/canvas/web/modules/material/repository/ThemeInFolderRepository.java
-
132system/src/main/java/com/canvas/web/modules/material/rest/MaterialController.java
-
43system/src/main/java/com/canvas/web/modules/material/rest/ThemeClassController.java
-
40system/src/main/java/com/canvas/web/modules/material/service/MaterialService.java
-
15system/src/main/java/com/canvas/web/modules/material/service/ThemeClassService.java
-
245system/src/main/java/com/canvas/web/modules/material/service/impl/MaterialServiceImpl.java
-
59system/src/main/java/com/canvas/web/modules/material/service/impl/ThemeClassServiceImpl.java
-
17system/src/main/java/com/canvas/web/modules/material/vo/AlbumVO.java
-
18system/src/main/java/com/canvas/web/modules/material/vo/MyMaterialVO.java
-
24system/src/main/java/com/canvas/web/modules/material/vo/ThemeVO.java
@ -0,0 +1,109 @@ |
|||
package com.canvas.web.config; |
|||
|
|||
import com.fasterxml.classmate.TypeResolver; |
|||
import com.google.common.base.Predicates; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import org.springframework.beans.factory.annotation.Value; |
|||
import org.springframework.context.annotation.Bean; |
|||
import org.springframework.context.annotation.Configuration; |
|||
import org.springframework.core.Ordered; |
|||
import org.springframework.data.domain.Pageable; |
|||
import springfox.documentation.builders.ApiInfoBuilder; |
|||
import springfox.documentation.builders.ParameterBuilder; |
|||
import springfox.documentation.builders.PathSelectors; |
|||
import springfox.documentation.schema.AlternateTypeRule; |
|||
import springfox.documentation.schema.AlternateTypeRuleConvention; |
|||
import springfox.documentation.schema.ModelRef; |
|||
import springfox.documentation.service.ApiInfo; |
|||
import springfox.documentation.service.Parameter; |
|||
import springfox.documentation.spi.DocumentationType; |
|||
import springfox.documentation.spring.web.plugins.Docket; |
|||
import springfox.documentation.swagger2.annotations.EnableSwagger2; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
|
|||
import static com.google.common.collect.Lists.newArrayList; |
|||
import static springfox.documentation.schema.AlternateTypeRules.newRule; |
|||
|
|||
|
|||
@Configuration |
|||
@EnableSwagger2 |
|||
public class SwaggerConfig { |
|||
|
|||
@Value("${jwt.header}") |
|||
private String tokenHeader; |
|||
|
|||
@Value("${jwt.token-start-with}") |
|||
private String tokenStartWith; |
|||
|
|||
@Value("${swagger.enabled}") |
|||
private Boolean enabled; |
|||
|
|||
@Bean |
|||
@SuppressWarnings("all") |
|||
public Docket createRestApi() { |
|||
ParameterBuilder ticketPar = new ParameterBuilder(); |
|||
List<Parameter> pars = new ArrayList<>(); |
|||
ticketPar.name(tokenHeader).description("token") |
|||
.modelRef(new ModelRef("string")) |
|||
.parameterType("header") |
|||
.defaultValue(tokenStartWith + " ") |
|||
.required(true) |
|||
.build(); |
|||
pars.add(ticketPar.build()); |
|||
return new Docket(DocumentationType.SWAGGER_2) |
|||
.enable(enabled) |
|||
.apiInfo(apiInfo()) |
|||
.select() |
|||
.paths(Predicates.not(PathSelectors.regex("/error.*"))) |
|||
.build() |
|||
.globalOperationParameters(pars); |
|||
} |
|||
|
|||
private ApiInfo apiInfo() { |
|||
return new ApiInfoBuilder() |
|||
.description("画屏管理系统") |
|||
.title("画屏 接口文档") |
|||
.version("1.1") |
|||
.build(); |
|||
} |
|||
|
|||
} |
|||
|
|||
/** |
|||
* 将Pageable转换展示在swagger中 |
|||
*/ |
|||
@Configuration |
|||
class SwaggerDataConfig { |
|||
|
|||
@Bean |
|||
public AlternateTypeRuleConvention pageableConvention(final TypeResolver resolver) { |
|||
return new AlternateTypeRuleConvention() { |
|||
@Override |
|||
public int getOrder() { |
|||
return Ordered.HIGHEST_PRECEDENCE; |
|||
} |
|||
|
|||
@Override |
|||
public List<AlternateTypeRule> rules() { |
|||
return newArrayList(newRule(resolver.resolve(Pageable.class), resolver.resolve(Page.class))); |
|||
} |
|||
}; |
|||
} |
|||
|
|||
@ApiModel |
|||
@Data |
|||
private static class Page { |
|||
@ApiModelProperty("页码 (0..N)") |
|||
private Integer page; |
|||
|
|||
@ApiModelProperty("每页显示的数目") |
|||
private Integer size; |
|||
|
|||
@ApiModelProperty("以下列格式排序标准:property[,asc | desc]。 默认排序顺序为升序。 支持多种排序条件:如:id,asc") |
|||
private List<String> sort; |
|||
} |
|||
} |
@ -0,0 +1,21 @@ |
|||
package com.canvas.web.modules.material.criteria; |
|||
|
|||
|
|||
import com.canvas.web.annotation.Query; |
|||
import lombok.Data; |
|||
|
|||
@Data |
|||
public class MaterialQueryCriteria { |
|||
|
|||
@Query |
|||
private String materialName; |
|||
|
|||
@Query |
|||
private Integer materialType; |
|||
|
|||
@Query |
|||
private String orgaId; |
|||
|
|||
@Query |
|||
private String folderId; |
|||
} |
@ -0,0 +1,32 @@ |
|||
package com.canvas.web.modules.material.criteria; |
|||
|
|||
|
|||
import com.canvas.web.annotation.Query; |
|||
import lombok.Data; |
|||
|
|||
import java.sql.Timestamp; |
|||
|
|||
@Data |
|||
public class ThemeQueryCriteria { |
|||
|
|||
@Query |
|||
private String themeName; |
|||
|
|||
@Query |
|||
private String themeClass; |
|||
|
|||
@Query |
|||
private Integer deviceDirection; |
|||
|
|||
@Query |
|||
private String orgaId; |
|||
|
|||
@Query |
|||
private String startTime; |
|||
|
|||
@Query |
|||
private String endTime; |
|||
|
|||
@Query |
|||
private String folderId; |
|||
} |
@ -0,0 +1,30 @@ |
|||
package com.canvas.web.modules.material.domain; |
|||
|
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Getter; |
|||
import lombok.Setter; |
|||
import org.hibernate.annotations.GenericGenerator; |
|||
|
|||
import javax.persistence.*; |
|||
|
|||
@Getter |
|||
@Setter |
|||
@Entity |
|||
@Table(name = "material_class") |
|||
public class MaterialClass { |
|||
|
|||
@Id |
|||
@Column(name = "id") |
|||
@GeneratedValue(generator = "idGenerator") |
|||
@GenericGenerator(name = "idGenerator", strategy = "uuid") |
|||
private String id; |
|||
|
|||
@Column(name = "material_id") |
|||
@ApiModelProperty(value = "素材id") |
|||
private String materialId; |
|||
|
|||
@Column(name = "class_id") |
|||
@ApiModelProperty(value = "分类id") |
|||
private String classId; |
|||
|
|||
} |
@ -0,0 +1,47 @@ |
|||
package com.canvas.web.modules.material.domain; |
|||
|
|||
import com.canvas.web.base.BaseEntity; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Getter; |
|||
import lombok.Setter; |
|||
import org.hibernate.annotations.GenericGenerator; |
|||
|
|||
import javax.persistence.*; |
|||
import java.io.Serializable; |
|||
|
|||
@Getter |
|||
@Setter |
|||
@Entity |
|||
@Table(name = "material_folder") |
|||
public class MaterialFolder extends BaseEntity implements Serializable { |
|||
|
|||
@Id |
|||
@Column(name = "id") |
|||
@GeneratedValue(generator = "idGenerator") |
|||
@GenericGenerator(name = "idGenerator", strategy = "uuid") |
|||
private String id; |
|||
|
|||
@Column(name = "fid") |
|||
@ApiModelProperty(value = "上层id") |
|||
private String fid; |
|||
|
|||
@Column(name = "name") |
|||
@ApiModelProperty(value = "文件夹名称") |
|||
private String name; |
|||
|
|||
@Column(name = "img_path") |
|||
@ApiModelProperty(value = "文件夹封面图片路径") |
|||
private String imgPath; |
|||
|
|||
@Column(name = "orga_id") |
|||
@ApiModelProperty(value = "机构id") |
|||
private String orgaId; |
|||
|
|||
@Column(name = "is_state") |
|||
@ApiModelProperty(value = "状态") |
|||
private Integer isState; |
|||
|
|||
@Column(name = "is_del") |
|||
@ApiModelProperty(value = "是否删除") |
|||
private Boolean isDel; |
|||
} |
@ -0,0 +1,29 @@ |
|||
package com.canvas.web.modules.material.domain; |
|||
|
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Getter; |
|||
import lombok.Setter; |
|||
import org.hibernate.annotations.GenericGenerator; |
|||
|
|||
import javax.persistence.*; |
|||
|
|||
@Getter |
|||
@Setter |
|||
@Entity |
|||
@Table(name = "orga_class") |
|||
public class OrgaClass { |
|||
|
|||
@Id |
|||
@Column(name = "id") |
|||
@GeneratedValue(generator = "idGenerator") |
|||
@GenericGenerator(name = "idGenerator", strategy = "uuid") |
|||
private String id; |
|||
|
|||
@Column(name = "orga_id") |
|||
@ApiModelProperty(value = "机构id") |
|||
private String orgaId; |
|||
|
|||
@Column(name = "class_id") |
|||
@ApiModelProperty(value = "类别id") |
|||
private String classId; |
|||
} |
@ -0,0 +1,36 @@ |
|||
package com.canvas.web.modules.material.domain; |
|||
|
|||
import com.canvas.web.base.BaseEntity; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Getter; |
|||
import lombok.Setter; |
|||
import org.hibernate.annotations.GenericGenerator; |
|||
|
|||
import javax.persistence.*; |
|||
import java.io.Serializable; |
|||
|
|||
@Getter |
|||
@Setter |
|||
@Entity |
|||
@Table(name = "theme_class") |
|||
public class ThemeClass extends BaseEntity implements Serializable { |
|||
|
|||
@Id |
|||
@Column(name = "id") |
|||
@GeneratedValue(generator = "idGenerator") |
|||
@GenericGenerator(name = "idGenerator", strategy = "uuid") |
|||
private String id; |
|||
|
|||
@Column(name = "class_name") |
|||
@ApiModelProperty(value = "类别名称") |
|||
private String className; |
|||
|
|||
@Column(name = "is_all") |
|||
@ApiModelProperty(value = "是否全部机构可查看") |
|||
private Boolean isAll; |
|||
|
|||
@Column(name = "is_del") |
|||
@ApiModelProperty(value = "是否删除") |
|||
private Boolean isDel; |
|||
|
|||
} |
@ -0,0 +1,47 @@ |
|||
package com.canvas.web.modules.material.domain; |
|||
|
|||
import com.canvas.web.base.BaseEntity; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Getter; |
|||
import lombok.Setter; |
|||
import org.hibernate.annotations.GenericGenerator; |
|||
|
|||
import javax.persistence.*; |
|||
import java.io.Serializable; |
|||
|
|||
@Getter |
|||
@Setter |
|||
@Entity |
|||
@Table(name = "theme_folder") |
|||
public class ThemeFolder extends BaseEntity implements Serializable { |
|||
|
|||
@Id |
|||
@Column(name = "id") |
|||
@GeneratedValue(generator = "idGenerator") |
|||
@GenericGenerator(name = "idGenerator", strategy = "uuid") |
|||
private String id; |
|||
|
|||
@Column(name = "fid") |
|||
@ApiModelProperty(value = "上层id") |
|||
private String fid; |
|||
|
|||
@Column(name = "name") |
|||
@ApiModelProperty(value = "文件夹名称") |
|||
private String name; |
|||
|
|||
@Column(name = "img_path") |
|||
@ApiModelProperty(value = "文件夹封面图片路径") |
|||
private String imgPath; |
|||
|
|||
@Column(name = "orga_id") |
|||
@ApiModelProperty(value = "机构id") |
|||
private String orgaId; |
|||
|
|||
@Column(name = "is_state") |
|||
@ApiModelProperty(value = "状态") |
|||
private Integer isState; |
|||
|
|||
@Column(name = "is_del") |
|||
@ApiModelProperty(value = "是否删除") |
|||
private Boolean isDel; |
|||
} |
@ -0,0 +1,30 @@ |
|||
package com.canvas.web.modules.material.domain; |
|||
|
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Getter; |
|||
import lombok.Setter; |
|||
import org.hibernate.annotations.GenericGenerator; |
|||
|
|||
import javax.persistence.*; |
|||
|
|||
@Getter |
|||
@Setter |
|||
@Entity |
|||
@Table(name = "theme_in_folder") |
|||
public class ThemeInFolder { |
|||
|
|||
@Id |
|||
@Column(name = "id") |
|||
@GeneratedValue(generator = "idGenerator") |
|||
@GenericGenerator(name = "idGenerator", strategy = "uuid") |
|||
private String id; |
|||
|
|||
@Column(name = "tf_id") |
|||
@ApiModelProperty(value = "文件夹id") |
|||
private String tfId; |
|||
|
|||
@Column(name = "theme_id") |
|||
@ApiModelProperty(value = "主题素材id") |
|||
private String themeId; |
|||
|
|||
} |
@ -0,0 +1,14 @@ |
|||
package com.canvas.web.modules.material.dto; |
|||
|
|||
import lombok.Getter; |
|||
import lombok.Setter; |
|||
|
|||
@Getter |
|||
@Setter |
|||
public class FolderDTO { |
|||
private String id; |
|||
private String name; |
|||
private String fid; |
|||
private String imgPath; |
|||
private String orgaId; |
|||
} |
@ -0,0 +1,21 @@ |
|||
package com.canvas.web.modules.material.dto; |
|||
|
|||
import lombok.Getter; |
|||
import lombok.Setter; |
|||
|
|||
import java.util.List; |
|||
|
|||
@Getter |
|||
@Setter |
|||
public class MaterialDTO { |
|||
|
|||
private String materialId; |
|||
private String materialName; |
|||
private Integer materialType; |
|||
private Integer storeType; |
|||
private String depositUrl; |
|||
private String imgPath; |
|||
private String deviceDirection; |
|||
private String orgaId; |
|||
private List<String> classIds; |
|||
} |
@ -0,0 +1,15 @@ |
|||
package com.canvas.web.modules.material.dto; |
|||
|
|||
import lombok.Getter; |
|||
import lombok.Setter; |
|||
|
|||
import java.util.List; |
|||
|
|||
@Getter |
|||
@Setter |
|||
public class ThemeClassDTO { |
|||
private String id; |
|||
private String className; |
|||
private Boolean isAll; |
|||
private List<String> orgaIds; |
|||
} |
@ -0,0 +1,10 @@ |
|||
package com.canvas.web.modules.material.repository; |
|||
|
|||
import com.canvas.web.modules.material.domain.MaterialClass; |
|||
import org.springframework.data.jpa.repository.JpaRepository; |
|||
|
|||
public interface MaterialClassRepository extends JpaRepository<MaterialClass, String> { |
|||
|
|||
void deleteAllByMaterialId(String materialId); |
|||
|
|||
} |
@ -0,0 +1,13 @@ |
|||
package com.canvas.web.modules.material.repository; |
|||
|
|||
import com.canvas.web.modules.material.domain.MaterialFolder; |
|||
import org.springframework.data.jpa.repository.JpaRepository; |
|||
|
|||
import java.util.List; |
|||
|
|||
public interface MaterialFolderRepository extends JpaRepository<MaterialFolder, String> { |
|||
|
|||
MaterialFolder findFirstByOrgaIdAndFidIsNull(String orgaId); |
|||
List<MaterialFolder> findAllByOrgaIdAndFid(String orgaId, String fid); |
|||
List<MaterialFolder> findAllByFid(String fid); |
|||
} |
@ -0,0 +1,10 @@ |
|||
package com.canvas.web.modules.material.repository; |
|||
|
|||
import com.canvas.web.modules.material.domain.OrgaClass; |
|||
import org.springframework.data.jpa.repository.JpaRepository; |
|||
|
|||
public interface OrgaClassRepository extends JpaRepository<OrgaClass, String> { |
|||
|
|||
void deleteAllByClassId(String classId); |
|||
|
|||
} |
@ -0,0 +1,18 @@ |
|||
package com.canvas.web.modules.material.repository; |
|||
|
|||
import com.canvas.web.modules.material.domain.ThemeClass; |
|||
import org.springframework.data.jpa.repository.JpaRepository; |
|||
import org.springframework.data.jpa.repository.Query; |
|||
|
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
public interface ThemeClassRepository extends JpaRepository<ThemeClass, String> { |
|||
|
|||
@Query(nativeQuery = true, |
|||
value = "select tc.id as id,tc.class_name as className from theme_class tc where tc.is_all = true " + |
|||
"UNION " + |
|||
"select tc.id as id,tc.class_name as className from theme_class tc inner join orga_class oc on tc.id = oc.class_id where tc.id = ?1 ") |
|||
List<Map<String,Object>> getThemeByOrgaId(String orgaId); |
|||
|
|||
} |
@ -0,0 +1,13 @@ |
|||
package com.canvas.web.modules.material.repository; |
|||
|
|||
import com.canvas.web.modules.material.domain.ThemeFolder; |
|||
import org.springframework.data.jpa.repository.JpaRepository; |
|||
|
|||
import java.util.List; |
|||
|
|||
public interface ThemeFolderRepository extends JpaRepository<ThemeFolder, String> { |
|||
|
|||
ThemeFolder findFirstByOrgaIdAndFidIsNull(String orgaId); |
|||
List<ThemeFolder> findAllByOrgaIdAndFid(String orgaId, String fid); |
|||
List<ThemeFolder> findAllByFid(String fid); |
|||
} |
@ -0,0 +1,7 @@ |
|||
package com.canvas.web.modules.material.repository; |
|||
|
|||
import com.canvas.web.modules.material.domain.ThemeInFolder; |
|||
import org.springframework.data.jpa.repository.JpaRepository; |
|||
|
|||
public interface ThemeInFolderRepository extends JpaRepository<ThemeInFolder, String> { |
|||
} |
@ -0,0 +1,132 @@ |
|||
package com.canvas.web.modules.material.rest; |
|||
|
|||
import com.canvas.web.modules.material.criteria.MaterialQueryCriteria; |
|||
import com.canvas.web.modules.material.criteria.ThemeQueryCriteria; |
|||
import com.canvas.web.modules.material.dto.FolderDTO; |
|||
import com.canvas.web.modules.material.dto.MaterialDTO; |
|||
import com.canvas.web.modules.material.service.MaterialService; |
|||
import com.canvas.web.modules.material.vo.AlbumVO; |
|||
import com.canvas.web.modules.material.vo.MyMaterialVO; |
|||
import com.canvas.web.modules.material.vo.ThemeVO; |
|||
import com.canvas.web.modules.utils.Response; |
|||
import com.canvas.web.modules.utils.ResultUtils; |
|||
import com.canvas.web.modules.utils.enums.ResponseEnum; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import lombok.RequiredArgsConstructor; |
|||
import org.springframework.data.domain.Pageable; |
|||
import org.springframework.validation.annotation.Validated; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import java.util.List; |
|||
|
|||
@RestController |
|||
@RequiredArgsConstructor |
|||
@Api(tags = "素材库管理") |
|||
@RequestMapping("/api/material") |
|||
public class MaterialController { |
|||
|
|||
private final MaterialService materialService; |
|||
|
|||
@ApiOperation("编辑主题/素材") |
|||
@PostMapping("/save") |
|||
public Response<Object> save( |
|||
@Validated @RequestBody MaterialDTO dto |
|||
){ |
|||
materialService.edit(dto); |
|||
return Response.success(dto.getMaterialId()== null ? ResponseEnum.CREATED : ResponseEnum.UPDATE_SUCCESS); |
|||
} |
|||
|
|||
@ApiOperation("主题库素材历史列表") |
|||
@GetMapping("/getThemeHistoryList") |
|||
public Response<ResultUtils<List<ThemeVO>>> getThemeHistoryList( |
|||
ThemeQueryCriteria criteria, Pageable page |
|||
){ |
|||
return Response.success(materialService.themeHistoryList(criteria.getThemeName(),criteria.getStartTime(),criteria.getEndTime(),page)); |
|||
} |
|||
|
|||
@ApiOperation("主题库素材历史列表") |
|||
@GetMapping("/getThemeLibrary") |
|||
public Response<ResultUtils<List<ThemeVO>>> getThemeLibrary( |
|||
ThemeQueryCriteria criteria, Pageable page |
|||
){ |
|||
return Response.success(materialService.getThemeLibrary(criteria.getThemeName(),criteria.getThemeClass(),criteria.getDeviceDirection(),page)); |
|||
} |
|||
|
|||
@ApiOperation("我的画布") |
|||
@PostMapping("/myAlbum") |
|||
public Response<AlbumVO> myAlbum( |
|||
ThemeQueryCriteria criteria, Pageable page |
|||
){ |
|||
AlbumVO vo = new AlbumVO(); |
|||
vo.setMaterialFolders(materialService.getAlbumFolder(criteria.getOrgaId(),criteria.getFolderId(),page.getPageNumber())); |
|||
vo.setPageThemeVO(materialService.getMyAlbumTheme(criteria.getOrgaId(),criteria.getFolderId(),criteria.getThemeName(),page)); |
|||
return Response.success(vo); |
|||
} |
|||
|
|||
@ApiOperation("编辑文件夹-主题库") |
|||
@PostMapping("/saveThemeFolder") |
|||
public Response<Object> saveThemeFolder( |
|||
@Validated @RequestBody FolderDTO dto |
|||
){ |
|||
materialService.editThemeFolder(dto); |
|||
return Response.success(dto.getId()== null ? ResponseEnum.CREATED : ResponseEnum.UPDATE_SUCCESS); |
|||
} |
|||
|
|||
@ApiOperation("添加到画册-主题库") |
|||
@PostMapping("/addMyAlbum") |
|||
public Response<Object> addMyAlbum( |
|||
String tfId,String themeId,String orgaId |
|||
){ |
|||
materialService.addMyAlbum(tfId,themeId,orgaId); |
|||
return Response.success(ResponseEnum.CREATED); |
|||
} |
|||
|
|||
@ApiOperation("删除我的画册主题素材") |
|||
@PostMapping("/deleteMyAlbum") |
|||
public Response<Object> deleteMyAlbum( |
|||
String id |
|||
){ |
|||
materialService.deleteMyAlbum(id); |
|||
return Response.success(ResponseEnum.DELETE_SUCCESS); |
|||
} |
|||
|
|||
@ApiOperation("删除文件夹-主题库") |
|||
@PostMapping("/deleteThemeFolder") |
|||
public Response<Object> deleteThemeFolder( |
|||
String id |
|||
){ |
|||
materialService.deleteThemeFolder(id); |
|||
return Response.success(ResponseEnum.DELETE_SUCCESS); |
|||
} |
|||
|
|||
@ApiOperation("编辑文件夹-素材库") |
|||
@PostMapping("/saveMaterialFolder") |
|||
public Response<Object> saveMaterialFolder( |
|||
@Validated @RequestBody FolderDTO dto |
|||
){ |
|||
materialService.editMaterialFolder(dto); |
|||
return Response.success(dto.getId()== null ? ResponseEnum.CREATED : ResponseEnum.UPDATE_SUCCESS); |
|||
} |
|||
|
|||
@ApiOperation("删除文件夹-素材库") |
|||
@PostMapping("/deleteMaterialFolder") |
|||
public Response<Object> deleteMaterialFolder( |
|||
String id |
|||
){ |
|||
materialService.deleteMaterialFolder(id); |
|||
return Response.success(ResponseEnum.DELETE_SUCCESS); |
|||
} |
|||
|
|||
@ApiOperation("我的素材") |
|||
@PostMapping("/myMaterial") |
|||
public Response<MyMaterialVO> myMaterial( |
|||
MaterialQueryCriteria criteria, Pageable page |
|||
){ |
|||
MyMaterialVO vo = new MyMaterialVO(); |
|||
vo.setMaterialFolders(materialService.getMaterialFolder(criteria.getOrgaId(),criteria.getFolderId(),page.getPageNumber())); |
|||
vo.setPageThemeVO(materialService.getMyMaterial(criteria.getOrgaId(),criteria.getFolderId(),criteria.getMaterialName(),criteria.getMaterialType(),page)); |
|||
return Response.success(vo); |
|||
} |
|||
|
|||
} |
@ -0,0 +1,43 @@ |
|||
package com.canvas.web.modules.material.rest; |
|||
|
|||
import com.canvas.web.modules.device.dto.DeviceDTO; |
|||
import com.canvas.web.modules.material.domain.ThemeClass; |
|||
import com.canvas.web.modules.material.dto.ThemeClassDTO; |
|||
import com.canvas.web.modules.material.service.ThemeClassService; |
|||
import com.canvas.web.modules.utils.Response; |
|||
import com.canvas.web.modules.utils.enums.ResponseEnum; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import lombok.RequiredArgsConstructor; |
|||
import org.springframework.validation.annotation.Validated; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
@RestController |
|||
@RequiredArgsConstructor |
|||
@Api(tags = "主题分类管理") |
|||
@RequestMapping("/api/themeClass") |
|||
public class ThemeClassController { |
|||
|
|||
ThemeClassService themeClassService; |
|||
|
|||
@ApiOperation("编辑分类") |
|||
@PostMapping("/save") |
|||
public Response<Object> save( |
|||
@Validated @RequestBody ThemeClassDTO dto |
|||
){ |
|||
themeClassService.edit(dto); |
|||
return Response.success(dto.getId()== null ? ResponseEnum.CREATED : ResponseEnum.UPDATE_SUCCESS); |
|||
} |
|||
|
|||
@ApiOperation("根据机构id查询主题列表") |
|||
@GetMapping("/getThemeList") |
|||
public Response<List<Map<String,Object>>> getTheme( |
|||
String orgaId |
|||
){ |
|||
return Response.success(themeClassService.getTheme(orgaId)); |
|||
} |
|||
|
|||
} |
@ -0,0 +1,40 @@ |
|||
package com.canvas.web.modules.material.service; |
|||
|
|||
import com.canvas.web.modules.material.domain.MaterialFolder; |
|||
import com.canvas.web.modules.material.domain.ThemeFolder; |
|||
import com.canvas.web.modules.material.dto.FolderDTO; |
|||
import com.canvas.web.modules.material.dto.MaterialDTO; |
|||
import com.canvas.web.modules.material.vo.ThemeVO; |
|||
import com.canvas.web.modules.utils.ResultUtils; |
|||
import org.springframework.data.domain.Pageable; |
|||
|
|||
import java.util.List; |
|||
|
|||
public interface MaterialService { |
|||
//编辑素材库信息 |
|||
void edit(MaterialDTO dto); |
|||
//分页查询主题素材历史信息 |
|||
ResultUtils<List<ThemeVO>> themeHistoryList(String themeName, String startTime, String endTime, Pageable pageable); |
|||
//分页查询主题库信息 |
|||
ResultUtils<List<ThemeVO>> getThemeLibrary(String themeName, String themeClass, Integer deviceDirection, Pageable pageable); |
|||
//根据机构id获取我的画册文件夹 |
|||
List<ThemeFolder> getAlbumFolder(String orgaId, String folderId, Integer pageNum); |
|||
//根据机构id获取素材文件夹 |
|||
List<MaterialFolder> getMaterialFolder(String orgaId, String folderId, Integer pageNum); |
|||
//分页获取我的画册文件夹内素材 |
|||
ResultUtils<List<ThemeVO>> getMyAlbumTheme(String orgaId,String folderId,String themeName,Pageable pageable); |
|||
//分页获取素材库内容 |
|||
ResultUtils<List<ThemeVO>> getMyMaterial(String orgaId,String folderId,String materialName,Integer materialType,Pageable pageable); |
|||
//编辑主题库文件夹 |
|||
void editThemeFolder(FolderDTO dto); |
|||
//编辑素材库文件夹 |
|||
void editMaterialFolder(FolderDTO dto); |
|||
//添加素材到我的画册 |
|||
void addMyAlbum(String tfId,String themeId,String orgaId); |
|||
//删除我的画册主题素材 |
|||
void deleteMyAlbum(String id); |
|||
//删除主题库文件夹 |
|||
void deleteThemeFolder(String id); |
|||
//删除素材库文件夹 |
|||
void deleteMaterialFolder(String id); |
|||
} |
@ -0,0 +1,15 @@ |
|||
package com.canvas.web.modules.material.service; |
|||
|
|||
import com.canvas.web.modules.material.domain.ThemeClass; |
|||
import com.canvas.web.modules.material.dto.ThemeClassDTO; |
|||
|
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
public interface ThemeClassService { |
|||
|
|||
void edit(ThemeClassDTO dto); |
|||
//根据机构id查询主题类别 |
|||
List<Map<String,Object>> getTheme(String orgaId); |
|||
|
|||
} |
@ -0,0 +1,245 @@ |
|||
package com.canvas.web.modules.material.service.impl; |
|||
|
|||
import com.canvas.web.modules.material.domain.*; |
|||
import com.canvas.web.modules.material.dto.FolderDTO; |
|||
import com.canvas.web.modules.material.dto.MaterialDTO; |
|||
import com.canvas.web.modules.material.repository.*; |
|||
import com.canvas.web.modules.material.service.MaterialService; |
|||
import com.canvas.web.modules.material.vo.ThemeVO; |
|||
import com.canvas.web.modules.utils.MapUtil; |
|||
import com.canvas.web.modules.utils.PageSort; |
|||
import com.canvas.web.modules.utils.ResultUtils; |
|||
import com.canvas.web.utils.StringUtils; |
|||
import lombok.RequiredArgsConstructor; |
|||
import org.apache.xmlbeans.impl.inst2xsd.SalamiSliceStrategy; |
|||
import org.springframework.data.domain.Page; |
|||
import org.springframework.data.domain.PageRequest; |
|||
import org.springframework.data.domain.Pageable; |
|||
import org.springframework.data.domain.Sort; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.sql.Timestamp; |
|||
import java.util.ArrayList; |
|||
import java.util.Date; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
@Service |
|||
@RequiredArgsConstructor |
|||
public class MaterialServiceImpl implements MaterialService { |
|||
|
|||
MaterialRepository materialRepository; |
|||
MaterialClassRepository materialClassRepository; |
|||
ThemeFolderRepository themeFolderRepository; |
|||
MaterialFolderRepository materialFolderRepository; |
|||
ThemeInFolderRepository themeInFolderRepository; |
|||
|
|||
@Override |
|||
public void edit(MaterialDTO dto) { |
|||
Material material = new Material(); |
|||
//修改 |
|||
if(null != dto.getMaterialId()){ |
|||
material = materialRepository.findById(dto.getMaterialId()).get(); |
|||
material.setUpdateTime(new Timestamp(new Date().getTime())); |
|||
}else{ |
|||
material.setCreateTime(new Timestamp(new Date().getTime())); |
|||
material.setUpdateTime(new Timestamp(new Date().getTime())); |
|||
material.setIsDel(false); |
|||
material.setIsState(1); |
|||
} |
|||
material.setName(dto.getMaterialName()); |
|||
material.setType(dto.getMaterialType()); |
|||
material.setStoreType(dto.getStoreType()); |
|||
material.setDepositUrl(dto.getDepositUrl()); |
|||
material.setImgPath(dto.getImgPath()); |
|||
material.setDeviceDirection(dto.getDeviceDirection()); |
|||
material.setOrgaId(dto.getOrgaId()); |
|||
material = materialRepository.saveAndFlush(material); |
|||
|
|||
//如果是主题库 添加主题库类别 |
|||
if(material.getStoreType() == 2){ |
|||
materialClassRepository.deleteAllByMaterialId(material.getId()); |
|||
List<MaterialClass> materialClasses = new ArrayList<>(); |
|||
for(int i = 0 ;i<dto.getClassIds().size();i++){ |
|||
MaterialClass mc = new MaterialClass(); |
|||
mc.setMaterialId(material.getId()); |
|||
mc.setClassId(dto.getClassIds().get(i)); |
|||
materialClasses.add(mc); |
|||
} |
|||
|
|||
materialClassRepository.saveAll(materialClasses); |
|||
} |
|||
|
|||
} |
|||
|
|||
@Override |
|||
public ResultUtils<List<ThemeVO>> themeHistoryList(String themeName, String startTime, String endTime, Pageable pageable) { |
|||
PageRequest page= PageSort.pageRequest(pageable.getPageNumber(), pageable.getPageSize(), "create_time", Sort.Direction.DESC); |
|||
//分页查询 |
|||
Page<Map<String,Object>> pageMap = materialRepository.getThemeHistoryList(themeName,startTime,endTime,page); |
|||
//初始化分页返回数据 |
|||
List<ThemeVO> themeVOList = MapUtil.setList(pageMap.getContent(),ThemeVO.class); |
|||
return ResultUtils.getResult(themeVOList,pageMap); |
|||
} |
|||
|
|||
@Override |
|||
public ResultUtils<List<ThemeVO>> getThemeLibrary(String themeName, String themeClass, Integer deviceDirection, Pageable pageable) { |
|||
PageRequest page= PageSort.pageRequest(pageable.getPageNumber(), pageable.getPageSize(), "create_time", Sort.Direction.DESC); |
|||
//分页查询 |
|||
Page<Map<String,Object>> pageMap = materialRepository.getThemeLibrary(themeName,themeClass,deviceDirection,page); |
|||
//初始化分页返回数据 |
|||
List<ThemeVO> themeVOList = MapUtil.setList(pageMap.getContent(),ThemeVO.class); |
|||
return ResultUtils.getResult(themeVOList,pageMap); |
|||
} |
|||
|
|||
@Override |
|||
public List<ThemeFolder> getAlbumFolder(String orgaId, String folderId, Integer pageNum) { |
|||
//当页面为1时 则为画布初始化 |
|||
if(pageNum == 1){ |
|||
ThemeFolder firstMaterialFolder = themeFolderRepository.findFirstByOrgaIdAndFidIsNull(orgaId); |
|||
if(null == firstMaterialFolder){ |
|||
firstMaterialFolder = new ThemeFolder(); |
|||
firstMaterialFolder.setIsDel(false); |
|||
firstMaterialFolder.setIsState(1); |
|||
firstMaterialFolder.setOrgaId(orgaId); |
|||
firstMaterialFolder = themeFolderRepository.save(firstMaterialFolder); |
|||
folderId = firstMaterialFolder.getId(); |
|||
} |
|||
} |
|||
return themeFolderRepository.findAllByOrgaIdAndFid(orgaId,folderId); |
|||
} |
|||
|
|||
@Override |
|||
public List<MaterialFolder> getMaterialFolder(String orgaId, String folderId, Integer pageNum) { |
|||
//当页面为1时 则为素材库初始化 |
|||
if(pageNum == 1){ |
|||
MaterialFolder firstMaterialFolder = materialFolderRepository.findFirstByOrgaIdAndFidIsNull(orgaId); |
|||
if(null == firstMaterialFolder){ |
|||
firstMaterialFolder = new MaterialFolder(); |
|||
firstMaterialFolder.setIsDel(false); |
|||
firstMaterialFolder.setIsState(1); |
|||
firstMaterialFolder.setOrgaId(orgaId); |
|||
firstMaterialFolder = materialFolderRepository.save(firstMaterialFolder); |
|||
folderId = firstMaterialFolder.getId(); |
|||
} |
|||
} |
|||
return materialFolderRepository.findAllByOrgaIdAndFid(orgaId,folderId); |
|||
} |
|||
|
|||
@Override |
|||
public ResultUtils<List<ThemeVO>> getMyAlbumTheme(String orgaId, String folderId, String themeName, Pageable pageable) { |
|||
PageRequest page= PageSort.pageRequest(pageable.getPageNumber(), pageable.getPageSize(), "create_time", Sort.Direction.DESC); |
|||
folderId = folderId != null ? folderId : themeFolderRepository.findFirstByOrgaIdAndFidIsNull(orgaId).getId(); |
|||
Page<Map<String,Object>> pageMap = materialRepository.getMyAlbumTheme(folderId,themeName,page); |
|||
List<ThemeVO> themeVOList = MapUtil.setList(pageMap.getContent(),ThemeVO.class); |
|||
return ResultUtils.getResult(themeVOList,pageMap); |
|||
} |
|||
|
|||
@Override |
|||
public ResultUtils<List<ThemeVO>> getMyMaterial(String orgaId, String folderId, String materialName,Integer materialType, Pageable pageable) { |
|||
PageRequest page= PageSort.pageRequest(pageable.getPageNumber(), pageable.getPageSize(), "create_time", Sort.Direction.DESC); |
|||
folderId = folderId != null ? folderId : materialFolderRepository.findFirstByOrgaIdAndFidIsNull(orgaId).getId(); |
|||
Page<Map<String,Object>> pageMap = materialRepository.getMyMaterial(folderId,materialName,materialType,page); |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public void editThemeFolder(FolderDTO dto) { |
|||
ThemeFolder folder = new ThemeFolder(); |
|||
if(null != dto.getId()){ |
|||
folder = themeFolderRepository.findById(dto.getId()).get(); |
|||
}else{ |
|||
folder.setCreateTime(new Timestamp(new Date().getTime())); |
|||
folder.setIsDel(false); |
|||
folder.setIsState(1); |
|||
} |
|||
folder.setFid(dto.getFid()); |
|||
folder.setName(dto.getName()); |
|||
folder.setImgPath(dto.getImgPath()); |
|||
folder.setOrgaId(dto.getOrgaId()); |
|||
folder.setUpdateTime(new Timestamp(new Date().getTime())); |
|||
themeFolderRepository.saveAndFlush(folder); |
|||
} |
|||
|
|||
@Override |
|||
public void editMaterialFolder(FolderDTO dto) { |
|||
MaterialFolder folder = new MaterialFolder(); |
|||
if(null != dto.getId()){ |
|||
folder = materialFolderRepository.findById(dto.getId()).get(); |
|||
}else{ |
|||
folder.setCreateTime(new Timestamp(new Date().getTime())); |
|||
folder.setIsDel(false); |
|||
folder.setIsState(1); |
|||
} |
|||
folder.setFid(dto.getFid()); |
|||
folder.setName(dto.getName()); |
|||
folder.setImgPath(dto.getImgPath()); |
|||
folder.setOrgaId(dto.getOrgaId()); |
|||
folder.setUpdateTime(new Timestamp(new Date().getTime())); |
|||
materialFolderRepository.saveAndFlush(folder); |
|||
} |
|||
|
|||
@Override |
|||
public void addMyAlbum(String tfId, String themeId,String orgaId) { |
|||
ThemeInFolder themeInFolder = new ThemeInFolder(); |
|||
if(StringUtils.isEmpty(tfId)){ |
|||
ThemeFolder firstMaterialFolder = themeFolderRepository.findFirstByOrgaIdAndFidIsNull(orgaId); |
|||
if(null == firstMaterialFolder){ |
|||
firstMaterialFolder = new ThemeFolder(); |
|||
firstMaterialFolder.setIsDel(false); |
|||
firstMaterialFolder.setIsState(1); |
|||
firstMaterialFolder.setOrgaId(orgaId); |
|||
firstMaterialFolder = themeFolderRepository.save(firstMaterialFolder); |
|||
tfId = firstMaterialFolder.getId(); |
|||
} |
|||
} |
|||
themeInFolder.setThemeId(themeId); |
|||
themeInFolder.setTfId(tfId); |
|||
themeInFolderRepository.saveAndFlush(themeInFolder); |
|||
} |
|||
|
|||
@Override |
|||
public void deleteMyAlbum(String id) { |
|||
themeInFolderRepository.deleteById(id); |
|||
} |
|||
|
|||
@Override |
|||
public void deleteThemeFolder(String id) { |
|||
List<String> resultString = new ArrayList<>(); |
|||
resultString = getThemeFolder(id,resultString); |
|||
System.out.println(resultString); |
|||
themeFolderRepository.deleteAllById(resultString); |
|||
} |
|||
|
|||
@Override |
|||
public void deleteMaterialFolder(String id) { |
|||
List<String> resultString = new ArrayList<>(); |
|||
resultString = getMaterialFolder(id,resultString); |
|||
System.out.println(resultString); |
|||
materialFolderRepository.deleteAllById(resultString); |
|||
} |
|||
|
|||
public List<String> getThemeFolder(String id,List<String> resultString){ |
|||
List<ThemeFolder> themeFolders = themeFolderRepository.findAllByFid(id); |
|||
if(null == themeFolders){ |
|||
return resultString; |
|||
}else{ |
|||
for(int i = 0;i<themeFolders.size();i++){ |
|||
getThemeFolder(themeFolders.get(i).getId(),resultString); |
|||
} |
|||
return resultString; |
|||
} |
|||
} |
|||
|
|||
public List<String> getMaterialFolder(String id,List<String> resultString){ |
|||
List<MaterialFolder> materialFolders = materialFolderRepository.findAllByFid(id); |
|||
if(null == materialFolders){ |
|||
return resultString; |
|||
}else{ |
|||
for(int i = 0;i<materialFolders.size();i++){ |
|||
getMaterialFolder(materialFolders.get(i).getId(),resultString); |
|||
} |
|||
return resultString; |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,59 @@ |
|||
package com.canvas.web.modules.material.service.impl; |
|||
|
|||
|
|||
import com.canvas.web.modules.material.domain.OrgaClass; |
|||
import com.canvas.web.modules.material.domain.ThemeClass; |
|||
import com.canvas.web.modules.material.dto.ThemeClassDTO; |
|||
import com.canvas.web.modules.material.repository.OrgaClassRepository; |
|||
import com.canvas.web.modules.material.repository.ThemeClassRepository; |
|||
import com.canvas.web.modules.material.service.ThemeClassService; |
|||
import lombok.RequiredArgsConstructor; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.sql.Timestamp; |
|||
import java.util.ArrayList; |
|||
import java.util.Date; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
@Service |
|||
@RequiredArgsConstructor |
|||
public class ThemeClassServiceImpl implements ThemeClassService { |
|||
|
|||
ThemeClassRepository themeClassRepository; |
|||
OrgaClassRepository orgaClassRepository; |
|||
|
|||
@Override |
|||
public void edit(ThemeClassDTO dto) { |
|||
ThemeClass themeClass = new ThemeClass(); |
|||
if(null != dto.getId()){ |
|||
themeClass = themeClassRepository.findById(dto.getId()).get(); |
|||
themeClass.setUpdateTime(new Timestamp(new Date().getTime())); |
|||
}else{ |
|||
themeClass.setCreateTime(new Timestamp(new Date().getTime())); |
|||
themeClass.setUpdateTime(new Timestamp(new Date().getTime())); |
|||
} |
|||
themeClass.setIsAll(dto.getIsAll()); |
|||
themeClass.setClassName(dto.getClassName()); |
|||
themeClass = themeClassRepository.saveAndFlush(themeClass); |
|||
if(themeClass.getIsAll()){ |
|||
orgaClassRepository.deleteAllByClassId(themeClass.getId()); |
|||
}else if(null != dto.getOrgaIds() || dto.getOrgaIds().size() !=0){ |
|||
orgaClassRepository.deleteAllByClassId(themeClass.getId()); |
|||
List<OrgaClass> orgaClassList = new ArrayList<>(); |
|||
for(int i = 0;i<dto.getOrgaIds().size();i++){ |
|||
OrgaClass orgaClass = new OrgaClass(); |
|||
orgaClass.setClassId(themeClass.getId()); |
|||
orgaClass.setOrgaId(dto.getOrgaIds().get(i)); |
|||
orgaClassList.add(orgaClass); |
|||
} |
|||
orgaClassRepository.saveAllAndFlush(orgaClassList); |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
public List<Map<String,Object>> getTheme(String orgaId) { |
|||
List<Map<String,Object>> list = themeClassRepository.getThemeByOrgaId(orgaId); |
|||
return list; |
|||
} |
|||
} |
@ -0,0 +1,17 @@ |
|||
package com.canvas.web.modules.material.vo; |
|||
|
|||
import com.canvas.web.modules.material.domain.ThemeFolder; |
|||
import com.canvas.web.modules.utils.ResultUtils; |
|||
import lombok.Getter; |
|||
import lombok.Setter; |
|||
|
|||
import java.util.List; |
|||
|
|||
@Getter |
|||
@Setter |
|||
public class AlbumVO { |
|||
|
|||
private List<ThemeFolder> materialFolders; |
|||
private ResultUtils<List<ThemeVO>> pageThemeVO; |
|||
|
|||
} |
@ -0,0 +1,18 @@ |
|||
package com.canvas.web.modules.material.vo; |
|||
|
|||
import com.canvas.web.modules.material.domain.MaterialFolder; |
|||
import com.canvas.web.modules.material.domain.ThemeFolder; |
|||
import com.canvas.web.modules.utils.ResultUtils; |
|||
import lombok.Getter; |
|||
import lombok.Setter; |
|||
|
|||
import java.util.List; |
|||
|
|||
@Getter |
|||
@Setter |
|||
public class MyMaterialVO { |
|||
|
|||
private List<MaterialFolder> materialFolders; |
|||
private ResultUtils<List<ThemeVO>> pageThemeVO; |
|||
|
|||
} |
@ -0,0 +1,24 @@ |
|||
package com.canvas.web.modules.material.vo; |
|||
|
|||
import com.canvas.web.modules.material.domain.MaterialClass; |
|||
import lombok.Getter; |
|||
import lombok.Setter; |
|||
|
|||
import java.sql.Timestamp; |
|||
import java.util.List; |
|||
|
|||
@Getter |
|||
@Setter |
|||
public class ThemeVO { |
|||
|
|||
private String materialId; |
|||
private String materialName; |
|||
private String materialType; |
|||
private String depositUrl; |
|||
private String imgPath; |
|||
private String classes; |
|||
private Integer deviceDirection; |
|||
private Timestamp createTime; |
|||
private Boolean isDel; |
|||
|
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue