From 13ff42df5af879d315051e6a7b45ea77e18e4797 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Wed, 28 Jul 2021 14:26:30 +0800
Subject: [PATCH] 指令代码合并

---
 src/main/java/org/springblade/modules/directive/mapper/DirectiveMapper.java                   |   54 +++++
 src/main/java/org/springblade/modules/directive/service/impl/DirectiveServiceImpl.java        |   95 +++++++++
 src/main/java/org/springblade/modules/training/controller/TrainingRegistrationController.java |    6 
 src/main/java/org/springblade/modules/directive/vo/DirectiveVo.java                           |   43 ++++
 src/main/java/org/springblade/modules/directive/service/DirectiveService.java                 |   43 ++++
 src/main/java/org/springblade/modules/directive/entity/Directive.java                         |   65 ++++++
 src/main/java/org/springblade/modules/directive/mapper/DirectiveMapper.xml                    |   65 ++++++
 src/main/resources/application.yml                                                            |    1 
 src/main/java/org/springblade/modules/directive/controller/DirectiveController.java           |  170 +++++++++++++++++
 src/main/java/org/springblade/modules/directive/entity/DirectiveFile.java                     |   46 ++++
 10 files changed, 586 insertions(+), 2 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..25d2f3a
--- /dev/null
+++ b/src/main/java/org/springblade/modules/directive/controller/DirectiveController.java
@@ -0,0 +1,170 @@
+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.entity.DirectiveFile;
+import org.springblade.modules.directive.service.DirectiveService;
+import org.springblade.modules.directive.vo.DirectiveVo;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @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("/saveDirectiveAndFile")
+	public R saveDirectiveAndFile(@RequestBody DirectiveVo directive) {
+		//新增指令信息
+		boolean save = directiveService.save(directive);
+		boolean status = false;
+		if (save){
+			//新增图片
+			if (null!=directive.getUrl() && directive.getUrl()!=""){
+				String[] directiveUrl = directive.getUrl().split(",");
+				for (String url : directiveUrl) {
+					DirectiveFile directiveFile = new DirectiveFile();
+					directiveFile.setType(1);
+					directiveFile.setDirectiveId(directive.getId());
+					directiveFile.setUrl(url);
+					status = directiveService.saveDirectiveFile(directiveFile);
+					if (!status){
+						R.status(false);
+					}
+				}
+			}
+			return R.status(status);
+		}
+		//返回数据
+		return R.status(status);
+	}
+
+
+	/**
+	 * 指令信息修改,同时新增图片到指令文件表中
+	 * @param directive 指令信息对象
+	 */
+	@PostMapping("/updateDirectiveAndFile")
+	public R updateDirectiveAndFile(@RequestBody DirectiveVo directive) {
+		//新增指令信息
+		boolean update = directiveService.updateById(directive);
+		boolean status = false;
+		if (update){
+			//先删除图片
+			int i = directiveService.deleleByDirectiveId(directive.getId());
+			//新增图片
+			if (null!=directive.getUrl() && directive.getUrl()!=""){
+				String[] directiveUrl = directive.getUrl().split(",");
+				for (String url : directiveUrl) {
+					DirectiveFile directiveFile = new DirectiveFile();
+					directiveFile.setType(1);
+					directiveFile.setDirectiveId(directive.getId());
+					directiveFile.setUrl(url);
+					status = directiveService.saveDirectiveFile(directiveFile);
+					if (!status){
+						R.status(false);
+					}
+				}
+			}
+			return R.status(status);
+		}
+		//返回数据
+		return R.status(status);
+	}
+
+	/**
+	 * 修改
+	 * @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) {
+		//图片也删除
+		if (null!=ids && ids!=""){
+			String[] directiveIds = ids.split(",");
+			for (String directiveId : directiveIds) {
+				directiveService.deleleByDirectiveId(Long.parseLong(directiveId));
+			}
+		}
+		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..ade3c37
--- /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 String sendDirectiveId;
+
+
+	/**
+	 * 接收人ids  可以是多个
+	 */
+	@TableField("receive_directive_ids")
+	private String 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/entity/DirectiveFile.java b/src/main/java/org/springblade/modules/directive/entity/DirectiveFile.java
new file mode 100644
index 0000000..2147fda
--- /dev/null
+++ b/src/main/java/org/springblade/modules/directive/entity/DirectiveFile.java
@@ -0,0 +1,46 @@
+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 lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 指令文件实体类
+ * @author zhongrj
+ * @time 2021-07-22
+ */
+@Data
+@TableName("sys_directive_file")
+public class DirectiveFile implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 指令文件主键id
+	 */
+	@TableId(value = "id",type = IdType.AUTO)
+	private Long id;
+
+	/**
+	 * 类型  1:图片  2:视频
+	 */
+	@TableField("type")
+	private Integer type;
+
+
+	/**
+	 * 指令id
+	 */
+	@TableField("directive_id")
+	private Long directiveId;
+
+
+	/**
+	 * url 路径
+	 */
+	private String url;
+
+}
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..eb0f292
--- /dev/null
+++ b/src/main/java/org/springblade/modules/directive/mapper/DirectiveMapper.java
@@ -0,0 +1,54 @@
+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.entity.DirectiveFile;
+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);
+
+	/**
+	 * 查询指令图片信息集合
+	 * @param id 指令id
+	 * @return
+	 */
+    List<DirectiveFile> getDirectiveFileList(Long id);
+
+	/**
+	 * 插入图片
+	 * @param directiveFile
+	 * @return
+	 */
+	int saveDirectiveFile(@Param("directiveFile") DirectiveFile directiveFile);
+
+	/**
+	 * 删除图片
+	 * @param id 指令id
+	 * @return
+	 */
+	int deleteByDirectiveId(@Param("id") Long id);
+}
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..38ee2c1
--- /dev/null
+++ b/src/main/java/org/springblade/modules/directive/mapper/DirectiveMapper.xml
@@ -0,0 +1,65 @@
+<?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.send_directive_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 &gt;= #{directive.startTime}
+        </if>
+        <if test="directive.endTime!=null and directive.endTime!=''">
+            and sl.send_time &lt;= #{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>
+
+    <!--查询指令图片信息集合-->
+    <select id="getDirectiveFileList" resultType="org.springblade.modules.directive.entity.DirectiveFile">
+        select * from sys_directive_file
+        where 1=1
+        <if test="id!=null and id!=''">
+            and directive_id = #{id}
+        </if>
+    </select>
+
+    <!--插入图片-->
+    <insert id="saveDirectiveFile">
+        insert into
+            sys_directive_file
+        (type,directive_id,url)
+            value
+        (#{directiveFile.type},#{directiveFile.directiveId},#{directiveFile.url})
+    </insert>
+
+    <!--删除图片-->
+    <delete id="deleteByDirectiveId">
+        delete from sys_directive_file where directive_id = #{id}
+    </delete>
+
+</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..7e712c7
--- /dev/null
+++ b/src/main/java/org/springblade/modules/directive/service/DirectiveService.java
@@ -0,0 +1,43 @@
+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.entity.DirectiveFile;
+import org.springblade.modules.directive.vo.DirectiveVo;
+
+/**
+ * @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);
+
+	/**
+	 * 插入图片
+	 * @param directiveFile
+	 * @return
+	 */
+	boolean saveDirectiveFile(DirectiveFile directiveFile);
+
+	/**
+	 * 删除图片
+	 * @param id 指令id
+	 * @return
+	 */
+	int deleleByDirectiveId(Long id);
+}
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..0793251
--- /dev/null
+++ b/src/main/java/org/springblade/modules/directive/service/impl/DirectiveServiceImpl.java
@@ -0,0 +1,95 @@
+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.entity.DirectiveFile;
+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(",");
+			}
+			//查询图片
+			List<DirectiveFile> directiveFiles = baseMapper.getDirectiveFileList(record.getId());
+			if (directiveFiles.size()>0){
+				StringBuilder builderFile = new StringBuilder();
+				for (DirectiveFile directiveFile : directiveFiles) {
+					builderFile.append(directiveFile.getUrl()).append(",");
+				}
+				String urls = builderFile.toString();
+				record.setUrl(urls.substring(0, urls.length() - 1));
+			}
+			record.setReceiveName(builder.toString().substring(0, builder.toString().length() - 1));
+		}
+		return directiveVoIPage;
+	}
+
+	/**
+	 * 详情
+	 * @param directive 指令信息对象
+	 */
+	@Override
+	public DirectiveVo selectDirectiveInfo(Directive directive) {
+		return baseMapper.selectDirectiveInfo(directive);
+	}
+
+
+	/**
+	 * 插入图片
+	 * @param directiveFile
+	 * @return
+	 */
+	@Override
+	public boolean saveDirectiveFile(DirectiveFile directiveFile) {
+		int i = baseMapper.saveDirectiveFile(directiveFile);
+		if (i>0){
+			return true;
+		}
+		return false;
+	}
+
+	/**
+	 * 删除图片
+	 * @param id 指令id
+	 * @return
+	 */
+	@Override
+	public int deleleByDirectiveId(Long id) {
+		return baseMapper.deleteByDirectiveId(id);
+	}
+}
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;
+
+
+
+}
diff --git a/src/main/java/org/springblade/modules/training/controller/TrainingRegistrationController.java b/src/main/java/org/springblade/modules/training/controller/TrainingRegistrationController.java
index 2dbd7ea..4f738cc 100644
--- a/src/main/java/org/springblade/modules/training/controller/TrainingRegistrationController.java
+++ b/src/main/java/org/springblade/modules/training/controller/TrainingRegistrationController.java
@@ -45,7 +45,8 @@
 	 */
 	@PostMapping("/save")
 	@ApiOperation(value = "新增", notes = "传入trainingRegistration")
-	public R save(@RequestBody TrainingRegistration trainingRegistration) {
+	public R save(@RequestBody TrainingRegistration trainingRegistration) throws Exception {
+		arg.test01(arg.url+"/trainingRegistration/save",trainingRegistration);
 		return R.status(trainingRegistrationService.save(trainingRegistration));
 	}
 
@@ -54,7 +55,8 @@
 	 * @param trainingRegistration 报名培训信息对象
 	 */
 	@PostMapping("/update")
-	public R update(@RequestBody TrainingRegistration trainingRegistration) {
+	public R update(@RequestBody TrainingRegistration trainingRegistration) throws Exception {
+		arg.test01(arg.url+"/trainingRegistration/update",trainingRegistration);
 		return R.status(trainingRegistrationService.updateById(trainingRegistration));
 	}
 
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 98e051a..ac95556 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -208,6 +208,7 @@
       - /apply/**
       - /trainExam/**
       - /blade-desk/**
+      - /directive/**
     #授权认证配置
     auth:
       - method: ALL

--
Gitblit v1.9.3