Browse Source

新增 发布模块

master
xia 3 years ago
parent
commit
2384920e83
  1. 30
      system/src/main/java/com/canvas/web/modules/material/domain/MaterialInFolder.java
  2. 1
      system/src/main/java/com/canvas/web/modules/material/dto/MaterialDTO.java
  3. 10
      system/src/main/java/com/canvas/web/modules/material/repository/MaterialInFolderRepository.java
  4. 6
      system/src/main/java/com/canvas/web/modules/material/repository/MaterialRepository.java
  5. 18
      system/src/main/java/com/canvas/web/modules/material/rest/MaterialController.java
  6. 4
      system/src/main/java/com/canvas/web/modules/material/service/MaterialService.java
  7. 35
      system/src/main/java/com/canvas/web/modules/material/service/impl/MaterialServiceImpl.java
  8. 2
      system/src/main/java/com/canvas/web/modules/material/vo/ThemeVO.java
  9. 65
      system/src/main/java/com/canvas/web/modules/release/domain/ReleaseList.java
  10. 40
      system/src/main/java/com/canvas/web/modules/release/domain/ReleaseMaterial.java
  11. 26
      system/src/main/java/com/canvas/web/modules/release/repository/ReleaseListRepository.java
  12. 9
      system/src/main/java/com/canvas/web/modules/release/repository/ReleaseMaterialRepository.java
  13. 36
      system/src/main/java/com/canvas/web/modules/release/rest/ReleaseListController.java
  14. 12
      system/src/main/java/com/canvas/web/modules/release/service/ReleaseListService.java
  15. 34
      system/src/main/java/com/canvas/web/modules/release/service/impl/ReleaseListServiceImpl.java
  16. 28
      system/src/main/java/com/canvas/web/modules/release/vo/ReleaseListVO.java

30
system/src/main/java/com/canvas/web/modules/material/domain/MaterialInFolder.java

@ -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_in_folder")
public class MaterialInFolder {
@Id
@Column(name = "id")
@GeneratedValue(generator = "idGenerator")
@GenericGenerator(name = "idGenerator", strategy = "uuid")
private String id;
@Column(name = "mf_id")
@ApiModelProperty(value = "文件夹id")
private String mfId;
@Column(name = "material_id")
@ApiModelProperty(value = "素材id")
private String materialId;
}

1
system/src/main/java/com/canvas/web/modules/material/dto/MaterialDTO.java

@ -17,5 +17,6 @@ public class MaterialDTO {
private String imgPath;
private String deviceDirection;
private String orgaId;
private String folderId;
private List<String> classIds;
}

10
system/src/main/java/com/canvas/web/modules/material/repository/MaterialInFolderRepository.java

@ -0,0 +1,10 @@
package com.canvas.web.modules.material.repository;
import com.canvas.web.modules.material.domain.MaterialInFolder;
import org.springframework.data.jpa.repository.JpaRepository;
public interface MaterialInFolderRepository extends JpaRepository<MaterialInFolder, String> {
void deleteAllByMaterialId(String materialId);
}

6
system/src/main/java/com/canvas/web/modules/material/repository/MaterialRepository.java

