src/main/java/org/springblade/modules/directive/controller/DirectiveController.java
New file @@ -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); } } src/main/java/org/springblade/modules/directive/entity/Directive.java
New file @@ -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; } src/main/java/org/springblade/modules/directive/entity/DirectiveFile.java
New file @@ -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; } src/main/java/org/springblade/modules/directive/mapper/DirectiveMapper.java
New file @@ -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); } src/main/java/org/springblade/modules/directive/mapper/DirectiveMapper.xml
New file @@ -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 >= #{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> <!--查询指令图片信息集合--> <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> src/main/java/org/springblade/modules/directive/service/DirectiveService.java
New file @@ -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); } src/main/java/org/springblade/modules/directive/service/impl/DirectiveServiceImpl.java
New file @@ -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); } } src/main/java/org/springblade/modules/directive/vo/DirectiveVo.java
New file @@ -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; } 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)); } src/main/resources/application.yml
@@ -208,6 +208,7 @@ - /apply/** - /trainExam/** - /blade-desk/** - /directive/** #授权认证配置 auth: - method: ALL