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")