diff --git a/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/entity/user/UserHomeEntity.java b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/entity/user/UserHomeEntity.java new file mode 100644 index 0000000..d48651b --- /dev/null +++ b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/entity/user/UserHomeEntity.java @@ -0,0 +1,44 @@ +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-18 +*/ + +@Data +@Comment("用户家庭表") +@Table(name = "user_home") +@EnableEntityEvent +public class UserHomeEntity extends GenericEntity { + @Comment("id") + @Column(name = "id", length = 11, nullable = false, unique = true) + private Long id; + + @Comment("用户id") + @Column(name = "user_id", nullable = false) + private Long userId; + + @Comment("家庭名称") + @Column(name = "home_name", length = 100) + private String homeName; + + @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/entity/user/UserRoomEntity.java b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/entity/user/UserRoomEntity.java new file mode 100644 index 0000000..4f342fc --- /dev/null +++ b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/entity/user/UserRoomEntity.java @@ -0,0 +1,48 @@ +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-18 +*/ + +@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-common/iot-data/src/main/java/com/qiuguo/iot/data/request/user/UserHomeRequest.java b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/request/user/UserHomeRequest.java new file mode 100644 index 0000000..8af08f7 --- /dev/null +++ b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/request/user/UserHomeRequest.java @@ -0,0 +1,43 @@ +package com.qiuguo.iot.data.request.user; +import lombok.Data; +import java.util.Date; +/** +*

+*请求类 +* @author wulin +* @since 2023-09-18 +*/ + + +@Data +public class UserHomeRequest implements java.io.Serializable { + + private int currPage = 1; + private int pageSize = 10; + private String sort; + private String order; + // + private Long id; + //用户id + private Long userId; + //家庭名称 + private String homeName; + // + 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/request/user/UserRoomRequest.java b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/request/user/UserRoomRequest.java new file mode 100644 index 0000000..929c24c --- /dev/null +++ b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/request/user/UserRoomRequest.java @@ -0,0 +1,45 @@ +package com.qiuguo.iot.data.request.user; +import lombok.Data; +import java.util.Date; +/** +*

+*请求类 +* @author wulin +* @since 2023-09-18 +*/ + + +@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-common/iot-data/src/main/java/com/qiuguo/iot/data/resp/user/UserHomeResp.java b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/resp/user/UserHomeResp.java new file mode 100644 index 0000000..4a6c9c7 --- /dev/null +++ b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/resp/user/UserHomeResp.java @@ -0,0 +1,18 @@ +package com.qiuguo.iot.data.resp.user; +import lombok.Data; +/** +*

+*

*返回类 +* @author wulin +* @since 2023-09-18 +*/ + +@Data +public class UserHomeResp { + // + private Long id; + //用户id + private Long userId; + //家庭名称 + private String homeName; +} \ No newline at end of file diff --git a/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/resp/user/UserRoomResp.java b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/resp/user/UserRoomResp.java new file mode 100644 index 0000000..6ff393b --- /dev/null +++ b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/resp/user/UserRoomResp.java @@ -0,0 +1,20 @@ +package com.qiuguo.iot.data.resp.user; +import lombok.Data; +/** +*

+*

*返回类 +* @author wulin +* @since 2023-09-18 +*/ + +@Data +public class UserRoomResp { + // + private Long id; + //家庭id + private Long homeId; + //房间名称 + private String roomName; + //涂鸦空间id + private Long spaceId; +} \ No newline at end of file diff --git a/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/service/user/UserHomeService.java b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/service/user/UserHomeService.java new file mode 100644 index 0000000..de3ffa8 --- /dev/null +++ b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/service/user/UserHomeService.java @@ -0,0 +1,163 @@ +package com.qiuguo.iot.data.service.user; + + + +import com.qiuguo.iot.data.entity.user.UserHomeEntity; +import com.qiuguo.iot.data.request.user.UserHomeRequest; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +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.crud.service.GenericReactiveCrudService; +import org.springframework.stereotype.Service; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; + +/** +*

+* 服务类 +*

+* +* @author wulin +* @since 2023-09-18 +*/ + +@Service +@Slf4j +public class UserHomeService extends GenericReactiveCrudService { + + + public Mono selectUserHomeByRequest(UserHomeRequest request){ + ReactiveQuery reactiveQuery = createQuery(); + reactiveQuery = reactiveQuery.and("is_delete", 0); + if(request.getId() != null){ + reactiveQuery = reactiveQuery.and(UserHomeRequest::getId, request.getId()); + } + if(request.getUserId() != null){ + reactiveQuery = reactiveQuery.and(UserHomeRequest::getUserId, request.getUserId()); + } + if(StringUtils.isNotEmpty(request.getHomeName())){ + reactiveQuery = reactiveQuery.and(UserHomeRequest::getHomeName, request.getHomeName()); + } + if(request.getIsDelete() != null){ + reactiveQuery = reactiveQuery.and(UserHomeRequest::getIsDelete, request.getIsDelete()); + } + if(request.getCreateTime() != null){ + reactiveQuery = reactiveQuery.and(UserHomeRequest::getCreateTime, request.getCreateTime()); + } + if(request.getModifyTime() != null){ + reactiveQuery = reactiveQuery.and(UserHomeRequest::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 Flux selectUserHomesByRequest(UserHomeRequest request){ + ReactiveQuery reactiveQuery = createQuery(); + reactiveQuery = reactiveQuery.and("is_delete", 0); + if(request.getId() != null){ + reactiveQuery = reactiveQuery.and(UserHomeRequest::getId, request.getId()); + } + if(request.getUserId() != null){ + reactiveQuery = reactiveQuery.and(UserHomeRequest::getUserId, request.getUserId()); + } + if(StringUtils.isNotEmpty(request.getHomeName())){ + reactiveQuery = reactiveQuery.like(UserHomeRequest::getHomeName, request.getHomeName()); + } + if(request.getIsDelete() != null){ + reactiveQuery = reactiveQuery.and(UserHomeRequest::getIsDelete, request.getIsDelete()); + } + if(request.getCreateTimeStart() != null){ + reactiveQuery = reactiveQuery.gte(UserHomeRequest::getCreateTime, request.getCreateTimeStart()); + } + if(request.getCreateTimeEnd() != null){ + reactiveQuery = reactiveQuery.lte(UserHomeRequest::getCreateTime, request.getCreateTimeEnd()); + } + if(request.getModifyTimeStart() != null){ + reactiveQuery = reactiveQuery.gte(UserHomeRequest::getModifyTime, request.getModifyTimeStart()); + } + if(request.getModifyTimeEnd() != null){ + reactiveQuery = reactiveQuery.lte(UserHomeRequest::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); + } + return reactiveQuery.paging(request.getCurrPage(), request.getPageSize()).fetch(); + } + + + + public Mono selectUserHomeById(Long id){ + return createQuery() + .and("is_delete", 0) + .and("id", id) + .fetchOne(); + } + + + + public Mono insertUserHome(UserHomeEntity entity){ + entity.setCreateTime(null); + entity.setModifyTime(null); + return insert(entity); + } + + + + public Mono updateUserHomeById(UserHomeEntity entity){ + ReactiveUpdate update = createUpdate() + .set(UserHomeEntity::getModifyTime, new Date()); + if(entity.getUserId() != null){ + update = update.set(UserHomeEntity::getUserId, entity.getUserId()); + } + if(StringUtils.isNotEmpty(entity.getHomeName())){ + update = update.set(UserHomeEntity::getHomeName, entity.getHomeName()); + } + if(entity.getIsDelete() != null){ + update = update.set(UserHomeEntity::getIsDelete, entity.getIsDelete()); + } + return update.where(UserHomeEntity::getId, entity.getId()).and("is_delete", 0).execute(); + } + + + + public Mono updateCoverUserHomeById(UserHomeEntity entity){ + ReactiveUpdate update = createUpdate() + .set(UserHomeEntity::getModifyTime, new Date()); + update = update.set(UserHomeEntity::getUserId, entity.getUserId()); + update = update.set(UserHomeEntity::getHomeName, entity.getHomeName()); + update = update.set(UserHomeEntity::getIsDelete, entity.getIsDelete()); + return update.where(UserHomeEntity::getId, entity.getId()).and("is_delete", 0).execute(); + } + + + + public Mono deleteUserHomeById(Long id){ + return createUpdate() + .set("is_delete", 1) + .set("modify_time", new Date()) + .where("id", id) + .execute(); + } + + + +} diff --git a/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/service/user/UserRoomService.java b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/service/user/UserRoomService.java new file mode 100644 index 0000000..6ab22a8 --- /dev/null +++ b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/service/user/UserRoomService.java @@ -0,0 +1,173 @@ +package com.qiuguo.iot.data.service.user; + + + +import com.qiuguo.iot.data.entity.user.UserRoomEntity; +import com.qiuguo.iot.data.request.user.UserRoomRequest; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +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.crud.service.GenericReactiveCrudService; +import org.springframework.stereotype.Service; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; + +/** +*

+* 服务类 +*

+* +* @author wulin +* @since 2023-09-18 +*/ + +@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 Flux 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); + } + return reactiveQuery.paging(request.getCurrPage(), request.getPageSize()).fetch(); + } + + + + public Mono selectUserRoomById(Long id){ + return createQuery() + .and("is_delete", 0) + .and("id", id) + .fetchOne(); + } + + + + public Mono insertUserRoom(UserRoomEntity entity){ + 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(); + } + + + +} diff --git a/iot-modules/iot-box-user-api/pom.xml b/iot-modules/iot-box-user-api/pom.xml index e9c4991..08cfdf4 100644 --- a/iot-modules/iot-box-user-api/pom.xml +++ b/iot-modules/iot-box-user-api/pom.xml @@ -17,6 +17,12 @@ UTF-8 + + com.tuya + tuya-spring-boot-starter + 1.3.2 + + org.springframework.boot spring-boot-starter-webflux @@ -132,5 +138,7 @@ + + \ No newline at end of file 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..8eebfbe --- /dev/null +++ b/iot-modules/iot-box-user-api/src/test/java/UserTest.java @@ -0,0 +1,17 @@ +import com.tuya.connector.api.annotations.Path; + +/** + * XXX + * + * @author weiyachao + * @since 2023/9/5 16:03 + */ + + +public class UserTest { + + public static void main(String[] args) { + + } + +} diff --git a/iot-modules/iot-customer-http-api/src/test/java/com/qiuguo/iot/customer/http/api/mysql/MysqlMain.java b/iot-modules/iot-customer-http-api/src/test/java/com/qiuguo/iot/customer/http/api/mysql/MysqlMain.java index 95ed874..d23ee5e 100644 --- a/iot-modules/iot-customer-http-api/src/test/java/com/qiuguo/iot/customer/http/api/mysql/MysqlMain.java +++ b/iot-modules/iot-customer-http-api/src/test/java/com/qiuguo/iot/customer/http/api/mysql/MysqlMain.java @@ -33,9 +33,9 @@ public class MysqlMain { //public static String save_path = "C:\\Users\\linzi\\Desktop\\mysql"; - - //public static String save_path ="C:\\workspace\\life"; - public static String save_path = "C:\\workspace\\ideaworkspace\\api"; + + // public static String save_path ="C:\\workspace\\life"; + public static String save_path = System.getProperty("user.dir"); public static String mysql_url = "jdbc:mysql://172.24.218.235:3306/qiuguo_iot?useSSL=false&serverZoneId=Asia/Shanghai"; @@ -80,27 +80,10 @@ public class MysqlMain { if (!file.exists()) { file.mkdirs(); } - List list = new ArrayList(); + List list = new ArrayList<>(); - - list.add(new TablesBean("device_alarm_clock_record")); - list.add(new TablesBean("device_batch")); - list.add(new TablesBean("device_info")); - list.add(new TablesBean("device_product_factory_info")); - list.add(new TablesBean("device_user_bind")); - list.add(new TablesBean("device_user_talk_record")); - list.add(new TablesBean("ota_record")); - list.add(new TablesBean("ota_version_info")); - list.add(new TablesBean("user_suggestion_record")); - list.add(new TablesBean("system_talk_answer_config")); - list.add(new TablesBean("third_config_info")); - list.add(new TablesBean("third_user_bind")); - list.add(new TablesBean("operatin_action")); - list.add(new TablesBean("operatin_condition")); - list.add(new TablesBean("operatin_mode")); - list.add(new TablesBean("operatin_scene")); - list.add(new TablesBean("u3d_action")); - list.add(new TablesBean("operatin_event_config")); + list.add(new TablesBean("user_home")); + list.add(new TablesBean("user_room")); List list2 = new ArrayList(); Map map = MysqlUtil2ShowCreateTable.getComments();