批量查询增加排序支持

This commit is contained in:
wulin 2023-10-07 17:59:54 +08:00
parent 30e746eb00
commit 5c2a3ca78f
42 changed files with 7462 additions and 271 deletions

View File

@ -60,6 +60,8 @@ public enum ChinesePartSpeechEnum {
z(32, "状态词"),
un(33, "未知词"),
zd(99, "自定义"),
qg(100, "在查找字符串时用来临时替换用户命名的设备目前最多同时支持20个见LAC字典"),
;
ChinesePartSpeechEnum(Integer c, String n){
code = c;

View File

@ -37,6 +37,10 @@ public class DeviceUserBindRequest implements java.io.Serializable {
private Long deviceId;
//设备类型0 果Box 1智能插座 2智能大灯 3智能窗帘驱动 4智能窗户关闭 5智能台灯 6智能桌子 7智能椅子 8智能风扇 9智能空调遥控器 10智能冰箱 11智能洗碗机 12智能电热水器 13温度传感器 14空气质量传感器 15光线传感器 16雨量传感器 17闭门器
private Integer deviceType;
//三方设备id
private String otherDeviceId;
//涂鸦空间id
private Long spaceId;
//是否为主设备 1 0不是
private Integer isMain;
//绑定设备名称用户命名

View File

@ -1,5 +1,9 @@
package com.qiuguo.iot.data.resp.device;
import com.qiuguo.iot.data.entity.device.DeviceUserBindEntity;
import lombok.Data;
import java.util.Date;
/**
* <p>
* </p>*设备与用户绑定返回类
@ -9,8 +13,30 @@ import lombok.Data;
@Data
public class DeviceUserBindResp {
public DeviceUserBindResp(){
}
public DeviceUserBindResp(DeviceUserBindEntity entity){
id = entity.getId();
createTime = entity.getCreateTime();
userId = entity.getUserId();
deviceType = entity.getDeviceType();
deviceId = entity.getDeviceId();
otherDeviceId = entity.getOtherDeviceId();
spaceId = entity.getSpaceId();
isMain = entity.getIsMain();
bindName = entity.getBindName();
country = entity.getCountry();
province = entity.getProvince();
city = entity.getCity();
county = entity.getCounty();
village = entity.getVillage();
address = entity.getAddress();
categoryCode = entity.getCategoryCode();
}
//
private Long id;
//创建时间
private Date createTime;
//用户Id
private Long userId;
//设备id
@ -18,6 +44,10 @@ public class DeviceUserBindResp {
//设备类型0 果Box 1智能插座 2智能大灯 3智能窗帘驱动 4智能窗户关闭 5智能台灯 6智能桌子 7智能椅子 8智能风扇 9智能空调遥控器 10智能冰箱 11智能洗碗机 12智能电热水器 13温度传感器 14空气质量传感器 15光线传感器 16雨量传感器 17闭门器
private Integer deviceType;
//是否为主设备 1 0不是
//三方设备id
private String otherDeviceId;
//涂鸦空间id
private Long spaceId;
private Integer isMain;
//绑定设备名称用户命名
private String bindName;
@ -35,4 +65,8 @@ public class DeviceUserBindResp {
private String address;
//分类字段名称
private String categoryCode;
/**
* 是否在线0 b不在线 1在线
*/
private Integer Online;
}

View File

@ -6,6 +6,7 @@ import com.qiuguo.iot.base.utils.StringUtils;
import com.qiuguo.iot.data.entity.device.DeviceAlarmClockRecordEntity;
import com.qiuguo.iot.data.request.device.DeviceAlarmClockRecordRequest;
import lombok.extern.slf4j.Slf4j;
import org.hswebframework.ezorm.core.param.Sort;
import org.hswebframework.ezorm.rdb.mapping.ReactiveQuery;
import org.hswebframework.ezorm.rdb.mapping.ReactiveUpdate;
import org.hswebframework.ezorm.rdb.operator.dml.query.SortOrder;
@ -15,6 +16,7 @@ import org.hswebframework.web.crud.service.GenericReactiveCrudService;
import org.springframework.stereotype.Service;
import reactor.core.publisher.Mono;
import java.util.Arrays;
import java.util.Date;
/**
* <p>
@ -143,16 +145,17 @@ public class DeviceAlarmClockRecordService extends GenericReactiveCrudService<De
if(StringUtils.isNotEmpty(request.getSoundName())){
reactiveQuery = reactiveQuery.$like$(DeviceAlarmClockRecordRequest::getSoundName, request.getSoundName());
}
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());
if(StringUtils.isNotEmpty(request.getOrder())){
Sort sort = new Sort();
sort.setName(request.getOrder());
if(StringUtils.isNotEmpty(request.getSort()) && request.getSort().compareTo("0") == 0){
sort.desc();
}else{
sort.asc();
}
param.setSorts(Arrays.asList(sort));
}
param.setPageIndex(request.getCurrPage());
param.setPageSize(request.getPageSize());
param.setPaging(true);

View File

@ -5,6 +5,7 @@ import com.qiuguo.iot.base.utils.StringUtils;
import com.qiuguo.iot.data.entity.device.DeviceBatchEntity;
import com.qiuguo.iot.data.request.device.DeviceBatchRequest;
import lombok.extern.slf4j.Slf4j;;
import org.hswebframework.ezorm.core.param.Sort;
import org.hswebframework.ezorm.rdb.mapping.ReactiveQuery;
import org.hswebframework.ezorm.rdb.mapping.ReactiveUpdate;
import org.hswebframework.ezorm.rdb.operator.dml.query.SortOrder;
@ -14,6 +15,7 @@ import org.hswebframework.web.crud.service.GenericReactiveCrudService;
import org.springframework.stereotype.Service;
import reactor.core.publisher.Mono;
import java.util.Arrays;
import java.util.Date;
/**
* <p>
@ -268,16 +270,17 @@ public class DeviceBatchService extends GenericReactiveCrudService<DeviceBatchEn
if(StringUtils.isNotEmpty(request.getOperatingSystem())){
reactiveQuery = reactiveQuery.$like$(DeviceBatchRequest::getOperatingSystem, request.getOperatingSystem());
}
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());
if(StringUtils.isNotEmpty(request.getOrder())){
Sort sort = new Sort();
sort.setName(request.getOrder());
if(StringUtils.isNotEmpty(request.getSort()) && request.getSort().compareTo("0") == 0){
sort.desc();
}else{
sort.asc();
}
param.setSorts(Arrays.asList(sort));
}
param.setPageIndex(request.getCurrPage());
param.setPageSize(request.getPageSize());
param.setPaging(true);

View File

@ -6,6 +6,7 @@ import com.qiuguo.iot.base.utils.StringUtils;
import com.qiuguo.iot.data.entity.device.DeviceInfoEntity;
import com.qiuguo.iot.data.request.device.DeviceInfoRequest;
import lombok.extern.slf4j.Slf4j;
import org.hswebframework.ezorm.core.param.Sort;
import org.hswebframework.ezorm.rdb.mapping.ReactiveQuery;
import org.hswebframework.ezorm.rdb.mapping.ReactiveUpdate;
import org.hswebframework.ezorm.rdb.operator.dml.query.SortOrder;
@ -15,6 +16,7 @@ import org.hswebframework.web.crud.service.GenericReactiveCrudService;
import org.springframework.stereotype.Service;
import reactor.core.publisher.Mono;
import java.util.Arrays;
import java.util.Date;
/**
@ -206,16 +208,17 @@ public class DeviceInfoService extends GenericReactiveCrudService<DeviceInfoEnti
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());
if(StringUtils.isNotEmpty(request.getOrder())){
Sort sort = new Sort();
sort.setName(request.getOrder());
if(StringUtils.isNotEmpty(request.getSort()) && request.getSort().compareTo("0") == 0){
sort.desc();
}else{
sort.asc();
}
param.setSorts(Arrays.asList(sort));
}
param.setPageIndex(request.getCurrPage());
param.setPageSize(request.getPageSize());
param.setPaging(true);
@ -344,5 +347,19 @@ public class DeviceInfoService extends GenericReactiveCrudService<DeviceInfoEnti
}
public Mono<Integer> setOnLineStatus(Long id, Integer code) {
return createUpdate()
.set("on_line", code)
.set("modify_time", new Date())
.where("id", id)
.execute();
}
public Mono<Integer> setOnLineStatus(String sn, Integer code) {
return createUpdate()
.set("on_line", code)
.set("modify_time", new Date())
.where("sn", sn)
.execute();
}
}

View File

@ -5,6 +5,7 @@ import com.qiuguo.iot.base.utils.StringUtils;
import com.qiuguo.iot.data.entity.device.DeviceProductFactoryInfoEntity;
import com.qiuguo.iot.data.request.device.DeviceProductFactoryInfoRequest;
import lombok.extern.slf4j.Slf4j;
import org.hswebframework.ezorm.core.param.Sort;
import org.hswebframework.ezorm.rdb.mapping.ReactiveQuery;
import org.hswebframework.ezorm.rdb.mapping.ReactiveUpdate;
import org.hswebframework.ezorm.rdb.operator.dml.query.SortOrder;
@ -14,6 +15,7 @@ import org.hswebframework.web.crud.service.GenericReactiveCrudService;
import org.springframework.stereotype.Service;
import reactor.core.publisher.Mono;
import java.util.Arrays;
import java.util.Date;
/**
* <p>
@ -163,16 +165,17 @@ public class DeviceProductFactoryInfoService extends GenericReactiveCrudService<
if(StringUtils.isNotEmpty(request.getRemark())){
reactiveQuery = reactiveQuery.$like$(DeviceProductFactoryInfoRequest::getRemark, request.getRemark());
}
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());
if(StringUtils.isNotEmpty(request.getOrder())){
Sort sort = new Sort();
sort.setName(request.getOrder());
if(StringUtils.isNotEmpty(request.getSort()) && request.getSort().compareTo("0") == 0){
sort.desc();
}else{
sort.asc();
}
param.setSorts(Arrays.asList(sort));
}
param.setPageIndex(request.getCurrPage());
param.setPageSize(request.getPageSize());
param.setPaging(true);

View File

@ -4,16 +4,24 @@ package com.qiuguo.iot.data.service.device;
import com.qiuguo.iot.base.utils.StringUtils;
import com.qiuguo.iot.data.entity.device.DeviceUserBindEntity;
import com.qiuguo.iot.data.request.device.DeviceUserBindRequest;
import com.qiuguo.iot.data.resp.device.DeviceUserBindResp;
import lombok.extern.slf4j.Slf4j;
import org.hswebframework.ezorm.core.param.Sort;
import org.hswebframework.ezorm.rdb.mapping.ReactiveQuery;
import org.hswebframework.ezorm.rdb.mapping.ReactiveUpdate;
import org.hswebframework.ezorm.rdb.metadata.RDBDatabaseMetadata;
import org.hswebframework.ezorm.rdb.operator.DatabaseOperator;
import org.hswebframework.ezorm.rdb.operator.DefaultDatabaseOperator;
import org.hswebframework.ezorm.rdb.operator.dml.delete.DeleteOperator;
import org.hswebframework.ezorm.rdb.operator.dml.query.SortOrder;
import org.hswebframework.ezorm.rdb.supports.mysql.MysqlDialect;
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;
import java.util.Arrays;
import java.util.Date;
/**
* <p>
@ -47,11 +55,17 @@ public class DeviceUserBindService extends GenericReactiveCrudService<DeviceUser
if(request.getUserId() != null){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getUserId, request.getUserId());
}
if(request.getDeviceType() != null){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getDeviceType, request.getDeviceType());
}
if(request.getDeviceId() != null){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getDeviceId, request.getDeviceId());
}
if(request.getDeviceType() != null){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getDeviceType, request.getDeviceType());
if(request.getOtherDeviceId() != null){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getOtherDeviceId, request.getOtherDeviceId());
}
if(request.getSpaceId() != null){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getSpaceId, request.getSpaceId());
}
if(request.getIsMain() != null){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getIsMain, request.getIsMain());
@ -118,11 +132,17 @@ public class DeviceUserBindService extends GenericReactiveCrudService<DeviceUser
if(request.getUserId() != null){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getUserId, request.getUserId());
}
if(request.getDeviceType() != null){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getDeviceType, request.getDeviceType());
}
if(request.getDeviceId() != null){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getDeviceId, request.getDeviceId());
}
if(request.getDeviceType() != null){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getDeviceType, request.getDeviceType());
if(request.getOtherDeviceId() != null){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getOtherDeviceId, request.getOtherDeviceId());
}
if(request.getSpaceId() != null){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getSpaceId, request.getSpaceId());
}
if(request.getIsMain() != null){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getIsMain, request.getIsMain());
@ -151,21 +171,21 @@ public class DeviceUserBindService extends GenericReactiveCrudService<DeviceUser
if(StringUtils.isNotEmpty(request.getCategoryCode())){
reactiveQuery = reactiveQuery.$like$(DeviceUserBindRequest::getCategoryCode, request.getCategoryCode());
}
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());
if(StringUtils.isNotEmpty(request.getOrder())){
Sort sort = new Sort();
sort.setName(request.getOrder());
if(StringUtils.isNotEmpty(request.getSort()) && request.getSort().compareTo("0") == 0){
sort.desc();
}else{
sort.asc();
}
param.setSorts(Arrays.asList(sort));
}
param.setPageIndex(request.getCurrPage());
param.setPageSize(request.getPageSize());
param.setPaging(true);
param.setFirstPageIndex(1);
return queryPager(param);
}
@ -181,6 +201,7 @@ public class DeviceUserBindService extends GenericReactiveCrudService<DeviceUser
public Mono<Integer> insertDeviceUserBind(DeviceUserBindEntity entity){
entity.setId(null);
entity.setCreateTime(null);
entity.setModifyTime(null);
return insert(entity);
@ -190,18 +211,24 @@ public class DeviceUserBindService extends GenericReactiveCrudService<DeviceUser
public Mono<Integer> updateDeviceUserBindById(DeviceUserBindEntity entity){
ReactiveUpdate<DeviceUserBindEntity> update = createUpdate()
.set(DeviceUserBindEntity::getModifyTime, new Date());
.set(DeviceUserBindEntity::getModifyTime, new Date());
if(entity.getIsDelete() != null){
update = update.set(DeviceUserBindEntity::getIsDelete, entity.getIsDelete());
}
if(entity.getUserId() != null){
update = update.set(DeviceUserBindEntity::getUserId, entity.getUserId());
}
if(entity.getDeviceType() != null){
update = update.set(DeviceUserBindEntity::getDeviceType, entity.getDeviceType());
}
if(entity.getDeviceId() != null){
update = update.set(DeviceUserBindEntity::getDeviceId, entity.getDeviceId());
}
if(entity.getDeviceType() != null){
update = update.set(DeviceUserBindEntity::getDeviceType, entity.getDeviceType());
if(entity.getOtherDeviceId() != null){
update = update.set(DeviceUserBindEntity::getOtherDeviceId, entity.getOtherDeviceId());
}
if(entity.getSpaceId() != null){
update = update.set(DeviceUserBindEntity::getSpaceId, entity.getSpaceId());
}
if(entity.getIsMain() != null){
update = update.set(DeviceUserBindEntity::getIsMain, entity.getIsMain());
@ -237,11 +264,13 @@ public class DeviceUserBindService extends GenericReactiveCrudService<DeviceUser
public Mono<Integer> updateCoverDeviceUserBindById(DeviceUserBindEntity entity){
ReactiveUpdate<DeviceUserBindEntity> update = createUpdate()
.set(DeviceUserBindEntity::getModifyTime, new Date());
.set(DeviceUserBindEntity::getModifyTime, new Date());
update = update.set(DeviceUserBindEntity::getIsDelete, entity.getIsDelete());
update = update.set(DeviceUserBindEntity::getUserId, entity.getUserId());
update = update.set(DeviceUserBindEntity::getDeviceId, entity.getDeviceId());
update = update.set(DeviceUserBindEntity::getDeviceType, entity.getDeviceType());
update = update.set(DeviceUserBindEntity::getDeviceId, entity.getDeviceId());
update = update.set(DeviceUserBindEntity::getOtherDeviceId, entity.getOtherDeviceId());
update = update.set(DeviceUserBindEntity::getSpaceId, entity.getSpaceId());
update = update.set(DeviceUserBindEntity::getIsMain, entity.getIsMain());
update = update.set(DeviceUserBindEntity::getBindName, entity.getBindName());
update = update.set(DeviceUserBindEntity::getCountry, entity.getCountry());
@ -277,4 +306,10 @@ public class DeviceUserBindService extends GenericReactiveCrudService<DeviceUser
.execute();
}
public Mono<PagerResult<DeviceUserBindResp>> selectDeviceUserBindsContainOnLineByRequest(DeviceUserBindRequest request) {
DatabaseOperator operator = DefaultDatabaseOperator.of(new RDBDatabaseMetadata(new MysqlDialect()));
//operator.dml().query().select()
return null;
}
}

View File

@ -144,23 +144,17 @@ public class DeviceUserTalkRecordService extends GenericReactiveCrudService<Devi
if(request.getIsReturn() != null){
reactiveQuery = reactiveQuery.and(DeviceUserTalkRecordRequest::getIsReturn, request.getIsReturn());
}
SortOrder sortOrder = null;
QueryParamEntity param = QueryParamEntity.of(reactiveQuery.getParam());
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());
}
//sortOrder.setColumn(request.getOrder());
reactiveQuery = reactiveQuery.orderBy(sortOrder);
Sort sort = new Sort();
sort.setName(request.getOrder());
sort.desc();
if(StringUtils.isNotEmpty(request.getSort()) && request.getSort().compareTo("0") == 0){
sort.desc();
}else{
sort.asc();
}
param.setSorts(Arrays.asList(sort));
//List<Sort> sort = new Sort();
}
param.setPageIndex(request.getCurrPage());
param.setPageSize(request.getPageSize());
param.setPaging(true);

View File

@ -6,6 +6,7 @@ import com.qiuguo.iot.base.utils.StringUtils;
import com.qiuguo.iot.data.entity.operation.OperatinActionEntity;
import com.qiuguo.iot.data.request.operation.OperatinActionRequest;
import lombok.extern.slf4j.Slf4j;
import org.hswebframework.ezorm.core.param.Sort;
import org.hswebframework.ezorm.rdb.mapping.ReactiveQuery;
import org.hswebframework.ezorm.rdb.mapping.ReactiveUpdate;
import org.hswebframework.ezorm.rdb.operator.dml.query.SortOrder;
@ -15,6 +16,7 @@ import org.hswebframework.web.crud.service.GenericReactiveCrudService;
import org.springframework.stereotype.Service;
import reactor.core.publisher.Mono;
import java.util.Arrays;
import java.util.Date;
/**
* <p>
@ -122,16 +124,17 @@ public class OperatinActionService extends GenericReactiveCrudService<OperatinAc
if(request.getActionTimes() != null){
reactiveQuery = reactiveQuery.and(OperatinActionRequest::getActionTimes, request.getActionTimes());
}
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());
if(StringUtils.isNotEmpty(request.getOrder())){
Sort sort = new Sort();
sort.setName(request.getOrder());
if(StringUtils.isNotEmpty(request.getSort()) && request.getSort().compareTo("0") == 0){
sort.desc();
}else{
sort.asc();
}
param.setSorts(Arrays.asList(sort));
}
param.setPageIndex(request.getCurrPage());
param.setPageSize(request.getPageSize());
param.setPaging(true);

View File

@ -6,6 +6,7 @@ import com.qiuguo.iot.base.utils.StringUtils;
import com.qiuguo.iot.data.entity.operation.OperatinConditionEntity;
import com.qiuguo.iot.data.request.operation.OperatinConditionRequest;
import lombok.extern.slf4j.Slf4j;
import org.hswebframework.ezorm.core.param.Sort;
import org.hswebframework.ezorm.rdb.mapping.ReactiveQuery;
import org.hswebframework.ezorm.rdb.mapping.ReactiveUpdate;
import org.hswebframework.ezorm.rdb.operator.dml.query.SortOrder;
@ -15,6 +16,7 @@ import org.hswebframework.web.crud.service.GenericReactiveCrudService;
import org.springframework.stereotype.Service;
import reactor.core.publisher.Mono;
import java.util.Arrays;
import java.util.Date;
/**
* <p>
@ -104,16 +106,17 @@ public class OperatinConditionService extends GenericReactiveCrudService<Operati
if(StringUtils.isNotEmpty(request.getCondition())){
reactiveQuery = reactiveQuery.$like$(OperatinConditionRequest::getCondition, request.getCondition());
}
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());
if(StringUtils.isNotEmpty(request.getOrder())){
Sort sort = new Sort();
sort.setName(request.getOrder());
if(StringUtils.isNotEmpty(request.getSort()) && request.getSort().compareTo("0") == 0){
sort.desc();
}else{
sort.asc();
}
param.setSorts(Arrays.asList(sort));
}
param.setPageIndex(request.getCurrPage());
param.setPageSize(request.getPageSize());
param.setPaging(true);

View File

@ -6,6 +6,7 @@ import com.qiuguo.iot.base.utils.StringUtils;
import com.qiuguo.iot.data.entity.operation.OperatinEventConfigEntity;
import com.qiuguo.iot.data.request.operation.OperatinEventConfigRequest;
import lombok.extern.slf4j.Slf4j;
import org.hswebframework.ezorm.core.param.Sort;
import org.hswebframework.ezorm.rdb.mapping.ReactiveQuery;
import org.hswebframework.ezorm.rdb.mapping.ReactiveUpdate;
import org.hswebframework.ezorm.rdb.operator.dml.query.SortOrder;
@ -15,6 +16,7 @@ import org.hswebframework.web.crud.service.GenericReactiveCrudService;
import org.springframework.stereotype.Service;
import reactor.core.publisher.Mono;
import java.util.Arrays;
import java.util.Date;
/**
* <p>
@ -104,16 +106,17 @@ public class OperatinEventConfigService extends GenericReactiveCrudService<Opera
if(request.getThirdConfigInfoId() != null){
reactiveQuery = reactiveQuery.and(OperatinEventConfigRequest::getThirdConfigInfoId, request.getThirdConfigInfoId());
}
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());
if(StringUtils.isNotEmpty(request.getOrder())){
Sort sort = new Sort();
sort.setName(request.getOrder());
if(StringUtils.isNotEmpty(request.getSort()) && request.getSort().compareTo("0") == 0){
sort.desc();
}else{
sort.asc();
}
param.setSorts(Arrays.asList(sort));
}
param.setPageIndex(request.getCurrPage());
param.setPageSize(request.getPageSize());
param.setPaging(true);

View File

@ -6,6 +6,7 @@ import com.qiuguo.iot.base.utils.StringUtils;
import com.qiuguo.iot.data.entity.operation.OperatinModeEntity;
import com.qiuguo.iot.data.request.operation.OperatinModeRequest;
import lombok.extern.slf4j.Slf4j;
import org.hswebframework.ezorm.core.param.Sort;
import org.hswebframework.ezorm.rdb.mapping.ReactiveQuery;
import org.hswebframework.ezorm.rdb.mapping.ReactiveUpdate;
import org.hswebframework.ezorm.rdb.operator.dml.query.SortOrder;
@ -15,6 +16,7 @@ import org.hswebframework.web.crud.service.GenericReactiveCrudService;
import org.springframework.stereotype.Service;
import reactor.core.publisher.Mono;
import java.util.Arrays;
import java.util.Date;
/**
* <p>
@ -116,16 +118,17 @@ public class OperatinModeService extends GenericReactiveCrudService<OperatinMode
if(request.getSceneCount() != null){
reactiveQuery = reactiveQuery.and(OperatinModeRequest::getSceneCount, request.getSceneCount());
}
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());
if(StringUtils.isNotEmpty(request.getOrder())){
Sort sort = new Sort();
sort.setName(request.getOrder());
if(StringUtils.isNotEmpty(request.getSort()) && request.getSort().compareTo("0") == 0){
sort.desc();
}else{
sort.asc();
}
param.setSorts(Arrays.asList(sort));
}
param.setPageIndex(request.getCurrPage());
param.setPageSize(request.getPageSize());
param.setPaging(true);

View File

@ -6,6 +6,7 @@ import com.qiuguo.iot.base.utils.StringUtils;
import com.qiuguo.iot.data.entity.operation.OperatinSceneEntity;
import com.qiuguo.iot.data.request.operation.OperatinSceneRequest;
import lombok.extern.slf4j.Slf4j;
import org.hswebframework.ezorm.core.param.Sort;
import org.hswebframework.ezorm.rdb.mapping.ReactiveQuery;
import org.hswebframework.ezorm.rdb.mapping.ReactiveUpdate;
import org.hswebframework.ezorm.rdb.operator.dml.query.SortOrder;
@ -15,6 +16,7 @@ import org.hswebframework.web.crud.service.GenericReactiveCrudService;
import org.springframework.stereotype.Service;
import reactor.core.publisher.Mono;
import java.util.Arrays;
import java.util.Date;
/**
* <p>
@ -98,16 +100,17 @@ public class OperatinSceneService extends GenericReactiveCrudService<OperatinSce
if(StringUtils.isNotEmpty(request.getRemark())){
reactiveQuery = reactiveQuery.$like$(OperatinSceneRequest::getRemark, request.getRemark());
}
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());
if(StringUtils.isNotEmpty(request.getOrder())){
Sort sort = new Sort();
sort.setName(request.getOrder());
if(StringUtils.isNotEmpty(request.getSort()) && request.getSort().compareTo("0") == 0){
sort.desc();
}else{
sort.asc();
}
param.setSorts(Arrays.asList(sort));
}
param.setPageIndex(request.getCurrPage());
param.setPageSize(request.getPageSize());
param.setPaging(true);

View File

@ -6,6 +6,7 @@ import com.qiuguo.iot.base.utils.StringUtils;
import com.qiuguo.iot.data.entity.ota.OtaRecordEntity;
import com.qiuguo.iot.data.request.ota.OtaRecordRequest;
import lombok.extern.slf4j.Slf4j;
import org.hswebframework.ezorm.core.param.Sort;
import org.hswebframework.ezorm.rdb.mapping.ReactiveQuery;
import org.hswebframework.ezorm.rdb.mapping.ReactiveUpdate;
import org.hswebframework.ezorm.rdb.operator.dml.query.SortOrder;
@ -15,6 +16,7 @@ import org.hswebframework.web.crud.service.GenericReactiveCrudService;
import org.springframework.stereotype.Service;
import reactor.core.publisher.Mono;
import java.util.Arrays;
import java.util.Date;
/**
* <p>
@ -113,16 +115,17 @@ public class OtaRecordService extends GenericReactiveCrudService<OtaRecordEntity
if(request.getFinishTimeEnd() != null){
reactiveQuery = reactiveQuery.lte(OtaRecordRequest::getFinishTime, request.getFinishTimeEnd());
}
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());
if(StringUtils.isNotEmpty(request.getOrder())){
Sort sort = new Sort();
sort.setName(request.getOrder());
if(StringUtils.isNotEmpty(request.getSort()) && request.getSort().compareTo("0") == 0){
sort.desc();
}else{
sort.asc();
}
param.setSorts(Arrays.asList(sort));
}
param.setPageIndex(request.getCurrPage());
param.setPageSize(request.getPageSize());
param.setPaging(true);

View File

@ -5,6 +5,7 @@ import com.qiuguo.iot.base.utils.StringUtils;
import com.qiuguo.iot.data.entity.ota.OtaVersionInfoEntity;
import com.qiuguo.iot.data.request.ota.OtaVersionInfoRequest;
import lombok.extern.slf4j.Slf4j;
import org.hswebframework.ezorm.core.param.Sort;
import org.hswebframework.ezorm.rdb.mapping.ReactiveQuery;
import org.hswebframework.ezorm.rdb.mapping.ReactiveUpdate;
import org.hswebframework.ezorm.rdb.operator.dml.query.SortOrder;
@ -14,6 +15,7 @@ import org.hswebframework.web.crud.service.GenericReactiveCrudService;
import org.springframework.stereotype.Service;
import reactor.core.publisher.Mono;
import java.util.Arrays;
import java.util.Date;
/**
* <p>
@ -133,16 +135,17 @@ public class OtaVersionInfoService extends GenericReactiveCrudService<OtaVersion
if(StringUtils.isNotEmpty(request.getRemark())){
reactiveQuery = reactiveQuery.$like$(OtaVersionInfoRequest::getRemark, request.getRemark());
}
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());
if(StringUtils.isNotEmpty(request.getOrder())){
Sort sort = new Sort();
sort.setName(request.getOrder());
if(StringUtils.isNotEmpty(request.getSort()) && request.getSort().compareTo("0") == 0){
sort.desc();
}else{
sort.asc();
}
param.setSorts(Arrays.asList(sort));
}
param.setPageIndex(request.getCurrPage());
param.setPageSize(request.getPageSize());
param.setPaging(true);

View File

@ -6,6 +6,7 @@ import com.qiuguo.iot.base.utils.StringUtils;
import com.qiuguo.iot.data.entity.system.SystemAddressEntity;
import com.qiuguo.iot.data.request.system.SystemAddressRequest;
import lombok.extern.slf4j.Slf4j;
import org.hswebframework.ezorm.core.param.Sort;
import org.hswebframework.ezorm.rdb.mapping.ReactiveQuery;
import org.hswebframework.ezorm.rdb.mapping.ReactiveUpdate;
import org.hswebframework.ezorm.rdb.operator.dml.query.SortOrder;
@ -15,6 +16,7 @@ import org.hswebframework.web.crud.service.GenericReactiveCrudService;
import org.springframework.stereotype.Service;
import reactor.core.publisher.Mono;
import java.util.Arrays;
import java.util.Date;
/**
* <p>
@ -164,16 +166,17 @@ public class SystemAddressService extends GenericReactiveCrudService<SystemAddre
if(StringUtils.isNotEmpty(request.getLat())){
reactiveQuery = reactiveQuery.$like$(SystemAddressRequest::getLat, request.getLat());
}
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());
if(StringUtils.isNotEmpty(request.getOrder())){
Sort sort = new Sort();
sort.setName(request.getOrder());
if(StringUtils.isNotEmpty(request.getSort()) && request.getSort().compareTo("0") == 0){
sort.desc();
}else{
sort.asc();
}
param.setSorts(Arrays.asList(sort));
}
param.setPageIndex(request.getCurrPage());
param.setPageSize(request.getPageSize());
param.setPaging(true);

View File

@ -6,6 +6,7 @@ import com.qiuguo.iot.base.utils.StringUtils;
import com.qiuguo.iot.data.entity.system.SystemSameTalkEntity;
import com.qiuguo.iot.data.request.system.SystemSameTalkRequest;
import lombok.extern.slf4j.Slf4j;
import org.hswebframework.ezorm.core.param.Sort;
import org.hswebframework.ezorm.rdb.mapping.ReactiveQuery;
import org.hswebframework.ezorm.rdb.mapping.ReactiveUpdate;
import org.hswebframework.ezorm.rdb.operator.dml.query.SortOrder;
@ -15,6 +16,7 @@ import org.hswebframework.web.crud.service.GenericReactiveCrudService;
import org.springframework.stereotype.Service;
import reactor.core.publisher.Mono;
import java.util.Arrays;
import java.util.Date;
/**
* <p>
@ -92,16 +94,17 @@ public class SystemSameTalkService extends GenericReactiveCrudService<SystemSame
if(StringUtils.isNotEmpty(request.getRemark())){
reactiveQuery = reactiveQuery.$like$(SystemSameTalkRequest::getRemark, request.getRemark());
}
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());
if(StringUtils.isNotEmpty(request.getOrder())){
Sort sort = new Sort();
sort.setName(request.getOrder());
if(StringUtils.isNotEmpty(request.getSort()) && request.getSort().compareTo("0") == 0){
sort.desc();
}else{
sort.asc();
}
param.setSorts(Arrays.asList(sort));
}
param.setPageIndex(request.getCurrPage());
param.setPageSize(request.getPageSize());
param.setPaging(true);

View File

@ -5,6 +5,7 @@ import com.qiuguo.iot.base.utils.StringUtils;
import com.qiuguo.iot.data.entity.system.SystemTalkAnswerConfigEntity;
import com.qiuguo.iot.data.request.system.SystemTalkAnswerConfigRequest;
import lombok.extern.slf4j.Slf4j;
import org.hswebframework.ezorm.core.param.Sort;
import org.hswebframework.ezorm.rdb.mapping.ReactiveQuery;
import org.hswebframework.ezorm.rdb.mapping.ReactiveUpdate;
import org.hswebframework.ezorm.rdb.operator.dml.query.SortOrder;
@ -19,6 +20,7 @@ import reactor.core.scheduler.Scheduler;
import reactor.core.scheduler.Schedulers;
import javax.annotation.PostConstruct;
import java.util.Arrays;
import java.util.Date;
import java.util.concurrent.ConcurrentHashMap;
@ -173,16 +175,17 @@ public class SystemTalkAnswerConfigService extends GenericReactiveCrudService<Sy
if(request.getPlayType() != null){
reactiveQuery = reactiveQuery.and(SystemTalkAnswerConfigRequest::getPlayType, request.getPlayType());
}
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());
if(StringUtils.isNotEmpty(request.getOrder())){
Sort sort = new Sort();
sort.setName(request.getOrder());
if(StringUtils.isNotEmpty(request.getSort()) && request.getSort().compareTo("0") == 0){
sort.desc();
}else{
sort.asc();
}
param.setSorts(Arrays.asList(sort));
}
param.setPageIndex(request.getCurrPage());
param.setPageSize(request.getPageSize());
param.setPaging(true);

View File

@ -8,6 +8,7 @@ import com.qiuguo.iot.data.entity.system.SystemTalkBindDeviceEntity;
import com.qiuguo.iot.data.request.system.SystemTalkBindDeviceRequest;
import com.qiuguo.iot.data.request.system.SystemTalkBindDeviceRequest;
import lombok.extern.slf4j.Slf4j;
import org.hswebframework.ezorm.core.param.Sort;
import org.hswebframework.ezorm.rdb.mapping.ReactiveQuery;
import org.hswebframework.ezorm.rdb.mapping.ReactiveUpdate;
import org.hswebframework.ezorm.rdb.operator.dml.query.SortOrder;
@ -17,6 +18,7 @@ import org.hswebframework.web.crud.service.GenericReactiveCrudService;
import org.springframework.stereotype.Service;
import reactor.core.publisher.Mono;
import java.util.Arrays;
import java.util.Date;
/**
* <p>
@ -148,16 +150,17 @@ public class SystemTalkBindDeviceService extends GenericReactiveCrudService<Syst
if(StringUtils.isNotEmpty(request.getRemark())){
reactiveQuery = reactiveQuery.$like$(SystemTalkBindDeviceRequest::getRemark, request.getRemark());
}
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());
if(StringUtils.isNotEmpty(request.getOrder())){
Sort sort = new Sort();
sort.setName(request.getOrder());
if(StringUtils.isNotEmpty(request.getSort()) && request.getSort().compareTo("0") == 0){
sort.desc();
}else{
sort.asc();
}
param.setSorts(Arrays.asList(sort));
}
param.setPageIndex(request.getCurrPage());
param.setPageSize(request.getPageSize());
param.setPaging(true);

View File

@ -5,6 +5,7 @@ import com.qiuguo.iot.base.utils.StringUtils;
import com.qiuguo.iot.data.entity.third.ThirdConfigInfoEntity;
import com.qiuguo.iot.data.request.third.ThirdConfigInfoRequest;
import lombok.extern.slf4j.Slf4j;
import org.hswebframework.ezorm.core.param.Sort;
import org.hswebframework.ezorm.rdb.mapping.ReactiveQuery;
import org.hswebframework.ezorm.rdb.mapping.ReactiveUpdate;
import org.hswebframework.ezorm.rdb.operator.dml.query.SortOrder;
@ -14,6 +15,7 @@ import org.hswebframework.web.crud.service.GenericReactiveCrudService;
import org.springframework.stereotype.Service;
import reactor.core.publisher.Mono;
import java.util.Arrays;
import java.util.Date;
/**
* <p>
@ -127,16 +129,17 @@ public class ThirdConfigInfoService extends GenericReactiveCrudService<ThirdConf
if(StringUtils.isNotEmpty(request.getProductUrl())){
reactiveQuery = reactiveQuery.$like$(ThirdConfigInfoRequest::getProductUrl, request.getProductUrl());
}
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());
if(StringUtils.isNotEmpty(request.getOrder())){
Sort sort = new Sort();
sort.setName(request.getOrder());
if(StringUtils.isNotEmpty(request.getSort()) && request.getSort().compareTo("0") == 0){
sort.desc();
}else{
sort.asc();
}
param.setSorts(Arrays.asList(sort));
}
param.setPageIndex(request.getCurrPage());
param.setPageSize(request.getPageSize());
param.setPaging(true);

View File

@ -6,6 +6,7 @@ import com.qiuguo.iot.base.utils.StringUtils;
import com.qiuguo.iot.data.entity.third.ThirdUserBindEntity;
import com.qiuguo.iot.data.request.third.ThirdUserBindRequest;
import lombok.extern.slf4j.Slf4j;
import org.hswebframework.ezorm.core.param.Sort;
import org.hswebframework.ezorm.rdb.mapping.ReactiveQuery;
import org.hswebframework.ezorm.rdb.mapping.ReactiveUpdate;
import org.hswebframework.ezorm.rdb.operator.dml.query.SortOrder;
@ -15,6 +16,7 @@ import org.hswebframework.web.crud.service.GenericReactiveCrudService;
import org.springframework.stereotype.Service;
import reactor.core.publisher.Mono;
import java.util.Arrays;
import java.util.Date;
/**
* <p>
@ -104,16 +106,17 @@ public class ThirdUserBindService extends GenericReactiveCrudService<ThirdUserBi
if(request.getThirdId() != null){
reactiveQuery = reactiveQuery.and(ThirdUserBindRequest::getThirdId, request.getThirdId());
}
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());
if(StringUtils.isNotEmpty(request.getOrder())){
Sort sort = new Sort();
sort.setName(request.getOrder());
if(StringUtils.isNotEmpty(request.getSort()) && request.getSort().compareTo("0") == 0){
sort.desc();
}else{
sort.asc();
}
param.setSorts(Arrays.asList(sort));
}
param.setPageIndex(request.getCurrPage());
param.setPageSize(request.getPageSize());
param.setPaging(true);

View File

@ -6,6 +6,7 @@ import com.qiuguo.iot.base.utils.StringUtils;
import com.qiuguo.iot.data.entity.u3d.U3dActionEntity;
import com.qiuguo.iot.data.request.u3d.U3dActionRequest;
import lombok.extern.slf4j.Slf4j;
import org.hswebframework.ezorm.core.param.Sort;
import org.hswebframework.ezorm.rdb.mapping.ReactiveQuery;
import org.hswebframework.ezorm.rdb.mapping.ReactiveUpdate;
import org.hswebframework.ezorm.rdb.operator.dml.query.SortOrder;
@ -15,6 +16,7 @@ import org.hswebframework.web.crud.service.GenericReactiveCrudService;
import org.springframework.stereotype.Service;
import reactor.core.publisher.Mono;
import java.util.Arrays;
import java.util.Date;
/**
* <p>
@ -98,16 +100,17 @@ public class U3dActionService extends GenericReactiveCrudService<U3dActionEntity
if(StringUtils.isNotEmpty(request.getAction())){
reactiveQuery = reactiveQuery.$like$(U3dActionRequest::getAction, request.getAction());
}
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());
if(StringUtils.isNotEmpty(request.getOrder())){
Sort sort = new Sort();
sort.setName(request.getOrder());
if(StringUtils.isNotEmpty(request.getSort()) && request.getSort().compareTo("0") == 0){
sort.desc();
}else{
sort.asc();
}
param.setSorts(Arrays.asList(sort));
}
param.setPageIndex(request.getCurrPage());
param.setPageSize(request.getPageSize());
param.setPaging(true);

View File

@ -5,9 +5,13 @@ 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 java.util.Arrays;
import java.util.List;
import lombok.extern.slf4j.Slf4j;
import java.util.Date;
import org.hswebframework.ezorm.core.param.Sort;
import org.hswebframework.ezorm.rdb.mapping.ReactiveQuery;
import org.hswebframework.ezorm.rdb.mapping.ReactiveUpdate;
import org.hswebframework.ezorm.rdb.operator.dml.query.SortOrder;
@ -137,16 +141,17 @@ public class UserHandlingDeviceService extends GenericReactiveCrudService<UserHa
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());
if(StringUtils.isNotEmpty(request.getOrder())){
Sort sort = new Sort();
sort.setName(request.getOrder());
if(StringUtils.isNotEmpty(request.getSort()) && request.getSort().compareTo("0") == 0){
sort.desc();
}else{
sort.asc();
}
param.setSorts(Arrays.asList(sort));
}
param.setPageIndex(request.getCurrPage());
param.setPageSize(request.getPageSize());
param.setPaging(true);

View File

@ -6,7 +6,11 @@ import com.qiuguo.iot.base.utils.StringUtils;
import com.qiuguo.iot.data.entity.user.UserHomeEntity;
import com.qiuguo.iot.data.request.user.UserHomeRequest;
import lombok.extern.slf4j.Slf4j;
import java.util.Arrays;
import java.util.Date;
import org.hswebframework.ezorm.core.param.Sort;
import org.hswebframework.ezorm.rdb.mapping.ReactiveQuery;
import org.hswebframework.ezorm.rdb.mapping.ReactiveUpdate;
import org.hswebframework.ezorm.rdb.operator.dml.query.SortOrder;
@ -92,16 +96,17 @@ public class UserHomeService extends GenericReactiveCrudService<UserHomeEntity,
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);
}
QueryParamEntity param = QueryParamEntity.of(reactiveQuery.getParam());
if(StringUtils.isNotEmpty(request.getOrder())){
Sort sort = new Sort();
sort.setName(request.getOrder());
if(StringUtils.isNotEmpty(request.getSort()) && request.getSort().compareTo("0") == 0){
sort.desc();
}else{
sort.asc();
}
param.setSorts(Arrays.asList(sort));
}
param.setPageIndex(request.getCurrPage());
param.setPageSize(request.getPageSize());
param.setPaging(true);

View File

@ -6,7 +6,11 @@ import com.qiuguo.iot.base.utils.StringUtils;
import com.qiuguo.iot.data.entity.user.UserRoomEntity;
import com.qiuguo.iot.data.request.user.UserRoomRequest;
import lombok.extern.slf4j.Slf4j;
import java.util.Arrays;
import java.util.Date;
import org.hswebframework.ezorm.core.param.Sort;
import org.hswebframework.ezorm.rdb.mapping.ReactiveQuery;
import org.hswebframework.ezorm.rdb.mapping.ReactiveUpdate;
import org.hswebframework.ezorm.rdb.operator.dml.query.SortOrder;
@ -100,16 +104,17 @@ public class UserRoomService extends GenericReactiveCrudService<UserRoomEntity,
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());
if(StringUtils.isNotEmpty(request.getOrder())){
Sort sort = new Sort();
sort.setName(request.getOrder());
if(StringUtils.isNotEmpty(request.getSort()) && request.getSort().compareTo("0") == 0){
sort.desc();
}else{
sort.asc();
}
param.setSorts(Arrays.asList(sort));
}
param.setPageIndex(request.getCurrPage());
param.setPageSize(request.getPageSize());
param.setPaging(true);

View File

@ -5,6 +5,7 @@ import com.qiuguo.iot.base.utils.StringUtils;
import com.qiuguo.iot.data.entity.user.UserSuggestionRecordEntity;
import com.qiuguo.iot.data.request.user.UserSuggestionRecordRequest;
import lombok.extern.slf4j.Slf4j;
import org.hswebframework.ezorm.core.param.Sort;
import org.hswebframework.ezorm.rdb.mapping.ReactiveQuery;
import org.hswebframework.ezorm.rdb.mapping.ReactiveUpdate;
import org.hswebframework.ezorm.rdb.operator.dml.query.SortOrder;
@ -14,6 +15,7 @@ import org.hswebframework.web.crud.service.GenericReactiveCrudService;
import org.springframework.stereotype.Service;
import reactor.core.publisher.Mono;
import java.util.Arrays;
import java.util.Date;
/**
* <p>
@ -109,16 +111,17 @@ public class UserSuggestionRecordService extends GenericReactiveCrudService<User
if(request.getSuggestionType() != null){
reactiveQuery = reactiveQuery.and(UserSuggestionRecordRequest::getSuggestionType, request.getSuggestionType());
}
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());
if(StringUtils.isNotEmpty(request.getOrder())){
Sort sort = new Sort();
sort.setName(request.getOrder());
if(StringUtils.isNotEmpty(request.getSort()) && request.getSort().compareTo("0") == 0){
sort.desc();
}else{
sort.asc();
}
param.setSorts(Arrays.asList(sort));
}
param.setPageIndex(request.getCurrPage());
param.setPageSize(request.getPageSize());
param.setPaging(true);

View File

@ -1,8 +1,12 @@
package com.qiuguo.iot.third.service;
import com.qiuguo.iot.base.enums.ChinesePartSpeechEnum;
import com.qiuguo.iot.base.enums.DeviceTypeEnum;
import com.qiuguo.iot.base.utils.StringUtils;
import com.qiuguo.iot.data.entity.device.DeviceUserBindEntity;
import com.qiuguo.iot.data.entity.system.SystemTalkAnswerConfigEntity;
import com.qiuguo.iot.data.request.device.DeviceUserBindRequest;
import com.qiuguo.iot.data.service.device.DeviceUserBindService;
import com.qiuguo.iot.data.service.system.SystemTalkAnswerConfigService;
import com.qiuguo.iot.third.nlp.INlp;
import com.qiuguo.iot.third.nlp.NlpKey;
@ -14,9 +18,7 @@ import org.springframework.stereotype.Service;
import reactor.core.publisher.Mono;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.*;
@Service
@Slf4j
@ -24,11 +26,182 @@ public class NlpService {
@Resource
private LacNlpService liguoNlpService;
@Resource
private DeviceUserBindService deviceUserBindService;
@Resource
private SystemTalkAnswerConfigService systemTalkAnswerConfigService;
public Mono<Actions> getActionWithLacSingle(String text){
/**
* 查询最多设备数量
*/
private static Integer MAX_COUT = 2000;
public Mono<Actions> getActionWithLacSingle(Long userId, String text){
/*if(userId != null){
DeviceUserBindRequest request = new DeviceUserBindRequest();
request.setUserId(userId);
//涂鸦设备
request.setDeviceType(DeviceTypeEnum.ELECTRIC_SOCKET.getCode());
request.setPageSize(MAX_COUT);
return deviceUserBindService.selectDeviceUserBindsByRequest(request).flatMap(deviceUserBindEntityPagerResult -> {
if(deviceUserBindEntityPagerResult.getData().size() > 0){
List<DeviceUserBindEntity> list = deviceUserBindEntityPagerResult.getData();
list.sort((a, b) -> {
return b.getBindName().length() - a.getBindName().length();
});//按照名称由长到短排序
List<DeviceUserBindEntity> includs = new ArrayList<>();
String pText = text;
int i = 0;
for (DeviceUserBindEntity entity:list
) {
if(pText.indexOf(entity.getBindName()) >= 0){
//找到对应的名称
pText = pText.replace(entity.getBindName(), ">" + (i++) + "<");
includs.add(entity);
}
}
if(includs.size() > 0){
//String ppText = pText;
return liguoNlpService.geSingletNlp(pText).map(nlp -> {
Actions actions = new Actions();
actions.setActions(new ArrayList<>());
//nlp.getKeys().sort(Comparator.comparing(NlpKey::getType)); //解析,按照type从小到大排序
Action action = new Action();
String name = "";
action.setName(new ArrayList<>());
action.setLbs(new ArrayList<>());
action.setAsk(text);
int a = 0, b = 0;
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities = new ArrayList<>();
SystemTalkAnswerConfigEntity lastSystemTalkAnswerConfigEntity = null;
String lastName = null;
for (NlpKey key : nlp.getKeys()
) {
if(a + b == 2){
a = 0;
b = 0;
if(systemTalkAnswerConfigEntities.size() > 0){//指令按照优先级排序
systemTalkAnswerConfigEntities.sort(Comparator.comparing(SystemTalkAnswerConfigEntity::getKeyOrder));
lastSystemTalkAnswerConfigEntity = systemTalkAnswerConfigEntities.get(0);
action.setSystemTalkAnswerConfigEntity(lastSystemTalkAnswerConfigEntity);
action.setAction(action.getSystemTalkAnswerConfigEntity().getAskKey());
systemTalkAnswerConfigEntities.clear();
}else if(lastSystemTalkAnswerConfigEntity != null){
action.setSystemTalkAnswerConfigEntity(lastSystemTalkAnswerConfigEntity);
action.setAction(action.getSystemTalkAnswerConfigEntity().getAskKey());
}
if(StringUtils.isNotEmpty(name)){
action.getName().add(name);
lastName = name;
}else if(action != null && StringUtils.isNotEmpty(lastName)){
action.getName().add(lastName);
}
actions.getActions().add(action);
action = new Action();
name = "";
action.setName(new ArrayList<>());
action.setLbs(new ArrayList<>());
action.setAsk(text);
}
if(key.getType().equals(ChinesePartSpeechEnum.v.getCode())){
action.setAction(key.getKey());
SystemTalkAnswerConfigEntity entity = systemTalkAnswerConfigService.getSystemTalkWithKey(action.getAction());
if(entity != null){
systemTalkAnswerConfigEntities.add(entity);
}
a = 1;
}else if(key.getType().equals(ChinesePartSpeechEnum.n.getCode())){
//匹配到关键词就不能作为名词加入未匹配到的分割前的都加入名词
SystemTalkAnswerConfigEntity entity = systemTalkAnswerConfigService.getSystemTalkWithKey(key.getKey());
if(entity != null){
systemTalkAnswerConfigEntities.add(entity);
if(StringUtils.isNotEmpty(name)){//已记录的加进去
//
entity = systemTalkAnswerConfigService.getSystemTalkWithKey(name);
if(entity != null){
systemTalkAnswerConfigEntities.add(entity);
}else{
action.getName().add(name);//加入分割前的名词
name = "";
}
}
}else{
name += key.getKey();
}
b = 1;
}else if(key.getType().equals(ChinesePartSpeechEnum.m.getCode())){
action.setStatus(key.getKey());
}else if(key.getType().equals(ChinesePartSpeechEnum.c.getCode())){
if(StringUtils.isNotEmpty(name)){
action.getName().add(name);
}
name = "";
}else if(key.getType().equals(ChinesePartSpeechEnum.nt.getCode())){
action.getLbs().add(key.getKey());
}else if(key.getType().equals(ChinesePartSpeechEnum.t.getCode())){
//解析时间关键字
action.setTime(new ActionTime());
action.getTime().setTime(key.getKey());
}else if(key.getType().equals(ChinesePartSpeechEnum.qg.getCode())){
//替换成对应的设备
}
}
if(StringUtils.isNotEmpty(name)){
SystemTalkAnswerConfigEntity entity = systemTalkAnswerConfigService.getSystemTalkWithKey(name);
if(entity != null){
systemTalkAnswerConfigEntities.add(entity);
}else{
action.getName().add(name);
}
}else{
if(StringUtils.isNotEmpty(lastName)){
action.getName().add(lastName);
}
}
if(systemTalkAnswerConfigEntities.size() > 0){//指令按照优先级排序
systemTalkAnswerConfigEntities.sort(Comparator.comparing(SystemTalkAnswerConfigEntity::getKeyOrder));
action.setSystemTalkAnswerConfigEntity(systemTalkAnswerConfigEntities.get(0));
action.setAction(action.getSystemTalkAnswerConfigEntity().getAskKey());
//actions.getActions().add(action);
}else if(lastSystemTalkAnswerConfigEntity != null){
action.setSystemTalkAnswerConfigEntity(lastSystemTalkAnswerConfigEntity);
action.setAction(action.getSystemTalkAnswerConfigEntity().getAskKey());
//actions.getActions().add(action);
}
if(a + b > 0){
actions.getActions().add(action);
}
return actions;
});
}
}
//Actions actions = null;
return getActions(text);
});
}*/
//20230928日记后期改成先匹配用户的设备名称再找动词
return getActions(text);
}
public Mono<Actions> getActions(String text) {
return liguoNlpService.geSingletNlp(text).map(nlp -> {
Actions actions = new Actions();
actions.setActions(new ArrayList<>());
@ -63,7 +236,7 @@ public class NlpService {
action.getName().add(name);
lastName = name;
}else if(action != null && StringUtils.isNotEmpty(lastName)){
action.getName().add(lastName);
action.getName().add(lastName);
}
actions.getActions().add(action);

View File

@ -9,13 +9,17 @@ import com.qiuguo.iot.base.enums.OrderByEnum;
import com.qiuguo.iot.base.enums.YesNo;
import com.qiuguo.iot.base.utils.StringUtils;
import com.qiuguo.iot.data.entity.device.DeviceInfoEntity;
import com.qiuguo.iot.data.entity.device.DeviceUserBindEntity;
import com.qiuguo.iot.data.entity.device.DeviceUserTalkRecordEntity;
import com.qiuguo.iot.data.request.device.DeviceInfoRequest;
import com.qiuguo.iot.data.request.device.DeviceUserBindRequest;
import com.qiuguo.iot.data.request.device.DeviceUserTalkRecordRequest;
import com.qiuguo.iot.data.resp.device.DeviceTalkRecordResp;
import com.qiuguo.iot.data.resp.device.DeviceUserBindResp;
import com.qiuguo.iot.data.resp.device.DeviceUserTalkRecordResp;
import com.qiuguo.iot.data.service.device.DeviceBatchService;
import com.qiuguo.iot.data.service.device.DeviceInfoService;
import com.qiuguo.iot.data.service.device.DeviceUserBindService;
import com.qiuguo.iot.data.service.device.DeviceUserTalkRecordService;
import com.qiuguo.iot.third.service.TuyaDeviceConnector;
import com.qiuguo.iot.user.api.resp.device.DeviceInitResp;
@ -59,6 +63,9 @@ public class DeviceController {
@Resource
private DeviceUserTalkRecordService deviceUserTalkRecordService;
@Resource
private DeviceUserBindService deviceUserBindService;
@Value("${device.timeout}")
private Long timeOut;//2分钟
@ -138,10 +145,10 @@ public class DeviceController {
@PostMapping("/talk/records")
public Mono<PagerResult<DeviceTalkRecordResp>> talkRecords(@RequestBody DeviceUserTalkRecordRequest request){
if(StringUtils.isNotEmpty(request.getOrder()) && StringUtils.isNotEmpty(request.getOrder())){
if(StringUtils.isAllEmpty(request.getOrder()) && StringUtils.isAllEmpty(request.getOrder())){
//默认按照时间倒叙排序
request.setOrder("create_time");
request.setOrder(OrderByEnum.DESC.getName());
request.setSort(OrderByEnum.DESC.getName());
}
return deviceUserTalkRecordService.selectDeviceUserTalkRecordsByRequest(request)
.map(deviceUserTalkRecordEntityPagerResult -> {
@ -162,6 +169,31 @@ public class DeviceController {
});
}
@PostMapping("/getBindBoxs")
public Mono<PagerResult<DeviceUserBindResp>> getBindBoxs(@RequestBody DeviceUserBindRequest request){
request.setDeviceType(DeviceTypeEnum.GUO_BOX.getCode());
return deviceUserBindService.selectDeviceUserBindsContainOnLineByRequest(request)
.map(deviceUserBindEntityPagerResult -> {
PagerResult<DeviceUserBindResp> pagerResult = new PagerResult<>();
pagerResult.setTotal(deviceUserBindEntityPagerResult.getTotal());
pagerResult.setPageSize(deviceUserBindEntityPagerResult.getPageSize());
pagerResult.setPageIndex(deviceUserBindEntityPagerResult.getPageIndex());
List<DeviceUserBindResp> list = new ArrayList<>();
/*for (DeviceUserBindEntity d :deviceUserBindEntityPagerResult.getData()
) {
DeviceUserBindResp deviceUserBindResp = new DeviceUserBindResp(d);
list.add(deviceUserBindResp);
}*/
pagerResult.setData(list);
return pagerResult;
});
}
@GetMapping("/deviceBySnId")
public Mono<JSONArray> aa(@RequestParam("sn") String sn){

View File

@ -287,29 +287,39 @@ public class BaseWebSocketProcess {
baseSession.setMusic(null);
}else{
boxSession.setMusic(resp.getMusic());
baseSession.setMusic(resp.getMusic());
}
}else{
log.info("设备sn{}不在线,无法播放", baseSession.getSn());
resp.setText("设备不在线,无法播放");
if(resp.getMusic().getPlay().equals(PlayEnum.STOP.getCode())){
//去掉内存中音乐同步对象
baseSession.setMusic(null);
}else{
baseSession.setMusic(resp.getMusic());
}
}
}else{//果box的
//记录音乐状态
BaseSession userSession = getUserSessionWithUserId(baseSession.getUserId());
//记录音乐状态
if(resp.getMusic().getPlay().equals(PlayEnum.STOP.getCode())){
//去掉内存中音乐同步对象
if(userSession != null){
//去掉内存中音乐同步对象
if(userSession != null){
if(resp.getMusic().getPlay().equals(PlayEnum.STOP.getCode())){
baseSession.setMusic(null);
userSession.setMusic(null);
//如果在线推送用户端
}else{
baseSession.setMusic(resp.getMusic());
}
baseSession.setMusic(null);
//如果在线推送用户端
}else{
if(userSession != null){
userSession.setMusic(resp.getMusic());
//如果在线推送用户端
if(resp.getMusic().getPlay().equals(PlayEnum.STOP.getCode())){
baseSession.setMusic(null);
}else{
baseSession.setMusic(resp.getMusic());
}
baseSession.setMusic(resp.getMusic());
}
}
}
deviceUserTalkRecordService.insertDeviceUserTalkRecord(talkRecord).map(i ->{

View File

@ -83,8 +83,9 @@ public class BoxWebSocketHandler extends BaseWebSocketProcess implements WebSock
String text = webSocketMessage.getPayloadAsText();
log.info("设备端收到消息:{}", text);
BoxTalkMessage boxTalkMessage = JSONObject.parseObject(text, BoxTalkMessage.class);
nlpService.getActionWithLacSingle(boxTalkMessage.getMessage()).defaultIfEmpty(new Actions()).map(actions -> {
BaseSession boxSession = getBoxSessionWithSn(boxTalkMessage.getSn());
BoxSession boxSession = getBoxSessionWithSn(boxTalkMessage.getSn());
nlpService.getActionWithLacSingle(boxSession.getUserId(), boxTalkMessage.getMessage()).defaultIfEmpty(new Actions()).map(actions -> {
//处理
if(actions.getActions() == null || actions.getActions().size() == 0){
//调用千问回答
@ -119,6 +120,7 @@ public class BoxWebSocketHandler extends BaseWebSocketProcess implements WebSock
// MDC.put(LogMdcConfiguration.PRINT_LOG_ID, requestId);
boxGroup.remove(boxSession.getSn());//断链后及时移除
log.info("设备断开连接SN{}", boxSession.getSn());
deviceInfoService.setOnLineStatus(sn, YesNo.NO.getCode()).subscribe();
ReactiveValueOperations<String, String> operations = reactiveStringRedisTemplate.opsForValue();
UserDeviceInfoModel userDeviceInfoModel = new UserDeviceInfoModel();
userDeviceInfoModel.setStatus(YesNo.NO.getCode());
@ -192,7 +194,8 @@ public class BoxWebSocketHandler extends BaseWebSocketProcess implements WebSock
DeviceUserBindRequest request = new DeviceUserBindRequest();
request.setUserId(userId);
request.setDeviceId(dv.getId());
//跟新在线状态
deviceInfoService.setOnLineStatus(dv.getId(), YesNo.YES.getCode()).subscribe();
deviceUserBindService.selectDeviceUserBindByRequest(request)
.defaultIfEmpty(new DeviceUserBindEntity())
.map(entity ->{

View File

@ -105,18 +105,20 @@ public class CustomerWebSocketHandler extends BaseWebSocketProcess implements We
String text = webSocketMessage.getPayloadAsText();
log.info("收到用户消息:{}", text);
UserTalkMessage userTalkMessage = JSONObject.parseObject(text, UserTalkMessage.class);
nlpService.getActionWithLacSingle(userTalkMessage.getMessage()).defaultIfEmpty(new Actions()).map(actions -> {
BaseSession userSession = getUserSessionWithUserId(userTalkMessage.getUserId());
//处理
if(actions.getActions() == null || actions.getActions().size() == 0){
//调用千问回答
log.info("未匹配到自定义命令,调用千问");
}else{
processAction(actions, userId, userSession);
}
BaseSession userSession = getUserSessionWithUserId(userTalkMessage.getUserId());
nlpService.getActionWithLacSingle(userSession.getUserId(), userTalkMessage.getMessage())
.defaultIfEmpty(new Actions()).map(actions -> {
//处理
if(actions.getActions() == null || actions.getActions().size() == 0){
//调用千问回答
log.info("未匹配到自定义命令,调用千问");
}else{
processAction(actions, userId, userSession);
}
return Mono.empty();
}).subscribe();
return Mono.empty();
}).subscribe();
log.info("收到用户userId:{},消息:{}", userTalkMessage.getUserId(), userTalkMessage.getMessage());
//MDC.remove(LogMdcConfiguration.PRINT_LOG_ID);
return Mono.empty();

View File

@ -82,8 +82,8 @@ public class MysqlMain {
}
List<TablesBean> list = new ArrayList<>();
list.add(new TablesBean("system_talk_answer_config"));
list.add(new TablesBean("system_same_talk"));
list.add(new TablesBean("device_user_bind"));
//list.add(new TablesBean("system_same_talk"));
List<TablesBean> list2 = new ArrayList<TablesBean>();
Map<String, String> map = MysqlUtil2ShowCreateTable.getComments();

View File

@ -100,17 +100,19 @@ public class MysqlUtilTable2Service {
content += TAB + TAB + "}\n";
}
}
content += TAB + TAB + "SortOrder sortOrder = null;\n";
content += TAB + TAB + "if(StringUtils.isNotEmpty(request.getOrder())){\n";
content += TAB + TAB + TAB + "if(StringUtils.isNotEmpty(request.getSort()) && request.getSort().compareTo(\"0\") == 0){\n";
content += TAB + TAB + TAB + TAB + "sortOrder = SortOrder.desc(request.getOrder());\n";
content += TAB + TAB + TAB + "}else{\n";
content += TAB + TAB + TAB + TAB + "sortOrder = SortOrder.asc(request.getOrder());\n";
content += TAB + TAB + TAB + "}\n";
content += TAB + TAB + TAB + "reactiveQuery = reactiveQuery.orderBy(sortOrder);\n";
content += TAB + TAB + "}\n";
content += TAB + TAB +"QueryParamEntity param = QueryParamEntity.of(reactiveQuery.getParam());\n" +
"\t\tparam.setPageIndex(request.getCurrPage());\n" +
content += TAB + TAB + "QueryParamEntity param = QueryParamEntity.of(reactiveQuery.getParam());\n" +
"\t\tif(StringUtils.isNotEmpty(request.getOrder())){\n" +
"\t\t\tSort sort = new Sort();\n" +
"\t\t\tsort.setName(request.getOrder());\n" +
"\t\t\tif(StringUtils.isNotEmpty(request.getSort()) && request.getSort().compareTo(\"0\") == 0){\n" +
"\t\t\t\tsort.desc();\n" +
"\t\t\t}else{\n" +
"\t\t\t\tsort.asc();\n" +
"\t\t\t}\n" +
"\t\t\tparam.setSorts(Arrays.asList(sort));\n" +
"\t\t}\n";
content += "\t\tparam.setPageIndex(request.getCurrPage());\n" +
"\t\tparam.setPageSize(request.getPageSize());\n" +
"\t\tparam.setPaging(true);\n" +
"\t\tparam.setFirstPageIndex(1);\n";

View File

@ -0,0 +1,88 @@
package com.admin.service.impl;
import org.apache.commons.lang3.StringUtils;
import java.util.Date;
/**
* <p>
* 设备与用户绑定Controller类
* </p>
*
* @author wulin
* @since 2023-10-07
*/
@RestController
@Slf4j
@RequestMapping("/DeviceUserBind")
public class DeviceUserBindController{
@Autowired
private DeviceUserBindService deviceUserBindService;
@PostMapping("/info")
public Mono<DeviceUserBindResp> selectDeviceUserBindByRequest(@RequestBody DeviceUserBindRequest request){
return deviceUserBindService.selectDeviceUserBindByRequest(request).map(d -> {return new DeviceUserBindResp(d);});
}
@PostMapping("/list")
public Mono<PagerResult<DeviceUserBindResp>> selectDeviceUserBindsByRequest(@RequestBody DeviceUserBindRequest request){
return deviceUserBindService.selectDeviceInfosByRequest(request).map(d -> {
PagerResult<DeviceUserBindResp> result = new PagerResult<>();
result.setPageIndex(d.getPageIndex());
result.setPageSize(d.getPageSize());
result.setTotal(d.getTotal());
List<DeviceUserBindResp> ds = d.getData().stream().map(new Function<DeviceUserBindEntity, DeviceUserBindResp>() {
@Override
public DeviceInfoResp apply(DeviceUserBindEntity entity) {
return new DeviceUserBindResp(entity);
}
}
).collect(Collectors.toList());
result.setData(ds);
return result;
});
}
@GetMapping("/id")
public Mono<DeviceUserBindResp> selectDeviceUserBindById(@RequestParam Long id){
return deviceUserBindService.selectDeviceUserBindById(id).map(d -> {return new DeviceUserBindResp(d);});
}
@PostMapping("/save")
public Mono<Integer> insertDeviceUserBind(@RequestBody DeviceUserBindEntity entity){
return deviceUserBindService.insertDeviceUserBind(entity);
}
@PostMapping("/update")
public Mono<Integer> updateDeviceUserBindById(@RequestBody DeviceUserBindEntity entity){
return deviceUserBindService.updateDeviceUserBindById(entity);
}
@PostMapping("/updateCover")
public Mono<Integer> updateCoverDeviceUserBindById(@RequestBody DeviceUserBindEntity entity){
return deviceUserBindService.updateCoverDeviceUserBindById(entity);
}
@PostMapping("/delete")
public Mono<Integer> deleteDeviceUserBindById(@RequestParam Long id){
return deviceUserBindService.deleteDeviceUserBindById(id);
}
}

View File

@ -0,0 +1,92 @@
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;
/**
* <p>
* </p>*设备与用户绑定表
* @author wulin
* @since 2023-10-07
*/
@Data
@Comment("设备与用户绑定表")
@Table(name = "device_user_bind")
@EnableEntityEvent
public class DeviceUserBindEntity extends GenericEntity<Long> {
@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("用户Id")
@Column(name = "user_id", nullable = false)
private Long userId;
@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("设备id")
@Column(name = "device_id", nullable = false)
private Long deviceId;
@Comment("三方设备id")
@Column(name = "other_device_id", length = 100)
private Long otherDeviceId;
@Comment("涂鸦空间id")
@Column(name = "space_id")
private Long spaceId;
@Comment("是否为主设备 1是 0不是")
@Column(name = "is_main", nullable = false)
private Integer isMain;
@Comment("绑定设备名称(用户命名)")
@Column(name = "bind_name", length = 100)
private String bindName;
@Comment("国家")
@Column(name = "country", length = 100)
private String country;
@Comment("")
@Column(name = "province", length = 100)
private String province;
@Comment("")
@Column(name = "city", length = 100)
private String city;
@Comment("县、区")
@Column(name = "county", length = 100)
private String county;
@Comment("乡镇")
@Column(name = "village", length = 100)
private String village;
@Comment("乡镇以下地址")
@Column(name = "address", length = 200)
private String address;
@Comment("第三方分类名称")
@Column(name = "category_code", length = 100)
private String categoryCode;
}

View File

@ -0,0 +1,67 @@
package com.qiuguo.iot.data.entity;
import lombok.Data;
import java.util.Date;
/**
* <p>
*设备与用户绑定请求类
* @author wulin
* @since 2023-10-07
*/
@Data
public class DeviceUserBindRequest 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;
//用户Id
private Long userId;
//设备类型0 果Box 1 涂鸦设备 2智能大灯 3智能窗帘驱动 4智能窗户关闭 5智能台灯 6智能桌子 7智能椅子 8智能风扇 9智能空调遥控器 10智能冰箱 11智能洗碗机 12智能电热水器 13温度传感器 14空气质量传感器 15光线传感器 16雨量传感器 17闭门器
private Integer deviceType;
//设备id
private Long deviceId;
//三方设备id
private Long otherDeviceId;
//涂鸦空间id
private Long spaceId;
//是否为主设备 1 0不是
private Integer isMain;
//绑定设备名称用户命名
private String bindName;
//国家
private String country;
//
private String province;
//
private String city;
//
private String county;
//乡镇
private String village;
//乡镇以下地址
private String address;
//第三方分类名称
private String categoryCode;
}

View File

@ -0,0 +1,69 @@
package com.qiuguo.iot.data.entity;
import lombok.Data;
import java.util.Date;
/**
* <p>
* </p>*设备与用户绑定返回类
* @author wulin
* @since 2023-10-07
*/
@Data
public class DeviceUserBindResp {
public DeviceUserBindResp(){
}
public DeviceUserBindResp(DeviceUserBindEntity entity){
id = entity.getId();
createTime = entity.getCreateTime();
modifyTime = entity.getModifyTime();
userId = entity.getUserId();
deviceType = entity.getDeviceType();
deviceId = entity.getDeviceId();
otherDeviceId = entity.getOtherDeviceId();
spaceId = entity.getSpaceId();
isMain = entity.getIsMain();
bindName = entity.getBindName();
country = entity.getCountry();
province = entity.getProvince();
city = entity.getCity();
county = entity.getCounty();
village = entity.getVillage();
address = entity.getAddress();
categoryCode = entity.getCategoryCode();
}
//
private Long id;
//创建时间
private Date createTime;
//修改时间
private Date modifyTime;
//用户Id
private Long userId;
//设备类型0 果Box 1 涂鸦设备 2智能大灯 3智能窗帘驱动 4智能窗户关闭 5智能台灯 6智能桌子 7智能椅子 8智能风扇 9智能空调遥控器 10智能冰箱 11智能洗碗机 12智能电热水器 13温度传感器 14空气质量传感器 15光线传感器 16雨量传感器 17闭门器
private Integer deviceType;
//设备id
private Long deviceId;
//三方设备id
private Long otherDeviceId;
//涂鸦空间id
private Long spaceId;
//是否为主设备 1 0不是
private Integer isMain;
//绑定设备名称用户命名
private String bindName;
//国家
private String country;
//
private String province;
//
private String city;
//
private String county;
//乡镇
private String village;
//乡镇以下地址
private String address;
//第三方分类名称
private String categoryCode;
}

View File

@ -0,0 +1,279 @@
package com.admin.service.impl;
import org.apache.commons.lang3.StringUtils;
import java.util.Date;
/**
* <p>
* 设备与用户绑定服务类
* </p>
*
* @author wulin
* @since 2023-10-07
*/
@Service
@Slf4j
public class DeviceUserBindService extends GenericReactiveCrudService<DeviceUserBindEntity, Long> {
public Mono<DeviceUserBindEntity> selectDeviceUserBindByRequest(DeviceUserBindRequest request){
ReactiveQuery<DeviceUserBindEntity> reactiveQuery = createQuery();
reactiveQuery = reactiveQuery.and("is_delete", 0);
if(request.getId() != null){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getId, request.getId());
}
if(request.getIsDelete() != null){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getIsDelete, request.getIsDelete());
}
if(request.getCreateTime() != null){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getCreateTime, request.getCreateTime());
}
if(request.getModifyTime() != null){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getModifyTime, request.getModifyTime());
}
if(request.getUserId() != null){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getUserId, request.getUserId());
}
if(request.getDeviceType() != null){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getDeviceType, request.getDeviceType());
}
if(request.getDeviceId() != null){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getDeviceId, request.getDeviceId());
}
if(request.getOtherDeviceId() != null){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getOtherDeviceId, request.getOtherDeviceId());
}
if(request.getSpaceId() != null){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getSpaceId, request.getSpaceId());
}
if(request.getIsMain() != null){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getIsMain, request.getIsMain());
}
if(StringUtils.isNotEmpty(request.getBindName())){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getBindName, request.getBindName());
}
if(StringUtils.isNotEmpty(request.getCountry())){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getCountry, request.getCountry());
}
if(StringUtils.isNotEmpty(request.getProvince())){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getProvince, request.getProvince());
}
if(StringUtils.isNotEmpty(request.getCity())){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getCity, request.getCity());
}
if(StringUtils.isNotEmpty(request.getCounty())){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getCounty, request.getCounty());
}
if(StringUtils.isNotEmpty(request.getVillage())){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getVillage, request.getVillage());
}
if(StringUtils.isNotEmpty(request.getAddress())){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getAddress, request.getAddress());
}
if(StringUtils.isNotEmpty(request.getCategoryCode())){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getCategoryCode, request.getCategoryCode());
}
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<PagerResult<DeviceUserBindEntity>> selectDeviceUserBindsByRequest(DeviceUserBindRequest request){
ReactiveQuery<DeviceUserBindEntity> reactiveQuery = createQuery();
reactiveQuery = reactiveQuery.and("is_delete", 0);
if(request.getId() != null){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getId, request.getId());
}
if(request.getIsDelete() != null){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getIsDelete, request.getIsDelete());
}
if(request.getCreateTimeStart() != null){
reactiveQuery = reactiveQuery.gte(DeviceUserBindRequest::getCreateTime, request.getCreateTimeStart());
}
if(request.getCreateTimeEnd() != null){
reactiveQuery = reactiveQuery.lte(DeviceUserBindRequest::getCreateTime, request.getCreateTimeEnd());
}
if(request.getModifyTimeStart() != null){
reactiveQuery = reactiveQuery.gte(DeviceUserBindRequest::getModifyTime, request.getModifyTimeStart());
}
if(request.getModifyTimeEnd() != null){
reactiveQuery = reactiveQuery.lte(DeviceUserBindRequest::getModifyTime, request.getModifyTimeEnd());
}
if(request.getUserId() != null){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getUserId, request.getUserId());
}
if(request.getDeviceType() != null){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getDeviceType, request.getDeviceType());
}
if(request.getDeviceId() != null){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getDeviceId, request.getDeviceId());
}
if(request.getOtherDeviceId() != null){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getOtherDeviceId, request.getOtherDeviceId());
}
if(request.getSpaceId() != null){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getSpaceId, request.getSpaceId());
}
if(request.getIsMain() != null){
reactiveQuery = reactiveQuery.and(DeviceUserBindRequest::getIsMain, request.getIsMain());
}
if(StringUtils.isNotEmpty(request.getBindName())){
reactiveQuery = reactiveQuery.$like$(DeviceUserBindRequest::getBindName, request.getBindName());
}
if(StringUtils.isNotEmpty(request.getCountry())){
reactiveQuery = reactiveQuery.$like$(DeviceUserBindRequest::getCountry, request.getCountry());
}
if(StringUtils.isNotEmpty(request.getProvince())){
reactiveQuery = reactiveQuery.$like$(DeviceUserBindRequest::getProvince, request.getProvince());
}
if(StringUtils.isNotEmpty(request.getCity())){
reactiveQuery = reactiveQuery.$like$(DeviceUserBindRequest::getCity, request.getCity());
}
if(StringUtils.isNotEmpty(request.getCounty())){
reactiveQuery = reactiveQuery.$like$(DeviceUserBindRequest::getCounty, request.getCounty());
}
if(StringUtils.isNotEmpty(request.getVillage())){
reactiveQuery = reactiveQuery.$like$(DeviceUserBindRequest::getVillage, request.getVillage());
}
if(StringUtils.isNotEmpty(request.getAddress())){
reactiveQuery = reactiveQuery.$like$(DeviceUserBindRequest::getAddress, request.getAddress());
}
if(StringUtils.isNotEmpty(request.getCategoryCode())){
reactiveQuery = reactiveQuery.$like$(DeviceUserBindRequest::getCategoryCode, request.getCategoryCode());
}
QueryParamEntity param = QueryParamEntity.of(reactiveQuery.getParam());
if(StringUtils.isNotEmpty(request.getOrder())){
Sort sort = new Sort();
sort.setName(request.getOrder());
if(StringUtils.isNotEmpty(request.getSort()) && request.getSort().compareTo("0") == 0){
sort.desc();
}else{
sort.asc();
}
param.setSorts(Arrays.asList(sort));
}
param.setPageIndex(request.getCurrPage());
param.setPageSize(request.getPageSize());
param.setPaging(true);
param.setFirstPageIndex(1);
return queryPager(param);
}
public Mono<DeviceUserBindEntity> selectDeviceUserBindById(Long id){
return createQuery()
.and("is_delete", 0)
.and("id", id)
.fetchOne();
}
public Mono<Integer> insertDeviceUserBind(DeviceUserBindEntity entity){
entity.setId(null);
entity.setCreateTime(null);
entity.setModifyTime(null);
return insert(entity);
}
public Mono<Integer> updateDeviceUserBindById(DeviceUserBindEntity entity){
ReactiveUpdate<DeviceUserBindEntity> update = createUpdate()
.set(DeviceUserBindEntity::getModifyTime, new Date());
if(entity.getIsDelete() != null){
update = update.set(DeviceUserBindEntity::getIsDelete, entity.getIsDelete());
}
if(entity.getUserId() != null){
update = update.set(DeviceUserBindEntity::getUserId, entity.getUserId());
}
if(entity.getDeviceType() != null){
update = update.set(DeviceUserBindEntity::getDeviceType, entity.getDeviceType());
}
if(entity.getDeviceId() != null){
update = update.set(DeviceUserBindEntity::getDeviceId, entity.getDeviceId());
}
if(entity.getOtherDeviceId() != null){
update = update.set(DeviceUserBindEntity::getOtherDeviceId, entity.getOtherDeviceId());
}
if(entity.getSpaceId() != null){
update = update.set(DeviceUserBindEntity::getSpaceId, entity.getSpaceId());
}
if(entity.getIsMain() != null){
update = update.set(DeviceUserBindEntity::getIsMain, entity.getIsMain());
}
if(StringUtils.isNotEmpty(entity.getBindName())){
update = update.set(DeviceUserBindEntity::getBindName, entity.getBindName());
}
if(StringUtils.isNotEmpty(entity.getCountry())){
update = update.set(DeviceUserBindEntity::getCountry, entity.getCountry());
}
if(StringUtils.isNotEmpty(entity.getProvince())){
update = update.set(DeviceUserBindEntity::getProvince, entity.getProvince());
}
if(StringUtils.isNotEmpty(entity.getCity())){
update = update.set(DeviceUserBindEntity::getCity, entity.getCity());
}
if(StringUtils.isNotEmpty(entity.getCounty())){
update = update.set(DeviceUserBindEntity::getCounty, entity.getCounty());
}
if(StringUtils.isNotEmpty(entity.getVillage())){
update = update.set(DeviceUserBindEntity::getVillage, entity.getVillage());
}
if(StringUtils.isNotEmpty(entity.getAddress())){
update = update.set(DeviceUserBindEntity::getAddress, entity.getAddress());
}
if(StringUtils.isNotEmpty(entity.getCategoryCode())){
update = update.set(DeviceUserBindEntity::getCategoryCode, entity.getCategoryCode());
}
return update.where(DeviceUserBindEntity::getId, entity.getId()).and("is_delete", 0).execute();
}
public Mono<Integer> updateCoverDeviceUserBindById(DeviceUserBindEntity entity){
ReactiveUpdate<DeviceUserBindEntity> update = createUpdate()
.set(DeviceUserBindEntity::getModifyTime, new Date());
update = update.set(DeviceUserBindEntity::getIsDelete, entity.getIsDelete());
update = update.set(DeviceUserBindEntity::getUserId, entity.getUserId());
update = update.set(DeviceUserBindEntity::getDeviceType, entity.getDeviceType());
update = update.set(DeviceUserBindEntity::getDeviceId, entity.getDeviceId());
update = update.set(DeviceUserBindEntity::getOtherDeviceId, entity.getOtherDeviceId());
update = update.set(DeviceUserBindEntity::getSpaceId, entity.getSpaceId());
update = update.set(DeviceUserBindEntity::getIsMain, entity.getIsMain());
update = update.set(DeviceUserBindEntity::getBindName, entity.getBindName());
update = update.set(DeviceUserBindEntity::getCountry, entity.getCountry());
update = update.set(DeviceUserBindEntity::getProvince, entity.getProvince());
update = update.set(DeviceUserBindEntity::getCity, entity.getCity());
update = update.set(DeviceUserBindEntity::getCounty, entity.getCounty());
update = update.set(DeviceUserBindEntity::getVillage, entity.getVillage());
update = update.set(DeviceUserBindEntity::getAddress, entity.getAddress());
update = update.set(DeviceUserBindEntity::getCategoryCode, entity.getCategoryCode());
return update.where(DeviceUserBindEntity::getId, entity.getId()).and("is_delete", 0).execute();
}
public Mono<Integer> deleteDeviceUserBindById(Long id){
return createUpdate()
.set("is_delete", 1)
.set("modify_time", new Date())
.where("id", id)
.execute();
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long