Explorar o código

Merge remote-tracking branch 'origin/develop' into develop

lijie %!s(int64=3) %!d(string=hai) anos
pai
achega
63ef93a118
Modificáronse 19 ficheiros con 980 adicións e 86 borrados
  1. 2 2
      dmp-business/dmp-rwd-version/src/main/java/com/persagy/dmp/rwd/demand/controller/DictionaryDemandController.java
  2. 11 4
      dmp-business/dmp-rwd/src/main/resources/mapper/EquipmentReportMapper.xml
  3. 4 0
      dmp-cloud/dmp-message/pom.xml
  4. 158 0
      dmp-cloud/dmp-message/src/main/java/com/persagy/dmp/message/controller/MessageController.java
  5. 135 0
      dmp-cloud/dmp-message/src/main/java/com/persagy/dmp/message/controller/MessageTypeController.java
  6. 134 0
      dmp-cloud/dmp-message/src/main/java/com/persagy/dmp/message/controller/SenderRegisterController.java
  7. 14 0
      dmp-cloud/dmp-message/src/main/java/com/persagy/dmp/message/model/MessageType.java
  8. 8 0
      dmp-cloud/dmp-message/src/main/java/com/persagy/dmp/message/model/MessageVO.java
  9. 9 0
      dmp-cloud/dmp-message/src/main/java/com/persagy/dmp/message/model/SenderRegister.java
  10. 22 9
      dmp-cloud/dmp-message/src/main/java/com/persagy/dmp/message/service/IMessageService.java
  11. 22 9
      dmp-cloud/dmp-message/src/main/java/com/persagy/dmp/message/service/IMessageTypeService.java
  12. 38 0
      dmp-cloud/dmp-message/src/main/java/com/persagy/dmp/message/service/ISenderRegisterService.java
  13. 73 10
      dmp-cloud/dmp-message/src/main/java/com/persagy/dmp/message/service/impl/MessageServiceImpl.java
  14. 121 12
      dmp-cloud/dmp-message/src/main/java/com/persagy/dmp/message/service/impl/MessageTypeServiceImpl.java
  15. 130 0
      dmp-cloud/dmp-message/src/main/java/com/persagy/dmp/message/service/impl/SenderRegisterServiceImpl.java
  16. 37 0
      dmp-cloud/dmp-message/src/main/java/com/persagy/dmp/sender/controller/MessageSenderController.java
  17. 62 0
      dmp-cloud/dmp-message/src/main/resources/db/init/schema.sql
  18. 0 18
      dmp-cloud/dmp-message/src/main/resources/db/init/table.sql
  19. 0 22
      dmp-cloud/dmp-message/src/main/resources/mapper/FileMapper.xml

+ 2 - 2
dmp-business/dmp-rwd-version/src/main/java/com/persagy/dmp/rwd/demand/controller/DictionaryDemandController.java

