This commit is contained in:
djz236
2022-03-31 23:48:47 +08:00
commit 1595b8a78f
98 changed files with 6132 additions and 0 deletions

View File

@@ -0,0 +1,23 @@
package com.yxt.messagecenter;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
@EnableDiscoveryClient
@SpringBootApplication(scanBasePackages = {
"com.yxt.common.base.config",
"com.yxt.messagecenter"
})
@EnableFeignClients(basePackages = {"com.yxt.anrui.portal"})
public class MessageCenterApplication
{
public static void main( String[] args )
{
SpringApplication.run(MessageCenterApplication.class, args);
}
}

View File

@@ -0,0 +1,40 @@
package com.yxt.messagecenter.biz.message;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.yxt.messagecenter.api.message.Message;
import com.yxt.messagecenter.api.message.MessageVo;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageMapper.java <br/>
* Class: com.yxt.messagecenter.biz.message.MessageMapper <br/>
* Description: 消息体. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper
public interface MessageMapper extends BaseMapper<Message> {
//@Update("update message set name=#{msg} where id=#{id}")
//IPage<MessageVo> voPage(IPage<Message> page, @Param(Constants.WRAPPER) QueryWrapper<Message> qw);
IPage<MessageVo> selectPageVo(IPage<Message> page, @Param(Constants.WRAPPER) Wrapper<Message> qw);
List<MessageVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<Message> qw);
@Select("select * from message")
List<MessageVo> selectListVo();
}

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.messagecenter.biz.message.MessageMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.messagecenter.api.message.MessageVo">
SELECT * FROM message <where> ${ew.sqlSegment} </where>
</select>
<select id="selectListAllVo" resultType="com.yxt.messagecenter.api.message.MessageVo">
SELECT * FROM message <where> ${ew.sqlSegment} </where>
</select>
</mapper>

View File

@@ -0,0 +1,113 @@
package com.yxt.messagecenter.biz.message;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.message.*;
import com.yxt.messagecenter.api.messagelist.MessageList;
import com.yxt.messagecenter.biz.messagelist.MessageListService;
import io.swagger.annotations.Api;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* Project: message-center(消息中心) <br/>
* File: MessageFeignFallback.java <br/>
* Class: com.yxt.messagecenter.biz.message.MessageRest <br/>
* Description: 消息体. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "消息体")
@RestController
@RequestMapping("v1/message")
public class MessageRest implements MessageFeign {
@Autowired
private MessageService messageService;
@Autowired
MessageListService messageListService;
@Override
public ResultBean<PagerVo<MessageVo>> listPage(@RequestBody PagerQuery<MessageQuery> pq) {
ResultBean rb = ResultBean.fireFail();
PagerVo<MessageVo> pv = messageService.listPageVo(pq);
return rb.success().setData(pv);
}
@Override
public ResultBean save(MessageDto dto) {
ResultBean rb = ResultBean.fireFail();
Message m = new Message();
dto.fillEntity(m);
if (!messageService.save(m)) {
return ResultBean.fireFail();
}
if (dto != null && StringUtils.isNotBlank(dto.getReceiveSids())) {
if (dto.getReceiveSids().indexOf(",") >= -1) {
String[] ReceiveUserSids = dto.getReceiveSids().split(",");
String[] receiveUsers = dto.getReceiveNames().split(",");
for (int i = 0; ReceiveUserSids.length > i; i++) {
MessageList messageList = new MessageList();
messageList.setMsgSid(m.getSid());
messageList.setReceiverSid(ReceiveUserSids[i]);
messageList.setReceiverName(receiveUsers[i]);
// messageList.setReceiverDeptName();
// messageList.setReceiverDeptSid();
messageList.setState(0);
messageListService.save(messageList);
}
}
}
return ResultBean.fireSuccess().setData(m.getSid());
}
@Override
public ResultBean update(MessageDto dto, String sid) {
ResultBean rb = ResultBean.fireFail();
messageService.updateBySid(dto.toMap(), sid);
return rb.success();
}
@Override
public ResultBean del(String ids) {
ResultBean rb = ResultBean.fireFail();
messageService.delByIds(ids);
return rb.success();
}
@Override
public ResultBean<Message> fetchBySid(String sid) {
ResultBean rb = ResultBean.fireFail();
Message vo = messageService.fetchBySid(sid);
return rb.success().setData(vo);
}
public ResultBean<MessageVo> messageDtail(String sid) {
ResultBean rb = ResultBean.fireFail();
MessageList ml = messageListService.fetchBySid(sid);
if (ml.getState() == 0) {
ml.setState(1);
messageListService.updateById(ml);//修改状态为已阅;
}
MessageVo vo = new MessageVo();
Message message = messageService.fetchBySid(ml.getMsgSid());
vo.fromEntity(message);
return rb.success().setData(vo);
}
@Override
public ResultBean saveOrUpdateAppMessage(AppMessageDto dto) {
return messageService.saveOrUpdateAppMessage(dto);
}
}

View File

@@ -0,0 +1,170 @@
package com.yxt.messagecenter.biz.message;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.message.*;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.UUID;
/**
* Project: message-center(消息中心) <br/>
* File: MessageService.java <br/>
* Class: com.yxt.messagecenter.biz.message.MessageService <br/>
* Description: 消息体 业务逻辑. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class MessageService extends MybatisBaseService<MessageMapper, Message> {
public PagerVo<Message> listPage(PagerQuery<MessageQuery> pq) {
MessageQuery query = pq.getParams();
QueryWrapper<Message> qw = createQueryWrapper(query);
IPage<Message> page = PagerUtil.queryToPage(pq);
IPage<Message> pagging = baseMapper.selectPage(page, qw);
PagerVo<Message> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<Message> listAll(MessageQuery query) {
QueryWrapper<Message> qw = createQueryWrapper(query);
return baseMapper.selectList(qw);
}
private QueryWrapper<Message> createQueryWrapper(MessageQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<Message> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getMsgType())) {
qw.eq("msgType", query.getMsgType());
}
if (StringUtils.isNotBlank(query.getMsgTitle())) {
qw.eq("msgTitle", query.getMsgTitle());
}
if (StringUtils.isNotBlank(query.getMsgContent())) {
qw.eq("msgContent", query.getMsgContent());
}
if (StringUtils.isNotBlank(query.getMsgSource())) {
qw.eq("msgSource", query.getMsgSource());
}
if (StringUtils.isNotBlank(query.getSenderSid())) {
qw.eq("senderSid", query.getSenderSid());
}
if (StringUtils.isNotBlank(query.getSenderName())) {
qw.eq("senderName", query.getSenderName());
}
if (StringUtils.isNotBlank(query.getSenderDeptSid())) {
qw.eq("senderDeptSid", query.getSenderDeptSid());
}
if (StringUtils.isNotBlank(query.getSenderDeptName())) {
qw.eq("senderDeptName", query.getSenderDeptName());
}
if (StringUtils.isNotBlank(query.getBusinessSid())) {
qw.eq("businessSid", query.getBusinessSid());
}
if (StringUtils.isNotBlank(query.getModuleSid())) {
qw.eq("moduleSid", query.getModuleSid());
}
if (StringUtils.isNotBlank(query.getModuleAction())) {
qw.eq("moduleAction", query.getModuleAction());
}
if (StringUtils.isNotBlank(query.getArgs_json())) {
qw.eq("args_json", query.getArgs_json());
}
if (StringUtils.isNotBlank(query.getH5_url())) {
qw.eq("h5_url", query.getH5_url());
}
if (StringUtils.isNotBlank(query.getXcx_url())) {
qw.eq("xcx_url", query.getXcx_url());
}
if (StringUtils.isNotBlank(query.getMsgTargetUri())) {
qw.eq("msgTargetUri", query.getMsgTargetUri());
}
return qw;
}
public PagerVo<MessageVo> listPageVo(PagerQuery<MessageQuery> pq) {
MessageQuery query = pq.getParams();
QueryWrapper<Message> qw = createQueryWrapper(query);
IPage<Message> page = PagerUtil.queryToPage(pq);
IPage<MessageVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<MessageVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<MessageVo> listAllVo(MessageQuery query) {
QueryWrapper<Message> qw = createQueryWrapper(query);
return baseMapper.selectListAllVo(qw);
}
public List<MessageVo> listVo() {
return baseMapper.selectListVo();
}
public void saveOrUpdateDto(MessageDto dto){
Message entity = new Message();
dto.fillEntity(entity);
this.saveOrUpdate(entity);
}
public MessageVo fetchByIdVo(String id){
Message entity = this.fetchById(id);
MessageVo vo = new MessageVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
/**
* 手机端保存/修改消息体
* @param dto
* @return
*/
public ResultBean saveOrUpdateAppMessage(AppMessageDto dto) {
if (StringUtils.isBlank(dto.getSid())) { // 新增
Message message = new Message();
dto.fillEntity(message);
message.setSid(UUID.randomUUID().toString());
Boolean flag = save(message);
if (flag) {
return new ResultBean().success().setMsg("保存成功").setData(message.getSid());
} else {
return new ResultBean().fail().setMsg("保存失败");
}
} else { // 修改
Message message = fetchBySid(dto.getSid());
BeanUtil.copyProperties(dto, message);
Boolean flag = updateById(message);
if (flag) {
return new ResultBean().success().setMsg("修改成功").setData(message.getSid());
} else {
return new ResultBean().fail().setMsg("修改失败");
}
}
}
}

View File

