Browse Source

未提交 签名文件代码,请注意!

Arison 9 năm trước cách đây
mục cha
commit
b47e810ad0

+ 0 - 134
WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/oa/MeetBean.java

@@ -1,134 +0,0 @@
-package com.xzjmyk.pm.activity.bean.oa;
-
-/**
- * Created by gongpm on 2016/7/22.
- */
-public class MeetBean {
-    private String ma_theme;
-    private String ma_status;
-    private String ma_recorder;
-    private String ma_recorddate;
-    private String ma_starttime;
-    private String ma_isturndoc;
-    private String ma_remark;
-    private String ma_group;
-    private String ma_endtime;
-    private String ma_groupid;
-    private String ma_statuscode;
-    private String ma_mrname;
-    private String ma_mrcode;
-//    private String ma_code;
-
-    public String getMa_mrcode() {
-        return ma_mrcode;
-    }
-
-    public void setMa_mrcode(String ma_mrcode) {
-        this.ma_mrcode = ma_mrcode;
-    }
-
-//    public String getMa_code() {
-//        return ma_code;
-//    }
-//
-//    public void setMa_code(String ma_code) {
-//        this.ma_code = ma_code;
-//    }
-
-    public String getMa_mrname() {
-        return ma_mrname;
-    }
-
-    public void setMa_mrname(String ma_mrname) {
-        this.ma_mrname = ma_mrname;
-    }
-
-
-    public String getMa_theme() {
-        return ma_theme;
-    }
-
-    public void setMa_theme(String ma_theme) {
-        this.ma_theme = ma_theme;
-    }
-
-    public String getMa_status() {
-        return ma_status;
-    }
-
-    public void setMa_status(String ma_status) {
-        this.ma_status = ma_status;
-    }
-
-    public String getMa_recorder() {
-        return ma_recorder;
-    }
-
-    public void setMa_recorder(String ma_recorder) {
-        this.ma_recorder = ma_recorder;
-    }
-
-    public String getMa_recorddate() {
-        return ma_recorddate;
-    }
-
-    public void setMa_recorddate(String ma_recorddate) {
-        this.ma_recorddate = ma_recorddate;
-    }
-
-    public String getMa_starttime() {
-        return ma_starttime;
-    }
-
-    public void setMa_starttime(String ma_starttime) {
-        this.ma_starttime = ma_starttime;
-    }
-
-    public String getMa_isturndoc() {
-        return ma_isturndoc;
-    }
-
-    public void setMa_isturndoc(String ma_isturndoc) {
-        this.ma_isturndoc = ma_isturndoc;
-    }
-
-    public String getMa_remark() {
-        return ma_remark;
-    }
-
-    public void setMa_remark(String ma_remark) {
-        this.ma_remark = ma_remark;
-    }
-
-    public String getMa_group() {
-        return ma_group;
-    }
-
-    public void setMa_group(String ma_group) {
-        this.ma_group = ma_group;
-    }
-
-    public String getMa_endtime() {
-        return ma_endtime;
-    }
-
-    public void setMa_endtime(String ma_endtime) {
-        this.ma_endtime = ma_endtime;
-    }
-
-    public String getMa_groupid() {
-        return ma_groupid;
-    }
-
-    public void setMa_groupid(String ma_groupid) {
-        this.ma_groupid = ma_groupid;
-    }
-
-    public String getMa_statuscode() {
-        return ma_statuscode;
-    }
-
-    public void setMa_statuscode(String ma_statuscode) {
-        this.ma_statuscode = ma_statuscode;
-    }
-}

+ 0 - 33
WeiChat/src/main/java/com/xzjmyk/pm/activity/db/OtherSqliteHelper.java

@@ -1,33 +0,0 @@
-package com.xzjmyk.pm.activity.db;
-
-import android.content.Context;
-import android.database.sqlite.SQLiteDatabase;
-import android.database.sqlite.SQLiteOpenHelper;
-
-/**
- * 不使用框架的数据库帮助类
- * Created by gongpm on 2016/6/7.
- */
-public class OtherSqliteHelper extends SQLiteOpenHelper {
-    public static final String DATABASE_NAME = "other.db";
-    private static final int DATABASE_VERSION = 2;
-
-    public OtherSqliteHelper(Context context) {
-        super(context, DATABASE_NAME, null, DATABASE_VERSION);
-    }
-
-    @Override
-    public void onCreate(SQLiteDatabase sqLiteDatabase) {
-        String sql = "CREATE TABLE SubscriptionMessage(id_ PRIMARY KEY,num_id_,instance_id_ ,createdate_,title_," +
-                "son_title_,status_,EMP_ID_,RN_,SONTITLE_,SUMDATA_,name)";
-        sqLiteDatabase.execSQL(sql);
-    }
-
-    @Override
-    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
-        sqLiteDatabase.execSQL("DROP TABLE IF EXISTS SubscriptionMessage");
-        String sql = "CREATE TABLE SubscriptionMessage(id_ PRIMARY KEY,num_id_,instance_id_ ,createdate_,title_," +
-                "son_title_,status_,EMP_ID_,RN_,SONTITLE_,SUMDATA_,name)";
-        sqLiteDatabase.execSQL(sql);
-    }
-}

+ 3 - 4
WeiChat/src/main/java/com/xzjmyk/pm/activity/db/dao/SubscriptionDao.java