@@ -87,7 +87,7 @@ public class DictionaryDemandController {
      * @return
      */
     @PostMapping("/delete")
-    public CommonResult delete(@Valid @RequestBody List<String> ids) {
+    public CommonResult delete(@RequestBody List<String> ids) {
         ParamCheckUtil.checkParam(CommonConstant.QUERY_USERID);
         if(CollUtil.isEmpty(ids)) {
             throw new BusinessException("没有选择待删除的需求");
@@ -170,7 +170,7 @@ public class DictionaryDemandController {
         QueryWrapper<DictionaryDemand> wrapper = new QueryWrapper<>();
         wrapper.eq("valid", ValidEnum.TRUE.getType());
         // 查询待回复和论证中
-        wrapper.in("bill_state", (Object) states);
+        wrapper.in("bill_state", (Integer[]) states);
         ensureQueryCond(wrapper, cond);
         Page page = service.page(pageable, wrapper);
         return ResultHelper.multi(page.getRecords(), page.getTotal());

+ 11 - 4
dmp-business/dmp-rwd/src/main/resources/mapper/EquipmentReportMapper.xml

@@ -96,10 +96,12 @@
         join dt_relation re on obj.id = re.obj_to
         join dt_define_type df on df.code = obj.class_code
         where obj.valid=TRUE AND obj.obj_type='component' AND re.rel_code='Eq2Ec'
-        and df.project_id in
-        <foreach collection="projectIds" item="projectId" open="(" close=")" separator="," >
-            #{projectId}
-        </foreach>
+        <if test="projectIds != null and projectIds.size() &gt; 0" >
+            and df.project_id in
+            <foreach collection="projectIds" item="projectId" open="(" close=")" separator="," >
+                #{projectId}
+            </foreach>
+        </if>
         <if test="null!=equipmentId and equipmentId.length>0">
             AND re.obj_from=#{equipmentId}
         </if>
@@ -138,6 +140,11 @@
         SELECT class_code as code ,(SELECT name FROM dt_define_type WHERE  code = class_code LIMIT 1 ) as name
         FROM dt_object
         WHERE valid=TRUE
+            <if test="null!=param.objTypes and param.objTypes.size()>0">
+                <foreach collection="param.objTypes" item="objType" open="AND obj_type IN(" close=")" separator=",">
+                    #{objType}
+                </foreach>
+            </if>
             <if test="null!=param.objType and param.objType.length>0">
                 AND obj_type=#{param.objType}
             </if>

+ 4 - 0
dmp-cloud/dmp-message/pom.xml

@@ -78,6 +78,10 @@
             <groupId>cn.hutool</groupId>
             <artifactId>hutool-all</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.persagy</groupId>
+            <artifactId>dmp-digital-starter</artifactId>
+        </dependency>
         <!--//极光推送-->
     </dependencies>
 </project>

+ 158 - 0
dmp-cloud/dmp-message/src/main/java/com/persagy/dmp/message/controller/MessageController.java

@@ -0,0 +1,158 @@
+package com.persagy.dmp.message.controller;
+
+import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.persagy.dmp.basic.model.QueryCriteria;
+import com.persagy.dmp.basic.utils.QueryCriteriaHelper;
+import com.persagy.dmp.common.constant.ResponseCode;
+import com.persagy.dmp.common.constant.ValidEnum;
+import com.persagy.dmp.common.exception.BusinessException;
+import com.persagy.dmp.common.model.response.CommonResult;
+import com.persagy.dmp.common.utils.ResultHelper;
+import com.persagy.dmp.message.model.MessageVO;
+import com.persagy.dmp.message.service.IMessageService;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 消息服务 Controller
+ * @author linhuili
+ * @date 2021-09-26
+ */
+@RestController
+@RequestMapping("/message")
+public class MessageController {
+
+    @Autowired
+    private IMessageService service;
+
+    /**
+     * 查询消息
+     * @param criteria
+     * @return
+     */
+    @PostMapping("/query")
+    public CommonResult<List<MessageVO>> query(@RequestBody QueryCriteria criteria) {
+        QueryWrapper<MessageVO> wrapper = new QueryWrapper<>();
+        // 转换查询条件
+        QueryCriteriaHelper.toWrapper(wrapper, criteria, MessageVO.class);
+        Page page = service.queryByCondition(QueryCriteriaHelper.toPage(criteria), wrapper);
+        return ResultHelper.multi(page.getRecords(), page.getTotal());
+    }
+
+    /**
+     * 新增消息
+     * @param vo
+     */
+    @PostMapping("/create")
+    public CommonResult<MessageVO> create(@Valid @RequestBody MessageVO vo){
+        if(vo == null){
+            throw new BusinessException(ResponseCode.A0400.getCode(), "消息不能为空!");
+        }
+        List<MessageVO> voList = new ArrayList<>();
+        voList.add(vo);
+        //添加创建默认值
+        addCreateDefaultValue(voList);
+        //新增消息
+        service.insertType(voList);
+        return ResultHelper.single(vo);
+    }
+
+    /**
+     * 批量新增消息
+     * @param voList
+     */
+    @PostMapping("/createBatch")
+    public CommonResult<List<MessageVO>> createBatch(@Valid @RequestBody List<MessageVO> voList){
+        if(CollUtil.isEmpty(voList)){
+            throw new BusinessException(ResponseCode.A0400.getCode(), "消息不能为空!");
+        }
+        //添加创建默认值
+        addCreateDefaultValue(voList);
+        //新增消息
+        voList = service.insertType(voList);
+        return ResultHelper.multi(voList);
+    }
+
+    /**
+     * 修改消息
+     * @param vo
+     */
+    @PostMapping("/update")
+    public CommonResult<MessageVO> update(@Valid @RequestBody MessageVO vo){
+        if(vo == null){
+            throw new BusinessException(ResponseCode.A0400.getCode(), "消息不能为空!");
+        }
+        List<MessageVO> voList = new ArrayList<>();
+        voList.add(vo);
+        service.updateType(voList);
+        return ResultHelper.single(vo);
+    }
+
+    /**
+     * 批量修改消息
+     * @param voList
+     */
+    @PostMapping("/updateBatch")
+    public CommonResult<List<MessageVO>> update(@Valid @RequestBody List<MessageVO> voList){
+        if(voList == null){
+            throw new BusinessException(ResponseCode.A0400.getCode(), "消息不能为空!");
+        }
+        service.updateType(voList);
+        return ResultHelper.multi(voList);
+    }
+
+    /**
+     * 删除消息
+     * @param id
+     * @return
+     */
+    @PostMapping("/delete")
+    public CommonResult delete(@RequestBody String id){
+        if(StringUtils.isEmpty(id)){
+            throw new BusinessException(ResponseCode.A0400.getCode(), "id不能为空");
+        }
+        service.deleteType(CollUtil.newArrayList(id));
+        return ResultHelper.success();
+    }
+
+    /**
+     * 批量删除消息
+     * @param ids
+     * @return
+     */
+    @PostMapping("/deleteBatch")
+    public CommonResult deleteBatch(@RequestBody List<String> ids){
+        if(ids == null || ids.size()<=0){
+            throw new BusinessException(ResponseCode.A0400.getCode(), "id不能为空");
+        }
+        service.deleteType(ids);
+        return ResultHelper.success();
+    }
+
+    /**
+     * 添加创建默认值
+     * @param voList
+     */
+    private void addCreateDefaultValue(List<MessageVO> voList){
+        if(CollUtil.isEmpty(voList)){
+            return;
+        }
+        for (MessageVO messageVO : voList) {
+            if(messageVO.getValid() == null){
+              messageVO.setValid(ValidEnum.TRUE.getType());
+              messageVO.setTopFlag(false);
+              messageVO.setReadFlag(false);
+            }
+        }
+    }
+}

+ 135 - 0
dmp-cloud/dmp-message/src/main/java/com/persagy/dmp/message/controller/MessageTypeController.java

@@ -0,0 +1,135 @@
+package com.persagy.dmp.message.controller;
+
+import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.persagy.dmp.basic.model.QueryCriteria;
+import com.persagy.dmp.basic.utils.QueryCriteriaHelper;
+import com.persagy.dmp.common.constant.ResponseCode;
+import com.persagy.dmp.common.exception.BusinessException;
+import com.persagy.dmp.common.model.response.CommonResult;
+import com.persagy.dmp.common.utils.ResultHelper;
+import com.persagy.dmp.message.model.MessageType;
+import com.persagy.dmp.message.service.IMessageTypeService;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 消息发送 Controller
+ * @author linhuili
+ * @date 2021-09-26
+ */
+@RestController
+@RequestMapping("/message/type")
+public class MessageTypeController {
+
+    @Autowired
+    private IMessageTypeService service;
+    
+    /**
+     * 查询消息类型
+     * @param criteria
+     * @return
+     */
+    @PostMapping("/query")
+    public CommonResult<List<MessageType>> query(@RequestBody QueryCriteria criteria) {
+        QueryWrapper<MessageType> wrapper = new QueryWrapper<>();
+        // 转换查询条件
+        QueryCriteriaHelper.toWrapper(wrapper, criteria, MessageType.class);
+        Page page = service.queryByCondition(QueryCriteriaHelper.toPage(criteria), wrapper);
+        return ResultHelper.multi(page.getRecords(), page.getTotal());
+    }
+
+    /**
+     * 新增消息类型
+     * @param vo
+     */
+    @PostMapping("/create")
+    public CommonResult<MessageType> create(@Valid @RequestBody MessageType vo){
+       if(vo == null){
+           throw new BusinessException(ResponseCode.A0400.getCode(), "消息类型不能为空!");
+       }
+       List<MessageType> voList = new ArrayList<>();
+       voList.add(vo);
+       service.insertType(voList);
+       return ResultHelper.single(vo);
+    }
+
+    /**
+     * 批量新增消息类型
+     * @param voList
+     */
+    @PostMapping("/createBatch")
+    public CommonResult<List<MessageType>> createBatch(@Valid @RequestBody List<MessageType> voList){
+        if(CollUtil.isEmpty(voList)){
+            throw new BusinessException(ResponseCode.A0400.getCode(), "消息类型不能为空!");
+        }
+        voList = service.insertType(voList);
+        return ResultHelper.multi(voList);
+    }
+
+    /**
+     * 修改消息类型
+     * @param vo
+     */
+    @PostMapping("/update")
+    public CommonResult<MessageType> update(@Valid @RequestBody MessageType vo){
+        if(vo == null){
+            throw new BusinessException(ResponseCode.A0400.getCode(), "消息类型不能为空!");
+        }
+        List<MessageType> voList = new ArrayList<>();
+        voList.add(vo);
+        service.updateType(voList);
+        return ResultHelper.single(vo);
+    }
+
+    /**
+     * 批量修改消息类型
+     * @param voList
+     */
+    @PostMapping("/updateBatch")
+    public CommonResult<List<MessageType>> update(@Valid @RequestBody List<MessageType> voList){
+        if(voList == null){
+            throw new BusinessException(ResponseCode.A0400.getCode(), "消息类型不能为空!");
+        }
+        service.updateType(voList);
+        return ResultHelper.multi(voList);
+    }
+
+    /**
+     * 删除消息类型
+     * @param id
+     * @return
+     */
+    @PostMapping("/delete")
+    public CommonResult delete(@RequestBody String id){
+        if(StringUtils.isEmpty(id)){
+            throw new BusinessException(ResponseCode.A0400.getCode(), "id不能为空");
+        }
+        service.deleteType(CollUtil.newArrayList(id));
+        return ResultHelper.success();
+    }
+
+    /**
+     * 批量删除消息类型
+     * @param ids
+     * @return
+     */
+    @PostMapping("/deleteBatch")
+    public CommonResult deleteBatch(@RequestBody List<String> ids){
+        if(ids == null || ids.size()<=0){
+            throw new BusinessException(ResponseCode.A0400.getCode(), "id不能为空");
+        }
+        service.deleteType(ids);
+        return ResultHelper.success();
+    }
+
+}

+ 134 - 0
dmp-cloud/dmp-message/src/main/java/com/persagy/dmp/message/controller/SenderRegisterController.java

@@ -0,0 +1,134 @@
+package com.persagy.dmp.message.controller;
+
+import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.persagy.dmp.basic.model.QueryCriteria;
+import com.persagy.dmp.basic.utils.QueryCriteriaHelper;
+import com.persagy.dmp.common.constant.ResponseCode;
+import com.persagy.dmp.common.exception.BusinessException;
+import com.persagy.dmp.common.model.response.CommonResult;
+import com.persagy.dmp.common.utils.ResultHelper;
+import com.persagy.dmp.message.model.SenderRegister;
+import com.persagy.dmp.message.service.ISenderRegisterService;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 发送渠道注册信息 Controller
+ * @author linhuili
+ * @date 2021-09-26
+ */
+@RestController
+@RequestMapping("/message/register")
+public class SenderRegisterController {
+
+    @Autowired
+    private ISenderRegisterService service;
+    
+    /**
+     * 查询发送渠道注册信息
+     * @param criteria
+     * @return
+     */
+    @PostMapping("/query")
+    public CommonResult<List<SenderRegister>> query(@RequestBody QueryCriteria criteria) {
+        QueryWrapper<SenderRegister> wrapper = new QueryWrapper<>();
+        // 转换查询条件
+        QueryCriteriaHelper.toWrapper(wrapper, criteria, SenderRegister.class);
+        Page page = service.queryByCondition(QueryCriteriaHelper.toPage(criteria), wrapper);
+        return ResultHelper.multi(page.getRecords(), page.getTotal());
+    }
+
+    /**
+     * 新增发送渠道注册信息
+     * @param vo
+     */
+    @PostMapping("/create")
+    public CommonResult<SenderRegister> create(@Valid @RequestBody SenderRegister vo){
+       if(vo == null){
+           throw new BusinessException(ResponseCode.A0400.getCode(), "发送渠道注册信息不能为空!");
+       }
+       List<SenderRegister> voList = new ArrayList<>();
+       voList.add(vo);
+       service.insertType(voList);
+       return ResultHelper.single(vo);
+    }
+
+    /**
+     * 批量新增发送渠道注册信息
+     * @param voList
+     */
+    @PostMapping("/createBatch")
+    public CommonResult<List<SenderRegister>> createBatch(@Valid @RequestBody List<SenderRegister> voList){
+        if(CollUtil.isEmpty(voList)){
+            throw new BusinessException(ResponseCode.A0400.getCode(), "发送渠道注册信息不能为空!");
+        }
+        voList = service.insertType(voList);
+        return ResultHelper.multi(voList);
+    }
+
+    /**
+     * 修改发送渠道注册信息
+     * @param vo
+     */
+    @PostMapping("/update")
+    public CommonResult<SenderRegister> update(@Valid @RequestBody SenderRegister vo){
+        if(vo == null){
+            throw new BusinessException(ResponseCode.A0400.getCode(), "发送渠道注册信息不能为空!");
+        }
+        List<SenderRegister> voList = new ArrayList<>();
+        voList.add(vo);
+        service.updateType(voList);
+        return ResultHelper.single(vo);
+    }
+
+    /**
+     * 批量修改发送渠道注册信息
+     * @param voList
+     */
+    @PostMapping("/updateBatch")
+    public CommonResult<List<SenderRegister>> update(@Valid @RequestBody List<SenderRegister> voList){
+        if(voList == null){
+            throw new BusinessException(ResponseCode.A0400.getCode(), "发送渠道注册信息不能为空!");
+        }
+        service.updateType(voList);
+        return ResultHelper.multi(voList);
+    }
+
+    /**
+     * 删除发送渠道注册信息
+     * @param id
+     * @return
+     */
+    @PostMapping("/delete")
+    public CommonResult delete(@RequestBody String id){
+        if(StringUtils.isEmpty(id)){
+            throw new BusinessException(ResponseCode.A0400.getCode(), "id不能为空");
+        }
+        service.deleteType(CollUtil.newArrayList(id));
+        return ResultHelper.success();
+    }
+
+    /**
+     * 批量删除发送渠道注册信息
+     * @param ids
+     * @return
+     */
+    @PostMapping("/deleteBatch")
+    public CommonResult deleteBatch(@RequestBody List<String> ids){
+        if(ids == null || ids.size()<=0){
+            throw new BusinessException(ResponseCode.A0400.getCode(), "id不能为空");
+        }
+        service.deleteType(ids);
+        return ResultHelper.success();
+    }
+}

+ 14 - 0
dmp-cloud/dmp-message/src/main/java/com/persagy/dmp/message/model/MessageType.java

@@ -1,8 +1,12 @@
 package com.persagy.dmp.message.model;
 
+import com.baomidou.mybatisplus.annotation.TableName;
 import com.persagy.dmp.common.model.entity.BaseEntity;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.NotNull;
 
 /**
  * 消息类型
@@ -11,14 +15,24 @@ import lombok.EqualsAndHashCode;
  */
 @Data
 @EqualsAndHashCode(callSuper = true)
+@TableName(value = "dt_message_type", autoResultMap = true)
 public class MessageType extends BaseEntity {
 
     /** 消息类型编码 */
+    @NotNull(message = "消息类型编码不允许为空")
+    @Length(max = 40)
     private String typeCode;
+
     /** 消息类型名称 */
+    @NotNull(message = "消息类型名称不允许为空")
+    @Length(max = 40)
     private String typeName;
+
     /** 消息发送渠道 - MessageChannelEnum */
+    @NotNull(message = "消息发送渠道不能为空")
+    @Length(max = 255)
     private String sendChannel;
+
     /** 备注 */
     private String remark;
 }

+ 8 - 0
dmp-cloud/dmp-message/src/main/java/com/persagy/dmp/message/model/MessageVO.java

@@ -1,8 +1,12 @@
 package com.persagy.dmp.message.model;
 
+import com.baomidou.mybatisplus.annotation.TableName;
 import com.persagy.dmp.common.model.entity.AuditableEntity;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.NotNull;
 
 /**
  * 消息
@@ -11,15 +15,19 @@ import lombok.EqualsAndHashCode;
  */
 @Data
 @EqualsAndHashCode(callSuper = true)
+@TableName(value = "dt_message", autoResultMap = true)
 public class MessageVO extends AuditableEntity {
 
     /** 消息类型 */
+    @NotNull(message = "消息类型ID不允许为空")
     private String typeId;
     /** 接收用户 */
     private String userId;
     /** 消息标题 */
+    @NotNull(message = "消息标题不允许为空")
     private String title;
     /** 消息详情 */
+    @NotNull(message = "消息内容不允许为空")
     private String content;
     /** 关联业务主键 */
     private String businessId;

+ 9 - 0
dmp-cloud/dmp-message/src/main/java/com/persagy/dmp/message/model/SenderRegister.java

@@ -1,8 +1,12 @@
 package com.persagy.dmp.message.model;
 
+import com.baomidou.mybatisplus.annotation.TableName;
 import com.persagy.dmp.common.model.entity.BaseEntity;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.NotNull;
 
 /**
  * 发送渠道注册信息
@@ -11,11 +15,16 @@ import lombok.EqualsAndHashCode;
  */
 @Data
 @EqualsAndHashCode(callSuper = true)
+@TableName(value = "dt_message_send_register", autoResultMap = true)
 public class SenderRegister extends BaseEntity {
 
     /** 发送渠道编码 */
+    @NotNull(message = "发送渠道编码不允许为空")
+    @Length(max = 40)
     private String code;
     /** 发送渠道名称 */
+    @NotNull(message = "发送渠道名称不允许为空")
+    @Length(max = 255)
     private String name;
     /** accessKey */
     private String accessKey;

+ 22 - 9
dmp-cloud/dmp-message/src/main/java/com/persagy/dmp/message/service/IMessageService.java

@@ -1,6 +1,11 @@
 package com.persagy.dmp.message.service;
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.persagy.dmp.message.model.MessageVO;
+import com.persagy.dmp.message.model.SenderRegister;
+
+import java.util.List;
 
 /**
  * 消息 服务
@@ -10,24 +15,32 @@ import com.persagy.dmp.message.model.MessageVO;
 public interface IMessageService {
 
     /**
-     * 新增
-     * @param vo
+     * 按条件查询
+     * @param page 分页条件
+     * @param queryWrapper 查询条件
+     * @return 分页结果
+     */
+    Page queryByCondition(Page page, Wrapper<MessageVO> queryWrapper);
+
+    /**
+     * 新增消息
+     * @param voList
      * @return
      */
-    MessageVO insertMessage(MessageVO vo);
+    List<MessageVO> insertType(List<MessageVO> voList);
 
     /**
-     * 修改
-     * @param vo
+     * 修改消息
+     * @param voList
      * @return
      */
-    MessageVO updateMessage(MessageVO vo);
+    List<MessageVO> updateType(List<MessageVO> voList);
 
     /**
-     * 删除
-     * @param id
+     * 删除消息
+     * @param ids
      */
-    void deleteMessage(String id);
+    void deleteType(List<String> ids);
 
     /**
      * 通过主键查询

+ 22 - 9
dmp-cloud/dmp-message/src/main/java/com/persagy/dmp/message/service/IMessageTypeService.java

@@ -1,7 +1,12 @@
 package com.persagy.dmp.message.service;
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.persagy.dmp.basic.model.QueryCriteria;
 import com.persagy.dmp.message.model.MessageType;
 
+import java.util.List;
+
 /**
  * 消息类型 服务
  * @author Charlie Yu
@@ -10,24 +15,32 @@ import com.persagy.dmp.message.model.MessageType;
 public interface IMessageTypeService {
 
     /**
-     * 新增
-     * @param vo
+     * 按条件查询
+     * @param page 分页条件
+     * @param queryWrapper 查询条件
+     * @return 分页结果
+     */
+    Page queryByCondition(Page page, Wrapper<MessageType> queryWrapper);
+
+    /**
+     * 新增消息类型
+     * @param voList
      * @return
      */
-    MessageType insertType(MessageType vo);
+    List<MessageType>  insertType(List<MessageType> voList);
 
     /**
-     * 修改
-     * @param vo
+     * 修改消息类型
+     * @param voList
      * @return
      */
-    MessageType updateType(MessageType vo);
+    List<MessageType> updateType(List<MessageType> voList);
 
     /**
-     * 删除
-     * @param id
+     * 删除消息类型
+     * @param ids
      */
-    void deleteType(String id);
+    void deleteType(List<String> ids);
 
     /**
      * 通过主键查询

+ 38 - 0
dmp-cloud/dmp-message/src/main/java/com/persagy/dmp/message/service/ISenderRegisterService.java

@@ -1,5 +1,8 @@
 package com.persagy.dmp.message.service;
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.persagy.dmp.message.model.MessageType;
 import com.persagy.dmp.message.model.SenderRegister;
 
 import java.util.List;
@@ -16,4 +19,39 @@ public interface ISenderRegisterService {
      * @return
      */
     List<SenderRegister> queryAll();
+
+    /**
+     * 按条件查询
+     * @param page 分页条件
+     * @param queryWrapper 查询条件
+     * @return 分页结果
+     */
+    Page queryByCondition(Page page, Wrapper<SenderRegister> queryWrapper);
+
+    /**
+     * 新增消息渠道
+     * @param voList
+     * @return
+     */
+    List<SenderRegister>  insertType(List<SenderRegister> voList);
+
+    /**
+     * 修改消息渠道
+     * @param voList
+     * @return
+     */
+    List<SenderRegister> updateType(List<SenderRegister> voList);
+
+    /**
+     * 删除消息渠道
+     * @param ids
+     */
+    void deleteType(List<String> ids);
+
+    /**
+     * 通过主键查询
+     * @param id
+     * @return
+     */
+    SenderRegister load(String id);
 }

+ 73 - 10
dmp-cloud/dmp-message/src/main/java/com/persagy/dmp/message/service/impl/MessageServiceImpl.java

@@ -1,13 +1,26 @@
 package com.persagy.dmp.message.service.impl;
 
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.text.StrFormatter;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.persagy.dmp.common.constant.ValidEnum;
+import com.persagy.dmp.common.exception.BusinessException;
 import com.persagy.dmp.message.dao.MessageMapper;
+import com.persagy.dmp.message.model.MessageType;
 import com.persagy.dmp.message.model.MessageVO;
 import com.persagy.dmp.message.service.IMessageService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
 /**
  * 消息 服务实现
  * @author Charlie Yu
@@ -16,27 +29,77 @@ import org.springframework.transaction.annotation.Transactional;
 @Service
 @Transactional
 public class MessageServiceImpl extends ServiceImpl<MessageMapper, MessageVO> implements IMessageService {
+
+    @Autowired
+    private MessageMapper dao;
+
+    /**
+     * 分页查询消息类型
+     * @param page 分页条件
+     * @param queryWrapper 查询条件
+     * @return
+     */
     @Override
-    public MessageVO insertMessage(MessageVO vo) {
-        save(vo);
-        return vo;
+    public Page queryByCondition(Page page, Wrapper<MessageVO> queryWrapper) {
+        return dao.selectPage(page, queryWrapper);
     }
 
+    /**
+     * 新增消息
+     * @param voList
+     * @return
+     */
     @Override
-    public MessageVO updateMessage(MessageVO vo) {
-        updateById(vo);
-        return vo;
+    public List<MessageVO> insertType(List<MessageVO> voList) {
+        //保存消息
+        saveBatch(voList);
+        return voList;
     }
 
+    /**
+     * 修改消息
+     * @param voList
+     * @return
+     */
     @Override
-    public void deleteMessage(String id) {
-        MessageVO vo = load(id);
-        vo.setValid(ValidEnum.FALSE.getType());
-        updateMessage(vo);
+    public List<MessageVO> updateType(List<MessageVO> voList) {
+        //批量保存消息
+        saveOrUpdateBatch(voList);
+        return voList;
     }
 
+    /**
+     * 删除消息
+     * @param ids
+     */
+    @Override
+    public void deleteType(List<String> ids) {
+        List<MessageVO> voList = load(ids);
+        if(CollUtil.isEmpty(voList)){
+            throw new BusinessException("消息类型不存在");
+        }
+        //数据置为无效状态
+        voList.forEach(item->item.setValid(ValidEnum.FALSE.getType()));
+        saveOrUpdateBatch(voList);
+    }
+
+    /**
+     * 根据id查询消息
+     * * @param id
+     * @return
+     */
     @Override
     public MessageVO load(String id) {
         return getById(id);
     }
+
+    /**
+     * 根据id批量查询消息
+     * @param ids
+     * @return
+     */
+    public List<MessageVO> load(List<String> ids) {
+        return dao.selectBatchIds(ids);
+    }
+
 }

+ 121 - 12
dmp-cloud/dmp-message/src/main/java/com/persagy/dmp/message/service/impl/MessageTypeServiceImpl.java

@@ -1,43 +1,152 @@
 package com.persagy.dmp.message.service.impl;
 
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.text.StrFormatter;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.persagy.dmp.basic.model.QueryCriteria;
+import com.persagy.dmp.common.constant.ResponseCode;
 import com.persagy.dmp.common.constant.ValidEnum;
+import com.persagy.dmp.common.exception.BusinessException;
 import com.persagy.dmp.message.dao.MessageTypeMapper;
 import com.persagy.dmp.message.model.MessageType;
 import com.persagy.dmp.message.service.IMessageTypeService;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+
 /**
  * 消息类型 服务实现
- * @author Charlie Yu
- * @date 2021-05-24
+ * @author linhuili
+ * @date 2021-09-26
  */
 @Service
 @Transactional
 public class MessageTypeServiceImpl extends ServiceImpl<MessageTypeMapper, MessageType> implements IMessageTypeService {
 
+    @Autowired
+    private MessageTypeMapper dao;
+
+    /**
+     * 分页查询消息类型
+     * @param page 分页条件
+     * @param queryWrapper 查询条件
+     * @return
+     */
+    @Override
+    public Page queryByCondition(Page page, Wrapper<MessageType> queryWrapper) {
+        return dao.selectPage(page, queryWrapper);
+    }
+
+    /**
+     * 新增消息类型
+     * @param voList
+     * @return
+     */
     @Override
-    public MessageType insertType(MessageType vo) {
-        save(vo);
-        return vo;
+    public List<MessageType> insertType(List<MessageType> voList) {
+        //消息类型编码校验
+        validateOnSave(voList,false);
+        //批量保存消息类型
+        saveBatch(voList);
+        return voList;
     }
 
+    /**
+     * 修改消息类型
+     * @param voList
+     * @return
+     */
     @Override
-    public MessageType updateType(MessageType vo) {
-        updateById(vo);
-        return vo;
+    public List<MessageType> updateType(List<MessageType> voList) {
+        //消息类型编码校验
+        validateOnSave(voList,true);
+        //批量保存消息类型
+        saveOrUpdateBatch(voList);
+        return voList;
     }
 
+    /**
+     * 删除消息类型
+     * @param ids
+     */
     @Override
-    public void deleteType(String id) {
-        MessageType vo = load(id);
-        vo.setValid(ValidEnum.FALSE.getType());
-        updateType(vo);
+    public void deleteType(List<String> ids) {
+        List<MessageType> voList = load(ids);
+        if(CollUtil.isEmpty(voList)){
+            throw new BusinessException("消息类型不存在");
+        }
+        //数据置为无效状态
+        voList.forEach(item->item.setValid(ValidEnum.FALSE.getType()));
+        saveOrUpdateBatch(voList);
     }
 
+    /**
+     * 根据id查询消息类型
+     * * @param id
+     * @return
+     */
     @Override
     public MessageType load(String id) {
         return getById(id);
     }
+
+    /**
+     * 根据id批量查询消息类型
+     * @param ids
+     * @return
+     */
+    public List<MessageType> load(List<String> ids) {
+       return dao.selectBatchIds(ids);
+    }
+
+    /**
+     * 保存校验
+     * 编码全局唯一
+     * @param voList
+     * @param isUpdate
+     */
+    private void validateOnSave(List<MessageType> voList, Boolean isUpdate) {
+        Set<String> codeSet = new HashSet<>();
+        List<String> idList = new ArrayList<>();
+        for(MessageType vo:voList) {
+            // 编码重复
+            if(!codeSet.add(vo.getTypeCode())) {
+                throw new BusinessException(StrFormatter.format("存在重复编码{},不允许保存!", vo.getTypeCode()));
+            }
+            if(isUpdate) {
+                idList.add(vo.getId());
+            }
+            // 补充valid值
+            if (null==vo.getValid()){
+                vo.setValid(ValidEnum.TRUE.getType());
+            }
+        }
+        // 查询条件
+        LambdaQueryWrapper<MessageType> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.select(MessageType::getTypeCode);
+        queryWrapper.in(MessageType::getValid, ValidEnum.TRUE.getType());
+        queryWrapper.in(MessageType::getTypeCode, codeSet);
+        if(isUpdate) {
+            queryWrapper.notIn(MessageType::getId, idList);
+        }
+        // 查询重复的编码
+        List<MessageType> dbList = dao.selectList(queryWrapper);
+        if(CollUtil.isEmpty(dbList)) {
+            return;
+        }
+        List<String> codes = CollUtil.getFieldValues(voList, "typeCode", String.class);
+        throw new BusinessException(StrFormatter.format("存在重复编码{},不允许保存!", codes));
+    }
+
 }

+ 130 - 0
dmp-cloud/dmp-message/src/main/java/com/persagy/dmp/message/service/impl/SenderRegisterServiceImpl.java

@@ -1,15 +1,26 @@
 package com.persagy.dmp.message.service.impl;
 
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.text.StrFormatter;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.persagy.dmp.common.constant.ValidEnum;
+import com.persagy.dmp.common.exception.BusinessException;
 import com.persagy.dmp.message.dao.SenderRegisterMapper;
+import com.persagy.dmp.message.dao.SenderRegisterMapper;
+import com.persagy.dmp.message.model.SenderRegister;
 import com.persagy.dmp.message.model.SenderRegister;
 import com.persagy.dmp.message.service.ISenderRegisterService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 
 /**
  * 消息渠道注册 服务实现
@@ -20,10 +31,129 @@ import java.util.List;
 @Transactional
 public class SenderRegisterServiceImpl extends ServiceImpl<SenderRegisterMapper, SenderRegister> implements ISenderRegisterService {
 
+    @Autowired
+    private SenderRegisterMapper dao;
+
+    /**
+     * 查询所有消息渠道注册
+     * @return
+     */
     @Override
     public List<SenderRegister> queryAll() {
         LambdaQueryWrapper<SenderRegister> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(SenderRegister::getValid, ValidEnum.TRUE.getType());
         return list(queryWrapper);
     }
+
+    /**
+     * 分页查询消息类型
+     * @param page 分页条件
+     * @param queryWrapper 查询条件
+     * @return
+     */
+    @Override
+    public Page queryByCondition(Page page, Wrapper<SenderRegister> queryWrapper) {
+        return dao.selectPage(page, queryWrapper);
+    }
+
+    /**
+     * 新增消息渠道注册信息
+     * @param voList
+     * @return
+     */
+    @Override
+    public List<SenderRegister> insertType(List<SenderRegister> voList) {
+        //发送渠道编码校验
+        validateOnSave(voList,false);
+        //批量保存消息类型
+        saveBatch(voList);
+        return voList;
+    }
+
+    /**
+     * 修改消息渠道注册信息
+     * @param voList
+     * @return
+     */
+    @Override
+    public List<SenderRegister> updateType(List<SenderRegister> voList) {
+        //消息类型编码校验
+        validateOnSave(voList,true);
+        //批量保存消息类型
+        saveOrUpdateBatch(voList);
+        return voList;
+    }
+
+    /**
+     * 删除消息渠道注册信息
+     * @param ids
+     */
+    @Override
+    public void deleteType(List<String> ids) {
+        List<SenderRegister> voList = load(ids);
+        if(CollUtil.isEmpty(voList)){
+            throw new BusinessException("消息类型不存在");
+        }
+        //数据置为无效状态
+        voList.forEach(item->item.setValid(ValidEnum.FALSE.getType()));
+        saveOrUpdateBatch(voList);
+    }
+
+    /**
+     * 根据id查询消消息渠道
+     * * @param id
+     * @return
+     */
+    @Override
+    public SenderRegister load(String id) {
+        return getById(id);
+    }
+
+    /**
+     * 根据id批量查询消息渠道
+     * @param ids
+     * @return
+     */
+    public List<SenderRegister> load(List<String> ids) {
+        return dao.selectBatchIds(ids);
+    }
+
+    /**
+     * 保存校验
+     * 编码全局唯一
+     * @param voList
+     * @param isUpdate
+     */
+    private void validateOnSave(List<SenderRegister> voList, Boolean isUpdate) {
+        Set<String> codeSet = new HashSet<>();
+        List<String> idList = new ArrayList<>();
+        for(SenderRegister vo:voList) {
+            // 编码重复
+            if(!codeSet.add(vo.getCode())) {
+                throw new BusinessException(StrFormatter.format("存在重复编码{},不允许保存!", vo.getCode()));
+            }
+            if(isUpdate) {
+                idList.add(vo.getId());
+            }
+            // 补充valid值
+            if (null==vo.getValid()){
+                vo.setValid(ValidEnum.TRUE.getType());
+            }
+        }
+        // 查询条件
+        LambdaQueryWrapper<SenderRegister> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.select(SenderRegister::getCode);
+        queryWrapper.in(SenderRegister::getValid, ValidEnum.TRUE.getType());
+        queryWrapper.in(SenderRegister::getCode, codeSet);
+        if(isUpdate) {
+            queryWrapper.notIn(SenderRegister::getId, idList);
+        }
+        // 查询重复的编码
+        List<SenderRegister> dbList = dao.selectList(queryWrapper);
+        if(CollUtil.isEmpty(dbList)) {
+            return;
+        }
+        List<String> codes = CollUtil.getFieldValues(voList, "typeCode", String.class);
+        throw new BusinessException(StrFormatter.format("存在重复编码{},不允许保存!", codes));
+    }
 }

+ 37 - 0
dmp-cloud/dmp-message/src/main/java/com/persagy/dmp/sender/controller/MessageSenderController.java

@@ -0,0 +1,37 @@
+package com.persagy.dmp.sender.controller;
+
+import com.persagy.dmp.common.constant.ResponseCode;
+import com.persagy.dmp.common.exception.BusinessException;
+import com.persagy.dmp.message.model.MessageVO;
+import com.persagy.dmp.sender.service.IMessageSender;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 消息发送 Controller
+ * @author linhuili
+ * @date 2021-09-26
+ */
+@RestController
+@RequestMapping("/message")
+public class MessageSenderController {
+
+    @Autowired
+    private IMessageSender messageSender;
+
+    /**
+     * 消息发送
+     * @param messageVO
+     */
+    @PostMapping("/send")
+    public void send(@RequestBody MessageVO messageVO){
+       if(messageVO == null){
+           throw new BusinessException(ResponseCode.A0400.getCode(), "消息体不能为空!");
+       }
+       messageSender.send(messageVO);
+    }
+}

+ 62 - 0
dmp-cloud/dmp-message/src/main/resources/db/init/schema.sql

@@ -0,0 +1,62 @@
+-- ----------------------------
+--  Data for `dt_message_send_register`
+-- ----------------------------
+CREATE TABLE IF NOT EXISTS "dt_message_send_register" (
+"id" varchar(40) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '主键id',
+"code" varchar(40) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '发送渠道编码',
+"name" varchar(40) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '发送渠道名称',
+"access_key" varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 'accessKey',
+"access_secret" text CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT 'accessSecret',
+"extra" text CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT '扩展参数',
+"clazz" varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '发送消息实现类',
+"creator" varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建人',
+"creation_time" char(14) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建时间',
+"modifier" varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '最后修改人',
+"modified_time" char(14) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '最后修改时间',
+"valid" tinyint(1) DEFAULT NULL COMMENT '合法标识',
+"ts" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '乐观锁',
+PRIMARY KEY ("id") USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3
+
+
+-- ----------------------------
+--  Data for `dt_message_type`
+-- ----------------------------
+CREATE TABLE IF NOT EXISTS "dt_message_type" (
+"id" varchar(40) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '主键id',
+"type_code" varchar(40) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '消息类型编码',
+"type_name" varchar(40) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '消息类型名称',
+"send_channel" varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '消息发送渠道',
+"remark" text CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT '备注',
+"creator" varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建人',
+"creation_time" char(14) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建时间',
+"modifier" varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '最后修改人',
+"modified_time" char(14) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '最后修改时间',
+"valid" tinyint(1) DEFAULT NULL COMMENT '合法标识',
+"ts" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '乐观锁',
+PRIMARY KEY ("id") USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3
+
+
+-- ----------------------------
+--  Data for `dt_message`
+-- ----------------------------
+CREATE TABLE IF NOT EXISTS "dt_message" (
+"id" varchar(40) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '主键id',
+"type_id" varchar(40) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '消息类型',
+"user_id" varchar(40) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '接收用户',
+"title" varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '消息标题',
+"content" text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '消息详情',
+"business_id" varchar(40) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '关联业务主键',
+"project_id" varchar(40) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '所属项目',
+"send_channel" varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '发送渠道',
+"read_flag" tinyint(1) DEFAULT NULL COMMENT '已读标示',
+"top_flag" tinyint(1) DEFAULT NULL COMMENT '置顶标示',
+"creator" varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建人',
+"creation_time" char(14) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建时间',
+"modifier" varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '最后修改人',
+"modified_time" char(14) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '最后修改时间',
+"valid" tinyint(1) DEFAULT NULL COMMENT '合法标识',
+"ts" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '乐观锁',
+PRIMARY KEY ("id") USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3

+ 0 - 18
dmp-cloud/dmp-message/src/main/resources/db/init/table.sql

@@ -1,18 +0,0 @@
-CREATE TABLE IF NOT EXISTS `file_info` (
-`id` varchar(64) NOT NULL DEFAULT '' COMMENT 'id',
-`group_code` varchar(100) NOT NULL DEFAULT '' COMMENT '集团编码:租户',
-`file_name` varchar(128) NOT NULL DEFAULT '' COMMENT '文件名称:显示用',
-`file_type` varchar(2) NOT NULL DEFAULT '0' COMMENT '文件类型:0-文件,1-目录',
-`file_bucket` varchar(64) NOT NULL DEFAULT '0' COMMENT '文件分组:默认为应用名',
-`file_path` varchar(512) COMMENT '文件路径:含文件名称 - 对应文件存储路径',
-`file_size` int(11) NOT NULL DEFAULT '0' COMMENT '文件大小',
-`business_id` varchar(32) DEFAULT NULL COMMENT '关联业务Id',
-`expire_date` char(8) DEFAULT NULL COMMENT '保留期限',
-`creator` varchar(32) DEFAULT NULL COMMENT '创建人',
-`creation_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
-`modifier` varchar(32) DEFAULT NULL COMMENT '最后修改人',
-`modified_time` timestamp NULL DEFAULT NULL COMMENT '最后修改时间',
-`valid` int(11) DEFAULT NULL COMMENT '合法标识',
-`ts` timestamp default current_timestamp on update current_timestamp NOT NULL COMMENT '乐观锁',
-PRIMARY KEY (`id`)
-) ENGINE = InnoDB CHARSET = utf8mb4 COMMENT '文件信息';

+ 0 - 22
dmp-cloud/dmp-message/src/main/resources/mapper/FileMapper.xml

@@ -1,22 +0,0 @@
-<?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="com.persagy.dmp.file.dao.FileMapper">
-    <resultMap id="FileMap" type="com.persagy.dmp.file.model.FileInfo">
-        <result column="id" property="id"/>
-        <result column="group_code" property="groupCode"/>
-        <result column="file_name" property="fileName"/>
-        <result column="file_type" property="fileType"/>
-        <result column="file_bucket" property="fileBucket"/>
-        <result column="file_path" property="filePath"/>
-        <result column="file_size" property="fileSize"/>
-        <result column="business_id" property="businessId"/>
-        <result column="expire_date" property="expireDate"/>
-        <result column="ts" property="ts"/>
-        <result column="creator" property="creator"/>
-        <result column="creation_time" property="creationTime"/>
-        <result column="modifier" property="modifier"/>
-        <result column="modified_time" property="modifiedTime"/>
-        <result column="valid" property="valid"/>
-    </resultMap>
-</mapper>
-