From 66cab26c338efc90b2fe3cdabb2dc89141afd8ed Mon Sep 17 00:00:00 2001
From: ajaxfan <909938737@qq.com>
Date: Mon, 1 Mar 2021 17:12:23 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B6=88=E6=81=AF=E6=9C=8D=E5=8A=A1=E4=BB=A3?=
=?UTF-8?q?=E7=A0=81=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 12 ++
.../BizServiceEbtpExtendApplication.java | 27 ++-
.../BizMessageCategoryController.java | 96 +++++++++++
.../BizMessageProducerController.java | 45 +++++
.../controller/BizMessageQueryController.java | 17 +-
.../BizMessageTemplateController.java | 98 +++++++++++
.../dao/BizMessageAuthorizeMapper.java | 8 +
.../dao/BizMessageCategoryMapper.java | 8 +
.../dao/BizMessageTemplateMapper.java | 8 +
.../dto/BizMessageCategoryAddDTO.java | 22 +++
.../dto/BizMessageCategoryUpdateDTO.java | 25 +++
.../bizmessage/dto/BizMessageRawDTO.java | 40 +++++
.../dto/BizMessageTemplateAddDTO.java | 25 +++
.../dto/BizMessageTemplateUpdateDTO.java | 28 ++++
.../extend/bizmessage/entity/BizMessage.java | 9 +-
.../entity/BizMessageAuthorize.java | 15 ++
.../bizmessage/entity/BizMessageCategory.java | 19 +++
.../bizmessage/entity/BizMessageTemplate.java | 23 +++
.../service/BizMessageCategoryService.java | 19 +++
...ce.java => BizMessageConsumerService.java} | 2 +-
.../service/BizMessageProducerService.java | 12 ++
.../service/BizMessageTemplateService.java | 19 +++
.../impl/BizMessageCategoryServiceImpl.java | 48 ++++++
...ava => BizMessageConsumerServiceImpl.java} | 4 +-
.../impl/BizMessageProducerServiceImpl.java | 157 ++++++++++++++++++
.../impl/BizMessageTemplateServiceImpl.java | 44 +++++
.../bizmessage/vo/BizMessageCategoryVO.java | 22 +++
.../bizmessage/vo/BizMessageTemplateVO.java | 25 +++
.../vo/DescribeSiteMsgDetailVO.java | 2 +-
.../bizmessage/vo/DescribeSiteMsgVO.java | 2 +-
30 files changed, 859 insertions(+), 22 deletions(-)
create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/controller/BizMessageCategoryController.java
create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/controller/BizMessageProducerController.java
create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/controller/BizMessageTemplateController.java
create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dao/BizMessageAuthorizeMapper.java
create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dao/BizMessageCategoryMapper.java
create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dao/BizMessageTemplateMapper.java
create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dto/BizMessageCategoryAddDTO.java
create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dto/BizMessageCategoryUpdateDTO.java
create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dto/BizMessageRawDTO.java
create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dto/BizMessageTemplateAddDTO.java
create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dto/BizMessageTemplateUpdateDTO.java
create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/entity/BizMessageAuthorize.java
create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/entity/BizMessageCategory.java
create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/entity/BizMessageTemplate.java
create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/BizMessageCategoryService.java
rename src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/{IBizMessageQueryService.java => BizMessageConsumerService.java} (83%)
create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/BizMessageProducerService.java
create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/BizMessageTemplateService.java
create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/impl/BizMessageCategoryServiceImpl.java
rename src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/impl/{BizMessageQueryService.java => BizMessageConsumerServiceImpl.java} (84%)
create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/impl/BizMessageProducerServiceImpl.java
create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/impl/BizMessageTemplateServiceImpl.java
create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/vo/BizMessageCategoryVO.java
create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/vo/BizMessageTemplateVO.java
diff --git a/pom.xml b/pom.xml
index c947128..636c58e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -66,6 +66,18 @@
poi-ooxml-schemas
4.1.2
+
+
+ org.apache.velocity
+ velocity-tools
+ 2.0
+
+
+ commons-logging
+ commons-logging
+
+
+
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/BizServiceEbtpExtendApplication.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/BizServiceEbtpExtendApplication.java
index 4cdccbc..5a3691f 100644
--- a/src/main/java/com/chinaunicom/mall/ebtp/extend/BizServiceEbtpExtendApplication.java
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/BizServiceEbtpExtendApplication.java
@@ -1,26 +1,35 @@
package com.chinaunicom.mall.ebtp.extend;
-import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
-@SpringBootApplication(exclude = {
- DataSourceAutoConfiguration.class,
- DruidDataSourceAutoConfigure.class
-})
+import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure;
+
+import cn.hutool.core.lang.Snowflake;
+import cn.hutool.core.util.IdUtil;
+
+@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class, DruidDataSourceAutoConfigure.class })
@EnableFeignClients
@EnableEurekaClient
-@MapperScan({"com.chinaunicom.mall.ebtp.extend.**.dao"})
+@MapperScan({ "com.chinaunicom.mall.ebtp.extend.**.dao" })
@ComponentScan("com.chinaunicom.mall.ebtp.*")
public class BizServiceEbtpExtendApplication {
- public static void main(String[] args) {
- SpringApplication.run(BizServiceEbtpExtendApplication.class, args);
- }
+ public static void main(String[] args) {
+ SpringApplication.run(BizServiceEbtpExtendApplication.class, args);
+ }
+
+ @Bean
+ @ConditionalOnMissingBean(Snowflake.class)
+ public Snowflake snowflake() {
+ return IdUtil.getSnowflake(23, 16);
+ }
}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/controller/BizMessageCategoryController.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/controller/BizMessageCategoryController.java
new file mode 100644
index 0000000..5632a7f
--- /dev/null
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/controller/BizMessageCategoryController.java
@@ -0,0 +1,96 @@
+package com.chinaunicom.mall.ebtp.extend.bizmessage.controller;
+
+import java.util.List;
+import java.util.Optional;
+import java.util.stream.Collectors;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseStatus;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.chinaunicom.mall.ebtp.extend.bizmessage.dto.BizMessageCategoryAddDTO;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.dto.BizMessageCategoryUpdateDTO;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessageCategory;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.service.BizMessageCategoryService;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.vo.BizMessageCategoryVO;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+
+@Api(value = "消息类别维护", description = "消息类别维护")
+@RestController
+@RequestMapping("/v1/category/")
+public class BizMessageCategoryController {
+
+ private @Autowired BizMessageCategoryService service;
+
+ @ApiOperation("消息类别列表.")
+ @GetMapping("/list")
+ @ResponseStatus(code = HttpStatus.OK)
+ public List list() {
+ return service.listAll().stream().map(source -> {
+ BizMessageCategoryVO vo = new BizMessageCategoryVO();
+ BeanUtils.copyProperties(source, vo);
+ return vo;
+ }).collect(Collectors.toList());
+ }
+
+ @ApiOperation("查询指定id的消息.")
+ @GetMapping("{id}")
+ @ResponseStatus(code = HttpStatus.OK)
+ public BizMessageCategoryVO findById(@ApiParam(value = "类别id", required = true) @PathVariable String id) {
+ return Optional.ofNullable(service.findById(id)).map(source -> {
+ BizMessageCategoryVO vo = new BizMessageCategoryVO();
+ BeanUtils.copyProperties(source, vo);
+ return vo;
+ }).orElseGet(BizMessageCategoryVO::new);
+ }
+
+ @ApiOperation("新郑消息类别.")
+ @PostMapping
+ @ResponseStatus(code = HttpStatus.OK)
+ public ResponseEntity add(
+ @ApiParam(value = "消息类别实体", required = true) @Validated @RequestBody BizMessageCategoryAddDTO cate) {
+ boolean success = Optional.ofNullable(cate).map(source -> {
+ BizMessageCategory entity = new BizMessageCategory();
+ BeanUtils.copyProperties(source, entity);
+ return service.add(entity);
+ }).orElseGet(() -> false);
+
+ return success ? ResponseEntity.ok().build() : ResponseEntity.badRequest().build();
+ }
+
+ @ApiOperation("修改消息类别.")
+ @PutMapping
+ @ResponseStatus(code = HttpStatus.OK)
+ public ResponseEntity update(
+ @ApiParam(value = "消息类别实体", required = true) @Validated @RequestBody BizMessageCategoryUpdateDTO cate) {
+ boolean success = Optional.ofNullable(cate).map(source -> {
+ BizMessageCategory entity = new BizMessageCategory();
+ BeanUtils.copyProperties(source, entity);
+ return service.update(entity);
+ }).orElseGet(() -> false);
+
+ return success ? ResponseEntity.ok().build() : ResponseEntity.badRequest().build();
+ }
+
+ @ApiOperation("删除消息类别.")
+ @DeleteMapping("{id}")
+ @ResponseStatus(code = HttpStatus.OK)
+ public ResponseEntity del(@ApiParam(value = "类别id", required = true) @PathVariable String id) {
+ return service.del(id) ? ResponseEntity.ok().build() : ResponseEntity.badRequest().build();
+ }
+
+}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/controller/BizMessageProducerController.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/controller/BizMessageProducerController.java
new file mode 100644
index 0000000..6c60c1b
--- /dev/null
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/controller/BizMessageProducerController.java
@@ -0,0 +1,45 @@
+package com.chinaunicom.mall.ebtp.extend.bizmessage.controller;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.validation.annotation.Validated;
+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.ResponseStatus;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.chinaunicom.mall.ebtp.extend.bizmessage.dto.BizMessageRawDTO;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.service.BizMessageProducerService;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.vo.DescribeSiteMsgDetailVO;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@Api(value = "创建消息", description = "创建消息")
+@RestController
+@RequestMapping("/v1/producer/")
+public class BizMessageProducerController {
+
+ private @Autowired BizMessageProducerService service;
+
+ @ApiOperation("生成新消息.")
+ @PostMapping
+ @ResponseStatus(code = HttpStatus.OK)
+ public DescribeSiteMsgDetailVO produce(
+ @ApiParam(value = "消息内容", required = true) @Validated @RequestBody BizMessageRawDTO raw) {
+ log.debug("user send raw message: {}", raw);
+
+ return service.produce(raw).map(source -> {
+ DescribeSiteMsgDetailVO vo = new DescribeSiteMsgDetailVO();
+ vo.setMsgId(source.getId());
+ BeanUtils.copyProperties(source, vo);
+ return vo;
+ }).orElseGet(DescribeSiteMsgDetailVO::new);
+ }
+
+}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/controller/BizMessageQueryController.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/controller/BizMessageQueryController.java
index 4ead9fc..6da9dfc 100644
--- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/controller/BizMessageQueryController.java
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/controller/BizMessageQueryController.java
@@ -7,33 +7,38 @@ import java.util.stream.Collectors;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;
-import com.chinaunicom.mall.ebtp.extend.bizmessage.service.IBizMessageQueryService;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.service.BizMessageConsumerService;
import com.chinaunicom.mall.ebtp.extend.bizmessage.vo.DescribeSiteMsgDetailVO;
import com.chinaunicom.mall.ebtp.extend.bizmessage.vo.DescribeSiteMsgVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+
/**
* 消息查询服务
*
* @author ajaxfan
*/
-@RestController()
+@RestController
+@Api(value= "消息查询服务", description = "消息查询服务")
@RequestMapping("/v1/message/")
public class BizMessageQueryController {
- private @Autowired IBizMessageQueryService service;
+ private @Autowired BizMessageConsumerService service;
/**
* 消息概要清单
*
* @return
*/
+ @ApiOperation("消息概要清单.")
@GetMapping("describeSiteMsg")
@ResponseStatus(code = HttpStatus.OK)
public List describeSiteMsg() {
@@ -53,9 +58,11 @@ public class BizMessageQueryController {
* @param id
* @return
*/
+ @ApiOperation("消息明细查询.")
@GetMapping("describeSiteMsgDetail/{id}")
@ResponseStatus(code = HttpStatus.OK)
- public DescribeSiteMsgDetailVO describeSiteMsgDetail(@PathVariable("id") String id) {
+ public DescribeSiteMsgDetailVO describeSiteMsgDetail(
+ @ApiParam(value = "待查询的消息id", required = true) @PathVariable("id") String id) {
return Optional.ofNullable(service.getDetailById(id)).map(source -> {
DescribeSiteMsgDetailVO vo = new DescribeSiteMsgDetailVO();
vo.setMsgId(source.getId());
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/controller/BizMessageTemplateController.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/controller/BizMessageTemplateController.java
new file mode 100644
index 0000000..58fa851
--- /dev/null
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/controller/BizMessageTemplateController.java
@@ -0,0 +1,98 @@
+package com.chinaunicom.mall.ebtp.extend.bizmessage.controller;
+
+import java.util.List;
+import java.util.Optional;
+import java.util.stream.Collectors;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseStatus;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.chinaunicom.mall.ebtp.extend.bizmessage.dto.BizMessageTemplateAddDTO;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.dto.BizMessageTemplateUpdateDTO;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessageTemplate;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.service.BizMessageTemplateService;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.vo.BizMessageTemplateVO;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+
+@RestController
+@Api(value = "消息模板管理", description = "消息模板管理")
+@RequestMapping("/v1/template/")
+public class BizMessageTemplateController {
+
+ private @Autowired BizMessageTemplateService service;
+
+ @ApiOperation("消息模板清单")
+ @GetMapping("list")
+ @ResponseStatus(code = HttpStatus.OK)
+ public List list() {
+ return service.listAll().stream().map(source -> {
+ BizMessageTemplateVO vo = new BizMessageTemplateVO();
+ BeanUtils.copyProperties(source, vo);
+ return vo;
+ }).collect(Collectors.toList());
+ }
+
+ @ApiOperation("查询指定id的消息模板")
+ @GetMapping("{id}")
+ @ResponseStatus(code = HttpStatus.OK)
+ public BizMessageTemplateVO findById(@ApiParam(value = "消息模板id", required = true) @PathVariable("id") String id) {
+ return Optional.ofNullable(service.findById(id)).map(source -> {
+ BizMessageTemplateVO vo = new BizMessageTemplateVO();
+ BeanUtils.copyProperties(source, vo);
+ return vo;
+ }).orElseGet(BizMessageTemplateVO::new);
+ }
+
+ @ApiOperation("添加新的消息模板")
+ @ApiResponses(value = { @ApiResponse(code = 200, message = "执行成功"), @ApiResponse(code = 400, message = "执行失败") })
+ @PostMapping
+ public ResponseEntity add(@Validated @RequestBody BizMessageTemplateAddDTO vo) {
+ boolean success = Optional.ofNullable(vo).map(source -> {
+ BizMessageTemplate dao = new BizMessageTemplate();
+ BeanUtils.copyProperties(source, dao);
+
+ return service.add(dao);
+ }).orElseGet(() -> false);
+
+ return success ? ResponseEntity.ok().build() : ResponseEntity.badRequest().build();
+ }
+
+ @ApiOperation("修改消息模板")
+ @ApiResponses(value = { @ApiResponse(code = 200, message = "执行成功"), @ApiResponse(code = 400, message = "执行失败") })
+ @PutMapping
+ public ResponseEntity update(@Validated @RequestBody BizMessageTemplateUpdateDTO vo) {
+ boolean success = Optional.ofNullable(vo).map(source -> {
+ BizMessageTemplate dao = new BizMessageTemplate();
+ BeanUtils.copyProperties(source, dao);
+
+ return service.update(dao);
+ }).orElseGet(() -> false);
+
+ return success ? ResponseEntity.ok().build() : ResponseEntity.badRequest().build();
+ }
+
+ @ApiOperation("删除消息模板")
+ @ApiResponses(value = { @ApiResponse(code = 200, message = "执行成功"), @ApiResponse(code = 400, message = "执行失败") })
+ @DeleteMapping("{id}")
+ public ResponseEntity deleteById(@ApiParam(value = "消息模板id", required = true) @PathVariable String id) {
+ return service.del(id) ? ResponseEntity.ok().build() : ResponseEntity.badRequest().build();
+ }
+
+}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dao/BizMessageAuthorizeMapper.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dao/BizMessageAuthorizeMapper.java
new file mode 100644
index 0000000..0084b9f
--- /dev/null
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dao/BizMessageAuthorizeMapper.java
@@ -0,0 +1,8 @@
+package com.chinaunicom.mall.ebtp.extend.bizmessage.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessageAuthorize;
+
+public interface BizMessageAuthorizeMapper extends BaseMapper {
+
+}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dao/BizMessageCategoryMapper.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dao/BizMessageCategoryMapper.java
new file mode 100644
index 0000000..e3b2763
--- /dev/null
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dao/BizMessageCategoryMapper.java
@@ -0,0 +1,8 @@
+package com.chinaunicom.mall.ebtp.extend.bizmessage.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessageCategory;
+
+public interface BizMessageCategoryMapper extends BaseMapper {
+
+}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dao/BizMessageTemplateMapper.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dao/BizMessageTemplateMapper.java
new file mode 100644
index 0000000..a108724
--- /dev/null
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dao/BizMessageTemplateMapper.java
@@ -0,0 +1,8 @@
+package com.chinaunicom.mall.ebtp.extend.bizmessage.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessageTemplate;
+
+public interface BizMessageTemplateMapper extends BaseMapper {
+
+}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dto/BizMessageCategoryAddDTO.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dto/BizMessageCategoryAddDTO.java
new file mode 100644
index 0000000..77a279f
--- /dev/null
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dto/BizMessageCategoryAddDTO.java
@@ -0,0 +1,22 @@
+package com.chinaunicom.mall.ebtp.extend.bizmessage.dto;
+
+import org.springframework.lang.NonNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("新增类别实体")
+public class BizMessageCategoryAddDTO {
+
+ @ApiModelProperty(required = true, value = "类别编码")
+ private @NonNull String code;
+
+ @ApiModelProperty(required = true, value = "类别名称")
+ private @NonNull String name;
+
+ @ApiModelProperty("描述")
+ private String remark;
+
+}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dto/BizMessageCategoryUpdateDTO.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dto/BizMessageCategoryUpdateDTO.java
new file mode 100644
index 0000000..b0ea7b5
--- /dev/null
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dto/BizMessageCategoryUpdateDTO.java
@@ -0,0 +1,25 @@
+package com.chinaunicom.mall.ebtp.extend.bizmessage.dto;
+
+import org.springframework.lang.NonNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("编辑类别实体")
+public class BizMessageCategoryUpdateDTO {
+
+ @ApiModelProperty(required = true, value = "类别id")
+ private @NonNull String id;
+
+ @ApiModelProperty(required = true, value = "类别编码")
+ private @NonNull String code;
+
+ @ApiModelProperty(required = true, value = "类别名称")
+ private @NonNull String name;
+
+ @ApiModelProperty("描述")
+ private String remark;
+
+}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dto/BizMessageRawDTO.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dto/BizMessageRawDTO.java
new file mode 100644
index 0000000..b275c02
--- /dev/null
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dto/BizMessageRawDTO.java
@@ -0,0 +1,40 @@
+package com.chinaunicom.mall.ebtp.extend.bizmessage.dto;
+
+import java.util.List;
+import java.util.Map;
+
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 消息原型
+ *
+ * @author ajaxfan
+ */
+@Data
+@ApiModel("消息实体")
+public class BizMessageRawDTO {
+
+ @ApiModelProperty(required = true, value = "消息标题")
+ private @Nonnull String title;
+
+ @ApiModelProperty(required = true, value = "消息类别")
+ private @Nonnull String category;
+
+ @ApiModelProperty(required = true, value = "消息模板编码")
+ private @Nonnull String templateCode;
+
+ @ApiModelProperty(required = true, value = "消息内容对象")
+ private @Nonnull Map body;
+
+ @ApiModelProperty(required = true, value = "消息附加参数")
+ private @Nonnull Map extra;
+
+ @ApiModelProperty(required = true, value = "授权用户列表")
+ private @Nullable List users;
+
+}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dto/BizMessageTemplateAddDTO.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dto/BizMessageTemplateAddDTO.java
new file mode 100644
index 0000000..64f4e33
--- /dev/null
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dto/BizMessageTemplateAddDTO.java
@@ -0,0 +1,25 @@
+package com.chinaunicom.mall.ebtp.extend.bizmessage.dto;
+
+import org.springframework.lang.NonNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("消息模板新增实体")
+public class BizMessageTemplateAddDTO {
+
+ @ApiModelProperty(required = true, value = "模板编码")
+ private @NonNull String code;
+
+ @ApiModelProperty(required = true, value = "模板内容")
+ private @NonNull String body;
+
+ @ApiModelProperty("路由")
+ private String router;
+
+ @ApiModelProperty("描述")
+ private String remark;
+
+}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dto/BizMessageTemplateUpdateDTO.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dto/BizMessageTemplateUpdateDTO.java
new file mode 100644
index 0000000..14db60e
--- /dev/null
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dto/BizMessageTemplateUpdateDTO.java
@@ -0,0 +1,28 @@
+package com.chinaunicom.mall.ebtp.extend.bizmessage.dto;
+
+import org.springframework.lang.NonNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("消息模板变更实体")
+public class BizMessageTemplateUpdateDTO {
+
+ @ApiModelProperty(required = true, value = "模板id")
+ private @NonNull String id;
+
+ @ApiModelProperty(required = true, value = "模板编码")
+ private @NonNull String code;
+
+ @ApiModelProperty(required = true, value = "模板内容")
+ private @NonNull String body;
+
+ @ApiModelProperty("路由")
+ private String router;
+
+ @ApiModelProperty("描述")
+ private String remark;
+
+}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/entity/BizMessage.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/entity/BizMessage.java
index 3c438ab..238b8e0 100644
--- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/entity/BizMessage.java
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/entity/BizMessage.java
@@ -2,15 +2,15 @@ package com.chinaunicom.mall.ebtp.extend.bizmessage.entity;
import java.sql.Timestamp;
-import org.springframework.data.annotation.Id;
+import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
@Data
public class BizMessage {
- @Id
- private Integer id;
+ @TableId
+ private String id;
private String title;
private String category;
private String content;
@@ -18,4 +18,7 @@ public class BizMessage {
private String params;
private Timestamp createtime;
+ /* 该值为1则标识开启授权控制,只有授权列表( biz_message_authorize )内的用户可见 */
+ private Integer authorize;
+
}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/entity/BizMessageAuthorize.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/entity/BizMessageAuthorize.java
new file mode 100644
index 0000000..22187a0
--- /dev/null
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/entity/BizMessageAuthorize.java
@@ -0,0 +1,15 @@
+package com.chinaunicom.mall.ebtp.extend.bizmessage.entity;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class BizMessageAuthorize {
+
+ private String userId;
+ private String messageId;
+
+}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/entity/BizMessageCategory.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/entity/BizMessageCategory.java
new file mode 100644
index 0000000..e72608a
--- /dev/null
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/entity/BizMessageCategory.java
@@ -0,0 +1,19 @@
+package com.chinaunicom.mall.ebtp.extend.bizmessage.entity;
+
+import java.sql.Timestamp;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+
+import lombok.Data;
+
+@Data
+public class BizMessageCategory {
+
+ @TableId
+ private String id;
+ private String code;
+ private String name;
+ private String remark;
+ private Timestamp createtime;
+
+}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/entity/BizMessageTemplate.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/entity/BizMessageTemplate.java
new file mode 100644
index 0000000..1508876
--- /dev/null
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/entity/BizMessageTemplate.java
@@ -0,0 +1,23 @@
+package com.chinaunicom.mall.ebtp.extend.bizmessage.entity;
+
+import java.sql.Timestamp;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+@Data
+@Accessors(chain = true)
+public class BizMessageTemplate {
+
+ @TableId
+ private String id;
+ private String code;
+ private String body;
+ private String remark;
+ private String router;
+ private Timestamp createtime;
+ private Timestamp updatetime;
+
+}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/BizMessageCategoryService.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/BizMessageCategoryService.java
new file mode 100644
index 0000000..9aa1931
--- /dev/null
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/BizMessageCategoryService.java
@@ -0,0 +1,19 @@
+package com.chinaunicom.mall.ebtp.extend.bizmessage.service;
+
+import java.util.List;
+
+import com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessageCategory;
+
+public interface BizMessageCategoryService {
+
+ List listAll();
+
+ BizMessageCategory findById(String id);
+
+ boolean add(BizMessageCategory cate);
+
+ boolean update(BizMessageCategory cate);
+
+ boolean del(String id);
+
+}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/IBizMessageQueryService.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/BizMessageConsumerService.java
similarity index 83%
rename from src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/IBizMessageQueryService.java
rename to src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/BizMessageConsumerService.java
index 95a92b6..b4fcd62 100644
--- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/IBizMessageQueryService.java
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/BizMessageConsumerService.java
@@ -4,7 +4,7 @@ import java.util.List;
import com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessage;
-public interface IBizMessageQueryService {
+public interface BizMessageConsumerService {
List listOutline();
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/BizMessageProducerService.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/BizMessageProducerService.java
new file mode 100644
index 0000000..175a008
--- /dev/null
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/BizMessageProducerService.java
@@ -0,0 +1,12 @@
+package com.chinaunicom.mall.ebtp.extend.bizmessage.service;
+
+import java.util.Optional;
+
+import com.chinaunicom.mall.ebtp.extend.bizmessage.dto.BizMessageRawDTO;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessage;
+
+public interface BizMessageProducerService {
+
+ Optional produce(BizMessageRawDTO messageRaw);
+
+}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/BizMessageTemplateService.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/BizMessageTemplateService.java
new file mode 100644
index 0000000..85299c8
--- /dev/null
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/BizMessageTemplateService.java
@@ -0,0 +1,19 @@
+package com.chinaunicom.mall.ebtp.extend.bizmessage.service;
+
+import java.util.List;
+
+import com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessageTemplate;
+
+public interface BizMessageTemplateService {
+
+ BizMessageTemplate findById(String id);
+
+ List listAll();
+
+ boolean add(BizMessageTemplate template);
+
+ boolean update(BizMessageTemplate tempalte);
+
+ boolean del(String id);
+
+}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/impl/BizMessageCategoryServiceImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/impl/BizMessageCategoryServiceImpl.java
new file mode 100644
index 0000000..3b41bac
--- /dev/null
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/impl/BizMessageCategoryServiceImpl.java
@@ -0,0 +1,48 @@
+package com.chinaunicom.mall.ebtp.extend.bizmessage.service.impl;
+
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.dao.BizMessageCategoryMapper;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessageCategory;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.service.BizMessageCategoryService;
+
+/**
+ * 消息类别信息维护
+ *
+ * @author Ajaxfan
+ */
+@Service
+public class BizMessageCategoryServiceImpl implements BizMessageCategoryService {
+
+ private @Autowired BizMessageCategoryMapper mapper;
+
+ @Override
+ public List listAll() {
+ return mapper.selectList(new QueryWrapper());
+ }
+
+ @Override
+ public BizMessageCategory findById(String id) {
+ return mapper.selectById(id);
+ }
+
+ @Override
+ public boolean add(BizMessageCategory cate) {
+ return mapper.insert(cate) > 0;
+ }
+
+ @Override
+ public boolean update(BizMessageCategory cate) {
+ return mapper.updateById(cate) > 0;
+ }
+
+ @Override
+ public boolean del(String id) {
+ return mapper.deleteById(id) > 0;
+ }
+
+}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/impl/BizMessageQueryService.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/impl/BizMessageConsumerServiceImpl.java
similarity index 84%
rename from src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/impl/BizMessageQueryService.java
rename to src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/impl/BizMessageConsumerServiceImpl.java
index 10906a3..d248a94 100644
--- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/impl/BizMessageQueryService.java
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/impl/BizMessageConsumerServiceImpl.java
@@ -8,7 +8,7 @@ import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.chinaunicom.mall.ebtp.extend.bizmessage.dao.BizMessageMapper;
import com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessage;
-import com.chinaunicom.mall.ebtp.extend.bizmessage.service.IBizMessageQueryService;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.service.BizMessageConsumerService;
/**
* 消息查询服务
@@ -16,7 +16,7 @@ import com.chinaunicom.mall.ebtp.extend.bizmessage.service.IBizMessageQueryServi
* @author ajaxfan
*/
@Service
-public class BizMessageQueryService implements IBizMessageQueryService {
+public class BizMessageConsumerServiceImpl implements BizMessageConsumerService {
private @Autowired BizMessageMapper mapper;
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/impl/BizMessageProducerServiceImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/impl/BizMessageProducerServiceImpl.java
new file mode 100644
index 0000000..4095a11
--- /dev/null
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/impl/BizMessageProducerServiceImpl.java
@@ -0,0 +1,157 @@
+package com.chinaunicom.mall.ebtp.extend.bizmessage.service.impl;
+
+import java.io.IOException;
+import java.io.StringWriter;
+import java.util.Map;
+import java.util.Optional;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.velocity.VelocityContext;
+import org.apache.velocity.app.Velocity;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.Assert;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.dao.BizMessageAuthorizeMapper;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.dao.BizMessageCategoryMapper;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.dao.BizMessageMapper;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.dao.BizMessageTemplateMapper;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.dto.BizMessageRawDTO;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessage;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessageAuthorize;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessageCategory;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessageTemplate;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.service.BizMessageProducerService;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import cn.hutool.core.lang.Snowflake;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 消息生产服务
+ *
+ * @author ajaxfan
+ */
+@Slf4j
+@Service
+public class BizMessageProducerServiceImpl implements BizMessageProducerService {
+
+ private @Autowired BizMessageMapper messageMapper;
+ private @Autowired BizMessageTemplateMapper templateMapper;
+ private @Autowired BizMessageAuthorizeMapper authorizeMapper;
+ private @Autowired BizMessageCategoryMapper categoryMapper;
+
+ private @Autowired Snowflake snowflakeGenerator;
+
+ private ObjectMapper objectMapper = new ObjectMapper();
+
+ /**
+ * @param messageRaw
+ * @return
+ */
+ @Override
+ public Optional produce(BizMessageRawDTO messageRaw) {
+ return Optional.ofNullable(messageRaw).map(this::evaluate).map(message -> {
+ log.debug("ready to save: {}", message);
+ return messageMapper.insert(message) > 0 ? message : null;
+ });
+ }
+
+ /**
+ * 生成消息
+ *
+ * @param messageRaw
+ * @return
+ */
+ private BizMessage evaluate(BizMessageRawDTO messageRaw) {
+ BizMessageTemplate dao = getTemplate(messageRaw.getTemplateCode());
+ Assert.notNull(dao, "无效的消息模板编码");
+
+ log.debug("load template: {} by code: {}", dao, messageRaw.getTemplateCode());
+
+ final String messageId = snowflakeGenerator.nextIdStr();
+ log.debug("generate message id: {}", messageId);
+
+ BizMessage bizmessage = new BizMessage();
+ BeanUtils.copyProperties(messageRaw, bizmessage);
+ bizmessage.setId(messageId);
+ bizmessage.setCategory(convertCodeToName(messageRaw.getCategory()));
+ bizmessage.setContent(fill(dao.getBody(), messageRaw.getBody()));
+ bizmessage.setUrl(fill(dao.getRouter(), messageRaw.getExtra()));
+ bizmessage.setParams(toJson(messageRaw.getExtra()));
+
+ Optional.ofNullable(messageRaw.getUsers()).ifPresent(users -> {
+ log.debug("if user list {} is not emtpy, then grant current message to them.", users);
+ bizmessage.setAuthorize(Math.min(1, users.size()));
+
+ log.debug("grant message [{}] to users", messageId);
+ users.forEach(userid -> authorizeMapper.insert(new BizMessageAuthorize(userid, messageId)));
+ });
+
+ return bizmessage;
+ }
+
+ /**
+ * 消息类别的的code转换为对应的名字
+ *
+ * @param category
+ * @return
+ */
+ private String convertCodeToName(final String code) {
+ BizMessageCategory entity = categoryMapper
+ .selectOne(Wrappers.lambdaQuery().eq(BizMessageCategory::getCode, code));
+ log.debug("query category record {} by code {}", entity, code);
+
+ return Optional.ofNullable(entity).map(source -> source.getName()).orElseGet(() -> code);
+ }
+
+ /**
+ * 获取模板对象
+ *
+ * @param messageRaw
+ * @return
+ */
+ private BizMessageTemplate getTemplate(final String code) {
+ return templateMapper
+ .selectOne(Wrappers.lambdaQuery().eq(BizMessageTemplate::getCode, code));
+ }
+
+ /**
+ * 填充模板
+ *
+ * @param messageObj
+ * @param body
+ * @return
+ */
+ private String fill(String tempalte, Map map) {
+ return Optional.ofNullable(tempalte).map(source -> {
+ log.debug("message body tempalte: {}", tempalte);
+ try (StringWriter out = new StringWriter()) {
+ log.debug("template engine receive: {}, generate message: {}", map, out);
+ Velocity.evaluate(new VelocityContext(map), out, "log.chinaunicom", tempalte);
+
+ return out.toString();
+ } catch (IOException e) {
+ log.error(e.getMessage());
+ }
+ return StringUtils.EMPTY;
+ }).orElseGet(() -> StringUtils.EMPTY);
+ }
+
+ /**
+ * @param obj
+ * @return
+ */
+ private String toJson(Map obj) {
+ try {
+ return objectMapper.writeValueAsString(obj);
+ } catch (JsonProcessingException e) {
+ log.error(e.getMessage());
+ }
+ return StringUtils.EMPTY;
+ }
+
+}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/impl/BizMessageTemplateServiceImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/impl/BizMessageTemplateServiceImpl.java
new file mode 100644
index 0000000..1f134d8
--- /dev/null
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/impl/BizMessageTemplateServiceImpl.java
@@ -0,0 +1,44 @@
+package com.chinaunicom.mall.ebtp.extend.bizmessage.service.impl;
+
+import java.sql.Timestamp;
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.dao.BizMessageTemplateMapper;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessageTemplate;
+import com.chinaunicom.mall.ebtp.extend.bizmessage.service.BizMessageTemplateService;
+
+@Service
+public class BizMessageTemplateServiceImpl implements BizMessageTemplateService {
+
+ private @Autowired BizMessageTemplateMapper mapper;
+
+ @Override
+ public BizMessageTemplate findById(String id) {
+ return mapper.selectById(id);
+ }
+
+ @Override
+ public List listAll() {
+ return mapper.selectList(new QueryWrapper());
+ }
+
+ @Override
+ public boolean add(BizMessageTemplate template) {
+ return mapper.insert(template) > 0;
+ }
+
+ @Override
+ public boolean update(BizMessageTemplate tempalte) {
+ return mapper.updateById(tempalte.setUpdatetime(new Timestamp(System.nanoTime()))) > 0;
+ }
+
+ @Override
+ public boolean del(String id) {
+ return mapper.deleteById(id) > 0;
+ }
+
+}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/vo/BizMessageCategoryVO.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/vo/BizMessageCategoryVO.java
new file mode 100644
index 0000000..6788bfa
--- /dev/null
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/vo/BizMessageCategoryVO.java
@@ -0,0 +1,22 @@
+package com.chinaunicom.mall.ebtp.extend.bizmessage.vo;
+
+import java.sql.Timestamp;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
+
+import lombok.Data;
+
+@Data
+@JsonInclude(value = Include.NON_NULL)
+public class BizMessageCategoryVO {
+
+ private String id;
+ private String code;
+ private String name;
+ private String remark;
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Timestamp createtime;
+
+}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/vo/BizMessageTemplateVO.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/vo/BizMessageTemplateVO.java
new file mode 100644
index 0000000..0b5b859
--- /dev/null
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/vo/BizMessageTemplateVO.java
@@ -0,0 +1,25 @@
+package com.chinaunicom.mall.ebtp.extend.bizmessage.vo;
+
+import java.sql.Timestamp;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
+
+import lombok.Data;
+
+@Data
+@JsonInclude(value = Include.NON_NULL)
+public class BizMessageTemplateVO {
+
+ private String id;
+ private String code;
+ private String body;
+ private String router;
+ private String remark;
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Timestamp createtime;
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Timestamp updatetime;
+
+}
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/vo/DescribeSiteMsgDetailVO.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/vo/DescribeSiteMsgDetailVO.java
index 814792f..5f99489 100644
--- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/vo/DescribeSiteMsgDetailVO.java
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/vo/DescribeSiteMsgDetailVO.java
@@ -18,7 +18,7 @@ import lombok.Data;
@JsonInclude(value = Include.NON_NULL)
public class DescribeSiteMsgDetailVO {
- private Integer msgId;
+ private String msgId;
private String title;
private String category;
private String content;
diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/vo/DescribeSiteMsgVO.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/vo/DescribeSiteMsgVO.java
index dee6cf6..d89938f 100644
--- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/vo/DescribeSiteMsgVO.java
+++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/vo/DescribeSiteMsgVO.java
@@ -14,7 +14,7 @@ import lombok.Data;
@Data
public class DescribeSiteMsgVO {
- private Integer msgId;
+ private String msgId;
private String title;
private String category;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")