@ -30,7 +30,7 @@ public interface MaterialRepository extends JpaRepository<Material, String> {
@Query(nativeQuery = true,
value = "SELECT ml.id as materialId,ml.name as materialName,ml.type as materialType,ml.deposit_url as depositUrl,ml.img_path as imgPath," +
"ml.device_direction as deviceDirection " +
"ml.device_direction as deviceDirection,tif.id as inFolderId " +
"FROM material ml INNER JOIN theme_in_folder tif ON ml.id = tif.theme_id " +
"INNER JOIN theme_folder tf ON tf.id = tif.tf_id " +
"WHERE ml.store_type = 2 and ml.is_del = 0 " +
@ -39,9 +39,9 @@ public interface MaterialRepository extends JpaRepository<Material, String> {
@Query(nativeQuery = true,
value = "SELECT ml.id AS materialId,ml.NAME AS materialName,ml.type AS materialType,ml.deposit_url AS depositUrl,ml.img_path AS imgPath," +
"ml.device_direction AS deviceDirection " +
"ml.device_direction AS deviceDirection,mif.id as inFolderId " +
"FROM material ml INNER JOIN material_in_folder mif ON ml.id = mif.material_id " +
"INNER JOIN material_folder mf ON mf.id = mif.tf_id " +
"INNER JOIN material_folder mf ON mf.id = mif.mf_id " +
"where ml.store_type = 2 and ml.is_del = 0 " +
"and if(?1 is null,1=1,mf.id = ?1)" +
"and if(?2 is null,1=1,ml.name like %?2%) " +

18
system/src/main/java/com/canvas/web/modules/material/rest/MaterialController.java

@ -129,4 +129,22 @@ public class MaterialController {
return Response.success(vo);
}
@ApiOperation("移动素材-素材库")
@PostMapping("/moveMyMaterial")
public Response<Object> moveMyMaterial(
String mifId,String folderId,String materialId
){
materialService.moveMyMaterial(mifId,folderId,materialId);
return Response.success(ResponseEnum.CREATED);
}
@ApiOperation("移动素材-素材库")
@PostMapping("/deleteMyMaterial")
public Response<Object> deleteMyMaterial(
String materialId
){
materialService.deleteMyMaterial(materialId);
return Response.success(ResponseEnum.DELETE_SUCCESS);
}
}

4
system/src/main/java/com/canvas/web/modules/material/service/MaterialService.java

@ -37,4 +37,8 @@ public interface MaterialService {
void deleteThemeFolder(String id);
//删除素材库文件夹
void deleteMaterialFolder(String id);
//移动素材到文件夹
void moveMyMaterial(String mifId,String folderId,String materialId);
//删除素材
void deleteMyMaterial(String materialId);
}

35
system/src/main/java/com/canvas/web/modules/material/service/impl/MaterialServiceImpl.java

@ -33,6 +33,7 @@ public class MaterialServiceImpl implements MaterialService {
ThemeFolderRepository themeFolderRepository;
MaterialFolderRepository materialFolderRepository;
ThemeInFolderRepository themeInFolderRepository;
MaterialInFolderRepository materialInFolderRepository;
@Override
public void edit(MaterialDTO dto) {
@ -66,8 +67,23 @@ public class MaterialServiceImpl implements MaterialService {
mc.setClassId(dto.getClassIds().get(i));
materialClasses.add(mc);
}
materialClassRepository.saveAll(materialClasses);
//如果是素材 添加进素材库
}else{
String folderId = dto.getFolderId();
MaterialFolder firstMaterialFolder = materialFolderRepository.findFirstByOrgaIdAndFidIsNull(material.getOrgaId());
if(null == firstMaterialFolder){
firstMaterialFolder = new MaterialFolder();
firstMaterialFolder.setIsDel(false);
firstMaterialFolder.setIsState(1);
firstMaterialFolder.setOrgaId(material.getOrgaId());
firstMaterialFolder = materialFolderRepository.save(firstMaterialFolder);
}
folderId = StringUtils.isEmpty(folderId) ? firstMaterialFolder.getId() : folderId;
MaterialInFolder materialInFolder = new MaterialInFolder();
materialInFolder.setMaterialId(material.getId());
materialInFolder.setMfId(folderId);
materialInFolderRepository.save(materialInFolder);
}
}
@ -219,6 +235,23 @@ public class MaterialServiceImpl implements MaterialService {
materialFolderRepository.deleteAllById(resultString);
}
@Override
public void moveMyMaterial(String mifId,String folderId, String materialId) {
MaterialInFolder materialInFolder = new MaterialInFolder();
if(null != mifId){
materialInFolder = materialInFolderRepository.findById(mifId).get();
}
materialInFolder.setMaterialId(materialId);
materialInFolder.setMfId(folderId);
materialInFolderRepository.saveAndFlush(materialInFolder);
}
@Override
public void deleteMyMaterial(String materialId) {
materialInFolderRepository.deleteAllByMaterialId(materialId);
materialRepository.deleteById(materialId);
}
public List<String> getThemeFolder(String id,List<String> resultString){
List<ThemeFolder> themeFolders = themeFolderRepository.findAllByFid(id);
if(null == themeFolders){

2
system/src/main/java/com/canvas/web/modules/material/vo/ThemeVO.java

@ -10,7 +10,6 @@ import java.util.List;
@Getter
@Setter
public class ThemeVO {
private String materialId;
private String materialName;
private String materialType;
@ -18,6 +17,7 @@ public class ThemeVO {
private String imgPath;
private String classes;
private Integer deviceDirection;
private String inFolderId;
private Timestamp createTime;
private Boolean isDel;

65
system/src/main/java/com/canvas/web/modules/release/domain/ReleaseList.java

@ -0,0 +1,65 @@
package com.canvas.web.modules.release.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;
import java.sql.Timestamp;
@Getter
@Setter
@Entity
@Table(name = "release_list")
public class ReleaseList extends BaseEntity implements Serializable {
@Id
@Column(name = "id")
@GeneratedValue(generator = "idGenerator")
@GenericGenerator(name = "idGenerator", strategy = "uuid")
private String id;
@Column(name = "relaase_name")
@ApiModelProperty(value = "发布名称")
private Integer relaaseName;
@Column(name = "release_type")
@ApiModelProperty(value = "发布类型")
private Integer releaseType;
@Column(name = "release_start")
@ApiModelProperty(value = "发布开始时间")
private Timestamp releaseStart;
@Column(name = "release_end")
@ApiModelProperty(value = "发布结束时间")
private Timestamp releaseEnd;
@Column(name = "actual_end")
@ApiModelProperty(value = "实际结束时间")
private Timestamp actualEnd;
@Column(name = "release_cycle")
@ApiModelProperty(value = "发布周期 0.无 1.每天 2.每周")
private Integer releaseCycle;
@Column(name = "is_topping")
@ApiModelProperty(value = "是否置顶")
private Boolean isTopping;
@Column(name = "release_device")
@ApiModelProperty(value = "发布设备 1.全部 2.部分")
private Integer releaseDevice;
@Column(name = "is_state")
@ApiModelProperty(value = "状态")
private Integer isState;
@Column(name = "is_del")
@ApiModelProperty(value = "是否删除")
private Boolean isDel;
}

40
system/src/main/java/com/canvas/web/modules/release/domain/ReleaseMaterial.java

@ -0,0 +1,40 @@
package com.canvas.web.modules.release.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 = "release_material")
public class ReleaseMaterial extends BaseEntity implements Serializable {
@Id
@Column(name = "id")
@GeneratedValue(generator = "idGenerator")
@GenericGenerator(name = "idGenerator", strategy = "uuid")
private String id;
@Column(name = "release_id")
@ApiModelProperty(value = "发布Id")
private String releaseId;
@Column(name = "material_id")
@ApiModelProperty(value = "素材id")
private String materialId;
@Column(name = "duration")
@ApiModelProperty(value = "时长(s)")
private Integer duration;
@Column(name = "effect")
@ApiModelProperty(value = "切换动效")
private Integer effect;
}

26
system/src/main/java/com/canvas/web/modules/release/repository/ReleaseListRepository.java

@ -0,0 +1,26 @@
package com.canvas.web.modules.release.repository;
import com.canvas.web.modules.release.domain.ReleaseList;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import java.util.Map;
public interface ReleaseListRepository extends JpaRepository<ReleaseList, String> {
@Query(nativeQuery = true,
value = "select rl.id as releaseId,rl.relaase_name as relaaseName,rl.release_start as releaseStart,rl.release_end as releaseEnd," +
"rl.release_type as releaseType,rl.actual_end as actualEnd,rl.is_state as isState,su.nick_name as nickName," +
"rl.release_device as releaseDevice,rl.is_topping as isTopping,rl.is_del as isDel,rl.create_time as createTime,rl.update_time as updateTime," +
"(select group_concat(d.device_name) from device d inner join release_device rd on d.id = rd.device_id inner join release_list inrl " +
"on rd.release_id = inrl.id where rl.is_del = false and rl.is_state = 1 and inrl.id = rl.id) as bindingDevice," +
"(select ml.img_path from material ml inner join release_material rm on ml.id = rm.material_id inner join release_list inrl2 " +
"on rm.release_id = inrl2.id where rl.is_del = false and rl.is_state = 1 and inrl2.id = rl.id limit 0,1) as releaseFirstImg " +
"from release_list rl inner join sys_user su on rl.create_by = su.id " +
"where rl.is_del = false and rl.is_state = 1 and (rl.release_end <= now() or rl.actual_end <= now()) " +
"and if(?1 is null,1=1,rl.relaase_name like %?1% )")
Page<Map<String,Object>> getReleaseList(String releaseName, Pageable page);
}

9
system/src/main/java/com/canvas/web/modules/release/repository/ReleaseMaterialRepository.java

@ -0,0 +1,9 @@
package com.canvas.web.modules.release.repository;
import com.canvas.web.modules.release.domain.ReleaseMaterial;
import org.springframework.data.jpa.repository.JpaRepository;
public interface ReleaseMaterialRepository extends JpaRepository<ReleaseMaterial, String> {
}

36
system/src/main/java/com/canvas/web/modules/release/rest/ReleaseListController.java

@ -0,0 +1,36 @@
package com.canvas.web.modules.release.rest;
import com.canvas.web.modules.material.criteria.ThemeQueryCriteria;
import com.canvas.web.modules.material.vo.ThemeVO;
import com.canvas.web.modules.release.service.ReleaseListService;
import com.canvas.web.modules.release.vo.ReleaseListVO;
import com.canvas.web.modules.utils.Response;
import com.canvas.web.modules.utils.ResultUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Pageable;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequiredArgsConstructor
@Api(tags = "发布管理")
@RequestMapping("/api/release")
public class ReleaseListController {
ReleaseListService releaseListService;
//发布
@ApiOperation("发布列表")
@GetMapping("/getReleaseList")
public Response<ResultUtils<List<ReleaseListVO>>> getReleaseList(
String releaseName, Pageable page
){
return Response.success(releaseListService.getReleaseList(releaseName,page));
}
}

12
system/src/main/java/com/canvas/web/modules/release/service/ReleaseListService.java

@ -0,0 +1,12 @@
package com.canvas.web.modules.release.service;
import com.canvas.web.modules.release.vo.ReleaseListVO;
import com.canvas.web.modules.utils.ResultUtils;
import org.springframework.data.domain.Pageable;
import java.util.List;
public interface ReleaseListService {
//分页查询主题素材历史信息
ResultUtils<List<ReleaseListVO>> getReleaseList(String releaseName, Pageable pageable);
}

34
system/src/main/java/com/canvas/web/modules/release/service/impl/ReleaseListServiceImpl.java

@ -0,0 +1,34 @@
package com.canvas.web.modules.release.service.impl;
import com.canvas.web.modules.release.repository.ReleaseListRepository;
import com.canvas.web.modules.release.service.ReleaseListService;
import com.canvas.web.modules.release.vo.ReleaseListVO;
import com.canvas.web.modules.utils.MapUtil;
import com.canvas.web.modules.utils.PageSort;
import com.canvas.web.modules.utils.ResultUtils;
import lombok.RequiredArgsConstructor;
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.util.List;
import java.util.Map;
@Service
@RequiredArgsConstructor
public class ReleaseListServiceImpl implements ReleaseListService {
ReleaseListRepository releaseListRepository;
@Override
public ResultUtils<List<ReleaseListVO>> getReleaseList(String releaseName, Pageable pageable) {
PageRequest page= PageSort.pageRequest(pageable.getPageNumber(), pageable.getPageSize(), "create_time", Sort.Direction.DESC);
//分页查询
Page<Map<String,Object>> pageMap = releaseListRepository.getReleaseList(releaseName,page);
//初始化分页返回数据
List<ReleaseListVO> releaseList = MapUtil.setList(pageMap.getContent(),ReleaseListVO.class);
return ResultUtils.getResult(releaseList,pageMap);
}
}

28
system/src/main/java/com/canvas/web/modules/release/vo/ReleaseListVO.java

@ -0,0 +1,28 @@
package com.canvas.web.modules.release.vo;
import lombok.Getter;
import lombok.Setter;
import java.sql.Timestamp;
@Getter
@Setter
public class ReleaseListVO {
private String releaseId;
private String relaaseName;
private String releaseType;
private String releaseFirstImg;
private Timestamp releaseStart;
private Timestamp releaseEnd;
private Timestamp actualEnd;
private Integer releaseCycle;
private String nickName;
private Integer isState;
private Integer releaseDevice;
private Boolean isTopping;
private Boolean isDel;
private Timestamp createTime;
private Timestamp updateTime;
}
Loading…
Cancel
Save