@@ -0,0 +1,40 @@
package com.yxt.messagecenter.biz.messagefile;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.yxt.messagecenter.api.messagefile.MessageFile;
import com.yxt.messagecenter.api.messagefile.MessageFileVo;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageFileMapper.java <br/>
* Class: com.yxt.messagecenter.biz.messagefile.MessageFileMapper <br/>
* Description: 消息附件. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper
public interface MessageFileMapper extends BaseMapper<MessageFile> {
//@Update("update message_file set name=#{msg} where id=#{id}")
//IPage<MessageFileVo> voPage(IPage<MessageFile> page, @Param(Constants.WRAPPER) QueryWrapper<MessageFile> qw);
IPage<MessageFileVo> selectPageVo(IPage<MessageFile> page, @Param(Constants.WRAPPER) Wrapper<MessageFile> qw);
List<MessageFileVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<MessageFile> qw);
@Select("select * from message_file")
List<MessageFileVo> selectListVo();
}

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.messagecenter.biz.messagefile.MessageFileMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.messagecenter.api.messagefile.MessageFileVo">
SELECT * FROM message_file <where> ${ew.sqlSegment} </where>
</select>
<select id="selectListAllVo" resultType="com.yxt.messagecenter.api.messagefile.MessageFileVo">
SELECT * FROM message_file <where> ${ew.sqlSegment} </where>
</select>
</mapper>

View File

