From 6876fce52381c0970e6decb6f74369ffe407fd64 Mon Sep 17 00:00:00 2001 From: xia Date: Fri, 1 Apr 2022 15:56:32 +0800 Subject: [PATCH] =?UTF-8?q?=E8=81=94=E8=B0=83=E6=8E=A5=E5=8F=A3=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/pom.xml | 15 ++ .../modules/front/rest/FrontController.java | 16 ++ .../web/modules/front/rest/WebSocket.java | 172 ++++++++++++++++++ .../java/com/canvas/web/base/BaseEntity.java | 10 + .../web/modules/device/domain/Device.java | 2 +- .../web/modules/device/dto/DeviceDTO.java | 2 +- .../device/repository/DeviceRepository.java | 6 +- .../modules/device/rest/DeviceController.java | 11 +- .../modules/device/service/DeviceService.java | 2 +- .../service/impl/DeviceServiceImpl.java | 4 +- .../criteria/MaterialQueryCriteria.java | 7 +- .../material/criteria/ThemeQueryCriteria.java | 4 - .../web/modules/material/domain/Material.java | 24 ++- .../material/domain/MaterialFolder.java | 2 +- .../modules/material/domain/OrgaClass.java | 2 +- .../modules/material/domain/ThemeFolder.java | 2 +- .../modules/material/dto/ChangeStateDTO.java | 8 + .../web/modules/material/dto/DoFolderDTO.java | 2 +- .../web/modules/material/dto/FolderDTO.java | 2 +- .../web/modules/material/dto/MaterialDTO.java | 2 +- .../modules/material/dto/ThemeClassDTO.java | 2 +- .../repository/MaterialFolderRepository.java | 4 +- .../repository/MaterialRepository.java | 24 ++- .../repository/OrgaClassRepository.java | 4 + .../repository/ThemeClassRepository.java | 2 +- .../repository/ThemeFolderRepository.java | 4 +- .../material/rest/MaterialController.java | 39 +++- .../material/rest/ThemeClassController.java | 12 +- .../material/service/MaterialService.java | 21 ++- .../material/service/ThemeClassService.java | 5 +- .../service/impl/MaterialServiceImpl.java | 47 +++-- .../service/impl/ThemeClassServiceImpl.java | 25 ++- .../web/modules/material/vo/ThemeClassVO.java | 31 ++++ .../web/modules/material/vo/ThemeVO.java | 8 + .../release/criteria/NoticeQueryCriteria.java | 2 +- .../criteria/ReleaseListQueryCriteria.java | 2 +- .../web/modules/release/domain/Notice.java | 2 +- .../modules/release/domain/ReleaseList.java | 30 ++- .../release/domain/ReleaseMaterial.java | 18 ++ .../web/modules/release/dto/NoticeDTO.java | 2 +- .../web/modules/release/dto/ReleaseDTO.java | 6 +- .../release/dto/ReleaseMaterialDTO.java | 4 + .../release/repository/NoticeRepository.java | 2 +- .../repository/ReleaseDeviceRepository.java | 7 +- .../repository/ReleaseListRepository.java | 12 +- .../repository/ReleaseMaterialRepository.java | 2 +- .../release/rest/ReleaseListController.java | 30 +++ .../release/service/ReleaseListService.java | 12 +- .../service/impl/ReleaseListServiceImpl.java | 42 ++++- .../modules/release/vo/ReleaseDetailVO.java | 3 +- .../web/modules/release/vo/ReleaseListVO.java | 4 + 51 files changed, 611 insertions(+), 92 deletions(-) create mode 100644 client/src/main/java/com/canvas/web/modules/front/rest/FrontController.java create mode 100644 client/src/main/java/com/canvas/web/modules/front/rest/WebSocket.java create mode 100644 system/src/main/java/com/canvas/web/modules/material/vo/ThemeClassVO.java diff --git a/client/pom.xml b/client/pom.xml index 8a917b2..412e8d8 100644 --- a/client/pom.xml +++ b/client/pom.xml @@ -10,10 +10,25 @@ 4.0.0 client + 客户端 17 17 + + + com.canvas.web + common + 1.0-SNAPSHOT + + + + com.canvas.web + system + 1.0-SNAPSHOT + + + \ No newline at end of file diff --git a/client/src/main/java/com/canvas/web/modules/front/rest/FrontController.java b/client/src/main/java/com/canvas/web/modules/front/rest/FrontController.java new file mode 100644 index 0000000..261664c --- /dev/null +++ b/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 { + + + +} diff --git a/client/src/main/java/com/canvas/web/modules/front/rest/WebSocket.java b/client/src/main/java/com/canvas/web/modules/front/rest/WebSocket.java new file mode 100644 index 0000000..bc433e5 --- /dev/null +++ b/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 webSocketSet = new ConcurrentHashMap(); + //与某个客户端的连接会话,需要通过它来给客户端发送数据 + 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 + "发来消息:" + "
" + 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 + "发来消息:" + "
" + 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--; + } + +} diff --git a/common/src/main/java/com/canvas/web/base/BaseEntity.java b/common/src/main/java/com/canvas/web/base/BaseEntity.java index 95c584a..6cc0cc1 100644 --- a/common/src/main/java/com/canvas/web/base/BaseEntity.java +++ b/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; /* 分组校验 */ diff --git a/system/src/main/java/com/canvas/web/modules/device/domain/Device.java b/system/src/main/java/com/canvas/web/modules/device/domain/Device.java index 723993d..748e3a0 100644 --- a/system/src/main/java/com/canvas/web/modules/device/domain/Device.java +++ b/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.每周") diff --git a/system/src/main/java/com/canvas/web/modules/device/dto/DeviceDTO.java b/system/src/main/java/com/canvas/web/modules/device/dto/DeviceDTO.java index 57ce204..ffc69a4 100644 --- a/system/src/main/java/com/canvas/web/modules/device/dto/DeviceDTO.java +++ b/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; } diff --git a/system/src/main/java/com/canvas/web/modules/device/repository/DeviceRepository.java b/system/src/main/java/com/canvas/web/modules/device/repository/DeviceRepository.java index e2eb5c4..f471160 100644 --- a/system/src/main/java/com/canvas/web/modules/device/repository/DeviceRepository.java +++ b/system/src/main/java/com/canvas/web/modules/device/repository/DeviceRepository.java @@ -17,7 +17,7 @@ public interface DeviceRepository extends JpaRepository { 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 { "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> 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> getDeviceList(String deviceId, String deviceName, Integer state,Long orgId, Pageable page); @Query(value = "from Device where id in ?1") List findByIds(List ids); diff --git a/system/src/main/java/com/canvas/web/modules/device/rest/DeviceController.java b/system/src/main/java/com/canvas/web/modules/device/rest/DeviceController.java index ab297cd..ae7a399 100644 --- a/system/src/main/java/com/canvas/web/modules/device/rest/DeviceController.java +++ b/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>> 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 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>> 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("开关机配置") diff --git a/system/src/main/java/com/canvas/web/modules/device/service/DeviceService.java b/system/src/main/java/com/canvas/web/modules/device/service/DeviceService.java index a0c7b0e..249ff0f 100644 --- a/system/src/main/java/com/canvas/web/modules/device/service/DeviceService.java +++ b/system/src/main/java/com/canvas/web/modules/device/service/DeviceService.java @@ -12,7 +12,7 @@ import java.util.List; public interface DeviceService { //分页查询设备列表 - ResultUtils> getDeviceList(String deviceId, String deviceName, Integer state, Pageable pageable); + ResultUtils> getDeviceList(String deviceId, String deviceName, Integer state,Long orgId, Pageable pageable); //编辑设备 boolean edit(DeviceDTO dto); //开关机配置 diff --git a/system/src/main/java/com/canvas/web/modules/device/service/impl/DeviceServiceImpl.java b/system/src/main/java/com/canvas/web/modules/device/service/impl/DeviceServiceImpl.java index 3d831e4..8207c47 100644 --- a/system/src/main/java/com/canvas/web/modules/device/service/impl/DeviceServiceImpl.java +++ b/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> getDeviceList(String deviceId, String deviceName, Integer state, Pageable pageable) { + public ResultUtils> 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> pageMap = deviceRepository.getDeviceList(deviceId,deviceName,state,page); + Page> pageMap = deviceRepository.getDeviceList(deviceId,deviceName,state,beOrgId,page); //初始化分页返回数据 List deviceVOList = MapUtil.setList(pageMap.getContent(),DeviceVO.class); return ResultUtils.getResult(deviceVOList,pageMap); diff --git a/system/src/main/java/com/canvas/web/modules/material/criteria/MaterialQueryCriteria.java b/system/src/main/java/com/canvas/web/modules/material/criteria/MaterialQueryCriteria.java index 9a7b610..2c46f93 100644 --- a/system/src/main/java/com/canvas/web/modules/material/criteria/MaterialQueryCriteria.java +++ b/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") diff --git a/system/src/main/java/com/canvas/web/modules/material/criteria/ThemeQueryCriteria.java b/system/src/main/java/com/canvas/web/modules/material/criteria/ThemeQueryCriteria.java index 5cc8b68..34360d6 100644 --- a/system/src/main/java/com/canvas/web/modules/material/criteria/ThemeQueryCriteria.java +++ b/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; diff --git a/system/src/main/java/com/canvas/web/modules/material/domain/Material.java b/system/src/main/java/com/canvas/web/modules/material/domain/Material.java index 9c2d9b6..c3cc926 100644 --- a/system/src/main/java/com/canvas/web/modules/material/domain/Material.java +++ b/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; } diff --git a/system/src/main/java/com/canvas/web/modules/material/domain/MaterialFolder.java b/system/src/main/java/com/canvas/web/modules/material/domain/MaterialFolder.java index 7d7cb7a..6943590 100644 --- a/system/src/main/java/com/canvas/web/modules/material/domain/MaterialFolder.java +++ b/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 = "状态") diff --git a/system/src/main/java/com/canvas/web/modules/material/domain/OrgaClass.java b/system/src/main/java/com/canvas/web/modules/material/domain/OrgaClass.java index f06e33f..f458261 100644 --- a/system/src/main/java/com/canvas/web/modules/material/domain/OrgaClass.java +++ b/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") diff --git a/system/src/main/java/com/canvas/web/modules/material/domain/ThemeFolder.java b/system/src/main/java/com/canvas/web/modules/material/domain/ThemeFolder.java index a43f78b..bd2d1d7 100644 --- a/system/src/main/java/com/canvas/web/modules/material/domain/ThemeFolder.java +++ b/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 = "状态") diff --git a/system/src/main/java/com/canvas/web/modules/material/dto/ChangeStateDTO.java b/system/src/main/java/com/canvas/web/modules/material/dto/ChangeStateDTO.java index c416605..b3584fd 100644 --- a/system/src/main/java/com/canvas/web/modules/material/dto/ChangeStateDTO.java +++ b/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; + } diff --git a/system/src/main/java/com/canvas/web/modules/material/dto/DoFolderDTO.java b/system/src/main/java/com/canvas/web/modules/material/dto/DoFolderDTO.java index b304006..250f5aa 100644 --- a/system/src/main/java/com/canvas/web/modules/material/dto/DoFolderDTO.java +++ b/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; } diff --git a/system/src/main/java/com/canvas/web/modules/material/dto/FolderDTO.java b/system/src/main/java/com/canvas/web/modules/material/dto/FolderDTO.java index 471a32b..f9ee0b0 100644 --- a/system/src/main/java/com/canvas/web/modules/material/dto/FolderDTO.java +++ b/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; } diff --git a/system/src/main/java/com/canvas/web/modules/material/dto/MaterialDTO.java b/system/src/main/java/com/canvas/web/modules/material/dto/MaterialDTO.java index 09e8df2..a9a71f4 100644 --- a/system/src/main/java/com/canvas/web/modules/material/dto/MaterialDTO.java +++ b/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") diff --git a/system/src/main/java/com/canvas/web/modules/material/dto/ThemeClassDTO.java b/system/src/main/java/com/canvas/web/modules/material/dto/ThemeClassDTO.java index 9a9fc38..5b5c87f 100644 --- a/system/src/main/java/com/canvas/web/modules/material/dto/ThemeClassDTO.java +++ b/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 orgaIds; + private List orgaIds; } diff --git a/system/src/main/java/com/canvas/web/modules/material/repository/MaterialFolderRepository.java b/system/src/main/java/com/canvas/web/modules/material/repository/MaterialFolderRepository.java index 9687e2b..ff8cb53 100644 --- a/system/src/main/java/com/canvas/web/modules/material/repository/MaterialFolderRepository.java +++ b/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 findFirstByOrgaIdAndFidIsNull(String orgaId); - List findAllByOrgaIdAndFid(String orgaId, String fid); + MaterialFolder findFirstByOrgaIdAndFidIsNull(Long orgaId); + List findAllByOrgaIdAndFid(Long orgaId, String fid); List findAllByFid(String fid); @Modifying diff --git a/system/src/main/java/com/canvas/web/modules/material/repository/MaterialRepository.java b/system/src/main/java/com/canvas/web/modules/material/repository/MaterialRepository.java index 7e0a70a..9589863 100644 --- a/system/src/main/java/com/canvas/web/modules/material/repository/MaterialRepository.java +++ b/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 { @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> 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 { "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> 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> getMyMaterial(String folderId,String materialName,Integer materialType,Integer materialTypeNot); @Query(nativeQuery = true, @@ -64,7 +74,7 @@ public interface MaterialRepository extends JpaRepository { "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> getMaterialByType(String themeName,Integer themeType,Integer themeTypeNot,String orgaId,Pageable page); + Page> getMaterialByType(String themeName,Integer themeType,Integer themeTypeNot,Long orgaId,Pageable page); @Query(value = "delete from Material where id in ?1") @Modifying diff --git a/system/src/main/java/com/canvas/web/modules/material/repository/OrgaClassRepository.java b/system/src/main/java/com/canvas/web/modules/material/repository/OrgaClassRepository.java index 9c8a486..77cb02e 100644 --- a/system/src/main/java/com/canvas/web/modules/material/repository/OrgaClassRepository.java +++ b/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 { void deleteAllByClassId(String classId); + List findAllByClassId(String classId); + } diff --git a/system/src/main/java/com/canvas/web/modules/material/repository/ThemeClassRepository.java b/system/src/main/java/com/canvas/web/modules/material/repository/ThemeClassRepository.java index 947e53e..ae4c2ba 100644 --- a/system/src/main/java/com/canvas/web/modules/material/repository/ThemeClassRepository.java +++ b/system/src/main/java/com/canvas/web/modules/material/repository/ThemeClassRepository.java @@ -13,6 +13,6 @@ public interface ThemeClassRepository extends JpaRepository 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> getThemeByOrgaId(String orgaId); + List> getThemeByOrgaId(Long orgaId); } diff --git a/system/src/main/java/com/canvas/web/modules/material/repository/ThemeFolderRepository.java b/system/src/main/java/com/canvas/web/modules/material/repository/ThemeFolderRepository.java index ef159c6..94ba884 100644 --- a/system/src/main/java/com/canvas/web/modules/material/repository/ThemeFolderRepository.java +++ b/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 findFirstByOrgaIdAndFidIsNull(String orgaId); - List findAllByOrgaIdAndFid(String orgaId, String fid); + ThemeFolder findFirstByOrgaIdAndFidIsNull(Long orgaId); + List findAllByOrgaIdAndFid(Long orgaId, String fid); List findAllByFid(String fid); @Modifying diff --git a/system/src/main/java/com/canvas/web/modules/material/rest/MaterialController.java b/system/src/main/java/com/canvas/web/modules/material/rest/MaterialController.java index 406134d..0b46ba0 100644 --- a/system/src/main/java/com/canvas/web/modules/material/rest/MaterialController.java +++ b/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 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> findMaterialById( + @Validated @RequestBody PrimaryDTO dto + ){ + return Response.success(materialService.findMaterialByIds(dto.getIds())); + } + @ApiOperation("我的画布") // @PostMapping("/myAlbum") @AnonymousPostMapping("/myAlbum") public Response 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 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 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>> 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)); } } diff --git a/system/src/main/java/com/canvas/web/modules/material/rest/ThemeClassController.java b/system/src/main/java/com/canvas/web/modules/material/rest/ThemeClassController.java index d0d10fb..e4f40df 100644 --- a/system/src/main/java/com/canvas/web/modules/material/rest/ThemeClassController.java +++ b/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 findThemeClassDetails( + @Validated String theme_class_id + ){ + return Response.success(themeClassService.findThemeClassDetails(theme_class_id)); + } + @ApiOperation("根据机构id查询主题列表") // @GetMapping("/getThemeList") @AnonymousGetMapping("/get_theme_list") public Response>> getTheme( - @Validated String orga_id + @Validated Long orga_id ){ return Response.success(themeClassService.getTheme(orga_id)); } diff --git a/system/src/main/java/com/canvas/web/modules/material/service/MaterialService.java b/system/src/main/java/com/canvas/web/modules/material/service/MaterialService.java index 4746c64..c17d06b 100644 --- a/system/src/main/java/com/canvas/web/modules/material/service/MaterialService.java +++ b/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> themeHistoryList(String themeName, String startTime, String endTime, Pageable pageable); //分页查询主题库信息 ResultUtils> getThemeLibrary(String themeName, String themeClass, Integer deviceDirection, Pageable pageable); + //根据id查询素材 + List findMaterialByIds(List materialIds); //根据机构id获取我的画册文件夹 - List getAlbumFolder(String orgaId, String folderId); + List getAlbumFolder(Long orgaId, String folderId); //获取我的画布当前文件夹id - String getThisAlbumFoldId(String orgaId, String folderId); + String getThisAlbumFoldId(Long orgaId, String folderId); //根据机构id获取素材文件夹 - List getMaterialFolder(String orgaId, String folderId); + List getMaterialFolder(Long orgaId, String folderId); //获取当前文件夹 - String getCurrentFold(String orgaId,String folderId); + String getCurrentFold(Long orgaId,String folderId); //分页获取我的画册文件夹内素材 - List getMyAlbumTheme(String orgaId,String folderId,String themeName); + List getMyAlbumTheme(Long orgaId,String folderId,String themeName); //分页获取素材库内容 - List getMyMaterial(String orgaId,String folderId,String materialName,Integer materialType); + List getMyMaterial(Long orgaId,String folderId,String materialName,Integer materialType,Integer materialTypeNot); //编辑主题库文件夹 void editThemeFolder(FolderDTO dto); //编辑素材库文件夹 void editMaterialFolder(FolderDTO dto); //添加素材到我的画册 - void addMyAlbum(String tfId,List themeIds,String orgaId); + void addMyAlbum(String tfId,List themeIds,Long orgaId); //删除我的画册主题素材 void deleteMyAlbum(List ids); //删除主题库文件夹 @@ -43,10 +46,12 @@ public interface MaterialService { void deleteMaterialFolder(List ids); //移动素材到文件夹 void moveMyMaterial(List mifIds,String folderId,List materialId); + //移动主题库素材到文件夹 + void moveMyThemeMaterial(List tifIds,String folderId,List materialId); //删除素材 void deleteMyMaterial(List materialIds); //更改素材库状态 void updateState(String materialId,Integer state); //根据素材类型获取素材 - 素材库 - ResultUtils> getMaterialByType(String themeName,Integer themeType,Integer themeTypeNot,String orgaId,Pageable pageable); + ResultUtils> getMaterialByType(String themeName,Integer themeType,Integer themeTypeNot,Long orgaId,Pageable pageable); } diff --git a/system/src/main/java/com/canvas/web/modules/material/service/ThemeClassService.java b/system/src/main/java/com/canvas/web/modules/material/service/ThemeClassService.java index b274515..4ee73c9 100644 --- a/system/src/main/java/com/canvas/web/modules/material/service/ThemeClassService.java +++ b/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> getTheme(String orgaId); + List> getTheme(Long orgaId); + //根据分类id查询类别详情 + ThemeClassVO findThemeClassDetails(String themeClassId); } diff --git a/system/src/main/java/com/canvas/web/modules/material/service/impl/MaterialServiceImpl.java b/system/src/main/java/com/canvas/web/modules/material/service/impl/MaterialServiceImpl.java index 5c1c6d2..349b503 100644 --- a/system/src/main/java/com/canvas/web/modules/material/service/impl/MaterialServiceImpl.java +++ b/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> 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> pageMap = materialRepository.getThemeHistoryList(themeName,startTime,endTime,page); //初始化分页返回数据 @@ -117,9 +114,14 @@ public class MaterialServiceImpl implements MaterialService { return ResultUtils.getResult(themeVOList,pageMap); } + @Override + public List findMaterialByIds(List materialIds) { + return materialRepository.findAllById(materialIds); + } + @Override @Transactional(rollbackFor = Exception.class) - public List getAlbumFolder(String orgaId, String folderId) { + public List 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 getMaterialFolder(String orgaId, String folderId) { + public List 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 getMyAlbumTheme(String orgaId, String folderId, String themeName) { + public List getMyAlbumTheme(Long orgaId, String folderId, String themeName) { folderId = !StringUtils.isEmpty(folderId) ? folderId : themeFolderRepository.findFirstByOrgaIdAndFidIsNull(orgaId).getId(); List> map = materialRepository.getMyAlbumTheme(folderId,themeName); List themeVOList = MapUtil.setList(map,ThemeVO.class); @@ -194,9 +196,9 @@ public class MaterialServiceImpl implements MaterialService { } @Override - public List getMyMaterial(String orgaId, String folderId, String materialName,Integer materialType) { + public List getMyMaterial(Long orgaId, String folderId, String materialName,Integer materialType,Integer materialTypeNot) { folderId = !StringUtils.isEmpty(folderId) ? folderId : materialFolderRepository.findFirstByOrgaIdAndFidIsNull(orgaId).getId(); - List> map = materialRepository.getMyMaterial(folderId,materialName,materialType); + List> map = materialRepository.getMyMaterial(folderId,materialName,materialType,materialTypeNot); List 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 themeIds,String orgaId) { + public void addMyAlbum(String tfId, List themeIds,Long orgaId) { List 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 tifIds, String folderId, List materialId) { + List themeInFolders = new ArrayList<>(); + List oldThemeInFolders = themeInFolderRepository.findAllById(tifIds); + for(int i = 0;i0){ + themeInFolderRepository.saveAllAndFlush(themeInFolders); + } + } + @Override @Transactional(rollbackFor = Exception.class) public void deleteMyMaterial(List materialIds) { @@ -326,7 +345,7 @@ public class MaterialServiceImpl implements MaterialService { } @Override - public ResultUtils> getMaterialByType(String themeName, Integer themeType, Integer themeTypeNot, String orgaId, Pageable pageable) { + public ResultUtils> 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> pageMap = materialRepository.getMaterialByType(themeName,themeType,themeTypeNot,orgaId,page); diff --git a/system/src/main/java/com/canvas/web/modules/material/service/impl/ThemeClassServiceImpl.java b/system/src/main/java/com/canvas/web/modules/material/service/impl/ThemeClassServiceImpl.java index 31c3d65..b593fc6 100644 --- a/system/src/main/java/com/canvas/web/modules/material/service/impl/ThemeClassServiceImpl.java +++ b/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> getTheme(String orgaId) { + public List> getTheme(Long orgaId) { List> 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 orgaClasss = orgaClassRepository.findAllByClassId(themeClassId); + List orgList = new ArrayList<>(); + for(int i = 0;i0 ){ + vo.setOrgs(orgRepository.findAllById(orgList)); + } + + return vo; + } } diff --git a/system/src/main/java/com/canvas/web/modules/material/vo/ThemeClassVO.java b/system/src/main/java/com/canvas/web/modules/material/vo/ThemeClassVO.java new file mode 100644 index 0000000..79b2b07 --- /dev/null +++ b/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 orgs; + +} diff --git a/system/src/main/java/com/canvas/web/modules/material/vo/ThemeVO.java b/system/src/main/java/com/canvas/web/modules/material/vo/ThemeVO.java index 4d612a7..d958b18 100644 --- a/system/src/main/java/com/canvas/web/modules/material/vo/ThemeVO.java +++ b/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; + } diff --git a/system/src/main/java/com/canvas/web/modules/release/criteria/NoticeQueryCriteria.java b/system/src/main/java/com/canvas/web/modules/release/criteria/NoticeQueryCriteria.java index 55e5771..7b2ce8b 100644 --- a/system/src/main/java/com/canvas/web/modules/release/criteria/NoticeQueryCriteria.java +++ b/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") diff --git a/system/src/main/java/com/canvas/web/modules/release/criteria/ReleaseListQueryCriteria.java b/system/src/main/java/com/canvas/web/modules/release/criteria/ReleaseListQueryCriteria.java index 76d34a0..ff18ded 100644 --- a/system/src/main/java/com/canvas/web/modules/release/criteria/ReleaseListQueryCriteria.java +++ b/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; } diff --git a/system/src/main/java/com/canvas/web/modules/release/domain/Notice.java b/system/src/main/java/com/canvas/web/modules/release/domain/Notice.java index 158882a..6c3ca90 100644 --- a/system/src/main/java/com/canvas/web/modules/release/domain/Notice.java +++ b/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 = "发布机器") diff --git a/system/src/main/java/com/canvas/web/modules/release/domain/ReleaseList.java b/system/src/main/java/com/canvas/web/modules/release/domain/ReleaseList.java index b3188d2..28e2544 100644 --- a/system/src/main/java/com/canvas/web/modules/release/domain/ReleaseList.java +++ b/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; } diff --git a/system/src/main/java/com/canvas/web/modules/release/domain/ReleaseMaterial.java b/system/src/main/java/com/canvas/web/modules/release/domain/ReleaseMaterial.java index ef70130..3a60b93 100644 --- a/system/src/main/java/com/canvas/web/modules/release/domain/ReleaseMaterial.java +++ b/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") diff --git a/system/src/main/java/com/canvas/web/modules/release/dto/NoticeDTO.java b/system/src/main/java/com/canvas/web/modules/release/dto/NoticeDTO.java index f46dfa6..c265711 100644 --- a/system/src/main/java/com/canvas/web/modules/release/dto/NoticeDTO.java +++ b/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") diff --git a/system/src/main/java/com/canvas/web/modules/release/dto/ReleaseDTO.java b/system/src/main/java/com/canvas/web/modules/release/dto/ReleaseDTO.java index d13136b..e114b5b 100644 --- a/system/src/main/java/com/canvas/web/modules/release/dto/ReleaseDTO.java +++ b/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 deletereleaseMaterial; + @JSONField(name="releaseMaterialDTOs") @JsonProperty("release_materialDTOs") private List releaseMaterialDTOs; diff --git a/system/src/main/java/com/canvas/web/modules/release/dto/ReleaseMaterialDTO.java b/system/src/main/java/com/canvas/web/modules/release/dto/ReleaseMaterialDTO.java index 8fecc56..a7e6513 100644 --- a/system/src/main/java/com/canvas/web/modules/release/dto/ReleaseMaterialDTO.java +++ b/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; + } diff --git a/system/src/main/java/com/canvas/web/modules/release/repository/NoticeRepository.java b/system/src/main/java/com/canvas/web/modules/release/repository/NoticeRepository.java index 01838b9..9c5a1b7 100644 --- a/system/src/main/java/com/canvas/web/modules/release/repository/NoticeRepository.java +++ b/system/src/main/java/com/canvas/web/modules/release/repository/NoticeRepository.java @@ -20,6 +20,6 @@ public interface NoticeRepository extends JpaRepository { "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> getUrgentNoticeList(String noticeName,String orgaId, Pageable page); + Page> getUrgentNoticeList(String noticeName,Long orgaId, Pageable page); } diff --git a/system/src/main/java/com/canvas/web/modules/release/repository/ReleaseDeviceRepository.java b/system/src/main/java/com/canvas/web/modules/release/repository/ReleaseDeviceRepository.java index b0e19e0..2838d51 100644 --- a/system/src/main/java/com/canvas/web/modules/release/repository/ReleaseDeviceRepository.java +++ b/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 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> findAllByReleaseId(String releaseId); } diff --git a/system/src/main/java/com/canvas/web/modules/release/repository/ReleaseListRepository.java b/system/src/main/java/com/canvas/web/modules/release/repository/ReleaseListRepository.java index b7a4955..ca94413 100644 --- a/system/src/main/java/com/canvas/web/modules/release/repository/ReleaseListRepository.java +++ b/system/src/main/java/com/canvas/web/modules/release/repository/ReleaseListRepository.java @@ -12,7 +12,7 @@ public interface ReleaseListRepository extends JpaRepository= 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= 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> getReleaseList(String releaseName,String orgaId, Pageable page); + Page> 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> getReleaseHistoryList(String releaseName,String orgaId, Pageable page); + Page> getReleaseHistoryList(String releaseName,Long orgaId, Pageable page); } diff --git a/system/src/main/java/com/canvas/web/modules/release/repository/ReleaseMaterialRepository.java b/system/src/main/java/com/canvas/web/modules/release/repository/ReleaseMaterialRepository.java index 2e943fc..4cb23c4 100644 --- a/system/src/main/java/com/canvas/web/modules/release/repository/ReleaseMaterialRepository.java +++ b/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 { - List findAllByReleaseId(String releaseId); + List findAllByReleaseIdOrderByRankingAsc(String releaseId); } diff --git a/system/src/main/java/com/canvas/web/modules/release/rest/ReleaseListController.java b/system/src/main/java/com/canvas/web/modules/release/rest/ReleaseListController.java index 318fdd8..3fd931c 100644 --- a/system/src/main/java/com/canvas/web/modules/release/rest/ReleaseListController.java +++ b/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 deleteRelease( + @Validated @RequestBody ChangeStateDTO dto + ){ + releaseListService.deleteRelease(dto.getId(),dto.isDel()); + return Response.success(ResponseEnum.DELETE_SUCCESS); + } + + @ApiOperation("改变发布状态") +// @PostMapping("/updateReleaseState") + @AnonymousPostMapping("/updateReleaseState") + public Response updateReleaseState( + @Validated @RequestBody ChangeStateDTO dto + ){ + releaseListService.updateReleaseState(dto.getId(),dto.getState()); + return Response.success(ResponseEnum.UPDATE_SUCCESS); + } + + @ApiOperation("发布是否置顶") +// @PostMapping("/toppingRelease") + @AnonymousPostMapping("/toppingRelease") + public Response toppingRelease( + @Validated @RequestBody ChangeStateDTO dto + ){ + releaseListService.toppingReleaseState(dto.getId(),dto.isTopping()); + return Response.success(ResponseEnum.UPDATE_SUCCESS); + } + @ApiOperation("改变紧急通知状态") // @PostMapping("/updateNoticeState") @AnonymousPostMapping("/updateNoticeState") diff --git a/system/src/main/java/com/canvas/web/modules/release/service/ReleaseListService.java b/system/src/main/java/com/canvas/web/modules/release/service/ReleaseListService.java index 02d78a3..3f2f157 100644 --- a/system/src/main/java/com/canvas/web/modules/release/service/ReleaseListService.java +++ b/system/src/main/java/com/canvas/web/modules/release/service/ReleaseListService.java @@ -14,19 +14,25 @@ import java.util.List; public interface ReleaseListService { //分页查询发布信息 - ResultUtils> getReleaseList(String releaseName, String orgaId, Pageable pageable); + ResultUtils> getReleaseList(String releaseName, Long orgaId, Pageable pageable); //分页查询发布历史信息 - ResultUtils> getReleaseHistoryList(String releaseName,String orgaId, Pageable pageable); + ResultUtils> getReleaseHistoryList(String releaseName,Long orgaId, Pageable pageable); //根据发布id查询发布详细信息 ReleaseDetailVO getReleaseDetailsById(String releaseId); //编辑发布内容 void edit(ReleaseDTO dto); //获取紧急通知列表 - ResultUtils> getUrgentNoticeList(String noticeName, String orgaId, Pageable pageable); + ResultUtils> 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); } diff --git a/system/src/main/java/com/canvas/web/modules/release/service/impl/ReleaseListServiceImpl.java b/system/src/main/java/com/canvas/web/modules/release/service/impl/ReleaseListServiceImpl.java index 2346545..4e61c72 100644 --- a/system/src/main/java/com/canvas/web/modules/release/service/impl/ReleaseListServiceImpl.java +++ b/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> getReleaseList(String releaseName,String orgaId, Pageable pageable) { - PageRequest page = PageRequest.of(pageable.getPageNumber(),pageable.getPageSize()); + public ResultUtils> getReleaseList(String releaseName,Long orgaId, Pageable pageable) { + PageRequest page = PageRequest.of(pageable.getPageNumber()-1,pageable.getPageSize()); //分页查询 Page> pageMap = releaseListRepository.getReleaseList(releaseName,orgaId,page); //初始化分页返回数据 @@ -49,8 +49,8 @@ public class ReleaseListServiceImpl implements ReleaseListService { } @Override - public ResultUtils> getReleaseHistoryList(String releaseName, String orgaId, Pageable pageable) { - PageRequest page = PageRequest.of(pageable.getPageNumber(),pageable.getPageSize()); + public ResultUtils> getReleaseHistoryList(String releaseName, Long orgaId, Pageable pageable) { + PageRequest page = PageRequest.of(pageable.getPageNumber()-1,pageable.getPageSize()); //分页查询 Page> 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> getUrgentNoticeList(String noticeName, String orgaId, Pageable pageable) + public ResultUtils> 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) { diff --git a/system/src/main/java/com/canvas/web/modules/release/vo/ReleaseDetailVO.java b/system/src/main/java/com/canvas/web/modules/release/vo/ReleaseDetailVO.java index 65820b3..f74b976 100644 --- a/system/src/main/java/com/canvas/web/modules/release/vo/ReleaseDetailVO.java +++ b/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 releaseDevices; + private List> releaseDevices; } diff --git a/system/src/main/java/com/canvas/web/modules/release/vo/ReleaseListVO.java b/system/src/main/java/com/canvas/web/modules/release/vo/ReleaseListVO.java index 8db83f3..6fe09e5 100644 --- a/system/src/main/java/com/canvas/web/modules/release/vo/ReleaseListVO.java +++ b/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; + }