Merge branch 'uat' into sim

This commit is contained in:
zhangqinbin
2021-08-13 13:44:48 +08:00
13 changed files with 220 additions and 9 deletions

View File

@ -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<BizMessageVo> 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;
}
}

View File

@ -5,4 +5,5 @@ import com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessageAuthorize;
public interface BizMessageAuthorizeMapper extends BaseMapper<BizMessageAuthorize> {
}

View File

@ -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<BizMessage> {
IPage<BizMessage> findMessage(@Param("param") IPage<BizMessage> page, @Param("userId") String userId);
IPage<BizMessageVo> findMessageVo(@Param("param") IPage<BizMessageVo> page, @Param("userId") String userId);
Boolean updateState(@Param("userId") String userId,@Param("messageId") String messageId);
List<BizMessageVo> findMessageVoList(BizMessageVo vo);
List<BizMessageAuthorize> findAuthorizeList(BizMessageAuthorize vo);
}

View File

@ -3,19 +3,81 @@
<mapper namespace="com.chinaunicom.mall.ebtp.extend.bizmessage.dao.BizMessageMapper">
<select id="findMessage" resultType="com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessage">
SELECT *
FROM biz_message
WHERE authorize = 0
SELECT biz_message.*
FROM biz_message WHERE authorize = 0
<if test="userId!=null and userId!=''">
UNION ALL
SELECT a.*
FROM ( SELECT * FROM biz_message WHERE authorize = 1) a
FROM ( SELECT biz_message.* FROM biz_message
WHERE authorize = 1) a
INNER JOIN
( SELECT * FROM biz_message_authorize WHERE user_id = #{userId}) b ON a.id = b.message_id
</if>
ORDER BY createtime DESC
</select>
<select id="findMessageVo" resultType="com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessageVo">
SELECT biz_message.*,biz_message_template.type as templatetype,'1' as authorizestate
FROM biz_message
left join biz_message_template on biz_message.templatecode = biz_message_template.code
WHERE authorize = 0
<if test="userId!=null and userId!=''">
UNION ALL
SELECT a.*,IFNULL(b.state,1) as authorizestate
FROM ( SELECT biz_message.*,biz_message_template.type as templatetype
FROM biz_message
left join biz_message_template on biz_message.templatecode = biz_message_template.code
WHERE authorize = 1) a
INNER JOIN
( SELECT * FROM biz_message_authorize WHERE user_id = #{userId}) b ON a.id = b.message_id
</if>
ORDER BY createtime DESC
</select>
<update id="updateState" parameterType="java.lang.String">
update biz_message_authorize set state = 1
where message_id=#{messageId}
and user_id =#{userId}
</update>
<select id="findMessageVoList" resultType="com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessageVo" parameterType="com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessageVo">
SELECT
biz_message.*,
biz_message_authorize.state as authorizestate,
biz_message_template.type AS templatetype
FROM
biz_message
LEFT JOIN biz_message_template ON biz_message.templatecode = biz_message_template.CODE
inner join biz_message_authorize on biz_message.id = biz_message_authorize.message_id
WHERE
authorize = 1 and user_id = #{userId}
<if test="authorizestate!=null and authorizestate!=''">
and biz_message_authorize.state = #{authorizestate}
</if>
<if test="templatetype!=null and templatetype!=''">
and biz_message_template.type = #{templatetype}
</if>
ORDER BY createtime DESC
</select>
<select id="findAuthorizeList" resultType="com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessageAuthorize" parameterType="com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessageAuthorize">
SELECT
*
FROM
biz_message_authorize
WHERE 1 = 1
<if test="userId!=null and userId!=''">
and user_id = #{userId}
</if>
<if test="messageId!=null and messageId!=''">
and message_id = #{messageId}
</if>
<if test="state!=null and state!=''">
and state = #{state}
</if>
</select>
</mapper>

View File

@ -41,4 +41,8 @@ public class BizMessageRawDTO {
@ApiModelProperty(required = true, value = "授权用户列表")
private List<String> users;
@ApiModelProperty(required = true, value = "业务参数json")
@NotNull(message = "业务参数json")
private Map<String, Object> servicecode;
}

View File

@ -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;

View File

@ -11,5 +11,6 @@ public class BizMessageAuthorize {
private String userId;
private String messageId;
private String state;
}

View File

@ -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;
}

View File

@ -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<DescribeSiteMsgVO> listOutline(PageDTO page);
BizMessage getDetailById(String id);
Boolean updateState(String id);
List<BizMessageVo> selectMsgListByType(BizMessageVo vo);
/**
* 查询读取状态
* @param authorize
* @return
*/
BizMessageAuthorize getAuthorize(BizMessageAuthorize authorize);
}

View File

@ -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<DescribeSiteMsgVO> listOutline(PageDTO page) {
page = createPageCondition(page);
IPage<BizMessage> pageEntity = mapper.findMessage(new Page<BizMessage>(page.getPageNo(), page.getPageSize()),
IPage<BizMessageVo> pageEntity = mapper.findMessageVo(new Page<BizMessageVo>(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<BizMessageVo> 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<BizMessageVo> list = mapper.findMessageVoList(vo);
List<BizMessageVo> rList = new ArrayList<>();
for(int i = 0 ; i < list.size();i++){
if(i<vo.getSize()){
BizMessageVo message = list.get(i);
message.setDatanum(Long.valueOf(list.size()));
rList.add(message);
}
}
return rList;
}
/**
* 查询读取状态
* @param authorize
* @return
*/
@Override
public BizMessageAuthorize getAuthorize(BizMessageAuthorize authorize){
authorize.setUserId(service.getCacheUser().getUserId());
List<BizMessageAuthorize> authorizes = this.mapper.findAuthorizeList(authorize);
return authorizes!=null?authorizes.get(0):new BizMessageAuthorize();
}
}

View File

@ -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;

View File

@ -26,4 +26,6 @@ public class DescribeSiteMsgDetailVO {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Timestamp createtime;
private String authorizestate;
private String servicecode;
}

View File

@ -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;