@@ -0,0 +1,94 @@
package com.yxt.messagecenter.biz.messagefile;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import com.yxt.messagecenter.api.messagefile.MessageFile;
import com.yxt.messagecenter.api.messagefile.MessageFileQuery;
import com.yxt.messagecenter.api.messagefile.MessageFileVo;
import com.yxt.messagecenter.api.messagefile.MessageFileDto;
import com.yxt.messagecenter.api.messagefile.MessageFileFeign;
/**
* Project: message-center(消息中心) <br/>
* File: MessageFileFeignFallback.java <br/>
* Class: com.yxt.messagecenter.biz.messagefile.MessageFileRest <br/>
* Description: 消息附件. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "消息附件")
@RestController
@RequestMapping("v1/messagefile")
public class MessageFileRest implements MessageFileFeign {
@Autowired
private MessageFileService messageFileService;
@Override
public ResultBean<PagerVo<MessageFileVo>> listPage(@RequestBody PagerQuery<MessageFileQuery> pq){
ResultBean rb = ResultBean.fireFail();
PagerVo<MessageFileVo> pv = messageFileService.listPageVo(pq);
return rb.success().setData(pv);
}
@Override
public ResultBean<List<MessageFileVo>> listAll(@RequestBody MessageFileQuery query){
ResultBean rb = ResultBean.fireFail();
List<MessageFileVo> list = messageFileService.listAllVo(query);
return rb.success().setData(list);
}
@Override
public ResultBean<List<MessageFileVo>> list(){
ResultBean rb = ResultBean.fireFail();
List<MessageFileVo> list = messageFileService.listVo();
return rb.success().setData(list);
}
@Override
public ResultBean save(MessageFileDto dto){
ResultBean rb = ResultBean.fireFail();
messageFileService.saveOrUpdateDto(dto);
return rb.success();
}
@Override
public ResultBean update(MessageFileDto dto,String sid){
ResultBean rb = ResultBean.fireFail();
messageFileService.updateBySid(dto.toMap(),sid);
return rb.success();
}
@Override
public ResultBean del(String ids){
ResultBean rb = ResultBean.fireFail();
messageFileService.delByIds(ids);
return rb.success();
}
@Override
public ResultBean<MessageFileVo> fetch(String id){
ResultBean rb = ResultBean.fireFail();
MessageFileVo vo = messageFileService.fetchByIdVo(id);
return rb.success().setData(vo);
}
@Override
public ResultBean<MessageFile> fetchBySid(String sid){
ResultBean rb = ResultBean.fireFail();
MessageFile vo = messageFileService.fetchBySid(sid);
return rb.success().setData(vo);
}
}

View File

@@ -0,0 +1,111 @@
package com.yxt.messagecenter.biz.messagefile;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.commons.lang3.StringUtils;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.messagefile.MessageFile;
import com.yxt.messagecenter.api.messagefile.MessageFileQuery;
import com.yxt.messagecenter.api.messagefile.MessageFileVo;
import com.yxt.messagecenter.api.messagefile.MessageFileDto;
import com.yxt.messagecenter.api.messagefile.MessageFileFeign;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageFileService.java <br/>
* Class: com.yxt.messagecenter.biz.messagefile.MessageFileService <br/>
* Description: 消息附件 业务逻辑. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class MessageFileService extends MybatisBaseService<MessageFileMapper, MessageFile> {
public PagerVo<MessageFile> listPage(PagerQuery<MessageFileQuery> pq) {
MessageFileQuery query = pq.getParams();
QueryWrapper<MessageFile> qw = createQueryWrapper(query);
IPage<MessageFile> page = PagerUtil.queryToPage(pq);
IPage<MessageFile> pagging = baseMapper.selectPage(page, qw);
PagerVo<MessageFile> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<MessageFile> listAll(MessageFileQuery query) {
QueryWrapper<MessageFile> qw = createQueryWrapper(query);
return baseMapper.selectList(qw);
}
private QueryWrapper<MessageFile> createQueryWrapper(MessageFileQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<MessageFile> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getMsgSid())) {
qw.eq("msgSid", query.getMsgSid());
}
if (StringUtils.isNotBlank(query.getFileName())) {
qw.eq("fileName", query.getFileName());
}
if (StringUtils.isNotBlank(query.getFileType())) {
qw.eq("fileType", query.getFileType());
}
if (StringUtils.isNotBlank(query.getFilePath())) {
qw.eq("filePath", query.getFilePath());
}
if (StringUtils.isNotBlank(query.getAttachType())) {
qw.eq("attachType", query.getAttachType());
}
if (query.getFileSize() != null) {
qw.eq("fileSize", query.getFileSize());
}
return qw;
}
public PagerVo<MessageFileVo> listPageVo(PagerQuery<MessageFileQuery> pq) {
MessageFileQuery query = pq.getParams();
QueryWrapper<MessageFile> qw = createQueryWrapper(query);
IPage<MessageFile> page = PagerUtil.queryToPage(pq);
IPage<MessageFileVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<MessageFileVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<MessageFileVo> listAllVo(MessageFileQuery query) {
QueryWrapper<MessageFile> qw = createQueryWrapper(query);
return baseMapper.selectListAllVo(qw);
}
public List<MessageFileVo> listVo() {
return baseMapper.selectListVo();
}
public void saveOrUpdateDto(MessageFileDto dto){
MessageFile entity = new MessageFile();
dto.fillEntity(entity);
this.saveOrUpdate(entity);
}
public MessageFileVo fetchByIdVo(String id){
MessageFile entity = this.fetchById(id);
MessageFileVo vo = new MessageFileVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
}

View File

@@ -0,0 +1,40 @@
package com.yxt.messagecenter.biz.messageforwardlist;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.yxt.messagecenter.api.messageforwardlist.MessageForwardlist;
import com.yxt.messagecenter.api.messageforwardlist.MessageForwardlistVo;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageForwardlistMapper.java <br/>
* Class: com.yxt.messagecenter.biz.messageforwardlist.MessageForwardlistMapper <br/>
* Description: 消息转发记录. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper
public interface MessageForwardlistMapper extends BaseMapper<MessageForwardlist> {
//@Update("update message_forwardlist set name=#{msg} where id=#{id}")
//IPage<MessageForwardlistVo> voPage(IPage<MessageForwardlist> page, @Param(Constants.WRAPPER) QueryWrapper<MessageForwardlist> qw);
IPage<MessageForwardlistVo> selectPageVo(IPage<MessageForwardlist> page, @Param(Constants.WRAPPER) Wrapper<MessageForwardlist> qw);
List<MessageForwardlistVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<MessageForwardlist> qw);
@Select("select * from message_forwardlist")
List<MessageForwardlistVo> selectListVo();
}

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.messagecenter.biz.messageforwardlist.MessageForwardlistMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.messagecenter.api.messageforwardlist.MessageForwardlistVo">
SELECT * FROM message_forwardlist <where> ${ew.sqlSegment} </where>
</select>
<select id="selectListAllVo" resultType="com.yxt.messagecenter.api.messageforwardlist.MessageForwardlistVo">
SELECT * FROM message_forwardlist <where> ${ew.sqlSegment} </where>
</select>
</mapper>

View File

@@ -0,0 +1,94 @@
package com.yxt.messagecenter.biz.messageforwardlist;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import com.yxt.messagecenter.api.messageforwardlist.MessageForwardlist;
import com.yxt.messagecenter.api.messageforwardlist.MessageForwardlistQuery;
import com.yxt.messagecenter.api.messageforwardlist.MessageForwardlistVo;
import com.yxt.messagecenter.api.messageforwardlist.MessageForwardlistDto;
import com.yxt.messagecenter.api.messageforwardlist.MessageForwardlistFeign;
/**
* Project: message-center(消息中心) <br/>
* File: MessageForwardlistFeignFallback.java <br/>
* Class: com.yxt.messagecenter.biz.messageforwardlist.MessageForwardlistRest <br/>
* Description: 消息转发记录. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "消息转发记录")
@RestController
@RequestMapping("v1/messageforwardlist")
public class MessageForwardlistRest implements MessageForwardlistFeign {
@Autowired
private MessageForwardlistService messageForwardlistService;
@Override
public ResultBean<PagerVo<MessageForwardlistVo>> listPage(@RequestBody PagerQuery<MessageForwardlistQuery> pq){
ResultBean rb = ResultBean.fireFail();
PagerVo<MessageForwardlistVo> pv = messageForwardlistService.listPageVo(pq);
return rb.success().setData(pv);
}
@Override
public ResultBean<List<MessageForwardlistVo>> listAll(@RequestBody MessageForwardlistQuery query){
ResultBean rb = ResultBean.fireFail();
List<MessageForwardlistVo> list = messageForwardlistService.listAllVo(query);
return rb.success().setData(list);
}
@Override
public ResultBean<List<MessageForwardlistVo>> list(){
ResultBean rb = ResultBean.fireFail();
List<MessageForwardlistVo> list = messageForwardlistService.listVo();
return rb.success().setData(list);
}
@Override
public ResultBean save(MessageForwardlistDto dto){
ResultBean rb = ResultBean.fireFail();
messageForwardlistService.saveOrUpdateDto(dto);
return rb.success();
}
@Override
public ResultBean update(MessageForwardlistDto dto,String sid){
ResultBean rb = ResultBean.fireFail();
messageForwardlistService.updateBySid(dto.toMap(),sid);
return rb.success();
}
@Override
public ResultBean del(String ids){
ResultBean rb = ResultBean.fireFail();
messageForwardlistService.delByIds(ids);
return rb.success();
}
@Override
public ResultBean<MessageForwardlistVo> fetch(String id){
ResultBean rb = ResultBean.fireFail();
MessageForwardlistVo vo = messageForwardlistService.fetchByIdVo(id);
return rb.success().setData(vo);
}
@Override
public ResultBean<MessageForwardlist> fetchBySid(String sid){
ResultBean rb = ResultBean.fireFail();
MessageForwardlist vo = messageForwardlistService.fetchBySid(sid);
return rb.success().setData(vo);
}
}

View File

@@ -0,0 +1,103 @@
package com.yxt.messagecenter.biz.messageforwardlist;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.commons.lang3.StringUtils;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.messageforwardlist.MessageForwardlist;
import com.yxt.messagecenter.api.messageforwardlist.MessageForwardlistQuery;
import com.yxt.messagecenter.api.messageforwardlist.MessageForwardlistVo;
import com.yxt.messagecenter.api.messageforwardlist.MessageForwardlistDto;
import com.yxt.messagecenter.api.messageforwardlist.MessageForwardlistFeign;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageForwardlistService.java <br/>
* Class: com.yxt.messagecenter.biz.messageforwardlist.MessageForwardlistService <br/>
* Description: 消息转发记录 业务逻辑. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class MessageForwardlistService extends MybatisBaseService<MessageForwardlistMapper, MessageForwardlist> {
public PagerVo<MessageForwardlist> listPage(PagerQuery<MessageForwardlistQuery> pq) {
MessageForwardlistQuery query = pq.getParams();
QueryWrapper<MessageForwardlist> qw = createQueryWrapper(query);
IPage<MessageForwardlist> page = PagerUtil.queryToPage(pq);
IPage<MessageForwardlist> pagging = baseMapper.selectPage(page, qw);
PagerVo<MessageForwardlist> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<MessageForwardlist> listAll(MessageForwardlistQuery query) {
QueryWrapper<MessageForwardlist> qw = createQueryWrapper(query);
return baseMapper.selectList(qw);
}
private QueryWrapper<MessageForwardlist> createQueryWrapper(MessageForwardlistQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<MessageForwardlist> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getMsgSid())) {
qw.eq("msgSid", query.getMsgSid());
}
if (query.getForwardTime() != null) {
qw.ge("forwardTime", query.getForwardTime());
}
if (StringUtils.isNotBlank(query.getForwardPerson())) {
qw.eq("forwardPerson", query.getForwardPerson());
}
if (StringUtils.isNotBlank(query.getForwordMsgSid())) {
qw.eq("forwordMsgSid", query.getForwordMsgSid());
}
return qw;
}
public PagerVo<MessageForwardlistVo> listPageVo(PagerQuery<MessageForwardlistQuery> pq) {
MessageForwardlistQuery query = pq.getParams();
QueryWrapper<MessageForwardlist> qw = createQueryWrapper(query);
IPage<MessageForwardlist> page = PagerUtil.queryToPage(pq);
IPage<MessageForwardlistVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<MessageForwardlistVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<MessageForwardlistVo> listAllVo(MessageForwardlistQuery query) {
QueryWrapper<MessageForwardlist> qw = createQueryWrapper(query);
return baseMapper.selectListAllVo(qw);
}
public List<MessageForwardlistVo> listVo() {
return baseMapper.selectListVo();
}
public void saveOrUpdateDto(MessageForwardlistDto dto){
MessageForwardlist entity = new MessageForwardlist();
dto.fillEntity(entity);
this.saveOrUpdate(entity);
}
public MessageForwardlistVo fetchByIdVo(String id){
MessageForwardlist entity = this.fetchById(id);
MessageForwardlistVo vo = new MessageForwardlistVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
}

View File

@@ -0,0 +1,90 @@
package com.yxt.messagecenter.biz.messagelist;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.messagecenter.api.messagelist.MessageList;
import com.yxt.messagecenter.api.messagelist.MessageListJoinMsgVo;
import com.yxt.messagecenter.api.messagelist.MessageListVo;
import com.yxt.messagecenter.api.messagelist.app.AppLastMsgVo;
import com.yxt.messagecenter.api.messagelist.app.AppMessageListQuery;
import com.yxt.messagecenter.api.messagelist.app.AppMessageListVo;
import com.yxt.messagecenter.api.messagelist.wx.WxMessageListQuery;
import com.yxt.messagecenter.api.messagelist.wx.WxMessageListVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageListMapper.java <br/>
* Class: com.yxt.messagecenter.biz.messagelist.MessageListMapper <br/>
* Description: 消息列表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper
public interface MessageListMapper extends BaseMapper<MessageList> {
//@Update("update message_list set name=#{msg} where id=#{id}")
//IPage<MessageListVo> voPage(IPage<MessageList> page, @Param(Constants.WRAPPER) QueryWrapper<MessageList> qw);
IPage<MessageListVo> selectPageVo(IPage<MessageList> page, @Param(Constants.WRAPPER) Wrapper<MessageList> qw);
List<MessageListJoinMsgVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<MessageList> qw);
@Select("SELECT * FROM message_list")
List<MessageListVo> selectListVo();
IPage<MessageListJoinMsgVo> noreadListPage(IPage<MessageList> page, @Param(Constants.WRAPPER) QueryWrapper<MessageList> qw);
IPage<MessageListJoinMsgVo> readListPage(IPage<MessageList> page, @Param(Constants.WRAPPER) QueryWrapper<MessageList> qw);
int updateByReceiverSid(@Param("receiverSid") String receiverSid);
int deleteBySids(String sid);
int changeRead(List<String> sidList);
int changeUnRead(List<String> sidList);
/**
* @param page
* @param qw
* @description: 客户端消息分页列表
* @return:
* @Author: dimengzhe
* @Date: 2021/11/1 17:42
*/
IPage<WxMessageListVo> listPage(IPage<WxMessageListQuery> page, @Param(Constants.WRAPPER) QueryWrapper<WxMessageListVo> qw);
/**
* @param msgTypeSid 消息类别sid
* @description: 根据消息类别sid查询消息未读的数量
* @return:
* @Author: dimengzhe
* @Date: 2021/11/1 16:16
*/
int selectListCount(String msgTypeSid);
MessageListJoinMsgVo fetchByMsgSid(String sid);
Integer fetchByReceiverSid(String receiverSid);
int selectUnReadCount(@Param("msgTypeSid") String msgTypeSid, @Param("userSid") String userSid);
AppLastMsgVo selectLastMsg(@Param("userSid") String userSid, @Param("msgTypeSid") String msgTypeSid);
IPage<AppMessageListVo> getAppMsgListByUserSid(IPage<AppMessageListQuery> page, @Param(Constants.WRAPPER) QueryWrapper<MessageList> qw);
int updateAppReadByType(@Param("msgTypeSid") String msgTypeSid, @Param("userSid") String userSid);
}

View File

