xia
3 years ago
13 changed files with 454 additions and 17 deletions
-
16system/src/main/java/com/canvas/web/modules/device/criteria/DeviceQueryCriteria.java
-
21system/src/main/java/com/canvas/web/modules/device/criteria/DeviceSettingCriteria.java
-
13system/src/main/java/com/canvas/web/modules/device/domain/Device.java
-
15system/src/main/java/com/canvas/web/modules/device/dto/DeviceDTO.java
-
15system/src/main/java/com/canvas/web/modules/device/repository/DeviceRepository.java
-
64system/src/main/java/com/canvas/web/modules/device/rest/DeviceController.java
-
23system/src/main/java/com/canvas/web/modules/device/service/DeviceService.java
-
93system/src/main/java/com/canvas/web/modules/device/service/impl/DeviceServiceImpl.java
-
36system/src/main/java/com/canvas/web/modules/device/vo/DeviceVO.java
-
60system/src/main/java/com/canvas/web/modules/material/domain/Material.java
-
15system/src/main/java/com/canvas/web/modules/material/repository/MaterialRepository.java
-
19system/src/main/java/com/canvas/web/modules/utils/MapUtil.java
-
81system/src/main/java/com/canvas/web/modules/utils/PageSort.java
@ -0,0 +1,16 @@ |
|||||
|
package com.canvas.web.modules.device.criteria; |
||||
|
|
||||
|
|
||||
|
import com.canvas.web.annotation.Query; |
||||
|
import lombok.Data; |
||||
|
|
||||
|
@Data |
||||
|
public class DeviceQueryCriteria { |
||||
|
|
||||
|
@Query |
||||
|
private String deviceId; |
||||
|
@Query |
||||
|
private String deviceName; |
||||
|
@Query |
||||
|
private Integer isState; |
||||
|
} |
@ -0,0 +1,21 @@ |
|||||
|
package com.canvas.web.modules.device.criteria; |
||||
|
|
||||
|
|
||||
|
import com.canvas.web.annotation.Query; |
||||
|
import lombok.Data; |
||||
|
|
||||
|
import java.sql.Timestamp; |
||||
|
|
||||
|
@Data |
||||
|
public class DeviceSettingCriteria { |
||||
|
|
||||
|
@Query |
||||
|
private String deviceId; |
||||
|
public Integer openSetting; |
||||
|
public String openWeekly; |
||||
|
public String openTime; |
||||
|
public Integer closeSetting; |
||||
|
public String closeWeekly; |
||||
|
public String closeTime; |
||||
|
public String startupScreen; |
||||
|
} |
@ -0,0 +1,15 @@ |
|||||
|
package com.canvas.web.modules.device.dto; |
||||
|
|
||||
|
import lombok.Getter; |
||||
|
import lombok.Setter; |
||||
|
|
||||
|
import java.io.Serializable; |
||||
|
|
||||
|
@Getter |
||||
|
@Setter |
||||
|
public class DeviceDTO implements Serializable { |
||||
|
public String deviceId; |
||||
|
public String account; |
||||
|
public String deviceName; |
||||
|
public Integer deviceDirection; |
||||
|
} |
@ -1,8 +1,23 @@ |
|||||
package com.canvas.web.modules.device.repository; |
package com.canvas.web.modules.device.repository; |
||||
|
|
||||
import com.canvas.web.modules.device.domain.Device; |
import com.canvas.web.modules.device.domain.Device; |
||||
|
import org.springframework.data.domain.Page; |
||||
|
import org.springframework.data.domain.Pageable; |
||||
import org.springframework.data.jpa.repository.JpaRepository; |
import org.springframework.data.jpa.repository.JpaRepository; |
||||
|
import org.springframework.data.jpa.repository.Query; |
||||
|
|
||||
|
import java.util.Map; |
||||
|
|
||||
public interface DeviceRepository extends JpaRepository<Device, String> { |
public interface DeviceRepository extends JpaRepository<Device, String> { |
||||
|
|
||||
|
@Query(nativeQuery = true, |
||||
|
value="select d.id as deviceId,d.account deviceAccount,d.device_name as deviceName,d.device_direction as deviceDirection," + |
||||
|
"o.name as organName,d.open_setting as openSetting,d.open_weekly as openWeekly,d.open_time as openTime," + |
||||
|
"d.close_setting as closeSetting,d.close_weekly as closeWeekly,d.close_time as closeTime," + |
||||
|
"d.startup_screen as startupScreen,d.is_state as deviceState,d.is_createdate as createTime " + |
||||
|
"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); |
||||
|
|
||||
} |
} |
@ -0,0 +1,23 @@ |
|||||
|
package com.canvas.web.modules.device.service; |
||||
|
|
||||
|
import com.canvas.web.modules.device.criteria.DeviceSettingCriteria; |
||||
|
import com.canvas.web.modules.device.domain.Device; |
||||
|
import com.canvas.web.modules.device.dto.DeviceDTO; |
||||
|
import com.canvas.web.modules.device.vo.DeviceVO; |
||||
|
import com.canvas.web.modules.utils.ResultUtils; |
||||
|
import org.springframework.data.domain.Pageable; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
public interface DeviceService { |
||||
|
//分页查询设备列表 |
||||
|
ResultUtils<List<DeviceVO>> getDeviceList(String deviceId, String deviceName, Integer state, Pageable pageable); |
||||
|
//编辑设备 |
||||
|
boolean edit(DeviceDTO dto); |
||||
|
//开关机配置 |
||||
|
void setting(DeviceSettingCriteria criteria); |
||||
|
//根据id查询设备 |
||||
|
Device findById(String deviceId); |
||||
|
//更新设备状态 |
||||
|
void updateState(String deviceId,Integer state); |
||||
|
} |
@ -0,0 +1,93 @@ |
|||||
|
package com.canvas.web.modules.device.service.impl; |
||||
|
|
||||
|
import com.canvas.web.modules.device.criteria.DeviceSettingCriteria; |
||||
|
import com.canvas.web.modules.device.domain.Device; |
||||
|
import com.canvas.web.modules.device.dto.DeviceDTO; |
||||
|
import com.canvas.web.modules.device.repository.DeviceRepository; |
||||
|
import com.canvas.web.modules.device.service.DeviceService; |
||||
|
import com.canvas.web.modules.device.vo.DeviceVO; |
||||
|
import com.canvas.web.modules.utils.MapUtil; |
||||
|
import com.canvas.web.modules.utils.PageSort; |
||||
|
import com.canvas.web.modules.utils.ResultUtils; |
||||
|
import lombok.RequiredArgsConstructor; |
||||
|
import org.springframework.data.domain.Page; |
||||
|
import org.springframework.data.domain.PageRequest; |
||||
|
import org.springframework.data.domain.Pageable; |
||||
|
import org.springframework.data.domain.Sort; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
|
||||
|
import java.sql.Timestamp; |
||||
|
import java.util.Date; |
||||
|
import java.util.List; |
||||
|
import java.util.Map; |
||||
|
import java.util.Optional; |
||||
|
|
||||
|
@Service |
||||
|
@RequiredArgsConstructor |
||||
|
public class DeviceServiceImpl implements DeviceService { |
||||
|
|
||||
|
private final DeviceRepository deviceRepository; |
||||
|
|
||||
|
@Override |
||||
|
public ResultUtils<List<DeviceVO>> getDeviceList(String deviceId, String deviceName, Integer state, 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); |
||||
|
//初始化分页返回数据 |
||||
|
List<DeviceVO> deviceVOList = MapUtil.setList(pageMap.getContent(),DeviceVO.class); |
||||
|
return ResultUtils.getResult(deviceVOList,pageMap); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public boolean edit(DeviceDTO dto) { |
||||
|
boolean isok = true; |
||||
|
try { |
||||
|
Device device = new Device(); |
||||
|
if(null != dto.getDeviceId()){ |
||||
|
device = deviceRepository.findById(dto.getDeviceId()).get(); |
||||
|
device.setUpdateTime(new Timestamp(new Date().getTime())); |
||||
|
}else{ |
||||
|
device.setCreateTime(new Timestamp(new Date().getTime())); |
||||
|
device.setUpdateTime(new Timestamp(new Date().getTime())); |
||||
|
} |
||||
|
device.setAccount(dto.getAccount()); |
||||
|
device.setDeviceName(dto.getDeviceName()); |
||||
|
device.setDeviceDirection(dto.getDeviceDirection()); |
||||
|
device = deviceRepository.saveAndFlush(device); |
||||
|
}catch (Exception e){ |
||||
|
isok = false; |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
return isok; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void setting(DeviceSettingCriteria criteria) { |
||||
|
Device device = deviceRepository.findById(criteria.getDeviceId()).get(); |
||||
|
device.setOpenSetting(criteria.getOpenSetting()); |
||||
|
device.setOpenWeekly(criteria.getOpenWeekly()); |
||||
|
device.setOpenTime(Timestamp.valueOf(criteria.getOpenTime())); |
||||
|
device.setCloseSetting(criteria.getCloseSetting()); |
||||
|
device.setCloseWeekly(criteria.getCloseWeekly()); |
||||
|
device.setCloseTime(Timestamp.valueOf(criteria.getCloseTime())); |
||||
|
device.setStartupScreen(criteria.getStartupScreen()); |
||||
|
device.setUpdateTime(new Timestamp(new Date().getTime())); |
||||
|
deviceRepository.saveAndFlush(device); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public Device findById(String deviceId) { |
||||
|
Optional<Device> optional = deviceRepository.findById(deviceId); |
||||
|
if(!optional.isPresent()){ |
||||
|
return optional.get(); |
||||
|
} |
||||
|
return null; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void updateState(String deviceId, Integer state) { |
||||
|
Device device = deviceRepository.findById(deviceId).get(); |
||||
|
device.setIsState(state); |
||||
|
deviceRepository.saveAndFlush(device); |
||||
|
} |
||||
|
} |
@ -0,0 +1,36 @@ |
|||||
|
package com.canvas.web.modules.device.vo; |
||||
|
|
||||
|
import io.swagger.annotations.ApiModelProperty; |
||||
|
import lombok.Getter; |
||||
|
import lombok.Setter; |
||||
|
|
||||
|
import java.sql.Timestamp; |
||||
|
|
||||
|
@Getter |
||||
|
@Setter |
||||
|
public class DeviceVO { |
||||
|
@ApiModelProperty(value = "设备id") |
||||
|
private String deviceId; |
||||
|
@ApiModelProperty(value = "设备账号") |
||||
|
private String deviceAccount; |
||||
|
@ApiModelProperty(value = "设备名称") |
||||
|
private String deviceName; |
||||
|
@ApiModelProperty(value = "设备方向") |
||||
|
private String deviceDirection; |
||||
|
@ApiModelProperty(value = "机构名称") |
||||
|
private String organName; |
||||
|
@ApiModelProperty(value = "开机设置") |
||||
|
private Integer openSetting; |
||||
|
@ApiModelProperty(value = "开机每周") |
||||
|
private String openWeekly; |
||||
|
@ApiModelProperty(value = "开机时间") |
||||
|
private Timestamp openTime; |
||||
|
@ApiModelProperty(value = "关机设置") |
||||
|
private Integer closeSetting; |
||||
|
@ApiModelProperty(value = "关机每周") |
||||
|
private String closeWeekly; |
||||
|
@ApiModelProperty(value = "关机时间") |
||||
|
private Timestamp closeTime; |
||||
|
@ApiModelProperty(value = "启动动画") |
||||
|
private String startupScreen; |
||||
|
} |
@ -0,0 +1,60 @@ |
|||||
|
package com.canvas.web.modules.material.domain; |
||||
|
|
||||
|
import com.canvas.web.base.BaseEntity; |
||||
|
import io.swagger.annotations.ApiModelProperty; |
||||
|
import lombok.Getter; |
||||
|
import lombok.Setter; |
||||
|
import org.hibernate.annotations.GenericGenerator; |
||||
|
|
||||
|
import javax.persistence.*; |
||||
|
import java.io.Serializable; |
||||
|
|
||||
|
@Getter |
||||
|
@Setter |
||||
|
@Entity |
||||
|
@Table(name = "material") |
||||
|
public class Material extends BaseEntity implements Serializable { |
||||
|
|
||||
|
@Id |
||||
|
@Column(name = "id") |
||||
|
@GeneratedValue(generator = "idGenerator") |
||||
|
@GenericGenerator(name = "idGenerator", strategy = "uuid") |
||||
|
private String id ; |
||||
|
|
||||
|
@Column(name = "name") |
||||
|
@ApiModelProperty(value = "素材名称") |
||||
|
private String name; |
||||
|
|
||||
|
@Column(name = "type") |
||||
|
@ApiModelProperty(value = "素材类型") |
||||
|
private Integer type; |
||||
|
|
||||
|
@Column(name = "store_type") |
||||
|
@ApiModelProperty(value = "库类型 1.素材库 2.主题库") |
||||
|
private Integer storeType; |
||||
|
|
||||
|
@Column(name = "deposit_url") |
||||
|
@ApiModelProperty(value = "素材存放路径") |
||||
|
private String depositUrl; |
||||
|
|
||||
|
@Column(name = "img_path") |
||||
|
@ApiModelProperty(value = "封面图片路径") |
||||
|
private String imgPath; |
||||
|
|
||||
|
@Column(name = "device_direction") |
||||
|
@ApiModelProperty(value = "设备方向") |
||||
|
private String deviceDirection; |
||||
|
|
||||
|
@Column(name = "orga_id") |
||||
|
@ApiModelProperty(value = "机构id") |
||||
|
private String orgaId; |
||||
|
|
||||
|
@Column(name = "is_state") |
||||
|
@ApiModelProperty(value = "停用/禁用", hidden = true) |
||||
|
public Integer isState; |
||||
|
|
||||
|
@Column(name = "is_del") |
||||
|
@ApiModelProperty(value = "停用/禁用", hidden = true) |
||||
|
public Boolean isDel; |
||||
|
|
||||
|
} |
@ -0,0 +1,15 @@ |
|||||
|
package com.canvas.web.modules.material.repository; |
||||
|
|
||||
|
import com.canvas.web.modules.material.domain.Material; |
||||
|
import org.springframework.data.domain.Page; |
||||
|
import org.springframework.data.domain.Pageable; |
||||
|
import org.springframework.data.jpa.repository.JpaRepository; |
||||
|
import org.springframework.data.jpa.repository.Query; |
||||
|
|
||||
|
import java.util.Map; |
||||
|
|
||||
|
public interface MaterialRepository extends JpaRepository<Material, String> { |
||||
|
|
||||
|
|
||||
|
|
||||
|
} |
@ -0,0 +1,19 @@ |
|||||
|
package com.canvas.web.modules.utils; |
||||
|
|
||||
|
import com.alibaba.fastjson.JSONArray; |
||||
|
|
||||
|
import java.util.List; |
||||
|
import java.util.Map; |
||||
|
|
||||
|
public class MapUtil { |
||||
|
/** |
||||
|
* List<Map<String, Object>> 到 List<T> 数据转换 |
||||
|
*/ |
||||
|
public static <T> List<T> setList(final List<Map<String, Object>> srcList, Class<T> clazz) { |
||||
|
JSONArray jsonArray = new JSONArray(); |
||||
|
jsonArray.addAll(srcList); |
||||
|
List<T> addList = jsonArray.toJavaList(clazz); |
||||
|
return addList; |
||||
|
} |
||||
|
|
||||
|
} |
@ -0,0 +1,81 @@ |
|||||
|
package com.canvas.web.modules.utils; |
||||
|
|
||||
|
|
||||
|
import org.springframework.data.domain.PageRequest; |
||||
|
import org.springframework.data.domain.Sort; |
||||
|
|
||||
|
import java.util.ArrayList; |
||||
|
import java.util.List; |
||||
|
|
||||
|
/* |
||||
|
*@Description:分页排序数据 |
||||
|
*@Author: Liu_Lee |
||||
|
*@Date: 2020/9/16 13:30 |
||||
|
*@program: exhibit-admin |
||||
|
*/ |
||||
|
public class PageSort { |
||||
|
private static final Integer PAGE_SIZE_DEF = 10; |
||||
|
private static final String ORDER_BY_COLUMN_DEF = "createtime"; |
||||
|
private static final Sort.Direction SORT_DIRECTION = Sort.Direction.DESC; |
||||
|
|
||||
|
|
||||
|
|
||||
|
public static PageRequest pageRequest() { |
||||
|
return pageRequest(PAGE_SIZE_DEF, ORDER_BY_COLUMN_DEF, SORT_DIRECTION); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 创建分页排序对象 |
||||
|
* |
||||
|
* @param sortDirection 排序方式默认值 |
||||
|
*/ |
||||
|
public static PageRequest pageRequest(Integer page, Sort.Direction sortDirection) { |
||||
|
return pageRequest(PAGE_SIZE_DEF, ORDER_BY_COLUMN_DEF, sortDirection); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 创建分页排序对象 |
||||
|
* |
||||
|
* @param orderByColumnDef 排序字段名称默认值 |
||||
|
* @param sortDirection 排序方式默认值 |
||||
|
*/ |
||||
|
public static PageRequest pageRequest(Integer page, String orderByColumnDef, Sort.Direction sortDirection) { |
||||
|
return pageRequest(PAGE_SIZE_DEF, orderByColumnDef, sortDirection); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 创建分页排序对象 |
||||
|
* |
||||
|
* @param pageSizeDef 分页数据数量默认值 |
||||
|
* @param orderByColumnDef 排序字段名称默认值 |
||||
|
* @param sortDirection 排序方式默认值 |
||||
|
*/ |
||||
|
public static PageRequest pageRequest(Integer page, Integer pageSizeDef, String orderByColumnDef, Sort.Direction sortDirection) { |
||||
|
Integer pageIndex = HttpServletUtil.getParameterInt("page", page); |
||||
|
Integer pageSize = HttpServletUtil.getParameterInt("size", pageSizeDef); |
||||
|
String orderByColumn = HttpServletUtil.getParameter("orderByColumn", orderByColumnDef); |
||||
|
String direction = HttpServletUtil.getParameter("isAsc", sortDirection.toString()); |
||||
|
Sort sort = Sort.by(Sort.Direction.fromString(direction), orderByColumn); |
||||
|
|
||||
|
return PageRequest.of(pageIndex - 1, pageSize, sort); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 创建分页排序对象 |
||||
|
* |
||||
|
* @param pageSizeDef 分页数据数量默认值 |
||||
|
* @param orderByColumnDef 多个排序字段名称默认值 |
||||
|
* @param sortDirection 多个排序方式默认值 |
||||
|
*/ |
||||
|
public static PageRequest pageRequest(Integer page, Integer pageSizeDef, List<String> orderByColumnDef, List<Sort.Direction> sortDirection) { |
||||
|
Integer pageIndex = HttpServletUtil.getParameterInt("page", page); |
||||
|
Integer pageSize = HttpServletUtil.getParameterInt("size", pageSizeDef); |
||||
|
List orderList = new ArrayList(); |
||||
|
for(int i = 0;i<orderByColumnDef.size();i++){ |
||||
|
Sort.Order order = new Sort.Order(sortDirection.get(i),orderByColumnDef.get(i)); |
||||
|
orderList.add(order); |
||||
|
} |
||||
|
Sort sort = Sort.by(orderList); |
||||
|
return PageRequest.of(pageIndex - 1, pageSize, sort); |
||||
|
} |
||||
|
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue