From aaae94e30d03dd3ed601e46721beb7e2e97581a8 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Wed, 21 Jul 2021 18:11:06 +0800
Subject: [PATCH] 指令查询接口新增
---
src/main/java/org/springblade/modules/directive/mapper/DirectiveMapper.java | 33 ++++
src/main/java/org/springblade/modules/directive/service/impl/DirectiveServiceImpl.java | 59 ++++++++
src/main/java/org/springblade/modules/directive/vo/DirectiveVo.java | 43 ++++++
src/main/java/org/springblade/modules/directive/service/DirectiveService.java | 31 ++++
src/main/java/org/springblade/modules/directive/entity/Directive.java | 65 +++++++++
src/main/java/org/springblade/modules/directive/mapper/DirectiveMapper.xml | 42 ++++++
src/main/java/org/springblade/modules/directive/controller/DirectiveController.java | 115 ++++++++++++++++
7 files changed, 388 insertions(+), 0 deletions(-)
diff --git a/src/main/java/org/springblade/modules/directive/controller/DirectiveController.java b/src/main/java/org/springblade/modules/directive/controller/DirectiveController.java
new file mode 100644
index 0000000..e7810d3
--- /dev/null
+++ b/src/main/java/org/springblade/modules/directive/controller/DirectiveController.java
@@ -0,0 +1,115 @@
+package org.springblade.modules.directive.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.AllArgsConstructor;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.modules.directive.entity.Directive;
+import org.springblade.modules.directive.service.DirectiveService;
+import org.springblade.modules.directive.vo.DirectiveVo;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author zhongrj
+ * @time 2021-07-21
+ * @desc 指令控制层
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/directive")
+public class DirectiveController {
+
+ private final DirectiveService directiveService;
+
+ /**
+ * 自定义分页
+ * @param query page,size
+ * @param directive 指令信息对象
+ */
+ @GetMapping("/page")
+ public R<IPage<DirectiveVo>> page(DirectiveVo directive, Query query) {
+ IPage<DirectiveVo> pages = directiveService.selectDirectivePage(Condition.getPage(query), directive);
+ return R.data(pages);
+ }
+
+ /**
+ * 新增
+ * @param directive 指令信息对象
+ */
+ @PostMapping("/save")
+ @ApiOperation(value = "新增", notes = "传入directive")
+ public R save(@RequestBody Directive directive) {
+ return R.status(directiveService.save(directive));
+ }
+
+
+ /**
+ * 指令信息新增,同时新增到轨迹表中
+ * @param directive 指令信息对象
+ */
+ @PostMapping("/saveDirectiveAndLocus")
+ public R saveDirectiveAndLocus(@RequestBody Directive directive) {
+ //先查询是否已有指令信息,如果有,则更新,没有则插入
+ DirectiveVo directiveVo = directiveService.selectDirectiveInfo(directive);
+ boolean status = false;
+ //返回数据
+ return R.status(false);
+ }
+
+ /**
+ * 修改
+ * @param directive 指令信息对象
+ */
+ @PostMapping("/update")
+ public R update(@RequestBody Directive directive) {
+ return R.status(directiveService.updateById(directive));
+ }
+
+ /**
+ * 新增或修改
+ * @param directive 指令信息对象
+ */
+ @PostMapping("/submit")
+ public R submit(@RequestBody Directive directive) {
+ return R.status(directiveService.saveOrUpdate(directive));
+ }
+
+ /**
+ * 删除
+ * @param ids 指令信息ids 数组
+ */
+ @PostMapping("/remove")
+ public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) {
+ return R.status(directiveService.removeByIds(Func.toLongList(ids)));
+ }
+
+ /**
+ * 详情
+ * @param directive 指令信息对象
+ */
+ @GetMapping("/detail")
+ @ApiOperation(value = "详情", notes = "传入directive")
+ public R<Directive> detail(Directive directive) {
+ Directive detail = directiveService.getOne(Condition.getQueryWrapper(directive));
+ return R.data(detail);
+ }
+
+
+ /**
+ * 自定义详情查询
+ * @param directive 指令信息对象
+ */
+ @GetMapping("/details")
+ @ApiOperation(value = "详情", notes = "传入directive")
+ public R<DirectiveVo> details(Directive directive) {
+ DirectiveVo detail = directiveService.selectDirectiveInfo(directive);
+ return R.data(detail);
+ }
+}
diff --git a/src/main/java/org/springblade/modules/directive/entity/Directive.java b/src/main/java/org/springblade/modules/directive/entity/Directive.java
new file mode 100644
index 0000000..6b9fc13
--- /dev/null
+++ b/src/main/java/org/springblade/modules/directive/entity/Directive.java
@@ -0,0 +1,65 @@
+package org.springblade.modules.directive.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 指令实体类
+ * @author zhongrj
+ * @time 2021-07-21
+ */
+@Data
+@TableName("sys_directive")
+public class Directive implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 指令主键id
+ */
+ @TableId(value = "id",type = IdType.AUTO)
+ private Long id;
+
+ /**
+ * 类型
+ */
+ @TableField("type")
+ private Integer type;
+
+
+ /**
+ * 发送人 id
+ */
+ @TableField("send_directive_id")
+ private Long sendDirectiveId;
+
+
+ /**
+ * 接收人ids 可以是多个
+ */
+ @TableField("receive_directive_ids")
+ private Long receiveDirectiveIds;
+
+
+ /**
+ * 发送指令时间
+ */
+ @TableField("send_time")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date sendTime;
+
+
+ /**
+ * 指令内容
+ */
+ private String content;
+
+}
diff --git a/src/main/java/org/springblade/modules/directive/mapper/DirectiveMapper.java b/src/main/java/org/springblade/modules/directive/mapper/DirectiveMapper.java
new file mode 100644
index 0000000..9c910b2
--- /dev/null
+++ b/src/main/java/org/springblade/modules/directive/mapper/DirectiveMapper.java
@@ -0,0 +1,33 @@
+package org.springblade.modules.directive.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
+import org.springblade.modules.directive.entity.Directive;
+import org.springblade.modules.directive.vo.DirectiveVo;
+
+import java.util.List;
+
+/**
+ * 指令Mapper 接口
+ * @author zhongrj
+ */
+public interface DirectiveMapper extends BaseMapper<Directive> {
+
+ /**
+ * 自定义分页
+ *
+ * @param page 分页
+ * @param directive 实体
+ * @return
+ */
+ List<DirectiveVo> selectDirectivePage(IPage page, @Param("directive") DirectiveVo directive);
+
+ /**
+ * 详情
+ * @param directive 指令信息对象
+ * @return
+ */
+ DirectiveVo selectDirectiveInfo(@Param("directive") Directive directive);
+
+}
diff --git a/src/main/java/org/springblade/modules/directive/mapper/DirectiveMapper.xml b/src/main/java/org/springblade/modules/directive/mapper/DirectiveMapper.xml
new file mode 100644
index 0000000..e244f00
--- /dev/null
+++ b/src/main/java/org/springblade/modules/directive/mapper/DirectiveMapper.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.modules.directive.mapper.DirectiveMapper">
+
+ <!--指令分页信息-->
+ <select id="selectDirectivePage" resultType="org.springblade.modules.directive.vo.DirectiveVo">
+ SELECT
+ sd.*,
+ bu.real_name sendName
+ FROM
+ sys_directive sd
+ left join
+ blade_user bu
+ on
+ bu.id = sd.user_id
+ where
+ 1=1
+ <if test="directive.type!=null and directive.type!=''">
+ and sll.type = #{directive.type}
+ </if>
+ <if test="directive.startTime!=null and directive.startTime!=''">
+ and sl.send_time >= #{directive.startTime}
+ </if>
+ <if test="directive.endTime!=null and directive.endTime!=''">
+ and sl.send_time <= #{directive.endTime}
+ </if>
+ </select>
+
+ <!--指令详情信息-->
+ <select id="selectDirectiveInfo" resultType="org.springblade.modules.directive.vo.DirectiveVo">
+ SELECT
+ *
+ FROM
+ sys_directive
+ WHERE
+ 1=1
+ <if test="directive.id!=null">
+ and id = #{directive.id}
+ </if>
+ </select>
+
+</mapper>
diff --git a/src/main/java/org/springblade/modules/directive/service/DirectiveService.java b/src/main/java/org/springblade/modules/directive/service/DirectiveService.java
new file mode 100644
index 0000000..a151295
--- /dev/null
+++ b/src/main/java/org/springblade/modules/directive/service/DirectiveService.java
@@ -0,0 +1,31 @@
+package org.springblade.modules.directive.service;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.springblade.modules.directive.entity.Directive;
+import org.springblade.modules.directive.vo.DirectiveVo;
+
+import java.util.List;
+
+/**
+ * @author zhongrj
+ */
+public interface DirectiveService extends IService<Directive> {
+
+ /**
+ * 指令详情
+ * @param directive 指令信息对象
+ * @return
+ */
+ DirectiveVo selectDirectiveInfo(Directive directive);
+
+ /**
+ * 指令分页信息
+ * @param page
+ * @param directive 指令信息对象
+ * @return
+ */
+ IPage<DirectiveVo> selectDirectivePage(IPage<DirectiveVo> page, DirectiveVo directive);
+
+}
diff --git a/src/main/java/org/springblade/modules/directive/service/impl/DirectiveServiceImpl.java b/src/main/java/org/springblade/modules/directive/service/impl/DirectiveServiceImpl.java
new file mode 100644
index 0000000..5047fd4
--- /dev/null
+++ b/src/main/java/org/springblade/modules/directive/service/impl/DirectiveServiceImpl.java
@@ -0,0 +1,59 @@
+package org.springblade.modules.directive.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.AllArgsConstructor;
+import org.springblade.modules.directive.entity.Directive;
+import org.springblade.modules.directive.mapper.DirectiveMapper;
+import org.springblade.modules.directive.service.DirectiveService;
+import org.springblade.modules.directive.vo.DirectiveVo;
+import org.springblade.modules.system.entity.User;
+import org.springblade.modules.system.service.IUserService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 指令服务实现类
+ * @author zhongrj
+ */
+@Service
+@AllArgsConstructor
+public class DirectiveServiceImpl extends ServiceImpl<DirectiveMapper, Directive> implements DirectiveService {
+
+ private final IUserService userService;
+
+
+
+ /**
+ * 指令分页信息
+ * @param page
+ * @param directive 指令信息对象
+ * @return
+ */
+ @Override
+ public IPage<DirectiveVo> selectDirectivePage(IPage<DirectiveVo> page, DirectiveVo directive) {
+ IPage<DirectiveVo> directiveVoIPage = page.setRecords(baseMapper.selectDirectivePage(page, directive));
+ //去除接收人ids,查询出接收人名字
+ List<DirectiveVo> records = directiveVoIPage.getRecords();
+ for (DirectiveVo record : records) {
+ String[] receiveDirectiveIds = record.getReceiveDirectiveIds().toString().split(",");
+ StringBuilder builder = new StringBuilder();
+ for (String receiveDirectiveId : receiveDirectiveIds) {
+ User user = userService.getById(receiveDirectiveId);
+ builder.append(user.getRealName()).append(",");
+ }
+ record.setReceiveName(builder.toString().substring(0, builder.toString().length() - 1));
+ }
+ return directiveVoIPage;
+ }
+
+ /**
+ * 详情
+ * @param directive 指令信息对象
+ */
+ @Override
+ public DirectiveVo selectDirectiveInfo(Directive directive) {
+ return baseMapper.selectDirectiveInfo(directive);
+ }
+}
diff --git a/src/main/java/org/springblade/modules/directive/vo/DirectiveVo.java b/src/main/java/org/springblade/modules/directive/vo/DirectiveVo.java
new file mode 100644
index 0000000..138ccc3
--- /dev/null
+++ b/src/main/java/org/springblade/modules/directive/vo/DirectiveVo.java
@@ -0,0 +1,43 @@
+package org.springblade.modules.directive.vo;
+
+import lombok.Data;
+import org.springblade.modules.directive.entity.Directive;
+
+import java.io.Serializable;
+
+/**
+ * @author zhongrj
+ * @since 2021-07-21
+ */
+@Data
+public class DirectiveVo extends Directive implements Serializable {
+
+
+ /**
+ * 开始时间
+ */
+ private String startTime;
+
+ /**
+ * 结束时间
+ */
+ private String endTime;
+
+ /**
+ * 图片url,多张图片url以逗号隔开
+ */
+ private String url;
+
+ /**
+ * 发送人姓名
+ */
+ private String sendName;
+
+ /**
+ * 接收人姓名,多个以逗号隔开
+ */
+ private String receiveName;
+
+
+
+}
--
Gitblit v1.9.3