@@ -0,0 +1,190 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.messagecenter.biz.messagelist.MessageListMapper">
<update id="deleteBySids">
update message_list
set rDelStatus = 1
WHERE sid = #{sid}
</update>
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.messagecenter.api.messagelist.MessageListVo">
SELECT *
FROM message_list
<where>
${ew.sqlSegment}
</where>
</select>
<select id="selectListAllVo" resultType="com.yxt.messagecenter.api.messagelist.MessageListJoinMsgVo">
SELECT ml.sid,
ml.msgSid,
m.msgContent,
m.senderName,
m.msgTitle,
m.createTime,
m.msgType,
m.msgSource,
ml.state
FROM message_list ml
LEFT JOIN message m
ON m.sid = ml.msgSid
<where>
${ew.sqlSegment}
</where>
</select>
<select id="noreadListPage" resultType="com.yxt.messagecenter.api.messagelist.MessageListJoinMsgVo">
SELECT ml.sid,
ml.state,
ml.msgSid,
m.senderName,
m.msgTitle,
m.createTime,
m.msgType,
m.msgSource,
ml.receiverSid
FROM message_list ml
LEFT JOIN message m
ON m.sid = ml.msgSid
<where>
${ew.sqlSegment}
and ml.state = 0
and ml.rDelStatus = 0
</where>
</select>
<select id="readListPage" resultType="com.yxt.messagecenter.api.messagelist.MessageListJoinMsgVo">
SELECT ml.sid,
ml.state,
ml.msgSid,
m.senderName,
m.msgTitle,
m.createTime,
m.msgType,
m.msgSource,
ml.receiverSid
FROM message_list ml
LEFT JOIN message m
ON m.sid = ml.msgSid
<where>
${ew.sqlSegment}
and ml.state = 0
and ml.rDelStatus = 0
</where>
</select>
<select id="listPage" resultType="com.yxt.messagecenter.api.messagelist.wx.WxMessageListVo">
SELECT ml.sid,<!--消息列表sid-->
ml.state,<!--阅读状态-->
m.msgTitle,<!--消息标题-->
m.msgContent,<!--消息内容-->
mt.msgType,<!--消息类别-->
mt.crossIconUrl iconImage,<!--消息类别图标-->
DATE_FORMAT(m.createTime, '%Y-%m-%d') AS createTime<!--创建时间-->
FROM message_list ml
LEFT JOIN message m ON m.sid = ml.msgSid
left join message_type mt ON mt.sid = m.msgTypeSid
${ew.customSqlSegment}
</select>
<update id="updateByReceiverSid">
update message_list
set state=1
where receiverSid = #{receiverSid}
and state = 0
</update>
<update id="changeRead">
update message_list
set state=1
WHERE sid IN
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
and state = 0
</update>
<update id="changeUnRead">
update message_list
set state=0
WHERE sid IN
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
and state = 1
</update>
<!--根据消息类别的sid查询消息未读的数量-->
<select id="selectListCount" resultType="int">
SELECT count(*)
FROM message_list ml
left join message m ON m.sid = ml.msgSid
WHERE M.msgTypeSid = #{msgTypeSid}
AND ML.state = 0
</select>
<select id="fetchByMsgSid" resultType="com.yxt.messagecenter.api.messagelist.MessageListJoinMsgVo">
SELECT ml.sid,
ml.state,
ml.msgSid,
m.senderName,
m.msgTitle,
m.createTime,
m.msgType,
m.msgSource,
m.msgContent
FROM message_list ml
LEFT JOIN message m
ON m.sid = ml.msgSid
WHERE m.sid = #{sid}
</select>
<select id="fetchByReceiverSid" resultType="integer">
SELECT COUNT(*)
FROM message_list ml
LEFT JOIN message m
ON m.sid = ml.msgSid
<where>
ml.state = 0
and ml.rDelStatus = 0
and ml.receiverSid = #{receiverSid}
</where>
</select>
<!-- 根据消息类型查询未读数量-->
<select id="selectUnReadCount" resultType="int">
SELECT COUNT(1) FROM message_list ml
LEFT JOIN message m ON ml.msgSid=m.sid
LEFT JOIN message_type mt ON m.msgTypeSid=mt.sid
WHERE mt.identifier='0002' AND ml.state='0' AND ml.receiverSid=#{userSid}
<if test="msgTypeSid != null and msgTypeSid !=''">
AND mt.sid=#{msgTypeSid}
</if>
</select>
<!--查询最近消息-->
<select id="selectLastMsg" resultType="com.yxt.messagecenter.api.messagelist.app.AppLastMsgVo">
SELECT DATE_FORMAT(ml.createTime, '%Y-%m-%d') as sendTime,ml.state,m.msgTitle,ml.sid,m.msgContent,m.sid as msgSid
FROM message_list ml
LEFT JOIN message m ON ml.msgSid=m.sid
LEFT JOIN message_type mt ON m.msgTypeSid=mt.sid
WHERE ml.receiverSid=#{userSid} AND mt.sid=#{msgTypeSid}
ORDER BY ml.id desc LIMIT 1
</select>
<select id="getAppMsgListByUserSid" resultType="com.yxt.messagecenter.api.messagelist.app.AppMessageListVo">
SELECT ml.sid,ml.msgSid,m.app_type as type,m.moduleSid,m.args_json as json,m.msgTitle,m.msgContent,ml.state,
DATE_FORMAT(ml.createTime, '%Y-%m-%d') as sendTime,m.msgTargetUri as moduleAction
FROM message_list ml
LEFT JOIN message m ON ml.msgSid=m.sid
<where>
${ew.sqlSegment}
and ml.rDelStatus = 0
</where>
ORDER BY ml.id DESC
</select>
<update id="updateAppReadByType">
UPDATE message_list ml,message m set ml.state=1
WHERE ml.msgSid=m.sid AND ml.receiverSid=#{userSid} AND m.msgTypeSid=#{msgTypeSid}
</update>
</mapper>

View File

@@ -0,0 +1,177 @@
package com.yxt.messagecenter.biz.messagelist;
import com.auth0.jwt.JWT;
import com.auth0.jwt.interfaces.DecodedJWT;
import com.yxt.common.base.utils.JWTUtil;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.message.Message;
import com.yxt.messagecenter.api.messagelist.*;
import com.yxt.messagecenter.api.messagelist.app.AppMessageListQuery;
import com.yxt.messagecenter.api.messagelist.app.AppMessageListVo;
import com.yxt.messagecenter.api.messagelist.app.AppMsgMainVo;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageListFeignFallback.java <br/>
* Class: com.yxt.messagecenter.biz.messagelist.MessageListRest <br/>
* Description: 消息列表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "消息列表")
@RestController
@RequestMapping("v1/messagelist")
public class MessageListRest implements MessageListFeign {
@Autowired
private MessageListService messageListService;
@Autowired
private HttpServletRequest request;
@Override
public ResultBean<PagerVo<MessageListJoinMsgVo>> noreadListPage(PagerQuery<MessageListQuery> pq) {
//将token解密userSid
String token = request.getHeader("token");
DecodedJWT decodedJWT = JWT.decode(token);
String userSid = JWTUtil.getUserSid(decodedJWT);
ResultBean rb = ResultBean.fireFail();
PagerVo<MessageListJoinMsgVo> pv = messageListService.noreadListPage(pq,userSid);
return rb.success().setData(pv);
}
@Override
public ResultBean<PagerVo<MessageListJoinMsgVo>> readListPage(PagerQuery<MessageListQuery> pq) {
//将token解密userSid
String token = request.getHeader("token");
DecodedJWT decodedJWT = JWT.decode(token);
String userSid = JWTUtil.getUserSid(decodedJWT);
ResultBean rb = ResultBean.fireFail();
PagerVo<MessageListJoinMsgVo> pv = messageListService.readListPage(pq,userSid);
return rb.success().setData(pv);
}
@Override
public ResultBean<List<MessageListVo>> list() {
ResultBean rb = ResultBean.fireFail();
List<MessageListVo> list = messageListService.listVo();
return rb.success().setData(list);
}
@Override
public ResultBean save(MessageListDto dto) {
ResultBean rb = ResultBean.fireFail();
messageListService.saveOrUpdateDto(dto);
return rb.success();
}
@Override
public ResultBean update(MessageListDto dto, String sid) {
ResultBean rb = ResultBean.fireFail();
messageListService.updateBySid(dto.toMap(), sid);
return rb.success();
}
@Override
public ResultBean del(String ids) {
ResultBean rb = ResultBean.fireFail();
messageListService.delByIds(ids);
return rb.success();
}
@Override
public ResultBean<Message> fetchByMsgSid(String sid) {
ResultBean rb = ResultBean.fireFail();
MessageListJoinMsgVo messageListJoinMsgVo = messageListService.fetchByMsgSid(sid);
return rb.success().setData(messageListJoinMsgVo);
}
@Override
public ResultBean allChangeRead() {
ResultBean rb = ResultBean.fireFail();
//将token解密userSid
String token = request.getHeader("token");
DecodedJWT decodedJWT = JWT.decode(token);
String receiverSid = JWTUtil.getUserSid(decodedJWT);
Integer count = messageListService.fetchByReceiverSid(receiverSid);
if (count == 0){
return rb.success().setMessage("该用户下暂无未读消息");
}else {
int num = messageListService.updateByReceiverSid(receiverSid);
}
return rb.success().setMessage("操作成功");
}
@Override
public ResultBean<MessageList> changeRead(String sids) {
ResultBean rb = ResultBean.fireFail();
List<String> sidList = Arrays.asList(sids.split(","));
int count = messageListService.changeRead(sidList);
return rb.success().setMessage("操作成功");
}
@Override
public ResultBean<MessageList> changeUnRead(String sids) {
ResultBean rb = ResultBean.fireFail();
List<String> sidList = Arrays.asList(sids.split(","));
int count = messageListService.changeUnRead(sidList);
return rb.success().setMessage("操作成功");
}
@Override
public ResultBean deleteBySids(String sids) {
List<String> sidList = Arrays.asList(sids.split(","));
int count = messageListService.deleteBySids(sidList);
if (count != 1) {
return ResultBean.fireFail().setMsg("删除失败");
}
return ResultBean.fireSuccess().setMsg("删除成功");
}
@Override
public ResultBean<Integer> selectUnReadCount(String msgTypeSid, String userSid) {
return new ResultBean<Integer>().success().setData(messageListService.selectUnReadCount(msgTypeSid, userSid));
}
@Override
public ResultBean<AppMsgMainVo> getAppMsgMainList(String userSid) {
return new ResultBean<AppMsgMainVo>().success().setData(messageListService.getAppMsgMainList(userSid));
}
@Override
public ResultBean<PagerVo<AppMessageListVo>> getAppMsgListByUserSid(PagerQuery<AppMessageListQuery> pq) {
if (StringUtils.isBlank(pq.getParams().getUserSid())) {
return new ResultBean().fail().setMsg("用户sid不能为空");
}
if (StringUtils.isBlank(pq.getParams().getMsgTypeSid())) {
return new ResultBean().fail().setMsg("消息类型不能为空");
}
PagerVo<AppMessageListVo> pagerVo = messageListService.getAppMsgListByUserSid(pq);
return new ResultBean<PagerVo<AppMessageListVo>>().success().setData(pagerVo);
}
@Override
public ResultBean updateAppReadByType(String msgTypeSid, String userSid) {
int i = messageListService.updateAppReadByType(msgTypeSid, userSid);
if (i == 0) {
return new ResultBean().fail();
}
return new ResultBean().success();
}
}

