文档章节

Play Framework 1.2.3 (用户导入支持excel)

gavin
 gavin
发布于 2015/07/29 14:13
字数 635
阅读 23
收藏 0

public static void importMembers(ObjectId id,String msg){

render(id,msg);

}

public static void generateMembers(File file,ObjectId id) throws Exception{

if(session.get("companyid") == null)

    login();

String msg = "";

Group group = Group.findById(id);

Map<String,Member> members = group.members;

if(members==null){

members = new HashMap<String, Member>();

}

long updatedtime = System.currentTimeMillis();

if(file == null){

msg = "请选择所要上传的文件";

importMembers(id,msg);

}

String fileName = file.getName();

//String serverPath = Play.configuration.getProperty("fileupload.path", "attachments");

if(!file.isFile()){

msg= "不是文件";

importMembers(id,msg);

}else {

int totalrows =0;

int totalimported=0;

int totalexisted=0;

int totaltmp = 0;

List<BasicDBObject> list = new ArrayList<BasicDBObject>();

List<String> uuids = new ArrayList<String>();

FileInputStream is = new FileInputStream(file);  


       HSSFWorkbook wb = new HSSFWorkbook(is);             

       HSSFSheet childSheet = wb.getSheetAt(0);  

       int rowNum = childSheet.getLastRowNum();  

       

String line = null;

for(int jj = 0; jj < rowNum + 1; jj++){

totalrows++;

 if(totalrows == 1)//skip first row

  continue;

 HSSFRow row = childSheet.getRow(jj);  

 String cols[] = new String[14]; 

 int ccol = row.getLastCellNum();                    

                  for(int k = 0;k < ccol; k++){  

                 cols[k]= row.getCell((short) k).getStringCellValue().trim();

                  }  

   int i = 0;

String name = "";

if(ccol >= 1)

name = cols[i++].trim();

String position = "";

if(ccol >= 2)

position = cols[i++].trim();

String logo = "";

if(ccol >= 3 )

logo = cols[i++].trim();

String mobile = ""; 

if(ccol >= 4 )

mobile = cols[i++].trim();

String tel = "";

if(ccol >= 5 )

tel = cols[i++].trim();

String email = "";

if(ccol >= 6 )

email = cols[i++].trim();

String website = "";

if(ccol >= 7 )

website = cols[i++].trim();

String address = "";

if(ccol >= 8 )

address = cols[i++].trim();

String company = "";

if(ccol >= 9 )

company = cols[i++].trim();

String department = "";

if(ccol >= 10)

  department = cols[i++].trim();

String industry = "";

if(ccol >= 11)

industry=cols[i++].trim();

String description = "";

if(ccol >= 12)

description = cols[i++].trim();

String fax = "";

if(ccol >= 13)

 fax=cols[i++].trim();

String zipcode = "";

if(ccol >= 14){ 

zipcode=cols[i++].trim();

if(name == null)

continue;

if(mobile == null)

continue;

if(mobile == null|| "".equals(mobile))

   continue;

name.replaceAll(" ", "");

mobile = CommonUtils.formatPhoneNo(mobile);

address = address.replace(" ", "");

   if("".equals(mobile))

   continue;

   List<User> users = User.q().filter("mobile", mobile).filter("innerversion", 4).asList();

   int count =0;

   

   boolean isrealjoined = false;

List<String> needjoinuids = new ArrayList<String>();

   

   for(int f = 0; f < users.size(); f++){

   count++;

   User user = users.get(f);

   if(user.istmp != null){

   //privacy

   Map<String ,Integer> map = new HashMap<String ,Integer>();

   Contact contact = new Contact();

   user.contact = contact;

   map.put("p1", 1);

   map.put("p2", 0);

   map.put("p3", 0);

   map.put("p4", 0);

   map.put("p5", 0);

   map.put("p6", 0);

   user.contact.privacy = map;

   

   user = CommonUtils.setContact(user, company, name, mobile, updatedtime, tel, fax, website, email, department, industry, position, description, address, zipcode);

user.save();

totaltmp++;

   }

   if(user.groups != null && user.groups.get("groupid") != null){

   //已经加入到组中了

   totalexisted++;

   if(user.istmp == null)

   isrealjoined = true;

   }else

   needjoinuids.add(user.getId().toString());

   

   }

   if(isrealjoined==false && needjoinuids.size()>0){

uuids.addAll(needjoinuids);

}

   List<User> findUserList = User.q().filter("mobile", mobile).filter("name", name).filter("istmp", 1).asList();

   

   if(count == 0 && findUserList.size() == 0){

   //set user info

   User user = new User();

user.imei = "";

user.mobile = mobile;

user.innerversion = 4;

user.istmp = 1;

user.name = name;

user.created = new Date();

user.password = "";

user.device = "";

user.deviceid = "";

user.os = "";

user.password = "";

user.time = System.currentTimeMillis();

user.token = "";

user.updatedtime = System.currentTimeMillis();

user.version = "";

user.save();

Map<String ,Integer> map = new HashMap<String ,Integer>();

Contact contact = new Contact();

user.contact = contact;

map.put("p1", 1);

map.put("p2", 0);

map.put("p3", 0);

map.put("p4", 0);

map.put("p5", 0);

map.put("p6", 0);

user.contact.privacy = map;

user = CommonUtils.setContact(user, company, name, mobile, updatedtime, tel, fax, website, email, department, industry, position, description, address, zipcode);

user.save();

uuids.add(user.getId().toString());

   }

   

   for(String uuid:uuids){

   //TODO groupid

   

   //用户加入群组

   User user = User.findById(new ObjectId(uuid));

Member m = new Member();

m.uuid = user.contact.uuid;

m.joinstatus = "ok";

m.jointime = System.currentTimeMillis();

m.groupid = id.toString();

m.email="";

m.verifycode="";

if(user.groups == null){

user.groups = new HashMap<String, Member>();

}

user.groups.put(id.toString(),m);

user.save();

//群组添加成员

members.put(m.uuid, m);

group.members = members;

group.updatedtime ++;

group.lasttime = System.currentTimeMillis();

group.save();

totalimported++;

   }

}

}

file.delete();

showMemberList(id.toString(), null);

}


© 著作权归作者所有

共有 人打赏支持
gavin
粉丝 12
博文 31
码字总数 19330
作品 0
浦东
私信 提问
比较 Play Framework 2.0 (Scala) 和 1.2.3 (Java) 的性能问题

这是一篇来自 Google Group 上的帖子(原文),讨论的是 Play 两个版本的性能测试,测试的结果让人大跌眼镜,但或许只是个别环境的问题,有兴趣的可以自行测试看看。 下面是帖子翻译的内容:...

红薯
2012/03/17
7.1K
15
介绍一款开源的类Excel电子表格软件

Excel一直以霸主的地位,占据了Windows桌面表格软件市场No 1,与此同时,Office套装产品几乎成为了IT行业的标配办公技能。有无类似Excel的桌面程序,绿色版,实现基本的数据编辑功能呢? 假如...

葡萄城技术团队
2014/10/09
3.9K
6
Play Framework 1.2.3 发布

Play Framework 框架发布了 1.2.3 版本,下载地址:play-1.2.3.zip 这是一个重要的安全更新版本,Play 在其网站首页的顶部用红色的横幅进行提醒。

红薯
2011/08/25
1K
9
在 Eclipse 中开发基于 Play Framework 框架的 Web 应用

在开始本文之前,请确保已经对 Play Framework 已经有所了解,请看 Play Framework 的入门教程。 Play 框架支持 Eclipse、NetBeans 和 IntelliJ IDEA 三个主流的 Java 开发环境,本文主要介绍...

小编辑
2010/07/06
7.9K
9
Play Morphia v1.2.7 发布

PlayMorphia是基于Morphia库的PlayFramework插件,为PlayFramework应用程序开发提供便捷访问MongoDB的支持。v1.2.7版有以下更新: 1. 支持play-1.2.4或以上版本。对于使用play-1.2.3或以下版...

罗格林
2012/05/27
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

pg_lightool基于basebackup的单表恢复和块恢复

开源软件pg_lightool,实现了基于wal日志的块恢复。详情参见博客:https://my.oschina.net/lcc1990/blog/1931485。由于wal日志中FPW的不确定性,它不能作为一个数据库恢复的解决方案。目前对...

movead
31分钟前
2
0
对比剖析Swarm Kubernetes Marathon编排引擎

Docker Native Orchestration 基本结构 Docker Engine 1.12 集成了原生的编排引擎,用以替换了之前独立的Docker Swarm项目。Docker原生集群(Swarm)同时包括了(Docker Engine \/ Daemons)...

Linux就该这么学
32分钟前
2
0
Mybatis的结果集处理

此时我们已经可以把整段的SQL语句取出,但还并没有在数据库中去执行,我们可以先来分析一下配置文件中SQL语句执行后的结果集是如何处理的。 Mybatis会将结果集按照映射配置文件中定义的映射规...

算法之名
45分钟前
23
0
Spring Boot(Spring的自动整合框架)

Spring Boot 是一套基于Spring框架的微服务框架,由于Spring是一个轻量级的企业开发框架,主要功能就是用于整合和管理其他框架,想法是将平时主流使用到的框架的整合配置预先写好,然后通过简...

花漾年华
48分钟前
2
0
Windows下条件变量的实现

条件变量是什么? 是一种同步对象。 条件变量有什么用? 用于复杂的、多线程的、多核的程序中,实现多个线程间同步任务。 条件变量与其它同步对象的区别? 与事件、互斥锁、segment等同步对象...

shzwork
49分钟前
2
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部