diff --git a/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/entity/system/SystemTalkBindU3dEntity.java b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/entity/system/SystemTalkBindU3dEntity.java new file mode 100644 index 0000000..49aaf99 --- /dev/null +++ b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/entity/system/SystemTalkBindU3dEntity.java @@ -0,0 +1,84 @@ +package com.qiuguo.iot.data.entity.system; +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; +/** +*

+*

*自定义命令和u3d动作绑定表 +* @author wulin +* @since 2023-10-13 +*/ + +@Data +@Comment("自定义命令和u3d动作绑定表") +@Table(name = "system_talk_bind_u3d") +@EnableEntityEvent +public class SystemTalkBindU3dEntity extends GenericEntity { + @Comment("id") + @Column(name = "id", length = 11, nullable = false, unique = true) + private Long id; + + @Comment("是否删除:0 否 1 删除") + @Column(name = "is_delete", nullable = false) + private Integer isDelete; + + @Comment("创建时间") + @Column(name = "create_time") + private Date createTime; + + @Comment("修改时间") + @Column(name = "modify_time") + private Date modifyTime; + + @Comment("自定义命令id") + @Column(name = "system_talk_id", nullable = false) + private Long systemTalkId; + + @Comment("U3D动作配置id") + @Column(name = "u3d_action_id", nullable = false) + private Long u3dActionId; + + @Comment("u3d动作类型") + @Column(name = "u3d_type") + private Integer u3dType; + + @Comment("动作后的变量,名词") + @Column(name = "ask_common", length = 255) + private String askCommon; + + @Comment("成功回答内容(传给box)") + @Column(name = "answer_value", length = 255) + private String answerValue; + + @Comment("执行失败回答内容") + @Column(name = "answer_value_faild", length = 255) + private String answerValueFaild; + + @Comment("回答时的动作(数字人的口型以外动作)") + @Column(name = "answer_action", length = 255) + private String answerAction; + + @Comment("执行失败所对应动作") + @Column(name = "answer_action_faild", length = 255) + private String answerActionFaild; + + @Comment("回答时的背景音乐(URL)") + @Column(name = "answer_back_sound", length = 255) + private String answerBackSound; + + @Comment("回答时的背景图片、视屏、动画(URL)") + @Column(name = "answer_back_img", length = 255) + private String answerBackImg; + + @Comment("备注") + @Column(name = "remark", length = 255) + private String remark; + + @Comment("U3D状态ID") + @Column(name = "u3d_status_id") + private Long u3dStatusId; + +} \ No newline at end of file diff --git a/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/request/system/SystemTalkBindU3dRequest.java b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/request/system/SystemTalkBindU3dRequest.java new file mode 100644 index 0000000..f83bd02 --- /dev/null +++ b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/request/system/SystemTalkBindU3dRequest.java @@ -0,0 +1,103 @@ +package com.qiuguo.iot.data.request.system; +import lombok.Data; +import java.util.Date; +/** +*

+*自定义命令和u3d动作绑定请求类 +* @author wulin +* @since 2023-10-13 +*/ + + +@Data +public class SystemTalkBindU3dRequest 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 systemTalkId; + /** + *U3D动作配置id + */ + private Long u3dActionId; + /** + *u3d动作类型 + */ + private Integer u3dType; + /** + *动作后的变量,名词 + */ + private String askCommon; + /** + *成功回答内容(传给box) + */ + private String answerValue; + /** + *执行失败回答内容 + */ + private String answerValueFaild; + /** + *回答时的动作(数字人的口型以外动作) + */ + private String answerAction; + /** + *执行失败所对应动作 + */ + private String answerActionFaild; + /** + *回答时的背景音乐(URL) + */ + private String answerBackSound; + /** + *回答时的背景图片、视屏、动画(URL) + */ + private String answerBackImg; + /** + *备注 + */ + private String remark; + /** + *U3D状态ID + */ + private Long u3dStatusId; +} \ No newline at end of file diff --git a/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/resp/system/SystemTalkBindU3dResp.java b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/resp/system/SystemTalkBindU3dResp.java new file mode 100644 index 0000000..2cdb16f --- /dev/null +++ b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/resp/system/SystemTalkBindU3dResp.java @@ -0,0 +1,94 @@ +package com.qiuguo.iot.data.resp.system; +import com.qiuguo.iot.data.entity.system.SystemTalkBindU3dEntity; +import lombok.Data; +import java.util.Date; +/** +*

+*

*自定义命令和u3d动作绑定返回类 +* @author wulin +* @since 2023-10-13 +*/ + +@Data +public class SystemTalkBindU3dResp { + public SystemTalkBindU3dResp(){ + } + public SystemTalkBindU3dResp(SystemTalkBindU3dEntity entity){ + id = entity.getId(); + createTime = entity.getCreateTime(); + modifyTime = entity.getModifyTime(); + systemTalkId = entity.getSystemTalkId(); + u3dActionId = entity.getU3dActionId(); + u3dType = entity.getU3dType(); + askCommon = entity.getAskCommon(); + answerValue = entity.getAnswerValue(); + answerValueFaild = entity.getAnswerValueFaild(); + answerAction = entity.getAnswerAction(); + answerActionFaild = entity.getAnswerActionFaild(); + answerBackSound = entity.getAnswerBackSound(); + answerBackImg = entity.getAnswerBackImg(); + remark = entity.getRemark(); + u3dStatusId = entity.getU3dStatusId(); + } + + /** + * + */ + private Long id; + /** + *创建时间 + */ + private Date createTime; + /** + *修改时间 + */ + private Date modifyTime; + /** + *自定义命令id + */ + private Long systemTalkId; + /** + *U3D动作配置id + */ + private Long u3dActionId; + /** + *u3d动作类型 + */ + private Integer u3dType; + /** + *动作后的变量,名词 + */ + private String askCommon; + /** + *成功回答内容(传给box) + */ + private String answerValue; + /** + *执行失败回答内容 + */ + private String answerValueFaild; + /** + *回答时的动作(数字人的口型以外动作) + */ + private String answerAction; + /** + *执行失败所对应动作 + */ + private String answerActionFaild; + /** + *回答时的背景音乐(URL) + */ + private String answerBackSound; + /** + *回答时的背景图片、视屏、动画(URL) + */ + private String answerBackImg; + /** + *备注 + */ + private String remark; + /** + *U3D状态ID + */ + private Long u3dStatusId; +} \ No newline at end of file diff --git a/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/service/system/SystemTalkBindU3dService.java b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/service/system/SystemTalkBindU3dService.java new file mode 100644 index 0000000..e91dc21 --- /dev/null +++ b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/service/system/SystemTalkBindU3dService.java @@ -0,0 +1,278 @@ +package com.qiuguo.iot.data.service.system; + + + +import com.qiuguo.iot.base.utils.StringUtils; +import com.qiuguo.iot.data.entity.system.SystemTalkBindU3dEntity; +import com.qiuguo.iot.data.request.system.SystemTalkBindU3dRequest; +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; +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; +/** +*

+* 自定义命令和u3d动作绑定服务类 +*

+* +* @author wulin +* @since 2023-10-13 +*/ + +@Service +@Slf4j +public class SystemTalkBindU3dService extends GenericReactiveCrudService { + + + public Mono selectSystemTalkBindU3dByRequest(SystemTalkBindU3dRequest request){ + ReactiveQuery reactiveQuery = createQuery(); + reactiveQuery = reactiveQuery.and("is_delete", 0); + if(request.getId() != null){ + reactiveQuery = reactiveQuery.and(SystemTalkBindU3dRequest::getId, request.getId()); + } + if(request.getIsDelete() != null){ + reactiveQuery = reactiveQuery.and(SystemTalkBindU3dRequest::getIsDelete, request.getIsDelete()); + } + if(request.getCreateTime() != null){ + reactiveQuery = reactiveQuery.and(SystemTalkBindU3dRequest::getCreateTime, request.getCreateTime()); + } + if(request.getModifyTime() != null){ + reactiveQuery = reactiveQuery.and(SystemTalkBindU3dRequest::getModifyTime, request.getModifyTime()); + } + if(request.getSystemTalkId() != null){ + reactiveQuery = reactiveQuery.and(SystemTalkBindU3dRequest::getSystemTalkId, request.getSystemTalkId()); + } + if(request.getU3dActionId() != null){ + reactiveQuery = reactiveQuery.and(SystemTalkBindU3dRequest::getU3dActionId, request.getU3dActionId()); + } + if(request.getU3dType() != null){ + reactiveQuery = reactiveQuery.and(SystemTalkBindU3dRequest::getU3dType, request.getU3dType()); + } + if(StringUtils.isNotEmpty(request.getAskCommon())){ + reactiveQuery = reactiveQuery.and(SystemTalkBindU3dRequest::getAskCommon, request.getAskCommon()); + } + if(StringUtils.isNotEmpty(request.getAnswerValue())){ + reactiveQuery = reactiveQuery.and(SystemTalkBindU3dRequest::getAnswerValue, request.getAnswerValue()); + } + if(StringUtils.isNotEmpty(request.getAnswerValueFaild())){ + reactiveQuery = reactiveQuery.and(SystemTalkBindU3dRequest::getAnswerValueFaild, request.getAnswerValueFaild()); + } + if(StringUtils.isNotEmpty(request.getAnswerAction())){ + reactiveQuery = reactiveQuery.and(SystemTalkBindU3dRequest::getAnswerAction, request.getAnswerAction()); + } + if(StringUtils.isNotEmpty(request.getAnswerActionFaild())){ + reactiveQuery = reactiveQuery.and(SystemTalkBindU3dRequest::getAnswerActionFaild, request.getAnswerActionFaild()); + } + if(StringUtils.isNotEmpty(request.getAnswerBackSound())){ + reactiveQuery = reactiveQuery.and(SystemTalkBindU3dRequest::getAnswerBackSound, request.getAnswerBackSound()); + } + if(StringUtils.isNotEmpty(request.getAnswerBackImg())){ + reactiveQuery = reactiveQuery.and(SystemTalkBindU3dRequest::getAnswerBackImg, request.getAnswerBackImg()); + } + if(StringUtils.isNotEmpty(request.getRemark())){ + reactiveQuery = reactiveQuery.and(SystemTalkBindU3dRequest::getRemark, request.getRemark()); + } + if(request.getU3dStatusId() != null){ + reactiveQuery = reactiveQuery.and(SystemTalkBindU3dRequest::getU3dStatusId, request.getU3dStatusId()); + } + 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> selectSystemTalkBindU3dsByRequest(SystemTalkBindU3dRequest request){ + ReactiveQuery reactiveQuery = createQuery(); + reactiveQuery = reactiveQuery.and("is_delete", 0); + if(request.getId() != null){ + reactiveQuery = reactiveQuery.and(SystemTalkBindU3dRequest::getId, request.getId()); + } + if(request.getIsDelete() != null){ + reactiveQuery = reactiveQuery.and(SystemTalkBindU3dRequest::getIsDelete, request.getIsDelete()); + } + if(request.getCreateTimeStart() != null){ + reactiveQuery = reactiveQuery.gte(SystemTalkBindU3dRequest::getCreateTime, request.getCreateTimeStart()); + } + if(request.getCreateTimeEnd() != null){ + reactiveQuery = reactiveQuery.lte(SystemTalkBindU3dRequest::getCreateTime, request.getCreateTimeEnd()); + } + if(request.getModifyTimeStart() != null){ + reactiveQuery = reactiveQuery.gte(SystemTalkBindU3dRequest::getModifyTime, request.getModifyTimeStart()); + } + if(request.getModifyTimeEnd() != null){ + reactiveQuery = reactiveQuery.lte(SystemTalkBindU3dRequest::getModifyTime, request.getModifyTimeEnd()); + } + if(request.getSystemTalkId() != null){ + reactiveQuery = reactiveQuery.and(SystemTalkBindU3dRequest::getSystemTalkId, request.getSystemTalkId()); + } + if(request.getU3dActionId() != null){ + reactiveQuery = reactiveQuery.and(SystemTalkBindU3dRequest::getU3dActionId, request.getU3dActionId()); + } + if(request.getU3dType() != null){ + reactiveQuery = reactiveQuery.and(SystemTalkBindU3dRequest::getU3dType, request.getU3dType()); + } + if(StringUtils.isNotEmpty(request.getAskCommon())){ + reactiveQuery = reactiveQuery.$like$(SystemTalkBindU3dRequest::getAskCommon, request.getAskCommon()); + } + if(StringUtils.isNotEmpty(request.getAnswerValue())){ + reactiveQuery = reactiveQuery.$like$(SystemTalkBindU3dRequest::getAnswerValue, request.getAnswerValue()); + } + if(StringUtils.isNotEmpty(request.getAnswerValueFaild())){ + reactiveQuery = reactiveQuery.$like$(SystemTalkBindU3dRequest::getAnswerValueFaild, request.getAnswerValueFaild()); + } + if(StringUtils.isNotEmpty(request.getAnswerAction())){ + reactiveQuery = reactiveQuery.$like$(SystemTalkBindU3dRequest::getAnswerAction, request.getAnswerAction()); + } + if(StringUtils.isNotEmpty(request.getAnswerActionFaild())){ + reactiveQuery = reactiveQuery.$like$(SystemTalkBindU3dRequest::getAnswerActionFaild, request.getAnswerActionFaild()); + } + if(StringUtils.isNotEmpty(request.getAnswerBackSound())){ + reactiveQuery = reactiveQuery.$like$(SystemTalkBindU3dRequest::getAnswerBackSound, request.getAnswerBackSound()); + } + if(StringUtils.isNotEmpty(request.getAnswerBackImg())){ + reactiveQuery = reactiveQuery.$like$(SystemTalkBindU3dRequest::getAnswerBackImg, request.getAnswerBackImg()); + } + if(StringUtils.isNotEmpty(request.getRemark())){ + reactiveQuery = reactiveQuery.$like$(SystemTalkBindU3dRequest::getRemark, request.getRemark()); + } + if(request.getU3dStatusId() != null){ + reactiveQuery = reactiveQuery.and(SystemTalkBindU3dRequest::getU3dStatusId, request.getU3dStatusId()); + } + 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 selectSystemTalkBindU3dById(Long id){ + return createQuery() + .and("is_delete", 0) + .and("id", id) + .fetchOne(); + } + + + + public Mono insertSystemTalkBindU3d(SystemTalkBindU3dEntity entity){ + entity.setId(null); + entity.setCreateTime(null); + entity.setModifyTime(null); + return insert(entity); + } + + + + public Mono updateSystemTalkBindU3dById(SystemTalkBindU3dEntity entity){ + ReactiveUpdate update = createUpdate() + .set(SystemTalkBindU3dEntity::getModifyTime, new Date()); + if(entity.getIsDelete() != null){ + update = update.set(SystemTalkBindU3dEntity::getIsDelete, entity.getIsDelete()); + } + if(entity.getSystemTalkId() != null){ + update = update.set(SystemTalkBindU3dEntity::getSystemTalkId, entity.getSystemTalkId()); + } + if(entity.getU3dActionId() != null){ + update = update.set(SystemTalkBindU3dEntity::getU3dActionId, entity.getU3dActionId()); + } + if(entity.getU3dType() != null){ + update = update.set(SystemTalkBindU3dEntity::getU3dType, entity.getU3dType()); + } + if(StringUtils.isNotEmpty(entity.getAskCommon())){ + update = update.set(SystemTalkBindU3dEntity::getAskCommon, entity.getAskCommon()); + } + if(StringUtils.isNotEmpty(entity.getAnswerValue())){ + update = update.set(SystemTalkBindU3dEntity::getAnswerValue, entity.getAnswerValue()); + } + if(StringUtils.isNotEmpty(entity.getAnswerValueFaild())){ + update = update.set(SystemTalkBindU3dEntity::getAnswerValueFaild, entity.getAnswerValueFaild()); + } + if(StringUtils.isNotEmpty(entity.getAnswerAction())){ + update = update.set(SystemTalkBindU3dEntity::getAnswerAction, entity.getAnswerAction()); + } + if(StringUtils.isNotEmpty(entity.getAnswerActionFaild())){ + update = update.set(SystemTalkBindU3dEntity::getAnswerActionFaild, entity.getAnswerActionFaild()); + } + if(StringUtils.isNotEmpty(entity.getAnswerBackSound())){ + update = update.set(SystemTalkBindU3dEntity::getAnswerBackSound, entity.getAnswerBackSound()); + } + if(StringUtils.isNotEmpty(entity.getAnswerBackImg())){ + update = update.set(SystemTalkBindU3dEntity::getAnswerBackImg, entity.getAnswerBackImg()); + } + if(StringUtils.isNotEmpty(entity.getRemark())){ + update = update.set(SystemTalkBindU3dEntity::getRemark, entity.getRemark()); + } + if(entity.getU3dStatusId() != null){ + update = update.set(SystemTalkBindU3dEntity::getU3dStatusId, entity.getU3dStatusId()); + } + return update.where(SystemTalkBindU3dEntity::getId, entity.getId()).and("is_delete", 0).execute(); + } + + + + public Mono updateCoverSystemTalkBindU3dById(SystemTalkBindU3dEntity entity){ + ReactiveUpdate update = createUpdate() + .set(SystemTalkBindU3dEntity::getModifyTime, new Date()); + update = update.set(SystemTalkBindU3dEntity::getIsDelete, entity.getIsDelete()); + update = update.set(SystemTalkBindU3dEntity::getSystemTalkId, entity.getSystemTalkId()); + update = update.set(SystemTalkBindU3dEntity::getU3dActionId, entity.getU3dActionId()); + update = update.set(SystemTalkBindU3dEntity::getU3dType, entity.getU3dType()); + update = update.set(SystemTalkBindU3dEntity::getAskCommon, entity.getAskCommon()); + update = update.set(SystemTalkBindU3dEntity::getAnswerValue, entity.getAnswerValue()); + update = update.set(SystemTalkBindU3dEntity::getAnswerValueFaild, entity.getAnswerValueFaild()); + update = update.set(SystemTalkBindU3dEntity::getAnswerAction, entity.getAnswerAction()); + update = update.set(SystemTalkBindU3dEntity::getAnswerActionFaild, entity.getAnswerActionFaild()); + update = update.set(SystemTalkBindU3dEntity::getAnswerBackSound, entity.getAnswerBackSound()); + update = update.set(SystemTalkBindU3dEntity::getAnswerBackImg, entity.getAnswerBackImg()); + update = update.set(SystemTalkBindU3dEntity::getRemark, entity.getRemark()); + update = update.set(SystemTalkBindU3dEntity::getU3dStatusId, entity.getU3dStatusId()); + return update.where(SystemTalkBindU3dEntity::getId, entity.getId()).and("is_delete", 0).execute(); + } + + + + public Mono deleteSystemTalkBindU3dById(Long id){ + return createUpdate() + .set("is_delete", 1) + .set("modify_time", new Date()) + .where("id", id) + .execute(); + } + + + public Mono selectSystemTalkBindU3dBySystemTalkId(Long systemTalkId) { + return createQuery() + .and("is_delete", 0) + .and("system_talk_id", systemTalkId) + .fetchOne(); + } +} diff --git a/iot-common/iot-third/src/main/java/com/qiuguo/iot/third/nlp/AliYunQianWen.java b/iot-common/iot-third/src/main/java/com/qiuguo/iot/third/nlp/AliYunQianWen.java index 832fd6c..7f644c6 100644 --- a/iot-common/iot-third/src/main/java/com/qiuguo/iot/third/nlp/AliYunQianWen.java +++ b/iot-common/iot-third/src/main/java/com/qiuguo/iot/third/nlp/AliYunQianWen.java @@ -36,6 +36,10 @@ public class AliYunQianWen { */ MessageManager msgManager = new MessageManager(10); + /** + * 有由于千问限制,必须一问一答 + */ + private boolean canAsk = true; GenerationResult lastGenerationResult = null; @@ -53,13 +57,16 @@ public class AliYunQianWen { public void sendMessage(String msg, Consumer onNext, QWenReplyResponse qwenReplyResponse) throws NoApiKeyException, InputRequiredException, InterruptedException { - + if(!canAsk){ + msgManager = new MessageManager(10); + } Message userMsg = Message .builder() .role(Role.USER.getValue()) .content(msg) .build(); msgManager.add(userMsg); + canAsk = !canAsk; Generation gen = new Generation(); @@ -81,6 +88,7 @@ public class AliYunQianWen { }else{ lastGenerationResult = message; msgManager.add(lastGenerationResult); + canAsk = !canAsk; } } catch (Exception e) { log.info("千问回调异常{}", e); @@ -92,7 +100,6 @@ public class AliYunQianWen { @Override public void onComplete() { if(lastGenerationResult != null){ - qwenReplyResponse.setResut(lastGenerationResult.getOutput().getChoices().get(0).getMessage().getContent()); } diff --git a/iot-common/iot-third/src/main/java/com/qiuguo/iot/third/service/QWenService.java b/iot-common/iot-third/src/main/java/com/qiuguo/iot/third/service/QWenService.java index 399d434..9b1bd52 100644 --- a/iot-common/iot-third/src/main/java/com/qiuguo/iot/third/service/QWenService.java +++ b/iot-common/iot-third/src/main/java/com/qiuguo/iot/third/service/QWenService.java @@ -48,12 +48,12 @@ public class QWenService { final AliYunQianWen aliQianWen1 = aliQianWen; return Mono.just(new QWenReplyResponse()).map(qWenReplyResponse -> { try { - aliQianWen1.sendMessage(rest.getText(), onNext, qWenReplyResponse); qWenReplyResponse.setCode(200); + aliQianWen1.sendMessage(rest.getText(), onNext, qWenReplyResponse); + } catch (Exception e) { log.info("调用千问异常{}", e); qWenReplyResponse.setCode(500); - throw new RuntimeException(e); } return qWenReplyResponse; diff --git a/iot-modules/iot-admin-http-api/src/main/java/com/qiuguo/iot/admin/http/api/controller/SystemTalkBindU3dController.java b/iot-modules/iot-admin-http-api/src/main/java/com/qiuguo/iot/admin/http/api/controller/SystemTalkBindU3dController.java new file mode 100644 index 0000000..21211dd --- /dev/null +++ b/iot-modules/iot-admin-http-api/src/main/java/com/qiuguo/iot/admin/http/api/controller/SystemTalkBindU3dController.java @@ -0,0 +1,102 @@ +package com.qiuguo.iot.admin.http.api.controller; + + + +import com.qiuguo.iot.data.entity.system.SystemTalkBindU3dEntity; +import com.qiuguo.iot.data.request.system.SystemTalkBindU3dRequest; +import com.qiuguo.iot.data.resp.system.SystemTalkBindU3dResp; +import com.qiuguo.iot.data.service.system.SystemTalkBindU3dService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.hswebframework.web.api.crud.entity.PagerResult; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import reactor.core.publisher.Mono; + +import java.util.Date; +import java.util.List; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** +*

+* 自定义命令和u3d动作绑定Controller类 +*

+* +* @author wulin +* @since 2023-10-13 +*/ + +@RestController +@Slf4j +@RequestMapping("/SystemTalkBindU3d") +public class SystemTalkBindU3dController{ + + + @Autowired + private SystemTalkBindU3dService systemTalkBindU3dService; + @PostMapping("/info") + public Mono selectSystemTalkBindU3dByRequest(@RequestBody SystemTalkBindU3dRequest request){ + return systemTalkBindU3dService.selectSystemTalkBindU3dByRequest(request).map(d -> {return new SystemTalkBindU3dResp(d);}); + } + + + + @PostMapping("/list") + public Mono> selectSystemTalkBindU3dsByRequest(@RequestBody SystemTalkBindU3dRequest request){ + return systemTalkBindU3dService.selectSystemTalkBindU3dsByRequest(request).map(d -> { + PagerResult result = new PagerResult<>(); + result.setPageIndex(d.getPageIndex()); + result.setPageSize(d.getPageSize()); + result.setTotal(d.getTotal()); + List ds = d.getData().stream().map(new Function() { + @Override + public SystemTalkBindU3dResp apply(SystemTalkBindU3dEntity entity) { + return new SystemTalkBindU3dResp(entity); + } + } + + ).collect(Collectors.toList()); + result.setData(ds); + return result; + }); + } + + + + @GetMapping("/id") + public Mono selectSystemTalkBindU3dById(@RequestParam Long id){ + return systemTalkBindU3dService.selectSystemTalkBindU3dById(id).map(d -> {return new SystemTalkBindU3dResp(d);}); + } + + + + @PostMapping("/save") + public Mono insertSystemTalkBindU3d(@RequestBody SystemTalkBindU3dEntity entity){ + return systemTalkBindU3dService.insertSystemTalkBindU3d(entity); + } + + + + @PostMapping("/update") + public Mono updateSystemTalkBindU3dById(@RequestBody SystemTalkBindU3dEntity entity){ + return systemTalkBindU3dService.updateSystemTalkBindU3dById(entity); + } + + + + @PostMapping("/updateCover") + public Mono updateCoverSystemTalkBindU3dById(@RequestBody SystemTalkBindU3dEntity entity){ + return systemTalkBindU3dService.updateCoverSystemTalkBindU3dById(entity); + } + + + + @PostMapping("/delete") + public Mono deleteSystemTalkBindU3dById(@RequestParam Long id){ + return systemTalkBindU3dService.deleteSystemTalkBindU3dById(id); + } + + + +} diff --git a/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/handler/BaseWebSocketProcess.java b/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/handler/BaseWebSocketProcess.java index 1390801..6cbb24c 100644 --- a/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/handler/BaseWebSocketProcess.java +++ b/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/handler/BaseWebSocketProcess.java @@ -11,6 +11,7 @@ import com.qiuguo.iot.data.entity.device.DeviceUserBindEntity; import com.qiuguo.iot.data.entity.device.DeviceUserTalkRecordEntity; import com.qiuguo.iot.data.entity.system.SystemTalkAnswerConfigEntity; import com.qiuguo.iot.data.entity.system.SystemTalkBindDeviceEntity; +import com.qiuguo.iot.data.entity.system.SystemTalkBindU3dEntity; import com.qiuguo.iot.data.request.device.DeviceUserBindRequest; import com.qiuguo.iot.data.request.qwen.TongYiCommunicationRest; import com.qiuguo.iot.data.request.system.SystemTalkBindDeviceRequest; @@ -23,6 +24,7 @@ import com.qiuguo.iot.data.service.device.DeviceUserTalkRecordService; import com.qiuguo.iot.data.service.mq.MqService; import com.qiuguo.iot.data.service.system.SystemAddressService; import com.qiuguo.iot.data.service.system.SystemTalkBindDeviceService; +import com.qiuguo.iot.data.service.system.SystemTalkBindU3dService; import com.qiuguo.iot.third.nlp.action.Action; import com.qiuguo.iot.third.nlp.action.ActionTime; import com.qiuguo.iot.third.nlp.action.Actions; @@ -74,6 +76,9 @@ public class BaseWebSocketProcess { @Autowired protected MqService mqService; + @Autowired + protected SystemTalkBindU3dService systemTalkBindU3dService; + protected static ConcurrentHashMap userGroup = new ConcurrentHashMap<>(); @@ -159,23 +164,40 @@ public class BaseWebSocketProcess { }).subscribeOn(Schedulers.boundedElastic()).subscribe(); } - private void toU3DMq(Action action, SystemTalkBindDeviceEntity systemTalkBindDeviceEntity){ + private void toU3DMq(Action action, SystemTalkBindDeviceEntity systemTalkBindDeviceEntity, Long metaId){ + + U3dMsg u3dMsg = new U3dMsg(); + u3dMsg.setMsgType(U3dMsgTypeEnum.IOT.getCode()); + u3dMsg.setMetaId(metaId); + u3dMsg.setScenceId(action.getDeviceUserBindEntity().getScenceId()); + u3dMsg.setStatusId(systemTalkBindDeviceEntity.getU3dStatusId()); + sendMq(JSONObject.toJSONString(u3dMsg)); + } + + private void toU3DMq(Action action, SystemTalkBindU3dEntity systemTalkBindU3dEntity, Long metaId){ + + U3dMsg u3dMsg = new U3dMsg(); + u3dMsg.setMsgType(systemTalkBindU3dEntity.getU3dType()); + u3dMsg.setMetaId(metaId); + u3dMsg.setScenceId(action.getDeviceUserBindEntity().getScenceId()); + u3dMsg.setStatusId(systemTalkBindU3dEntity.getU3dStatusId()); + + sendMq(JSONObject.toJSONString(u3dMsg)); + } + + private void sendMq(String msg){ log.info("通知U3DMQ"); try{ - U3dMsg u3dMsg = new U3dMsg(); - u3dMsg.setMsgType(U3dMsgTypeEnum.IOT.getCode()); - u3dMsg.setMetaId(action.getDeviceUserBindEntity().getU3dId()); - u3dMsg.setScenceId(action.getDeviceUserBindEntity().getScenceId()); - u3dMsg.setStatusId(systemTalkBindDeviceEntity.getU3dStatusId()); //发送消息到MQ,通知U3D mqService.sendMessageWithConfirmation(YunxiRabbitConst.EXCHANGE_YUNXI_EVENT, YunxiRabbitConst.ROUTE_KEY_YUNXI, - JSONObject.toJSONString(u3dMsg)).subscribe(); + msg).subscribe(); }catch (Exception e){ log.info("通知U3D MQ异常{}", e); } } + protected void processAction(Actions actions, Long userId, BaseSession baseSession) { if(actions.getActions() == null || actions.getActions().size() == 0){ //调用千问回答\ @@ -365,7 +387,17 @@ public class BaseWebSocketProcess { }else if(action.getSystemTalkAnswerConfigEntity().getAnswerType().equals(AskTypeEnum.QIU_GUO.getCode())){ sendMessage(action, baseSession, action.getSystemTalkAnswerConfigEntity().getAnswerValue(), AskTypeEnum.TTS.getCode()); }else if(action.getSystemTalkAnswerConfigEntity().getAnswerType().equals(AskTypeEnum.U3D.getCode())){ - //sendMessage(action, baseSession, action.getSystemTalkAnswerConfigEntity().getAnswerValue(), AskTypeEnum.TTS.getCode()); + systemTalkBindU3dService.selectSystemTalkBindU3dBySystemTalkId(action.getSystemTalkAnswerConfigEntity().getId()) + .defaultIfEmpty(new SystemTalkBindU3dEntity()) + .map(systemTalkBindU3d ->{ + if(systemTalkBindU3d.getId() == null){ + sendMessage(action, baseSession, "暂时不支持该指令", AskTypeEnum.TTS.getCode()); + return systemTalkBindU3d; + } + //数字人的id直接用用户id来代替 + toU3DMq(action, systemTalkBindU3d, baseSession.getUserId()); + return systemTalkBindU3d; + }); } } } @@ -397,7 +429,7 @@ public class BaseWebSocketProcess { String msg = ""; if(isOk.getCode().equals(RespCodeEnum.SUCESS.getCode())){ if(action.getDeviceUserBindEntity().getU3dId() != null){ - toU3DMq(action, systemTalkBindDeviceEntity); + toU3DMq(action, systemTalkBindDeviceEntity, action.getDeviceUserBindEntity().getU3dId()); } //通知打开灯成功 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 8faf9f7..2da1c41 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 @@ -59,7 +59,7 @@ public class MysqlMain { } List list = new ArrayList<>(); - list.add(new TablesBean("system_address")); + list.add(new TablesBean("system_talk_bind_u3d")); //list.add(new TablesBean("system_same_talk")); List list2 = new ArrayList(); diff --git a/iot-modules/iot-customer-http-api/src/test/java/com/qiuguo/iot/customer/http/api/mysql/MysqlUtilTable2Contoller.java b/iot-modules/iot-customer-http-api/src/test/java/com/qiuguo/iot/customer/http/api/mysql/MysqlUtilTable2Contoller.java index 008a4a3..13d62bc 100644 --- a/iot-modules/iot-customer-http-api/src/test/java/com/qiuguo/iot/customer/http/api/mysql/MysqlUtilTable2Contoller.java +++ b/iot-modules/iot-customer-http-api/src/test/java/com/qiuguo/iot/customer/http/api/mysql/MysqlUtilTable2Contoller.java @@ -159,14 +159,14 @@ public class MysqlUtilTable2Contoller { content += "\n"; content += TAB + "@PostMapping(\"/list\")\n"; content += TAB + "public Mono> select" + realName + "sByRequest(@RequestBody " + realName + "Request request){\n"; - content += TAB + TAB + "return " + MysqlUtil.getFirstToLower(realName) + "Service.selectDeviceInfosByRequest(request).map(d -> {\n" + + content += TAB + TAB + "return " + MysqlUtil.getFirstToLower(realName) + "Service.select" + realName + "sByRequest(request).map(d -> {\n" + " PagerResult<" + realName + "Resp> result = new PagerResult<>();\n" + " result.setPageIndex(d.getPageIndex());\n" + " result.setPageSize(d.getPageSize());\n" + " result.setTotal(d.getTotal());\n" + " List<" + realName + "Resp> ds = d.getData().stream().map(new Function<" + realName + "Entity, " + realName + "Resp>() {\n" + " @Override\n" + - " public DeviceInfoResp apply(" + realName + "Entity entity) {\n" + + " public " + realName + "Resp apply(" + realName + "Entity entity) {\n" + " return new " + realName + "Resp(entity);\n" + " }\n" + " }\n" + diff --git a/iot-modules/iot-customer-http-api/src/test/java/com/qiuguo/iot/customer/http/api/mysql/MysqlUtilTable2Service.java b/iot-modules/iot-customer-http-api/src/test/java/com/qiuguo/iot/customer/http/api/mysql/MysqlUtilTable2Service.java index e487e85..b7160c3 100644 --- a/iot-modules/iot-customer-http-api/src/test/java/com/qiuguo/iot/customer/http/api/mysql/MysqlUtilTable2Service.java +++ b/iot-modules/iot-customer-http-api/src/test/java/com/qiuguo/iot/customer/http/api/mysql/MysqlUtilTable2Service.java @@ -31,7 +31,6 @@ public class MysqlUtilTable2Service { List list = tableBean.getFieldList(); try { String content = "package com.admin.service.impl;\n\n\n\n" + - "import org.apache.commons.lang3.StringUtils;\n" + "import java.util.Date;\n"; diff --git a/iot-modules/iot-customer-http-api/src/test/tmp/SystemAddressController.java b/iot-modules/iot-customer-http-api/src/test/tmp/SystemAddressController.java deleted file mode 100644 index a1af4ad..0000000 --- a/iot-modules/iot-customer-http-api/src/test/tmp/SystemAddressController.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.admin.service.impl; - - - -import org.apache.commons.lang3.StringUtils; -import java.util.Date; -/** -*

-* 数据-区域Controller类 -*

-* -* @author wulin -* @since 2023-10-11 -*/ - -@RestController -@Slf4j -@RequestMapping("/SystemAddress") -public class SystemAddressController{ - - - @Autowired - private SystemAddressService systemAddressService; - @PostMapping("/info") - public Mono selectSystemAddressByRequest(@RequestBody SystemAddressRequest request){ - return systemAddressService.selectSystemAddressByRequest(request).map(d -> {return new SystemAddressResp(d);}); - } - - - - @PostMapping("/list") - public Mono> selectSystemAddresssByRequest(@RequestBody SystemAddressRequest request){ - return systemAddressService.selectDeviceInfosByRequest(request).map(d -> { - PagerResult result = new PagerResult<>(); - result.setPageIndex(d.getPageIndex()); - result.setPageSize(d.getPageSize()); - result.setTotal(d.getTotal()); - List ds = d.getData().stream().map(new Function() { - @Override - public DeviceInfoResp apply(SystemAddressEntity entity) { - return new SystemAddressResp(entity); - } - } - - ).collect(Collectors.toList()); - result.setData(ds); - return result; - }); - } - - - - @GetMapping("/id") - public Mono selectSystemAddressById(@RequestParam Long id){ - return systemAddressService.selectSystemAddressById(id).map(d -> {return new SystemAddressResp(d);}); - } - - - - @PostMapping("/save") - public Mono insertSystemAddress(@RequestBody SystemAddressEntity entity){ - return systemAddressService.insertSystemAddress(entity); - } - - - - @PostMapping("/update") - public Mono updateSystemAddressById(@RequestBody SystemAddressEntity entity){ - return systemAddressService.updateSystemAddressById(entity); - } - - - - @PostMapping("/updateCover") - public Mono updateCoverSystemAddressById(@RequestBody SystemAddressEntity entity){ - return systemAddressService.updateCoverSystemAddressById(entity); - } - - - - @PostMapping("/delete") - public Mono deleteSystemAddressById(@RequestParam Long id){ - return systemAddressService.deleteSystemAddressById(id); - } - - - -} diff --git a/iot-modules/iot-customer-http-api/src/test/tmp/SystemAddressEntity.java b/iot-modules/iot-customer-http-api/src/test/tmp/SystemAddressEntity.java deleted file mode 100644 index 39b4c5f..0000000 --- a/iot-modules/iot-customer-http-api/src/test/tmp/SystemAddressEntity.java +++ /dev/null @@ -1,92 +0,0 @@ -package com.qiuguo.iot.data.entity; -import org.hswebframework.ezorm.rdb.mapping.annotation.Comment; -import org.hswebframework.web.crud.annotation.EnableEntityEvent; -import org.hswebframework.web.api.crud.entity.GenericEntity; -import javax.persistence.Column; -import javax.persistence.Table;import lombok.Data; -import java.util.Date; -/** -*

-*

*数据-区域 -* @author wulin -* @since 2023-10-11 -*/ - -@Data -@Comment("数据-区域") -@Table(name = "system_address") -@EnableEntityEvent -public class SystemAddressEntity extends GenericEntity { - @Comment("ID") - @Column(name = "id", length = 11, nullable = false, unique = true) - private Long id; - - @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; - - @Comment("上级ID") - @Column(name = "parent_id", nullable = false) - private Long parentId; - - @Comment("adcode") - @Column(name = "adcode") - private Integer adcode; - - @Comment("上级 adcode") - @Column(name = "padcode", nullable = false) - private Integer padcode; - - @Comment("首字母") - @Column(name = "first", length = 50) - private String first; - - @Comment("区域简称") - @Column(name = "short_name", length = 100) - private String shortName; - - @Comment("区域名称") - @Column(name = "name", length = 100) - private String name; - - @Comment("adcode_link") - @Column(name = "adcode_link", length = 56) - private String adcodeLink; - - @Comment("name_link") - @Column(name = "name_link", length = 255) - private String nameLink; - - @Comment("区域层级") - @Column(name = "level") - private Integer level; - - @Comment("区域拼音") - @Column(name = "pinyin", length = 100) - private String pinyin; - - @Comment("区域邮编") - @Column(name = "postcode", length = 100) - private String postcode; - - @Comment("使用状态") - @Column(name = "status", length = 1) - private Integer status; - - @Comment("所在经度") - @Column(name = "lng", length = 100) - private String lng; - - @Comment("所在纬度") - @Column(name = "lat", length = 100) - private String lat; - -} \ No newline at end of file diff --git a/iot-modules/iot-customer-http-api/src/test/tmp/SystemAddressRequest.java b/iot-modules/iot-customer-http-api/src/test/tmp/SystemAddressRequest.java deleted file mode 100644 index 78d46bd..0000000 --- a/iot-modules/iot-customer-http-api/src/test/tmp/SystemAddressRequest.java +++ /dev/null @@ -1,111 +0,0 @@ -package com.qiuguo.iot.data.entity; -import lombok.Data; -import java.util.Date; -/** -*

-*数据-区域请求类 -* @author wulin -* @since 2023-10-11 -*/ - - -@Data -public class SystemAddressRequest implements java.io.Serializable { - - private int currPage = 1; - private int pageSize = 10; - private String sort; - private String order; - /** - *ID - */ - private Long id; - /** - * - */ - private Integer isDelete; - /** - * - */ - private Date createTime; - /** - *搜索开始 - */ - - private Date createTimeStart; - - /** - *搜索结束 - */ - private Date createTimeEnd; - /** - * - */ - private Date modifyTime; - /** - *搜索开始 - */ - - private Date modifyTimeStart; - - /** - *搜索结束 - */ - private Date modifyTimeEnd; - /** - *上级ID - */ - private Long parentId; - /** - *adcode - */ - private Integer adcode; - /** - *上级 adcode - */ - private Integer padcode; - /** - *首字母 - */ - private String first; - /** - *区域简称 - */ - private String shortName; - /** - *区域名称 - */ - private String name; - /** - * - */ - private String adcodeLink; - /** - * - */ - private String nameLink; - /** - *区域层级 - */ - private Integer level; - /** - *区域拼音 - */ - private String pinyin; - /** - *区域邮编 - */ - private String postcode; - /** - *使用状态 - */ - private Integer status; - /** - *所在经度 - */ - private String lng; - /** - *所在纬度 - */ - private String lat; -} \ No newline at end of file diff --git a/iot-modules/iot-customer-http-api/src/test/tmp/SystemAddressResp.java b/iot-modules/iot-customer-http-api/src/test/tmp/SystemAddressResp.java deleted file mode 100644 index 0172086..0000000 --- a/iot-modules/iot-customer-http-api/src/test/tmp/SystemAddressResp.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.qiuguo.iot.data.entity; -import lombok.Data; -import java.util.Date; -/** -*

-*

*数据-区域返回类 -* @author wulin -* @since 2023-10-11 -*/ - -@Data -public class SystemAddressResp { - public SystemAddressResp(){ - } - public SystemAddressResp(SystemAddressEntity entity){ - id = entity.getId(); - createTime = entity.getCreateTime(); - modifyTime = entity.getModifyTime(); - parentId = entity.getParentId(); - adcode = entity.getAdcode(); - padcode = entity.getPadcode(); - first = entity.getFirst(); - shortName = entity.getShortName(); - name = entity.getName(); - adcodeLink = entity.getAdcodeLink(); - nameLink = entity.getNameLink(); - level = entity.getLevel(); - pinyin = entity.getPinyin(); - postcode = entity.getPostcode(); - status = entity.getStatus(); - lng = entity.getLng(); - lat = entity.getLat(); - } - - /** - *ID - */ - private Long id; - /** - * - */ - private Date createTime; - /** - * - */ - private Date modifyTime; - /** - *上级ID - */ - private Long parentId; - /** - *adcode - */ - private Integer adcode; - /** - *上级 adcode - */ - private Integer padcode; - /** - *首字母 - */ - private String first; - /** - *区域简称 - */ - private String shortName; - /** - *区域名称 - */ - private String name; - /** - * - */ - private String adcodeLink; - /** - * - */ - private String nameLink; - /** - *区域层级 - */ - private Integer level; - /** - *区域拼音 - */ - private String pinyin; - /** - *区域邮编 - */ - private String postcode; - /** - *使用状态 - */ - private Integer status; - /** - *所在经度 - */ - private String lng; - /** - *所在纬度 - */ - private String lat; -} \ No newline at end of file diff --git a/iot-modules/iot-customer-http-api/src/test/tmp/SystemAddressService.java b/iot-modules/iot-customer-http-api/src/test/tmp/SystemAddressService.java deleted file mode 100644 index 9ede45c..0000000 --- a/iot-modules/iot-customer-http-api/src/test/tmp/SystemAddressService.java +++ /dev/null @@ -1,279 +0,0 @@ -package com.admin.service.impl; - - - -import org.apache.commons.lang3.StringUtils; -import java.util.Date; -/** -*

-* 数据-区域服务类 -*

-* -* @author wulin -* @since 2023-10-11 -*/ - -@Service -@Slf4j -public class SystemAddressService extends GenericReactiveCrudService { - - - public Mono selectSystemAddressByRequest(SystemAddressRequest request){ - ReactiveQuery reactiveQuery = createQuery(); - reactiveQuery = reactiveQuery.and("is_delete", 0); - if(request.getId() != null){ - reactiveQuery = reactiveQuery.and(SystemAddressRequest::getId, request.getId()); - } - if(request.getIsDelete() != null){ - reactiveQuery = reactiveQuery.and(SystemAddressRequest::getIsDelete, request.getIsDelete()); - } - if(request.getCreateTime() != null){ - reactiveQuery = reactiveQuery.and(SystemAddressRequest::getCreateTime, request.getCreateTime()); - } - if(request.getModifyTime() != null){ - reactiveQuery = reactiveQuery.and(SystemAddressRequest::getModifyTime, request.getModifyTime()); - } - if(request.getParentId() != null){ - reactiveQuery = reactiveQuery.and(SystemAddressRequest::getParentId, request.getParentId()); - } - if(request.getAdcode() != null){ - reactiveQuery = reactiveQuery.and(SystemAddressRequest::getAdcode, request.getAdcode()); - } - if(request.getPadcode() != null){ - reactiveQuery = reactiveQuery.and(SystemAddressRequest::getPadcode, request.getPadcode()); - } - if(StringUtils.isNotEmpty(request.getFirst())){ - reactiveQuery = reactiveQuery.and(SystemAddressRequest::getFirst, request.getFirst()); - } - if(StringUtils.isNotEmpty(request.getShortName())){ - reactiveQuery = reactiveQuery.and(SystemAddressRequest::getShortName, request.getShortName()); - } - if(StringUtils.isNotEmpty(request.getName())){ - reactiveQuery = reactiveQuery.and(SystemAddressRequest::getName, request.getName()); - } - if(StringUtils.isNotEmpty(request.getAdcodeLink())){ - reactiveQuery = reactiveQuery.and(SystemAddressRequest::getAdcodeLink, request.getAdcodeLink()); - } - if(StringUtils.isNotEmpty(request.getNameLink())){ - reactiveQuery = reactiveQuery.and(SystemAddressRequest::getNameLink, request.getNameLink()); - } - if(request.getLevel() != null){ - reactiveQuery = reactiveQuery.and(SystemAddressRequest::getLevel, request.getLevel()); - } - if(StringUtils.isNotEmpty(request.getPinyin())){ - reactiveQuery = reactiveQuery.and(SystemAddressRequest::getPinyin, request.getPinyin()); - } - if(StringUtils.isNotEmpty(request.getPostcode())){ - reactiveQuery = reactiveQuery.and(SystemAddressRequest::getPostcode, request.getPostcode()); - } - if(request.getStatus() != null){ - reactiveQuery = reactiveQuery.and(SystemAddressRequest::getStatus, request.getStatus()); - } - if(StringUtils.isNotEmpty(request.getLng())){ - reactiveQuery = reactiveQuery.and(SystemAddressRequest::getLng, request.getLng()); - } - if(StringUtils.isNotEmpty(request.getLat())){ - reactiveQuery = reactiveQuery.and(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); - } - return reactiveQuery.fetchOne(); - } - - - - public Mono> selectSystemAddresssByRequest(SystemAddressRequest request){ - ReactiveQuery reactiveQuery = createQuery(); - reactiveQuery = reactiveQuery.and("is_delete", 0); - if(request.getId() != null){ - reactiveQuery = reactiveQuery.and(SystemAddressRequest::getId, request.getId()); - } - if(request.getIsDelete() != null){ - reactiveQuery = reactiveQuery.and(SystemAddressRequest::getIsDelete, request.getIsDelete()); - } - if(request.getCreateTimeStart() != null){ - reactiveQuery = reactiveQuery.gte(SystemAddressRequest::getCreateTime, request.getCreateTimeStart()); - } - if(request.getCreateTimeEnd() != null){ - reactiveQuery = reactiveQuery.lte(SystemAddressRequest::getCreateTime, request.getCreateTimeEnd()); - } - if(request.getModifyTimeStart() != null){ - reactiveQuery = reactiveQuery.gte(SystemAddressRequest::getModifyTime, request.getModifyTimeStart()); - } - if(request.getModifyTimeEnd() != null){ - reactiveQuery = reactiveQuery.lte(SystemAddressRequest::getModifyTime, request.getModifyTimeEnd()); - } - if(request.getParentId() != null){ - reactiveQuery = reactiveQuery.and(SystemAddressRequest::getParentId, request.getParentId()); - } - if(request.getAdcode() != null){ - reactiveQuery = reactiveQuery.and(SystemAddressRequest::getAdcode, request.getAdcode()); - } - if(request.getPadcode() != null){ - reactiveQuery = reactiveQuery.and(SystemAddressRequest::getPadcode, request.getPadcode()); - } - if(StringUtils.isNotEmpty(request.getFirst())){ - reactiveQuery = reactiveQuery.$like$(SystemAddressRequest::getFirst, request.getFirst()); - } - if(StringUtils.isNotEmpty(request.getShortName())){ - reactiveQuery = reactiveQuery.$like$(SystemAddressRequest::getShortName, request.getShortName()); - } - if(StringUtils.isNotEmpty(request.getName())){ - reactiveQuery = reactiveQuery.$like$(SystemAddressRequest::getName, request.getName()); - } - if(StringUtils.isNotEmpty(request.getAdcodeLink())){ - reactiveQuery = reactiveQuery.$like$(SystemAddressRequest::getAdcodeLink, request.getAdcodeLink()); - } - if(StringUtils.isNotEmpty(request.getNameLink())){ - reactiveQuery = reactiveQuery.$like$(SystemAddressRequest::getNameLink, request.getNameLink()); - } - if(request.getLevel() != null){ - reactiveQuery = reactiveQuery.and(SystemAddressRequest::getLevel, request.getLevel()); - } - if(StringUtils.isNotEmpty(request.getPinyin())){ - reactiveQuery = reactiveQuery.$like$(SystemAddressRequest::getPinyin, request.getPinyin()); - } - if(StringUtils.isNotEmpty(request.getPostcode())){ - reactiveQuery = reactiveQuery.$like$(SystemAddressRequest::getPostcode, request.getPostcode()); - } - if(request.getStatus() != null){ - reactiveQuery = reactiveQuery.and(SystemAddressRequest::getStatus, request.getStatus()); - } - if(StringUtils.isNotEmpty(request.getLng())){ - reactiveQuery = reactiveQuery.$like$(SystemAddressRequest::getLng, request.getLng()); - } - if(StringUtils.isNotEmpty(request.getLat())){ - reactiveQuery = reactiveQuery.$like$(SystemAddressRequest::getLat, request.getLat()); - } - 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 selectSystemAddressById(Long id){ - return createQuery() - .and("is_delete", 0) - .and("id", id) - .fetchOne(); - } - - - - public Mono insertSystemAddress(SystemAddressEntity entity){ - entity.setId(null); - entity.setCreateTime(null); - entity.setModifyTime(null); - return insert(entity); - } - - - - public Mono updateSystemAddressById(SystemAddressEntity entity){ - ReactiveUpdate update = createUpdate() - .set(SystemAddressEntity::getModifyTime, new Date()); - if(entity.getIsDelete() != null){ - update = update.set(SystemAddressEntity::getIsDelete, entity.getIsDelete()); - } - if(entity.getParentId() != null){ - update = update.set(SystemAddressEntity::getParentId, entity.getParentId()); - } - if(entity.getAdcode() != null){ - update = update.set(SystemAddressEntity::getAdcode, entity.getAdcode()); - } - if(entity.getPadcode() != null){ - update = update.set(SystemAddressEntity::getPadcode, entity.getPadcode()); - } - if(StringUtils.isNotEmpty(entity.getFirst())){ - update = update.set(SystemAddressEntity::getFirst, entity.getFirst()); - } - if(StringUtils.isNotEmpty(entity.getShortName())){ - update = update.set(SystemAddressEntity::getShortName, entity.getShortName()); - } - if(StringUtils.isNotEmpty(entity.getName())){ - update = update.set(SystemAddressEntity::getName, entity.getName()); - } - if(StringUtils.isNotEmpty(entity.getAdcodeLink())){ - update = update.set(SystemAddressEntity::getAdcodeLink, entity.getAdcodeLink()); - } - if(StringUtils.isNotEmpty(entity.getNameLink())){ - update = update.set(SystemAddressEntity::getNameLink, entity.getNameLink()); - } - if(entity.getLevel() != null){ - update = update.set(SystemAddressEntity::getLevel, entity.getLevel()); - } - if(StringUtils.isNotEmpty(entity.getPinyin())){ - update = update.set(SystemAddressEntity::getPinyin, entity.getPinyin()); - } - if(StringUtils.isNotEmpty(entity.getPostcode())){ - update = update.set(SystemAddressEntity::getPostcode, entity.getPostcode()); - } - if(entity.getStatus() != null){ - update = update.set(SystemAddressEntity::getStatus, entity.getStatus()); - } - if(StringUtils.isNotEmpty(entity.getLng())){ - update = update.set(SystemAddressEntity::getLng, entity.getLng()); - } - if(StringUtils.isNotEmpty(entity.getLat())){ - update = update.set(SystemAddressEntity::getLat, entity.getLat()); - } - return update.where(SystemAddressEntity::getId, entity.getId()).and("is_delete", 0).execute(); - } - - - - public Mono updateCoverSystemAddressById(SystemAddressEntity entity){ - ReactiveUpdate update = createUpdate() - .set(SystemAddressEntity::getModifyTime, new Date()); - update = update.set(SystemAddressEntity::getIsDelete, entity.getIsDelete()); - update = update.set(SystemAddressEntity::getParentId, entity.getParentId()); - update = update.set(SystemAddressEntity::getAdcode, entity.getAdcode()); - update = update.set(SystemAddressEntity::getPadcode, entity.getPadcode()); - update = update.set(SystemAddressEntity::getFirst, entity.getFirst()); - update = update.set(SystemAddressEntity::getShortName, entity.getShortName()); - update = update.set(SystemAddressEntity::getName, entity.getName()); - update = update.set(SystemAddressEntity::getAdcodeLink, entity.getAdcodeLink()); - update = update.set(SystemAddressEntity::getNameLink, entity.getNameLink()); - update = update.set(SystemAddressEntity::getLevel, entity.getLevel()); - update = update.set(SystemAddressEntity::getPinyin, entity.getPinyin()); - update = update.set(SystemAddressEntity::getPostcode, entity.getPostcode()); - update = update.set(SystemAddressEntity::getStatus, entity.getStatus()); - update = update.set(SystemAddressEntity::getLng, entity.getLng()); - update = update.set(SystemAddressEntity::getLat, entity.getLat()); - return update.where(SystemAddressEntity::getId, entity.getId()).and("is_delete", 0).execute(); - } - - - - public Mono deleteSystemAddressById(Long id){ - return createUpdate() - .set("is_delete", 1) - .set("modify_time", new Date()) - .where("id", id) - .execute(); - } - - - -}