关于批量选择新增成员到群组列表的实现方法。

原创 2015年11月19日 15:26:36

            此功能还是基于myeclipse+tomcat+oracle来实现的,框架还是:springmvc+mybatis持久数据。

如下,我会在贴代码的同时,作一些简单的说明(不贴代码的程序员都是耍流氓偷笑):

(1)Controller:

/**
     * 新增成员
     * @param request
     * @return
     */
    @RequestMapping("/addGroupPeer")
    @ResponseBody
    public Object addGroupPeer(HttpServletRequest request){
        Map<String, String> param = super.getParamValues(request);
        param.put("gid",request.getParameter("gid"));
        List<String> errorList = groupService.addGroupPeer(param);
        return errorList;
    }

备注:errorList是新增时的错误信息回调到前台json数据,展示给用户,下面先把前台ajax的部分贴出来:

(2)jsp

$.ajax({
                       type: "POST",
                       url: $("#formId").attr("action"),
                       data: {gid:gid,uids:uids,admins:admins},
                       dataType: "JSON",
                       error: function(){alert("服务器出错!");},
                       success: function(data){
                               if(data == ""){
                                parent.showTip('保存成功!');
                                parent.closeDialogPeer(currentPage);
                               }else{
                                   parent.showTipPeer(data+',保存失败!');
                               }
                       }
                });

备注:data就是后台errorList传过来的json数据,直接以弹框的样式展示出来,此处弹框用到的是:artdialog 6,有兴趣可以研究下。

(3)serviceImpl

/**
     * 新增成员
     */
    @Transactional("txManager_1")
    @Override
    public List<String> addGroupPeer(Map<String, String> param) {
        List<String> errorList = new ArrayList<String>();
        
        String gid = param.get("gid")==null? "": param.get("gid");
        String uids = param.get("uids")==null? "": param.get("uids");
        String admins = param.get("admins")==null? "": param.get("admins");
        String[] uidsArray = uids.split(",");
        List<Map<String, String>> paramList = new ArrayList<Map<String, String>>();
        int len = uidsArray.length;
        StringBuffer errorInfo = new StringBuffer();// 错误信息
        Map<String, String> tempPeer = null;// 数据临时存放成员Map
                for(int i=0;i<len;i++ ){
                    tempPeer = new HashMap<String,String>();
                    tempPeer.put("gid", gid);
                    tempPeer.put("userid", uidsArray[i]);
                    if (admins.contains(uidsArray[i])) {
                        tempPeer.put("right", "1");
                    }else{
                        tempPeer.put("right", "0");
                    }
                    paramList.add(tempPeer);// 添加记录到List
                }
                
                if (paramList.size() > 0) {
                    // 查询是否已存在成员
                    List<Map<String, String>> existList = groupMapper.selectExitUserid(paramList);
                    for (Map<String, String> m : existList) {
                        for (Iterator ite = paramList.iterator(); ite.hasNext();) {
                            Map<String, String> temp = (Map<String, String>) ite.next();
                            if (m.get("USERID") != null && m.get("USERID").equals(temp.get("userid"))) {
                                errorInfo.append("成员").append(temp.get("userid")).append("已存在");
                                errorList.add(errorInfo.toString());
                                errorInfo.setLength(0);// 清空错误信息
                                ite.remove();
                            }
                        }
                    }
                    if (errorList.size()==0) {
                        //新增成员
                        groupMapper.addGroupPeer(paramList);
                    }
                }
        return errorList;
    }

备注:此处用到了事务控制,当errorList为null时,直接跳出addGroupPeer方法,将错误的errorList信息反馈给用户。

(4)mapper.xml

<!-- 查询已存在的成员 -->
    <select id="selectExitUserid" parameterType="List" resultType="Map">
        select userid from tp_im_group_peer where userid in
        <foreach collection="list" item="item" index="idx" open="(" separator="," close=")">
            #{item.userid,jdbcType=VARCHAR}
        </foreach>
        and    gid in
        <foreach collection="list" item="item" index="idx" open="(" separator="," close=")">
            #{item.gid,jdbcType=VARCHAR}
        </foreach>
    </select>

