美文网首页
SpringMVC+AmaranJS实现站内信功能(一)

SpringMVC+AmaranJS实现站内信功能(一)

作者: 大数据Zone | 来源:发表于2018-12-07 16:36 被阅读22次

一、需求描述:

假设用户需要申请加入一个team,在点击申请加入后向team的创建者发送一条消息。这时候会在用户的右下角有弹窗提示操作是否成功。(当然,我这里为了演示,还没有把如果已经在团队里则拒绝申请的逻辑加进去,后面真正做项目的时候加)流程如下面这些图:

1.点击加入团队按钮

2.输入需要加入的团队名字

3.输入Team01,点击搜索


4.点击申请加入,右下角根据服务器端执行状态弹出提示。然后5秒后消失,比如第一次申请时,成功


5.第二次申请时,失败。


二、实现

2.1 数据库

简单的一个信息表,四个字段

fromusername:发消息的人
tousername:接收消息的人
ishandle:消息是否处理
msgcontent:消息内容

2.2 前端Ajax

前端发起Post请求,根据服务端返回过来的JSON数据,进行相应的操作,发送消息成功或失败都使用 $.amaran()进行右下角的提示,只不过提示的内容是根据服务端的数据显示的。

有关amaranJS的使用参考官方文档

    //为加入团队对话框生成的团队搜索结果中的 申请加入按钮添加点击事件
    $(document).on("click","#btn_shenqingjiaru",function(){
        var relativepath = $("#ctxValue").attr("value");
        $.post(
            relativepath + 'applyJoinTeam.do',
            {
                tousername: $("td[value='td_teamCreatorName']").text(),
                msgcontent: "申请加入"
            },
            function(data,status){
                if(data.code=="success"){
                    $.amaran({
                        content:{
                            title:'通知',
                            message:'申请成功',
                            info:'',
                            icon:'fa fa-check-square'
                        },
                        theme:'awesome ok'
                    });
                }else if(data.code="failed"){
                    $.amaran({
                        content:{
                            title:'通知',
                            //message:'申请成功',
                            message: data.msg,
                            info:'',
                            icon:'fa fa-warning'
                        },
                        theme:'awesome error'
                    });
                }
            }
        );
        
    });

2.3 后端controller的处理

实体类 JoinTeamMsg, 省略Get Set方法

package cn.cloud.kysq.team.entity;

/**
 * 申请加入团队的消息实体类
 * @author zhb
 */
public class JoinTeamMsg {

    private String fromusername; // 发消息的人
    private String tousername; // 收消息的人
    private Integer ishandle; // 是否处理了,未处理0,处理1。  默认值为0未处理
    private String msgcontent; // 消息内容
    public JoinTeamMsg() {
    }
    // 对应用户申请加入团队的请求
    @ResponseBody
    @RequestMapping(value = "/applyJoinTeam.do", method = RequestMethod.POST)
    public Map<String, Object> applyJoinTeam(HttpServletRequest request, JoinTeamMsg joinTeamMsg) {
        Map<String, Object> map = new HashMap<String, Object>();
        String fromusername = ((User)request.getSession().getAttribute("user")).getUsername();
        boolean issuccess = teamService.applyjoinTeam(fromusername, joinTeamMsg.getTousername(), joinTeamMsg.getMsgcontent());
        if (issuccess) {
            map.put("code", "success");
            map.put("msg", "申请加入成功");
        }else {
            map.put("code", "failed");
            map.put("msg", "申请加入失败,网络错误或不能重复申请");
        }
        return map;
    }

后序还需要在team创建者的浏览器弹出消息提示。做完再记录。

相关文章

  • SpringMVC+AmaranJS实现站内信功能(一)

    一、需求描述: 假设用户需要申请加入一个team,在点击申请加入后向team的创建者发送一条消息。这时候会在用户的...

  • 站内信设计方案

    一、背景站内信的设计基调 二、需求描述 三、系统设计功能设计 四、系统流程发送站内信获取站内信列表获取未读站内信数...

  • 面试官问有几种实现web实时消息推送的方案,我一口气说了7种

    我有一个朋友~ 做了一个小破站,现在要实现一个站内信web消息推送的功能,对,就是下图这个小红点,一个很常用的功能...

  • 消息通知—站内信消息推送

    上一篇《消息通知推送》中总结了消息通知推送的几种方式,这次就来聊聊产品中站内信消息推送渠道的功能建设。 同样,站内...

  • 如何在本地搭建属于你自己的网站?

    大家都知道在线上搭建一个网站需要: 域名:用来访问的地址空间:用来存放网站内容的地方网站程序:实现网站内容、功能的...

  • 搜索技术 Solr 入门详解

    一、介绍 企业站内搜索技术选型 在一些大型门户网站、电子商务网站等都需要站内搜索功能,使用传统的数据库查询方式实现...

  • D25 人人谢幕?

    sayings:近日,人人网向用户弹出消息称,将下线站内信功能,过往信息也将被清空。对于网站基础功能的关闭,很快有...

  • 站内信

    从站内信接触对象(用户和企业)和传达形式来看(点对点,或点对面),有以下几种价值: 企业、平台商户定点推送营销广告...

  • 站内信

    https://blog.csdn.net/li_xue_zhao/article/details/80583693

  • 关于转发功能的思考

    每天多问自己几个为什么,就会发现进入知识盲区了。。。 一、定义问题 1.转发功能的类型 转发功能包括站内转发、站内...

网友评论

      本文标题:SpringMVC+AmaranJS实现站内信功能(一)

      本文链接:https://www.haomeiwen.com/subject/bznthqtx.html