Browse Source

接口对调 优化接口

master
xia 3 years ago
parent
commit
94602f501c
  1. 10
      system/pom.xml
  2. 4
      system/src/main/java/com/canvas/web/modules/device/criteria/DeviceSettingCriteria.java
  3. 2
      system/src/main/java/com/canvas/web/modules/device/domain/Device.java
  4. 18
      system/src/main/java/com/canvas/web/modules/device/repository/DeviceRepository.java
  5. 28
      system/src/main/java/com/canvas/web/modules/device/rest/DeviceController.java
  6. 4
      system/src/main/java/com/canvas/web/modules/device/service/DeviceService.java
  7. 32
      system/src/main/java/com/canvas/web/modules/device/service/impl/DeviceServiceImpl.java
  8. 23
      system/src/main/java/com/canvas/web/modules/device/vo/DeviceVO.java
  9. 8
      system/src/main/java/com/canvas/web/modules/material/criteria/ThemeQueryCriteria.java
  10. 8
      system/src/main/java/com/canvas/web/modules/material/domain/Material.java
  11. 20
      system/src/main/java/com/canvas/web/modules/material/dto/ChangeStateDTO.java
  12. 25
      system/src/main/java/com/canvas/web/modules/material/dto/DoFolderDTO.java
  13. 8
      system/src/main/java/com/canvas/web/modules/material/dto/MaterialDTO.java
  14. 26
      system/src/main/java/com/canvas/web/modules/material/dto/MoveFileDTO.java
  15. 22
      system/src/main/java/com/canvas/web/modules/material/dto/PrimaryDTO.java
  16. 4
      system/src/main/java/com/canvas/web/modules/material/repository/MaterialInFolderRepository.java
  17. 33
      system/src/main/java/com/canvas/web/modules/material/repository/MaterialRepository.java
  18. 42
      system/src/main/java/com/canvas/web/modules/material/rest/MaterialController.java
  19. 18
      system/src/main/java/com/canvas/web/modules/material/service/MaterialService.java
  20. 102
      system/src/main/java/com/canvas/web/modules/material/service/impl/MaterialServiceImpl.java
  21. 1
      system/src/main/java/com/canvas/web/modules/material/vo/AlbumVO.java
  22. 1
      system/src/main/java/com/canvas/web/modules/material/vo/MyMaterialVO.java
  23. 8
      system/src/main/java/com/canvas/web/modules/material/vo/ThemeVO.java
  24. 65
      system/src/main/java/com/canvas/web/modules/qiniu/rest/QiniuController.java
  25. 26
      system/src/main/java/com/canvas/web/modules/release/criteria/NoticeQueryCriteria.java
  26. 21
      system/src/main/java/com/canvas/web/modules/release/criteria/ReleaseListQueryCriteria.java
  27. 8
      system/src/main/java/com/canvas/web/modules/release/domain/ReleaseList.java
  28. 12
      system/src/main/java/com/canvas/web/modules/release/domain/ReleaseMaterial.java
  29. 46
      system/src/main/java/com/canvas/web/modules/release/dto/NoticeDTO.java
  30. 58
      system/src/main/java/com/canvas/web/modules/release/dto/ReleaseDTO.java
  31. 13
      system/src/main/java/com/canvas/web/modules/release/dto/ReleaseDeviceDTO.java
  32. 33
      system/src/main/java/com/canvas/web/modules/release/dto/ReleaseMaterialDTO.java
  33. 4
      system/src/main/java/com/canvas/web/modules/release/repository/NoticeDeviceRepository.java
  34. 5
      system/src/main/java/com/canvas/web/modules/release/repository/NoticeRepository.java
  35. 3
      system/src/main/java/com/canvas/web/modules/release/repository/ReleaseDeviceRepository.java
  36. 32
      system/src/main/java/com/canvas/web/modules/release/repository/ReleaseListRepository.java
  37. 3
      system/src/main/java/com/canvas/web/modules/release/repository/ReleaseMaterialRepository.java
  38. 63
      system/src/main/java/com/canvas/web/modules/release/rest/ReleaseListController.java
  39. 5
      system/src/main/java/com/canvas/web/modules/release/service/ReleaseListService.java
  40. 80
      system/src/main/java/com/canvas/web/modules/release/service/impl/ReleaseListServiceImpl.java
  41. 13
      system/src/main/java/com/canvas/web/modules/release/vo/NoticeDeviceDetailsVO.java
  42. 20
      system/src/main/java/com/canvas/web/modules/release/vo/NoticeVO.java
  43. 29
      system/src/main/java/com/canvas/web/modules/release/vo/ReleaseDetailVO.java
  44. 54
      system/src/main/java/com/canvas/web/modules/release/vo/ReleaseListVO.java

10
system/pom.xml

@ -88,8 +88,14 @@
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.13</version>
<artifactId>httpmime</artifactId>
<version>4.5.12</version>
</dependency>
<!-- 七牛 -->
<dependency>
<groupId>com.qiniu</groupId>
<artifactId>qiniu-java-sdk</artifactId>
<version>[7.7.0, 7.7.99]</version>
</dependency>
</dependencies>
</project>

4
system/src/main/java/com/canvas/web/modules/device/criteria/DeviceSettingCriteria.java

@ -42,4 +42,8 @@ public class DeviceSettingCriteria {
@JSONField(name="startup_screen")
@JsonProperty("startup_screen")
public String startupScreen;
@JSONField(name="device_direction")
@JsonProperty("device_direction")
public Integer deviceDirection;
}

2
system/src/main/java/com/canvas/web/modules/device/domain/Device.java

@ -70,7 +70,7 @@ public class Device extends BaseEntity implements Serializable {
public String startupScreen;
@Column(name = "is_state")
@ApiModelProperty(value = "停用/禁用", hidden = true)
@ApiModelProperty(value = "状态", hidden = true)
public Integer isState;
@Column(name = "is_del")

18
system/src/main/java/com/canvas/web/modules/device/repository/DeviceRepository.java

@ -4,20 +4,36 @@ import com.canvas.web.modules.device.domain.Device;
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.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
public interface DeviceRepository extends JpaRepository<Device, String> {
@Query(nativeQuery = true,
countQuery = "select count(1) " +
"from device d left join organization o on d.orga_id = o.id " +
"where if(?1 is null,1=1,d.id like %?1%) and if(?2 is null,1=1,d.device_name like %?2%) " +
"and if(?3 is null,1=1,d.is_state = ?3)",
value="select d.id as deviceId,d.account deviceAccount,d.device_name as deviceName,d.device_direction as deviceDirection," +
"o.name as organName,d.open_setting as openSetting,d.open_weekly as openWeekly,d.open_time as openTime," +
"d.close_setting as closeSetting,d.close_weekly as closeWeekly,d.close_time as closeTime," +
"d.startup_screen as startupScreen,d.is_state as deviceState,d.create_time as createTime " +
"d.startup_screen as startupScreen,d.is_state as deviceState,d.create_time as createTime,d.update_time as updateTime," +
"d.is_del as isDel " +
"from device d left join organization o on d.orga_id = o.id " +
"where if(?1 is null,1=1,d.id like %?1%) and if(?2 is null,1=1,d.device_name like %?2%) " +
"and if(?3 is null,1=1,d.is_state = ?3)")
Page<Map<String,Object>> getDeviceList(String deviceId, String deviceName, Integer state, Pageable page);
@Query(value = "from Device where id in ?1")
List<Device> findByIds(List<String> ids);
@Modifying
@Transactional(rollbackFor = Exception.class)
@Query(value = "delete from Device where id = ?1")
void delete(String id);
}

28
system/src/main/java/com/canvas/web/modules/device/rest/DeviceController.java

@ -1,6 +1,5 @@
package com.canvas.web.modules.device.rest;
import com.alibaba.fastjson.annotation.JSONField;
import com.canvas.web.annotation.rest.AnonymousGetMapping;
import com.canvas.web.annotation.rest.AnonymousPostMapping;
import com.canvas.web.modules.device.criteria.DeviceQueryCriteria;
@ -9,10 +8,11 @@ import com.canvas.web.modules.device.domain.Device;
import com.canvas.web.modules.device.dto.DeviceDTO;
import com.canvas.web.modules.device.service.DeviceService;
import com.canvas.web.modules.device.vo.DeviceVO;
import com.canvas.web.modules.material.dto.ChangeStateDTO;
import com.canvas.web.modules.material.dto.PrimaryDTO;
import com.canvas.web.modules.utils.ResultUtils;
import com.canvas.web.utils.Response;
import com.canvas.web.enums.ResponseEnum;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
@ -81,10 +81,30 @@ public class DeviceController {
// @PostMapping("/updateState")
@AnonymousPostMapping("/updateState")
public Response<Object> updateState(
@Validated String device_id,@Validated Integer state
@Validated @RequestBody ChangeStateDTO dto
){
deviceService.updateState(device_id,state);
deviceService.updateState(dto.getId(),dto.getState());
return Response.success(ResponseEnum.UPDATE_SUCCESS);
}
@ApiOperation("清空开关机设置")
// @PostMapping("/clearSetting")
@AnonymousPostMapping("/clearSetting")
public Response<Object> clearSetting(
@Validated @RequestBody PrimaryDTO dto
){
deviceService.clearSetting(dto.getIds());
return Response.success(ResponseEnum.UPDATE_SUCCESS);
}
@ApiOperation("删除设备")
// @PostMapping("/delete")
@AnonymousPostMapping("/delete")
public Response<Object> delete(
@Validated @RequestBody PrimaryDTO dto
){
deviceService.delete(dto.getId());
return Response.success(ResponseEnum.DELETE_SUCCESS);
}
}

4
system/src/main/java/com/canvas/web/modules/device/service/DeviceService.java

@ -21,4 +21,8 @@ public interface DeviceService {
Device findById(String deviceId);
//更新设备状态
void updateState(String deviceId,Integer state);
//清空设备开关机
void clearSetting(List<String> ids);
//删除设备
void delete(String id);
}

32
system/src/main/java/com/canvas/web/modules/device/service/impl/DeviceServiceImpl.java

@ -15,15 +15,13 @@ 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.data.jpa.repository.Modifying;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.sql.Time;
import java.sql.Timestamp;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.*;
@Service
@RequiredArgsConstructor
@ -79,6 +77,7 @@ public class DeviceServiceImpl implements DeviceService {
device.setCloseWeekly(criteria.getCloseWeekly());
device.setCloseTime(Time.valueOf(criteria.getCloseTime()));
device.setStartupScreen(criteria.getStartupScreen());
device.setDeviceDirection(criteria.getDeviceDirection());
device.setUpdateTime(new Timestamp(new Date().getTime()));
deviceRepository.saveAndFlush(device);
}
@ -99,4 +98,29 @@ public class DeviceServiceImpl implements DeviceService {
device.setIsState(state);
deviceRepository.saveAndFlush(device);
}
@Override
public void clearSetting(List<String> ids) {
List<Device> devices = deviceRepository.findByIds(ids);
List<Device> updateDevices = new ArrayList<>();
for (int i = 0;i<devices.size();i++){
Device device = devices.get(i);
device.setOpenWeekly(null);
device.setOpenSetting(null);
device.setOpenTime(null);
device.setCloseWeekly(null);
device.setCloseSetting(null);
device.setCloseTime(null);
device.setStartupScreen(null);
updateDevices.add(device);
}
deviceRepository.saveAllAndFlush(updateDevices);
}
@Override
@Modifying
@Transactional(rollbackFor = Exception.class)
public void delete(String id) {
deviceRepository.delete(id);
}
}

