增加u3d指令

This commit is contained in:
wulin 2023-10-13 11:19:46 +08:00
parent 01094da6d3
commit ffa401c6e9
16 changed files with 716 additions and 690 deletions

View File

@ -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;
/**
* <p>
* </p>*自定义命令和u3d动作绑定表
* @author wulin
* @since 2023-10-13
*/
@Data
@Comment("自定义命令和u3d动作绑定表")
@Table(name = "system_talk_bind_u3d")
@EnableEntityEvent
public class SystemTalkBindU3dEntity 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 = "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;
}

View File

@ -0,0 +1,103 @@
package com.qiuguo.iot.data.request.system;
import lombok.Data;
import java.util.Date;
/**
* <p>
*自定义命令和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;
}

View File

@ -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;
/**
* <p>
* </p>*自定义命令和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;
}

View File

@ -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;
/**
* <p>
* 自定义命令和u3d动作绑定服务类
* </p>
*
* @author wulin
* @since 2023-10-13
*/
@Service
@Slf4j
public class SystemTalkBindU3dService extends GenericReactiveCrudService<SystemTalkBindU3dEntity, Long> {
public Mono<SystemTalkBindU3dEntity> selectSystemTalkBindU3dByRequest(SystemTalkBindU3dRequest request){
ReactiveQuery<SystemTalkBindU3dEntity> 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<PagerResult<SystemTalkBindU3dEntity>> selectSystemTalkBindU3dsByRequest(SystemTalkBindU3dRequest request){
ReactiveQuery<SystemTalkBindU3dEntity> 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<SystemTalkBindU3dEntity> selectSystemTalkBindU3dById(Long id){
return createQuery()
.and("is_delete", 0)
.and("id", id)
.fetchOne();
}
public Mono<Integer> insertSystemTalkBindU3d(SystemTalkBindU3dEntity entity){
entity.setId(null);
entity.setCreateTime(null);
entity.setModifyTime(null);
return insert(entity);
}
public Mono<Integer> updateSystemTalkBindU3dById(SystemTalkBindU3dEntity entity){
ReactiveUpdate<SystemTalkBindU3dEntity> 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<Integer> updateCoverSystemTalkBindU3dById(SystemTalkBindU3dEntity entity){
ReactiveUpdate<SystemTalkBindU3dEntity> 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<Integer> deleteSystemTalkBindU3dById(Long id){
return createUpdate()
.set("is_delete", 1)
.set("modify_time", new Date())
.where("id", id)
.execute();
}
public Mono<SystemTalkBindU3dEntity> selectSystemTalkBindU3dBySystemTalkId(Long systemTalkId) {
return createQuery()
.and("is_delete", 0)
.and("system_talk_id", systemTalkId)
.fetchOne();
}
}

View File

@ -36,6 +36,10 @@ public class AliYunQianWen {
*/ */
MessageManager msgManager = new MessageManager(10); MessageManager msgManager = new MessageManager(10);
/**
* 有由于千问限制必须一问一答
*/
private boolean canAsk = true;
GenerationResult lastGenerationResult = null; GenerationResult lastGenerationResult = null;
@ -53,13 +57,16 @@ public class AliYunQianWen {
public void sendMessage(String msg, public void sendMessage(String msg,
Consumer<? super String> onNext, Consumer<? super String> onNext,
QWenReplyResponse qwenReplyResponse) throws NoApiKeyException, InputRequiredException, InterruptedException { QWenReplyResponse qwenReplyResponse) throws NoApiKeyException, InputRequiredException, InterruptedException {
if(!canAsk){
msgManager = new MessageManager(10);
}
Message userMsg = Message Message userMsg = Message
.builder() .builder()
.role(Role.USER.getValue()) .role(Role.USER.getValue())
.content(msg) .content(msg)
.build(); .build();
msgManager.add(userMsg); msgManager.add(userMsg);
canAsk = !canAsk;
Generation gen = new Generation(); Generation gen = new Generation();
@ -81,6 +88,7 @@ public class AliYunQianWen {
}else{ }else{
lastGenerationResult = message; lastGenerationResult = message;
msgManager.add(lastGenerationResult); msgManager.add(lastGenerationResult);
canAsk = !canAsk;
} }
} catch (Exception e) { } catch (Exception e) {
log.info("千问回调异常{}", e); log.info("千问回调异常{}", e);
@ -92,7 +100,6 @@ public class AliYunQianWen {
@Override @Override
public void onComplete() { public void onComplete() {
if(lastGenerationResult != null){ if(lastGenerationResult != null){
qwenReplyResponse.setResut(lastGenerationResult.getOutput().getChoices().get(0).getMessage().getContent()); qwenReplyResponse.setResut(lastGenerationResult.getOutput().getChoices().get(0).getMessage().getContent());
} }

View File

@ -48,12 +48,12 @@ public class QWenService {
final AliYunQianWen aliQianWen1 = aliQianWen; final AliYunQianWen aliQianWen1 = aliQianWen;
return Mono.just(new QWenReplyResponse()).map(qWenReplyResponse -> { return Mono.just(new QWenReplyResponse()).map(qWenReplyResponse -> {
try { try {
aliQianWen1.sendMessage(rest.getText(), onNext, qWenReplyResponse);
qWenReplyResponse.setCode(200); qWenReplyResponse.setCode(200);
aliQianWen1.sendMessage(rest.getText(), onNext, qWenReplyResponse);
} catch (Exception e) { } catch (Exception e) {
log.info("调用千问异常{}", e); log.info("调用千问异常{}", e);
qWenReplyResponse.setCode(500); qWenReplyResponse.setCode(500);
throw new RuntimeException(e);
} }
return qWenReplyResponse; return qWenReplyResponse;

View File

@ -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;
/**
* <p>
* 自定义命令和u3d动作绑定Controller类
* </p>
*
* @author wulin
* @since 2023-10-13
*/
@RestController
@Slf4j
@RequestMapping("/SystemTalkBindU3d")
public class SystemTalkBindU3dController{
@Autowired
private SystemTalkBindU3dService systemTalkBindU3dService;
@PostMapping("/info")
public Mono<SystemTalkBindU3dResp> selectSystemTalkBindU3dByRequest(@RequestBody SystemTalkBindU3dRequest request){
return systemTalkBindU3dService.selectSystemTalkBindU3dByRequest(request).map(d -> {return new SystemTalkBindU3dResp(d);});
}
@PostMapping("/list")
public Mono<PagerResult<SystemTalkBindU3dResp>> selectSystemTalkBindU3dsByRequest(@RequestBody SystemTalkBindU3dRequest request){
return systemTalkBindU3dService.selectSystemTalkBindU3dsByRequest(request).map(d -> {
PagerResult<SystemTalkBindU3dResp> result = new PagerResult<>();
result.setPageIndex(d.getPageIndex());
result.setPageSize(d.getPageSize());
result.setTotal(d.getTotal());
List<SystemTalkBindU3dResp> ds = d.getData().stream().map(new Function<SystemTalkBindU3dEntity, SystemTalkBindU3dResp>() {
@Override
public SystemTalkBindU3dResp apply(SystemTalkBindU3dEntity entity) {
return new SystemTalkBindU3dResp(entity);
}
}
).collect(Collectors.toList());
result.setData(ds);
return result;
});
}
@GetMapping("/id")
public Mono<SystemTalkBindU3dResp> selectSystemTalkBindU3dById(@RequestParam Long id){
return systemTalkBindU3dService.selectSystemTalkBindU3dById(id).map(d -> {return new SystemTalkBindU3dResp(d);});
}
@PostMapping("/save")
public Mono<Integer> insertSystemTalkBindU3d(@RequestBody SystemTalkBindU3dEntity entity){
return systemTalkBindU3dService.insertSystemTalkBindU3d(entity);
}
@PostMapping("/update")
public Mono<Integer> updateSystemTalkBindU3dById(@RequestBody SystemTalkBindU3dEntity entity){
return systemTalkBindU3dService.updateSystemTalkBindU3dById(entity);
}
@PostMapping("/updateCover")
public Mono<Integer> updateCoverSystemTalkBindU3dById(@RequestBody SystemTalkBindU3dEntity entity){
return systemTalkBindU3dService.updateCoverSystemTalkBindU3dById(entity);
}
@PostMapping("/delete")
public Mono<Integer> deleteSystemTalkBindU3dById(@RequestParam Long id){
return systemTalkBindU3dService.deleteSystemTalkBindU3dById(id);
}
}

View File

@ -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.device.DeviceUserTalkRecordEntity;
import com.qiuguo.iot.data.entity.system.SystemTalkAnswerConfigEntity; import com.qiuguo.iot.data.entity.system.SystemTalkAnswerConfigEntity;
import com.qiuguo.iot.data.entity.system.SystemTalkBindDeviceEntity; 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.device.DeviceUserBindRequest;
import com.qiuguo.iot.data.request.qwen.TongYiCommunicationRest; import com.qiuguo.iot.data.request.qwen.TongYiCommunicationRest;
import com.qiuguo.iot.data.request.system.SystemTalkBindDeviceRequest; 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.mq.MqService;
import com.qiuguo.iot.data.service.system.SystemAddressService; import com.qiuguo.iot.data.service.system.SystemAddressService;
import com.qiuguo.iot.data.service.system.SystemTalkBindDeviceService; 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.Action;
import com.qiuguo.iot.third.nlp.action.ActionTime; import com.qiuguo.iot.third.nlp.action.ActionTime;
import com.qiuguo.iot.third.nlp.action.Actions; import com.qiuguo.iot.third.nlp.action.Actions;
@ -74,6 +76,9 @@ public class BaseWebSocketProcess {
@Autowired @Autowired
protected MqService mqService; protected MqService mqService;
@Autowired
protected SystemTalkBindU3dService systemTalkBindU3dService;
protected static ConcurrentHashMap<Long, BaseSession> userGroup = new ConcurrentHashMap<>(); protected static ConcurrentHashMap<Long, BaseSession> userGroup = new ConcurrentHashMap<>();
@ -159,23 +164,40 @@ public class BaseWebSocketProcess {
}).subscribeOn(Schedulers.boundedElastic()).subscribe(); }).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"); log.info("通知U3DMQ");
try{ 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 //发送消息到MQ通知U3D
mqService.sendMessageWithConfirmation(YunxiRabbitConst.EXCHANGE_YUNXI_EVENT, mqService.sendMessageWithConfirmation(YunxiRabbitConst.EXCHANGE_YUNXI_EVENT,
YunxiRabbitConst.ROUTE_KEY_YUNXI, YunxiRabbitConst.ROUTE_KEY_YUNXI,
JSONObject.toJSONString(u3dMsg)).subscribe(); msg).subscribe();
}catch (Exception e){ }catch (Exception e){
log.info("通知U3D MQ异常{}", e); log.info("通知U3D MQ异常{}", e);
} }
} }
protected void processAction(Actions actions, Long userId, BaseSession baseSession) { protected void processAction(Actions actions, Long userId, BaseSession baseSession) {
if(actions.getActions() == null || actions.getActions().size() == 0){ 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())){ }else if(action.getSystemTalkAnswerConfigEntity().getAnswerType().equals(AskTypeEnum.QIU_GUO.getCode())){
sendMessage(action, baseSession, action.getSystemTalkAnswerConfigEntity().getAnswerValue(), AskTypeEnum.TTS.getCode()); sendMessage(action, baseSession, action.getSystemTalkAnswerConfigEntity().getAnswerValue(), AskTypeEnum.TTS.getCode());
}else if(action.getSystemTalkAnswerConfigEntity().getAnswerType().equals(AskTypeEnum.U3D.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 = ""; String msg = "";
if(isOk.getCode().equals(RespCodeEnum.SUCESS.getCode())){ if(isOk.getCode().equals(RespCodeEnum.SUCESS.getCode())){
if(action.getDeviceUserBindEntity().getU3dId() != null){ if(action.getDeviceUserBindEntity().getU3dId() != null){
toU3DMq(action, systemTalkBindDeviceEntity); toU3DMq(action, systemTalkBindDeviceEntity, action.getDeviceUserBindEntity().getU3dId());
} }
//通知打开灯成功 //通知打开灯成功

View File

@ -59,7 +59,7 @@ public class MysqlMain {
} }
List<TablesBean> list = new ArrayList<>(); List<TablesBean> 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.add(new TablesBean("system_same_talk"));
List<TablesBean> list2 = new ArrayList<TablesBean>(); List<TablesBean> list2 = new ArrayList<TablesBean>();

View File

@ -159,14 +159,14 @@ public class MysqlUtilTable2Contoller {
content += "\n"; content += "\n";
content += TAB + "@PostMapping(\"/list\")\n"; content += TAB + "@PostMapping(\"/list\")\n";
content += TAB + "public Mono<PagerResult<" + realName + "Resp>> select" + realName + "sByRequest(@RequestBody " + realName + "Request request){\n"; content += TAB + "public Mono<PagerResult<" + realName + "Resp>> 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" + " PagerResult<" + realName + "Resp> result = new PagerResult<>();\n" +
" result.setPageIndex(d.getPageIndex());\n" + " result.setPageIndex(d.getPageIndex());\n" +
" result.setPageSize(d.getPageSize());\n" + " result.setPageSize(d.getPageSize());\n" +
" result.setTotal(d.getTotal());\n" + " result.setTotal(d.getTotal());\n" +
" List<" + realName + "Resp> ds = d.getData().stream().map(new Function<" + realName + "Entity, " + realName + "Resp>() {\n" + " List<" + realName + "Resp> ds = d.getData().stream().map(new Function<" + realName + "Entity, " + realName + "Resp>() {\n" +
" @Override\n" + " @Override\n" +
" public DeviceInfoResp apply(" + realName + "Entity entity) {\n" + " public " + realName + "Resp apply(" + realName + "Entity entity) {\n" +
" return new " + realName + "Resp(entity);\n" + " return new " + realName + "Resp(entity);\n" +
" }\n" + " }\n" +
" }\n" + " }\n" +

View File

@ -31,7 +31,6 @@ public class MysqlUtilTable2Service {
List<FieldBean> list = tableBean.getFieldList(); List<FieldBean> list = tableBean.getFieldList();
try { try {
String content = "package com.admin.service.impl;\n\n\n\n" + String content = "package com.admin.service.impl;\n\n\n\n" +
"import org.apache.commons.lang3.StringUtils;\n" +
"import java.util.Date;\n"; "import java.util.Date;\n";

View File

@ -1,88 +0,0 @@
package com.admin.service.impl;
import org.apache.commons.lang3.StringUtils;
import java.util.Date;
/**
* <p>
* 数据-区域Controller类
* </p>
*
* @author wulin
* @since 2023-10-11
*/
@RestController
@Slf4j
@RequestMapping("/SystemAddress")
public class SystemAddressController{
@Autowired
private SystemAddressService systemAddressService;
@PostMapping("/info")
public Mono<SystemAddressResp> selectSystemAddressByRequest(@RequestBody SystemAddressRequest request){
return systemAddressService.selectSystemAddressByRequest(request).map(d -> {return new SystemAddressResp(d);});
}
@PostMapping("/list")
public Mono<PagerResult<SystemAddressResp>> selectSystemAddresssByRequest(@RequestBody SystemAddressRequest request){
return systemAddressService.selectDeviceInfosByRequest(request).map(d -> {
PagerResult<SystemAddressResp> result = new PagerResult<>();
result.setPageIndex(d.getPageIndex());
result.setPageSize(d.getPageSize());
result.setTotal(d.getTotal());
List<SystemAddressResp> ds = d.getData().stream().map(new Function<SystemAddressEntity, SystemAddressResp>() {
@Override
public DeviceInfoResp apply(SystemAddressEntity entity) {
return new SystemAddressResp(entity);
}
}
).collect(Collectors.toList());
result.setData(ds);
return result;
});
}
@GetMapping("/id")
public Mono<SystemAddressResp> selectSystemAddressById(@RequestParam Long id){
return systemAddressService.selectSystemAddressById(id).map(d -> {return new SystemAddressResp(d);});
}
@PostMapping("/save")
public Mono<Integer> insertSystemAddress(@RequestBody SystemAddressEntity entity){
return systemAddressService.insertSystemAddress(entity);
}
@PostMapping("/update")
public Mono<Integer> updateSystemAddressById(@RequestBody SystemAddressEntity entity){
return systemAddressService.updateSystemAddressById(entity);
}
@PostMapping("/updateCover")
public Mono<Integer> updateCoverSystemAddressById(@RequestBody SystemAddressEntity entity){
return systemAddressService.updateCoverSystemAddressById(entity);
}
@PostMapping("/delete")
public Mono<Integer> deleteSystemAddressById(@RequestParam Long id){
return systemAddressService.deleteSystemAddressById(id);
}
}

View File

@ -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;
/**
* <p>
* </p>*数据-区域
* @author wulin
* @since 2023-10-11
*/
@Data
@Comment("数据-区域")
@Table(name = "system_address")
@EnableEntityEvent
public class SystemAddressEntity extends GenericEntity<Long> {
@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;
}

View File

@ -1,111 +0,0 @@
package com.qiuguo.iot.data.entity;
import lombok.Data;
import java.util.Date;
/**
* <p>
*数据-区域请求类
* @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;
}

View File

@ -1,103 +0,0 @@
package com.qiuguo.iot.data.entity;
import lombok.Data;
import java.util.Date;
/**
* <p>
* </p>*数据-区域返回类
* @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;
}

View File

@ -1,279 +0,0 @@
package com.admin.service.impl;
import org.apache.commons.lang3.StringUtils;
import java.util.Date;
/**
* <p>
* 数据-区域服务类
* </p>
*
* @author wulin
* @since 2023-10-11
*/
@Service
@Slf4j
public class SystemAddressService extends GenericReactiveCrudService<SystemAddressEntity, Long> {
public Mono<SystemAddressEntity> selectSystemAddressByRequest(SystemAddressRequest request){
ReactiveQuery<SystemAddressEntity> 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<PagerResult<SystemAddressEntity>> selectSystemAddresssByRequest(SystemAddressRequest request){
ReactiveQuery<SystemAddressEntity> 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<SystemAddressEntity> selectSystemAddressById(Long id){
return createQuery()
.and("is_delete", 0)
.and("id", id)
.fetchOne();
}
public Mono<Integer> insertSystemAddress(SystemAddressEntity entity){
entity.setId(null);
entity.setCreateTime(null);
entity.setModifyTime(null);
return insert(entity);
}
public Mono<Integer> updateSystemAddressById(SystemAddressEntity entity){
ReactiveUpdate<SystemAddressEntity> 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<Integer> updateCoverSystemAddressById(SystemAddressEntity entity){
ReactiveUpdate<SystemAddressEntity> 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<Integer> deleteSystemAddressById(Long id){
return createUpdate()
.set("is_delete", 1)
.set("modify_time", new Date())
.where("id", id)
.execute();
}
}