View File

@@ -0,0 +1,332 @@
package com.yxt.messagecenter.biz.messagelist;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.portal.api.appsubsetversion.AppSubsetVersionFeign;
import com.yxt.anrui.portal.api.appsubsetversion.AppSubsetVersionVo;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.messagelist.*;
import com.yxt.messagecenter.api.messagelist.app.*;
import com.yxt.messagecenter.api.messagelist.wx.WxMessageListQuery;
import com.yxt.messagecenter.api.messagelist.wx.WxMessageListVo;
import com.yxt.messagecenter.api.messagetype.MessageTypeVo;
import com.yxt.messagecenter.biz.message.MessageService;
import com.yxt.messagecenter.biz.messagetype.MessageTypeService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageListService.java <br/>
* Class: com.yxt.messagecenter.biz.messagelist.MessageListService <br/>
* Description: 消息列表 业务逻辑. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class MessageListService extends MybatisBaseService<MessageListMapper, MessageList> {
@Autowired
private MessageTypeService messageTypeService;
@Autowired
private MessageService messageService;
@Autowired
private AppSubsetVersionFeign appSubsetVersionFeign;
public List<MessageList> listAll(MessageListQuery query) {
QueryWrapper<MessageList> qw = createQueryWrapper(query);
return baseMapper.selectList(qw);
}
private QueryWrapper<MessageList> createQueryWrapper(MessageListQuery query) {
QueryWrapper<MessageList> qw = new QueryWrapper<>();
/* if (StringUtils.isNotBlank(query.getMsgSid())) {
qw.eq("ml.msgSid", query.getMsgSid());
}*/
if (StringUtils.isNotBlank(query.getMsgType())) {
qw.like("m.msgType", query.getMsgType());
}
if (StringUtils.isNotBlank(query.getMsgSource())) {
qw.like("m.msgSource", query.getMsgSource());
}
if (StringUtils.isNotBlank(query.getMsgTitle())) {
qw.like("m.msgTitle", query.getMsgTitle());
}
if (StringUtils.isNotBlank(query.getReceiverSid())) {
qw.eq("ml.receiverSid", query.getReceiverSid());
}
/* if (StringUtils.isNotBlank(query.getReceiverName())) {
qw.eq("ml.receiverName", query.getReceiverName());
}
if (StringUtils.isNotBlank(query.getReceiverDeptSid())) {
qw.eq("ml.receiverDeptSid", query.getReceiverDeptSid());
}
if (StringUtils.isNotBlank(query.getReceiverDeptName())) {
qw.eq("ml.receiverDeptName", query.getReceiverDeptName());
}
if (query.getRDelStatus() != null) {
qw.eq("ml.rDelStatus", query.getRDelStatus());
}
if (query.getSDelStatus() != null) {
qw.eq("ml.sDelStatus", query.getSDelStatus());
}*/
if (StringUtils.isNotBlank(query.getSenderName())) {
qw.like("m.senderName", query.getSenderName());
}
String createDateStart = query.getCreateDateStart();
String createDateEnd = query.getCreateDateEnd();
/* if (StringUtils.isNotBlank(createDateEnd)) {
createDateEnd = createDateEnd + (" 23:59:59");
}
if (StringUtils.isNotBlank(createDateStart) && StringUtils.isNotBlank(createDateEnd)) {
qw.between("m.createTime",createDateStart,createDateEnd);
}*/
qw.apply(StringUtils.isNotEmpty(createDateStart), "date_format (m.createTime,'%Y-%m-%d') >= date_format('" + createDateStart + "','%Y-%m-%d')").
apply(StringUtils.isNotEmpty(createDateEnd), "date_format (m.createTime,'%Y-%m-%d') <= date_format('" + createDateEnd + "','%Y-%m-%d')"
);
return qw;
}
public PagerVo<MessageListVo> listPageVo(PagerQuery<MessageListQuery> pq) {
MessageListQuery query = pq.getParams();
QueryWrapper<MessageList> qw = createQueryWrapper(query);
IPage<MessageList> page = PagerUtil.queryToPage(pq);
IPage<MessageListVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<MessageListVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<MessageListVo> listVo() {
return baseMapper.selectListVo();
}
public void saveOrUpdateDto(MessageListDto dto) {
MessageList entity = new MessageList();
dto.fillEntity(entity);
this.saveOrUpdate(entity);
}
public MessageListVo fetchByIdVo(String id) {
MessageList entity = this.fetchById(id);
MessageListVo vo = new MessageListVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
public PagerVo<MessageListJoinMsgVo> noreadListPage(PagerQuery<MessageListQuery> pq,String userSid) {
MessageListQuery query = pq.getParams();
query.setReceiverSid(userSid);
QueryWrapper<MessageList> qw = createQueryWrapper(query);
IPage<MessageList> page = PagerUtil.queryToPage(pq);
IPage<MessageListJoinMsgVo> pagging = baseMapper.noreadListPage(page, qw);
PagerVo<MessageListJoinMsgVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public PagerVo<MessageListJoinMsgVo> readListPage(PagerQuery<MessageListQuery> pq,String userSid) {
MessageListQuery query = pq.getParams();
query.setReceiverSid(userSid);
QueryWrapper<MessageList> qw = createQueryWrapper(query);
IPage<MessageList> page = PagerUtil.queryToPage(pq);
IPage<MessageListJoinMsgVo> pagging = baseMapper.readListPage(page, qw);
PagerVo<MessageListJoinMsgVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public int updateByReceiverSid(String receiverSid) {
return baseMapper.updateByReceiverSid(receiverSid);
}
public int deleteBySids(List<String> sidList) {
int i = 0;
for (String s : sidList) {
i = baseMapper.deleteBySids(s);
}
return i;
}
public int changeRead(List<String> sidList) {
return baseMapper.changeRead(sidList);
}
public int changeUnRead(List<String> sidList) {
return baseMapper.changeUnRead(sidList);
}
/**
* @param pagerQuery 查询条件
* @description: 客户端的消息分页列表
* @return:
* @Author: dimengzhe
* @Date: 2021/11/1 17:26
*/
public IPage<WxMessageListVo> listPage(PagerQuery<WxMessageListQuery> pagerQuery) {
// mybits所用的分页对对象
IPage<WxMessageListQuery> page = PagerUtil.queryToPage(pagerQuery);
// mybits所用的查询条件封装类
QueryWrapper<WxMessageListVo> qw = buildQueryWrapper(pagerQuery.getParams());
return baseMapper.listPage(page, qw);
}
/**
* @param query
* @description: 构造查询条件
* @return:
* @Author: dimengzhe
* @Date: 2021/11/1 17:36
*/
private QueryWrapper<WxMessageListVo> buildQueryWrapper(WxMessageListQuery query) {
QueryWrapper<WxMessageListVo> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getMsgTypeSid())) {
qw.eq("m.msgTypeSid", query.getMsgTypeSid());
}
if (StringUtils.isNotBlank(query.getReceiverSid())) {
qw.eq("ml.receiverSid", query.getReceiverSid());
}
qw.eq("mt.identifier", "0001");
return qw;
}
/**
* @param msgTypeSid 消息类别sid
* @description: 根据消息类别sid查询
* @return:
* @Author: dimengzhe
* @Date: 2021/11/1 16:12
*/
public int selectListCount(String msgTypeSid) {
return baseMapper.selectListCount(msgTypeSid);
}
public MessageListJoinMsgVo fetchByMsgSid(String sid) {
MessageList messageList = this.fetchBySid(sid);
String msgSid = messageList.getMsgSid();
return baseMapper.fetchByMsgSid(msgSid);
}
public Integer fetchByReceiverSid(String receiverSid) {
return baseMapper.fetchByReceiverSid(receiverSid);
}
/**
* 查询未读数量
* @param msgTypeSid
* @param userSid
* @return
*/
public Integer selectUnReadCount(String msgTypeSid, String userSid) {
return baseMapper.selectUnReadCount(msgTypeSid, userSid);
}
/**
* 手机端查询消息主页面
* @param userSid
* @return
*/
public AppMsgMainVo getAppMsgMainList(String userSid) {
AppMsgMainVo vo = new AppMsgMainVo();
List<AppCrossIcon> crossIconList = new ArrayList<>();
List<AppLongsIcon> longIconList = new ArrayList<>();
List<MessageTypeVo> typeList = messageTypeService.selectMsgTypeList("0002");
typeList.forEach(messageTypeVo -> {
// 未读数量
int unReadCount = baseMapper.selectUnReadCount(messageTypeVo.getMsgTypeSid(), userSid);
String num = "";
if (unReadCount != 0) {
num = String.valueOf(unReadCount);
}
if (StringUtils.isNotBlank(messageTypeVo.getCrossIconUrl())) { // 横排消息
AppCrossIcon crossIcon = new AppCrossIcon();
crossIcon.setMsgTypeSid(messageTypeVo.getMsgTypeSid());
crossIcon.setMsgType(messageTypeVo.getMsgType());
crossIcon.setIconUrl(messageTypeVo.getCrossIconUrl());
crossIcon.setNum(num);
crossIconList.add(crossIcon);
} else { // 纵排消息
AppLongsIcon longsIcon = new AppLongsIcon();
longsIcon.setMsgType(messageTypeVo.getMsgType());
longsIcon.setIconUrl(messageTypeVo.getLongIconUrl());
AppLastMsgVo lastMsg = baseMapper.selectLastMsg(userSid, messageTypeVo.getMsgTypeSid());
longsIcon.setMsgTypeSid(messageTypeVo.getMsgTypeSid());
longsIcon.setTitle(lastMsg == null ? "" : lastMsg.getMsgTitle());
longsIcon.setContent(lastMsg == null ? "" : lastMsg.getMsgContent());
longsIcon.setSendTime(lastMsg == null ? "" : lastMsg.getSendTime());
longsIcon.setNum(num);
longIconList.add(longsIcon);
}
});
vo.setCrossIconList(crossIconList);
vo.setLongIconList(longIconList);
int unReadCount = baseMapper.selectUnReadCount("", userSid);
if (unReadCount != 0) {
vo.setMsgTotal("未读消息"+unReadCount+"");
}
return vo;
}
/**
* 手机端查询消息列表
* @param pq
* @return
*/
public PagerVo<AppMessageListVo> getAppMsgListByUserSid(PagerQuery<AppMessageListQuery> pq) {
QueryWrapper<MessageList> qw = new QueryWrapper<>();
qw.eq("ml.receiverSid", pq.getParams().getUserSid());
qw.eq("m.msgTypeSid", pq.getParams().getMsgTypeSid());
IPage<AppMessageListQuery> iPage = PagerUtil.queryToPage(pq);
IPage<AppMessageListVo> page = baseMapper.getAppMsgListByUserSid(iPage, qw);
PagerVo<AppMessageListVo> pagerVo = PagerUtil.pageToVo(page, null);
pagerVo.getRecords().stream().forEach(vo -> {
if (vo.getType().equals("2")) {
AppSubsetVersionVo subsetVersionVo = appSubsetVersionFeign.fetchBySid(vo.getModuleSid()).getData();
vo.setPath(subsetVersionVo.getUpdateUrl());
vo.setModulePluginName(subsetVersionVo.getModulePluginName());
if (StringUtils.isNotBlank(subsetVersionVo.getVersionName())) {
vo.setModuleVersion(Integer.parseInt(subsetVersionVo.getVersionName()));
}
}
if (StringUtils.isBlank(vo.getJson())) {
vo.setJson("{}");
}
});
pagerVo.setMsg("共查询出"+pagerVo.getTotal()+"条消息");
return pagerVo;
}
/**
* 手机端用户根据消息类型批量设为已读
* @param msgTypeSid
* @return
*/
public int updateAppReadByType(String msgTypeSid, String userSid) {
return baseMapper.updateAppReadByType(msgTypeSid, userSid);
}
}

View File

@@ -0,0 +1,38 @@
package com.yxt.messagecenter.biz.messagelist.wx;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.messagelist.wx.WxMessageListFeign;
import com.yxt.messagecenter.api.messagelist.wx.WxMessageListQuery;
import com.yxt.messagecenter.api.messagelist.wx.WxMessageListVo;
import com.yxt.messagecenter.biz.messagelist.MessageListService;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author dimengzhe
* @date 2021/11/1 17:07
* @description
*/
@Api(tags = "客户端消息列表")
@RestController
@RequestMapping("v1/wx/messagelist")
public class WxMessageListRest implements WxMessageListFeign {
@Autowired
private MessageListService messageListService;
@Override
public ResultBean<PagerVo<WxMessageListVo>> listPage(PagerQuery<WxMessageListQuery> pagerQuery) {
ResultBean<PagerVo<WxMessageListVo>> rb = ResultBean.fireFail();
IPage<WxMessageListVo> page = messageListService.listPage(pagerQuery);
PagerVo<WxMessageListVo> pv = new PagerVo<>();
PagerVo<WxMessageListVo> pv1 = PagerUtil.pageToVo(page, pv);
return rb.success().setData(pv1);
}
}

View File

@@ -0,0 +1,40 @@
package com.yxt.messagecenter.biz.messageremindrule;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.yxt.messagecenter.api.messageremindrule.MessageRemindrule;
import com.yxt.messagecenter.api.messageremindrule.MessageRemindruleVo;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageRemindruleMapper.java <br/>
* Class: com.yxt.messagecenter.biz.messageremindrule.MessageRemindruleMapper <br/>
* Description: 提醒规则. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper
public interface MessageRemindruleMapper extends BaseMapper<MessageRemindrule> {
//@Update("update message_remindrule set name=#{msg} where id=#{id}")
//IPage<MessageRemindruleVo> voPage(IPage<MessageRemindrule> page, @Param(Constants.WRAPPER) QueryWrapper<MessageRemindrule> qw);
IPage<MessageRemindruleVo> selectPageVo(IPage<MessageRemindrule> page, @Param(Constants.WRAPPER) Wrapper<MessageRemindrule> qw);
List<MessageRemindruleVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<MessageRemindrule> qw);
@Select("select * from message_remindrule")
List<MessageRemindruleVo> selectListVo();
}

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.messagecenter.biz.messageremindrule.MessageRemindruleMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.messagecenter.api.messageremindrule.MessageRemindruleVo">
SELECT * FROM message_remindrule <where> ${ew.sqlSegment} </where>
</select>
<select id="selectListAllVo" resultType="com.yxt.messagecenter.api.messageremindrule.MessageRemindruleVo">
SELECT * FROM message_remindrule <where> ${ew.sqlSegment} </where>
</select>
</mapper>

View File

@@ -0,0 +1,94 @@
package com.yxt.messagecenter.biz.messageremindrule;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import com.yxt.messagecenter.api.messageremindrule.MessageRemindrule;
import com.yxt.messagecenter.api.messageremindrule.MessageRemindruleQuery;
import com.yxt.messagecenter.api.messageremindrule.MessageRemindruleVo;
import com.yxt.messagecenter.api.messageremindrule.MessageRemindruleDto;
import com.yxt.messagecenter.api.messageremindrule.MessageRemindruleFeign;
/**
* Project: message-center(消息中心) <br/>
* File: MessageRemindruleFeignFallback.java <br/>
* Class: com.yxt.messagecenter.biz.messageremindrule.MessageRemindruleRest <br/>
* Description: 提醒规则. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "提醒规则")
@RestController
@RequestMapping("v1/messageremindrule")
public class MessageRemindruleRest implements MessageRemindruleFeign {
@Autowired
private MessageRemindruleService messageRemindruleService;
@Override
public ResultBean<PagerVo<MessageRemindruleVo>> listPage(@RequestBody PagerQuery<MessageRemindruleQuery> pq){
ResultBean rb = ResultBean.fireFail();
PagerVo<MessageRemindruleVo> pv = messageRemindruleService.listPageVo(pq);
return rb.success().setData(pv);
}
@Override
public ResultBean<List<MessageRemindruleVo>> listAll(@RequestBody MessageRemindruleQuery query){
ResultBean rb = ResultBean.fireFail();
List<MessageRemindruleVo> list = messageRemindruleService.listAllVo(query);
return rb.success().setData(list);
}
@Override
public ResultBean<List<MessageRemindruleVo>> list(){
ResultBean rb = ResultBean.fireFail();
List<MessageRemindruleVo> list = messageRemindruleService.listVo();
return rb.success().setData(list);
}
@Override
public ResultBean save(MessageRemindruleDto dto){
ResultBean rb = ResultBean.fireFail();
messageRemindruleService.saveOrUpdateDto(dto);
return rb.success();
}
@Override
public ResultBean update(MessageRemindruleDto dto,String sid){
ResultBean rb = ResultBean.fireFail();
messageRemindruleService.updateBySid(dto.toMap(),sid);
return rb.success();
}
@Override
public ResultBean del(String ids){
ResultBean rb = ResultBean.fireFail();
messageRemindruleService.delByIds(ids);
return rb.success();
}
@Override
public ResultBean<MessageRemindruleVo> fetch(String id){
ResultBean rb = ResultBean.fireFail();
MessageRemindruleVo vo = messageRemindruleService.fetchByIdVo(id);
return rb.success().setData(vo);
}
@Override
public ResultBean<MessageRemindrule> fetchBySid(String sid){
ResultBean rb = ResultBean.fireFail();
MessageRemindrule vo = messageRemindruleService.fetchBySid(sid);
return rb.success().setData(vo);
}
}

View File

@@ -0,0 +1,99 @@
package com.yxt.messagecenter.biz.messageremindrule;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.commons.lang3.StringUtils;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.messageremindrule.MessageRemindrule;
import com.yxt.messagecenter.api.messageremindrule.MessageRemindruleQuery;
import com.yxt.messagecenter.api.messageremindrule.MessageRemindruleVo;
import com.yxt.messagecenter.api.messageremindrule.MessageRemindruleDto;
import com.yxt.messagecenter.api.messageremindrule.MessageRemindruleFeign;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageRemindruleService.java <br/>
* Class: com.yxt.messagecenter.biz.messageremindrule.MessageRemindruleService <br/>
* Description: 提醒规则 业务逻辑. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class MessageRemindruleService extends MybatisBaseService<MessageRemindruleMapper, MessageRemindrule> {
public PagerVo<MessageRemindrule> listPage(PagerQuery<MessageRemindruleQuery> pq) {
MessageRemindruleQuery query = pq.getParams();
QueryWrapper<MessageRemindrule> qw = createQueryWrapper(query);
IPage<MessageRemindrule> page = PagerUtil.queryToPage(pq);
IPage<MessageRemindrule> pagging = baseMapper.selectPage(page, qw);
PagerVo<MessageRemindrule> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<MessageRemindrule> listAll(MessageRemindruleQuery query) {
QueryWrapper<MessageRemindrule> qw = createQueryWrapper(query);
return baseMapper.selectList(qw);
}
private QueryWrapper<MessageRemindrule> createQueryWrapper(MessageRemindruleQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<MessageRemindrule> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getRuleCode())) {
qw.eq("ruleCode", query.getRuleCode());
}
if (query.getRules() != null) {
qw.eq("rules", query.getRules());
}
if (query.getRemindWay() != null) {
qw.eq("remindWay", query.getRemindWay());
}
return qw;
}
public PagerVo<MessageRemindruleVo> listPageVo(PagerQuery<MessageRemindruleQuery> pq) {
MessageRemindruleQuery query = pq.getParams();
QueryWrapper<MessageRemindrule> qw = createQueryWrapper(query);
IPage<MessageRemindrule> page = PagerUtil.queryToPage(pq);
IPage<MessageRemindruleVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<MessageRemindruleVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<MessageRemindruleVo> listAllVo(MessageRemindruleQuery query) {
QueryWrapper<MessageRemindrule> qw = createQueryWrapper(query);
return baseMapper.selectListAllVo(qw);
}
public List<MessageRemindruleVo> listVo() {
return baseMapper.selectListVo();
}
public void saveOrUpdateDto(MessageRemindruleDto dto){
MessageRemindrule entity = new MessageRemindrule();
dto.fillEntity(entity);
this.saveOrUpdate(entity);
}
public MessageRemindruleVo fetchByIdVo(String id){
MessageRemindrule entity = this.fetchById(id);
MessageRemindruleVo vo = new MessageRemindruleVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
}

View File

@@ -0,0 +1,40 @@
package com.yxt.messagecenter.biz.messagereply;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.yxt.messagecenter.api.messagereply.MessageReply;
import com.yxt.messagecenter.api.messagereply.MessageReplyVo;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageReplyMapper.java <br/>
* Class: com.yxt.messagecenter.biz.messagereply.MessageReplyMapper <br/>
* Description: 消息回复. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper
public interface MessageReplyMapper extends BaseMapper<MessageReply> {
//@Update("update message_reply set name=#{msg} where id=#{id}")
//IPage<MessageReplyVo> voPage(IPage<MessageReply> page, @Param(Constants.WRAPPER) QueryWrapper<MessageReply> qw);
IPage<MessageReplyVo> selectPageVo(IPage<MessageReply> page, @Param(Constants.WRAPPER) Wrapper<MessageReply> qw);
List<MessageReplyVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<MessageReply> qw);
@Select("select * from message_reply")
List<MessageReplyVo> selectListVo();
}

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.messagecenter.biz.messagereply.MessageReplyMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.messagecenter.api.messagereply.MessageReplyVo">
SELECT * FROM message_reply <where> ${ew.sqlSegment} </where>
</select>
<select id="selectListAllVo" resultType="com.yxt.messagecenter.api.messagereply.MessageReplyVo">
SELECT * FROM message_reply <where> ${ew.sqlSegment} </where>
</select>
</mapper>

View File

@@ -0,0 +1,94 @@
package com.yxt.messagecenter.biz.messagereply;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import com.yxt.messagecenter.api.messagereply.MessageReply;
import com.yxt.messagecenter.api.messagereply.MessageReplyQuery;
import com.yxt.messagecenter.api.messagereply.MessageReplyVo;
import com.yxt.messagecenter.api.messagereply.MessageReplyDto;
import com.yxt.messagecenter.api.messagereply.MessageReplyFeign;
/**
* Project: message-center(消息中心) <br/>
* File: MessageReplyFeignFallback.java <br/>
* Class: com.yxt.messagecenter.biz.messagereply.MessageReplyRest <br/>
* Description: 消息回复. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "消息回复")
@RestController
@RequestMapping("v1/messagereply")
public class MessageReplyRest implements MessageReplyFeign {
@Autowired
private MessageReplyService messageReplyService;
@Override
public ResultBean<PagerVo<MessageReplyVo>> listPage(@RequestBody PagerQuery<MessageReplyQuery> pq){
ResultBean rb = ResultBean.fireFail();
PagerVo<MessageReplyVo> pv = messageReplyService.listPageVo(pq);
return rb.success().setData(pv);
}
@Override
public ResultBean<List<MessageReplyVo>> listAll(@RequestBody MessageReplyQuery query){
ResultBean rb = ResultBean.fireFail();
List<MessageReplyVo> list = messageReplyService.listAllVo(query);
return rb.success().setData(list);
}
@Override
public ResultBean<List<MessageReplyVo>> list(){
ResultBean rb = ResultBean.fireFail();
List<MessageReplyVo> list = messageReplyService.listVo();
return rb.success().setData(list);
}
@Override
public ResultBean save(MessageReplyDto dto){
ResultBean rb = ResultBean.fireFail();
messageReplyService.saveOrUpdateDto(dto);
return rb.success();
}
@Override
public ResultBean update(MessageReplyDto dto,String sid){
ResultBean rb = ResultBean.fireFail();
messageReplyService.updateBySid(dto.toMap(),sid);
return rb.success();
}
@Override
public ResultBean del(String ids){
ResultBean rb = ResultBean.fireFail();
messageReplyService.delByIds(ids);
return rb.success();
}
@Override
public ResultBean<MessageReplyVo> fetch(String id){
ResultBean rb = ResultBean.fireFail();
MessageReplyVo vo = messageReplyService.fetchByIdVo(id);
return rb.success().setData(vo);
}
@Override
public ResultBean<MessageReply> fetchBySid(String sid){
ResultBean rb = ResultBean.fireFail();
MessageReply vo = messageReplyService.fetchBySid(sid);
return rb.success().setData(vo);
}
}

View File

@@ -0,0 +1,103 @@
package com.yxt.messagecenter.biz.messagereply;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.commons.lang3.StringUtils;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.messagereply.MessageReply;
import com.yxt.messagecenter.api.messagereply.MessageReplyQuery;
import com.yxt.messagecenter.api.messagereply.MessageReplyVo;
import com.yxt.messagecenter.api.messagereply.MessageReplyDto;
import com.yxt.messagecenter.api.messagereply.MessageReplyFeign;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageReplyService.java <br/>
* Class: com.yxt.messagecenter.biz.messagereply.MessageReplyService <br/>
* Description: 消息回复 业务逻辑. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class MessageReplyService extends MybatisBaseService<MessageReplyMapper, MessageReply> {
public PagerVo<MessageReply> listPage(PagerQuery<MessageReplyQuery> pq) {
MessageReplyQuery query = pq.getParams();
QueryWrapper<MessageReply> qw = createQueryWrapper(query);
IPage<MessageReply> page = PagerUtil.queryToPage(pq);
IPage<MessageReply> pagging = baseMapper.selectPage(page, qw);
PagerVo<MessageReply> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<MessageReply> listAll(MessageReplyQuery query) {
QueryWrapper<MessageReply> qw = createQueryWrapper(query);
return baseMapper.selectList(qw);
}
private QueryWrapper<MessageReply> createQueryWrapper(MessageReplyQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<MessageReply> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getMsgSid())) {
qw.eq("msgSid", query.getMsgSid());
}
if (StringUtils.isNotBlank(query.getReplyConent())) {
qw.eq("replyConent", query.getReplyConent());
}
if (StringUtils.isNotBlank(query.getReplyPersonName())) {
qw.eq("replyPersonName", query.getReplyPersonName());
}
if (StringUtils.isNotBlank(query.getReplyUserSid())) {
qw.eq("replyUserSid", query.getReplyUserSid());
}
return qw;
}
public PagerVo<MessageReplyVo> listPageVo(PagerQuery<MessageReplyQuery> pq) {
MessageReplyQuery query = pq.getParams();
QueryWrapper<MessageReply> qw = createQueryWrapper(query);
IPage<MessageReply> page = PagerUtil.queryToPage(pq);
IPage<MessageReplyVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<MessageReplyVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<MessageReplyVo> listAllVo(MessageReplyQuery query) {
QueryWrapper<MessageReply> qw = createQueryWrapper(query);
return baseMapper.selectListAllVo(qw);
}
public List<MessageReplyVo> listVo() {
return baseMapper.selectListVo();
}
public void saveOrUpdateDto(MessageReplyDto dto){
MessageReply entity = new MessageReply();
dto.fillEntity(entity);
this.saveOrUpdate(entity);
}
public MessageReplyVo fetchByIdVo(String id){
MessageReply entity = this.fetchById(id);
MessageReplyVo vo = new MessageReplyVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
}

View File

@@ -0,0 +1,33 @@
package com.yxt.messagecenter.biz.messagetype;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.messagecenter.api.messagetype.MessageType;
import com.yxt.messagecenter.api.messagetype.MessageTypeVo;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageTypeMapper.java <br/>
* Class: com.yxt.messagecenter.biz.messagetype.MessageTypeMapper <br/>
* Description: 消息类别. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-11-01 15:25:56 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper
public interface MessageTypeMapper extends BaseMapper<MessageType> {
/**
* @param identifier 消息标识0001为小程序、0002为app
* @description: 获取消息类别的列表
* @return:
* @Author: dimengzhe
* @Date: 2021/11/1 15:45
*/
List<MessageTypeVo> selectMsgTypeList(String identifier);
}

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.messagecenter.biz.messagetype.MessageTypeMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<!--获取消息类别的列表-->
<select id="selectMsgTypeList" resultType="com.yxt.messagecenter.api.messagetype.MessageTypeVo">
SELECT mt.sid msgTypeSid,<!--消息类别sid-->
mt.msgType,
mt.crossIconUrl,<!--横排图标地址-->
mt.longIconUrl,<!--纵排图标地址-->
mt.sort<!--排序-->
FROM message_type mt
<where>
<if test="identifier != null and identifier !=''">
identifier=#{identifier}
</if>
</where>
</select>
</mapper>