@@ -8,7 +8,7 @@ import android.util.Log;
 
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.bean.message.SubscriptionMessage;
-import com.xzjmyk.pm.activity.db.OtherSqliteHelper;
+import com.xzjmyk.pm.activity.ui.erp.db.DBOpenHelper;
 
 import java.util.ArrayList;
 
@@ -17,11 +17,11 @@ import java.util.ArrayList;
  */
 public class SubscriptionDao {
     private static SubscriptionDao instance = null;
-    private OtherSqliteHelper sqliteHelper;
+    private DBOpenHelper sqliteHelper;
     private String titleName = "SubscriptionMessage";
 
     private SubscriptionDao() {
-        sqliteHelper = new OtherSqliteHelper(MyApplication.getInstance());
+        sqliteHelper = new DBOpenHelper(MyApplication.getInstance());
     }
 
     public static SubscriptionDao getInstance() {
@@ -118,7 +118,6 @@ public class SubscriptionDao {
             values.put("SUMDATA_", message.getSUMDATA_());
             values.put("name", name);
             k += db.insert(titleName, nullColumn, values);
-
         } catch (SQLException e) {
             Log.i("gong", e.getMessage());
             e.printStackTrace();

+ 42 - 51
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/AddMeetingActivity.java

@@ -18,6 +18,7 @@ import android.widget.EditText;
 import android.widget.TextView;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.android.volley.Response;
 import com.android.volley.VolleyError;
 import com.lidroid.xutils.ViewUtils;
@@ -29,7 +30,6 @@ import com.xzjmyk.pm.activity.bean.Area;
 import com.xzjmyk.pm.activity.bean.message.ChatMessage;
 import com.xzjmyk.pm.activity.bean.message.MucRoom;
 import com.xzjmyk.pm.activity.bean.message.XmppMessage;
-import com.xzjmyk.pm.activity.bean.oa.MeetBean;
 import com.xzjmyk.pm.activity.bean.oa.MeetUserEntity;
 import com.xzjmyk.pm.activity.db.dao.ChatMessageDao;
 import com.xzjmyk.pm.activity.helper.UploadEngine;
@@ -40,7 +40,7 @@ import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CodeUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.Constants;
-import com.xzjmyk.pm.activity.ui.erp.util.FlexJsonUtil;
+import com.xzjmyk.pm.activity.ui.erp.util.CreateRoomUtil;
 import com.xzjmyk.pm.activity.util.CalendarUtils;
 import com.xzjmyk.pm.activity.util.StringUtils;
 import com.xzjmyk.pm.activity.util.TimeUtils;
@@ -50,8 +50,6 @@ import com.xzjmyk.pm.activity.volley.Result;
 import com.xzjmyk.pm.activity.volley.StringJsonObjectRequest;
 import com.xzjmyk.pm.activity.xmpp.CoreService;
 
-import org.json.JSONException;
-import org.json.JSONObject;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -85,7 +83,6 @@ public class AddMeetingActivity extends BaseActivity implements View.OnClickList
     private String baseUrl;
     private int request = 0x13;
     public static int resultCode = 0x14;
-
     ArrayList<MeetUserEntity> entities = null;//成员
     private Handler handler = new Handler() {
         @Override
@@ -94,16 +91,14 @@ public class AddMeetingActivity extends BaseActivity implements View.OnClickList
             progressDialog.dismiss();
             switch (msg.what) {
                 case whatSignin:
-                    //TODO 创建会议成功  开始创建群组
-                    try {
-                        JSONObject json = new JSONObject(message);
-                        if (!json.isNull("success") && json.getBoolean("success")) {
-                            ToastUtil.showToast(ct, "添加会议成功,正在为你建立会议群");
-                            createRoom(name_et.getText().toString() + "会议群", "创建为了提醒会议成员");
-                        }
-                    } catch (JSONException e) {
-                        ToastUtil.showToast(ct, "内部错误");
-                        e.printStackTrace();
+                    JSONObject json = JSON.parseObject(message);
+                    if (json.getBoolean("success") != null && json.getBoolean("success")) {
+                        //TODO 创建会议成功  开始创建群组
+                        ToastUtil.showToast(ct, "添加会议成功,正在为你建立会议群");
+                        CreateRoomUtil.getInstance().createRoom(ct, entities, name_et.getText().toString() + "会议群", "创建为了提醒会议成员");
+//                        createRoom(name_et.getText().toString() + "会议群", "创建为了提醒会议成员");
+                    } else {
+                        ToastUtil.showToast(ct, "内部错误,请稍后再试或联系工作人员");
                     }
                     break;
                 case whatAdd:
@@ -355,7 +350,8 @@ public class AddMeetingActivity extends BaseActivity implements View.OnClickList
             }
         }
         doSignin(builder.toString(), builderId.toString(), code);
-        addRiCheng();
+        //为与会人员添加日程
+//        addRiCheng();
     }
 
 
@@ -401,31 +397,23 @@ public class AddMeetingActivity extends BaseActivity implements View.OnClickList
         String url = baseUrl + "oa/meeting/saveMeetingroomapply.action";
         final Map<String, Object> param = new HashMap<>();
         String form = "{" +
-                "ma_tag" +
-                "" +
-                "" +
-                "" +
-                "" +
+                "\"ma_mrcode\":" + "\"" + code + "\",\n" +
+                "\"ma_group\":" + "\"" + gruop + "\",\n" +
+                "\"ma_groupid\":" + "\"" + ids + "\",\n" +
+                "\"ma_isturndoc\":" + "\"" + "否" + "\",\n" +
+                "\"ma_mrname\":" + "\"" + name_et.getText().toString() + "\",\n" +
+                "\"ma_recorddate\":" + "\"" + TimeUtils.s_long_2_str(System.currentTimeMillis()) + "\",\n" +
+                "\"ma_recorder\":" + "\"" + MyApplication.getInstance().mLoginUser.getNickName() + "\",\n" +
+                "\"ma_remark\":" + "\"" + about_et.getText().toString() + "\",\n" +
+                "\"ma_starttime\":" + "\"" + start_tv.getText().toString() + "\",\n" +
+                "\"ma_status\":" + "\"" + "在录入" + "\",\n" +
+                "\"ma_statuscode\":" + "\"" + "ENTERING" + "\",\n" +
+                "\"ma_theme\":" + "\"" + name_et.getText().toString() + "\"\n" +
                 "}";
-        MeetBean bean = new MeetBean();
-        bean.setMa_mrcode(code);//编号
-        bean.setMa_mrname(name_et.getText().toString());
-        bean.setMa_theme(name_et.getText().toString());
-        bean.setMa_status("在录入");
-        bean.setMa_recorder(MyApplication.getInstance().mLoginUser.getNickName());
-        bean.setMa_recorddate(TimeUtils.s_long_2_str(System.currentTimeMillis()));
-        bean.setMa_starttime(start_tv.getText().toString());
-        bean.setMa_isturndoc("否");
-        bean.setMa_remark(about_et.getText().toString());
-        bean.setMa_group(gruop);
-        bean.setMa_endtime(end_tv.getText().toString());
-        bean.setMa_groupid(ids);
-        bean.setMa_statuscode("ENTERING");
-        String formStore = FlexJsonUtil.toJson(bean);
         String caller = "Meetingroomapply";
         param.put("caller", caller);
         param.put("param", "[]");
-        param.put("formStore", formStore);
+        param.put("formStore", form);
         param.put("sessionId", CommonUtil.getSharedPreferences(ct, "sessionId"));
         LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
         headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
@@ -440,21 +428,24 @@ public class AddMeetingActivity extends BaseActivity implements View.OnClickList
         String url = baseUrl + "common/saveCommon.action";
         final Map<String, Object> param = new HashMap<>();
         String formStore = "{" +
-                "\"ag_arrange\":" + "陈萍" + "," +
-                "\"ag_atid\":" + "4633" + "," +
-                "\"ag_type\":" + "重要" + "," +
-                "\"ag_start\":" + "2016-07-20 09:16:04" + "," +
-                "\"ag_end\":" + "2016-07-20 09:16:06" + "," +
-                "\"ag_issecrecy\":" + "陈萍" + "," +
-                "\"ag_title\":" + "测试" + "," +
-                "\"ag_executor\":" + "陈萍" + "," +
-                "\"ag_content\":" + "测试123" + "," +
-                "\"ag_arrange_id\":" + "45" + "," +
-                "\"ag_executor_id\":" + "1008885" + "," +
-                "\"AG_PREDICT\":" + "" + "," +
-                "\"AG_ISMESSAGE\":" + "" + "," +
-                "\"AG_ISWEEK\":" + "" +
+                "\"ag_arrange\":" + "\"" + "陈萍" + "\",\n" +
+//                "\"ag_atid\":" + "\"" + "4633" + "\",\n" +
+                "\"ag_atid\":" + 4633 + ",\n" +
+                "\"ag_type\":" + "\"" + "重要" + "\",\n" +
+                "\"ag_start\":" + "\"" + "2016-07-20 09:16:04" + "\",\n" +
+                "\"ag_end\":" + "\"" + "2016-07-20 09:16:06" + "\",\n" +
+                "\"ag_issecrecy\":" + "\"" + "陈萍" + "\",\n" +
+                "\"ag_title\":" + "\"" + "测试" + "\",\n" +
+                "\"ag_executor\":" + "\"" + "陈萍" + "\",\n" +
+                "\"ag_content\":" + "\"" + "测试123" + "\",\n" +
+//                "\"ag_arrange_id\":" + "\"" + "45" + "\",\n" +
+                "\"ag_executor_id\":" + 1008885 + ",\n" +
+                "\"ag_arrange_id\":" + 45 + ",\n" +
+                "\"AG_PREDICT\":" + "\"\"" + "," +
+                "\"AG_ISMESSAGE\":" + "\"\"" + "," +
+                "\"AG_ISWEEK\":" + "\"\"" +
                 "}";
+        Log.i("gongpengming", formStore);
         String caller = "Agenda";
         param.put("caller", caller);
         param.put("param", "[]");

+ 7 - 3
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/MeetDetailsActivity.java

@@ -73,9 +73,13 @@ public class MeetDetailsActivity extends BaseActivity implements View.OnClickLis
                     break;
                 case 0x14:
                     JSONObject numlist = JSON.parseObject(message).getJSONObject("participants");
-                    int confirmed = numlist.getJSONArray("confirmed").size();
-                    int unconfirmed = numlist.getJSONArray("unconfirmed").size();
-                    num_tv.setText("当前签到人数:" + confirmed + "/" + (confirmed + unconfirmed));
+                    int confirmed = 0, unconfirmed = 0;
+                    if (numlist != null && numlist.getJSONArray("confirmed") != null)
+                        confirmed = numlist.getJSONArray("confirmed").size();
+                    if (numlist != null && numlist.getJSONArray("unconfirmed") != null)
+                        unconfirmed = numlist.getJSONArray("unconfirmed").size();
+                    if ((confirmed + unconfirmed) > 0)
+                        num_tv.setText("当前签到人数:" + confirmed + "/" + (confirmed + unconfirmed));
                     break;
             }
         }

+ 1 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/WorkLogsActivity.java

@@ -225,6 +225,7 @@ public class WorkLogsActivity extends BaseActivity {
      * 获取工作日志(朋友圈)数据接口
      */
     private void requestSpace(boolean isRefersh) {
+        progressDialog.show();
         this.isRefersh = isRefersh;
         //参数
         HashMap<String, Object> params = new HashMap<>();

+ 2 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/db/DBOpenHelper.java

@@ -34,6 +34,7 @@ public class DBOpenHelper extends SQLiteOpenHelper {
         db.execSQL(Constants.SQL_empdate_CREATETABLE);
         db.execSQL(Constants.SQL_B2B_MSG);
         db.execSQL(Constants.OA_SIGNIN_TIME);//创建OA签到记录表
+        db.execSQL(Constants.SubscriptionMessage);//创建OA签到记录表
     }
 
     @Override
@@ -43,6 +44,7 @@ public class DBOpenHelper extends SQLiteOpenHelper {
         db.execSQL("DROP TABLE IF EXISTS empdate");
         db.execSQL("DROP TABLE IF EXISTS B2BMSG");
         db.execSQL("DROP TABLE IF EXISTS Signin");
+        db.execSQL("DROP TABLE IF EXISTS SubscriptionMessage");
         onCreate(db);
     }
 

+ 0 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/SigninFragment.java

@@ -325,7 +325,6 @@ public class SigninFragment extends EasyFragment {
         String url = baseUrl + "mobile/saveCardLog.action";
         final Map<String, Object> param = new HashMap<>();
         SigninBean bean = new SigninBean();
-
         bean.setCl_code(code);
         bean.setCl_address(office_addr.getText().toString());
         bean.setCl_distance(300);
@@ -335,7 +334,6 @@ public class SigninFragment extends EasyFragment {
         bean.setCl_emname(MyApplication.getInstance().mLoginUser.getNickName());
         bean.setCl_phone(MyApplication.getInstance().mLoginUser.getTelephone());
         String formStore = FlexJsonUtil.toJson(bean);
-
         String caller = "CardLog";
         param.put("caller", caller);
         param.put("formStore", formStore);

+ 2 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/Constants.java

@@ -75,7 +75,8 @@ public class Constants {
             + "signinNum,"
             + "dtime"
             + ")";
-
+    public static final String SubscriptionMessage =  "CREATE TABLE SubscriptionMessage(id_,num_id_,instance_id_ ,createdate_,title_," +
+            "son_title_,status_,EMP_ID_,RN_,SONTITLE_,SUMDATA_,name)";
     /**
      * 检测网络是否可用
      *

+ 281 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/CreateRoomUtil.java

@@ -0,0 +1,281 @@
+package com.xzjmyk.pm.activity.ui.erp.util;
+
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.ServiceConnection;
+import android.os.IBinder;
+import android.text.TextUtils;
+import android.util.Log;
+
+import com.alibaba.fastjson.JSON;
+import com.android.volley.Response;
+import com.android.volley.VolleyError;
+import com.xzjmyk.pm.activity.AppConfig;
+import com.xzjmyk.pm.activity.MyApplication;
+import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.bean.Area;
+import com.xzjmyk.pm.activity.bean.Friend;
+import com.xzjmyk.pm.activity.bean.message.ChatMessage;
+import com.xzjmyk.pm.activity.bean.message.MucRoom;
+import com.xzjmyk.pm.activity.bean.message.XmppMessage;
+import com.xzjmyk.pm.activity.bean.oa.MeetUserEntity;
+import com.xzjmyk.pm.activity.db.dao.ChatMessageDao;
+import com.xzjmyk.pm.activity.db.dao.FriendDao;
+import com.xzjmyk.pm.activity.helper.UploadEngine;
+import com.xzjmyk.pm.activity.util.TimeUtils;
+import com.xzjmyk.pm.activity.util.ToastUtil;
+import com.xzjmyk.pm.activity.volley.ArrayResult;
+import com.xzjmyk.pm.activity.volley.ObjectResult;
+import com.xzjmyk.pm.activity.volley.Result;
+import com.xzjmyk.pm.activity.volley.StringJsonArrayRequest;
+import com.xzjmyk.pm.activity.volley.StringJsonObjectRequest;
+import com.xzjmyk.pm.activity.xmpp.CoreService;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+/**
+ * 创建群组
+ * Created by gongp on 2016/8/9.
+ */
+public class CreateRoomUtil {
+    private static final String TAG = "CreateRoomUtil";
+    private static CreateRoomUtil instance = null;
+    private CoreService mXmppService = null;
+    private ArrayList<MeetUserEntity> entities = null;
+    private String roomName = null;
+    private String doc = null;
+    private Context context = null;
+    private String roomJid = null;
+
+    private CreateRoomUtil() {
+    }
+
+    public static CreateRoomUtil getInstance() {
+        if (instance == null) {
+            synchronized (CreateRoomUtil.class) {
+                instance = new CreateRoomUtil();
+            }
+        }
+        return instance;
+    }
+
+    private ServiceConnection mServiceConnection = new ServiceConnection() {
+        @Override
+        public void onServiceDisconnected(ComponentName name) {
+            mXmppService = null;
+        }
+
+        @Override
+        public void onServiceConnected(ComponentName name, IBinder service) {
+            mXmppService = ((CoreService.CoreServiceBinder) service).getService();
+            //当获取绑定成功
+            if (entities != null && entities.size() > 0 && roomName != null && doc != null && context != null) {
+                createGroupChat(context, roomName, null, doc, entities);
+            }
+        }
+    };
+    //发送消息到好友
+    private UploadEngine.ImFileUploadResponse mUploadResponse = new UploadEngine.ImFileUploadResponse() {
+        @Override
+        public void onSuccess(String toUserId, ChatMessage message) {
+            mXmppService.sendChatMessage(roomJid, message);
+        }
+
+        @Override
+        public void onFailure(String toUserId, ChatMessage message) {
+            Log.i("gongpengming", "发送失败");
+        }
+    };
+
+    private void createGroupChat(final Context context, final String roomName, String roomSubject, String roomDesc, final List<MeetUserEntity> inviteUsers) {
+        final List<String> list = new ArrayList<>();
+        for (int i = 0; i < inviteUsers.size(); i++) {
+            list.add(inviteUsers.get(i).getImId());
+        }
+        AppConfig mConfig = MyApplication.getInstance().getConfig();
+        String nickName = MyApplication.getInstance().mLoginUser.getNickName();
+        //创建群组
+
+        try {
+            roomJid = mXmppService.createMucRoom(nickName, roomName, roomSubject, roomDesc);
+        } catch (NullPointerException e) {
+            roomJid = mXmppService.createMucRoom(nickName, roomName, "", roomDesc);
+        }
+        if (TextUtils.isEmpty(roomJid)) {
+            ToastUtil.showToast(context, R.string.create_room_failed);
+            result(false);
+            return;
+        }
+        Map<String, String> params = new HashMap<String, String>();
+        params.put("access_token", MyApplication.getInstance().mAccessToken);
+        params.put("jid", roomJid);
+        params.put("name", roomName);
+        params.put("desc", roomDesc);
+        params.put("countryId", String.valueOf(Area.getDefaultCountyId()));// 国家Id
+        Area area = Area.getDefaultProvince();
+        if (area != null) {
+            params.put("provinceId", String.valueOf(area.getId()));// 省份Id
+        }
+        area = Area.getDefaultCity();
+        params.put("category", 0 + "");
+        if (area != null) {
+            params.put("cityId", String.valueOf(area.getId()));// 城市Id
+            area = Area.getDefaultDistrict(area.getId());
+            if (area != null) {
+                params.put("areaId", String.valueOf(area.getId()));// 城市Id
+            }
+        }
+        double latitude = MyApplication.getInstance().getBdLocationHelper().getLatitude();
+        double longitude = MyApplication.getInstance().getBdLocationHelper().getLongitude();
+        if (latitude != 0)
+            params.put("latitude", String.valueOf(latitude));
+        if (longitude != 0)
+            params.put("longitude", String.valueOf(longitude));
+        params.put("text", JSON.toJSONString(list));
+        StringJsonObjectRequest<MucRoom> request = new StringJsonObjectRequest<MucRoom>(mConfig.ROOM_ADD,
+                new Response.ErrorListener() {
+                    @Override
+                    public void onErrorResponse(VolleyError arg0) {
+                        result(false);
+                    }
+                }, new StringJsonObjectRequest.Listener<MucRoom>() {
+            @Override
+            public void onResponse(ObjectResult<MucRoom> result) {
+                boolean parserResult = Result.defaultParser(context, result, true);
+                if (parserResult && result.getData() != null) {
+                    Log.i("gongpengming", "创建群组成功" + result.getResultData());
+                    list.add(0, MyApplication.getInstance().mLoginUser.getUserId());
+                    RoomImageUtil.getInstance().uploadAvatar(context, list, roomJid);//上传头像
+                    result(true);
+                    joinRoom(context, result.getData());
+                }
+            }
+        }, MucRoom.class, params);
+        String HASHCODE = Integer.toHexString(this.hashCode()) + "@";
+        MyApplication.getInstance().getFastVolley().addDefaultRequest(HASHCODE, request);
+    }
+
+    /**
+     * 加入群
+     *
+     * @param context
+     * @param room    群对象
+     */
+    private void joinRoom(final Context context, final MucRoom room) {
+        final String loginUserId = MyApplication.getInstance().mLoginUser.getUserId();
+        AppConfig mConfig = MyApplication.getInstance().getConfig();
+        HashMap<String, String> params = new HashMap<String, String>();
+        params.put("access_token", MyApplication.getInstance().mAccessToken);
+        params.put("roomId", room.getId());
+        if (room.getUserId() == loginUserId)
+            params.put("type", "1");
+        else
+            params.put("type", "2");
+        StringJsonArrayRequest<Void> request = new StringJsonArrayRequest<Void>(
+                mConfig.ROOM_JOIN, new Response.ErrorListener() {
+            @Override
+            public void onErrorResponse(VolleyError arg0) {
+                ToastUtil.showErrorNet(context);
+            }
+        }, new StringJsonArrayRequest.Listener<Void>() {
+            @Override
+            public void onResponse(ArrayResult<Void> result) {
+                boolean success = Result.defaultParser(context,
+                        result, true);
+                if (success) {
+                    Friend friend = new Friend();// 将房间也存为好友
+                    friend.setOwnerId(loginUserId);
+                    friend.setUserId(room.getJid());
+                    friend.setNickName(room.getName());
+                    friend.setDescription(room.getDesc());
+                    friend.setRoomFlag(1);
+                    friend.setRoomId(room.getId());
+                    friend.setRoomCreateUserId(room.getUserId());
+                    // timeSend作为取群聊离线消息的标志,所以要在这里设置一个初始值
+                    friend.setTimeSend(TimeUtils.sk_time_current_time());
+                    friend.setStatus(Friend.STATUS_FRIEND);
+                    FriendDao.getInstance().createOrUpdateFriend(friend);//创建或者更新好友...
+                    sendMucChatMessage();//发送一条信息到群里去
+                }
+            }
+        }, Void.class, params);
+        MyApplication.getInstance().getFastVolley().addDefaultRequest(TAG, request);
+    }
+
+    private void sendMucChatMessage() {
+        ChatMessage message = new ChatMessage();
+        message.setType(XmppMessage.TYPE_TEXT);
+        message.setContent("大家注意按时去开会");
+        message.setFromUserName(MyApplication.getInstance().mLoginUser.getNickName());
+        message.setFromUserId(MyApplication.getInstance().mLoginUser.getUserId());
+        message.setTimeSend(TimeUtils.sk_time_current_time());
+        message.setPacketId(UUID.randomUUID().toString().replaceAll("-", ""));
+        ChatMessageDao.getInstance().saveNewSingleChatMessage(MyApplication.getInstance().mLoginUser.getUserId(), roomJid, message);
+        if (message.getType() == XmppMessage.TYPE_VOICE || message.getType() == XmppMessage.TYPE_IMAGE
+                || message.getType() == XmppMessage.TYPE_VIDEO || message.getType() == XmppMessage.TYPE_FILE) {
+            if (!message.isUpload()) {
+                UploadEngine.uploadImFile(roomJid, message, mUploadResponse);
+            } else {
+                send(message);
+            }
+        } else {
+            send(message);
+        }
+    }
+
+    private void result(boolean isOk) {
+        if (listener != null)
+            listener.result(isOk);
+    }
+
+    private void send(ChatMessage message) {
+        mXmppService.sendMucChatMessage(roomJid, message);
+        //TODO 完成返回 应该清除内存中的变量
+
+    }
+
+    /**
+     * 回收变量
+     */
+    private void recycle() {
+        if (context != null) {
+            context.unbindService(mServiceConnection);
+            context = null;
+        }
+        if (entities != null)
+            entities = null;
+        if (roomName != null)
+            roomName = null;
+        if (doc != null)
+            doc = null;
+        if (roomJid != null)
+            roomJid = null;
+        if (mXmppService != null)
+            mXmppService = null;
+    }
+
+    //创建群(不获取成功回调)
+    public void createRoom(Context context, ArrayList<MeetUserEntity> entities, String name, String doc) {
+        this.entities = entities;
+        this.roomName = name;
+        this.doc = doc;
+        this.context = context;
+        context.bindService(CoreService.getIntent(), mServiceConnection, Context.BIND_AUTO_CREATE);
+    }
+
+    //创建群(要求获取成功回调)
+    public void createRoom(Context context, ArrayList<MeetUserEntity> entities, String name, String doc, OnCreateRoomListener listener) {
+        this.listener = listener;
+        createRoom(context, entities, name, doc);
+    }
+
+    private OnCreateRoomListener listener = null;
+
+    public interface OnCreateRoomListener {
+        void result(boolean isOk);
+    }
+}

+ 241 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/RoomImageUtil.java

@@ -0,0 +1,241 @@
+package com.xzjmyk.pm.activity.ui.erp.util;
+
+import android.content.Context;
+import android.graphics.Bitmap;
+import android.media.ThumbnailUtils;
+import android.os.Handler;
+import android.os.Message;
+import android.util.Log;
+
+import com.alibaba.fastjson.JSON;
+import com.android.volley.Request;
+import com.android.volley.Response;
+import com.android.volley.VolleyError;
+import com.loopj.android.http.AsyncHttpClient;
+import com.loopj.android.http.AsyncHttpResponseHandler;
+import com.loopj.android.http.RequestParams;
+import com.xzjmyk.pm.activity.MyApplication;
+import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.helper.AvatarHelper;
+import com.xzjmyk.pm.activity.ui.erp.net.HttpUtil;
+import com.xzjmyk.pm.activity.ui.groupchat.SelectContactsActivity;
+import com.xzjmyk.pm.activity.ui.tool.ThreadPool;
+import com.xzjmyk.pm.activity.util.ImageUtil;
+import com.xzjmyk.pm.activity.util.ToastUtil;
+import com.xzjmyk.pm.activity.volley.ObjectResult;
+import com.xzjmyk.pm.activity.volley.Result;
+import com.xzjmyk.pm.activity.volley.StringJsonObjectRequest;
+
+import org.apache.http.Header;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 合成群头像操作
+ * Created by gongp on 2016/8/9.
+ */
+public class RoomImageUtil {
+    private static final String TAG = "UPDATA";
+    private static RoomImageUtil instance = null;
+    private String photoId = null;
+    private File image = null;//合成文件
+    private Context context = null;
+    private Handler mhandler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            if (msg.what == 0x11) {
+                if (image == null || context == null) return;
+                String roomjId = msg.getData().getString("id");
+                uploadAvatar(context, image, roomjId);
+            }
+
+        }
+    };
+
+    private RoomImageUtil() {
+    }
+
+    public static RoomImageUtil getInstance() {
+        if (instance == null) {
+            synchronized (RoomImageUtil.class) {
+                instance = new RoomImageUtil();
+            }
+        }
+        return instance;
+    }
+
+    /**
+     * 创建群头像入口
+     *
+     * @param context
+     * @param inviteUsers 群id列表
+     * @param mRoomJid    群id
+     */
+    public void uploadAvatar(final Context context, final List<String> inviteUsers, final String mRoomJid) {
+        this.context = context;
+        ThreadPool.getThreadPool().addTask(new Runnable() {
+            @Override
+            public void run() {
+                //八位不重复随机数
+                photoId = NumberUtils.generateNumber2();//八位不重复随机数
+                image = createChatImage(context, inviteUsers);
+                Message msg = mhandler.obtainMessage();
+                msg.getData().putString("id", mRoomJid);
+                msg.what = 0x11;
+                mhandler.sendMessage(msg);
+            }
+        });
+    }
+
+    /**
+     * @param context
+     * @param count
+     * @return
+     */
+    private List<SelectContactsActivity.MyBitmapEntity> getBitmapEntitys(Context context, int count) {
+        List<SelectContactsActivity.MyBitmapEntity> mList = new LinkedList<SelectContactsActivity.MyBitmapEntity>();
+        String value = PropertiesUtil.readData(context, String.valueOf(count),
+                R.raw.data);
+        String[] arr1 = value.split(";");
+        int length = arr1.length;
+        for (int i = 0; i < length; i++) {
+            String content = arr1[i];
+            String[] arr2 = content.split(",");
+            SelectContactsActivity.MyBitmapEntity entity = null;
+            for (int j = 0; j < arr2.length; j++) {
+                entity = new SelectContactsActivity.MyBitmapEntity();
+                entity.x = Float.valueOf(arr2[0]);
+                entity.y = Float.valueOf(arr2[1]);
+                entity.width = Float.valueOf(arr2[2]);
+                entity.height = Float.valueOf(arr2[3]);
+            }
+            mList.add(entity);
+        }
+        return mList;
+    }
+
+    /**
+     * 上传文件头像到服务器
+     *
+     * @param context
+     * @param file    文件地址
+     * @param roomjId 房间id
+     */
+    private void uploadAvatar(final Context context, File file, final String roomjId) {
+        if (!file.exists()) {// 文件不存在
+            return;
+        }
+        RequestParams params = new RequestParams();
+        params.put("userId", photoId);//群主id+当前系统时间
+        try {
+            params.put("file1", file);
+        } catch (FileNotFoundException e) {
+            e.printStackTrace();
+        }
+        AsyncHttpClient client = new AsyncHttpClient();
+        client.post(MyApplication.getInstance().getConfig().AVATAR_UPLOAD_URL, params, new AsyncHttpResponseHandler() {
+            @Override
+            public void onSuccess(int arg0, Header[] arg1, byte[] arg2) {
+                boolean success = false;
+                if (arg0 == 200) {
+                    Result result = null;
+                    try {
+                        result = JSON.parseObject(new String(arg2), Result.class);
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
+                    if (result != null && result.getResultCode() == Result.CODE_SUCCESS) {
+                        success = true;
+                    }
+                }
+                if (success) {
+                    ToastUtil.showToast(context, R.string.upload_avatar_success);
+                    //更新服务器
+                    updateIMChatImageId(roomjId, photoId);
+                } else {
+                    ToastUtil.showToast(context, R.string.upload_avatar_failed);
+                }
+            }
+
+            @Override
+            public void onFailure(int arg0, Header[] arg1, byte[] arg2, Throwable arg3) {
+                ToastUtil.showToast(context, R.string.upload_avatar_failed);
+            }
+        });
+    }
+
+    /**
+     * @功能:上传文件后,需要上传更新图像id
+     * @author:Arisono
+     * @param:
+     * @return:
+     */
+    private void updateIMChatImageId(String roomjId, String photoId) {
+        String url = MyApplication.getInstance().getConfig().apiUrl + "room/setRelationGroupPhoto";
+        final String requestTag = "loginManagerSystem";
+        Map<String, String> params = new HashMap<String, String>();
+        params.put("access_token", MyApplication.getInstance().mAccessToken);
+        params.put("roomId", roomjId);
+        params.put("photoid", photoId);
+        StringJsonObjectRequest<String> mRequest = new StringJsonObjectRequest<String>(
+                Request.Method.GET, url,
+                new Response.ErrorListener() {
+                    @Override
+                    public void onErrorResponse(VolleyError volleyError) {
+                    }
+                },
+                new StringJsonObjectRequest.Listener<String>() {
+                    @Override
+                    public void onResponse(ObjectResult<String> result) {
+                        Log.i("Arison", "更新头像id result:" + result.getResultData());
+                    }
+                }, String.class, params, true);
+        mRequest.setTag(requestTag);
+        MyApplication.getInstance().getFastVolley().addDefaultRequest(TAG, mRequest);
+    }
+
+    /**
+     * 合成头像群成员
+     *
+     * @param context
+     * @param inviteUsers
+     * @return
+     */
+    private File createChatImage(Context context, List<String> inviteUsers) {
+        File file = null;
+        if (!ListUtils.isEmpty(inviteUsers)) {
+            int size = inviteUsers.size() > 9 ? 9 : inviteUsers.size();
+            List<SelectContactsActivity.MyBitmapEntity> mEntityList = getBitmapEntitys(context, size);
+            Bitmap mBitmaps[] = new Bitmap[size];
+            for (int i = 0; i < size; i++) {
+                String url = AvatarHelper.getAvatarUrl(inviteUsers.get(i), false);
+                Bitmap nextBitmap = null;
+                String filepath = HttpUtil.download(url, FileUtils.getSDRoot() + "/uu/chat/head" + i + ".png");
+                nextBitmap = ImageUtil.compressBitmapWithFilePath(filepath, 300, 300);
+                if (nextBitmap == null) {
+                    nextBitmap = ImageUtil.compressBitmapWithResources(context, R.drawable.avatar_normal, 300, 300);
+                }
+                Bitmap tempBitmap = ThumbnailUtils.extractThumbnail(nextBitmap, (int) mEntityList
+                        .get(i).width, (int) mEntityList.get(i).width);
+                mBitmaps[i] = tempBitmap;
+            }
+            Bitmap combineBitmap = BitmapUtil.getCombineBitmaps(mEntityList, mBitmaps);
+            try {
+                file = BitmapUtil.saveFile(combineBitmap, "chatImage.png");
+            } catch (IOException e) {
+                e.printStackTrace();
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+        return file;
+    }
+
+
+}

+ 0 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/groupchat/GroupChatFragment.java

@@ -231,7 +231,6 @@ public class GroupChatFragment extends EasyFragment {
             }
         }, Void.class, params);
         mActivity.addDefaultRequest(request);
-
     }
 
     @Override

+ 6 - 8
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/AddContactsActivity.java

@@ -30,7 +30,9 @@ import com.android.volley.VolleyError;
 import com.loopj.android.http.AsyncHttpClient;
 import com.loopj.android.http.AsyncHttpResponseHandler;
 import com.loopj.android.http.RequestParams;
-import com.xzjmyk.pm.activity.AppConstant;
+import com.xzjmyk.pm.activity.MyApplication;
+import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.bean.Friend;
 import com.xzjmyk.pm.activity.bean.MucRoomSimple;
 import com.xzjmyk.pm.activity.broadcast.CardcastUiUpdateUtil;
 import com.xzjmyk.pm.activity.broadcast.MsgBroadcast;
@@ -45,22 +47,18 @@ import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.NumberUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.PropertiesUtil;
 import com.xzjmyk.pm.activity.ui.groupchat.SelectContactsActivity;
-import com.xzjmyk.pm.activity.util.Constants;
 import com.xzjmyk.pm.activity.util.DateFormatUtil;
 import com.xzjmyk.pm.activity.util.DisplayUtil;
 import com.xzjmyk.pm.activity.util.ImageUtil;
 import com.xzjmyk.pm.activity.util.ProgressDialogUtil;
 import com.xzjmyk.pm.activity.util.TimeUtils;
-import com.xzjmyk.pm.activity.view.HorizontalListView;
-import com.xzjmyk.pm.activity.xmpp.CoreService;
-import com.xzjmyk.pm.activity.MyApplication;
-import com.xzjmyk.pm.activity.R;
-import com.xzjmyk.pm.activity.bean.Friend;
 import com.xzjmyk.pm.activity.util.ToastUtil;
 import com.xzjmyk.pm.activity.util.ViewHolder;
+import com.xzjmyk.pm.activity.view.HorizontalListView;
 import com.xzjmyk.pm.activity.volley.ObjectResult;
 import com.xzjmyk.pm.activity.volley.Result;
 import com.xzjmyk.pm.activity.volley.StringJsonObjectRequest;
+import com.xzjmyk.pm.activity.xmpp.CoreService;
 
 import org.apache.http.Header;
 
@@ -171,7 +169,7 @@ public class AddContactsActivity extends BaseActivity {
 	/**
 	 * 是否存在已经在那个房间的好友
 	 * 
-	 * @param friendEntity
+	 * @param
 	 * @return
 	 */
 	private boolean isExist(Friend friend) {

+ 3 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/SubscriptionActivity.java

@@ -6,6 +6,7 @@ import android.content.Intent;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuItem;
@@ -76,10 +77,10 @@ public class SubscriptionActivity extends BaseActivity {
         @Override
         public void handleMessage(Message msg) {
             String message = (String) msg.getData().get("result");
-
             if (msg.what == 2) {
                 try {
                     JSONObject object = new JSONObject(message);
+                    Log.i("gongpengming", message);
                     JSONArray array = object.getJSONArray("data");
                     SubscriptionMessages = (ArrayList<SubscriptionMessage>) JSON.parseArray(array.toString(), SubscriptionMessage.class);
                     setData();
@@ -272,7 +273,6 @@ public class SubscriptionActivity extends BaseActivity {
             notifyAdapter();
             return;
         }
-
         //保存数据库
         clearDataToDB(newlong, newlong + daylong);
         saveDataToDB(SubscriptionMessages);
@@ -393,6 +393,7 @@ public class SubscriptionActivity extends BaseActivity {
         public long getItemId(int position) {
             return position;
         }
+
         @Override
         public View getView(final int i, View contextView, ViewGroup viewGroup) {
             VieweHolder holder = null;