diff --git a/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/entity/user/UserHandlingDeviceEntity.java b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/entity/user/UserHandlingDeviceEntity.java new file mode 100644 index 0000000..27dd431 --- /dev/null +++ b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/entity/user/UserHandlingDeviceEntity.java @@ -0,0 +1,72 @@ +package com.qiuguo.iot.data.entity.user; +import org.hswebframework.ezorm.rdb.mapping.annotation.Comment; +import org.hswebframework.web.crud.annotation.EnableEntityEvent; +import org.hswebframework.web.api.crud.entity.GenericEntity; +import javax.persistence.Column; +import javax.persistence.Table;import lombok.Data; +import java.util.Date; +/** +*

+*

* +* @author wulin +* @since 2023-09-25 +*/ + +@Data +@Comment("") +@Table(name = "user_handling_device") +@EnableEntityEvent +public class UserHandlingDeviceEntity extends GenericEntity { + @Comment("id") + @Column(name = "id", length = 11, nullable = false, unique = true) + private Long id; + + @Comment("字段名") + @Column(name = "code", length = 50, nullable = false) + private String code; + + @Comment("值") + @Column(name = "value", length = 50) + private String value; + + @Comment("数据类型") + @Column(name = "type", length = 20, nullable = false) + private String type; + + @Comment("最大值") + @Column(name = "max") + private Integer max; + + @Comment("最小值") + @Column(name = "min") + private Integer min; + + @Comment("步长") + @Column(name = "step") + private Integer step; + + @Comment("匹配字段") + @Column(name = "matching_fields", length = 200, nullable = false) + private String matchingFields; + + @Comment("分类字段名称") + @Column(name = "category_code", length = 20, nullable = false) + private String categoryCode; + + @Comment("分类名称") + @Column(name = "category_name", length = 20, nullable = false) + private String categoryName; + + @Comment("is_delete") + @Column(name = "is_delete") + private Integer isDelete; + + @Comment("create_time") + @Column(name = "create_time") + private Date createTime; + + @Comment("modify_time") + @Column(name = "modify_time") + private Date modifyTime; + +} \ No newline at end of file diff --git a/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/request/user/UserHandlingDeviceRequest.java b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/request/user/UserHandlingDeviceRequest.java new file mode 100644 index 0000000..55e1269 --- /dev/null +++ b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/request/user/UserHandlingDeviceRequest.java @@ -0,0 +1,57 @@ +package com.qiuguo.iot.data.request.user; +import lombok.Data; +import java.util.Date; +/** +*

+*请求类 +* @author wulin +* @since 2023-09-25 +*/ + + +@Data +public class UserHandlingDeviceRequest implements java.io.Serializable { + + private int currPage = 1; + private int pageSize = 10; + private String sort; + private String order; + // + private Long id; + //字段名 + private String code; + //值 + private String value; + //数据类型 + private String type; + //最大值 + private Integer max; + //最小值 + private Integer min; + //步长 + private Integer step; + //匹配字段 + private String matchingFields; + //分类字段名称 + private String categoryCode; + //分类名称 + private String categoryName; + // + private Integer isDelete; + // + private Date createTime; + //搜索开始 + + private Date createTimeStart; + + //搜索结束 + private Date createTimeEnd; + // + private Date modifyTime; + //搜索开始 + + private Date modifyTimeStart; + + //搜索结束 + private Date modifyTimeEnd; +} \ No newline at end of file diff --git a/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/resp/user/UserHandlingDeviceResp.java b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/resp/user/UserHandlingDeviceResp.java new file mode 100644 index 0000000..d91836c --- /dev/null +++ b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/resp/user/UserHandlingDeviceResp.java @@ -0,0 +1,55 @@ +package com.qiuguo.iot.data.resp.user; +import com.qiuguo.iot.data.entity.user.UserHandlingDeviceEntity; +import lombok.Data; +import java.util.Date; +/** +*

+*

*返回类 +* @author wulin +* @since 2023-09-25 +*/ + +@Data +public class UserHandlingDeviceResp { + public UserHandlingDeviceResp(){ + } + public UserHandlingDeviceResp(UserHandlingDeviceEntity entity){ + id = entity.getId(); + code = entity.getCode(); + value = entity.getValue(); + type = entity.getType(); + max = entity.getMax(); + min = entity.getMin(); + step = entity.getStep(); + matchingFields = entity.getMatchingFields(); + categoryCode = entity.getCategoryCode(); + categoryName = entity.getCategoryName(); + createTime = entity.getCreateTime(); + modifyTime = entity.getModifyTime(); + } + + // + private Long id; + //字段名 + private String code; + //值 + private String value; + //数据类型 + private String type; + //最大值 + private Integer max; + //最小值 + private Integer min; + //步长 + private Integer step; + //匹配字段 + private String matchingFields; + //分类字段名称 + private String categoryCode; + //分类名称 + private String categoryName; + // + private Date createTime; + // + private Date modifyTime; +} \ No newline at end of file diff --git a/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/service/user/UserHandlingDeviceService.java b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/service/user/UserHandlingDeviceService.java new file mode 100644 index 0000000..2bb2457 --- /dev/null +++ b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/service/user/UserHandlingDeviceService.java @@ -0,0 +1,240 @@ +package com.qiuguo.iot.data.service.user; + + + +import com.qiuguo.iot.base.utils.StringUtils; +import com.qiuguo.iot.data.entity.user.UserHandlingDeviceEntity; +import com.qiuguo.iot.data.request.user.UserHandlingDeviceRequest; +import lombok.extern.slf4j.Slf4j; +import java.util.Date; +import org.hswebframework.ezorm.rdb.mapping.ReactiveQuery; +import org.hswebframework.ezorm.rdb.mapping.ReactiveUpdate; +import org.hswebframework.ezorm.rdb.operator.dml.query.SortOrder; +import org.hswebframework.web.api.crud.entity.PagerResult; +import org.hswebframework.web.api.crud.entity.QueryParamEntity; +import org.hswebframework.web.crud.service.GenericReactiveCrudService; +import org.springframework.stereotype.Service; +import reactor.core.publisher.Mono; + +/** +*

+* 服务类 +*

+* +* @author wulin +* @since 2023-09-25 +*/ + +@Service +@Slf4j +public class UserHandlingDeviceService extends GenericReactiveCrudService { + + + public Mono selectUserHandlingDeviceByRequest(UserHandlingDeviceRequest request){ + ReactiveQuery reactiveQuery = createQuery(); + reactiveQuery = reactiveQuery.and("is_delete", 0); + if(request.getId() != null){ + reactiveQuery = reactiveQuery.and(UserHandlingDeviceRequest::getId, request.getId()); + } + if(StringUtils.isNotEmpty(request.getCode())){ + reactiveQuery = reactiveQuery.and(UserHandlingDeviceRequest::getCode, request.getCode()); + } + if(StringUtils.isNotEmpty(request.getValue())){ + reactiveQuery = reactiveQuery.and(UserHandlingDeviceRequest::getValue, request.getValue()); + } + if(StringUtils.isNotEmpty(request.getType())){ + reactiveQuery = reactiveQuery.and(UserHandlingDeviceRequest::getType, request.getType()); + } + if(request.getMax() != null){ + reactiveQuery = reactiveQuery.and(UserHandlingDeviceRequest::getMax, request.getMax()); + } + if(request.getMin() != null){ + reactiveQuery = reactiveQuery.and(UserHandlingDeviceRequest::getMin, request.getMin()); + } + if(request.getStep() != null){ + reactiveQuery = reactiveQuery.and(UserHandlingDeviceRequest::getStep, request.getStep()); + } + if(StringUtils.isNotEmpty(request.getMatchingFields())){ + reactiveQuery = reactiveQuery.and(UserHandlingDeviceRequest::getMatchingFields, request.getMatchingFields()); + } + if(StringUtils.isNotEmpty(request.getCategoryCode())){ + reactiveQuery = reactiveQuery.and(UserHandlingDeviceRequest::getCategoryCode, request.getCategoryCode()); + } + if(StringUtils.isNotEmpty(request.getCategoryName())){ + reactiveQuery = reactiveQuery.and(UserHandlingDeviceRequest::getCategoryName, request.getCategoryName()); + } + if(request.getIsDelete() != null){ + reactiveQuery = reactiveQuery.and(UserHandlingDeviceRequest::getIsDelete, request.getIsDelete()); + } + if(request.getCreateTime() != null){ + reactiveQuery = reactiveQuery.and(UserHandlingDeviceRequest::getCreateTime, request.getCreateTime()); + } + if(request.getModifyTime() != null){ + reactiveQuery = reactiveQuery.and(UserHandlingDeviceRequest::getModifyTime, request.getModifyTime()); + } + SortOrder sortOrder = null; + if(StringUtils.isNotEmpty(request.getOrder())){ + if(StringUtils.isNotEmpty(request.getSort()) && request.getSort().compareTo("0") == 0){ + sortOrder = SortOrder.desc(request.getOrder()); + }else{ + sortOrder = SortOrder.asc(request.getOrder()); + } + reactiveQuery = reactiveQuery.orderBy(sortOrder); + } + return reactiveQuery.fetchOne(); + } + + + + public Mono> selectUserHandlingDevicesByRequest(UserHandlingDeviceRequest request){ + ReactiveQuery reactiveQuery = createQuery(); + reactiveQuery = reactiveQuery.and("is_delete", 0); + if(request.getId() != null){ + reactiveQuery = reactiveQuery.and(UserHandlingDeviceRequest::getId, request.getId()); + } + if(StringUtils.isNotEmpty(request.getCode())){ + reactiveQuery = reactiveQuery.$like$(UserHandlingDeviceRequest::getCode, request.getCode()); + } + if(StringUtils.isNotEmpty(request.getValue())){ + reactiveQuery = reactiveQuery.$like$(UserHandlingDeviceRequest::getValue, request.getValue()); + } + if(StringUtils.isNotEmpty(request.getType())){ + reactiveQuery = reactiveQuery.$like$(UserHandlingDeviceRequest::getType, request.getType()); + } + if(request.getMax() != null){ + reactiveQuery = reactiveQuery.and(UserHandlingDeviceRequest::getMax, request.getMax()); + } + if(request.getMin() != null){ + reactiveQuery = reactiveQuery.and(UserHandlingDeviceRequest::getMin, request.getMin()); + } + if(request.getStep() != null){ + reactiveQuery = reactiveQuery.and(UserHandlingDeviceRequest::getStep, request.getStep()); + } + if(StringUtils.isNotEmpty(request.getMatchingFields())){ + reactiveQuery = reactiveQuery.$like$(UserHandlingDeviceRequest::getMatchingFields, request.getMatchingFields()); + } + if(StringUtils.isNotEmpty(request.getCategoryCode())){ + reactiveQuery = reactiveQuery.$like$(UserHandlingDeviceRequest::getCategoryCode, request.getCategoryCode()); + } + if(StringUtils.isNotEmpty(request.getCategoryName())){ + reactiveQuery = reactiveQuery.$like$(UserHandlingDeviceRequest::getCategoryName, request.getCategoryName()); + } + if(request.getIsDelete() != null){ + reactiveQuery = reactiveQuery.and(UserHandlingDeviceRequest::getIsDelete, request.getIsDelete()); + } + if(request.getCreateTimeStart() != null){ + reactiveQuery = reactiveQuery.gte(UserHandlingDeviceRequest::getCreateTime, request.getCreateTimeStart()); + } + if(request.getCreateTimeEnd() != null){ + reactiveQuery = reactiveQuery.lte(UserHandlingDeviceRequest::getCreateTime, request.getCreateTimeEnd()); + } + if(request.getModifyTimeStart() != null){ + reactiveQuery = reactiveQuery.gte(UserHandlingDeviceRequest::getModifyTime, request.getModifyTimeStart()); + } + if(request.getModifyTimeEnd() != null){ + reactiveQuery = reactiveQuery.lte(UserHandlingDeviceRequest::getModifyTime, request.getModifyTimeEnd()); + } + SortOrder sortOrder = null; + if(StringUtils.isNotEmpty(request.getOrder())){ + if(StringUtils.isNotEmpty(request.getSort()) && request.getSort().compareTo("0") == 0){ + sortOrder = SortOrder.desc(request.getOrder()); + }else{ + sortOrder = SortOrder.asc(request.getOrder()); + } + reactiveQuery = reactiveQuery.orderBy(sortOrder); + } + QueryParamEntity param = QueryParamEntity.of(reactiveQuery.getParam()); + param.setPageIndex(request.getCurrPage()); + param.setPageSize(request.getPageSize()); + param.setPaging(true); + param.setFirstPageIndex(1); + return queryPager(param); + } + + + + public Mono selectUserHandlingDeviceById(Long id){ + return createQuery() + .and("is_delete", 0) + .and("id", id) + .fetchOne(); + } + + + + public Mono insertUserHandlingDevice(UserHandlingDeviceEntity entity){ + entity.setId(null); + entity.setCreateTime(null); + entity.setModifyTime(null); + return insert(entity); + } + + + + public Mono updateUserHandlingDeviceById(UserHandlingDeviceEntity entity){ + ReactiveUpdate update = createUpdate() + .set(UserHandlingDeviceEntity::getModifyTime, new Date()); + if(StringUtils.isNotEmpty(entity.getCode())){ + update = update.set(UserHandlingDeviceEntity::getCode, entity.getCode()); + } + if(StringUtils.isNotEmpty(entity.getValue())){ + update = update.set(UserHandlingDeviceEntity::getValue, entity.getValue()); + } + if(StringUtils.isNotEmpty(entity.getType())){ + update = update.set(UserHandlingDeviceEntity::getType, entity.getType()); + } + if(entity.getMax() != null){ + update = update.set(UserHandlingDeviceEntity::getMax, entity.getMax()); + } + if(entity.getMin() != null){ + update = update.set(UserHandlingDeviceEntity::getMin, entity.getMin()); + } + if(entity.getStep() != null){ + update = update.set(UserHandlingDeviceEntity::getStep, entity.getStep()); + } + if(StringUtils.isNotEmpty(entity.getMatchingFields())){ + update = update.set(UserHandlingDeviceEntity::getMatchingFields, entity.getMatchingFields()); + } + if(StringUtils.isNotEmpty(entity.getCategoryCode())){ + update = update.set(UserHandlingDeviceEntity::getCategoryCode, entity.getCategoryCode()); + } + if(StringUtils.isNotEmpty(entity.getCategoryName())){ + update = update.set(UserHandlingDeviceEntity::getCategoryName, entity.getCategoryName()); + } + if(entity.getIsDelete() != null){ + update = update.set(UserHandlingDeviceEntity::getIsDelete, entity.getIsDelete()); + } + return update.where(UserHandlingDeviceEntity::getId, entity.getId()).and("is_delete", 0).execute(); + } + + + + public Mono updateCoverUserHandlingDeviceById(UserHandlingDeviceEntity entity){ + ReactiveUpdate update = createUpdate() + .set(UserHandlingDeviceEntity::getModifyTime, new Date()); + update = update.set(UserHandlingDeviceEntity::getCode, entity.getCode()); + update = update.set(UserHandlingDeviceEntity::getValue, entity.getValue()); + update = update.set(UserHandlingDeviceEntity::getType, entity.getType()); + update = update.set(UserHandlingDeviceEntity::getMax, entity.getMax()); + update = update.set(UserHandlingDeviceEntity::getMin, entity.getMin()); + update = update.set(UserHandlingDeviceEntity::getStep, entity.getStep()); + update = update.set(UserHandlingDeviceEntity::getMatchingFields, entity.getMatchingFields()); + update = update.set(UserHandlingDeviceEntity::getCategoryCode, entity.getCategoryCode()); + update = update.set(UserHandlingDeviceEntity::getCategoryName, entity.getCategoryName()); + update = update.set(UserHandlingDeviceEntity::getIsDelete, entity.getIsDelete()); + return update.where(UserHandlingDeviceEntity::getId, entity.getId()).and("is_delete", 0).execute(); + } + + + + public Mono deleteUserHandlingDeviceById(Long id){ + return createUpdate() + .set("is_delete", 1) + .set("modify_time", new Date()) + .where("id", id) + .execute(); + } + + + +} diff --git a/iot-common/iot-third/pom.xml b/iot-common/iot-third/pom.xml index 0c3c8a8..3ecd44b 100644 --- a/iot-common/iot-third/pom.xml +++ b/iot-common/iot-third/pom.xml @@ -15,6 +15,11 @@ UTF-8 + + com.tuya + tuya-spring-boot-starter + 1.3.2 + org.springframework.boot spring-boot-starter-test diff --git a/iot-common/iot-third/src/main/java/com/qiuguo/iot/third/query/TuyaQuery.java b/iot-common/iot-third/src/main/java/com/qiuguo/iot/third/query/TuyaQuery.java new file mode 100644 index 0000000..b72ccc7 --- /dev/null +++ b/iot-common/iot-third/src/main/java/com/qiuguo/iot/third/query/TuyaQuery.java @@ -0,0 +1,30 @@ +package com.qiuguo.iot.third.query; + +import lombok.Data; + +/** + * XXX + * + * @author weiyachao + * @since 2023/9/25 15:13 + */ +@Data +public class TuyaQuery { + + /** + * 设备ID + */ + private String deviceId; + + /** + * 指令表ID + */ + private Long userHandlingDeviceId; + + /** + * 控制值 + */ + private String value; + + +} diff --git a/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/service/TuyaDeviceConnector.java b/iot-common/iot-third/src/main/java/com/qiuguo/iot/third/service/TuyaDeviceConnector.java similarity index 92% rename from iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/service/TuyaDeviceConnector.java rename to iot-common/iot-third/src/main/java/com/qiuguo/iot/third/service/TuyaDeviceConnector.java index 7f90242..04774bc 100644 --- a/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/service/TuyaDeviceConnector.java +++ b/iot-common/iot-third/src/main/java/com/qiuguo/iot/third/service/TuyaDeviceConnector.java @@ -1,8 +1,7 @@ -package com.qiuguo.iot.user.api.service; +package com.qiuguo.iot.third.service; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.google.gson.JsonArray; import com.tuya.connector.api.annotations.Body; import com.tuya.connector.api.annotations.DELETE; import com.tuya.connector.api.annotations.GET; @@ -37,7 +36,7 @@ public interface TuyaDeviceConnector { // 控制设备动作 @POST("/v1.0/iot-03/devices/{device_id}/commands") - Object controlDevice(@Path("device_id") String deviceId, @Body JSONObject commands); + Boolean controlDevice(@Path("device_id") String deviceId, @Body JSONObject commands); // 创建空间 @POST("/v2.0/cloud/space/creation") diff --git a/iot-common/iot-third/src/main/java/com/qiuguo/iot/third/service/TuyaDeviceService.java b/iot-common/iot-third/src/main/java/com/qiuguo/iot/third/service/TuyaDeviceService.java new file mode 100644 index 0000000..4490924 --- /dev/null +++ b/iot-common/iot-third/src/main/java/com/qiuguo/iot/third/service/TuyaDeviceService.java @@ -0,0 +1,85 @@ +package com.qiuguo.iot.third.service; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.qiuguo.iot.data.entity.user.UserHandlingDeviceEntity; +import com.qiuguo.iot.data.service.user.UserHandlingDeviceService; +import com.qiuguo.iot.third.query.TuyaQuery; +import java.util.Arrays; +import java.util.Objects; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; +import reactor.core.publisher.Mono; + +/** + * XXX + * + * @author weiyachao + * @since 2023/9/19 15:13 + */ +@Service +public class TuyaDeviceService { + + @Autowired + private TuyaDeviceConnector tuyaDeviceConnector; + + @Autowired + private UserHandlingDeviceService userHandlingDeviceService; + + // @Autowired + // private + + /** + * 查询设备详情 + */ + public Mono getDeviceInfo(String deviceId) { + return Mono.just(tuyaDeviceConnector.getByid(deviceId)); + } + + /** + * 获取设备分类code + */ + public Mono getCateCode(String deviceId) { + JSONArray byid = tuyaDeviceConnector.getByid(deviceId); + if (ObjectUtils.isEmpty(byid)) { + return Mono.empty(); + } + return Mono.just(byid.getJSONObject(0).getString("category")); + } + + /** + * 控制设备 + */ + public Mono controlDevice(TuyaQuery query) { + Mono userHandlingDeviceEntityMono = userHandlingDeviceService.selectUserHandlingDeviceById( + query.getUserHandlingDeviceId()); + return userHandlingDeviceEntityMono.flatMap(data -> { + JSONArray jsonArray = tuyaDeviceConnector.getByid(query.getDeviceId()); + if (ObjectUtils.isEmpty(jsonArray)) { + return Mono.just(false); + } + JSONObject deviceInfo = jsonArray.getJSONObject(0); + if (Objects.equals(deviceInfo.getBoolean("is_online"), false) && !Objects.equals(data.getMatchingFields(), + "开关")) { + return Mono.just(false); + } + JSONObject commands = new JSONObject(); + JSONObject jsonObject = new JSONObject(); + String type = data.getType(); + jsonObject.put("code", data.getCode()); + if (type.equalsIgnoreCase("boolean")) { + jsonObject.put("value", data.getValue()); + } else if (type.equalsIgnoreCase("Integer")) { + jsonObject.put("value", Integer.parseInt(data.getValue())); + } else if (type.equalsIgnoreCase("Enum")) { + jsonObject.put("value", data.getValue()); + } else { + jsonObject.put("value", data.getValue()); + } + commands.put("commands", Arrays.asList(jsonObject)); + Boolean aBoolean = tuyaDeviceConnector.controlDevice(query.getDeviceId(), commands); + return Mono.just(aBoolean); + }); + } +} diff --git a/iot-gateway/src/main/java/com/qiuguo/iot/gateway/config/GatewayConfiguration.java b/iot-gateway/src/main/java/com/qiuguo/iot/gateway/config/GatewayConfiguration.java new file mode 100644 index 0000000..64b41ff --- /dev/null +++ b/iot-gateway/src/main/java/com/qiuguo/iot/gateway/config/GatewayConfiguration.java @@ -0,0 +1,16 @@ +package com.qiuguo.iot.gateway.config; + +import org.springframework.context.annotation.Configuration; + +/** + * XXX + * + * @author weiyachao + * @since 2023/9/22 17:35 + */ +@Configuration +public class GatewayConfiguration { + + + +} diff --git a/iot-gateway/src/main/resources/bootstrap.yml b/iot-gateway/src/main/resources/bootstrap.yml index ec17f21..56c6651 100644 --- a/iot-gateway/src/main/resources/bootstrap.yml +++ b/iot-gateway/src/main/resources/bootstrap.yml @@ -1,6 +1,9 @@ server: - port: 8080 + port: 8081 spring: + profiles: + # 环境配置 + active: dev application: name: qiuguo-iot-gateway diff --git a/iot-modules/iot-box-user-api/pom.xml b/iot-modules/iot-box-user-api/pom.xml index 5e20a2a..4651eeb 100644 --- a/iot-modules/iot-box-user-api/pom.xml +++ b/iot-modules/iot-box-user-api/pom.xml @@ -24,9 +24,9 @@ test - com.tuya - tuya-spring-boot-starter - 1.3.2 + com.qiuguo.iot + iot-third + 0.0.1-SNAPSHOT @@ -35,7 +35,10 @@ - + + org.springframework.boot + spring-boot-starter-amqp + diff --git a/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/IotBoxUserApiApplication.java b/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/IotBoxUserApiApplication.java index 02e52b7..5d1be16 100644 --- a/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/IotBoxUserApiApplication.java +++ b/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/IotBoxUserApiApplication.java @@ -7,9 +7,9 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.context.annotation.EnableAspectJAutoProxy; -@SpringBootApplication(scanBasePackages = {"com.qiuguo.iot.user.api", "com.qiuguo.iot.data.service"}) +@SpringBootApplication(scanBasePackages = {"com.qiuguo.iot.user.api", "com.qiuguo.iot.data.service","com.qiuguo.iot.third.service"}) @EnableEasyormRepository(value = "com.qiuguo.iot.data.entity.*") -@ConnectorScan(basePackages = "com.qiuguo.iot.user.api.service") +@ConnectorScan(basePackages = "com.qiuguo.iot.third.service") @EnableAspectJAutoProxy @EnableDiscoveryClient public class IotBoxUserApiApplication { diff --git a/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/controller/RoomAdminController.java b/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/controller/RoomAdminController.java index f30969a..844884e 100644 --- a/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/controller/RoomAdminController.java +++ b/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/controller/RoomAdminController.java @@ -1,11 +1,10 @@ package com.qiuguo.iot.user.api.controller; import cn.hutool.core.util.ObjectUtil; -import com.alibaba.fastjson.JSONObject; import com.qiuguo.iot.data.entity.user.UserRoomEntity; import com.qiuguo.iot.data.request.user.UserRoomRequest; import com.qiuguo.iot.data.service.user.UserRoomService; -import com.qiuguo.iot.user.api.service.TuyaDeviceConnector; +import com.qiuguo.iot.user.api.rabbit.MyProducer; import lombok.extern.slf4j.Slf4j; import org.hswebframework.web.api.crud.entity.PagerResult; import org.springframework.web.bind.annotation.*; @@ -26,44 +25,28 @@ public class RoomAdminController { private UserRoomService roomService; @Resource - private TuyaDeviceConnector deviceConnector; + private MyProducer myProducer; //新增 @PostMapping("/save/room") - public Mono roomSave(@RequestBody JSONObject jsonObject) { - if (ObjectUtil.isNull(jsonObject)){ - return null; - } - UserRoomEntity room = jsonObject.toJavaObject(UserRoomEntity.class); - if (ObjectUtil.isNull(room)){ - //todo:解析json为空 - } + public Mono roomSave(@RequestBody UserRoomEntity room) { room.setCreateTime(new Date()); room.setIsDelete(1); room.setModifyTime(new Date()); - roomService.insertUserRoom(room); - return Mono.empty(); + return roomService.insertUserRoom(room).thenEmpty(Mono.empty()); } //更新 @PostMapping("/edit/room") - public Mono editRoom(@RequestBody JSONObject jsonObject) { - if (ObjectUtil.isNull(jsonObject)){ - return null; - } - UserRoomEntity room = jsonObject.toJavaObject(UserRoomEntity.class); - if (ObjectUtil.isNull(room)){ - //todo:解析json为空 - } - roomService.updateUserRoomById(room); - return Mono.empty(); + public Mono editRoom(@RequestBody UserRoomEntity room) { + return roomService.updateUserRoomById(room).map( integer -> integer); } //删除 @GetMapping("/del/room") public Mono delFamily(@RequestParam Long id) { if (ObjectUtil.isNull(id)){ - //todo:为空 + throw new RuntimeException("传入id为空"); } return roomService.deleteUserRoomById(id); } @@ -72,12 +55,11 @@ public class RoomAdminController { @PostMapping("/get/room") public Mono> getFamily(@RequestBody UserRoomRequest resp) { return roomService.selectUserRoomsByRequest(resp); - /** - * 判空 - * 查询对应设备id - * 调用TuyaDeviceConnector.getByid接口 - * 返回 - */ - //return Mono.just(aa); + } + + @GetMapping("/text") + public String text() { + myProducer.sendMessage("hello world"); + return "hello world"; } } diff --git a/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/controller/device/DeviceController.java b/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/controller/device/DeviceController.java index 29b6e2d..9e3da75 100644 --- a/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/controller/device/DeviceController.java +++ b/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/controller/device/DeviceController.java @@ -10,8 +10,8 @@ import com.qiuguo.iot.data.entity.device.DeviceInfoEntity; import com.qiuguo.iot.data.request.device.DeviceInfoRequest; import com.qiuguo.iot.data.service.device.DeviceBatchService; import com.qiuguo.iot.data.service.device.DeviceInfoService; +import com.qiuguo.iot.third.service.TuyaDeviceConnector; import com.qiuguo.iot.user.api.resp.device.DeviceInitResp; -import com.qiuguo.iot.user.api.service.TuyaDeviceConnector; import lombok.extern.slf4j.Slf4j; import org.hswebframework.web.exception.BusinessException; import org.springframework.beans.factory.annotation.Autowired; diff --git a/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/rabbit/MyConsumer.java b/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/rabbit/MyConsumer.java new file mode 100644 index 0000000..30d1398 --- /dev/null +++ b/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/rabbit/MyConsumer.java @@ -0,0 +1,14 @@ +package com.qiuguo.iot.user.api.rabbit; + +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +@Component +public class MyConsumer { + + @RabbitListener(queues = "my-queue") + public void receiveMessage(String message) { + // 处理接收到的消息 + System.out.println("Received message: " + message); + } +} diff --git a/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/rabbit/MyProducer.java b/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/rabbit/MyProducer.java new file mode 100644 index 0000000..5e306a2 --- /dev/null +++ b/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/rabbit/MyProducer.java @@ -0,0 +1,17 @@ +package com.qiuguo.iot.user.api.rabbit; + +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class MyProducer { + + @Autowired + private RabbitTemplate rabbitTemplate; + + public void sendMessage(String message) { + //发送消息 + rabbitTemplate.convertAndSend("my-queue", message); + } +} diff --git a/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/rabbit/RabbitMQConfig.java b/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/rabbit/RabbitMQConfig.java new file mode 100644 index 0000000..1851652 --- /dev/null +++ b/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/rabbit/RabbitMQConfig.java @@ -0,0 +1,14 @@ +package com.qiuguo.iot.user.api.rabbit; + +import org.springframework.amqp.core.Queue; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class RabbitMQConfig { + + @Bean + public Queue myQueue() { + return new Queue("my-queue"); + } +} diff --git a/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/service/TuyaDeviceService.java b/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/service/TuyaDeviceService.java deleted file mode 100644 index 48f020f..0000000 --- a/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/service/TuyaDeviceService.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.qiuguo.iot.user.api.service; - -import org.springframework.stereotype.Service; - -/** - * XXX - * - * @author weiyachao - * @since 2023/9/19 15:13 - */ -@Service -public class TuyaDeviceService { - - - - -} diff --git a/iot-modules/iot-box-user-api/src/main/resources/bootstrap-dev.yml b/iot-modules/iot-box-user-api/src/main/resources/bootstrap-dev.yml index f97c559..69b834f 100644 --- a/iot-modules/iot-box-user-api/src/main/resources/bootstrap-dev.yml +++ b/iot-modules/iot-box-user-api/src/main/resources/bootstrap-dev.yml @@ -1,4 +1,10 @@ spring: + rabbitmq: + host: 192.168.8.146 + port: 31043 + username: admin + password: 123456 + cloud: # config: # # 如果本地配置优先级高,那么 override-none 设置为 true,包括系统环境变量、本地配置文件等配置 diff --git a/iot-modules/iot-box-user-api/src/test/java/UserTest.java b/iot-modules/iot-box-user-api/src/test/java/UserTest.java new file mode 100644 index 0000000..6493d7f --- /dev/null +++ b/iot-modules/iot-box-user-api/src/test/java/UserTest.java @@ -0,0 +1,118 @@ +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.qiuguo.iot.third.service.TuyaDeviceConnector; +import com.qiuguo.iot.user.api.IotBoxUserApiApplication; +import java.util.Arrays; +import java.util.Objects; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +/** + * XXX + * + * @author weiyachao + * @since 2023/9/5 16:03 + */ +@SpringBootTest(classes = IotBoxUserApiApplication.class) +@Slf4j +public class UserTest { + + public String deviceId = "6c41ec425b5af5b81bxgas"; + + public String spaceId = "163208675"; + + @Autowired + private TuyaDeviceConnector tuyaDeviceConnector; + + @Test + public void 查询所有分类() { + String key = "dj"; + JSONArray aa = tuyaDeviceConnector.categories(); + for (Object o : aa) { + JSONObject jsonObject = (JSONObject) o; + if (Objects.equals(jsonObject.getString("code"), key)) { + System.out.println(jsonObject.getString("name")); + break; + } + } + } + + @Test + public void 转移设备() { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("space_id", spaceId); + Boolean aBoolean = tuyaDeviceConnector.transferDevice(deviceId, jsonObject); + System.out.println(aBoolean); + } + + @Test + public void 获取设备支持的指令集() { + Object functions = tuyaDeviceConnector.getFunctions(deviceId); + System.out.println(functions); + } + + @Test + public void 修改空间() { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("name", "testname"); + Boolean jsonObject1 = tuyaDeviceConnector.updateSpace(spaceId, jsonObject); + System.out.println(jsonObject1); + } + + @Test + public void 查询空间() { + //40001900 + JSONObject spaceInfo = tuyaDeviceConnector.getSpaceInfo("163208675"); + System.out.println(spaceInfo); + } + + @Test + public void 删除空间() { + //40001900 + Boolean jsonObject = tuyaDeviceConnector.deleteSpace("163258893"); + System.out.println(jsonObject); + } + + @Test + public void 创建空间() { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("name", "space1_2"); + jsonObject.put("description", "space1_2的空间描述"); + Long jsonObject1 = tuyaDeviceConnector.creatSpace(jsonObject); + System.out.println(jsonObject1); + } + + @Test + public void 控制设备动作() { + JSONObject commands = new JSONObject(); + JSONObject jsonObject = new JSONObject(); + jsonObject.put("code", "switch_led"); + jsonObject.put("value", false); + JSONObject js2 = new JSONObject(); + js2.put("code", "work_mode"); + js2.put("value", "colour"); + JSONObject js3 = new JSONObject(); + js3.put("code", "bright_value_v2"); + js3.put("value", 10); + commands.put("commands", Arrays.asList( jsonObject)); + + Object controlDevice = tuyaDeviceConnector.controlDevice(deviceId,commands); + System.out.println(controlDevice); + + } + + @Test + public void 查询空间下设备列表() { + JSONArray devicesBySpaceIds = tuyaDeviceConnector.getDevicesBySpaceIds("163257138", 20); + System.out.println(devicesBySpaceIds); + } + + @Test + public void 查询设备信息() { + JSONArray byid = tuyaDeviceConnector.getByid(deviceId); + System.out.println(byid); + } + +} diff --git a/iot-modules/iot-customer-http-api/src/test/tmp/DeviceInfoController.java b/iot-modules/iot-customer-http-api/src/test/tmp/DeviceInfoController.java deleted file mode 100644 index 35a6b61..0000000 --- a/iot-modules/iot-customer-http-api/src/test/tmp/DeviceInfoController.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.admin.service.impl; - - - -import org.apache.commons.lang3.StringUtils; -import java.util.Date; -/** -*

-* 设备信息Controller类 -*

-* -* @author wulin -* @since 2023-09-21 -*/ - -@RestController -@Slf4j -@RequestMapping("/DeviceInfo") -public class DeviceInfoController{ - - - @Autowired - private DeviceInfoService deviceInfoService; - @PostMapping("/info") - public Mono selectDeviceInfoByRequest(@RequestBody DeviceInfoRequest request){ - return deviceInfoService.selectDeviceInfoByRequest(request).map(d -> {return new DeviceInfoResp(d);}); - } - - - - @PostMapping("/list") - public Mono> selectDeviceInfosByRequest(@RequestBody DeviceInfoRequest request){ - return deviceInfoService.selectDeviceInfosByRequest(request).map(d -> { - PagerResult result = new PagerResult<>(); - result.setPageIndex(d.getPageIndex()); - result.setPageSize(d.getPageSize()); - result.setTotal(d.getTotal()); - List ds = d.getData().stream().map(new Function() { - @Override - public DeviceInfoResp apply(DeviceInfoEntity entity) { - return new DeviceInfoResp(entity); - } - } - - ).collect(Collectors.toList()); - result.setData(ds); - return result; - }); - } - - - - @GetMapping("/id") - public Mono selectDeviceInfoById(@RequestParam Long id){ - return deviceInfoService.selectDeviceInfoById(id).map(d -> {return new DeviceInfoResp(d);}); - } - - - - @PostMapping("/save") - public Mono insertDeviceInfo(@RequestBody DeviceInfoEntity entity){ - return deviceInfoService.insertDeviceInfo(entity); - } - - - - @PostMapping("/update") - public Mono updateDeviceInfoById(@RequestBody DeviceInfoEntity entity){ - return deviceInfoService.updateDeviceInfoById(entity); - } - - - - @PostMapping("/updateCover") - public Mono updateCoverDeviceInfoById(@RequestBody DeviceInfoEntity entity){ - return deviceInfoService.updateCoverDeviceInfoById(entity); - } - - - - @PostMapping("/delete") - public Mono deleteDeviceInfoById(@RequestParam Long id){ - return deviceInfoService.deleteDeviceInfoById(id); - } - - - -} diff --git a/iot-modules/iot-customer-http-api/src/test/tmp/DeviceInfoEntity.java b/iot-modules/iot-customer-http-api/src/test/tmp/DeviceInfoEntity.java deleted file mode 100644 index 0da5e5d..0000000 --- a/iot-modules/iot-customer-http-api/src/test/tmp/DeviceInfoEntity.java +++ /dev/null @@ -1,108 +0,0 @@ -package com.qiuguo.iot.data.entity; -import org.hswebframework.ezorm.rdb.mapping.annotation.Comment; -import org.hswebframework.web.crud.annotation.EnableEntityEvent; -import org.hswebframework.web.api.crud.entity.GenericEntity; -import javax.persistence.Column; -import javax.persistence.Table;import lombok.Data; -import java.util.Date; -/** -*

-*

*设备信息表 -* @author wulin -* @since 2023-09-21 -*/ - -@Data -@Comment("设备信息表") -@Table(name = "device_info") -@EnableEntityEvent -public class DeviceInfoEntity extends GenericEntity { - @Comment("id") - @Column(name = "id", length = 11, nullable = false, unique = true) - private Long id; - - @Comment("是否删除:0 否 1 删除") - @Column(name = "is_delete", nullable = false) - private Integer isDelete; - - @Comment("创建时间") - @Column(name = "create_time") - private Date createTime; - - @Comment("修改时间") - @Column(name = "modify_time") - private Date modifyTime; - - @Comment("批次号") - @Column(name = "batch_id", nullable = false) - private Long batchId; - - @Comment("设备名称") - @Column(name = "name", length = 100, nullable = false) - private String name; - - @Comment("设备序列号") - @Column(name = "sn", length = 100, nullable = false) - private String sn; - - @Comment("设备密钥,用于验签") - @Column(name = "key", length = 100) - private String key; - - @Comment("蓝牙地址") - @Column(name = "bt_mac", length = 50) - private String btMac; - - @Comment("wifi地址") - @Column(name = "wifi_mac", length = 50) - private String wifiMac; - - @Comment("当前固件版本") - @Column(name = "firmware_version", length = 10) - private String firmwareVersion; - - @Comment("设备类型:0 果Box 1智能插座 2智能大灯 3智能窗帘驱动 4智能窗户关闭 5智能台灯 6智能桌子 7智能椅子 8智能风扇 9智能空调(遥控器) 10智能冰箱 11智能洗碗机 12智能电热水器 13温度传感器 14空气质量传感器 15光线传感器 16雨量传感器 17闭门器") - @Column(name = "device_type", nullable = false) - private Integer deviceType; - - @Comment("设备状态:0:开启,1待机、关闭(在线)") - @Column(name = "status") - private Integer status; - - @Comment("是否在线 0:不在线 1在线") - @Column(name = "on_line") - private Integer onLine; - - @Comment("最后一次上线时间") - @Column(name = "last_on_line_time") - private Date lastOnLineTime; - - @Comment("通讯协议类型:0:WebSocket 1:MQTT 2:TCP 3:UDP 4:HTTP") - @Column(name = "protocol_type", nullable = false) - private Integer protocolType; - - @Comment("运行模式id") - @Column(name = "operating_mode_id", nullable = false) - private Long operatingModeId; - - @Comment("升级模式:0 无模式 1 自动升级") - @Column(name = "ota_type", nullable = false) - private Integer otaType; - - @Comment("自动升级开始时间段") - @Column(name = "ota_start_time") - private Date otaStartTime; - - @Comment("自动升级结束时间段") - @Column(name = "ota_end_time") - private Date otaEndTime; - - @Comment("生产时间") - @Column(name = "factory_time") - private Date factoryTime; - - @Comment("销售时间") - @Column(name = "sale_time") - private Date saleTime; - -} \ No newline at end of file diff --git a/iot-modules/iot-customer-http-api/src/test/tmp/DeviceInfoRequest.java b/iot-modules/iot-customer-http-api/src/test/tmp/DeviceInfoRequest.java deleted file mode 100644 index 523d009..0000000 --- a/iot-modules/iot-customer-http-api/src/test/tmp/DeviceInfoRequest.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.qiuguo.iot.data.entity; -import lombok.Data; -import java.util.Date; -/** -*

-*设备信息请求类 -* @author wulin -* @since 2023-09-21 -*/ - - -@Data -public class DeviceInfoRequest implements java.io.Serializable { - - private int currPage = 1; - private int pageSize = 10; - private String sort; - private String order; - // - private Long id; - //是否删除:0 否 1 删除 - private Integer isDelete; - //创建时间 - private Date createTime; - //创建时间搜索开始 - - private Date createTimeStart; - - //创建时间搜索结束 - private Date createTimeEnd; - //修改时间 - private Date modifyTime; - //修改时间搜索开始 - - private Date modifyTimeStart; - - //修改时间搜索结束 - private Date modifyTimeEnd; - //批次号 - private Long batchId; - //设备名称 - private String name; - //设备序列号 - private String sn; - //设备密钥,用于验签 - private String key; - //蓝牙地址 - private String btMac; - //wifi地址 - private String wifiMac; - //当前固件版本 - private String firmwareVersion; - //设备类型:0 果Box 1智能插座 2智能大灯 3智能窗帘驱动 4智能窗户关闭 5智能台灯 6智能桌子 7智能椅子 8智能风扇 9智能空调(遥控器) 10智能冰箱 11智能洗碗机 12智能电热水器 13温度传感器 14空气质量传感器 15光线传感器 16雨量传感器 17闭门器 - private Integer deviceType; - //设备状态:0:开启,1待机、关闭(在线) - private Integer status; - //是否在线 0:不在线 1在线 - private Integer onLine; - //最后一次上线时间 - private Date lastOnLineTime; - //最后一次上线时间搜索开始 - - private Date lastOnLineTimeStart; - - //最后一次上线时间搜索结束 - private Date lastOnLineTimeEnd; - //通讯协议类型:0:WebSocket 1:MQTT 2:TCP 3:UDP 4:HTTP - private Integer protocolType; - //运行模式id - private Long operatingModeId; - //升级模式:0 无模式 1 自动升级 - private Integer otaType; - //自动升级开始时间段 - private Date otaStartTime; - //自动升级开始时间段搜索开始 - - private Date otaStartTimeStart; - - //自动升级开始时间段搜索结束 - private Date otaStartTimeEnd; - //自动升级结束时间段 - private Date otaEndTime; - //自动升级结束时间段搜索开始 - - private Date otaEndTimeStart; - - //自动升级结束时间段搜索结束 - private Date otaEndTimeEnd; - //生产时间 - private Date factoryTime; - //生产时间搜索开始 - - private Date factoryTimeStart; - - //生产时间搜索结束 - private Date factoryTimeEnd; - //销售时间 - private Date saleTime; - //销售时间搜索开始 - - private Date saleTimeStart; - - //销售时间搜索结束 - private Date saleTimeEnd; -} \ No newline at end of file diff --git a/iot-modules/iot-customer-http-api/src/test/tmp/DeviceInfoResp.java b/iot-modules/iot-customer-http-api/src/test/tmp/DeviceInfoResp.java deleted file mode 100644 index 91064ad..0000000 --- a/iot-modules/iot-customer-http-api/src/test/tmp/DeviceInfoResp.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.qiuguo.iot.data.entity; -import lombok.Data; -import java.util.Date; -/** -*

-*

*设备信息返回类 -* @author wulin -* @since 2023-09-21 -*/ - -@Data -public class DeviceInfoResp { - public DeviceInfoResp(){ - } - public DeviceInfoResp(DeviceInfoEntity entity){ - id = entity.getId(); - createTime = entity.getCreateTime(); - modifyTime = entity.getModifyTime(); - batchId = entity.getBatchId(); - name = entity.getName(); - sn = entity.getSn(); - key = entity.getKey(); - btMac = entity.getBtMac(); - wifiMac = entity.getWifiMac(); - firmwareVersion = entity.getFirmwareVersion(); - deviceType = entity.getDeviceType(); - status = entity.getStatus(); - onLine = entity.getOnLine(); - lastOnLineTime = entity.getLastOnLineTime(); - protocolType = entity.getProtocolType(); - operatingModeId = entity.getOperatingModeId(); - otaType = entity.getOtaType(); - otaStartTime = entity.getOtaStartTime(); - otaEndTime = entity.getOtaEndTime(); - factoryTime = entity.getFactoryTime(); - saleTime = entity.getSaleTime(); - } - - // - private Long id; - //创建时间 - private Date createTime; - //修改时间 - private Date modifyTime; - //批次号 - private Long batchId; - //设备名称 - private String name; - //设备序列号 - private String sn; - //设备密钥,用于验签 - private String key; - //蓝牙地址 - private String btMac; - //wifi地址 - private String wifiMac; - //当前固件版本 - private String firmwareVersion; - //设备类型:0 果Box 1智能插座 2智能大灯 3智能窗帘驱动 4智能窗户关闭 5智能台灯 6智能桌子 7智能椅子 8智能风扇 9智能空调(遥控器) 10智能冰箱 11智能洗碗机 12智能电热水器 13温度传感器 14空气质量传感器 15光线传感器 16雨量传感器 17闭门器 - private Integer deviceType; - //设备状态:0:开启,1待机、关闭(在线) - private Integer status; - //是否在线 0:不在线 1在线 - private Integer onLine; - //最后一次上线时间 - private Date lastOnLineTime; - //通讯协议类型:0:WebSocket 1:MQTT 2:TCP 3:UDP 4:HTTP - private Integer protocolType; - //运行模式id - private Long operatingModeId; - //升级模式:0 无模式 1 自动升级 - private Integer otaType; - //自动升级开始时间段 - private Date otaStartTime; - //自动升级结束时间段 - private Date otaEndTime; - //生产时间 - private Date factoryTime; - //销售时间 - private Date saleTime; -} \ No newline at end of file diff --git a/iot-modules/iot-customer-http-api/src/test/tmp/DeviceInfoService.java b/iot-modules/iot-customer-http-api/src/test/tmp/DeviceInfoService.java deleted file mode 100644 index ead0850..0000000 --- a/iot-modules/iot-customer-http-api/src/test/tmp/DeviceInfoService.java +++ /dev/null @@ -1,333 +0,0 @@ -package com.admin.service.impl; - - - -import org.apache.commons.lang3.StringUtils; -import java.util.Date; -/** -*

-* 设备信息服务类 -*

-* -* @author wulin -* @since 2023-09-21 -*/ - -@Service -@Slf4j -public class DeviceInfoService extends GenericReactiveCrudService { - - - public Mono selectDeviceInfoByRequest(DeviceInfoRequest request){ - ReactiveQuery reactiveQuery = createQuery(); - reactiveQuery = reactiveQuery.and("is_delete", 0); - if(request.getId() != null){ - reactiveQuery = reactiveQuery.and(DeviceInfoRequest::getId, request.getId()); - } - if(request.getIsDelete() != null){ - reactiveQuery = reactiveQuery.and(DeviceInfoRequest::getIsDelete, request.getIsDelete()); - } - if(request.getCreateTime() != null){ - reactiveQuery = reactiveQuery.and(DeviceInfoRequest::getCreateTime, request.getCreateTime()); - } - if(request.getModifyTime() != null){ - reactiveQuery = reactiveQuery.and(DeviceInfoRequest::getModifyTime, request.getModifyTime()); - } - if(request.getBatchId() != null){ - reactiveQuery = reactiveQuery.and(DeviceInfoRequest::getBatchId, request.getBatchId()); - } - if(StringUtils.isNotEmpty(request.getName())){ - reactiveQuery = reactiveQuery.and(DeviceInfoRequest::getName, request.getName()); - } - if(StringUtils.isNotEmpty(request.getSn())){ - reactiveQuery = reactiveQuery.and(DeviceInfoRequest::getSn, request.getSn()); - } - if(StringUtils.isNotEmpty(request.getKey())){ - reactiveQuery = reactiveQuery.and(DeviceInfoRequest::getKey, request.getKey()); - } - if(StringUtils.isNotEmpty(request.getBtMac())){ - reactiveQuery = reactiveQuery.and(DeviceInfoRequest::getBtMac, request.getBtMac()); - } - if(StringUtils.isNotEmpty(request.getWifiMac())){ - reactiveQuery = reactiveQuery.and(DeviceInfoRequest::getWifiMac, request.getWifiMac()); - } - if(StringUtils.isNotEmpty(request.getFirmwareVersion())){ - reactiveQuery = reactiveQuery.and(DeviceInfoRequest::getFirmwareVersion, request.getFirmwareVersion()); - } - if(request.getDeviceType() != null){ - reactiveQuery = reactiveQuery.and(DeviceInfoRequest::getDeviceType, request.getDeviceType()); - } - if(request.getStatus() != null){ - reactiveQuery = reactiveQuery.and(DeviceInfoRequest::getStatus, request.getStatus()); - } - if(request.getOnLine() != null){ - reactiveQuery = reactiveQuery.and(DeviceInfoRequest::getOnLine, request.getOnLine()); - } - if(request.getLastOnLineTime() != null){ - reactiveQuery = reactiveQuery.and(DeviceInfoRequest::getLastOnLineTime, request.getLastOnLineTime()); - } - if(request.getProtocolType() != null){ - reactiveQuery = reactiveQuery.and(DeviceInfoRequest::getProtocolType, request.getProtocolType()); - } - if(request.getOperatingModeId() != null){ - reactiveQuery = reactiveQuery.and(DeviceInfoRequest::getOperatingModeId, request.getOperatingModeId()); - } - if(request.getOtaType() != null){ - reactiveQuery = reactiveQuery.and(DeviceInfoRequest::getOtaType, request.getOtaType()); - } - if(request.getOtaStartTime() != null){ - reactiveQuery = reactiveQuery.and(DeviceInfoRequest::getOtaStartTime, request.getOtaStartTime()); - } - if(request.getOtaEndTime() != null){ - reactiveQuery = reactiveQuery.and(DeviceInfoRequest::getOtaEndTime, request.getOtaEndTime()); - } - if(request.getFactoryTime() != null){ - reactiveQuery = reactiveQuery.and(DeviceInfoRequest::getFactoryTime, request.getFactoryTime()); - } - if(request.getSaleTime() != null){ - reactiveQuery = reactiveQuery.and(DeviceInfoRequest::getSaleTime, request.getSaleTime()); - } - SortOrder sortOrder = null; - if(StringUtils.isNotEmpty(request.getOrder())){ - if(StringUtils.isNotEmpty(request.getSort()) && request.getSort().compareTo("0") == 0){ - sortOrder = SortOrder.desc(request.getOrder()); - }else{ - sortOrder = SortOrder.asc(request.getOrder()); - } - reactiveQuery = reactiveQuery.orderBy(sortOrder); - } - return reactiveQuery.fetchOne(); - } - - - - public Mono selectDeviceInfosByRequest(DeviceInfoRequest request){ - ReactiveQuery reactiveQuery = createQuery(); - reactiveQuery = reactiveQuery.and("is_delete", 0); - if(request.getId() != null){ - reactiveQuery = reactiveQuery.and(DeviceInfoRequest::getId, request.getId()); - } - if(request.getIsDelete() != null){ - reactiveQuery = reactiveQuery.and(DeviceInfoRequest::getIsDelete, request.getIsDelete()); - } - if(request.getCreateTimeStart() != null){ - reactiveQuery = reactiveQuery.gte(DeviceInfoRequest::getCreateTime, request.getCreateTimeStart()); - } - if(request.getCreateTimeEnd() != null){ - reactiveQuery = reactiveQuery.lte(DeviceInfoRequest::getCreateTime, request.getCreateTimeEnd()); - } - if(request.getModifyTimeStart() != null){ - reactiveQuery = reactiveQuery.gte(DeviceInfoRequest::getModifyTime, request.getModifyTimeStart()); - } - if(request.getModifyTimeEnd() != null){ - reactiveQuery = reactiveQuery.lte(DeviceInfoRequest::getModifyTime, request.getModifyTimeEnd()); - } - if(request.getBatchId() != null){ - reactiveQuery = reactiveQuery.and(DeviceInfoRequest::getBatchId, request.getBatchId()); - } - if(StringUtils.isNotEmpty(request.getName())){ - reactiveQuery = reactiveQuery.$like$(DeviceInfoRequest::getName, request.getName()); - } - if(StringUtils.isNotEmpty(request.getSn())){ - reactiveQuery = reactiveQuery.$like$(DeviceInfoRequest::getSn, request.getSn()); - } - if(StringUtils.isNotEmpty(request.getKey())){ - reactiveQuery = reactiveQuery.$like$(DeviceInfoRequest::getKey, request.getKey()); - } - if(StringUtils.isNotEmpty(request.getBtMac())){ - reactiveQuery = reactiveQuery.$like$(DeviceInfoRequest::getBtMac, request.getBtMac()); - } - if(StringUtils.isNotEmpty(request.getWifiMac())){ - reactiveQuery = reactiveQuery.$like$(DeviceInfoRequest::getWifiMac, request.getWifiMac()); - } - if(StringUtils.isNotEmpty(request.getFirmwareVersion())){ - reactiveQuery = reactiveQuery.$like$(DeviceInfoRequest::getFirmwareVersion, request.getFirmwareVersion()); - } - if(request.getDeviceType() != null){ - reactiveQuery = reactiveQuery.and(DeviceInfoRequest::getDeviceType, request.getDeviceType()); - } - if(request.getStatus() != null){ - reactiveQuery = reactiveQuery.and(DeviceInfoRequest::getStatus, request.getStatus()); - } - if(request.getOnLine() != null){ - reactiveQuery = reactiveQuery.and(DeviceInfoRequest::getOnLine, request.getOnLine()); - } - if(request.getLastOnLineTimeStart() != null){ - reactiveQuery = reactiveQuery.gte(DeviceInfoRequest::getLastOnLineTime, request.getLastOnLineTimeStart()); - } - if(request.getLastOnLineTimeEnd() != null){ - reactiveQuery = reactiveQuery.lte(DeviceInfoRequest::getLastOnLineTime, request.getLastOnLineTimeEnd()); - } - if(request.getProtocolType() != null){ - reactiveQuery = reactiveQuery.and(DeviceInfoRequest::getProtocolType, request.getProtocolType()); - } - if(request.getOperatingModeId() != null){ - reactiveQuery = reactiveQuery.and(DeviceInfoRequest::getOperatingModeId, request.getOperatingModeId()); - } - if(request.getOtaType() != null){ - reactiveQuery = reactiveQuery.and(DeviceInfoRequest::getOtaType, request.getOtaType()); - } - if(request.getOtaStartTimeStart() != null){ - reactiveQuery = reactiveQuery.gte(DeviceInfoRequest::getOtaStartTime, request.getOtaStartTimeStart()); - } - if(request.getOtaStartTimeEnd() != null){ - reactiveQuery = reactiveQuery.lte(DeviceInfoRequest::getOtaStartTime, request.getOtaStartTimeEnd()); - } - if(request.getOtaEndTimeStart() != null){ - reactiveQuery = reactiveQuery.gte(DeviceInfoRequest::getOtaEndTime, request.getOtaEndTimeStart()); - } - if(request.getOtaEndTimeEnd() != null){ - reactiveQuery = reactiveQuery.lte(DeviceInfoRequest::getOtaEndTime, request.getOtaEndTimeEnd()); - } - if(request.getFactoryTimeStart() != null){ - reactiveQuery = reactiveQuery.gte(DeviceInfoRequest::getFactoryTime, request.getFactoryTimeStart()); - } - if(request.getFactoryTimeEnd() != null){ - reactiveQuery = reactiveQuery.lte(DeviceInfoRequest::getFactoryTime, request.getFactoryTimeEnd()); - } - if(request.getSaleTimeStart() != null){ - reactiveQuery = reactiveQuery.gte(DeviceInfoRequest::getSaleTime, request.getSaleTimeStart()); - } - if(request.getSaleTimeEnd() != null){ - reactiveQuery = reactiveQuery.lte(DeviceInfoRequest::getSaleTime, request.getSaleTimeEnd()); - } - SortOrder sortOrder = null; - if(StringUtils.isNotEmpty(request.getOrder())){ - if(StringUtils.isNotEmpty(request.getSort()) && request.getSort().compareTo("0") == 0){ - sortOrder = SortOrder.desc(request.getOrder()); - }else{ - sortOrder = SortOrder.asc(request.getOrder()); - } - reactiveQuery = reactiveQuery.orderBy(sortOrder); - } - QueryParamEntity param = QueryParamEntity.of(reactiveQuery.getParam()); - param.setPageIndex(request.getCurrPage()); - param.setPageSize(request.getPageSize()); - param.setPaging(true); - param.setFirstPageIndex(1); - return queryPager(param); - } - - - - public Mono selectDeviceInfoById(Long id){ - return createQuery() - .and("is_delete", 0) - .and("id", id) - .fetchOne(); - } - - - - public Mono insertDeviceInfo(DeviceInfoEntity entity){ - entity.setId(null); - entity.setCreateTime(null); - entity.setModifyTime(null); - return insert(entity); - } - - - - public Mono updateDeviceInfoById(DeviceInfoEntity entity){ - ReactiveUpdate update = createUpdate() - .set(DeviceInfoEntity::getModifyTime, new Date()); - if(entity.getIsDelete() != null){ - update = update.set(DeviceInfoEntity::getIsDelete, entity.getIsDelete()); - } - if(entity.getBatchId() != null){ - update = update.set(DeviceInfoEntity::getBatchId, entity.getBatchId()); - } - if(StringUtils.isNotEmpty(entity.getName())){ - update = update.set(DeviceInfoEntity::getName, entity.getName()); - } - if(StringUtils.isNotEmpty(entity.getSn())){ - update = update.set(DeviceInfoEntity::getSn, entity.getSn()); - } - if(StringUtils.isNotEmpty(entity.getKey())){ - update = update.set(DeviceInfoEntity::getKey, entity.getKey()); - } - if(StringUtils.isNotEmpty(entity.getBtMac())){ - update = update.set(DeviceInfoEntity::getBtMac, entity.getBtMac()); - } - if(StringUtils.isNotEmpty(entity.getWifiMac())){ - update = update.set(DeviceInfoEntity::getWifiMac, entity.getWifiMac()); - } - if(StringUtils.isNotEmpty(entity.getFirmwareVersion())){ - update = update.set(DeviceInfoEntity::getFirmwareVersion, entity.getFirmwareVersion()); - } - if(entity.getDeviceType() != null){ - update = update.set(DeviceInfoEntity::getDeviceType, entity.getDeviceType()); - } - if(entity.getStatus() != null){ - update = update.set(DeviceInfoEntity::getStatus, entity.getStatus()); - } - if(entity.getOnLine() != null){ - update = update.set(DeviceInfoEntity::getOnLine, entity.getOnLine()); - } - if(entity.getLastOnLineTime() != null){ - update = update.set(DeviceInfoEntity::getLastOnLineTime, entity.getLastOnLineTime()); - } - if(entity.getProtocolType() != null){ - update = update.set(DeviceInfoEntity::getProtocolType, entity.getProtocolType()); - } - if(entity.getOperatingModeId() != null){ - update = update.set(DeviceInfoEntity::getOperatingModeId, entity.getOperatingModeId()); - } - if(entity.getOtaType() != null){ - update = update.set(DeviceInfoEntity::getOtaType, entity.getOtaType()); - } - if(entity.getOtaStartTime() != null){ - update = update.set(DeviceInfoEntity::getOtaStartTime, entity.getOtaStartTime()); - } - if(entity.getOtaEndTime() != null){ - update = update.set(DeviceInfoEntity::getOtaEndTime, entity.getOtaEndTime()); - } - if(entity.getFactoryTime() != null){ - update = update.set(DeviceInfoEntity::getFactoryTime, entity.getFactoryTime()); - } - if(entity.getSaleTime() != null){ - update = update.set(DeviceInfoEntity::getSaleTime, entity.getSaleTime()); - } - return update.where(DeviceInfoEntity::getId, entity.getId()).and("is_delete", 0).execute(); - } - - - - public Mono updateCoverDeviceInfoById(DeviceInfoEntity entity){ - ReactiveUpdate update = createUpdate() - .set(DeviceInfoEntity::getModifyTime, new Date()); - update = update.set(DeviceInfoEntity::getIsDelete, entity.getIsDelete()); - update = update.set(DeviceInfoEntity::getBatchId, entity.getBatchId()); - update = update.set(DeviceInfoEntity::getName, entity.getName()); - update = update.set(DeviceInfoEntity::getSn, entity.getSn()); - update = update.set(DeviceInfoEntity::getKey, entity.getKey()); - update = update.set(DeviceInfoEntity::getBtMac, entity.getBtMac()); - update = update.set(DeviceInfoEntity::getWifiMac, entity.getWifiMac()); - update = update.set(DeviceInfoEntity::getFirmwareVersion, entity.getFirmwareVersion()); - update = update.set(DeviceInfoEntity::getDeviceType, entity.getDeviceType()); - update = update.set(DeviceInfoEntity::getStatus, entity.getStatus()); - update = update.set(DeviceInfoEntity::getOnLine, entity.getOnLine()); - update = update.set(DeviceInfoEntity::getLastOnLineTime, entity.getLastOnLineTime()); - update = update.set(DeviceInfoEntity::getProtocolType, entity.getProtocolType()); - update = update.set(DeviceInfoEntity::getOperatingModeId, entity.getOperatingModeId()); - update = update.set(DeviceInfoEntity::getOtaType, entity.getOtaType()); - update = update.set(DeviceInfoEntity::getOtaStartTime, entity.getOtaStartTime()); - update = update.set(DeviceInfoEntity::getOtaEndTime, entity.getOtaEndTime()); - update = update.set(DeviceInfoEntity::getFactoryTime, entity.getFactoryTime()); - update = update.set(DeviceInfoEntity::getSaleTime, entity.getSaleTime()); - return update.where(DeviceInfoEntity::getId, entity.getId()).and("is_delete", 0).execute(); - } - - - - public Mono deleteDeviceInfoById(Long id){ - return createUpdate() - .set("is_delete", 1) - .set("modify_time", new Date()) - .where("id", id) - .execute(); - } - - - -} diff --git a/iot-modules/iot-customer-http-api/src/test/tmp/UserRoomController.java b/iot-modules/iot-customer-http-api/src/test/tmp/UserRoomController.java deleted file mode 100644 index 999bad5..0000000 --- a/iot-modules/iot-customer-http-api/src/test/tmp/UserRoomController.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.admin.service.impl; - - - -import org.apache.commons.lang3.StringUtils; -import java.util.Date; -/** -*

-* 用户房间Controller类 -*

-* -* @author wulin -* @since 2023-09-21 -*/ - -@RestController -@Slf4j -@RequestMapping("/UserRoom") -public class UserRoomController{ - - - @Autowired - private UserRoomService userRoomService; - @PostMapping("/info") - public Mono selectUserRoomByRequest(@RequestBody UserRoomRequest request){ - return userRoomService.selectUserRoomByRequest(request).map(d -> {return new UserRoomResp(d);}); - } - - - - @PostMapping("/list") - public Mono> selectUserRoomsByRequest(@RequestBody UserRoomRequest request){ - return userRoomService.selectDeviceInfosByRequest(request).map(d -> { - PagerResult result = new PagerResult<>(); - result.setPageIndex(d.getPageIndex()); - result.setPageSize(d.getPageSize()); - result.setTotal(d.getTotal()); - List ds = d.getData().stream().map(new Function() { - @Override - public DeviceInfoResp apply(UserRoomEntity entity) { - return new UserRoomResp(entity); - } - } - - ).collect(Collectors.toList()); - result.setData(ds); - return result; - }); - } - - - - @GetMapping("/id") - public Mono selectUserRoomById(@RequestParam Long id){ - return userRoomService.selectUserRoomById(id).map(d -> {return new UserRoomResp(d);}); - } - - - - @PostMapping("/save") - public Mono insertUserRoom(@RequestBody UserRoomEntity entity){ - return userRoomService.insertUserRoom(entity); - } - - - - @PostMapping("/update") - public Mono updateUserRoomById(@RequestBody UserRoomEntity entity){ - return userRoomService.updateUserRoomById(entity); - } - - - - @PostMapping("/updateCover") - public Mono updateCoverUserRoomById(@RequestBody UserRoomEntity entity){ - return userRoomService.updateCoverUserRoomById(entity); - } - - - - @PostMapping("/delete") - public Mono deleteUserRoomById(@RequestParam Long id){ - return userRoomService.deleteUserRoomById(id); - } - - - -} diff --git a/iot-modules/iot-customer-http-api/src/test/tmp/UserRoomEntity.java b/iot-modules/iot-customer-http-api/src/test/tmp/UserRoomEntity.java deleted file mode 100644 index 33233b1..0000000 --- a/iot-modules/iot-customer-http-api/src/test/tmp/UserRoomEntity.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.qiuguo.iot.data.entity; -import org.hswebframework.ezorm.rdb.mapping.annotation.Comment; -import org.hswebframework.web.crud.annotation.EnableEntityEvent; -import org.hswebframework.web.api.crud.entity.GenericEntity; -import javax.persistence.Column; -import javax.persistence.Table;import lombok.Data; -import java.util.Date; -/** -*

-*

*用户房间表 -* @author wulin -* @since 2023-09-21 -*/ - -@Data -@Comment("用户房间表") -@Table(name = "user_room") -@EnableEntityEvent -public class UserRoomEntity extends GenericEntity { - @Comment("id") - @Column(name = "id", length = 11, nullable = false, unique = true) - private Long id; - - @Comment("家庭id") - @Column(name = "home_id", nullable = false) - private Long homeId; - - @Comment("房间名称") - @Column(name = "room_name", length = 100) - private String roomName; - - @Comment("涂鸦空间id") - @Column(name = "space_id", length = 100) - private Long spaceId; - - @Comment("is_delete") - @Column(name = "is_delete") - private Integer isDelete; - - @Comment("create_time") - @Column(name = "create_time") - private Date createTime; - - @Comment("modify_time") - @Column(name = "modify_time") - private Date modifyTime; - -} \ No newline at end of file diff --git a/iot-modules/iot-customer-http-api/src/test/tmp/UserRoomRequest.java b/iot-modules/iot-customer-http-api/src/test/tmp/UserRoomRequest.java deleted file mode 100644 index 29d0798..0000000 --- a/iot-modules/iot-customer-http-api/src/test/tmp/UserRoomRequest.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.qiuguo.iot.data.entity; -import lombok.Data; -import java.util.Date; -/** -*

-*用户房间请求类 -* @author wulin -* @since 2023-09-21 -*/ - - -@Data -public class UserRoomRequest implements java.io.Serializable { - - private int currPage = 1; - private int pageSize = 10; - private String sort; - private String order; - // - private Long id; - //家庭id - private Long homeId; - //房间名称 - private String roomName; - //涂鸦空间id - private Long spaceId; - // - private Integer isDelete; - // - private Date createTime; - //搜索开始 - - private Date createTimeStart; - - //搜索结束 - private Date createTimeEnd; - // - private Date modifyTime; - //搜索开始 - - private Date modifyTimeStart; - - //搜索结束 - private Date modifyTimeEnd; -} \ No newline at end of file diff --git a/iot-modules/iot-customer-http-api/src/test/tmp/UserRoomResp.java b/iot-modules/iot-customer-http-api/src/test/tmp/UserRoomResp.java deleted file mode 100644 index 2e0cf6d..0000000 --- a/iot-modules/iot-customer-http-api/src/test/tmp/UserRoomResp.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.qiuguo.iot.data.entity; -import lombok.Data; -import java.util.Date; -/** -*

-*

*用户房间返回类 -* @author wulin -* @since 2023-09-21 -*/ - -@Data -public class UserRoomResp { - public UserRoomResp(){ - } - public UserRoomResp(UserRoomEntity entity){ - id = entity.getId(); - homeId = entity.getHomeId(); - roomName = entity.getRoomName(); - spaceId = entity.getSpaceId(); - createTime = entity.getCreateTime(); - modifyTime = entity.getModifyTime(); - } - - // - private Long id; - //家庭id - private Long homeId; - //房间名称 - private String roomName; - //涂鸦空间id - private Long spaceId; - // - private Date createTime; - // - private Date modifyTime; -} \ No newline at end of file diff --git a/iot-modules/iot-customer-http-api/src/test/tmp/UserRoomService.java b/iot-modules/iot-customer-http-api/src/test/tmp/UserRoomService.java deleted file mode 100644 index 753e81e..0000000 --- a/iot-modules/iot-customer-http-api/src/test/tmp/UserRoomService.java +++ /dev/null @@ -1,168 +0,0 @@ -package com.admin.service.impl; - - - -import org.apache.commons.lang3.StringUtils; -import java.util.Date; -/** -*

-* 用户房间服务类 -*

-* -* @author wulin -* @since 2023-09-21 -*/ - -@Service -@Slf4j -public class UserRoomService extends GenericReactiveCrudService { - - - public Mono selectUserRoomByRequest(UserRoomRequest request){ - ReactiveQuery reactiveQuery = createQuery(); - reactiveQuery = reactiveQuery.and("is_delete", 0); - if(request.getId() != null){ - reactiveQuery = reactiveQuery.and(UserRoomRequest::getId, request.getId()); - } - if(request.getHomeId() != null){ - reactiveQuery = reactiveQuery.and(UserRoomRequest::getHomeId, request.getHomeId()); - } - if(StringUtils.isNotEmpty(request.getRoomName())){ - reactiveQuery = reactiveQuery.and(UserRoomRequest::getRoomName, request.getRoomName()); - } - if(request.getSpaceId() != null){ - reactiveQuery = reactiveQuery.and(UserRoomRequest::getSpaceId, request.getSpaceId()); - } - if(request.getIsDelete() != null){ - reactiveQuery = reactiveQuery.and(UserRoomRequest::getIsDelete, request.getIsDelete()); - } - if(request.getCreateTime() != null){ - reactiveQuery = reactiveQuery.and(UserRoomRequest::getCreateTime, request.getCreateTime()); - } - if(request.getModifyTime() != null){ - reactiveQuery = reactiveQuery.and(UserRoomRequest::getModifyTime, request.getModifyTime()); - } - SortOrder sortOrder = null; - if(StringUtils.isNotEmpty(request.getOrder())){ - if(StringUtils.isNotEmpty(request.getSort()) && request.getSort().compareTo("0") == 0){ - sortOrder = SortOrder.desc(request.getOrder()); - }else{ - sortOrder = SortOrder.asc(request.getOrder()); - } - reactiveQuery = reactiveQuery.orderBy(sortOrder); - } - return reactiveQuery.fetchOne(); - } - - - - public Mono selectUserRoomsByRequest(UserRoomRequest request){ - ReactiveQuery reactiveQuery = createQuery(); - reactiveQuery = reactiveQuery.and("is_delete", 0); - if(request.getId() != null){ - reactiveQuery = reactiveQuery.and(UserRoomRequest::getId, request.getId()); - } - if(request.getHomeId() != null){ - reactiveQuery = reactiveQuery.and(UserRoomRequest::getHomeId, request.getHomeId()); - } - if(StringUtils.isNotEmpty(request.getRoomName())){ - reactiveQuery = reactiveQuery.$like$(UserRoomRequest::getRoomName, request.getRoomName()); - } - if(request.getSpaceId() != null){ - reactiveQuery = reactiveQuery.and(UserRoomRequest::getSpaceId, request.getSpaceId()); - } - if(request.getIsDelete() != null){ - reactiveQuery = reactiveQuery.and(UserRoomRequest::getIsDelete, request.getIsDelete()); - } - if(request.getCreateTimeStart() != null){ - reactiveQuery = reactiveQuery.gte(UserRoomRequest::getCreateTime, request.getCreateTimeStart()); - } - if(request.getCreateTimeEnd() != null){ - reactiveQuery = reactiveQuery.lte(UserRoomRequest::getCreateTime, request.getCreateTimeEnd()); - } - if(request.getModifyTimeStart() != null){ - reactiveQuery = reactiveQuery.gte(UserRoomRequest::getModifyTime, request.getModifyTimeStart()); - } - if(request.getModifyTimeEnd() != null){ - reactiveQuery = reactiveQuery.lte(UserRoomRequest::getModifyTime, request.getModifyTimeEnd()); - } - SortOrder sortOrder = null; - if(StringUtils.isNotEmpty(request.getOrder())){ - if(StringUtils.isNotEmpty(request.getSort()) && request.getSort().compareTo("0") == 0){ - sortOrder = SortOrder.desc(request.getOrder()); - }else{ - sortOrder = SortOrder.asc(request.getOrder()); - } - reactiveQuery = reactiveQuery.orderBy(sortOrder); - } - QueryParamEntity param = QueryParamEntity.of(reactiveQuery.getParam()); - param.setPageIndex(request.getCurrPage()); - param.setPageSize(request.getPageSize()); - param.setPaging(true); - param.setFirstPageIndex(1); - return queryPager(param); - } - - - - public Mono selectUserRoomById(Long id){ - return createQuery() - .and("is_delete", 0) - .and("id", id) - .fetchOne(); - } - - - - public Mono insertUserRoom(UserRoomEntity entity){ - entity.setId(null); - entity.setCreateTime(null); - entity.setModifyTime(null); - return insert(entity); - } - - - - public Mono updateUserRoomById(UserRoomEntity entity){ - ReactiveUpdate update = createUpdate() - .set(UserRoomEntity::getModifyTime, new Date()); - if(entity.getHomeId() != null){ - update = update.set(UserRoomEntity::getHomeId, entity.getHomeId()); - } - if(StringUtils.isNotEmpty(entity.getRoomName())){ - update = update.set(UserRoomEntity::getRoomName, entity.getRoomName()); - } - if(entity.getSpaceId() != null){ - update = update.set(UserRoomEntity::getSpaceId, entity.getSpaceId()); - } - if(entity.getIsDelete() != null){ - update = update.set(UserRoomEntity::getIsDelete, entity.getIsDelete()); - } - return update.where(UserRoomEntity::getId, entity.getId()).and("is_delete", 0).execute(); - } - - - - public Mono updateCoverUserRoomById(UserRoomEntity entity){ - ReactiveUpdate update = createUpdate() - .set(UserRoomEntity::getModifyTime, new Date()); - update = update.set(UserRoomEntity::getHomeId, entity.getHomeId()); - update = update.set(UserRoomEntity::getRoomName, entity.getRoomName()); - update = update.set(UserRoomEntity::getSpaceId, entity.getSpaceId()); - update = update.set(UserRoomEntity::getIsDelete, entity.getIsDelete()); - return update.where(UserRoomEntity::getId, entity.getId()).and("is_delete", 0).execute(); - } - - - - public Mono deleteUserRoomById(Long id){ - return createUpdate() - .set("is_delete", 1) - .set("modify_time", new Date()) - .where("id", id) - .execute(); - } - - - -}