备注:此处用到了foreach标签,之前博客有介绍,此处不再阐述了,需要注意的几点,list是service里面查询出来的existList集合,遍历时where后面的条件

一定要带上item(item.userid),这个写法要感谢胡某某,让我没掉进坑。

好了,这篇文章就到这了,下次要去写篇Go的,让胡某某插不上话,呵呵!




XMPP系列(七)---获取群组列表

上一篇介绍了如何创建群组,这一篇就介绍一下,如何获取自己的群组列表。在上一篇有提到,如果我们创建的群组是公共的群组,那么获取自己的群组列表时,会获取到自己的群组列表和那些公共的群组。而实际做社交的应用...
  • u011619283
  • u011619283
  • 2016年09月07日 15:33
  • 1631

JavaScript类与对象,动态添加成员

js3.html                       var obj=new Array();       obj.id='001';       obj.name="李...
  • pangqiandou
  • pangqiandou
  • 2016年10月23日 18:19
  • 272

集成融云Android SDK实现在群聊/讨论组中@人的功能(一)

集成融云Android SDK实现在群聊/讨论组中@人的功能可以确定的是融云SDK本身不提供@的功能,需要自定义实现。 在实现这个功能时,基本模仿微信的做法: - 在列表中显示有人@了你 - 通...
  • tongnuxie
  • tongnuxie
  • 2016年04月26日 17:42
  • 1990

Androidの联系人群组Group操作示例

Androidの联系人群组Group操作示例 1. 添加群组group // create a group ContentValues values = new ContentValues(); va...
  • xiabing082
  • xiabing082
  • 2015年03月05日 16:33
  • 2023

jsp页面中批量存储和批量更新(虽然不难但是经常遇到!!)

jsp页面和action中接收代码!!!感觉其中主要问题在于对varstatus属性的理解,用于区别各行传过去的属性值!! http://my.oschina.net/xsh1208/blog/179...
  • xiantanglingfeng
  • xiantanglingfeng
  • 2015年08月14日 14:36
  • 157

查询出Exchange Server的通讯组,并将通讯组成员输出到本地的文本文件中!

最近客户有一个需求,希望查询所有通讯组的成员,这个使用PS 来做的话会比较简单,怎么做?代码如下:此POWERSHELL 在exchange 2010 执行通过!param($temppath="c:...
  • fogyisland2000
  • fogyisland2000
  • 2014年07月27日 18:25
  • 4088

页面批量新增

批量新增功能
  • pdy826531689
  • pdy826531689
  • 2017年11月29日 14:57
  • 71

Android 内置群组,联系人

这样一个需求,手机第一次启动的时候,需要内置一个群组,并且里面有给定的联系人信息,本来打算写双进程守护的,结果昨天接到一个这样的任务,就先把它做了,发现里面有些操作数据库的东西还是值得看一下。首先接到...
  • asd1031
  • asd1031
  • 2016年08月25日 15:10
  • 1108

ios环信-由自定义列表获取群组聊天窗体

第 1 步:集成环信SDK方式一: 推荐使用Cocoapods集成环信SDK。Cocoapods提供了一个简单的依赖管理系统,避免手动导入产生的错误(首先需要确认已经安装了Cocoapods)。 ...
  • Fantasy_Jun
  • Fantasy_Jun
  • 2017年07月03日 12:37
  • 499

Servlet+JSP实现人员新增

什么是mvc    Controller(**Servlet)把数据封装成Model发给View显示 Model (Person)用户输入放到Model中传给Controller View(jsp)只...
  • junjialuo
  • junjialuo
  • 2016年08月10日 13:17
  • 910
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于批量选择新增成员到群组列表的实现方法。
举报原因:
原因补充:

(最多只允许输入30个字)