Browse Source

联调接口修改

master
xia 3 years ago
parent
commit
6876fce523
  1. 15
      client/pom.xml
  2. 16
      client/src/main/java/com/canvas/web/modules/front/rest/FrontController.java
  3. 172
      client/src/main/java/com/canvas/web/modules/front/rest/WebSocket.java
  4. 10
      common/src/main/java/com/canvas/web/base/BaseEntity.java
  5. 2
      system/src/main/java/com/canvas/web/modules/device/domain/Device.java
  6. 2
      system/src/main/java/com/canvas/web/modules/device/dto/DeviceDTO.java
  7. 6
      system/src/main/java/com/canvas/web/modules/device/repository/DeviceRepository.java
  8. 11
      system/src/main/java/com/canvas/web/modules/device/rest/DeviceController.java
  9. 2
      system/src/main/java/com/canvas/web/modules/device/service/DeviceService.java
  10. 4
      system/src/main/java/com/canvas/web/modules/device/service/impl/DeviceServiceImpl.java
  11. 7
      system/src/main/java/com/canvas/web/modules/material/criteria/MaterialQueryCriteria.java
  12. 4
      system/src/main/java/com/canvas/web/modules/material/criteria/ThemeQueryCriteria.java
  13. 24
      system/src/main/java/com/canvas/web/modules/material/domain/Material.java
  14. 2
      system/src/main/java/com/canvas/web/modules/material/domain/MaterialFolder.java
  15. 2
      system/src/main/java/com/canvas/web/modules/material/domain/OrgaClass.java
  16. 2
      system/src/main/java/com/canvas/web/modules/material/domain/ThemeFolder.java
  17. 8
      system/src/main/java/com/canvas/web/modules/material/dto/ChangeStateDTO.java
  18. 2
      system/src/main/java/com/canvas/web/modules/material/dto/DoFolderDTO.java
  19. 2
      system/src/main/java/com/canvas/web/modules/material/dto/FolderDTO.java
  20. 2
      system/src/main/java/com/canvas/web/modules/material/dto/MaterialDTO.java
  21. 2
      system/src/main/java/com/canvas/web/modules/material/dto/ThemeClassDTO.java
  22. 4
      system/src/main/java/com/canvas/web/modules/material/repository/MaterialFolderRepository.java
  23. 24
      system/src/main/java/com/canvas/web/modules/material/repository/MaterialRepository.java
  24. 4
      system/src/main/java/com/canvas/web/modules/material/repository/OrgaClassRepository.java
  25. 2
      system/src/main/java/com/canvas/web/modules/material/repository/ThemeClassRepository.java
  26. 4
      system/src/main/java/com/canvas/web/modules/material/repository/ThemeFolderRepository.java
  27. 39
      system/src/main/java/com/canvas/web/modules/material/rest/MaterialController.java
  28. 12
      system/src/main/java/com/canvas/web/modules/material/rest/ThemeClassController.java
  29. 21
      system/src/main/java/com/canvas/web/modules/material/service/MaterialService.java
  30. 5
      system/src/main/java/com/canvas/web/modules/material/service/ThemeClassService.java
  31. 47
      system/src/main/java/com/canvas/web/modules/material/service/impl/MaterialServiceImpl.java
  32. 25
      system/src/main/java/com/canvas/web/modules/material/service/impl/ThemeClassServiceImpl.java
  33. 31
      system/src/main/java/com/canvas/web/modules/material/vo/ThemeClassVO.java
  34. 8
      system/src/main/java/com/canvas/web/modules/material/vo/ThemeVO.java
  35. 2
      system/src/main/java/com/canvas/web/modules/release/criteria/NoticeQueryCriteria.java
  36. 2
      system/src/main/java/com/canvas/web/modules/release/criteria/ReleaseListQueryCriteria.java
  37. 2
      system/src/main/java/com/canvas/web/modules/release/domain/Notice.java
  38. 30
      system/src/main/java/com/canvas/web/modules/release/domain/ReleaseList.java
  39. 18
      system/src/main/java/com/canvas/web/modules/release/domain/ReleaseMaterial.java
  40. 2
      system/src/main/java/com/canvas/web/modules/release/dto/NoticeDTO.java
  41. 6
      system/src/main/java/com/canvas/web/modules/release/dto/ReleaseDTO.java
  42. 4
      system/src/main/java/com/canvas/web/modules/release/dto/ReleaseMaterialDTO.java
  43. 2
      system/src/main/java/com/canvas/web/modules/release/repository/NoticeRepository.java
  44. 7
      system/src/main/java/com/canvas/web/modules/release/repository/ReleaseDeviceRepository.java
  45. 12
      system/src/main/java/com/canvas/web/modules/release/repository/ReleaseListRepository.java
  46. 2
      system/src/main/java/com/canvas/web/modules/release/repository/ReleaseMaterialRepository.java
  47. 30
      system/src/main/java/com/canvas/web/modules/release/rest/ReleaseListController.java
  48. 12
      system/src/main/java/com/canvas/web/modules/release/service/ReleaseListService.java
  49. 42
      system/src/main/java/com/canvas/web/modules/release/service/impl/ReleaseListServiceImpl.java
  50. 3
      system/src/main/java/com/canvas/web/modules/release/vo/ReleaseDetailVO.java
  51. 4
      system/src/main/java/com/canvas/web/modules/release/vo/ReleaseListVO.java

15
client/pom.xml

@ -10,10 +10,25 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>client</artifactId>
<name>客户端</name>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>com.canvas.web</groupId>
<artifactId>common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.canvas.web</groupId>
<artifactId>system</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>

16
client/src/main/java/com/canvas/web/modules/front/rest/FrontController.java

@ -0,0 +1,16 @@
package com.canvas.web.modules.front.rest;
import io.swagger.annotations.Api;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequiredArgsConstructor
@Api(tags = "画屏客户端")
@RequestMapping("/api/front")
public class FrontController {
}

172
client/src/main/java/com/canvas/web/modules/front/rest/WebSocket.java

@ -0,0 +1,172 @@
package com.canvas.web.modules.front.rest;
import com.canvas.web.modules.device.service.DeviceService;
import org.springframework.stereotype.Component;
import javax.websocket.*;
import javax.websocket.server.PathParam;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.ConcurrentHashMap;
@ServerEndpoint("/websocket/{deviceId}")
@Component
public class WebSocket {
private DeviceService deviceService;
//静态变量用来记录当前在线连接数应该把它设计成线程安全的
private static int onlineCount = 0;
//concurrent包的线程安全Set用来存放每个客户端对应的MyWebSocket对象若要实现服务端与单一客户端通信的话可以使用Map来存放其中Key可以为用户标识
private static ConcurrentHashMap<String, WebSocket> webSocketSet = new ConcurrentHashMap<String, WebSocket>();
//与某个客户端的连接会话需要通过它来给客户端发送数据
private Session session;
//当前发消息的设备编号
private String deviceId = "";
public static WebSocket getWebSocket(String id) {
return webSocketSet.get(id);
}
/**
* 连接建立成功调用的方法
*
* @param session 可选的参数session为与某个客户端的连接会话需要通过它来给客户端发送数据
*/
@OnOpen
public void onOpen(@PathParam(value = "deviceId") String param, Session session, EndpointConfig config) {
System.out.println(param);
deviceId = param;//接收到发送消息的设备编号
this.session = session;
webSocketSet.put(param, this);//加入map中
addOnlineCount(); //在线数加1
deviceService.updateState(deviceId,1);
System.out.println("有新连接加入!当前在线人数为" + getOnlineCount());
}
/**
* 连接关闭调用的方法
*/
@OnClose
public void onClose() {
if (!deviceId.equals("")) {
webSocketSet.remove(deviceId); //从set中删除
subOnlineCount(); //在线数减1
deviceService.updateState(deviceId,2);
System.out.println("有一连接关闭!当前在线人数为" + getOnlineCount());
}
}
/**
* 收到客户端消息后调用的方法
*
* @param message 客户端发送过来的消息
*/
@OnMessage
public void onMessage(String message) {
System.out.println("来自客户端的消息:" + message);
// session.get
//群发消息
if (1 != 1) {
sendAll(message);
} else {
//给指定的人发消息
sendToUser(message);
}
}
/**
* 给指定的人发送消息
*
* @param message
*/
private void sendToUser(String message) {
String sendUserno = message.split("[|]")[1];
String sendMessage = message.split("[|]")[0];
String now = getNowTime();
try {
if (webSocketSet.get(sendUserno) != null) {
webSocketSet.get(sendUserno).sendMessage(now + "用户" + deviceId + "发来消息:" + " <br/> " + sendMessage);
} else {
System.out.println("当前用户不在线");
}
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 给所有人发消息
*
* @param message
*/
private void sendAll(String message) {
String now = getNowTime();
String sendMessage = message.split("[|]")[0];
//遍历HashMap
for (String key : webSocketSet.keySet()) {
try {
//判断接收用户是否是当前发消息的用户
if (!deviceId.equals(key)) {
webSocketSet.get(key).sendMessage(now + "用户" + deviceId + "发来消息:" + " <br/> " + sendMessage);
System.out.println("key = " + key);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 获取当前时间
*
* @return
*/
private String getNowTime() {
Date date = new Date();
DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = format.format(date);
return time;
}
/**
* 发生错误时调用
*
* @param session
* @param error
*/
@OnError
public void onError(Session session, Throwable error) {
System.out.println("发生错误");
error.printStackTrace();
}
/**
* 这个方法与上面几个方法不一样没有用注解是根据自己需要添加的方法
*
* @param message
* @throws IOException
*/
public void sendMessage(String message) throws IOException {
this.session.getBasicRemote().sendText(message);
//this.session.getAsyncRemote().sendText(message);
}
public static synchronized int getOnlineCount() {
return onlineCount;
}
public static synchronized void addOnlineCount() {
WebSocket.onlineCount++;
}
public static synchronized void subOnlineCount() {
WebSocket.onlineCount--;
}
}

10
common/src/main/java/com/canvas/web/base/BaseEntity.java

@ -1,5 +1,7 @@
package com.canvas.web.base;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
@ -27,21 +29,29 @@ public class BaseEntity implements Serializable {
@CreatedBy
@Column(name = "create_by", updatable = false)
@ApiModelProperty(value = "创建人", hidden = true)
@JSONField(name="createBy")
@JsonProperty("create_by")
private String createBy;
@LastModifiedBy
@Column(name = "update_by")
@ApiModelProperty(value = "更新人", hidden = true)
@JSONField(name="updatedBy")
@JsonProperty("update_by")
private String updatedBy;
@CreationTimestamp
@Column(name = "create_time", updatable = false)
@ApiModelProperty(value = "创建时间", hidden = true)
@JSONField(name="createTime")
@JsonProperty("create_time")
private Timestamp createTime;
@UpdateTimestamp
@Column(name = "update_time")
@ApiModelProperty(value = "更新时间", hidden = true)
@JSONField(name="updateTime")
@JsonProperty("update_time")
private Timestamp updateTime;
/* 分组校验 */

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

@ -39,7 +39,7 @@ public class Device extends BaseEntity implements Serializable {
@Column(name = "orga_id")
@ApiModelProperty(value = "机构id")
public String orgaId;
public Long orgaId;
@Column(name = "open_setting")
@ApiModelProperty(value = "开机设置 1.每天 2.每周")

2
system/src/main/java/com/canvas/web/modules/device/dto/DeviceDTO.java

@ -29,5 +29,5 @@ public class DeviceDTO implements Serializable {
@JSONField(name="orga_id")
@JsonProperty("orga_id")
private String orgaId;
private Long orgaId;
}

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

@ -17,7 +17,7 @@ public interface DeviceRepository extends JpaRepository<Device, String> {
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)",
"and if(?3 is null,1=1,d.is_state = ?3) and if(?4 is null,1=1,d.orga_id = ?4)",
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," +
@ -25,8 +25,8 @@ public interface DeviceRepository extends JpaRepository<Device, String> {
"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);
"and if(?3 is null,1=1,d.is_state = ?3) and if(?4 is null,1=1,d.orga_id = ?4)")
Page<Map<String,Object>> getDeviceList(String deviceId, String deviceName, Integer state,Long orgId, Pageable page);
@Query(value = "from Device where id in ?1")
List<Device> findByIds(List<String> ids);

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

@ -13,6 +13,7 @@ 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.canvas.web.utils.SecurityUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
@ -29,14 +30,15 @@ import java.util.List;
public class DeviceController {
private final DeviceService deviceService;
Long beOrgId = 133221333123111L;
@ApiOperation("设备列表")
// @GetMapping("/list")
@AnonymousGetMapping("/list")
public Response<ResultUtils<List<DeviceVO>>> list(
DeviceQueryCriteria criteria, Pageable page
){
return Response.success(deviceService.getDeviceList(criteria.getDevice_id(),criteria.getDevice_name(),criteria.getIs_state(),page));
// Long id = SecurityUtils.getCurrentOrgId();
return Response.success(deviceService.getDeviceList(criteria.getDevice_id(),criteria.getDevice_name(),criteria.getIs_state(),beOrgId,page));
}
@ApiOperation("编辑设备")
@ -45,6 +47,8 @@ public class DeviceController {
public Response<Object> save(
@Validated @RequestBody DeviceDTO dto
){
// Long id = SecurityUtils.getCurrentOrgId();
dto.setOrgaId(beOrgId);
boolean isok = deviceService.edit(dto);
return Response.success(dto.getDeviceId()== null ? ResponseEnum.CREATED : ResponseEnum.UPDATE_SUCCESS);
}
@ -64,7 +68,8 @@ public class DeviceController {
public Response<ResultUtils<List<DeviceVO>>> switchlist(
DeviceQueryCriteria criteria, Pageable page
){
return Response.success(deviceService.getDeviceList(criteria.getDevice_id(),criteria.getDevice_name(),criteria.getIs_state(),page));
// Long id = SecurityUtils.getCurrentOrgId();
return Response.success(deviceService.getDeviceList(criteria.getDevice_id(),criteria.getDevice_name(),criteria.getIs_state(),beOrgId,page));
}
@ApiOperation("开关机配置")

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

@ -12,7 +12,7 @@ import java.util.List;
public interface DeviceService {
//分页查询设备列表
ResultUtils<List<DeviceVO>> getDeviceList(String deviceId, String deviceName, Integer state, Pageable pageable);
ResultUtils<List<DeviceVO>> getDeviceList(String deviceId, String deviceName, Integer state,Long orgId, Pageable pageable);
//编辑设备
boolean edit(DeviceDTO dto);
//开关机配置

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

@ -30,10 +30,10 @@ public class DeviceServiceImpl implements DeviceService {
private final DeviceRepository deviceRepository;
@Override
public ResultUtils<List<DeviceVO>> getDeviceList(String deviceId, String deviceName, Integer state, Pageable pageable) {
public ResultUtils<List<DeviceVO>> getDeviceList(String deviceId, String deviceName, Integer state,Long beOrgId, Pageable pageable) {
PageRequest page= PageSort.pageRequest(pageable.getPageNumber(), pageable.getPageSize(), "create_time", Sort.Direction.DESC);
//分页查询
Page<Map<String,Object>> pageMap = deviceRepository.getDeviceList(deviceId,deviceName,state,page);
Page<Map<String,Object>> pageMap = deviceRepository.getDeviceList(deviceId,deviceName,state,beOrgId,page);
//初始化分页返回数据
List<DeviceVO> deviceVOList = MapUtil.setList(pageMap.getContent(),DeviceVO.class);
return ResultUtils.getResult(deviceVOList,pageMap);

7
system/src/main/java/com/canvas/web/modules/material/criteria/MaterialQueryCriteria.java

@ -19,10 +19,15 @@ public class MaterialQueryCriteria {
@JsonProperty("material_type")
private Integer materialType;
@Query
@JSONField(name="material_type_not")
@JsonProperty("material_type_not")
private Integer materialTypeNot;
@Query
@JSONField(name="orga_id")
@JsonProperty("orga_id")
private String orgaId;
private Long orgaId;
@Query
@JSONField(name="folder_id")

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

@ -23,10 +23,6 @@ public class ThemeQueryCriteria {
@JsonProperty("device_direction")
private Integer device_direction;
@JSONField(name="orga_id")
@JsonProperty("orga_id")
private String orga_id;
@JSONField(name="theme_type")
@JsonProperty("theme_type")
private Integer theme_type;

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

@ -1,6 +1,8 @@
package com.canvas.web.modules.material.domain;
import com.alibaba.fastjson.annotation.JSONField;
import com.canvas.web.base.BaseEntity;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
@ -19,6 +21,8 @@ public class Material extends BaseEntity implements Serializable {
@Column(name = "id")
@GeneratedValue(generator = "idGenerator")
@GenericGenerator(name = "idGenerator", strategy = "uuid")
@JSONField(name="id")
@JsonProperty("material_id")
private String id;
@Column(name = "name")
@ -27,26 +31,38 @@ public class Material extends BaseEntity implements Serializable {
@Column(name = "type")
@ApiModelProperty(value = "素材类型")
@JSONField(name="type")
@JsonProperty("material_type")
private Integer type;
@Column(name = "file_size")
@ApiModelProperty(value = "文件大小")
@JSONField(name="fileSize")
@JsonProperty("file_size")
private String fileSize;
@Column(name = "store_type")
@ApiModelProperty(value = "库类型 1.素材库 2.主题库")
@JSONField(name="storeType")
@JsonProperty("store_type")
private Integer storeType;
@Column(name = "deposit_url")
@ApiModelProperty(value = "素材存放路径")
@JSONField(name="depositUrl")
@JsonProperty("deposit_url")
private String depositUrl;
@Column(name = "img_path")
@ApiModelProperty(value = "封面图片路径")
@JSONField(name="imgPath")
@JsonProperty("img_path")
private String imgPath;
@Column(name = "device_direction")
@ApiModelProperty(value = "设备方向")
@JSONField(name="deviceDirection")
@JsonProperty("device_direction")
private Integer deviceDirection;
@Column(name = "duration")
@ -55,14 +71,20 @@ public class Material extends BaseEntity implements Serializable {
@Column(name = "orga_id")
@ApiModelProperty(value = "机构id")
private String orgaId;
@JSONField(name="orgaId")
@JsonProperty("orga_id")
private Long orgaId;
@Column(name = "is_state")
@ApiModelProperty(value = "停用/禁用", hidden = true)
@JSONField(name="isState")
@JsonProperty("is_state")
public Integer isState;
@Column(name = "is_del")
@ApiModelProperty(value = "停用/禁用", hidden = true)
@JSONField(name="isDel")
@JsonProperty("is_del")
public Boolean isDel;
}

2
system/src/main/java/com/canvas/web/modules/material/domain/MaterialFolder.java

@ -35,7 +35,7 @@ public class MaterialFolder extends BaseEntity implements Serializable {
@Column(name = "orga_id")
@ApiModelProperty(value = "机构id")
private String orgaId;
private Long orgaId;
@Column(name = "is_state")
@ApiModelProperty(value = "状态")

2
system/src/main/java/com/canvas/web/modules/material/domain/OrgaClass.java

@ -21,7 +21,7 @@ public class OrgaClass {
@Column(name = "orga_id")
@ApiModelProperty(value = "机构id")
private String orgaId;
private Long orgaId;
@Column(name = "class_id")
@ApiModelProperty(value = "类别id")

2
system/src/main/java/com/canvas/web/modules/material/domain/ThemeFolder.java

@ -35,7 +35,7 @@ public class ThemeFolder extends BaseEntity implements Serializable {
@Column(name = "orga_id")
@ApiModelProperty(value = "机构id")
private String orgaId;
private Long orgaId;
@Column(name = "is_state")
@ApiModelProperty(value = "状态")

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

@ -17,4 +17,12 @@ public class ChangeStateDTO {
@JsonProperty("state")
private Integer state;
@JSONField(name="isDel")
@JsonProperty("is_del")
private boolean isDel;
@JSONField(name="isTopping")
@JsonProperty("is_topping")
private boolean isTopping;
}

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

@ -21,5 +21,5 @@ public class DoFolderDTO {
@JSONField(name="orga_id")
@JsonProperty("orga_id")
private String orgaId;
private Long orgaId;
}

2
system/src/main/java/com/canvas/web/modules/material/dto/FolderDTO.java

@ -27,5 +27,5 @@ public class FolderDTO {
@JSONField(name="orga_id")
@JsonProperty("orga_id")
private String orgaId;
private Long orgaId;
}

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

@ -49,7 +49,7 @@ public class MaterialDTO {
@JSONField(name="orga_id")
@JsonProperty("orga_id")
private String orgaId;
private Long orgaId;
@JSONField(name="folder_id")
@JsonProperty("folder_id")

2
system/src/main/java/com/canvas/web/modules/material/dto/ThemeClassDTO.java

@ -25,5 +25,5 @@ public class ThemeClassDTO {
@JsonProperty("orga_ids")
@JSONField(name="orga_ids")
private List<String> orgaIds;
private List<Long> orgaIds;
}

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

@ -10,8 +10,8 @@ import java.util.List;
public interface MaterialFolderRepository extends JpaRepository<MaterialFolder, String> {
MaterialFolder findFirstByOrgaIdAndFidIsNull(String orgaId);
List<MaterialFolder> findAllByOrgaIdAndFid(String orgaId, String fid);
MaterialFolder findFirstByOrgaIdAndFidIsNull(Long orgaId);
List<MaterialFolder> findAllByOrgaIdAndFid(Long orgaId, String fid);
List<MaterialFolder> findAllByFid(String fid);
@Modifying

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

@ -14,15 +14,24 @@ 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,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 " +
countQuery = "select count(1) from material ml where ml.store_type = 2 " +
"and if(?1 is null,1=1,ml.name like %?1%) " +
"and if(?2 is null,1=1,ml.create_time <= ?2) " +
"and if(?3 is null,1=1,ml.create_time >= ?3) ",
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.duration as duration,ml.file_size as fileSize, " +
"(select group_concat(tc.class_name) from material inml INNER JOIN material_class mc ON inml.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,ml.create_by as createBy,ml.is_state as isState from material ml where ml.store_type = 2 " +
"and if(?1 is null,1=1,ml.name like %?1%) " +
"and if(?2 is null,1=1,ml.create_time <= ?2) " +
"and if(?3 is null,1=1,ml.create_time >= ?3) ")
"and if(?3 is null,1=1,ml.create_time >= ?3) order by ml.create_time desc ")
Page<Map<String,Object>> getThemeHistoryList(String themeName, String startTime, String endTime, Pageable page);
@Query(nativeQuery = true,
countQuery = "select count(1) " +
"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) " +
"and if(?3 is null,1=1,ml.device_direction = ?3)",
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 " +
@ -48,8 +57,9 @@ public interface MaterialRepository extends JpaRepository<Material, String> {
"where ml.store_type = 1 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%) " +
"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);
"and if(?3 is null,1=1,ml.type = ?3) " +
"and if(?4 is null,1=1,ml.type != ?4) order by ml.create_time desc ")
List<Map<String,Object>> getMyMaterial(String folderId,String materialName,Integer materialType,Integer materialTypeNot);
@Query(nativeQuery = true,
@ -64,7 +74,7 @@ public interface MaterialRepository extends JpaRepository<Material, String> {
"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);
Page<Map<String,Object>> getMaterialByType(String themeName,Integer themeType,Integer themeTypeNot,Long orgaId,Pageable page);
@Query(value = "delete from Material where id in ?1")
@Modifying

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

@ -3,8 +3,12 @@ package com.canvas.web.modules.material.repository;
import com.canvas.web.modules.material.domain.OrgaClass;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface OrgaClassRepository extends JpaRepository<OrgaClass, String> {
void deleteAllByClassId(String classId);
List<OrgaClass> findAllByClassId(String classId);
}

2
system/src/main/java/com/canvas/web/modules/material/repository/ThemeClassRepository.java

@ -13,6 +13,6 @@ public interface ThemeClassRepository extends JpaRepository<ThemeClass, String>
value = "select tc.id as id,tc.class_name as class_name from theme_class tc where tc.is_all = true " +
"UNION " +
"select tc.id as id,tc.class_name as class_name 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);
List<Map<String,Object>> getThemeByOrgaId(Long orgaId);
}

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

@ -10,8 +10,8 @@ import java.util.List;
public interface ThemeFolderRepository extends JpaRepository<ThemeFolder, String> {
ThemeFolder findFirstByOrgaIdAndFidIsNull(String orgaId);
List<ThemeFolder> findAllByOrgaIdAndFid(String orgaId, String fid);
ThemeFolder findFirstByOrgaIdAndFidIsNull(Long orgaId);
List<ThemeFolder> findAllByOrgaIdAndFid(Long orgaId, String fid);
List<ThemeFolder> findAllByFid(String fid);
@Modifying

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

@ -4,6 +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.domain.Material;
import com.canvas.web.modules.material.dto.*;
import com.canvas.web.modules.material.service.MaterialService;
import com.canvas.web.modules.material.vo.AlbumVO;
@ -28,6 +29,7 @@ import java.util.List;
public class MaterialController {
private final MaterialService materialService;
Long beOrgId = 133221333123111L;
@ApiOperation("编辑主题/素材")
// @PostMapping("/save")
@ -35,6 +37,8 @@ public class MaterialController {
public Response<Object> save(
@Validated @RequestBody MaterialDTO dto
){
// Long id = SecurityUtils.getCurrentOrgId();
dto.setOrgaId(beOrgId);
materialService.edit(dto);
return Response.success(dto.getMaterialId()== null ? ResponseEnum.CREATED : ResponseEnum.UPDATE_SUCCESS);
}
@ -57,16 +61,26 @@ public class MaterialController {
return Response.success(materialService.getThemeLibrary(criteria.getTheme_name(),criteria.getTheme_class(),criteria.getDevice_direction(),page));
}
@ApiOperation("根据id查询素材详情")
// @PostMapping("/getThemeLibrary")
@AnonymousPostMapping("/findMaterialById")
public Response<List<Material>> findMaterialById(
@Validated @RequestBody PrimaryDTO dto
){
return Response.success(materialService.findMaterialByIds(dto.getIds()));
}
@ApiOperation("我的画布")
// @PostMapping("/myAlbum")
@AnonymousPostMapping("/myAlbum")
public Response<AlbumVO> myAlbum(
ThemeQueryCriteria criteria
@Validated @RequestBody ThemeQueryCriteria criteria
){
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()));
// Long id = SecurityUtils.getCurrentOrgId();
vo.setMaterialFolders(materialService.getAlbumFolder(beOrgId,criteria.getFolder_id()));
vo.setPageThemeVO(materialService.getMyAlbumTheme(beOrgId,criteria.getFolder_id(),criteria.getTheme_name()));
vo.setThisFoldId(materialService.getThisAlbumFoldId(beOrgId,criteria.getFolder_id()));
return Response.success(vo);
}
@ -76,6 +90,8 @@ public class MaterialController {
public Response<Object> saveThemeFolder(
@Validated @RequestBody FolderDTO dto
){
// Long id = SecurityUtils.getCurrentOrgId();
dto.setOrgaId(beOrgId);
materialService.editThemeFolder(dto);
return Response.success(dto.getId()== null ? ResponseEnum.CREATED : ResponseEnum.UPDATE_SUCCESS);
}
@ -138,7 +154,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.setPageThemeVO(materialService.getMyMaterial(criteria.getOrgaId(),criteria.getFolderId(),criteria.getMaterialName(),criteria.getMaterialType(),criteria.getMaterialTypeNot()));
vo.setThisFoldId(materialService.getCurrentFold(criteria.getOrgaId(),criteria.getFolderId()));
return Response.success(vo);
}
@ -153,6 +169,16 @@ public class MaterialController {
return Response.success(ResponseEnum.CREATED);
}
@ApiOperation("移动素材-主题库")
// @PostMapping("/moveMyMaterial")
@AnonymousPostMapping("/moveMyThemeMaterial")
public Response<Object> moveMyThemeMaterial(
@Validated @RequestBody MoveFileDTO dto
){
materialService.moveMyThemeMaterial(dto.getIds(),dto.getFolderId(),dto.getMaterialIds());
return Response.success(ResponseEnum.CREATED);
}
@ApiOperation("删除素材-素材库")
// @PostMapping("/deleteMyMaterial")
@AnonymousPostMapping("/deleteMyMaterial")
@ -179,7 +205,8 @@ public class MaterialController {
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));
// Long id = SecurityUtils.getCurrentOrgId();
return Response.success(materialService.getMaterialByType(criteria.getTheme_name(),criteria.getTheme_type(),criteria.getTheme_type_not(),beOrgId,page));
}
}

12
system/src/main/java/com/canvas/web/modules/material/rest/ThemeClassController.java

@ -5,6 +5,7 @@ import com.canvas.web.annotation.rest.AnonymousGetMapping;
import com.canvas.web.annotation.rest.AnonymousPostMapping;
import com.canvas.web.modules.material.dto.ThemeClassDTO;
import com.canvas.web.modules.material.service.ThemeClassService;
import com.canvas.web.modules.material.vo.ThemeClassVO;
import com.canvas.web.utils.Response;
import com.canvas.web.enums.ResponseEnum;
import com.fasterxml.jackson.annotation.JsonProperty;
@ -35,11 +36,20 @@ public class ThemeClassController {
return Response.success(dto.getId()== null ? ResponseEnum.CREATED : ResponseEnum.UPDATE_SUCCESS);
}
@ApiOperation("根据类别id查询类别详情")
// @GetMapping("/findThemeClassDetails")
@AnonymousGetMapping("/findThemeClassDetails")
public Response<ThemeClassVO> findThemeClassDetails(
@Validated String theme_class_id
){
return Response.success(themeClassService.findThemeClassDetails(theme_class_id));
}
@ApiOperation("根据机构id查询主题列表")
// @GetMapping("/getThemeList")
@AnonymousGetMapping("/get_theme_list")
public Response<List<Map<String,Object>>> getTheme(
@Validated String orga_id
@Validated Long orga_id
){
return Response.success(themeClassService.getTheme(orga_id));
}

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

@ -1,5 +1,6 @@
package com.canvas.web.modules.material.service;
import com.canvas.web.modules.material.domain.Material;
import com.canvas.web.modules.material.domain.MaterialFolder;
import com.canvas.web.modules.material.domain.ThemeFolder;
import com.canvas.web.modules.material.dto.FolderDTO;
@ -17,24 +18,26 @@ public interface MaterialService {
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<Material> findMaterialByIds(List materialIds);
//根据机构id获取我的画册文件夹
List<ThemeFolder> getAlbumFolder(String orgaId, String folderId);
List<ThemeFolder> getAlbumFolder(Long orgaId, String folderId);
//获取我的画布当前文件夹id
String getThisAlbumFoldId(String orgaId, String folderId);
String getThisAlbumFoldId(Long orgaId, String folderId);
//根据机构id获取素材文件夹
List<MaterialFolder> getMaterialFolder(String orgaId, String folderId);
List<MaterialFolder> getMaterialFolder(Long orgaId, String folderId);
//获取当前文件夹
String getCurrentFold(String orgaId,String folderId);
String getCurrentFold(Long orgaId,String folderId);
//分页获取我的画册文件夹内素材
List<ThemeVO> getMyAlbumTheme(String orgaId,String folderId,String themeName);
List<ThemeVO> getMyAlbumTheme(Long orgaId,String folderId,String themeName);
//分页获取素材库内容
List<ThemeVO> getMyMaterial(String orgaId,String folderId,String materialName,Integer materialType);
List<ThemeVO> getMyMaterial(Long orgaId,String folderId,String materialName,Integer materialType,Integer materialTypeNot);
//编辑主题库文件夹
void editThemeFolder(FolderDTO dto);
//编辑素材库文件夹
void editMaterialFolder(FolderDTO dto);
//添加素材到我的画册
void addMyAlbum(String tfId,List<String> themeIds,String orgaId);
void addMyAlbum(String tfId,List<String> themeIds,Long orgaId);
//删除我的画册主题素材
void deleteMyAlbum(List<String> ids);
//删除主题库文件夹
@ -43,10 +46,12 @@ public interface MaterialService {
void deleteMaterialFolder(List<String> ids);
//移动素材到文件夹
void moveMyMaterial(List<String> mifIds,String folderId,List<String> materialId);
//移动主题库素材到文件夹
void moveMyThemeMaterial(List<String> tifIds,String folderId,List<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);
ResultUtils<List<ThemeVO>> getMaterialByType(String themeName,Integer themeType,Integer themeTypeNot,Long orgaId,Pageable pageable);
}

5
system/src/main/java/com/canvas/web/modules/material/service/ThemeClassService.java

@ -2,6 +2,7 @@ package com.canvas.web.modules.material.service;
import com.canvas.web.modules.material.domain.ThemeClass;
import com.canvas.web.modules.material.dto.ThemeClassDTO;
import com.canvas.web.modules.material.vo.ThemeClassVO;
import java.util.List;
import java.util.Map;
@ -10,6 +11,8 @@ public interface ThemeClassService {
void edit(ThemeClassDTO dto);
//根据机构id查询主题类别
List<Map<String,Object>> getTheme(String orgaId);
List<Map<String,Object>> getTheme(Long orgaId);
//根据分类id查询类别详情
ThemeClassVO findThemeClassDetails(String themeClassId);
}

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

@ -20,10 +20,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.*;
@Service
@RequiredArgsConstructor
@ -99,7 +96,7 @@ public class MaterialServiceImpl implements MaterialService {
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);
PageRequest page= PageRequest.of(pageable.getPageNumber()-1,pageable.getPageSize());
//分页查询
Page<Map<String,Object>> pageMap = materialRepository.getThemeHistoryList(themeName,startTime,endTime,page);
//初始化分页返回数据
@ -117,9 +114,14 @@ public class MaterialServiceImpl implements MaterialService {
return ResultUtils.getResult(themeVOList,pageMap);
}
@Override
public List<Material> findMaterialByIds(List materialIds) {
return materialRepository.findAllById(materialIds);
}
@Override
@Transactional(rollbackFor = Exception.class)
public List<ThemeFolder> getAlbumFolder(String orgaId, String folderId) {
public List<ThemeFolder> getAlbumFolder(Long orgaId, String folderId) {
//当页面为1时 则为画布初始化
if(StringUtils.isEmpty(folderId)){
ThemeFolder firstMaterialFolder = themeFolderRepository.findFirstByOrgaIdAndFidIsNull(orgaId);
@ -136,7 +138,7 @@ public class MaterialServiceImpl implements MaterialService {
}
@Override
public String getThisAlbumFoldId(String orgaId, String folderId) {
public String getThisAlbumFoldId(Long orgaId, String folderId) {
if(StringUtils.isEmpty(folderId)){
ThemeFolder firstMaterialFolder = themeFolderRepository.findFirstByOrgaIdAndFidIsNull(orgaId);
if(null == firstMaterialFolder){
@ -153,7 +155,7 @@ public class MaterialServiceImpl implements MaterialService {
@Override
@Transactional(rollbackFor = Exception.class)
public List<MaterialFolder> getMaterialFolder(String orgaId, String folderId) {
public List<MaterialFolder> getMaterialFolder(Long orgaId, String folderId) {
//当页面为1时 则为素材库初始化
if(StringUtils.isEmpty(folderId)){
MaterialFolder firstMaterialFolder = materialFolderRepository.findFirstByOrgaIdAndFidIsNull(orgaId);
@ -170,7 +172,7 @@ public class MaterialServiceImpl implements MaterialService {
}
@Override
public String getCurrentFold(String orgaId, String folderId) {
public String getCurrentFold(Long orgaId, String folderId) {
if(StringUtils.isEmpty(folderId)){
MaterialFolder firstMaterialFolder = materialFolderRepository.findFirstByOrgaIdAndFidIsNull(orgaId);
if(null == firstMaterialFolder){
@ -186,7 +188,7 @@ public class MaterialServiceImpl implements MaterialService {
}
@Override
public List<ThemeVO> getMyAlbumTheme(String orgaId, String folderId, String themeName) {
public List<ThemeVO> getMyAlbumTheme(Long orgaId, String folderId, String themeName) {
folderId = !StringUtils.isEmpty(folderId) ? folderId : themeFolderRepository.findFirstByOrgaIdAndFidIsNull(orgaId).getId();
List<Map<String,Object>> map = materialRepository.getMyAlbumTheme(folderId,themeName);
List<ThemeVO> themeVOList = MapUtil.setList(map,ThemeVO.class);
@ -194,9 +196,9 @@ public class MaterialServiceImpl implements MaterialService {
}
@Override
public List<ThemeVO> getMyMaterial(String orgaId, String folderId, String materialName,Integer materialType) {
public List<ThemeVO> getMyMaterial(Long orgaId, String folderId, String materialName,Integer materialType,Integer materialTypeNot) {
folderId = !StringUtils.isEmpty(folderId) ? folderId : materialFolderRepository.findFirstByOrgaIdAndFidIsNull(orgaId).getId();
List<Map<String,Object>> map = materialRepository.getMyMaterial(folderId,materialName,materialType);
List<Map<String,Object>> map = materialRepository.getMyMaterial(folderId,materialName,materialType,materialTypeNot);
List<ThemeVO> themeVOList = MapUtil.setList(map,ThemeVO.class);
return themeVOList;
}
@ -241,7 +243,7 @@ public class MaterialServiceImpl implements MaterialService {
@Override
@Transactional(rollbackFor = Exception.class)
public void addMyAlbum(String tfId, List<String> themeIds,String orgaId) {
public void addMyAlbum(String tfId, List<String> themeIds,Long orgaId) {
List<ThemeInFolder> themeInFolders = new ArrayList<>();
if(StringUtils.isEmpty(tfId)){
ThemeFolder firstMaterialFolder = themeFolderRepository.findFirstByOrgaIdAndFidIsNull(orgaId);
@ -311,6 +313,23 @@ public class MaterialServiceImpl implements MaterialService {
}
}
@Override
public void moveMyThemeMaterial(List<String> tifIds, String folderId, List<String> materialId) {
List<ThemeInFolder> themeInFolders = new ArrayList<>();
List<ThemeInFolder> oldThemeInFolders = themeInFolderRepository.findAllById(tifIds);
for(int i = 0;i<oldThemeInFolders.size();i++){
ThemeInFolder themeInFolder = oldThemeInFolders.get(i);
if(!StringUtils.isEmpty(materialId.get(i))){
themeInFolder.setThemeId(materialId.get(i));
}
themeInFolder.setTfId(folderId);
themeInFolders.add(themeInFolder);
}
if(themeInFolders.size()>0){
themeInFolderRepository.saveAllAndFlush(themeInFolders);
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteMyMaterial(List<String> materialIds) {
@ -326,7 +345,7 @@ public class MaterialServiceImpl implements MaterialService {
}
@Override
public ResultUtils<List<ThemeVO>> getMaterialByType(String themeName, Integer themeType, Integer themeTypeNot, String orgaId, Pageable pageable) {
public ResultUtils<List<ThemeVO>> getMaterialByType(String themeName, Integer themeType, Integer themeTypeNot, Long 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);

25
system/src/main/java/com/canvas/web/modules/material/service/impl/ThemeClassServiceImpl.java

@ -7,6 +7,8 @@ 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 com.canvas.web.modules.material.vo.ThemeClassVO;
import com.canvas.web.modules.system.repository.OrgRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -23,6 +25,7 @@ public class ThemeClassServiceImpl implements ThemeClassService {
private final ThemeClassRepository themeClassRepository;
private final OrgaClassRepository orgaClassRepository;
private final OrgRepository orgRepository;
@Override
@Transactional(rollbackFor = Exception.class)
@ -55,8 +58,28 @@ public class ThemeClassServiceImpl implements ThemeClassService {
}
@Override
public List<Map<String,Object>> getTheme(String orgaId) {
public List<Map<String,Object>> getTheme(Long orgaId) {
List<Map<String,Object>> list = themeClassRepository.getThemeByOrgaId(orgaId);
return list;
}
@Override
public ThemeClassVO findThemeClassDetails(String themeClassId) {
ThemeClassVO vo = new ThemeClassVO();
ThemeClass themeClass = themeClassRepository.findById(themeClassId).get();
vo.setId(themeClass.getId());
vo.setClassName(themeClass.getClassName());
vo.setIsAll(themeClass.getIsAll());
List<OrgaClass> orgaClasss = orgaClassRepository.findAllByClassId(themeClassId);
List<Long> orgList = new ArrayList<>();
for(int i = 0;i<orgaClasss.size();i++){
orgList.add(orgaClasss.get(i).getOrgaId());
}
if(null != orgList && orgList.size() >0 ){
vo.setOrgs(orgRepository.findAllById(orgList));
}
return vo;
}
}

31
system/src/main/java/com/canvas/web/modules/material/vo/ThemeClassVO.java

@ -0,0 +1,31 @@
package com.canvas.web.modules.material.vo;
import com.alibaba.fastjson.annotation.JSONField;
import com.canvas.web.modules.system.domain.Org;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
@Getter
@Setter
public class ThemeClassVO {
@JSONField(name="id")
@JsonProperty("id")
private String id;
@JSONField(name="className")
@JsonProperty("class_name")
private String className;
@JSONField(name="isAll")
@JsonProperty("is_all")
private Boolean isAll;
@JSONField(name="orgs")
@JsonProperty("orgs")
private List<Org> orgs;
}

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

@ -61,4 +61,12 @@ public class ThemeVO {
@JsonProperty("is_del")
private Boolean isDel;
@JSONField(name="createBy")
@JsonProperty("create_by")
private String createBy;
@JSONField(name="isState")
@JsonProperty("is_state")
private Integer isState;
}

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

@ -16,7 +16,7 @@ public class NoticeQueryCriteria {
@Query
@JSONField(name="orga_id")
@JsonProperty("orga_id")
private String orga_id;
private Long orga_id;
@Query
@JSONField(name="notice_id")

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

@ -16,6 +16,6 @@ public class ReleaseListQueryCriteria {
@Query
@JSONField(name="orga_id")
@JsonProperty("orga_id")
private String orga_id;
private Long orga_id;
}

2
system/src/main/java/com/canvas/web/modules/release/domain/Notice.java

@ -43,7 +43,7 @@ public class Notice extends BaseEntity implements Serializable {
@Column(name = "orga_id")
@ApiModelProperty(value = "机构id")
private String orgaId;
private Long orgaId;
@Column(name = "notice_device")
@ApiModelProperty(value = "发布机器")

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

@ -1,6 +1,8 @@
package com.canvas.web.modules.release.domain;
import com.alibaba.fastjson.annotation.JSONField;
import com.canvas.web.base.BaseEntity;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
@ -24,54 +26,80 @@ public class ReleaseList extends BaseEntity implements Serializable {
@Column(name = "relaase_name")
@ApiModelProperty(value = "发布名称")
@JSONField(name="relaaseName")
@JsonProperty("relaase_name")
private String relaaseName;
@Column(name = "release_type")
@ApiModelProperty(value = "发布类型")
@JSONField(name="releaseType")
@JsonProperty("release_type")
private Integer releaseType;
@Column(name = "release_start")
@ApiModelProperty(value = "发布开始时间")
@JSONField(name="releaseStart")
@JsonProperty("release_start")
private Timestamp releaseStart;
@Column(name = "release_end")
@ApiModelProperty(value = "发布结束时间")
@JSONField(name="releaseEnd")
@JsonProperty("release_end")
private Timestamp releaseEnd;
@Column(name = "actual_end")
@ApiModelProperty(value = "实际结束时间")
@JSONField(name="actualEnd")
@JsonProperty("actual_end")
private Timestamp actualEnd;
@Column(name = "release_cycle")
@ApiModelProperty(value = "发布周期 0.无 1.每天 2.每周")
@JSONField(name="releaseCycle")
@JsonProperty("release_cycle")
private Integer releaseCycle;
@Column(name = "release_weekly")
@ApiModelProperty(value = "发布每周 如果设置为每天则为空")
@JSONField(name="releaseWeekly")
@JsonProperty("release_weekly")
private String releaseWeekly;
@Column(name = "is_topping")
@ApiModelProperty(value = "是否置顶")
@JSONField(name="isTopping")
@JsonProperty("is_topping")
private Boolean isTopping;
@Column(name = "release_device")
@ApiModelProperty(value = "发布设备 1.全部 2.部分")
@JSONField(name="releaseDevice")
@JsonProperty("release_device")
private Integer releaseDevice;
@Column(name = "bgm_main")
@ApiModelProperty(value = "背景音乐url")
@JSONField(name="bgmMain")
@JsonProperty("bgm_main")
private String bgmMain;
@Column(name = "orga_id")
@ApiModelProperty(value = "机构id")
private String orgaId;
@JSONField(name="orgaId")
@JsonProperty("orga_id")
private Long orgaId;
@Column(name = "is_state")
@ApiModelProperty(value = "状态")
@JSONField(name="isState")
@JsonProperty("is_state")
private Integer isState;
@Column(name = "is_del")
@ApiModelProperty(value = "是否删除")
@JSONField(name="isDel")
@JsonProperty("is_del")
private Boolean isDel;
}

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

@ -1,6 +1,8 @@
package com.canvas.web.modules.release.domain;
import com.alibaba.fastjson.annotation.JSONField;
import com.canvas.web.base.BaseEntity;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
@ -23,10 +25,14 @@ public class ReleaseMaterial extends BaseEntity implements Serializable {
@Column(name = "release_id")
@ApiModelProperty(value = "发布Id")
@JSONField(name="releaseId")
@JsonProperty("release_id")
private String releaseId;
@Column(name = "material_id")
@ApiModelProperty(value = "素材id")
@JSONField(name="materialId")
@JsonProperty("material_id")
private String materialId;
@Column(name = "duration")
@ -35,14 +41,26 @@ public class ReleaseMaterial extends BaseEntity implements Serializable {
@Column(name = "file_size")
@ApiModelProperty(value = "文件大小")
@JSONField(name="fileSize")
@JsonProperty("file_size")
private String fileSize;
@Column(name = "img_path")
@ApiModelProperty(value = "图片路径")
@JSONField(name="imgPath")
@JsonProperty("img_path")
private String imgPath;
@Column(name = "bgm_name")
@ApiModelProperty(value = "背景音乐名称")
@JSONField(name="bgmName")
@JsonProperty("bgm_name")
private String bgmName;
@Column(name = "bgm_url")
@ApiModelProperty(value = "背景音乐")
@JSONField(name="bgmUrl")
@JsonProperty("bgm_url")
private String bgmUrl;
@Column(name = "ranking")

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

@ -38,7 +38,7 @@ public class NoticeDTO {
@JSONField(name="orgaId")
@JsonProperty("orga_id")
private String orgaId;
private Long orgaId;
@JSONField(name="noticeDevice")
@JsonProperty("notice_device")

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

@ -59,7 +59,7 @@ public class ReleaseDTO {
@JSONField(name="orgaId")
@JsonProperty("orga_id")
private String orgaId;
private Long orgaId;
@JSONField(name="isState")
@JsonProperty("is_state")
@ -69,6 +69,10 @@ public class ReleaseDTO {
@JsonProperty("is_del")
private Boolean isDel;
@JSONField(name="del_rmids")
@JsonProperty("del_rmids")
private List<String> deletereleaseMaterial;
@JSONField(name="releaseMaterialDTOs")
@JsonProperty("release_materialDTOs")
private List<ReleaseMaterialDTO> releaseMaterialDTOs;

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

@ -49,4 +49,8 @@ public class ReleaseMaterialDTO {
@JsonProperty("bgm_path")
private String bgmUrl;
@JSONField(name="bgmName")
@JsonProperty("bgm_name")
private String bgmName;
}

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

@ -20,6 +20,6 @@ public interface NoticeRepository extends JpaRepository<Notice, String> {
"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);
Page<Map<String,Object>> getUrgentNoticeList(String noticeName,Long orgaId, Pageable page);
}

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

@ -1,6 +1,7 @@
package com.canvas.web.modules.release.repository;
import com.canvas.web.modules.release.domain.ReleaseDevice;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.transaction.annotation.Transactional;
@ -14,6 +15,10 @@ public interface ReleaseDeviceRepository extends JpaRepository<ReleaseDevice, St
@Modifying(clearAutomatically = true)
void deleteByReleaseId(String releaseId);
List<ReleaseDevice> findAllByReleaseId(String releaseId);
@Query(nativeQuery = true,
value = "select rd.id as id,rd.release_id as releaseId,rd.device_id as deviceId,d.device_name as deviceName " +
"from release_device rd inner join device d on rd.device_id = d.id " +
"where rd.release_id = ?1 ")
List<Map<String,Object>> findAllByReleaseId(String releaseId);
}

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

@ -12,7 +12,7 @@ public interface ReleaseListRepository extends JpaRepository<ReleaseList, String
@Query(nativeQuery = true,
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()) " +
"where rl.is_del = false AND if(rl.release_type = 0,rl.actual_end is null,rl.release_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," +
@ -22,13 +22,13 @@ public interface ReleaseListRepository extends JpaRepository<ReleaseList, String
"(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 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()) " +
"where rl.is_del = false AND if(rl.release_type = 0,rl.actual_end is null,rl.release_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);
Page<Map<String,Object>> getReleaseList(String releaseName,Long orgaId, Pageable page);
@Query(nativeQuery = true,
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()) " +
"where (rl.is_del = true or if(rl.release_type = 0,rl.actual_end <= now(),rl.release_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," +
@ -38,8 +38,8 @@ public interface ReleaseListRepository extends JpaRepository<ReleaseList, String
"(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 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()) " +
"where (rl.is_del = true or if(rl.release_type = 0,rl.actual_end <= now(),rl.release_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);
Page<Map<String,Object>> getReleaseHistoryList(String releaseName,Long orgaId, Pageable page);
}

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

@ -7,6 +7,6 @@ import java.util.List;
public interface ReleaseMaterialRepository extends JpaRepository<ReleaseMaterial, String> {
List<ReleaseMaterial> findAllByReleaseId(String releaseId);
List<ReleaseMaterial> findAllByReleaseIdOrderByRankingAsc(String releaseId);
}

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

@ -100,6 +100,36 @@ public class ReleaseListController {
return Response.success(dto.getNoticeId() == null ? ResponseEnum.CREATED : ResponseEnum.UPDATE_SUCCESS);
}
@ApiOperation("删除发布信息")
// @PostMapping("/deleteRelease")
@AnonymousPostMapping("/deleteRelease")
public Response<Object> deleteRelease(
@Validated @RequestBody ChangeStateDTO dto
){
releaseListService.deleteRelease(dto.getId(),dto.isDel());
return Response.success(ResponseEnum.DELETE_SUCCESS);
}
@ApiOperation("改变发布状态")
// @PostMapping("/updateReleaseState")
@AnonymousPostMapping("/updateReleaseState")
public Response<Object> updateReleaseState(
@Validated @RequestBody ChangeStateDTO dto
){
releaseListService.updateReleaseState(dto.getId(),dto.getState());
return Response.success(ResponseEnum.UPDATE_SUCCESS);
}
@ApiOperation("发布是否置顶")
// @PostMapping("/toppingRelease")
@AnonymousPostMapping("/toppingRelease")
public Response<Object> toppingRelease(
@Validated @RequestBody ChangeStateDTO dto
){
releaseListService.toppingReleaseState(dto.getId(),dto.isTopping());
return Response.success(ResponseEnum.UPDATE_SUCCESS);
}
@ApiOperation("改变紧急通知状态")
// @PostMapping("/updateNoticeState")
@AnonymousPostMapping("/updateNoticeState")

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

@ -14,19 +14,25 @@ import java.util.List;
public interface ReleaseListService {
//分页查询发布信息
ResultUtils<List<ReleaseListVO>> getReleaseList(String releaseName, String orgaId, Pageable pageable);
ResultUtils<List<ReleaseListVO>> getReleaseList(String releaseName, Long orgaId, Pageable pageable);
//分页查询发布历史信息
ResultUtils<List<ReleaseListVO>> getReleaseHistoryList(String releaseName,String orgaId, Pageable pageable);
ResultUtils<List<ReleaseListVO>> getReleaseHistoryList(String releaseName,Long orgaId, Pageable pageable);
//根据发布id查询发布详细信息
ReleaseDetailVO getReleaseDetailsById(String releaseId);
//编辑发布内容
void edit(ReleaseDTO dto);
//获取紧急通知列表
ResultUtils<List<NoticeVO>> getUrgentNoticeList(String noticeName, String orgaId, Pageable pageable);
ResultUtils<List<NoticeVO>> getUrgentNoticeList(String noticeName, Long orgaId, Pageable pageable);
//根据id获取详细通知信息
NoticeDeviceVO getNoticeById(String noticeId);
//编辑紧急通知
void editNotice(NoticeDTO dto);
//删除发布信息
void deleteRelease(String releaseId,boolean isDel);
//更改发布状态
void updateReleaseState(String releaseId,Integer state);
//发布是否置顶
void toppingReleaseState(String releaseId,boolean isTopping);
//更改紧急通知状态
void updateNoticeState(String noticeId,Integer state);
}

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

@ -39,8 +39,8 @@ public class ReleaseListServiceImpl implements ReleaseListService {
@Override
public ResultUtils<List<ReleaseListVO>> getReleaseList(String releaseName,String orgaId, Pageable pageable) {
PageRequest page = PageRequest.of(pageable.getPageNumber(),pageable.getPageSize());
public ResultUtils<List<ReleaseListVO>> getReleaseList(String releaseName,Long orgaId, Pageable pageable) {
PageRequest page = PageRequest.of(pageable.getPageNumber()-1,pageable.getPageSize());
//分页查询
Page<Map<String,Object>> pageMap = releaseListRepository.getReleaseList(releaseName,orgaId,page);
//初始化分页返回数据
@ -49,8 +49,8 @@ public class ReleaseListServiceImpl implements ReleaseListService {
}
@Override
public ResultUtils<List<ReleaseListVO>> getReleaseHistoryList(String releaseName, String orgaId, Pageable pageable) {
PageRequest page = PageRequest.of(pageable.getPageNumber(),pageable.getPageSize());
public ResultUtils<List<ReleaseListVO>> getReleaseHistoryList(String releaseName, Long orgaId, Pageable pageable) {
PageRequest page = PageRequest.of(pageable.getPageNumber()-1,pageable.getPageSize());
//分页查询
Page<Map<String,Object>> pageMap = releaseListRepository.getReleaseHistoryList(releaseName,orgaId,page);
//初始化分页返回数据
@ -63,7 +63,7 @@ public class ReleaseListServiceImpl implements ReleaseListService {
ReleaseDetailVO vo = new ReleaseDetailVO();
vo.setReleaseList(releaseListRepository.findById(releaseId).get());
vo.setReleaseDevices(releaseDeviceRepository.findAllByReleaseId(releaseId));
vo.setReleaseMaterials(releaseMaterialRepository.findAllByReleaseId(releaseId));
vo.setReleaseMaterials(releaseMaterialRepository.findAllByReleaseIdOrderByRankingAsc(releaseId));
return vo;
}
@ -87,6 +87,7 @@ public class ReleaseListServiceImpl implements ReleaseListService {
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.setReleaseWeekly(dto.getReleaseWeekly());
releaseList.setIsTopping(dto.getIsTopping());
releaseList.setReleaseDevice(dto.getReleaseDevice());
releaseList.setBgmMain(dto.getBgmMain());
@ -108,11 +109,17 @@ public class ReleaseListServiceImpl implements ReleaseListService {
rm.setDuration(rmDto.getDuration());
rm.setFileSize(rmDto.getFileSize());
rm.setBgmUrl(rmDto.getBgmUrl());
rm.setBgmName(rmDto.getBgmName());
rm.setRanking(rmDto.getRanking());
rm.setEffect(rmDto.getEffect());
rm.setReleaseId(releaseList.getId());
releaseMaterialRepository.saveAndFlush(rm);
}
List delRmIds = dto.getDeletereleaseMaterial();
if(null != delRmIds && delRmIds.size() >0){
releaseMaterialRepository.deleteAllById(delRmIds);
}
//当选择全部设备时
if(1 == dto.getReleaseDevice()){
releaseDeviceRepository.deleteByReleaseId(dto.getReleaseId());
@ -131,7 +138,7 @@ public class ReleaseListServiceImpl implements ReleaseListService {
}
@Override
public ResultUtils<List<NoticeVO>> getUrgentNoticeList(String noticeName, String orgaId, Pageable pageable)
public ResultUtils<List<NoticeVO>> getUrgentNoticeList(String noticeName, Long orgaId, Pageable pageable)
{
PageRequest page= PageSort.pageRequest(pageable.getPageNumber(), pageable.getPageSize(), "create_time", Sort.Direction.DESC);
//分页查询
@ -186,6 +193,29 @@ public class ReleaseListServiceImpl implements ReleaseListService {
}
}
@Override
public void deleteRelease(String releaseId, boolean isDel) {
ReleaseList release = releaseListRepository.findById(releaseId).get();
release.setIsDel(isDel);
releaseListRepository.saveAndFlush(release);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateReleaseState(String releaseId, Integer state) {
ReleaseList release = releaseListRepository.findById(releaseId).get();
release.setIsState(state);
releaseListRepository.saveAndFlush(release);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void toppingReleaseState(String releaseId, boolean isTopping) {
ReleaseList release = releaseListRepository.findById(releaseId).get();
release.setIsTopping(isTopping);
releaseListRepository.saveAndFlush(release);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateNoticeState(String noticeId, Integer state) {

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

@ -9,6 +9,7 @@ import lombok.Getter;
import lombok.Setter;
import java.util.List;
import java.util.Map;
@Getter
@Setter
@ -24,6 +25,6 @@ import java.util.List;
@JSONField(name="releaseDevices")
@JsonProperty("release_devices")
private List<ReleaseDevice> releaseDevices;
private List<Map<String,Object>> releaseDevices;
}

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

@ -79,4 +79,8 @@ public class ReleaseListVO {
@JsonProperty("update_time")
private Timestamp updateTime;
@JSONField(name="bindingDevice")
@JsonProperty("binding_device")
private String bindingDevice;
}
Loading…
Cancel
Save