View File

@@ -0,0 +1,72 @@
package com.yxt.messagecenter.biz.messagetype;
import com.yxt.common.core.result.ResultBean;
import com.yxt.messagecenter.api.messagetype.MessageTypeDto;
import com.yxt.messagecenter.api.messagetype.MessageTypeFeign;
import com.yxt.messagecenter.api.messagetype.MessageTypeVo;
import com.yxt.messagecenter.biz.messagelist.MessageListService;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageTypeFeignFallback.java <br/>
* Class: com.yxt.messagecenter.biz.messagetype.MessageTypeRest <br/>
* Description: 消息类别. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-11-01 15:25:56 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "消息类别")
@RestController
@RequestMapping("v1/messagetype")
public class MessageTypeRest implements MessageTypeFeign {
@Autowired
private MessageTypeService messageTypeService;
@Autowired
private MessageListService messageListService;
@Override
public ResultBean save(MessageTypeDto dto) {
ResultBean rb = ResultBean.fireFail();
messageTypeService.saveOrUpdateDto(dto);
return rb.success();
}
@Override
public ResultBean update(MessageTypeDto dto, String sid) {
ResultBean rb = ResultBean.fireFail();
messageTypeService.updateBySid(dto.toMap(), sid);
return rb.success();
}
@Override
public ResultBean del(String ids) {
ResultBean rb = ResultBean.fireFail();
messageTypeService.delByIds(ids);
return rb.success();
}
@Override
public ResultBean<List<MessageTypeVo>> selectList() {
String identifier = "0001";
List<MessageTypeVo> messageWxTypeVoList = messageTypeService.selectMsgTypeList(identifier);
return new ResultBean<List<MessageTypeVo>>().success().setData(messageWxTypeVoList);
}
@Override
public ResultBean<List<MessageTypeVo>> selectAppMsgTypeList(String identifier) {
List<MessageTypeVo> messageWxTypeVoList = messageTypeService.selectMsgTypeList(identifier);
return new ResultBean<List<MessageTypeVo>>().success().setData(messageWxTypeVoList);
}
}