23
system/src/main/java/com/canvas/web/modules/device/vo/DeviceVO.java

@ -31,7 +31,7 @@ public class DeviceVO {
@ApiModelProperty(value = "设备方向")
@JSONField(name="deviceDirection")
@JsonProperty("device_direction")
private String deviceDirection;
private Integer deviceDirection;
@ApiModelProperty(value = "机构名称")
@JSONField(name="organName")
@ -72,4 +72,25 @@ public class DeviceVO {
@JSONField(name="startupScreen")
@JsonProperty("startup_screen")
private String startupScreen;
@ApiModelProperty(value = "创建时间")
@JSONField(name="createTime")
@JsonProperty("create_time")
private Timestamp createTime;
@ApiModelProperty(value = "修改时间")
@JSONField(name="updateTime")
@JsonProperty("update_time")
private Timestamp updateTime;
@ApiModelProperty(value = "状态")
@JSONField(name="deviceState")
@JsonProperty("device_state")
public Integer deviceState;
@ApiModelProperty(value = "是否删除")
@JSONField(name="isDel")
@JsonProperty("is_del")
public Boolean isDel;
}

8
system/src/main/java/com/canvas/web/modules/material/criteria/ThemeQueryCriteria.java

@ -27,6 +27,14 @@ public class ThemeQueryCriteria {
@JsonProperty("orga_id")
private String orga_id;
@JSONField(name="theme_type")
@JsonProperty("theme_type")
private Integer theme_type;
@JSONField(name="theme_type_not")
@JsonProperty("theme_type_not")
private Integer theme_type_not;
@JSONField(name="start_time")
@JsonProperty("start_time")
private String start_time;

8
system/src/main/java/com/canvas/web/modules/material/domain/Material.java

@ -29,6 +29,10 @@ public class Material extends BaseEntity implements Serializable {
@ApiModelProperty(value = "素材类型")
private Integer type;
@Column(name = "file_size")
@ApiModelProperty(value = "文件大小")
private String fileSize;
@Column(name = "store_type")
@ApiModelProperty(value = "库类型 1.素材库 2.主题库")
private Integer storeType;
@ -45,6 +49,10 @@ public class Material extends BaseEntity implements Serializable {
@ApiModelProperty(value = "设备方向")
private Integer deviceDirection;
@Column(name = "duration")
@ApiModelProperty(value = "时长(s)")
private Integer duration;
@Column(name = "orga_id")
@ApiModelProperty(value = "机构id")
private String orgaId;

20
system/src/main/java/com/canvas/web/modules/material/dto/ChangeStateDTO.java

@ -0,0 +1,20 @@
package com.canvas.web.modules.material.dto;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class ChangeStateDTO {
@JSONField(name="id")
@JsonProperty("id")
private String id;
@JSONField(name="state")
@JsonProperty("state")
private Integer state;
}

25
system/src/main/java/com/canvas/web/modules/material/dto/DoFolderDTO.java

@ -0,0 +1,25 @@
package com.canvas.web.modules.material.dto;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
@Getter
@Setter
public class DoFolderDTO {
@JSONField(name="id")
@JsonProperty("id")
private String id;
@JSONField(name="material_ids")
@JsonProperty("material_ids")
private List<String> materialIds;
@JSONField(name="orga_id")
@JsonProperty("orga_id")
private String orgaId;
}

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

@ -23,6 +23,10 @@ public class MaterialDTO {
@JsonProperty("material_type")
private Integer materialType;
@JSONField(name="file_size")
@JsonProperty("file_size")
private String fileSize;
@JSONField(name="store_type")
@JsonProperty("store_type")
private Integer storeType;
@ -39,6 +43,10 @@ public class MaterialDTO {
@JsonProperty("device_direction")
private Integer deviceDirection;
@JSONField(name="duration")
@JsonProperty("duration")
private Integer duration;
@JSONField(name="orga_id")
@JsonProperty("orga_id")
private String orgaId;

26
system/src/main/java/com/canvas/web/modules/material/dto/MoveFileDTO.java

@ -0,0 +1,26 @@
package com.canvas.web.modules.material.dto;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
@Getter
@Setter
public class MoveFileDTO {
@JSONField(name="ids")
@JsonProperty("ids")
private List<String> ids;
@JSONField(name="folder_id")
@JsonProperty("folder_id")
private String folderId;
@JSONField(name="material_ids")
@JsonProperty("material_ids")
private List<String> materialIds;
}

22
system/src/main/java/com/canvas/web/modules/material/dto/PrimaryDTO.java

@ -0,0 +1,22 @@
package com.canvas.web.modules.material.dto;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
@Getter
@Setter
public class PrimaryDTO {
@JSONField(name="id")
@JsonProperty("id")
private String id;
@JSONField(name="ids")
@JsonProperty("ids")
private List<String> ids;
}

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

@ -20,9 +20,9 @@ public interface MaterialInFolderRepository extends JpaRepository<MaterialInFold
@Transactional(rollbackFor = Exception.class)
void deleteAllByMfIdIn(List<String> mfIds);
@Query(value = "delete from MaterialInFolder where materialId = ?1")
@Query(value = "delete from MaterialInFolder where materialId in ?1")
@Modifying
@Transactional(rollbackFor = Exception.class)
void deleteAllByMaterialId(String materialId);
void deleteAllByMaterialId(List<String> materialId);
}

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

@ -14,7 +14,7 @@ import java.util.Map;
public interface MaterialRepository extends JpaRepository<Material, String> {
@Query(nativeQuery = true,
value="select ml.id as materialId,ml.name as materialName,ml.deposit_url as depositUrl,ml.img_path as imgPath,ml.device_direction as deviceDirection, " +
value="select ml.id as materialId,ml.name as materialName,ml.deposit_url as depositUrl,ml.img_path as imgPath,ml.device_direction as deviceDirection,ml.duration as duration,ml.file_size as fileSize, " +
"(select group_concat(tc.class_name) from material ml INNER JOIN material_class mc ON ml.id = mc.material_id inner join theme_class tc on mc.class_id = tc.id where mc.material_id = ml.id) as classes," +
"ml.create_time as createTime,ml.is_del as isDel from material ml where ml.store_type = 2 " +
"and if(?1 is null,1=1,ml.name like %?1%) " +
@ -23,8 +23,8 @@ public interface MaterialRepository extends JpaRepository<Material, String> {
Page<Map<String,Object>> getThemeHistoryList(String themeName, String startTime, String endTime, Pageable page);
@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 " +
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.file_size as fileSize," +
"ml.device_direction as deviceDirection,ml.duration as duration " +
"from material ml inner join material_class mc on ml.id = mc.material_id where ml.store_type = 2 and ml.is_del = 0 " +
"and if(?1 is null,1=1,ml.name like %?1%) " +
"and if(?2 is null,1=1,mc.class_id = ?2) " +
@ -32,8 +32,8 @@ public interface MaterialRepository extends JpaRepository<Material, String> {
Page<Map<String,Object>> getThemeLibrary(String themeName, String themeClass, Integer deviceDirection, Pageable page);
@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,tif.id as inFolderId,ml.create_time as createTime,ml.is_del as isDel " +
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.file_size as fileSize," +
"ml.device_direction as deviceDirection,ml.duration as duration,tif.id as inFolderId,ml.create_time as createTime,ml.is_del as isDel " +
"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 " +
@ -41,8 +41,8 @@ public interface MaterialRepository extends JpaRepository<Material, String> {
List<Map<String,Object>> getMyAlbumTheme(String folderId, String themeName);
@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,mif.id as inFolderId " +
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.file_size as fileSize," +
"ml.device_direction AS deviceDirection,ml.duration as duration,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.mf_id " +
"where ml.store_type = 1 and ml.is_del = 0 " +
@ -51,10 +51,25 @@ public interface MaterialRepository extends JpaRepository<Material, String> {
"and if(?3 is null,1=1,ml.type = ?3) order by ml.create_time desc ")
List<Map<String,Object>> getMyMaterial(String folderId,String materialName,Integer materialType);
@Query(value = "delete from Material where id = ?1")
@Query(nativeQuery = true,
countQuery = "select count(1) from material ml where ml.store_type = 1 " +
"and if(?1 is null,1=1,ml.name like %?1%) " +
"and if(?2 is null,1=1,ml.type = ?2) " +
"and if(?3 is null,1=1,ml.type != ?3) " +
"and ml.orga_id = ?4 ",
value="select ml.id as materialId,ml.name as materialName,ml.deposit_url as depositUrl,ml.img_path as imgPath,ml.device_direction as deviceDirection,ml.duration as duration,ml.file_size as fileSize, " +
"ml.create_time as createTime,ml.is_del as isDel from material ml where ml.store_type = 1 " +
"and if(?1 is null,1=1,ml.name like %?1%) " +
"and if(?2 is null,1=1,ml.type = ?2) " +
"and if(?3 is null,1=1,ml.type != ?3) " +
"and ml.orga_id = ?4 ")
Page<Map<String,Object>> getMaterialByType(String themeName,Integer themeType,Integer themeTypeNot,String orgaId,Pageable page);
@Query(value = "delete from Material where id in ?1")
@Modifying
@Transactional(rollbackFor = Exception.class)
void deleteById(String id);
void deleteById(List<String> id);
}

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

@ -4,8 +4,7 @@ import com.canvas.web.annotation.rest.AnonymousGetMapping;
import com.canvas.web.annotation.rest.AnonymousPostMapping;
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.dto.*;
import com.canvas.web.modules.material.service.MaterialService;
import com.canvas.web.modules.material.vo.AlbumVO;
import com.canvas.web.modules.material.vo.MyMaterialVO;
@ -67,6 +66,7 @@ public class MaterialController {
AlbumVO vo = new AlbumVO();
vo.setMaterialFolders(materialService.getAlbumFolder(criteria.getOrga_id(),criteria.getFolder_id()));
vo.setPageThemeVO(materialService.getMyAlbumTheme(criteria.getOrga_id(),criteria.getFolder_id(),criteria.getTheme_name()));
vo.setThisFoldId(materialService.getThisAlbumFoldId(criteria.getOrga_id(),criteria.getFolder_id()));
return Response.success(vo);
}
@ -84,9 +84,9 @@ public class MaterialController {
// @PostMapping("/addMyAlbum")
@AnonymousPostMapping("/addMyAlbum")
public Response<Object> addMyAlbum(
@Validated String tf_id,@Validated String theme_id,@Validated String orga_id
@Validated @RequestBody DoFolderDTO dto
){
materialService.addMyAlbum(tf_id,theme_id,orga_id);
materialService.addMyAlbum(dto.getId(),dto.getMaterialIds(),dto.getOrgaId());
return Response.success(ResponseEnum.CREATED);
}
@ -94,9 +94,9 @@ public class MaterialController {
// @PostMapping("/deleteMyAlbum")
@AnonymousPostMapping("/deleteMyAlbum")
public Response<Object> deleteMyAlbum(
@Validated String id
@Validated @RequestBody PrimaryDTO dto
){
materialService.deleteMyAlbum(id);
materialService.deleteMyAlbum(dto.getIds());
return Response.success(ResponseEnum.DELETE_SUCCESS);
}
@ -104,9 +104,9 @@ public class MaterialController {
// @PostMapping("/deleteThemeFolder")
@AnonymousPostMapping("/deleteThemeFolder")
public Response<Object> deleteThemeFolder(
String id
@Validated @RequestBody PrimaryDTO dto
){
materialService.deleteThemeFolder(id);
materialService.deleteThemeFolder(dto.getIds());
return Response.success(ResponseEnum.DELETE_SUCCESS);
}
@ -124,9 +124,9 @@ public class MaterialController {
// @PostMapping("/deleteMaterialFolder")
@AnonymousPostMapping("/deleteMaterialFolder")
public Response<Object> deleteMaterialFolder(
String id
@Validated @RequestBody PrimaryDTO dto
){
materialService.deleteMaterialFolder(id);
materialService.deleteMaterialFolder(dto.getIds());
return Response.success(ResponseEnum.DELETE_SUCCESS);
}
@ -139,6 +139,7 @@ public class MaterialController {
MyMaterialVO vo = new MyMaterialVO();
vo.setMaterialFolders(materialService.getMaterialFolder(criteria.getOrgaId(),criteria.getFolderId()));
vo.setPageThemeVO(materialService.getMyMaterial(criteria.getOrgaId(),criteria.getFolderId(),criteria.getMaterialName(),criteria.getMaterialType()));
vo.setThisFoldId(materialService.getCurrentFold(criteria.getOrgaId(),criteria.getFolderId()));
return Response.success(vo);
}
@ -146,9 +147,9 @@ public class MaterialController {
// @PostMapping("/moveMyMaterial")
@AnonymousPostMapping("/moveMyMaterial")
public Response<Object> moveMyMaterial(
String mif_id,String folder_id,String material_id
@Validated @RequestBody MoveFileDTO dto
){
materialService.moveMyMaterial(mif_id,folder_id,material_id);
materialService.moveMyMaterial(dto.getIds(),dto.getFolderId(),dto.getMaterialIds());
return Response.success(ResponseEnum.CREATED);
}
@ -156,9 +157,9 @@ public class MaterialController {
// @PostMapping("/deleteMyMaterial")
@AnonymousPostMapping("/deleteMyMaterial")
public Response<Object> deleteMyMaterial(
String material_id
@Validated @RequestBody PrimaryDTO dto
){
materialService.deleteMyMaterial(material_id);
materialService.deleteMyMaterial(dto.getIds());
return Response.success(ResponseEnum.DELETE_SUCCESS);
}
@ -166,10 +167,19 @@ public class MaterialController {
// @PostMapping("/updateState")
@AnonymousPostMapping("/updateState")
public Response<Object> updateState(
@Validated String material_id,@Validated Integer state
@Validated @RequestBody ChangeStateDTO dto
){
materialService.updateState(material_id,state);
materialService.updateState(dto.getId(),dto.getState());
return Response.success(ResponseEnum.UPDATE_SUCCESS);
}
@ApiOperation("根据素材类型获取素材 - 素材库")
// @GetMapping("/getMaterialByType")
@AnonymousGetMapping("/getMaterialByType")
public Response<ResultUtils<List<ThemeVO>>> getMaterialByType(
ThemeQueryCriteria criteria, Pageable page
){
return Response.success(materialService.getMaterialByType(criteria.getTheme_name(),criteria.getTheme_type(),criteria.getTheme_type_not(),criteria.getOrga_id(),page));
}
}

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

@ -19,8 +19,12 @@ public interface MaterialService {
ResultUtils<List<ThemeVO>> getThemeLibrary(String themeName, String themeClass, Integer deviceDirection, Pageable pageable);
//根据机构id获取我的画册文件夹
List<ThemeFolder> getAlbumFolder(String orgaId, String folderId);
//获取我的画布当前文件夹id
String getThisAlbumFoldId(String orgaId, String folderId);
//根据机构id获取素材文件夹
List<MaterialFolder> getMaterialFolder(String orgaId, String folderId);
//获取当前文件夹
String getCurrentFold(String orgaId,String folderId);
//分页获取我的画册文件夹内素材
List<ThemeVO> getMyAlbumTheme(String orgaId,String folderId,String themeName);
//分页获取素材库内容
@ -30,17 +34,19 @@ public interface MaterialService {
//编辑素材库文件夹
void editMaterialFolder(FolderDTO dto);
//添加素材到我的画册
void addMyAlbum(String tfId,String themeId,String orgaId);
void addMyAlbum(String tfId,List<String> themeIds,String orgaId);
//删除我的画册主题素材
void deleteMyAlbum(String id);
void deleteMyAlbum(List<String> ids);
//删除主题库文件夹
void deleteThemeFolder(String id);
void deleteThemeFolder(List<String> ids);
//删除素材库文件夹
void deleteMaterialFolder(String id);
void deleteMaterialFolder(List<String> ids);
//移动素材到文件夹
void moveMyMaterial(String mifId,String folderId,String materialId);
void moveMyMaterial(List<String> mifIds,String folderId,List<String> materialId);
//删除素材
void deleteMyMaterial(String materialId);
void deleteMyMaterial(List<String> materialIds);
//更改素材库状态
void updateState(String materialId,Integer state);
//根据素材类型获取素材 - 素材库
ResultUtils<List<ThemeVO>> getMaterialByType(String themeName,Integer themeType,Integer themeTypeNot,String orgaId,Pageable pageable);
}

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

@ -55,7 +55,9 @@ public class MaterialServiceImpl implements MaterialService {
material.setStoreType(dto.getStoreType());
material.setDepositUrl(dto.getDepositUrl());
material.setImgPath(dto.getImgPath());
material.setFileSize(dto.getFileSize());
material.setDeviceDirection(dto.getDeviceDirection());
material.setDuration(dto.getDuration());
material.setOrgaId(dto.getOrgaId());
material = materialRepository.saveAndFlush(material);
@ -73,6 +75,7 @@ public class MaterialServiceImpl implements MaterialService {
//如果是素材 添加进素材库
}else{
if(null == dto.getMaterialId()){
String folderId = dto.getFolderId();
MaterialFolder firstMaterialFolder = materialFolderRepository.findFirstByOrgaIdAndFidIsNull(material.getOrgaId());
if(null == firstMaterialFolder){
@ -88,11 +91,14 @@ public class MaterialServiceImpl implements MaterialService {
materialInFolder.setMfId(folderId);
materialInFolderRepository.save(materialInFolder);
}
}
}
@Override
public ResultUtils<List<ThemeVO>> themeHistoryList(String themeName, String startTime, String endTime, Pageable pageable) {
startTime = StringUtils.isEmpty(startTime) ? null : startTime;
endTime = StringUtils.isEmpty(endTime) ? null : endTime;
PageRequest page= PageSort.pageRequest(pageable.getPageNumber(), pageable.getPageSize(), "create_time", Sort.Direction.DESC);
//分页查询
Page<Map<String,Object>> pageMap = materialRepository.getThemeHistoryList(themeName,startTime,endTime,page);
@ -129,6 +135,22 @@ public class MaterialServiceImpl implements MaterialService {
return themeFolderRepository.findAllByOrgaIdAndFid(orgaId,folderId);
}
@Override
public String getThisAlbumFoldId(String orgaId, String folderId) {
if(StringUtils.isEmpty(folderId)){
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 folderId;
}
@Override
@Transactional(rollbackFor = Exception.class)
public List<MaterialFolder> getMaterialFolder(String orgaId, String folderId) {
@ -147,6 +169,22 @@ public class MaterialServiceImpl implements MaterialService {
return materialFolderRepository.findAllByOrgaIdAndFid(orgaId,folderId);
}
@Override
public String getCurrentFold(String orgaId, String folderId) {
if(StringUtils.isEmpty(folderId)){
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 folderId;
}
@Override
public List<ThemeVO> getMyAlbumTheme(String orgaId, String folderId, String themeName) {
folderId = !StringUtils.isEmpty(folderId) ? folderId : themeFolderRepository.findFirstByOrgaIdAndFidIsNull(orgaId).getId();
@ -203,8 +241,8 @@ public class MaterialServiceImpl implements MaterialService {
@Override
@Transactional(rollbackFor = Exception.class)
public void addMyAlbum(String tfId, String themeId,String orgaId) {
ThemeInFolder themeInFolder = new ThemeInFolder();
public void addMyAlbum(String tfId, List<String> themeIds,String orgaId) {
List<ThemeInFolder> themeInFolders = new ArrayList<>();
if(StringUtils.isEmpty(tfId)){
ThemeFolder firstMaterialFolder = themeFolderRepository.findFirstByOrgaIdAndFidIsNull(orgaId);
if(null == firstMaterialFolder){
@ -216,52 +254,68 @@ public class MaterialServiceImpl implements MaterialService {
tfId = firstMaterialFolder.getId();
}
}
themeInFolder.setThemeId(themeId);
for(int i = 0;i<themeIds.size();i++){
ThemeInFolder themeInFolder = new ThemeInFolder();
themeInFolder.setThemeId(themeIds.get(i));
themeInFolder.setTfId(tfId);
themeInFolderRepository.saveAndFlush(themeInFolder);
themeInFolders.add(themeInFolder);
}
if(themeInFolders.size() > 0){
themeInFolderRepository.saveAllAndFlush(themeInFolders);
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteMyAlbum(String id) {
themeInFolderRepository.delById(id);
public void deleteMyAlbum(List<String> ids) {
themeInFolderRepository.deleteAllByTfIdIn(ids);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteThemeFolder(String id) {
public void deleteThemeFolder(List<String> ids) {
List<String> resultString = new ArrayList<>();
resultString = getThemeFolder(id,resultString);
for(int i = 0;i<ids.size();i++){
resultString = getThemeFolder(ids.get(i),resultString);
}
themeFolderRepository.deleteAllById(resultString);
themeInFolderRepository.deleteAllByTfIdIn(resultString);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteMaterialFolder(String id) {
public void deleteMaterialFolder(List<String> ids) {
List<String> resultString = new ArrayList<>();
resultString = getMaterialFolder(id,resultString);
for(int i = 0;i<ids.size();i++) {
resultString = getMaterialFolder(ids.get(i), resultString);
}
materialFolderRepository.deleteAllById(resultString);
materialInFolderRepository.deleteAllByMfIdIn(resultString);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void moveMyMaterial(String mifId,String folderId, String materialId) {
MaterialInFolder materialInFolder = new MaterialInFolder();
if(null != mifId){
materialInFolder = materialInFolderRepository.findById(mifId).get();
public void moveMyMaterial(List<String> mifIds,String folderId, List<String> materialId) {
List<MaterialInFolder> materialInFolders = new ArrayList<>();
List<MaterialInFolder> oldMaterialInFolders = materialInFolderRepository.findAllById(mifIds);
for(int i = 0;i<oldMaterialInFolders.size();i++){
MaterialInFolder materialInFolder = oldMaterialInFolders.get(i);
if(!StringUtils.isEmpty(materialId.get(i))){
materialInFolder.setMaterialId(materialId.get(i));
}
materialInFolder.setMaterialId(materialId);
materialInFolder.setMfId(folderId);
materialInFolderRepository.saveAndFlush(materialInFolder);
materialInFolders.add(materialInFolder);
}
if(materialInFolders.size()>0){
materialInFolderRepository.saveAllAndFlush(materialInFolders);
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteMyMaterial(String materialId) {
materialInFolderRepository.deleteAllByMaterialId(materialId);
materialRepository.deleteById(materialId);
public void deleteMyMaterial(List<String> materialIds) {
materialInFolderRepository.deleteAllByMaterialId(materialIds);
materialRepository.deleteById(materialIds);
}
@Override
@ -271,6 +325,16 @@ public class MaterialServiceImpl implements MaterialService {
materialRepository.saveAndFlush(material);
}
@Override
public ResultUtils<List<ThemeVO>> getMaterialByType(String themeName, Integer themeType, Integer themeTypeNot, String orgaId, Pageable pageable) {
PageRequest page= PageSort.pageRequest(pageable.getPageNumber(), pageable.getPageSize(), "create_time", Sort.Direction.DESC);
//分页查询
Page<Map<String,Object>> pageMap = materialRepository.getMaterialByType(themeName,themeType,themeTypeNot,orgaId,page);
//初始化分页返回数据
List<ThemeVO> themeVOList = MapUtil.setList(pageMap.getContent(),ThemeVO.class);
return ResultUtils.getResult(themeVOList,pageMap);
}
public List<String> getThemeFolder(String id,List<String> resultString){
resultString.add(id);
List<ThemeFolder> themeFolders = themeFolderRepository.findAllByFid(id);

1
system/src/main/java/com/canvas/web/modules/material/vo/AlbumVO.java

@ -13,5 +13,6 @@ public class AlbumVO {
private List<ThemeFolder> materialFolders;
private List<ThemeVO> pageThemeVO;
private String thisFoldId;
}

1
system/src/main/java/com/canvas/web/modules/material/vo/MyMaterialVO.java

@ -13,5 +13,6 @@ public class MyMaterialVO {
private List<MaterialFolder> materialFolders;
private List<ThemeVO> pageThemeVO;
private String thisFoldId;
}

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

@ -25,6 +25,10 @@ public class ThemeVO {
@JsonProperty("material_type")
private String materialType;
@JSONField(name="fileSize")
@JsonProperty("file_size")
private String fileSize;
@JSONField(name="depositUrl")
@JsonProperty("deposit_url")
private String depositUrl;
@ -41,6 +45,10 @@ public class ThemeVO {
@JsonProperty("device_direction")
private Integer deviceDirection;
@JSONField(name="duration")
@JsonProperty("duration")
private Integer duration;
@JSONField(name="inFolderId")
@JsonProperty("in_folder_id")
private String inFolderId;

65
system/src/main/java/com/canvas/web/modules/qiniu/rest/QiniuController.java

@ -0,0 +1,65 @@
package com.canvas.web.modules.qiniu.rest;
import com.canvas.web.annotation.rest.AnonymousGetMapping;
import com.canvas.web.utils.Response;
import com.canvas.web.utils.StringUtils;
import com.qiniu.util.Auth;
import com.qiniu.util.StringMap;
import com.qiniu.util.UrlSafeBase64;
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.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequiredArgsConstructor
@Api(tags = "七牛云管理")
@RequestMapping("/api/qiniu")
public class QiniuController {
private final String accessKey = "c39eAF6CRLXTPcOp7YZWN47QG-R8GMdJwBtBQ1Eb";
private final String secretKey = "dmjAyljtsS5W2VA7McOI3ay_Ryw8z3vQYv9_BhH7";
private final String bucket = "aiyuexing";
private final String domain = "https://qiniu.aiyxlib.com/";
private final String qiniuGet = "https://api.qiniu.com/status/get/";
private final String hlsKey = "ftzn19aiyxlib201";
private final String hlsKeyUrl = "https://qiniu.aiyxlib.com/aixylibword.key";
// tFileName 文件名称
@ApiOperation("获取上传Token(覆盖上传凭证)")
// @GetMapping("/uploadTokenCover")
@AnonymousGetMapping("/uploadTokenCover")
private Response<Object> uploadTokenCover(String tFileName){
Auth auth = Auth.create(accessKey, secretKey);
String upToken = auth.uploadToken(bucket, tFileName);
return Response.success(upToken);
}
// tFileName 文件名称
// tExtNam 后缀名
@ApiOperation("带数据处理的凭证")
// @GetMapping("/uploadTokenAndOps")
@AnonymousGetMapping("/uploadTokenAndOps")
public Response<Object> uploadTokenAndOps(String tFileName,String tExtNam){
Auth auth = Auth.create(accessKey, secretKey);
StringMap putPolicy = new StringMap();
//hls加密后可防止嗅探工具恶意下载
String saveMp4Entry = String.format(tFileName+":avthumb_test_target.m3u8", bucket);
String avthumbMp4Fop = String.format("avthumb/m3u8/noDomain/1/segtime/15/vb/440k/hlsKey/"+ hlsKey + "/hlsKeyUrl/" + hlsKeyUrl+"|saveas/"+tFileName, UrlSafeBase64.encodeToString(saveMp4Entry));
String persistentOpfs = StringUtils.join(new String[]{
avthumbMp4Fop
}, ";");
putPolicy.put("persistentOps", persistentOpfs);
//数据处理队列名称必填
putPolicy.put("persistentPipeline", "aiyxlib_video-pipe");
//数据处理完成结果通知地址
//putPolicy.put("persistentNotifyUrl", "http://api.example.com/qiniu/pfop/notify");
long expireSeconds = 3600;
String upToken = auth.uploadToken(bucket, null, expireSeconds, putPolicy);
return Response.success(upToken);
}
}

26
system/src/main/java/com/canvas/web/modules/release/criteria/NoticeQueryCriteria.java

@ -0,0 +1,26 @@
package com.canvas.web.modules.release.criteria;
import com.alibaba.fastjson.annotation.JSONField;
import com.canvas.web.annotation.Query;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@Data
public class NoticeQueryCriteria {
@Query
@JSONField(name="notice_name")
@JsonProperty("notice_name")
private String notice_name;
@Query
@JSONField(name="orga_id")
@JsonProperty("orga_id")
private String orga_id;
@Query
@JSONField(name="notice_id")
@JsonProperty("notice_id")
private String notice_id;
}

21
system/src/main/java/com/canvas/web/modules/release/criteria/ReleaseListQueryCriteria.java

@ -0,0 +1,21 @@
package com.canvas.web.modules.release.criteria;
import com.alibaba.fastjson.annotation.JSONField;
import com.canvas.web.annotation.Query;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@Data
public class ReleaseListQueryCriteria {
@Query
@JSONField(name="release_name")
@JsonProperty("release_name")
private String release_name;
@Query
@JSONField(name="orga_id")
@JsonProperty("orga_id")
private String orga_id;
}

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

@ -46,6 +46,10 @@ public class ReleaseList extends BaseEntity implements Serializable {
@ApiModelProperty(value = "发布周期 0.无 1.每天 2.每周")
private Integer releaseCycle;
@Column(name = "release_weekly")
@ApiModelProperty(value = "发布每周 如果设置为每天则为空")
private String releaseWeekly;
@Column(name = "is_topping")
@ApiModelProperty(value = "是否置顶")
private Boolean isTopping;
@ -54,6 +58,10 @@ public class ReleaseList extends BaseEntity implements Serializable {
@ApiModelProperty(value = "发布设备 1.全部 2.部分")
private Integer releaseDevice;
@Column(name = "bgm_main")
@ApiModelProperty(value = "背景音乐url")
private String bgmMain;
@Column(name = "orga_id")
@ApiModelProperty(value = "机构id")
private String orgaId;

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

@ -33,6 +33,18 @@ public class ReleaseMaterial extends BaseEntity implements Serializable {
@ApiModelProperty(value = "时长(s)")
private Integer duration;
@Column(name = "file_size")
@ApiModelProperty(value = "文件大小")
private String fileSize;
@Column(name = "img_path")
@ApiModelProperty(value = "图片路径")
private String imgPath;
@Column(name = "bgm_url")
@ApiModelProperty(value = "背景音乐")
private String bgmUrl;
@Column(name = "ranking")
@ApiModelProperty(value = "排行")
private Integer ranking;

46
system/src/main/java/com/canvas/web/modules/release/dto/NoticeDTO.java

@ -1,6 +1,8 @@
package com.canvas.web.modules.release.dto;
import com.alibaba.fastjson.annotation.JSONField;
import com.canvas.web.modules.release.domain.NoticeDevice;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;
@ -9,17 +11,57 @@ import java.util.List;
@Getter
@Setter
public class NoticeDTO {
@JSONField(name="noticeId")
@JsonProperty("notice_id")
private String noticeId;
@JSONField(name="context")
@JsonProperty("context")
private String context;
@JSONField(name="contextColor")
@JsonProperty("context_color")
private String contextColor;
@JSONField(name="contextSize")
@JsonProperty("context_size")
private Integer contextSize;
private String contextPosition;
private String contextSpeed;
@JSONField(name="contextPosition")
@JsonProperty("context_position")
private Integer contextPosition;
@JSONField(name="contextSpeed")
@JsonProperty("context_speed")
private Integer contextSpeed;
@JSONField(name="orgaId")
@JsonProperty("orga_id")
private String orgaId;
@JSONField(name="noticeDevice")
@JsonProperty("notice_device")
private Integer noticeDevice;
@JSONField(name="createBy")
@JsonProperty("create_by")
private String createBy;
@JSONField(name="updateBy")
@JsonProperty("update_by")
private String updateBy;
@JSONField(name="isState")
@JsonProperty("is_state")
private Integer isState;
@JSONField(name="isDel")
@JsonProperty("is_del")
private Boolean isDel;
@JSONField(name="noticeDevices")
@JsonProperty("notice_devices")
List<NoticeDevice> noticeDevices;
}

58
system/src/main/java/com/canvas/web/modules/release/dto/ReleaseDTO.java

@ -1,5 +1,7 @@
package com.canvas.web.modules.release.dto;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;
@ -10,19 +12,69 @@ import java.util.List;
@Setter
public class ReleaseDTO {
@JSONField(name="releaseId")
@JsonProperty("release_id")
private String releaseId;
@JSONField(name="relaaseName")
@JsonProperty("relaase_name")
private String relaaseName;
@JSONField(name="releaseType")
@JsonProperty("release_type")
private Integer releaseType;
private Timestamp releaseStart;
private Timestamp releaseEnd;
private Timestamp actualEnd;
@JSONField(name="releaseStart")
@JsonProperty("release_start")
private String releaseStart;
@JSONField(name="releaseEnd")
@JsonProperty("release_end")
private String releaseEnd;
@JSONField(name="actualEnd")
@JsonProperty("actual_end")
private String actualEnd;
@JSONField(name="releaseCycle")
@JsonProperty("release_cycle")
private Integer releaseCycle;
@JSONField(name="releaseWeekly")
@JsonProperty("release_weekly")
private String releaseWeekly;
@JSONField(name="isTopping")
@JsonProperty("is_topping")
private Boolean isTopping;
@JSONField(name="releaseDevice")
@JsonProperty("release_device")
private Integer releaseDevice;
@JSONField(name="bgmMain")
@JsonProperty("bgm_main")
private String bgmMain;
@JSONField(name="orgaId")
@JsonProperty("orga_id")
private String orgaId;
@JSONField(name="isState")
@JsonProperty("is_state")
private Integer isState;
@JSONField(name="isDel")
@JsonProperty("is_del")
private Boolean isDel;
@JSONField(name="releaseMaterialDTOs")
@JsonProperty("release_materialDTOs")
private List<ReleaseMaterialDTO> releaseMaterialDTOs;
@JSONField(name="releaseDeviceDTOs")
@JsonProperty("release_deviceDTOs")
private List<ReleaseDeviceDTO> releaseDeviceDTOs;
}

13
system/src/main/java/com/canvas/web/modules/release/dto/ReleaseDeviceDTO.java

@ -1,5 +1,7 @@
package com.canvas.web.modules.release.dto;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;
@ -7,9 +9,20 @@ import lombok.Setter;
@Setter
public class ReleaseDeviceDTO {
@JSONField(name="rdId")
@JsonProperty("rd_id")
private String rdId;
@JSONField(name="releaseId")
@JsonProperty("release_id")
private String releaseId;
@JSONField(name="deviceId")
@JsonProperty("device_id")
private String deviceId;
@JSONField(name="deviceName")
@JsonProperty("device_name")
private String deviceName;
}

33
system/src/main/java/com/canvas/web/modules/release/dto/ReleaseMaterialDTO.java

@ -1,5 +1,7 @@
package com.canvas.web.modules.release.dto;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;
@ -7,13 +9,44 @@ import lombok.Setter;
@Setter
public class ReleaseMaterialDTO {
@JSONField(name="rmId")
@JsonProperty("rm_id")
private String rmId;
@JSONField(name="releaseId")
@JsonProperty("release_id")
private String releaseId;
@JSONField(name="materialId")
@JsonProperty("material_id")
private String materialId;
@JSONField(name="duration")
@JsonProperty("duration")
private Integer duration;
@JSONField(name="effect")
@JsonProperty("effect")
private Integer effect;
@JSONField(name="fileSize")
@JsonProperty("file_size")
private String fileSize;
@JSONField(name="ranking")
@JsonProperty("ranking")
private Integer ranking;
@JSONField(name="materialName")
@JsonProperty("material_name")
private String materialName;
@JSONField(name="imgPath")
@JsonProperty("img_path")
private String imgPath;
@JSONField(name="bgmUrl")
@JsonProperty("bgm_path")
private String bgmUrl;
}

4
system/src/main/java/com/canvas/web/modules/release/repository/NoticeDeviceRepository.java

@ -16,8 +16,8 @@ public interface NoticeDeviceRepository extends JpaRepository<NoticeDevice, Stri
@Query(nativeQuery = true,
value = "select nd.id as ndId,nd.notice_id as noticeId,nd.device_id as deviceId,d.device_name as deviceName " +
"from notice_device nd inner join device on nd.device_id = d.id where nd.notice_id = ?1")
List<NoticeDeviceDetailsVO> findByIdToDevice(String noticeId);
"from notice_device nd inner join device d on nd.device_id = d.id where nd.notice_id = ?1")
List<Map<String,Object>> findByIdToDevice(String noticeId);
@Transactional(rollbackFor = Exception.class)
@Modifying(clearAutomatically = true)

5
system/src/main/java/com/canvas/web/modules/release/repository/NoticeRepository.java

@ -13,8 +13,11 @@ import java.util.Map;
public interface NoticeRepository extends JpaRepository<Notice, String> {
@Query(nativeQuery = true,
countQuery = "select count(1) from notice n inner join sys_user su on n.create_by = su.phone " +
"where n.orga_id = ?2 " +
"and n.context like %?1% ",
value = "select n.id as noticeId,n.context as context,n.create_time as createTime,n.create_by as createBy," +
"su.avatar_name as createrName, n.is_state as isState from notice n inner join sys_user su on n.create_by = su.id " +
"su.avatar_name as createrName, n.is_state as isState from notice n inner join sys_user su on n.create_by = su.phone " +
"where n.orga_id = ?2 " +
"and n.context like %?1% ")
Page<Map<String,Object>> getUrgentNoticeList(String noticeName,String orgaId, Pageable page);

3
system/src/main/java/com/canvas/web/modules/release/repository/ReleaseDeviceRepository.java

@ -5,6 +5,7 @@ import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
public interface ReleaseDeviceRepository extends JpaRepository<ReleaseDevice, String> {
@ -13,4 +14,6 @@ public interface ReleaseDeviceRepository extends JpaRepository<ReleaseDevice, St
@Modifying(clearAutomatically = true)
void deleteByReleaseId(String releaseId);
List<ReleaseDevice> findAllByReleaseId(String releaseId);
}

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

@ -11,29 +11,35 @@ 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," +
countQuery = "select count(1) 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 rl.orga_id = ?2 and if(?1 is null,1=1,rl.relaase_name like %?1% ) ",
value = "select rl.id as releaseId,rl.relaase_name as relaaseName,rl.release_start as releaseStart,rl.release_end as releaseEnd,rl.release_cycle as releaseCycle,rl.release_weekly as releaseWeekly," +
"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," +
"rl.release_device as releaseDevice,rl.bgm_main as bgmMain,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 d.orga_id = ?2 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 ml.orga_id = ?2 and inrl2.id = rl.id order by ml.ranking asc 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 rl.orga_id = ?2 and if(?1 is null,1=1,rl.relaase_name like %?1% )")
"on rm.release_id = inrl2.id where rl.is_del = false and rl.is_state = 1 and ml.orga_id = ?2 and inrl2.id = rl.id order by rm.ranking asc limit 0,1) as releaseFirstImg " +
"from release_list rl inner join sys_user su on rl.create_by = su.phone " +
"where rl.is_del = false and rl.is_state = 1 and (rl.release_end >= now() or rl.actual_end >= now()) " +
"and rl.orga_id = ?2 and if(?1 is null,1=1,rl.relaase_name like %?1% ) order by rl.create_time desc ")
Page<Map<String,Object>> getReleaseList(String releaseName,String orgaId, Pageable page);
@Query(nativeQuery = true,
value = "select rl.id as releaseId,rl.relaase_name as relaaseName,rl.release_start as releaseStart,rl.release_end as releaseEnd," +
countQuery = "select count(1) 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 or rl.release_end >= now() or rl.actual_end >= now()) " +
"and rl.orga_id = ?2 and if(?1 is null,1=1,rl.relaase_name like %?1% ) ",
value = "select rl.id as releaseId,rl.relaase_name as relaaseName,rl.release_start as releaseStart,rl.release_end as releaseEnd,rl.release_cycle as releaseCycle,rl.release_weekly as releaseWeekly," +
"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," +
"rl.release_device as releaseDevice,rl.bgm_main as bgmMain,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 d.orga_id = ?2 and inrl.id = rl.id) as bindingDevice," +
"on rd.release_id = inrl.id where d.orga_id = ?2 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 ml.orga_id = ?2 and inrl2.id = rl.id order by ml.ranking asc 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 or rl.release_end >= now() or rl.actual_end >= now()) " +
"and rl.orga_id = ?2 and if(?1 is null,1=1,rl.relaase_name like %?1% )")
"on rm.release_id = inrl2.id where rl.is_del = false and rl.is_state = 1 and ml.orga_id = ?2 and inrl2.id = rl.id order by rm.ranking asc limit 0,1) as releaseFirstImg " +
"from release_list rl inner join sys_user su on rl.create_by = su.phone " +
"where rl.is_del = false and (rl.is_state != 1 or rl.release_end <= now() or rl.actual_end <= now()) " +
"and rl.orga_id = ?2 and if(?1 is null,1=1,rl.relaase_name like %?1% ) order by rl.actual_end desc")
Page<Map<String,Object>> getReleaseHistoryList(String releaseName,String orgaId, Pageable page);
}

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

@ -3,7 +3,10 @@ package com.canvas.web.modules.release.repository;
import com.canvas.web.modules.release.domain.ReleaseMaterial;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface ReleaseMaterialRepository extends JpaRepository<ReleaseMaterial, String> {
List<ReleaseMaterial> findAllByReleaseId(String releaseId);
}

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

@ -1,10 +1,16 @@
package com.canvas.web.modules.release.rest;
import com.canvas.web.annotation.rest.AnonymousGetMapping;
import com.canvas.web.annotation.rest.AnonymousPostMapping;
import com.canvas.web.modules.material.dto.ChangeStateDTO;
import com.canvas.web.modules.release.criteria.NoticeQueryCriteria;
import com.canvas.web.modules.release.criteria.ReleaseListQueryCriteria;
import com.canvas.web.modules.release.dto.NoticeDTO;
import com.canvas.web.modules.release.dto.ReleaseDTO;
import com.canvas.web.modules.release.service.ReleaseListService;
import com.canvas.web.modules.release.vo.NoticeDeviceVO;
import com.canvas.web.modules.release.vo.NoticeVO;
import com.canvas.web.modules.release.vo.ReleaseDetailVO;
import com.canvas.web.modules.release.vo.ReleaseListVO;
import com.canvas.web.modules.utils.ResultUtils;
import com.canvas.web.utils.Response;
@ -17,6 +23,7 @@ import org.springframework.data.domain.Pageable;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.sql.Timestamp;
import java.util.List;
@RestController
@ -25,18 +32,20 @@ import java.util.List;
@RequestMapping("/api/release")
public class ReleaseListController {
ReleaseListService releaseListService;
private final ReleaseListService releaseListService;
@ApiOperation("发布列表")
@GetMapping("/getReleaseList")
// @GetMapping("/getReleaseList")
@AnonymousGetMapping("/getReleaseList")
public Response<ResultUtils<List<ReleaseListVO>>> getReleaseList(
String releaseName,String orgaId, Pageable page
ReleaseListQueryCriteria criteria, Pageable page
){
return Response.success(releaseListService.getReleaseList(releaseName,orgaId,page));
return Response.success(releaseListService.getReleaseList(criteria.getRelease_name(),criteria.getOrga_id(),page));
}
@ApiOperation("编辑发布信息")
@PostMapping("/saveRelease")
// @PostMapping("/saveRelease")
@AnonymousPostMapping("/saveRelease")
public Response<Object> saveRelease(
@Validated @RequestBody ReleaseDTO dto
){
@ -45,31 +54,45 @@ public class ReleaseListController {
}
@ApiOperation("发布历史列表")
@GetMapping("/getReleaseHistoryList")
// @GetMapping("/getReleaseHistoryList")
@AnonymousGetMapping("/getReleaseHistoryList")
public Response<ResultUtils<List<ReleaseListVO>>> getReleaseHistoryList(
String releaseName,String orgaId, Pageable page
ReleaseListQueryCriteria criteria, Pageable page
){
return Response.success(releaseListService.getReleaseHistoryList(releaseName,orgaId,page));
return Response.success(releaseListService.getReleaseHistoryList(criteria.getRelease_name(),criteria.getOrga_id(),page));
}
@ApiOperation("根据id查询发布详细信息")
// @GetMapping("/getReleaseDetailsById")
@AnonymousGetMapping("/getReleaseDetailsById")
public Response<ReleaseDetailVO> getReleaseDetailsById(
@Validated String release_id
){
return Response.success(releaseListService.getReleaseDetailsById(release_id));
}
@ApiOperation("紧急通知列表")
@GetMapping("/getUrgentNoticeList")
// @GetMapping("/getUrgentNoticeList")
@AnonymousGetMapping("/getUrgentNoticeList")
public Response<ResultUtils<List<NoticeVO>>> getUrgentNoticeList(
String noticeName,String orgaId, Pageable page
NoticeQueryCriteria criteria, Pageable page
){
return Response.success(releaseListService.getUrgentNoticeList(noticeName,orgaId,page));
return Response.success(releaseListService.getUrgentNoticeList(criteria.getNotice_name(),criteria.getOrga_id(),page));
}
@ApiOperation("根据id查询紧急通知")
@GetMapping("/getNoticeById")
// @GetMapping("/getNoticeById")
@AnonymousGetMapping("/getNoticeById")
public Response<NoticeDeviceVO> getNoticeById(
String noticeId
NoticeQueryCriteria criteria
){
return Response.success(releaseListService.getNoticeById(noticeId));
return Response.success(releaseListService.getNoticeById(criteria.getNotice_id()));
}
@ApiOperation("编辑紧急通知")
@PostMapping("/editNotice")
// @PostMapping("/editNotice")
@AnonymousPostMapping("/editNotice")
public Response<Object> editNotice(
@Validated @RequestBody NoticeDTO dto
){
@ -77,5 +100,15 @@ public class ReleaseListController {
return Response.success(dto.getNoticeId() == null ? ResponseEnum.CREATED : ResponseEnum.UPDATE_SUCCESS);
}
@ApiOperation("改变紧急通知状态")
// @PostMapping("/updateNoticeState")
@AnonymousPostMapping("/updateNoticeState")
public Response<Object> updateNoticeState(
@Validated @RequestBody ChangeStateDTO dto
){
releaseListService.updateNoticeState(dto.getId(),dto.getState());
return Response.success(ResponseEnum.UPDATE_SUCCESS);
}
}

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

@ -4,6 +4,7 @@ import com.canvas.web.modules.release.dto.NoticeDTO;
import com.canvas.web.modules.release.dto.ReleaseDTO;
import com.canvas.web.modules.release.vo.NoticeDeviceVO;
import com.canvas.web.modules.release.vo.NoticeVO;
import com.canvas.web.modules.release.vo.ReleaseDetailVO;
import com.canvas.web.modules.release.vo.ReleaseListVO;
import com.canvas.web.modules.utils.ResultUtils;
@ -16,6 +17,8 @@ public interface ReleaseListService {
ResultUtils<List<ReleaseListVO>> getReleaseList(String releaseName, String orgaId, Pageable pageable);
//分页查询发布历史信息
ResultUtils<List<ReleaseListVO>> getReleaseHistoryList(String releaseName,String orgaId, Pageable pageable);
//根据发布id查询发布详细信息
ReleaseDetailVO getReleaseDetailsById(String releaseId);
//编辑发布内容
void edit(ReleaseDTO dto);
//获取紧急通知列表
@ -24,4 +27,6 @@ public interface ReleaseListService {
NoticeDeviceVO getNoticeById(String noticeId);
//编辑紧急通知
void editNotice(NoticeDTO dto);
//更改紧急通知状态
void updateNoticeState(String noticeId,Integer state);
}

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

@ -7,10 +7,7 @@ import com.canvas.web.modules.release.dto.ReleaseDeviceDTO;
import com.canvas.web.modules.release.dto.ReleaseMaterialDTO;
import com.canvas.web.modules.release.repository.*;
import com.canvas.web.modules.release.service.ReleaseListService;
import com.canvas.web.modules.release.vo.NoticeDeviceDetailsVO;
import com.canvas.web.modules.release.vo.NoticeDeviceVO;
import com.canvas.web.modules.release.vo.NoticeVO;
import com.canvas.web.modules.release.vo.ReleaseListVO;
import com.canvas.web.modules.release.vo.*;
import com.canvas.web.modules.utils.MapUtil;
import com.canvas.web.modules.utils.PageSort;
import com.canvas.web.modules.utils.ResultUtils;
@ -22,6 +19,7 @@ import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.sql.Timestamp;
import java.util.ArrayList;
@ -33,16 +31,16 @@ import java.util.Map;
@RequiredArgsConstructor
public class ReleaseListServiceImpl implements ReleaseListService {
ReleaseListRepository releaseListRepository;
ReleaseMaterialRepository releaseMaterialRepository;
ReleaseDeviceRepository releaseDeviceRepository;
NoticeRepository noticeRepository;
NoticeDeviceRepository noticeDeviceRepository;
private final ReleaseListRepository releaseListRepository;
private final ReleaseMaterialRepository releaseMaterialRepository;
private final ReleaseDeviceRepository releaseDeviceRepository;
private final NoticeRepository noticeRepository;
private final NoticeDeviceRepository noticeDeviceRepository;
@Override
public ResultUtils<List<ReleaseListVO>> getReleaseList(String releaseName,String orgaId, Pageable pageable) {
PageRequest page= PageSort.pageRequest(pageable.getPageNumber(), pageable.getPageSize(), "create_time", Sort.Direction.DESC);
PageRequest page = PageRequest.of(pageable.getPageNumber(),pageable.getPageSize());
//分页查询
Page<Map<String,Object>> pageMap = releaseListRepository.getReleaseList(releaseName,orgaId,page);
//初始化分页返回数据
@ -52,7 +50,7 @@ public class ReleaseListServiceImpl implements ReleaseListService {
@Override
public ResultUtils<List<ReleaseListVO>> getReleaseHistoryList(String releaseName, String orgaId, Pageable pageable) {
PageRequest page= PageSort.pageRequest(pageable.getPageNumber(), pageable.getPageSize(), "actual_end", Sort.Direction.DESC);
PageRequest page = PageRequest.of(pageable.getPageNumber(),pageable.getPageSize());
//分页查询
Page<Map<String,Object>> pageMap = releaseListRepository.getReleaseHistoryList(releaseName,orgaId,page);
//初始化分页返回数据
@ -61,6 +59,16 @@ public class ReleaseListServiceImpl implements ReleaseListService {
}
@Override
public ReleaseDetailVO getReleaseDetailsById(String releaseId) {
ReleaseDetailVO vo = new ReleaseDetailVO();
vo.setReleaseList(releaseListRepository.findById(releaseId).get());
vo.setReleaseDevices(releaseDeviceRepository.findAllByReleaseId(releaseId));
vo.setReleaseMaterials(releaseMaterialRepository.findAllByReleaseId(releaseId));
return vo;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void edit(ReleaseDTO dto) {
ReleaseList releaseList = new ReleaseList();
//修改
@ -75,15 +83,14 @@ public class ReleaseListServiceImpl implements ReleaseListService {
}
releaseList.setRelaaseName(dto.getRelaaseName());
releaseList.setReleaseType(dto.getReleaseType());
releaseList.setReleaseStart(dto.getReleaseStart());
releaseList.setReleaseEnd(dto.getReleaseEnd());
releaseList.setActualEnd(dto.getActualEnd());
releaseList.setReleaseStart(StringUtils.isEmpty(dto.getReleaseStart()) ? null : Timestamp.valueOf(dto.getReleaseStart()));
releaseList.setReleaseEnd(StringUtils.isEmpty(dto.getReleaseEnd()) ? null : Timestamp.valueOf(dto.getReleaseEnd()));
releaseList.setActualEnd(StringUtils.isEmpty(dto.getActualEnd()) ? null : Timestamp.valueOf(dto.getActualEnd()));
releaseList.setReleaseCycle(dto.getReleaseCycle());
releaseList.setIsTopping(dto.getIsTopping());
releaseList.setReleaseDevice(dto.getReleaseDevice());
releaseList.setBgmMain(dto.getBgmMain());
releaseList.setOrgaId(dto.getOrgaId());
releaseList.setIsDel(dto.getIsDel());
releaseList.setIsState(dto.getIsState());
releaseList = releaseListRepository.saveAndFlush(releaseList);
List<ReleaseMaterialDTO> rmDtos = dto.getReleaseMaterialDTOs();
@ -96,11 +103,14 @@ public class ReleaseListServiceImpl implements ReleaseListService {
rm.setCreateTime(new Timestamp(new Date().getTime()));
}
rm.setUpdateTime(new Timestamp(new Date().getTime()));
rm.setReleaseId(rmDto.getReleaseId());
rm.setReleaseId(releaseList.getId());
rm.setMaterialId(rmDto.getMaterialId());
rm.setDuration(rmDto.getDuration());
rm.setFileSize(rmDto.getFileSize());
rm.setBgmUrl(rmDto.getBgmUrl());
rm.setRanking(rmDto.getRanking());
rm.setEffect(rmDto.getEffect());
rm.setReleaseId(releaseList.getId());
releaseMaterialRepository.saveAndFlush(rm);
}
//当选择全部设备时
@ -112,7 +122,7 @@ public class ReleaseListServiceImpl implements ReleaseListService {
List<ReleaseDevice> releaseDevices = new ArrayList<>();
for(int i =0;i<rdDTOs.size();i++){
ReleaseDevice rd = new ReleaseDevice();
rd.setReleaseId(rdDTOs.get(i).getReleaseId());
rd.setReleaseId(releaseList.getId());
rd.setDeviceId(rdDTOs.get(i).getDeviceId());
releaseDevices.add(rd);
}
@ -135,7 +145,8 @@ public class ReleaseListServiceImpl implements ReleaseListService {
public NoticeDeviceVO getNoticeById(String noticeId) {
NoticeDeviceVO vo = new NoticeDeviceVO();
vo.setNotice(noticeRepository.findById(noticeId).get());
List<NoticeDeviceDetailsVO> nddVOs = noticeDeviceRepository.findByIdToDevice(noticeId);
List<Map<String,Object>> map = noticeDeviceRepository.findByIdToDevice(noticeId);
List<NoticeDeviceDetailsVO> nddVOs = MapUtil.setList(map,NoticeDeviceDetailsVO.class);
vo.setNoticeDeviceDetailsVO(nddVOs);
return vo;
}
@ -147,30 +158,39 @@ public class ReleaseListServiceImpl implements ReleaseListService {
if(null != dto.getNoticeId()){
notice = noticeRepository.findById(dto.getNoticeId()).get();
notice.setUpdateTime(new Timestamp(new Date().getTime()));
notice.setIsDel(dto.getIsDel());
notice.setIsState(dto.getIsState());
}else{
notice.setCreateTime(new Timestamp(new Date().getTime()));
notice.setUpdateTime(new Timestamp(new Date().getTime()));
notice.setIsDel(false);
notice.setIsState(1);
}
notice.setContext(notice.getContext());
notice.setContextColor(notice.getContextColor());
notice.setContextSize(notice.getContextSize());
notice.setContextPosition(notice.getContextPosition());
notice.setContextSpeed(notice.getContextSpeed());
notice.setOrgaId(notice.getOrgaId());
notice.setNoticeDevice(notice.getNoticeDevice());
notice.setContext(dto.getContext());
notice.setContextColor(dto.getContextColor());
notice.setContextSize(dto.getContextSize());
notice.setContextPosition(dto.getContextPosition());
notice.setContextSpeed(dto.getContextSpeed());
notice.setOrgaId(dto.getOrgaId());
notice.setNoticeDevice(dto.getNoticeDevice());
notice = noticeRepository.saveAndFlush(notice);
//当选择全部设备时
if(1 == dto.getNoticeDevice()){
noticeDeviceRepository.deleteByNoticeId(dto.getNoticeId());
noticeDeviceRepository.deleteByNoticeId(notice.getId());
}else if(null != dto.getNoticeDevices() && dto.getNoticeDevices().size()!=0){
noticeDeviceRepository.deleteByNoticeId(dto.getNoticeId());
noticeDeviceRepository.deleteByNoticeId(notice.getId());
List<NoticeDevice> nds = dto.getNoticeDevices();
for(int i = 0;i<nds.size();i++){
nds.get(i).setNoticeId(notice.getId());
}
noticeDeviceRepository.saveAll(nds);
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateNoticeState(String noticeId, Integer state) {
Notice notice = noticeRepository.findById(noticeId).get();
notice.setIsState(state);
noticeRepository.saveAndFlush(notice);
}
}

13
system/src/main/java/com/canvas/web/modules/release/vo/NoticeDeviceDetailsVO.java

@ -1,6 +1,8 @@
package com.canvas.web.modules.release.vo;
import com.alibaba.fastjson.annotation.JSONField;
import com.canvas.web.modules.release.domain.Notice;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;
@ -10,9 +12,20 @@ import java.util.List;
@Setter
public class NoticeDeviceDetailsVO {
@JSONField(name="ndId")
@JsonProperty("nd_id")
private String ndId;
@JSONField(name="noticeId")
@JsonProperty("notice_id")
private String noticeId;
@JSONField(name="deviceId")
@JsonProperty("device_id")
private String deviceId;
@JSONField(name="deviceName")
@JsonProperty("device_name")
private String deviceName;
}

20
system/src/main/java/com/canvas/web/modules/release/vo/NoticeVO.java

@ -1,5 +1,7 @@
package com.canvas.web.modules.release.vo;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;
@ -8,10 +10,28 @@ import java.sql.Timestamp;
@Getter
@Setter
public class NoticeVO {
@JSONField(name="noticeId")
@JsonProperty("notice_id")
private String noticeId;
@JSONField(name="context")
@JsonProperty("context")
private String context;
@JSONField(name="createTime")
@JsonProperty("create_time")
private Timestamp createTime;
@JSONField(name="createBy")
@JsonProperty("create_by")
private String createBy;
@JSONField(name="createrName")
@JsonProperty("creater_name")
private String createrName;
@JSONField(name="isState")
@JsonProperty("is_state")
private Integer isState;
}

29
system/src/main/java/com/canvas/web/modules/release/vo/ReleaseDetailVO.java

@ -0,0 +1,29 @@
package com.canvas.web.modules.release.vo;
import com.alibaba.fastjson.annotation.JSONField;
import com.canvas.web.modules.release.domain.ReleaseDevice;
import com.canvas.web.modules.release.domain.ReleaseList;
import com.canvas.web.modules.release.domain.ReleaseMaterial;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
@Getter
@Setter
public class ReleaseDetailVO {
@JSONField(name="releaseList")
@JsonProperty("release")
private ReleaseList releaseList;
@JSONField(name="releaseMaterials")
@JsonProperty("release_materials")
private List<ReleaseMaterial> releaseMaterials;
@JSONField(name="releaseDevices")
@JsonProperty("release_devices")
private List<ReleaseDevice> releaseDevices;
}

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

@ -1,5 +1,7 @@
package com.canvas.web.modules.release.vo;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;
@ -9,20 +11,72 @@ import java.sql.Timestamp;
@Setter
public class ReleaseListVO {
@JSONField(name="releaseId")
@JsonProperty("release_id")
private String releaseId;
@JSONField(name="relaaseName")
@JsonProperty("relaase_name")
private String relaaseName;
@JSONField(name="releaseType")
@JsonProperty("release_type")
private String releaseType;
@JSONField(name="releaseFirstImg")
@JsonProperty("release_first_img")
private String releaseFirstImg;
@JSONField(name="releaseStart")
@JsonProperty("release_start")
private Timestamp releaseStart;
@JSONField(name="releaseEnd")
@JsonProperty("release_end")
private Timestamp releaseEnd;
@JSONField(name="actualEnd")
@JsonProperty("actual_end")
private Timestamp actualEnd;
@JSONField(name="releaseCycle")
@JsonProperty("release_cycle")
private Integer releaseCycle;
@JSONField(name="releaseWeekly")
@JsonProperty("release_weekly")
private String releaseWeekly;
@JSONField(name="nickName")
@JsonProperty("nick_name")
private String nickName;
@JSONField(name="isState")
@JsonProperty("is_state")
private Integer isState;
@JSONField(name="releaseDevice")
@JsonProperty("release_device")
private Integer releaseDevice;
@JSONField(name="bgmMain")
@JsonProperty("bgm_main")
private String bgmMain;
@JSONField(name="isTopping")
@JsonProperty("is_topping")
private Boolean isTopping;
@JSONField(name="isDel")
@JsonProperty("is_del")
private Boolean isDel;
@JSONField(name="createTime")
@JsonProperty("create_time")
private Timestamp createTime;
@JSONField(name="updateTime")
@JsonProperty("update_time")
private Timestamp updateTime;
}
Loading…
Cancel
Save