diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/controller/BizMessageConsumerController.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/controller/BizMessageConsumerController.java index 05ac2b8..86ec5fa 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/controller/BizMessageConsumerController.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/controller/BizMessageConsumerController.java @@ -1,6 +1,8 @@ package com.chinaunicom.mall.ebtp.extend.bizmessage.controller; import com.chinaunicom.mall.ebtp.extend.bizmessage.dto.PageDTO; +import com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessageAuthorize; +import com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessageVo; import com.chinaunicom.mall.ebtp.extend.bizmessage.mybatis.IBizMessagePage; import com.chinaunicom.mall.ebtp.extend.bizmessage.service.BizMessageConsumerService; import com.chinaunicom.mall.ebtp.extend.bizmessage.vo.DescribeSiteMsgDetailVO; @@ -13,6 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.*; +import java.util.List; import java.util.Optional; /** @@ -56,9 +59,39 @@ public class BizMessageConsumerController { DescribeSiteMsgDetailVO vo = new DescribeSiteMsgDetailVO(); vo.setMsgId(source.getId()); BeanUtils.copyProperties(source, vo); - + BizMessageAuthorize authorize = new BizMessageAuthorize(); + authorize.setMessageId(source.getId()); + authorize = this.service.getAuthorize(authorize); + vo.setAuthorizestate(authorize.getState()); + vo.setServicecode(source.getServicecode()); return vo; }).orElseGet(DescribeSiteMsgDetailVO::new); } + /** + * 信息类别查询 + * + * @return + */ + @ApiOperation("信息类别查询") + @PostMapping("selectMsgListByType") + @ResponseStatus(code = HttpStatus.OK) + public List selectMsgListByType(@RequestBody(required = false) BizMessageVo vo) { + + return service.selectMsgListByType(vo); + } + + /** + * 信息已阅 + * + * @return + */ + @ApiOperation("信息已阅") + @GetMapping("selectMsgRead/{id}") + @ResponseStatus(code = HttpStatus.OK) + public Boolean selectMsgRead( @ApiParam(value = "待查询的消息id", required = true) @PathVariable("id") String id) { + //已读 + this.service.updateState(id); + return true; + } } 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 index 0084b9f..0230f84 100644 --- 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 @@ -5,4 +5,5 @@ 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/BizMessageMapper.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dao/BizMessageMapper.java index bb6325d..f3e4724 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dao/BizMessageMapper.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dao/BizMessageMapper.java @@ -3,10 +3,22 @@ package com.chinaunicom.mall.ebtp.extend.bizmessage.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; 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.BizMessageVo; import org.apache.ibatis.annotations.Param; +import java.util.List; + public interface BizMessageMapper extends BaseMapper { IPage findMessage(@Param("param") IPage page, @Param("userId") String userId); + IPage findMessageVo(@Param("param") IPage page, @Param("userId") String userId); + + Boolean updateState(@Param("userId") String userId,@Param("messageId") String messageId); + + List findMessageVoList(BizMessageVo vo); + + List findAuthorizeList(BizMessageAuthorize vo); + } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dao/mapper/BizMessageMapper.xml b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dao/mapper/BizMessageMapper.xml index 40fec46..9858806 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dao/mapper/BizMessageMapper.xml +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/dao/mapper/BizMessageMapper.xml @@ -3,19 +3,81 @@ + + + + update biz_message_authorize set state = 1 + where message_id=#{messageId} + and user_id =#{userId} + + + + + \ No newline at end of file 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 index f5867bc..f293b55 100644 --- 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 @@ -41,4 +41,8 @@ public class BizMessageRawDTO { @ApiModelProperty(required = true, value = "授权用户列表") private List users; + @ApiModelProperty(required = true, value = "业务参数json") + @NotNull(message = "业务参数json") + private Map servicecode; + } 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 d539b07..102ee6e 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 @@ -1,5 +1,6 @@ package com.chinaunicom.mall.ebtp.extend.bizmessage.entity; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import lombok.Data; @@ -16,6 +17,8 @@ public class BizMessage { private String url; private String params; private Timestamp createtime; + private String servicecode; + private String templatecode; /* 该值为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 index 56f543b..25facf2 100644 --- 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 @@ -11,5 +11,6 @@ public class BizMessageAuthorize { private String userId; private String messageId; + private String state; } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/entity/BizMessageVo.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/entity/BizMessageVo.java new file mode 100644 index 0000000..b15db1b --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/entity/BizMessageVo.java @@ -0,0 +1,14 @@ +package com.chinaunicom.mall.ebtp.extend.bizmessage.entity; + +import lombok.Data; + +@Data +public class BizMessageVo extends BizMessage{ + + private String authorizestate; + private String templatetype; + private String userId; + private Long datanum; + private Integer size; + +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/BizMessageConsumerService.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/BizMessageConsumerService.java index 087bc0e..40fab11 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/BizMessageConsumerService.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/BizMessageConsumerService.java @@ -2,13 +2,27 @@ package com.chinaunicom.mall.ebtp.extend.bizmessage.service; import com.chinaunicom.mall.ebtp.extend.bizmessage.dto.PageDTO; 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.BizMessageVo; import com.chinaunicom.mall.ebtp.extend.bizmessage.mybatis.IBizMessagePage; import com.chinaunicom.mall.ebtp.extend.bizmessage.vo.DescribeSiteMsgVO; +import java.util.List; + public interface BizMessageConsumerService { IBizMessagePage listOutline(PageDTO page); BizMessage getDetailById(String id); + Boolean updateState(String id); + + List selectMsgListByType(BizMessageVo vo); + + /** + * 查询读取状态 + * @param authorize + * @return + */ + BizMessageAuthorize getAuthorize(BizMessageAuthorize authorize); } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/impl/BizMessageConsumerServiceImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/impl/BizMessageConsumerServiceImpl.java index 46bf4b8..1f2c92e 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/impl/BizMessageConsumerServiceImpl.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizmessage/service/impl/BizMessageConsumerServiceImpl.java @@ -6,6 +6,8 @@ import com.chinaunicom.mall.ebtp.common.base.service.IBaseCacheUserService; import com.chinaunicom.mall.ebtp.extend.bizmessage.dao.BizMessageMapper; import com.chinaunicom.mall.ebtp.extend.bizmessage.dto.PageDTO; 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.BizMessageVo; import com.chinaunicom.mall.ebtp.extend.bizmessage.mybatis.BizMessagePage; import com.chinaunicom.mall.ebtp.extend.bizmessage.mybatis.IBizMessagePage; import com.chinaunicom.mall.ebtp.extend.bizmessage.service.BizMessageConsumerService; @@ -14,6 +16,8 @@ import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; import java.util.Optional; import java.util.stream.Collectors; @@ -39,7 +43,7 @@ public class BizMessageConsumerServiceImpl implements BizMessageConsumerService public IBizMessagePage listOutline(PageDTO page) { page = createPageCondition(page); - IPage pageEntity = mapper.findMessage(new Page(page.getPageNo(), page.getPageSize()), + IPage pageEntity = mapper.findMessageVo(new Page(page.getPageNo(), page.getPageSize()), service.getCacheUser().getUserId()); // DAT -> VO 转换 @@ -48,8 +52,10 @@ public class BizMessageConsumerServiceImpl implements BizMessageConsumerService result.setRecords(pageEntity.getRecords().stream().map(source -> { DescribeSiteMsgVO vo = new DescribeSiteMsgVO(); vo.setMsgId(source.getId()); + vo.setServicecode(source.getServicecode()); + vo.setAuthorizestate(source.getAuthorizestate()); + vo.setTemplatetype(source.getTemplatetype()); BeanUtils.copyProperties(source, vo); - return vo; }).collect(Collectors.toList())); @@ -64,7 +70,20 @@ public class BizMessageConsumerServiceImpl implements BizMessageConsumerService */ @Override public BizMessage getDetailById(String id) { - return mapper.selectById(id); + BizMessage message = mapper.selectById(id); + return message; + } + + /** + * 消息详情 已读修改 + * + * @param messageId + * @return + */ + @Override + public Boolean updateState(String messageId){ + String userId = service.getCacheUser().getUserId(); + return mapper.updateState(userId,messageId); } /** @@ -81,4 +100,45 @@ public class BizMessageConsumerServiceImpl implements BizMessageConsumerService }).orElseGet(PageDTO::new); } + /** + * 消息概要列表 + * + * @return + */ + @Override + public List selectMsgListByType(BizMessageVo vo) { + vo.setSize(vo.getSize()!=null?vo.getSize():5); + vo.setUserId(service.getCacheUser().getUserId()); + if(vo.getAuthorizestate()==null||"".equals(vo.getAuthorizestate())){ + vo.setAuthorizestate("0"); + } + + List list = mapper.findMessageVoList(vo); + + List rList = new ArrayList<>(); + + for(int i = 0 ; i < list.size();i++){ + if(i authorizes = this.mapper.findAuthorizeList(authorize); + return authorizes!=null?authorizes.get(0):new BizMessageAuthorize(); + } } 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 index f797bf5..89226a0 100644 --- 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 @@ -85,13 +85,15 @@ public class BizMessageProducerServiceImpl implements BizMessageProducerService bizmessage.setContent(fill(dao.getBody(), messageRaw.getBody())); bizmessage.setUrl(fill(dao.getRouter(), messageRaw.getExtra())); bizmessage.setParams(toJson(messageRaw.getExtra())); + bizmessage.setServicecode(toJson(messageRaw.getServicecode())); + bizmessage.setTemplatecode(dao.getCode()); 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))); + users.forEach(userid -> authorizeMapper.insert(new BizMessageAuthorize(userid, messageId,"0"))); }); return bizmessage; 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 5b9d27e..585ac74 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 @@ -26,4 +26,6 @@ public class DescribeSiteMsgDetailVO { @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Timestamp createtime; + private String authorizestate; + private String servicecode; } 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 913c68b..7fe5699 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 @@ -16,6 +16,9 @@ public class DescribeSiteMsgVO { private String msgId; private String title; private String category; + private String servicecode; + private String authorizestate; + private String templatetype; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Timestamp createtime;