View File

@@ -0,0 +1,69 @@
package com.yxt.messagecenter.biz.messagetype;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.messagecenter.api.messagetype.MessageType;
import com.yxt.messagecenter.api.messagetype.MessageTypeDto;
import com.yxt.messagecenter.api.messagetype.MessageTypeVo;
import com.yxt.messagecenter.biz.messagelist.MessageListService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageTypeService.java <br/>
* Class: com.yxt.messagecenter.biz.messagetype.MessageTypeService <br/>
* Description: 消息类别 业务逻辑. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-11-01 15:25:56 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class MessageTypeService extends MybatisBaseService<MessageTypeMapper, MessageType> {
@Autowired
private MessageListService messageListService;
public void saveOrUpdateDto(MessageTypeDto dto) {
MessageType entity = new MessageType();
dto.fillEntity(entity);
this.saveOrUpdate(entity);
}
public MessageTypeVo fetchByIdVo(String id) {
MessageType entity = this.fetchById(id);
MessageTypeVo vo = new MessageTypeVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
/**
* @param identifier 消息标识0001为小程序、0002为app
* @description: 获取消息类别的列表
* @return:
* @Author: dimengzhe
* @Date: 2021/11/1 15:46
*/
public List<MessageTypeVo> selectMsgTypeList(String identifier) {
List<MessageTypeVo> messageWxTypeVoList = baseMapper.selectMsgTypeList(identifier);
for (MessageTypeVo msgType : messageWxTypeVoList) {
boolean isHave = false;
String msgTypeSid = msgType.getMsgTypeSid();
//查询该消息类别下是否包含未读的消息
int count = messageListService.selectListCount(msgTypeSid);
if (count > 0) {
isHave = true;
msgType.setIsHave(isHave);
}else{
msgType.setIsHave(isHave);
}
}
return messageWxTypeVoList;
}
}

View File

@@ -0,0 +1,70 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.messagecenter.conf;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
/**
* Project: jlcyry <br/>
* File: Swagger2Config.java <br/>
* Class: com.yxt.jlzx.jlcyry.conf.Swagger2Config <br/>
* Description: <描述类的功能>. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2020/8/25 23:27 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Configuration
@EnableSwagger2
@EnableKnife4j
public class Swagger2Config {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo()).select()
.apis(RequestHandlerSelectors.basePackage("com.yxt"))
.paths(PathSelectors.any()).build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder().title("消息中心").description("消息中心").version("1.0")
.build();
}
}

View File

@@ -0,0 +1,34 @@
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/message-center?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&serverTimezone=GMT%2B8&failOverReadOnly=false
username: root
password: root
redis:
database: 2 # Redis数据库索引默认为0
host: 127.0.0.1
jedis:
pool:
max-active: -1 #连接池最大连接数(使用负值表示没有限制)
max-idle: 8 #连接池中的最大空闲连接
max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制)
min-idle: 0 # 连接池中的最小空闲连接
password:
port: 6379
timeout: 0 # 连接超时时间(毫秒)
nacos:
discovery:
server-addr: 127.0.0.1:8848
# 日志配置
logging:
level:
com.yxt: debug
org.mybatis: debug
org.springframework: warn
image:
upload:
path: D:\\anrui\\upload\\
url:
prefix: http://127.0.0.1:8111/upload/

View File

@@ -0,0 +1,29 @@
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://120.46.131.15:3306/message_center?serverTimezone=GMT%2B8&autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&nullCatalogMeansCurrent=true
username: root
password: anrui_@root
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
redis:
database: 3 # Redis数据库索引默认为0
host: 127.0.0.1
jedis:
pool:
max-active: -1 #连接池最大连接数(使用负值表示没有限制)
max-idle: 8 #连接池中的最大空闲连接
max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制)
min-idle: 0 # 连接池中的最小空闲连接
password: 123456
port: 6379
timeout: 0 # 连接超时时间(毫秒)
image:
upload:
path: D:\anrui\upload\
url:
prefix: http://120.46.131.15:8111/upload/

View File

@@ -0,0 +1,13 @@
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/message-center?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&serverTimezone=GMT%2B8&failOverReadOnly=false
username: root
password: root
# 日志配置
logging:
level:
com.yxt: debug
org.mybatis: debug
org.springframework: warn

View File

@@ -0,0 +1,48 @@
spring:
application:
name: message-center
profiles:
active: pro
# 资源信息
messages:
# 国际化资源文件路径
basename: i18n/messages
servlet:
multipart:
max-file-size: 50MB
max-request-size: 100MB
output:
ansi:
enabled: ALWAYS
server:
port: 8107
#mybatis
mybatis-plus:
mapper-locations: classpath*:**Mapper.xml
global-config:
refresh: true
db-config:
id-type: Auto
db-type: mysql
configuration:
map-underscore-to-camel-case: false
cache-enabled: true
call-setters-on-nulls: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
#hystrix的超时时间
hystrix:
command:
default:
execution:
timeout:
enabled: true
isolation:
thread:
timeoutInMilliseconds: 30000
#ribbon的超时时间
ribbon:
ReadTimeout: 30000
ConnectTimeout: 30000

View File

@@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="log.base" value="logs/messagecenter" />
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!--格式化输出:%d表示日期%thread表示线程名%-5level级别从左显示5个字符宽度%msg日志消息%n是换行符
|%blue(%thread) 线程 如 DiscoveryClient-CacheRefreshExecutor-0-->
<!--<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>-->
<pattern>%yellow(%date{yyyy-MM-dd HH:mm:ss}) |%highlight(%-5level) |%green(%logger:%line) |%blue(%msg%n)
</pattern>
<!--<charset>UTF-8</charset> -->
</encoder>
</appender>
<!-- 彩色日志 -->
<!-- 彩色日志依赖的渲染类 -->
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
<conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
<conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
<!-- 彩色日志格式 -->
<property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
<appender name="FILEOUT"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.base}.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.base}.%d{yyyyMMdd}.%i.log.zip
</fileNamePattern>
<!-- 当文件大小超过10MB时触发滚动 -->
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>1MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<!--<pattern>%date [%thread] %-5level %logger{35} - %msg%n</pattern>-->
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}
-%msg%n</Pattern>
<!--<charset>UTF-8</charset> -->
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILEOUT" />
</root>
</configuration>