Browse Source

Merge branch 'feature' of https://gitlab.com/Arisono/SkWeiChat-Baidu into feature

# Conflicts:
#	WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/MessageFragment.java
Bitliker 8 years ago
parent
commit
ac925e5bc7
41 changed files with 871 additions and 239 deletions
  1. 6 4
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/secretary/BookingListActivity.java
  2. 1 0
      app_core/common/src/main/java/com/core/model/LoginEntity.java
  3. 17 11
      app_core/common/src/main/java/com/core/widget/view/selectcalendar/SelectCalendarActivity.java
  4. 26 0
      app_core/common/src/main/res/layout/bsetting_activity.xml
  5. 4 4
      app_core/common/src/main/res/layout/person_setting_activity.xml
  6. 8 4
      app_core/network/src/main/java/com/me/network/app/http/interceptor/LogInterceptor.java
  7. 4 2
      app_modular/appbooking/src/main/java/com/modular/booking/activity/business/BBookingAddActivity.java
  8. 8 8
      app_modular/appbooking/src/main/java/com/modular/booking/activity/services/BServiceAddActivity.java
  9. 82 1
      app_modular/appbooking/src/main/java/com/modular/booking/activity/services/BServiceListActivity.java
  10. 1 1
      app_modular/appbooking/src/main/java/com/modular/booking/activity/services/BServiceSearchActivity.java
  11. 63 68
      app_modular/appbooking/src/main/java/com/modular/booking/activity/services/BServicesActivity.java
  12. 1 1
      app_modular/appbooking/src/main/java/com/modular/booking/adapter/ItemBserviceStoremanListAdapter.java
  13. 1 1
      app_modular/appbooking/src/main/res/layout/action_book_service_search.xml
  14. 1 2
      app_modular/appbooking/src/main/res/layout/header_bservices_grid.xml
  15. 2 0
      app_modular/appbooking/src/main/res/values-en/strings.xml
  16. 2 0
      app_modular/appbooking/src/main/res/values-zh-rCN/strings.xml
  17. 2 0
      app_modular/appbooking/src/main/res/values-zh-rTW/strings.xml
  18. 2 0
      app_modular/appbooking/src/main/res/values/strings.xml
  19. 13 1
      app_modular/appcontact/src/main/java/com/uas/appcontact/ui/activity/ContactsActivity.java
  20. 0 2
      app_modular/applogin/src/main/java/com/modular/login/activity/LoginActivity.java
  21. 2 0
      app_modular/appme/src/main/AndroidManifest.xml
  22. 12 28
      app_modular/appme/src/main/java/com/uas/appme/pedometer/adapter/UUAttentionAdapter.java
  23. 8 14
      app_modular/appme/src/main/java/com/uas/appme/pedometer/adapter/UURankingAdapter.java
  24. 20 0
      app_modular/appme/src/main/java/com/uas/appme/pedometer/bean/StepsRankingBean.java
  25. 18 5
      app_modular/appme/src/main/java/com/uas/appme/pedometer/utils/StepUtils.java
  26. 27 21
      app_modular/appme/src/main/java/com/uas/appme/pedometer/view/PersonalPageActivity.java
  27. 232 37
      app_modular/appme/src/main/java/com/uas/appme/pedometer/view/UURanking.java
  28. 14 1
      app_modular/appme/src/main/java/com/uas/appme/settings/activity/BComSetCompanyRestActivity.java
  29. 12 1
      app_modular/appme/src/main/java/com/uas/appme/settings/activity/BComSetEmployeeRestActivity.java
  30. 2 0
      app_modular/appme/src/main/java/com/uas/appme/settings/activity/BRestActivity.java
  31. 8 2
      app_modular/appme/src/main/java/com/uas/appme/settings/activity/BSettingActivity.java
  32. 164 0
      app_modular/appme/src/main/java/com/uas/appme/settings/activity/BusinessHoursSetting.java
  33. 15 2
      app_modular/appme/src/main/java/com/uas/appme/settings/activity/FeedbackActivity.java
  34. 9 1
      app_modular/appme/src/main/java/com/uas/appme/settings/activity/ImageSettingActivity.java
  35. 8 7
      app_modular/appme/src/main/java/com/uas/appme/settings/activity/PersonSettingActivity.java
  36. 18 6
      app_modular/appme/src/main/java/com/uas/appme/settings/activity/SettingActivity.java
  37. 46 0
      app_modular/appme/src/main/res/layout/business_hours_setting_activity.xml
  38. 2 2
      app_modular/appme/src/main/res/layout/uu_ranking_activity.xml
  39. 1 1
      app_modular/apputils/src/main/java/com/modular/apputils/utils/PopupWindowHelper.java
  40. 5 1
      app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/activity/ExpenseReimbursementActivity.java
  41. 4 0
      app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/activity/MissionActivity.java

+ 6 - 4
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/secretary/BookingListActivity.java

@@ -28,6 +28,7 @@ import com.core.base.HttpImp;
 import com.core.base.OABaseActivity;
 import com.core.net.http.ViewUtil;
 import com.core.utils.CommonUtil;
+import com.core.utils.sp.UserSp;
 import com.core.widget.CustomerScrollView;
 import com.core.widget.EmptyLayout;
 import com.core.widget.MyListView;
@@ -189,6 +190,7 @@ public class BookingListActivity extends OABaseActivity implements HttpImp, View
                     model.setId(Integer.valueOf(viewHolder.model.getAb_id()));
                     model.setAddress(viewHolder.model.getAb_address());
                     model.setType(viewHolder.model.getAb_content());//行业关键代码
+                    model.setIndustrycode(viewHolder.model.getAb_content());
                     model.setEndtime(viewHolder.model.getAb_endtime());
                     model.setName(viewHolder.model.getAb_bman());
 
@@ -334,9 +336,9 @@ public class BookingListActivity extends OABaseActivity implements HttpImp, View
         showLoading();
         String url = Constants.IM_BASE_URL + "user/appBookingList";
         Map<String, Object> params = new HashMap<>();
-        params.put("token", MyApplication.getInstance().mAccessToken);
-        params.put("userid", MyApplication.getInstance().mLoginUser.getUserId());
-        params.put("telephone", MyApplication.getInstance().mLoginUser.getTelephone());
+        params.put("token",  UserSp.getInstance(MyApplication.getInstance()).getAccessToken(""));
+        params.put("userid", UserSp.getInstance(MyApplication.getInstance()).getUserId(""));
+        params.put("telephone",  UserSp.getInstance(MyApplication.getInstance()).getTelephone(""));
         params.put("yearmonth", DateFormatUtil.getStrDate4Date(curDate, "yyyyMM"));
         LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
         headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
@@ -449,7 +451,7 @@ public class BookingListActivity extends OABaseActivity implements HttpImp, View
                                     model.setAb_recordid(object.getString("sb_recordid"));
                                     model.setAb_recordman(object.getString("sb_recordor"));
                                     model.setAb_sharestatus("未共享");
-                                    model.setAb_starttime(object.getString("ab_starttime"));
+                                    model.setAb_starttime(object.getString("sb_starttime"));
                                     model.setAb_type(object.getString("sb_stname"));//科目
                                     model.setKind(object.getString("kind"));//关键字段
                                     model.setData_service(object.toJSONString());

+ 1 - 0
app_core/common/src/main/java/com/core/model/LoginEntity.java

@@ -5,6 +5,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 public class LoginEntity {
+	
 	private String account;
 	private String platform;
 	private String master;

+ 17 - 11
app_core/common/src/main/java/com/core/widget/view/selectcalendar/SelectCalendarActivity.java

@@ -401,9 +401,14 @@ public class SelectCalendarActivity extends BaseActivity implements View.OnClick
             @Override
             public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                 GridDataAdapter.ViewModle modle = (GridDataAdapter.ViewModle) view.getTag();
-                //ToastMessage(modle.tv_text.getText().toString());
                 gAdapter.setSelected(position);
                 gAdapter.notifyDataSetChanged();
+                if (type == 1 || type == 4||type==3) {
+                    if (!modle.clicked) {
+                        ToastMessage("该时间段不能预约!");
+                        return;
+                    }
+                }
                 if (type == 3) {
                     tv_time_point.setText(tv_time_point.getText().toString().substring(0, 10) + " " + modle.tv_text.getText().toString());
                 }
@@ -437,12 +442,7 @@ public class SelectCalendarActivity extends BaseActivity implements View.OnClick
                     ToastMessage("请先选择日期,再选择时间段!");
                     return;
                 }
-                if (type == 1 || type == 4) {
-                    if (!modle.clicked) {
-                        ToastMessage("该时间段不能预约!");
-                        return;
-                    }
-                }
+               
 
                 if (swich) {
                     //时间段请假:
@@ -627,6 +627,7 @@ public class SelectCalendarActivity extends BaseActivity implements View.OnClick
     }
 
     private void initTimeData() {
+        if (!ListUtils.isEmpty(mTimeData))mTimeData.clear();
         if (type == 2) {
             mTimeData.addAll(timeAddMuilt("00:00", "23:45", 15));
             if (mContext != null) {
@@ -817,7 +818,7 @@ public class SelectCalendarActivity extends BaseActivity implements View.OnClick
             if (type == 3) {
                 if (!StringUtil.isEmpty(tv_time_point.getText().toString())) {
                     String today = DateFormatUtil.long2Str(DateFormatUtil.YMD_HM);
-                    if (today.compareTo(tv_time_point.getText().toString()) > 0){
+                    if (today.compareTo(tv_time_point.getText().toString()) >= 0){
                         ToastMessage("不能预约过去时间");
                         return;
                     }                    
@@ -1185,7 +1186,11 @@ public class SelectCalendarActivity extends BaseActivity implements View.OnClick
                     }
                 }
             }
-            getBookingTime(imId);
+            if (type==1) {
+                getBookingTime(imId);
+            }else if(type==4||type==3){
+                getBServiceTimes();
+            }
         }
 
 
@@ -1364,10 +1369,11 @@ public class SelectCalendarActivity extends BaseActivity implements View.OnClick
                             }
                         });
                     } catch (Exception e) {
-                        initTimeData();
+                        e.printStackTrace();
+                        //initTimeData();
                     }
                 } else {
-                    initTimeData();
+                  //  initTimeData();
                 }
 
             }

+ 26 - 0
app_core/common/src/main/res/layout/bsetting_activity.xml

@@ -208,7 +208,33 @@
             android:layout_centerVertical="true"
             android:background="@drawable/oa_next"
             android:contentDescription="@string/app_name" />
+    </RelativeLayout>
 
+    <RelativeLayout
+        android:id="@+id/business_hours_rl"
+        style="@style/IMTbleLine"
+        android:background="@drawable/selector_me_menu_item_bg">
+        <View
+            android:layout_alignParentBottom="true"
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/line"
+            android:background="@color/item_line" />
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerVertical="true"
+            android:gravity="center"
+            android:text="设置营业时间"
+            android:textColor="@color/black"
+            android:textSize="14sp" />
+        <ImageView
+            android:layout_width="@dimen/next_width"
+            android:layout_height="@dimen/next_height"
+            android:layout_alignParentRight="true"
+            android:layout_centerVertical="true"
+            android:background="@drawable/oa_next"
+            android:contentDescription="@string/app_name" />
+        Business hours
     </RelativeLayout>
 
 </LinearLayout>

+ 4 - 4
app_core/common/src/main/res/layout/person_setting_activity.xml

@@ -102,7 +102,7 @@
                     android:layout_alignParentRight="true"
                     android:layout_centerVertical="true"
                     android:background="@null"
-                    android:hint="请选择(必选)"
+                    android:hint="@string/common_select_not_must"
                     android:textSize="15sp"
                     android:gravity="center_vertical|right"
                     />
@@ -133,11 +133,11 @@
                     android:layout_alignParentRight="true"
                     android:layout_centerVertical="true"
                     android:background="@null"
-                    android:hint="@string/common_input"
+                    android:hint="@string/common_input1"
                     android:textSize="15sp"
                     android:gravity="center_vertical|right"
                     whatever:testType="regexp"
-                    whatever:customRegexp="^[A-Za-z\u4e00-\u9fa5]{1,8}+$"
+                    whatever:customRegexp="^[A-Za-z\u4e00-\u9fa5]{0,8}+$"
                     whatever:testErrorString="姓名只能为8个字符之内的中、英文"
                    />
             </RelativeLayout>
@@ -200,7 +200,7 @@
                     android:layout_centerVertical="true"
                     android:background="@null"
                     android:layout_toRightOf="@+id/email_tv"
-                    android:hint="@string/common_input"
+                    android:hint="@string/common_input1"
                     android:textSize="15sp"
                     android:gravity="center_vertical|right"
                     whatever:testType="regexp"

+ 8 - 4
app_core/network/src/main/java/com/me/network/app/http/interceptor/LogInterceptor.java

@@ -1,8 +1,12 @@
 package com.me.network.app.http.interceptor;
 
+import android.util.Log;
+
+import com.alibaba.fastjson.JSON;
 import com.me.network.app.http.HttpClient;
 
 import java.io.IOException;
+import java.net.URLDecoder;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -77,10 +81,10 @@ public class LogInterceptor implements Interceptor {
 		  okhttp3.MediaType mediaType = response.body().contentType();
           String content = response.body().string();
          if (builder.isDebug()) {
-//			 LogUtil.d("HttpLogs","接口URL:" + JSON.toJSONString(response.request().url().toString()));
-//			 LogUtil.d("HttpLogs","请求头:"+ JSON.toJSONString(response.request().headers().toMultimap()));
-//			 LogUtil.d("HttpLogs","参数:" + URLDecoder.decode(postParam.toString(),"UTF-8"));
-//			 LogUtil.d("HttpLogs","返回结果:" + content);
+			 Log.d("HttpLogs","接口URL:" + JSON.toJSONString(response.request().url().toString()));
+			 Log.d("HttpLogs","请求头:"+ JSON.toJSONString(response.request().headers().toMultimap()));
+			 Log.d("HttpLogs","参数:" + URLDecoder.decode(postParam.toString(),"UTF-8"));
+			 Log.d("HttpLogs","返回结果:" + content);
 		}
     
 		return response.newBuilder()

+ 4 - 2
app_modular/appbooking/src/main/java/com/modular/booking/activity/business/BBookingAddActivity.java

@@ -208,6 +208,7 @@ public class BBookingAddActivity extends OABaseActivity implements View.OnClickL
                 intent.putExtra("type", 1);
                 intent.putExtra("title", getString(R.string.booking_object_name));
                 intent.putExtra("isSingleSelect", false);
+                intent.putParcelableArrayListExtra("models",models);
                 startActivityForResult(intent, 0x01);
             }
         } else if (i == R.id.rl_company) {
@@ -216,13 +217,14 @@ public class BBookingAddActivity extends OABaseActivity implements View.OnClickL
         }
     }
 
-
+    ArrayList<ContactsModel> models;
     @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+         
         if (data == null) return;
         switch (requestCode) {
             case 0x01://对象
-                ArrayList<ContactsModel> models = data.getParcelableArrayListExtra("data");
+                models = data.getParcelableArrayListExtra("data");
                 //拿到多个预约对象,需要下拉他们的企业信息
                 StringBuilder names = new StringBuilder("");
                 StringBuilder imids = new StringBuilder("");

+ 8 - 8
app_modular/appbooking/src/main/java/com/modular/booking/activity/services/BServiceAddActivity.java

@@ -145,9 +145,9 @@ public class BServiceAddActivity extends OABaseActivity implements View.OnClickL
                         AvatarHelper.getInstance().displayAvatar(sb_userid, max_img, true);
                         tv_title.setText(sb_username);
                         if("10005".equals(model.getIndustrycode())){
-                            tv_sub.setText("特聘导师");
+                            tv_sub.setText(R.string.booking_serivce_technician);
                         }else{
-                            tv_sub.setText("特聘技师");
+                            tv_sub.setText(R.string.booking_serivce_teacher);
                         }
                     }else{ 
                         AvatarHelper.getInstance().display(model.getUrl(), iv_header, true);
@@ -173,9 +173,10 @@ public class BServiceAddActivity extends OABaseActivity implements View.OnClickL
                         AvatarHelper.getInstance().displayAvatar(sb_userid, max_img, true);
                         tv_title.setText(sb_username);
                         if("10005".equals(model.getIndustrycode())){
-                            tv_sub.setText("特聘导师");
+                            tv_sub.setText(R.string.booking_serivce_technician);
+                         
                         }else{
-                            tv_sub.setText("特聘技师");
+                            tv_sub.setText(R.string.booking_serivce_teacher);
                         }
                     }else{
                         tv_title.setText(model.getName());
@@ -290,11 +291,12 @@ public class BServiceAddActivity extends OABaseActivity implements View.OnClickL
             //TODO  1.当model.getBookType()==0的时候,只能选择开始时间,没有结束时间,当model.getBookType()==1的时候,可选开始时间和结束时间,时间间隔是 30分钟
             //TODO  2.需要传进去商家的id或是ktv包厢的id,在里面请求,判断商家繁忙时刻 5.11、获取商家服务繁忙时间段
             String serviceParam = null;
-            if (isHasPerson) {
+            if (!StringUtil.isEmpty(sb_userid)||"10001".equals(model.getIndustrycode())) {
                 serviceParam = serviceId;
             } else {
                 serviceParam = serviceName;
             }
+            LogUtil.d(TAG,"serviceParam:"+serviceParam);
             startActivityForResult(new Intent(mContext, SelectCalendarActivity.class)
                             .putExtra("startDate", DateFormatUtil.long2Str(DateFormatUtil.YMD_HMS))
                             .putExtra("endDate", DateFormatUtil.long2Str(DateFormatUtil.YMD_HMS))
@@ -305,7 +307,7 @@ public class BServiceAddActivity extends OABaseActivity implements View.OnClickL
                             .putExtra("businessType", model.getType())
                             .putExtra("startTime", model.getStarttime())
                             .putExtra("endTime", model.getEndtime())
-                            .putExtra("serviceId", StringUtil.isEmpty(serviceId) == true ? "" : serviceId)
+                            .putExtra("serviceId", StringUtil.isEmpty(serviceParam) == true ? "" : serviceParam)
                             .putExtra("type", 3)
                     , TIME_SELECT);
         }
@@ -519,8 +521,6 @@ public class BServiceAddActivity extends OABaseActivity implements View.OnClickL
     //load 选择服务人员
     public void loadServiceMan(String serviceId, final String title) {
         progressDialog.show();
-        LogUtil.d("HttpLogs", "serviceId:" + serviceId);
-        LogUtil.d("HttpLogs", "companyid:" + model.getCompanyid());
         HttpClient httpClient = new HttpClient.Builder(Constants.IM_BASE_URL).isDebug(BaseConfig.isDebug()).build();
         httpClient.Api().send(new HttpClient.Builder()
                 .url("user/appStoreman")

+ 82 - 1
app_modular/appbooking/src/main/java/com/modular/booking/activity/services/BServiceListActivity.java

@@ -2,8 +2,14 @@ package com.modular.booking.activity.services;
 
 import android.content.Intent;
 import android.os.Bundle;
+import android.support.v7.app.ActionBar;
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.AdapterView;
+import android.widget.ImageView;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
@@ -15,8 +21,12 @@ import com.common.data.ListUtils;
 import com.core.app.Constants;
 import com.core.app.MyApplication;
 import com.core.base.OABaseActivity;
+import com.core.interfac.OnVoiceCompleteListener;
 import com.core.utils.BaiduMapUtil;
+import com.core.utils.CommonUtil;
 import com.core.utils.DistanceUtils;
+import com.core.utils.ToastUtil;
+import com.core.widget.ClearEditText;
 import com.core.widget.EmptyLayout;
 import com.core.widget.VoiceSearchView;
 import com.handmark.pulltorefresh.library.PullToRefreshListView;
@@ -65,8 +75,79 @@ public class BServiceListActivity extends OABaseActivity {
         emptyLayout=new EmptyLayout(mContext,mListView.getRefreshableView());
         mListAdapter=new ItemBserviceListAdapter(mContext,modelList);
         mListView.setAdapter(mListAdapter);
+
+        initSearchView();
     }
- 
+
+    private ImageView mBackImageView, mVoiceImageView;
+    private ClearEditText mSearchEditText;
+    private EmptyLayout mEmptyLayout;
+    private void initSearchView() {
+        View view = LayoutInflater.from(ct).inflate(R.layout.action_book_service_search, null);
+        mBackImageView = (ImageView) view.findViewById(R.id.book_service_search_back);
+        mVoiceImageView = (ImageView) view.findViewById(R.id.book_service_search_voice_iv);
+        mSearchEditText = (ClearEditText) view.findViewById(R.id.book_service_search_et);
+        ActionBar bar = this.getSupportActionBar();
+        bar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
+        bar.setCustomView(view);
+        mBackImageView.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                finish();
+            }
+        });
+        mVoiceImageView.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                CommonUtil.getVoiceText(ct, mSearchEditText, new OnVoiceCompleteListener() {
+                    @Override
+                    public void onVoiceComplete() {
+                        ToastUtil.showToast(BServiceListActivity.this, "语音输入完毕");
+                    }
+                });
+            }
+        });
+
+        mEmptyLayout = new EmptyLayout(this, mListView.getRefreshableView());
+        mEmptyLayout.setShowEmptyButton(false);
+        mEmptyLayout.setShowErrorButton(false);
+        mEmptyLayout.setShowLoadingButton(false);
+
+        mSearchEditText.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+            }
+
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+                if (!TextUtils.isEmpty(s.toString())){
+                    if (!ListUtils.isEmpty(modelList)){
+                        List<SBListModel> tempList=new ArrayList<>();
+                        for (int i = 0; i <modelList.size() ; i++) {
+                            if (modelList.get(i).getName().contains(s.toString())){
+                                tempList.add(modelList.get(i));
+                            }
+                        }
+                        if (ListUtils.isEmpty(tempList))  mEmptyLayout.showEmpty();
+                        LogUtil.d(TAG,"tempList:"+JSON.toJSONString(tempList.toString()));
+                        mListAdapter.setObjects(tempList);
+                        mListAdapter.notifyDataSetChanged();
+
+                    }
+                }else{
+                    mListAdapter.setObjects(modelList);
+                    mListAdapter.notifyDataSetChanged();
+                }
+            }
+        });
+    }
+
     private void initEvent() {
         mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
             @Override

+ 1 - 1
app_modular/appbooking/src/main/java/com/modular/booking/activity/services/BServiceSearchActivity.java

@@ -91,6 +91,7 @@ public class BServiceSearchActivity extends OABaseActivity implements View.OnCli
                            tempList.add(mBServiceList.get(i));
                         }
                     }
+                    if (ListUtils.isEmpty(tempList)) mEmptyLayout.showEmpty();
                     LogUtil.d(TAG,"tempList:"+JSON.toJSONString(tempList.toString()));
                     mBserviceListAdapter.setObjects(tempList);
                     mBserviceListAdapter.notifyDataSetChanged();
@@ -220,7 +221,6 @@ public class BServiceSearchActivity extends OABaseActivity implements View.OnCli
             CommonUtil.getVoiceText(this, mSearchEditText, new OnVoiceCompleteListener() {
                 @Override
                 public void onVoiceComplete() {
-                    // TODO: 2017/9/30 语音输入后开始搜索
                     ToastUtil.showToast(BServiceSearchActivity.this, "语音输入完毕");
                 }
             });

+ 63 - 68
app_modular/appbooking/src/main/java/com/modular/booking/activity/services/BServicesActivity.java

@@ -1,17 +1,12 @@
 package com.modular.booking.activity.services;
 
 import android.content.Intent;
-import android.graphics.Color;
 import android.graphics.drawable.Drawable;
-import android.os.Build;
 import android.os.Bundle;
 import android.os.Handler;
 import android.support.v7.app.ActionBar;
 import android.view.LayoutInflater;
 import android.view.View;
-import android.view.Window;
-import android.view.WindowManager;
-import android.widget.AbsListView;
 import android.widget.AdapterView;
 import android.widget.ImageView;
 import android.widget.ListView;
@@ -66,22 +61,22 @@ public class BServicesActivity extends OABaseActivity implements View.OnClickLis
     protected void onCreate(Bundle savedInstanceState) {
        // getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
         super.onCreate(savedInstanceState);
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
-            Window window = getWindow();
-           // window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
-            window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
-        }
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
-            Window window = getWindow();
-            window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
-                    | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
-            window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
-                    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
-                    | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
-            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
-            //window.setStatusBarColor(Color.TRANSPARENT);
-            window.setNavigationBarColor(Color.TRANSPARENT);
-        }
+//        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
+//            Window window = getWindow();
+//           // window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
+//            window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
+//        }
+//        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+//            Window window = getWindow();
+//            window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
+//                    | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
+//            window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
+//                    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
+//                    | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
+//            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
+//            //window.setStatusBarColor(Color.TRANSPARENT);
+//            window.setNavigationBarColor(Color.TRANSPARENT);
+//        }
        
         setContentView(R.layout.activity_bservices);
         
@@ -178,18 +173,18 @@ public class BServicesActivity extends OABaseActivity implements View.OnClickLis
     @Override
     protected void onResume() {
         super.onResume();
-        drawBg.setAlpha(80);
+//        drawBg.setAlpha(80);
     }
 
     @Override
     public void onBackPressed() {
         super.onBackPressed();
-        new Handler().postDelayed(new Runnable() {
-            @Override
-            public void run() {
-                drawBg.setAlpha(255);
-            }
-        },10);
+//        new Handler().postDelayed(new Runnable() {
+//            @Override
+//            public void run() {
+//                drawBg.setAlpha(255);
+//            }
+//        },10);
     }
 
     @Override
@@ -235,46 +230,46 @@ public class BServicesActivity extends OABaseActivity implements View.OnClickLis
             }
         });
         //监听滚动事件
-        mListView.setOnScrollListener(new AbsListView.OnScrollListener() {
-            private int DISTANCE =900;
-
-            @Override
-            public void onScrollStateChanged(AbsListView view, int scrollState) {
-
-            }
-
-            @Override
-            public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
-                int offset = 0;
-                if (firstVisibleItem == 0||firstVisibleItem==1) {
-                    View firstItem = mListView.getRefreshableView().getChildAt(0);
-                    if (firstItem != null) {
-                        offset = 0 - firstItem.getTop()+120;
-                    }
-                } else {
-                    offset =DISTANCE-1;
-                }
-
-                float percent = (offset * 1f) / (DISTANCE * 1f) ;
-                if (percent >=0 && percent < 1) {
-                    drawBg.setAlpha((int)(percent *255));
-                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
-                        getWindow().setStatusBarColor(getResources().getColor(R.color.antionbarcolor));
-                    }
-                }else if(percent>=1&&firstVisibleItem!=1){
-                    drawBg.setAlpha((int)(percent *255));
-                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
-                        getWindow().setStatusBarColor(getResources().getColor(R.color.antionbarcolor));
-                    }
-                }else if(percent==1){
-                    drawBg.setAlpha(255);
-                }
-                LogUtil.d(TAG,"offset:"+offset);
-                LogUtil.d(TAG,"percent:"+(int)(percent *255));
-             
-
-            }
-        });
+//        mListView.setOnScrollListener(new AbsListView.OnScrollListener() {
+//            private int DISTANCE =900;
+//
+//            @Override
+//            public void onScrollStateChanged(AbsListView view, int scrollState) {
+//
+//            }
+//
+//            @Override
+//            public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
+//                int offset = 0;
+//                if (firstVisibleItem == 0||firstVisibleItem==1) {
+//                    View firstItem = mListView.getRefreshableView().getChildAt(0);
+//                    if (firstItem != null) {
+//                        offset = 0 - firstItem.getTop()+120;
+//                    }
+//                } else {
+//                    offset =DISTANCE-1;
+//                }
+//
+//                float percent = (offset * 1f) / (DISTANCE * 1f) ;
+//                if (percent >=0 && percent < 1) {
+//                    drawBg.setAlpha((int)(percent *255));
+//                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+//                        getWindow().setStatusBarColor(getResources().getColor(R.color.antionbarcolor));
+//                    }
+//                }else if(percent>=1&&firstVisibleItem!=1){
+//                    drawBg.setAlpha((int)(percent *255));
+//                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+//                        getWindow().setStatusBarColor(getResources().getColor(R.color.antionbarcolor));
+//                    }
+//                }else if(percent==1){
+//                    drawBg.setAlpha(255);
+//                }
+//                LogUtil.d(TAG,"offset:"+offset);
+//                LogUtil.d(TAG,"percent:"+(int)(percent *255));
+//             
+//
+//            }
+//        });
 
         mBackImageView.setOnClickListener(this);
         mSearchTv.setOnClickListener(this);

+ 1 - 1
app_modular/appbooking/src/main/java/com/modular/booking/adapter/ItemBserviceStoremanListAdapter.java

@@ -69,7 +69,7 @@ public class ItemBserviceStoremanListAdapter extends BaseAdapter {
 
     private void initializeViews(final SBStoremanModel object, ViewHolder holder) {
         holder.bserviceStoremanTitleTv.setText(object.getSm_username());
-        AvatarHelper.getInstance().display(object.getSm_userid(),  holder.bserviceStoremanIv, true);
+        AvatarHelper.getInstance().displayAvatar(object.getSm_userid(),  holder.bserviceStoremanIv, true);
         holder.model=object;
         holder.bserviceStoremanOrderBtn.setOnClickListener(new View.OnClickListener() {
             @Override

+ 1 - 1
app_modular/appbooking/src/main/res/layout/action_book_service_search.xml

@@ -29,7 +29,7 @@
             android:background="@drawable/search_input"
             android:drawableLeft="@drawable/search"
             android:drawableRight="@drawable/search_clear"
-            android:hint="@string/search"
+            android:hint="请输入餐厅/会所等名称"
             android:imeOptions="actionSearch"
             android:inputType="text"
             android:paddingRight="26dp"

+ 1 - 2
app_modular/appbooking/src/main/res/layout/header_bservices_grid.xml

@@ -4,13 +4,12 @@
     android:layout_height="match_parent"
     android:background="@color/white"
     android:orientation="vertical">
-
+    <!--android:layout_marginTop="80dp"-->
     <com.core.widget.view.MyGridView
         android:id="@+id/mGridView"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:background="@color/white"
-        android:layout_marginTop="80dp"
         android:horizontalSpacing="1dp"
         android:numColumns="3"
         android:paddingTop="5dp"

+ 2 - 0
app_modular/appbooking/src/main/res/values-en/strings.xml

@@ -37,6 +37,8 @@
     <string name="booking_add_company">企业</string>
     <string name="unspecified_hair_stylist">不指定发型师,预约门店</string>
     <string name="specified_hair_stylist">指定发型师</string>
+    <string name="booking_serivce_teacher">特聘导师</string>
+    <string name="booking_serivce_technician">特聘技师</string>
 
 
     <string-array name="booking_reject">

+ 2 - 0
app_modular/appbooking/src/main/res/values-zh-rCN/strings.xml

@@ -37,6 +37,8 @@
     <string name="booking_add_company">企业</string>
     <string name="unspecified_hair_stylist">不指定发型师,预约门店</string>
     <string name="specified_hair_stylist">指定发型师</string>
+    <string name="booking_serivce_teacher">特聘导师</string>
+    <string name="booking_serivce_technician">特聘技师</string>
 
 
     <string-array name="booking_reject">

+ 2 - 0
app_modular/appbooking/src/main/res/values-zh-rTW/strings.xml

@@ -37,6 +37,8 @@
     <string name="booking_add_company">企业</string>
     <string name="unspecified_hair_stylist">不指定发型师,预约门店</string>
     <string name="specified_hair_stylist">指定发型师</string>
+    <string name="booking_serivce_teacher">特聘导师</string>
+    <string name="booking_serivce_technician">特聘技师</string>
 
 
     <string-array name="booking_reject">

+ 2 - 0
app_modular/appbooking/src/main/res/values/strings.xml

@@ -38,6 +38,8 @@
     <string name="booking_add_company">企业</string>
     <string name="unspecified_hair_stylist">不指定发型师,预约门店</string>
     <string name="specified_hair_stylist">指定发型师</string>
+    <string name="booking_serivce_teacher">特聘导师</string>
+    <string name="booking_serivce_technician">特聘技师</string>
 
     <string-array name="booking_reject">
         <item>请选择拒绝理由</item>

+ 13 - 1
app_modular/appcontact/src/main/java/com/uas/appcontact/ui/activity/ContactsActivity.java

@@ -37,6 +37,7 @@ import com.common.system.SystemUtil;
 import com.common.thread.ThreadPool;
 import com.core.api.wxapi.ApiPlatform;
 import com.core.api.wxapi.ApiUtils;
+import com.core.app.AppConstant;
 import com.core.app.Constants;
 import com.core.app.MyApplication;
 import com.core.base.OABaseActivity;
@@ -66,7 +67,6 @@ import com.core.xmpp.dao.FriendDao;
 import com.core.xmpp.dao.NewFriendDao;
 import com.core.xmpp.listener.OnCompleteListener;
 import com.core.xmpp.model.AddAttentionResult;
-import com.core.app.AppConstant;
 import com.handmark.pulltorefresh.library.PullToRefreshBase;
 import com.handmark.pulltorefresh.library.PullToRefreshListView;
 import com.lidroid.xutils.ViewUtils;
@@ -108,6 +108,7 @@ public class ContactsActivity extends OABaseActivity implements ContactsAdapter.
     private int allSelect = 0;
 
     private LinearLayout include_tag;
+    private ArrayList<ContactsModel> stateModels= new ArrayList<>();//记住状态值
 
 
     @Override
@@ -146,6 +147,7 @@ public class ContactsActivity extends OABaseActivity implements ContactsAdapter.
             type = getIntent().getIntExtra("type", 0);
             String title = getIntent().getStringExtra("title");
             isSingleSelect = getIntent().getBooleanExtra("isSingleSelect", true);
+            stateModels=getIntent().getParcelableArrayListExtra("models");
             if (isSingleSelect) {
                 select_rl.setVisibility(View.GONE);
             } else {
@@ -464,6 +466,16 @@ public class ContactsActivity extends OABaseActivity implements ContactsAdapter.
             @Override
             public void run() {
                 final List<ContactsModel> lists = getLocalContactsByDB();
+                //上传
+//                if (!ListUtils.isEmpty(stateModels)){
+//                    for (int i = 0; i <lists.size() ; i++) {
+//                        for (int j = 0; j <stateModels.size(); j++) {
+//                            if (lists.get(i).getImid().equals(stateModels.get(j).getImid())){
+//                                lists.get(i).setClick(stateModels.get(j).isClick);
+//                            }
+//                        }
+//                    }
+//                }
                 ThreadPool.getThreadPool().addTask(new Runnable() {
                     @Override
                     public void run() {

+ 0 - 2
app_modular/applogin/src/main/java/com/modular/login/activity/LoginActivity.java

@@ -34,11 +34,9 @@ import com.core.utils.ToastUtil;
 import com.core.utils.helper.AvatarHelper;
 import com.core.utils.helper.LoginHelper;
 import com.modular.login.R;
-import com.modular.login.activity.RegisterSelectActivity;
 
 import java.util.HashMap;
 
-
 import de.hdodenhof.circleimageview.CircleImageView;
 
 

+ 2 - 0
app_modular/appme/src/main/AndroidManifest.xml

@@ -65,5 +65,7 @@
             android:label="@string/more"/>
         <activity android:name=".settings.activity.BSetComRestListActivity"
             android:label="@string/more"/>
+        <activity android:name=".settings.activity.BusinessHoursSetting"
+            android:label="设置营业时间"/>
     </application>
 </manifest>

+ 12 - 28
app_modular/appme/src/main/java/com/uas/appme/pedometer/adapter/UUAttentionAdapter.java

@@ -7,6 +7,8 @@ import android.widget.BaseAdapter;
 import android.widget.ImageView;
 import android.widget.TextView;
 
+import com.alibaba.fastjson.JSON;
+import com.common.LogUtil;
 import com.common.data.ListUtils;
 import com.core.app.MyApplication;
 import com.core.utils.CommonUtil;
@@ -65,36 +67,18 @@ public class UUAttentionAdapter extends BaseAdapter{
         }else {
             viewHolder = (ViewHolder) convertView.getTag();
         }
-//        if(!MyApplication.getInstance().mLoginUser.getUserId().equals(model.getAttrank().get(position).getAs_userid())){  //关注的人不应该显示自己,但是数据返回了自己,这里要判断一下不显示
-            viewHolder.name_tv.setText(model.getAttrank().get(position).getAs_username());
-            viewHolder.steps_tv.setText(model.getAttrank().get(position).getAs_uusteps());
-            viewHolder.prise_tv.setText(model.getAttrank().get(position).getAs_prise());
+        viewHolder.name_tv.setText(model.getAttrank().get(position).getAs_username());
+        viewHolder.steps_tv.setText(model.getAttrank().get(position).getAs_uusteps());
+        viewHolder.prise_tv.setText(model.getAttrank().get(position).getAs_prise());
 
-//            viewHolder.photo_img.setImageResource(CommonUtil.getNumByString(model.getAttrank().get(position).getAs_userid()));
         AvatarHelper.getInstance().display(CommonUtil.getNumByString(model.getAttrank().get(position).getAs_userid()) + "", viewHolder.photo_img, true, false);//显示圆角图片
-
-            for (int i = 0; i < model.getToalrank().size(); i++) {
-            if (model.getAttrank().get(position).getAs_userid().equals(model.getToalrank().get(i).getAs_userid())){
-                viewHolder.ranking_tv.setText("第"+model.getToalrank().get(i).getRank()+"名");
-                break;
-            }
-
-            if (MyApplication.getInstance().mLoginUser.getUserId().equals(model.getAttrank().get(position).getAs_userid())
-                    && Integer.valueOf(model.getAttrank().get(position).getAs_prise()) > 0)
-                viewHolder.prise_im.setImageResource(R.drawable.praised);
-            }
-
-        //点赞后的红色图标显示
-        if (!ListUtils.isEmpty(model.getPricelist())){
-            for (int i = 0; i < model.getPricelist().size(); i++) {
-                if (model.getPricelist().get(i).getAp_userid().equals(model.getAttrank().get(position).getAs_userid())){
-                    viewHolder.prise_im.setImageResource(R.drawable.praised);
-                    break;//个人的点赞列表id中已经存在当前position的userid 则不点赞
-                }else if (i==model.getPricelist().size()-1){
-                    viewHolder.prise_im.setImageResource(R.drawable.praise);
-                }
-            }
-        }
+        viewHolder.ranking_tv.setText("第"+model.getAttrank().get(position).getRank()+"名");
+        if (model.getAttrank().get(position).getPrised() ||
+                (MyApplication.getInstance().mLoginUser.getUserId().equals(model.getAttrank().get(position).getAs_userid())  //自己获赞数 > 0
+                        && CommonUtil.getNumByString(model.getAttrank().get(position).getAs_prise()) > 0))
+            viewHolder.prise_im.setImageResource(R.drawable.praised);
+        else
+            viewHolder.prise_im.setImageResource(R.drawable.praise);
 
         viewHolder.prise_im.setOnClickListener(new View.OnClickListener() {
             @Override

+ 8 - 14
app_modular/appme/src/main/java/com/uas/appme/pedometer/adapter/UURankingAdapter.java

@@ -7,6 +7,8 @@ import android.widget.BaseAdapter;
 import android.widget.ImageView;
 import android.widget.TextView;
 
+import com.alibaba.fastjson.JSON;
+import com.common.LogUtil;
 import com.common.data.ListUtils;
 import com.core.app.MyApplication;
 import com.core.utils.CommonUtil;
@@ -73,26 +75,18 @@ public class UURankingAdapter extends BaseAdapter{
             viewHolder.steps_tv.setTextColor(mContext.getResources().getColor(R.color.approvaling));
         else
             viewHolder.steps_tv.setTextColor(mContext.getResources().getColor(R.color.green));
+
         viewHolder.steps_tv.setText(model.getToalrank().get(position).getAs_uusteps());
         viewHolder.prise_tv.setText(model.getToalrank().get(position).getAs_prise());
-//        viewHolder.photo_img.setImageResource(CommonUtil.getNumByString(model.getToalrank().get(position).getAs_userid()));
         AvatarHelper.getInstance().display(CommonUtil.getNumByString(model.getToalrank().get(position).getAs_userid()) + "", viewHolder.photo_img, true, false);//显示圆角图片
-        if (MyApplication.getInstance().mLoginUser.getUserId().equals(model.getToalrank().get(position).getAs_userid())
-                && Integer.valueOf(model.getToalrank().get(position).getAs_prise()) > 0)
+
+        if (model.getToalrank().get(position).getPrised() ||
+                (MyApplication.getInstance().mLoginUser.getUserId().equals(model.getToalrank().get(position).getAs_userid())  //自己获赞数 > 0
+                && CommonUtil.getNumByString(model.getToalrank().get(position).getAs_prise()) > 0))
             viewHolder.prise_im.setImageResource(R.drawable.praised);
         else
             viewHolder.prise_im.setImageResource(R.drawable.praise);
-        //点赞后的红色图标显示
-        if (!ListUtils.isEmpty(model.getPricelist())){
-            for (int i = 0; i < model.getPricelist().size(); i++) {
-                if (model.getPricelist().get(i).getAp_userid().equals(model.getToalrank().get(position).getAs_userid())){
-                    viewHolder.prise_im.setImageResource(R.drawable.praised);
-                    break;//个人的点赞列表id中已经存在当前position的userid 则不点赞
-                }else if (i==model.getPricelist().size()-1){
-                    viewHolder.prise_im.setImageResource(R.drawable.praise);
-                }
-            }
-        }
+
         viewHolder.prise_im.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {

+ 20 - 0
app_modular/appme/src/main/java/com/uas/appme/pedometer/bean/StepsRankingBean.java

@@ -56,6 +56,16 @@ public class StepsRankingBean {
         private String as_username;
         private String as_uusteps;
         private int rank;
+        private Boolean prised;
+
+
+        public Boolean getPrised() {
+            return prised;
+        }
+
+        public void setPrised(Boolean prised) {
+            this.prised = prised;
+        }
 
         public String getAs_prise() {
             return as_prise;
@@ -132,6 +142,16 @@ public class StepsRankingBean {
         private String as_username;
         private String as_uusteps;
         private int rank;
+        private Boolean prised;
+
+
+        public Boolean getPrised() {
+            return prised;
+        }
+
+        public void setPrised(Boolean prised) {
+            this.prised = prised;
+        }
 
         public String getAs_prise() {
             return as_prise;

+ 18 - 5
app_modular/appme/src/main/java/com/uas/appme/pedometer/utils/StepUtils.java

@@ -15,6 +15,7 @@ import com.common.data.ListUtils;
 import com.common.data.StringUtil;
 import com.core.app.AppConstant;
 import com.core.app.MyApplication;
+import com.core.broadcast.MsgBroadcast;
 import com.core.model.Friend;
 import com.core.model.XmppMessage;
 import com.core.utils.CommonUtil;
@@ -172,18 +173,25 @@ public class StepUtils {
      * @param type
      * @param position
      */
-    public static void doStepPriseHttp(StepsRankingBean model, int type, int position) {
+    public static void doStepPriseHttp(StepsRankingBean model, final int type, final int position) {
         Boolean doPrise = true;
         String userid = null;
         switch (type){
             case 2:
                 userid = model.getAttrank().get(position).getAs_userid();
+                if (model.getAttrank().get(position).getPrised()) //已经赞过了
+                    doPrise = false;
                 break;
             case 3:
                 userid = model.getToalrank().get(position).getAs_userid();
+                if (model.getToalrank().get(position).getPrised()) //已经赞过了
+                    doPrise = false;
                 break;
         }
-        if (!ListUtils.isEmpty(model.getPricelist())){
+
+        if (!StringUtil.isEmpty(userid) && MyApplication.getInstance().mLoginUser.getUserId().equals(userid))
+            doPrise = false; //不可以赞自己
+/*        if (!ListUtils.isEmpty(model.getPricelist())){
             for (int i = 0; i < model.getPricelist().size(); i++) {
                 if (model.getPricelist().get(i).getAp_userid().equals(userid)){
                     doPrise = false;
@@ -193,11 +201,11 @@ public class StepUtils {
             }
         }else{
             doPrise = true;
-        }
+        }*/
 
         Log.i("doPrise",doPrise.toString());
         if (!doPrise) return;
-        if (StringUtil.isEmpty(userid) || MyApplication.getInstance().mLoginUser.getUserId().equals(userid)) return;  //不可以赞自己
+
         //点赞操作
         HttpClient httpClient = new HttpClient.Builder(Constant.BASE_STEP_URL).isDebug(true).build(true);
         httpClient.Api().send(new HttpClient.Builder()
@@ -215,7 +223,12 @@ public class StepUtils {
                 try {
                     //TODO 请求操作成功后发广播更新排行版界面
                     //发送本地广播
-                    LocalBroadcastManager.getInstance(MyApplication.getInstance().getApplicationContext()).sendBroadcast(new Intent(AppConstant.UPDATE_STEPRANKING_PRISE));
+                    Intent intent = new Intent();
+                    intent.putExtra("type", type);
+                    intent.putExtra("position",position);
+                    intent.setAction(AppConstant.UPDATE_STEPRANKING_PRISE);
+                    MsgBroadcast.sendLocalBroadcast(intent);
+//                    LocalBroadcastManager.getInstance(MyApplication.getInstance().getApplicationContext()).sendBroadcast(new Intent(AppConstant.UPDATE_STEPRANKING_PRISE));
                 }catch (Exception e){
                     e.printStackTrace();
                 }

+ 27 - 21
app_modular/appme/src/main/java/com/uas/appme/pedometer/view/PersonalPageActivity.java

@@ -119,6 +119,7 @@ public class PersonalPageActivity extends BaseActivity implements View.OnClickLi
         initData();
     }
 
+    private int appStepsPost = 0;
     private void initData() {
         if (!CommonUtil.isNetWorkConnected(this)) {
             ToastMessage(getString(R.string.common_notlinknet));
@@ -139,8 +140,12 @@ public class PersonalPageActivity extends BaseActivity implements View.OnClickLi
                 if (!JSONUtil.validate(o.toString()) || o == null) return;
                 LogUtil.prinlnLongMsg("appSteps", o.toString());
                 if (o.toString().contains("com.mysql.jdbc.exceptions.jdbc4") || (o.toString().contains("resultCode") && o.toString().contains("resultMsg"))){
-                    progressDialog.dismiss();
-                    ToastMessage("接口异常,请稍后再试");
+                    appStepsPost++;
+
+                    if (appStepsPost < 3)
+                        initData();
+                    else
+                        ToastMessage("网络慢,请稍后再试");
                     return;
                 }else {
                     try {
@@ -153,25 +158,6 @@ public class PersonalPageActivity extends BaseActivity implements View.OnClickLi
                 }
             }
         }));
-
-        //获取点赞信息
-        httpClient.Api().send(new HttpClient.Builder()
-                .url("appPriseList")
-                .add("userid",userid)
-                .add("token",MyApplication.getInstance().mAccessToken)
-                .method(Method.GET)
-                .build(),new ResultSubscriber<>(new ResultListener<Object>() {
-            @Override
-            public void onResponse(Object o) {
-                if (!JSONUtil.validate(o.toString()) || o == null) return;
-                LogUtil.prinlnLongMsg("appPriseList", o.toString()+"");
-                try {
-
-                }catch (Exception e){
-                    e.printStackTrace();
-                }
-            }
-        }));
     }
 
 
@@ -221,6 +207,26 @@ public class PersonalPageActivity extends BaseActivity implements View.OnClickLi
         String now_time = TimeUtil.getWeekStr(TimeUtil.getCurrentDate());
         mMovementTotalKmTimeTv.setText(now_time);
         mMovementTotalStepsTimeTv.setText(now_time);
+
+        //获取点赞信息
+        HttpClient httpClient = new HttpClient.Builder(Constant.BASE_STEP_URL).isDebug(true).build(true);
+        httpClient.Api().send(new HttpClient.Builder()
+                .url("appPriseList")
+                .add("userid",userid)
+                .add("token",MyApplication.getInstance().mAccessToken)
+                .method(Method.GET)
+                .build(),new ResultSubscriber<>(new ResultListener<Object>() {
+            @Override
+            public void onResponse(Object o) {
+                if (!JSONUtil.validate(o.toString()) || o == null) return;
+                LogUtil.prinlnLongMsg("appPriseList", o.toString()+"");
+                try {
+
+                }catch (Exception e){
+                    e.printStackTrace();
+                }
+            }
+        }));
     }
 
     private void doAttendHandle(int attention_type) {

+ 232 - 37
app_modular/appme/src/main/java/com/uas/appme/pedometer/view/UURanking.java

@@ -9,6 +9,7 @@ import android.content.ServiceConnection;
 import android.os.Bundle;
 import android.os.IBinder;
 import android.support.v4.content.LocalBroadcastManager;
+import android.util.Log;
 import android.view.View;
 import android.widget.AdapterView;
 import android.widget.ImageView;
@@ -30,7 +31,7 @@ import com.core.widget.MyListView;
 import com.core.xmpp.CoreService;
 import com.me.network.app.http.HttpClient;
 import com.me.network.app.http.Method;
-import com.me.network.app.http.rx.ResultListener;
+import com.me.network.app.http.rx.Result2Listener;
 import com.me.network.app.http.rx.ResultSubscriber;
 import com.uas.appcontact.model.contacts.ContactsModel;
 import com.uas.appcontact.ui.activity.ContactsActivity;
@@ -73,19 +74,64 @@ public class UURanking extends BaseActivity implements View.OnClickListener {
     private StepsRankingBean mStepsRankingBean;
     private int att_position = -1;
     private int all_position = -1;
-    private BroadcastReceiver updateReceiver = new BroadcastReceiver() {
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            initData();
-        }
-    };
     private int my_rank = -1;
     private CircleImageView first_ranking_im;
     private TextView first_ranking_tv;
-    private String first_ranking_imid = null;  //第一名imid
-    private String first_ranking_name = null; //第一名名字
+//    private String first_ranking_imid = null;  //第一名imid
+//    private String first_ranking_name = null; //第一名名字
     private String shareStepStr = "我正在使用UU运动计步功能,你也一起来吧";
     private CoreService mService;
+    private Boolean canShowAtt = false; // Attend,All数据源不断改变,为了不重复刷新适配器,当符合canShowAtt == true && canShowAll == true 再一起刷新适配器
+    private Boolean canShowAll = false;
+    private BroadcastReceiver updateReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+//            initData();
+            int brType = intent.getIntExtra("type",-1);
+            int brposition = intent.getIntExtra("position",-1);
+
+
+            LogUtil.prinlnLongMsg("brType,brposition",brType+","+brposition+"");
+            try {
+                if (brType != -1 && brposition != -1){
+                    if (brType == 2){  // 点赞的是AttRank
+                        mStepsRankingBean.getAttrank().get(brposition).setPrised(true);
+                        mStepsRankingBean.getAttrank().get(brposition).setAs_prise(
+                                String.valueOf(CommonUtil.getNumByString(mStepsRankingBean.getAttrank().get(brposition).getAs_prise())+1));
+                        mAttenAdapter.notifyDataSetChanged();
+                        if (ListUtils.isEmpty(mStepsRankingBean.getToalrank())) return;
+                        for (int i = 0; i < mStepsRankingBean.getToalrank().size(); i++) { //去更新AllRank
+                            if (mStepsRankingBean.getAttrank().get(brposition).getAs_userid().equals(mStepsRankingBean.getToalrank().get(i).getAs_userid())){
+                                mStepsRankingBean.getToalrank().get(i).setAs_prise(
+                                        String.valueOf(CommonUtil.getNumByString(mStepsRankingBean.getToalrank().get(i).getAs_prise())+1));
+                                mStepsRankingBean.getToalrank().get(i).setPrised(true);
+                                mRankAdapter.notifyDataSetChanged();
+                                break;
+                            }
+                        }
+                    }else if (brType == 3){  // 点赞的是AllRank人地方
+                        mStepsRankingBean.getToalrank().get(brposition).setPrised(true);
+                        mStepsRankingBean.getToalrank().get(brposition).setAs_prise(
+                                String.valueOf(CommonUtil.getNumByString(mStepsRankingBean.getToalrank().get(brposition).getAs_prise())+1));
+                        mRankAdapter.notifyDataSetChanged();
+                        if (ListUtils.isEmpty(mStepsRankingBean.getAttrank())) return;
+                        for (int i = 0; i < mStepsRankingBean.getAttrank().size(); i++) { //去更新AttRank
+                            if (mStepsRankingBean.getToalrank().get(brposition).getAs_userid().equals(mStepsRankingBean.getAttrank().get(i).getAs_userid())){
+                                mStepsRankingBean.getAttrank().get(i).setAs_prise(
+                                        String.valueOf(CommonUtil.getNumByString(mStepsRankingBean.getAttrank().get(i).getAs_prise())+1));
+                                mStepsRankingBean.getAttrank().get(i).setPrised(true);
+                                mAttenAdapter.notifyDataSetChanged();
+                                break;
+                            }
+                        }
+                    }
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+    };
+
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -145,13 +191,13 @@ public class UURanking extends BaseActivity implements View.OnClickListener {
         }
 
     }
-
+    private int Timeout = 0;
+    private int testRequest = 0;
     private void initData() {
         if (!CommonUtil.isNetWorkConnected(this)) {
             ToastMessage(getString(R.string.common_notlinknet));
             return;
         }
-
         progressDialog.show();
         //获取所有人的当天步数数据
         HttpClient httpClient = new HttpClient.Builder(Constant.BASE_STEP_URL).isDebug(true).build(true);
@@ -159,34 +205,39 @@ public class UURanking extends BaseActivity implements View.OnClickListener {
                 .url("appStepsrank")
                 .add("userid",MyApplication.getInstance().mLoginUser.getUserId())
                 .add("token",MyApplication.getInstance().mAccessToken)
-
+                .connectTimeout(10000)
                 .method(Method.POST)
-                .build(),new ResultSubscriber<>(new ResultListener<Object>() {
+                .build(),new ResultSubscriber<>(new Result2Listener<Object>() {
             @Override
             public void onResponse(Object o) {
                 if (!JSONUtil.validate(o.toString()) || o == null) return;
-                LogUtil.prinlnLongMsg("appStepsrank", o.toString()+"");
-
-                if (o.toString().contains("resultCode") && o.toString().contains("resultMsg")){
+                LogUtil.prinlnLongMsg("c", Timeout+"-"+o.toString()+"");
+                LogUtil.prinlnLongMsg("appStepsranktestRequest", testRequest+"-"+o.toString()+"");
+                if ((o.toString().contains("resultCode") && o.toString().contains("resultMsg"))
+                        || (o.toString().contains("data") &&
+                        "java.lang.NullPointerException".equals(JSON.parseObject(o.toString()).getString("data"))) ){
+                    testRequest ++;
+                    if (testRequest >= 10) {
+                        progressDialog.dismiss();
+                        ToastMessage("数据获取异常,请稍后再试");
+                    }else {   // 数据返回异常再请求 ,最多10次
+                        initData();
+                    }
+                }else if (o.toString().contains("toalrank"))
+                    handleData(o.toString());
+                else{
                     progressDialog.dismiss();
                     ToastMessage("数据获取异常,请稍后再试");
-                    return;
-                }else
-                    try {
-                    mStepsRankingBean = JSON.parseObject(o.toString(),StepsRankingBean.class);
-                    mRankAdapter.setModel(mStepsRankingBean);
-                    mAllPtlv.setAdapter(mRankAdapter);
-                    mRankAdapter.notifyDataSetChanged();
-
-                    mAttenAdapter.setModel(mStepsRankingBean);
-                    mAttentionPtlv.setAdapter(mAttenAdapter);
-                    mAttenAdapter.notifyDataSetChanged();
-                    if (mStepsRankingBean.getAttrank().size()>0)
-                        mAttentionLl.setVisibility(View.VISIBLE);
-                    showMyInfo();
-                    LogUtil.prinlnLongMsg("mStepsRankingBean", JSON.toJSONString(mStepsRankingBean)+"");
-                }catch (Exception e){
-                    e.printStackTrace();
+                }
+            }
+
+            @Override
+            public void onFailure(Object t) {
+                Timeout++; // 请求超时后再请求再次请求直到拿到数据,最多3次请求
+                LogUtil.prinlnLongMsg("appStepsrankflh", Timeout+"");
+                if (Timeout == 3) {
+                    progressDialog.dismiss();
+                    ToastMessage(getString(R.string.too_long_to_http));
                 }
             }
         }));
@@ -194,6 +245,149 @@ public class UURanking extends BaseActivity implements View.OnClickListener {
 
     }
 
+    private void handleData(String s) {
+        try {
+            mStepsRankingBean = JSON.parseObject(s.toString(),StepsRankingBean.class);
+            if (mStepsRankingBean == null)  {
+                progressDialog.dismiss();
+                Log.i("mStepsRankingBean","mStepsRankingBean==null");
+                ToastMessage("数据获取异常,请稍后再试");
+                return;
+            }
+            //getPricelist()有数据不为空,自己点赞过别人
+            if (!ListUtils.isEmpty(mStepsRankingBean.getPricelist())){
+
+                //循环从点赞表与关注表对比,getAttrank()的_userid在getPricelist()中存在,则设置setPrised(true),显示红心
+                if (!ListUtils.isEmpty(mStepsRankingBean.getAttrank())){
+                    for (int i = 0; i < mStepsRankingBean.getAttrank().size(); i++) {
+                        for (int j = 0; j<mStepsRankingBean.getPricelist().size();j++) {
+                            if (mStepsRankingBean.getAttrank().get(i).getAs_userid().equals(mStepsRankingBean.getPricelist().get(j).getAp_userid())) {
+                                mStepsRankingBean.getAttrank().get(i).setPrised(true);
+                                break;
+                            } else
+                                mStepsRankingBean.getAttrank().get(i).setPrised(false);
+                        }
+                        //关心的人中为自己时,看自己的被点赞次数>0 设置setPrised(true)
+                        if (MyApplication.getInstance().mLoginUser.getUserId().equals(mStepsRankingBean.getAttrank().get(i).getAs_userid())
+                                && CommonUtil.getNumByString(mStepsRankingBean.getAttrank().get(i).getAs_prise())>0)
+                            mStepsRankingBean.getAttrank().get(i).setPrised(true);
+
+                        if (i==mStepsRankingBean.getAttrank().size()-1){
+                            handleAttendRank(mStepsRankingBean);
+                        }
+                    }
+                }else {
+                    canShowAtt=true;
+                    showAttAndAllRank();
+                }
+
+                //循环从点赞表与关注表对比,getToalrank()的_userid在getPricelist()中存在,则设置setPrised(true),显示红心
+                if (!ListUtils.isEmpty(mStepsRankingBean.getToalrank())){
+                    for (int i = 0; i < mStepsRankingBean.getToalrank().size(); i++) {
+                        for (int j = 0; j < mStepsRankingBean.getPricelist().size();j++) {
+                            if (mStepsRankingBean.getToalrank().get(i).getAs_userid().equals(mStepsRankingBean.getPricelist().get(j).getAp_userid())) {
+                                mStepsRankingBean.getToalrank().get(i).setPrised(true);
+                                break;
+                            } else
+                                mStepsRankingBean.getToalrank().get(i).setPrised(false);
+
+                        }
+                        //所有人中为自己时,看自己的被点赞次数>0 设置setPrised(true)
+                        if (MyApplication.getInstance().mLoginUser.getUserId().equals(mStepsRankingBean.getToalrank().get(i).getAs_userid()) &&
+                                CommonUtil.getNumByString(mStepsRankingBean.getToalrank().get(i).getAs_prise())>0)
+                                mStepsRankingBean.getToalrank().get(i).setPrised(true);
+
+                        if (i==mStepsRankingBean.getToalrank().size()-1){
+                            canShowAll=true;
+                            showAttAndAllRank();
+                        }
+
+                    }
+                }else
+                    progressDialog.dismiss();
+
+            }else {  //getPricelist()数据为空,自己没点赞过别人
+                if (!ListUtils.isEmpty(mStepsRankingBean.getToalrank())){
+                    for (int i = 0; i < mStepsRankingBean.getToalrank().size(); i++) {
+                        mStepsRankingBean.getToalrank().get(i).setPrised(false);
+                        if (i==mStepsRankingBean.getToalrank().size()-1){
+                            canShowAll=true;
+                            showAttAndAllRank();
+                        }
+                    }
+                }else
+                    progressDialog.dismiss();
+
+                if (!ListUtils.isEmpty(mStepsRankingBean.getAttrank())){
+                    for (int i = 0; i < mStepsRankingBean.getAttrank().size(); i++) {
+                        mStepsRankingBean.getAttrank().get(i).setPrised(false);
+                        if (i==mStepsRankingBean.getAttrank().size()-1){
+                            handleAttendRank(mStepsRankingBean);
+                        }
+                    }
+                }else {
+                    canShowAtt=true;
+                    showAttAndAllRank();
+                }
+
+            }
+            if (mStepsRankingBean.getAttrank() != null && mStepsRankingBean.getAttrank().size()>0)
+                mAttentionLl.setVisibility(View.VISIBLE);
+            else
+                mAttentionLl.setVisibility(View.GONE);
+        }catch (Exception e){
+            progressDialog.dismiss();
+            ToastMessage("数据解析异常,请稍后再试");
+            e.printStackTrace();
+            Log.i("Exceptionflh",testRequest+"数据解析异常,请稍后再试");
+            LogUtil.prinlnLongMsg("Exceptionflh",testRequest+"-"+e.toString());
+        }
+    }
+
+
+    //关注的人在排行榜的排名获取
+    private void handleAttendRank(StepsRankingBean mStepsRankingBean) {
+        if (!ListUtils.isEmpty(mStepsRankingBean.getAttrank()) && !ListUtils.isEmpty(mStepsRankingBean.getToalrank())){
+            for (int i = 0; i < mStepsRankingBean.getAttrank().size(); i++) {
+                for (int j=0;j<mStepsRankingBean.getToalrank().size();j++){
+                    if (!StringUtil.isEmpty(mStepsRankingBean.getAttrank().get(i).getAs_userid()) &&
+                            !StringUtil.isEmpty(mStepsRankingBean.getToalrank().get(j).getAs_userid()) &&
+                            mStepsRankingBean.getAttrank().get(i).getAs_userid().equals(mStepsRankingBean.getToalrank().get(j).getAs_userid()) &&
+                            !StringUtil.isEmpty(mStepsRankingBean.getToalrank().get(j).getRank()+"")){
+                        mStepsRankingBean.getAttrank().get(i).setRank(mStepsRankingBean.getToalrank().get(j).getRank());
+                        break;
+                    }
+                }
+                if (i==mStepsRankingBean.getAttrank().size()-1){
+                    canShowAtt = true;
+                    showAttAndAllRank();
+                }
+            }
+        }
+    }
+
+    private void showAttAndAllRank() {
+        if (canShowAtt && canShowAll){
+            showMyInfo();
+
+            mRankAdapter.setModel(mStepsRankingBean);
+            mAllPtlv.setAdapter(mRankAdapter);
+            mRankAdapter.notifyDataSetChanged();
+
+            mAttenAdapter.setModel(mStepsRankingBean);
+            mAttentionPtlv.setAdapter(mAttenAdapter);
+            mAttenAdapter.notifyDataSetChanged();
+
+            LogUtil.prinlnLongMsg("mStepsRankingBeanLast", JSON.toJSONString(mStepsRankingBean)+"");
+        }
+        Log.i("showAttAndAllRank",testRequest+"-"+canShowAtt+","+canShowAll);
+//        if (MyApplication.getInstance().mLoginUser.getUserId().equals("108340"))
+//            ToastMessage("canShowAtt,canShowAll="+canShowAtt+","+canShowAll);
+//        testRequest++;
+//        if (testRequest<999999)
+//            initData();
+    }
+
     private void showMyInfo() {
         if (mStepsRankingBean == null || ListUtils.isEmpty(mStepsRankingBean.getToalrank())) return;
         //显示当前登录人的步数排名
@@ -209,8 +403,9 @@ public class UURanking extends BaseActivity implements View.OnClickListener {
             }
         }
 
-        first_ranking_imid = mStepsRankingBean.getToalrank().get(0).getAs_userid();
-        first_ranking_name = mStepsRankingBean.getToalrank().get(0).getAs_username();
+        //显示第一名信息
+        String first_ranking_imid = mStepsRankingBean.getToalrank().get(0).getAs_userid();
+        String first_ranking_name = mStepsRankingBean.getToalrank().get(0).getAs_username();
         if (!StringUtil.isEmpty(first_ranking_imid) && !StringUtil.isEmpty(first_ranking_name)){
             AvatarHelper.getInstance().display(CommonUtil.getNumByString(first_ranking_imid) + "", first_ranking_im, true, false);//显示圆角图片
             first_ranking_tv.setText(first_ranking_name+"获得了排行榜第一");
@@ -271,6 +466,7 @@ public class UURanking extends BaseActivity implements View.OnClickListener {
                     type = 1;
                     title = "我";
                 }else {
+                    if (mStepsRankingBean.getAttrank() == null) return;
                     for (int i = 0; i < mStepsRankingBean.getAttrank().size(); i++) {
                         if (mStepsRankingBean.getToalrank().get(position).getAs_userid()
                                 .equals(mStepsRankingBean.getAttrank().get(i).getAs_userid())){  //当点击的所有人某一人在关注人的遍历中存在时
@@ -330,7 +526,7 @@ public class UURanking extends BaseActivity implements View.OnClickListener {
         }
     }
 
-    //对于处理点击关注或者取消关注后返回的焦点聚焦,回到之前位置的问题
+    //对于处理点击关注或者取消关注后返回的焦点聚焦,回到之前位置的问题,不然会出现被挤出去情况
     private void doPositionFocus() {
         if (all_position != -1 && all_position<mStepsRankingBean.getToalrank().size()){
             mAllPtlv.setSelection(all_position);
@@ -341,7 +537,6 @@ public class UURanking extends BaseActivity implements View.OnClickListener {
         }else if (att_position != -1 && att_position >= mStepsRankingBean.getAttrank().size()) {
             mAttentionPtlv.setSelection(mStepsRankingBean.getAttrank().size() - 1);
         }
-
         progressDialog.dismiss();
     }
 

+ 14 - 1
app_modular/appme/src/main/java/com/uas/appme/settings/activity/BComSetCompanyRestActivity.java

@@ -18,6 +18,7 @@ import com.common.data.CalendarUtil;
 import com.common.data.DateFormatUtil;
 import com.common.data.JSONUtil;
 import com.common.data.ListUtils;
+import com.common.data.StringUtil;
 import com.core.app.MyApplication;
 import com.core.base.BaseActivity;
 import com.core.utils.CommonUtil;
@@ -98,9 +99,21 @@ public class BComSetCompanyRestActivity extends BaseActivity implements View.OnC
             mList.add(model);
             myAdapter.notifyDataSetChanged();
         }else if (v.getId() == R.id.save_bt){
+            if (!CommonUtil.isNetWorkConnected(ct)) {
+                ToastMessage(getString(R.string.common_notlinknet));
+                return;
+            }
             LogUtil.prinlnLongMsg("mList", JSON.toJSONString(mList));
             if (ListUtils.isEmpty(mList)) return;
-            doSave(mList);
+
+            for (int i = 0; i < mList.size(); i++) {
+                if (StringUtil.isEmpty(mList.get(i).getSc_date())){
+                    ToastMessage("请输入完整休息日期");
+                    break;
+                }
+                if (i==mList.size()-1)
+                    doSave(mList);
+            }
         }
     }
 

+ 12 - 1
app_modular/appme/src/main/java/com/uas/appme/settings/activity/BComSetEmployeeRestActivity.java

@@ -161,9 +161,20 @@ public class BComSetEmployeeRestActivity extends BaseActivity implements View.On
             mList.add(model);
             myAdapter.notifyDataSetChanged();
         }else if (v.getId() == R.id.save_bt){
+            if (!CommonUtil.isNetWorkConnected(ct)) {
+                ToastMessage(getString(R.string.common_notlinknet));
+                return;
+            }
             LogUtil.prinlnLongMsg("mList", JSON.toJSONString(mList));
             if (ListUtils.isEmpty(mList)) return;
-            doSave(mList);
+            for (int i = 0; i < mList.size(); i++) {
+                if (StringUtil.isEmpty(mList.get(i).getSf_username()) || StringUtil.isEmpty(mList.get(i).getSf_date())){
+                    ToastMessage("请输入完整姓名/休息日期");
+                    break;
+                }
+                if (i==mList.size()-1)
+                    doSave(mList);
+            }
         }
     }
 

+ 2 - 0
app_modular/appme/src/main/java/com/uas/appme/settings/activity/BRestActivity.java

@@ -5,6 +5,7 @@ import android.os.Bundle;
 import android.support.v7.widget.DefaultItemAnimator;
 import android.support.v7.widget.RecyclerView;
 import android.view.View;
+import android.widget.Toast;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
@@ -222,6 +223,7 @@ public class BRestActivity extends BaseActivity implements BRestAdapter.OnItemCl
 							ToastMessage(o.toString());
 							if (JSONUtil.getBoolean(o.toString(), "result")) {
 								setResult(20);
+								Toast.makeText(ct,getString(R.string.update_success),Toast.LENGTH_LONG).show();
 								finish();
 							}
 						}

+ 8 - 2
app_modular/appme/src/main/java/com/uas/appme/settings/activity/BSettingActivity.java

@@ -28,6 +28,7 @@ public class BSettingActivity extends BaseActivity implements View.OnClickListen
 
     private String sc_industry = null;
     private String sc_industrycode = null;
+    private String business_iamge;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -42,7 +43,6 @@ public class BSettingActivity extends BaseActivity implements View.OnClickListen
         httpClient.Api().send(new HttpClient.Builder()
                 .url("user/appCompanyType")
                 .add("companyid", Constant.BASE_COMPANYID)
-//                .add("companyid",201)
                 .add("token",MyApplication.getInstance().mAccessToken)
                 .method(Method.GET)
                 .build(),new ResultSubscriber<>(new ResultListener<Object>() {
@@ -60,12 +60,15 @@ public class BSettingActivity extends BaseActivity implements View.OnClickListen
                 sc_industrycode = array.getJSONObject(0).getString("sc_industrycode");
             }
         }));
+
+        business_iamge = getIntent().getStringExtra("business_iamge");
     }
 
     @Override
     public void onClick(View v) {
         if (v.getId() == R.id.image_setting_rl){
-            startActivity(new Intent(this,ImageSettingActivity.class));
+            startActivity(new Intent(this,ImageSettingActivity.class)
+            .putExtra("business_iamge",business_iamge));
         }else if (v.getId() == R.id.keshi_setting_rl){
             
         }else if (v.getId() == R.id.people_setting_rl){
@@ -84,6 +87,8 @@ public class BSettingActivity extends BaseActivity implements View.OnClickListen
             startActivity(new Intent(ct,BSettingLocationActivity.class)
                     .putExtra("sc_industry",sc_industry)
                     .putExtra("sc_industrycode",sc_industrycode));
+        }else if (v.getId() == R.id.business_hours_rl){
+            startActivity(new Intent(ct,BusinessHoursSetting.class));
         }
     }
 
@@ -94,5 +99,6 @@ public class BSettingActivity extends BaseActivity implements View.OnClickListen
         findViewById(R.id.employeerest_rl).setOnClickListener(this);
         findViewById(R.id.companyrest_rl).setOnClickListener(this);
         findViewById(R.id.batchplace_rl).setOnClickListener(this);
+        findViewById(R.id.business_hours_rl).setOnClickListener(this);
     }
 }

+ 164 - 0
app_modular/appme/src/main/java/com/uas/appme/settings/activity/BusinessHoursSetting.java

@@ -0,0 +1,164 @@
+package com.uas.appme.settings.activity;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.alibaba.fastjson.JSON;
+import com.common.LogUtil;
+import com.common.data.DateFormatUtil;
+import com.common.data.JSONUtil;
+import com.common.data.StringUtil;
+import com.core.app.MyApplication;
+import com.core.base.BaseActivity;
+import com.core.widget.view.selectcalendar.SelectCalendarActivity;
+import com.me.network.app.http.HttpClient;
+import com.me.network.app.http.Method;
+import com.me.network.app.http.rx.ResultListener;
+import com.me.network.app.http.rx.ResultSubscriber;
+import com.uas.appme.R;
+import com.uas.appme.settings.Constant.Constant;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Created by FANGlh on 2017/10/23.
+ * function:
+ */
+
+public class BusinessHoursSetting extends BaseActivity implements View.OnClickListener {
+    private TextView mTvStartTime;
+    private TextView mTvEndTime;
+    private Button mSubmitBtn;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.business_hours_setting_activity);
+        initView();
+        initData();
+    }
+
+
+
+    private void initView() {
+
+        mTvStartTime = (TextView) findViewById(R.id.tv_startTime);
+        mTvEndTime = (TextView) findViewById(R.id.tv_endTime);
+        mSubmitBtn = (Button) findViewById(R.id.submit_btn);
+
+        mTvStartTime.setOnClickListener(this);
+        mTvEndTime.setOnClickListener(this);
+        mSubmitBtn.setOnClickListener(this);
+    }
+
+    @Override
+    public void onClick(View v) {
+        if (v.getId() == R.id.submit_btn){
+            doSaveBHours();
+        }else if (v.getId() == R.id.tv_startTime){
+            startActivityForResult(new Intent(mContext, SelectCalendarActivity.class)
+                            .putExtra("startDate", DateFormatUtil.long2Str(DateFormatUtil.YMD_HMS))
+                            .putExtra("endDate", DateFormatUtil.long2Str(DateFormatUtil.YMD_HMS))
+                            .putExtra("hasMenu", false)
+                            .putExtra("type", 2)
+                    , 0x24);
+        }else if (v.getId() == R.id.tv_endTime){
+            startActivityForResult(new Intent(mContext, SelectCalendarActivity.class)
+                            .putExtra("startDate", DateFormatUtil.long2Str(DateFormatUtil.YMD_HMS))
+                            .putExtra("endDate", DateFormatUtil.long2Str(DateFormatUtil.YMD_HMS))
+                            .putExtra("hasMenu", false)
+                            .putExtra("type", 2)
+                    , 0x24);
+        }
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        if (data == null) return;
+        switch (requestCode) {
+            case 0x24://时间
+                String   startTime = data.getStringExtra("startDate");
+                String   endTime = data.getStringExtra("endDate");
+//                String displayDate = startTime.substring(11, 16) + "-" + endTime.substring(11, 16);
+//                tvBookTimes.setText(displayDate);
+                mTvStartTime.setText(startTime);
+                mTvEndTime.setText(endTime);
+                break;
+
+        }
+    }
+
+    //获取是否之前有设置的时间
+    private void initData() {
+        HttpClient httpClient = new HttpClient.Builder(Constant.BASE_BOOKING_SETTING_URL).isDebug(true).build(true);
+        httpClient.Api().send(new HttpClient.Builder()
+                .url("user/appCompanyAdmin")
+                .add("companyid",Constant.BASE_COMPANYID)
+                .add("token", MyApplication.getInstance().mAccessToken)
+                .add("userid",MyApplication.getInstance().mLoginUser.getUserId())
+                .method(Method.GET)
+                .build(),new ResultSubscriber<>(new ResultListener<Object>() {
+            @Override
+            public void onResponse(Object o) {
+                try {
+                    if (!JSONUtil.validate(o.toString()) || o == null) return;
+                    LogUtil.prinlnLongMsg("appCompanyAdmin", o.toString()+"");
+// {"endtime":"17:00","result":"1","starttime":"10:00","url":"http://113.105.74.140:8081/u/123/100123/201709/o/ab6d93f74f9b4ec7a06f7dbfd725ec38.png"}
+
+                    if (o.toString().contains("starttime"))
+                        mTvStartTime.setText(JSON.parseObject(o.toString()).getString("starttime")+"");
+                    if (o.toString().contains("endtime"))
+                        mTvEndTime.setText(JSON.parseObject(o.toString()).getString("endtime"));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+
+            }
+        }));
+    }
+    private void doSaveBHours() {
+        if (StringUtil.isEmpty(mTvStartTime.getText().toString())||
+                StringUtil.isEmpty(mTvEndTime.getText().toString())){
+            ToastMessage("时间段不能为空!");
+            return;
+        }
+        if (mTvStartTime.getText().toString().compareTo(mTvEndTime.getText().toString())>=0){
+            ToastMessage(getString(R.string.not_time_start_biger_end));
+            return;
+        }
+        Map<String,Object> param = new HashMap<>();
+        param.put("sc_uu",Constant.BASE_COMPANYID);
+        param.put("sc_starttime",mTvStartTime.getText().toString());
+        param.put("sc_endtime",mTvEndTime.getText().toString());
+
+        LogUtil.prinlnLongMsg("appStoreUpdate",JSONUtil.map2JSON(param));
+        HttpClient httpClient = new HttpClient.Builder(Constant.BASE_BOOKING_SETTING_URL).isDebug(true).build(true);
+        httpClient.Api().send(new HttpClient.Builder()
+                .url("user/appStoreUpdate")
+                .add("map", JSONUtil.map2JSON(param))
+                .add("token", MyApplication.getInstance().mAccessToken)
+                .method(Method.POST)
+                .build(),new ResultSubscriber<>(new ResultListener<Object>() {
+            @Override
+            public void onResponse(Object o) {
+                try {
+                    if (!JSONUtil.validate(o.toString()) || o == null) return;
+                    LogUtil.prinlnLongMsg("appStoreUpdate", o.toString()+"");
+                    //{"result":"true"}
+                    if (o.toString().contains("result") && JSON.parseObject(o.toString()).getBooleanValue("result")){
+                        Toast.makeText(ct,getString(R.string.save_success),Toast.LENGTH_LONG).show();
+                        finish();
+                    }
+
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        }));
+    }
+}

+ 15 - 2
app_modular/appme/src/main/java/com/uas/appme/settings/activity/FeedbackActivity.java

@@ -1,5 +1,6 @@
 package com.uas.appme.settings.activity;
 
+import android.Manifest;
 import android.app.Activity;
 import android.app.AlertDialog;
 import android.app.ProgressDialog;
@@ -32,6 +33,7 @@ import com.common.data.DateFormatUtil;
 import com.common.data.JSONUtil;
 import com.common.data.ListUtils;
 import com.common.data.StringUtil;
+import com.common.system.PermissionUtil;
 import com.common.system.SystemUtil;
 import com.common.ui.CameraUtil;
 import com.common.ui.ImageUtil;
@@ -237,7 +239,11 @@ public class FeedbackActivity extends BaseActivity implements View.OnClickListen
                 int viewType = mAdapter.getItemViewType(position);
 
                 if (viewType == 1) {
-                    showSelectPictureDialog();//第一个
+                    if (PermissionUtil.lacksPermissions(ct, Manifest.permission.CAMERA)) {
+                        ToastUtil.showToast(ct, com.uas.appworks.R.string.not_camera_permission);
+                    } else {
+                        showSelectPictureDialog();//添加
+                    }
                     //TODO 选择图片页面
 //                    startActivityForResult(new Intent(ct, PhoneSelectActivity.class), 222);
 
@@ -314,7 +320,14 @@ public class FeedbackActivity extends BaseActivity implements View.OnClickListen
                     @Override
                     public void onClick(DialogInterface dialog, int which) {
                         if (which == 0) {
-                            takePhoto();
+                            try {
+                                takePhoto();
+                            } catch (Exception e) {
+                                String message=e.getMessage();
+                                if (!StringUtil.isEmpty(message)&&message.contains("Permission")){
+                                    ToastUtil.showToast(ct, com.uas.appworks.R.string.not_system_permission);
+                                }
+                            }
                         } else {
                             selectPhoto();
                         }

+ 9 - 1
app_modular/appme/src/main/java/com/uas/appme/settings/activity/ImageSettingActivity.java

@@ -77,12 +77,20 @@ public class ImageSettingActivity extends BaseActivity implements View.OnClickLi
         findViewById(R.id.image_tv).setOnClickListener(this);
         findViewById(R.id.btn_save).setOnClickListener(this);
         mProgressDialog = ProgressDialogUtil.init(mContext, null, getString(R.string.please_wait));
+
+        String business_iamge = getIntent().getStringExtra("business_iamge");
+        if (!StringUtil.isEmpty(business_iamge))
+            ImageLoader.getInstance().displayImage(business_iamge,mImageIm);
     }
 
     @Override
     public void onClick(View v) {
         if (v.getId() == R.id.image_tv){
-            showSelectPictureDialog();
+            if (PermissionUtil.lacksPermissions(ct, Manifest.permission.CAMERA)) {
+                ToastUtil.showToast(ct,R.string.not_camera_permission);
+            } else {
+                showSelectPictureDialog();//添加
+            }
         }else if (v.getId() == R.id.btn_save){
             if (!CommonUtil.isNetWorkConnected(ct)){
                 ToastMessage(getString(R.string.common_notlinknet));

+ 8 - 7
app_modular/appme/src/main/java/com/uas/appme/settings/activity/PersonSettingActivity.java

@@ -217,14 +217,15 @@ public class PersonSettingActivity extends BaseActivity implements View.OnClickL
 
     private void saveJudge() {
         if (mUserNameTv.testValidity() && mUserSexTv.testValidity()
-                && mUserJobTv.testValidity() &&
-                mUserTelTv.testValidity()&& mUserEmailTv.testValidity()
-                ){
-            if (mUserEmailTv.getText().toString().contains("@")){
+                && mUserTelTv.testValidity()){
+            if (!StringUtil.isEmpty(mUserEmailTv.getText().toString())) {
+                if (mUserEmailTv.getText().toString().contains("@")){
+                    saveRequest();
+                }else {
+                    ToastMessage(getString(com.uas.appcontact.R.string.Please_imput_the_correct_email_format));
+                }
+            }else
                 saveRequest();
-            }else {
-                ToastMessage(getString(com.uas.appcontact.R.string.Please_imput_the_correct_email_format));
-            }
 
         }
     }

+ 18 - 6
app_modular/appme/src/main/java/com/uas/appme/settings/activity/SettingActivity.java

@@ -103,6 +103,7 @@ public class SettingActivity extends BaseActivity implements View.OnClickListene
     private PopupWindow setWindow = null;//
     private RelativeLayout businessmen_setting_rl;
     private TextView bsettingRed;
+    private String business_iamge;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -269,10 +270,14 @@ public class SettingActivity extends BaseActivity implements View.OnClickListene
         HttpClient httpClient = new HttpClient.Builder(Constant.BASE_BOOKING_SETTING_URL).isDebug(true).build(true);
         httpClient.Api().send(new HttpClient.Builder()
                 .url("user/appCompanyAdmin")
-//                .add("companyid",CommonUtil.getSharedPreferences(MyApplication.getInstance(),"erp_uu"))
-                .add("companyid",201)
+//                .add("companyid",201)
+//                .add("userid",100254)
+//                .add("token",1)
+                .add("companyid",Constant.BASE_COMPANYID)
                 .add("userid", MyApplication.getInstance().mLoginUser.getUserId())
                 .add("token",MyApplication.getInstance().mAccessToken)
+
+
                 .method(Method.GET)
                 .build(),new ResultSubscriber<>(new ResultListener<Object>() {
             @Override
@@ -280,13 +285,19 @@ public class SettingActivity extends BaseActivity implements View.OnClickListene
                 if (!JSONUtil.validate(o.toString()) || o == null) return;
                 LogUtil.prinlnLongMsg("appCompanyAdmin", o.toString()+"");
                 try {
+                    //{"result":"1","url":"http://113.105.74.140:8081/u/0/0/201710/o/48fda5af663f40f795f2dd49e2d8801f.jpg"}
                     if (o.toString().contains("result")) {
-                        if ("1".equals(JSON.parseObject(o.toString()).getString("result")) && !CommonUtil.isReleaseVersion())
+                        if ("1".equals(JSON.parseObject(o.toString()).getString("result"))){
                             businessmen_setting_rl.setVisibility(View.VISIBLE);
-                        else if (!CommonUtil.isReleaseVersion())
+                            if (o.toString().contains("url"))
+                                business_iamge = JSON.parseObject(o.toString()).getString("url");
+                        }
+                        else if (!CommonUtil.isReleaseVersion()) {
                             businessmen_setting_rl.setVisibility(View.VISIBLE);
-                        else if (CommonUtil.isReleaseVersion())
+                        }
+                        else if (CommonUtil.isReleaseVersion()) {
                             businessmen_setting_rl.setVisibility(View.GONE);
+                        }
                     }
                 } catch (Exception e) {
                     e.printStackTrace();
@@ -423,7 +434,8 @@ public class SettingActivity extends BaseActivity implements View.OnClickListene
        }else if (v.getId() == R.id.cancel_tv){
            closePopupWindow();
        }else if (v.getId() == R.id.businessmen_setting_rl){
-           startActivity(new Intent(this,BSettingActivity.class));
+           startActivity(new Intent(this,BSettingActivity.class)
+           .putExtra("business_iamge",business_iamge));
            PreferenceUtils.putBoolean(Constant.B_SETTINGRED, true);
            bsettingRed.setVisibility(View.GONE);
        }

+ 46 - 0
app_modular/appme/src/main/res/layout/business_hours_setting_activity.xml

@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    >
+      <LinearLayout
+          android:layout_width="match_parent"
+          android:layout_height="wrap_content"
+          android:padding="20dp"
+          android:orientation="horizontal">
+          <TextView
+              android:layout_width="wrap_content"
+              android:layout_height="wrap_content" 
+              android:layout_gravity="center_vertical"
+              android:text="@string/booking_times"/>
+          <TextView
+              android:id="@+id/tv_startTime"
+              android:layout_width="wrap_content"
+              android:layout_height="wrap_content"
+              android:layout_gravity="center_vertical"
+              style="@style/crm_business_btn"
+              android:text="00:00"/>
+          <TextView
+              android:id="@+id/tv_endTime"
+              android:layout_width="wrap_content"
+              android:layout_height="wrap_content"
+              android:layout_gravity="center_vertical"
+              style="@style/crm_business_btn"
+              android:text="23:59"/>
+      </LinearLayout>  
+    
+    <Button
+            android:id="@+id/submit_btn"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="20dp"
+            android:layout_marginLeft="20dp"
+            android:layout_marginRight="20dp"
+            android:background="@drawable/bg_bule_btn"
+            android:padding="10dp"
+            android:text="@string/app_button_commit"
+            android:textColor="@color/white"
+            android:textSize="@dimen/text_main" />
+</LinearLayout>

+ 2 - 2
app_modular/appme/src/main/res/layout/uu_ranking_activity.xml

@@ -118,8 +118,8 @@
                   />
               <ImageView
                   android:id="@+id/prise_im"
-                  android:layout_width="20dp"
-                  android:layout_height="20dp"
+                  android:layout_width="25dp"
+                  android:layout_height="25dp"
                   android:src="@drawable/praise"
                   android:layout_alignParentRight="true"
                   android:layout_below="@+id/prise_tv"

+ 1 - 1
app_modular/apputils/src/main/java/com/modular/apputils/utils/PopupWindowHelper.java

@@ -107,7 +107,7 @@ public class PopupWindowHelper {
 				DisplayUtil.backgroundAlpha(ct, 1f);
 			}
 		});
-		if (onFindLikerListener != null) {
+		if (onFindLikerListener != null && 0 > 1) {
 			view.findViewById(R.id.select_erp).setVisibility(View.VISIBLE);
 			view.findViewById(R.id.select_erp).setOnClickListener(new View.OnClickListener() {
 				@Override

+ 5 - 1
app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/activity/ExpenseReimbursementActivity.java

@@ -1824,7 +1824,11 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
                 int viewType = mAdapter.getItemViewType(position);
                 int mPosition = (int) parent.getItemIdAtPosition(position);
                 if (viewType == 1) {
-                    showSelectPictureDialog();//第一个
+                    if (PermissionUtil.lacksPermissions(ct, Manifest.permission.CAMERA)) {
+                        ToastUtil.showToast(ct,R.string.not_camera_permission);
+                    } else {
+                        showSelectPictureDialog();//添加
+                    }
                     //TODO 选择图片页面
 //                    startActivityForResult(new Intent(ct, PhoneSelectActivity.class), 222);
                 } else {

+ 4 - 0
app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/activity/MissionActivity.java

@@ -104,6 +104,10 @@ public class MissionActivity extends OABaseActivity implements View.OnClickListe
 				item.setVisible(false);
 			}
 		}
+		MenuItem sign = menu.getItem(1);
+		if (sign.getItemId() == R.id.sign) {
+			sign.setVisible(false);
+		}
 		return super.onCreateOptionsMenu(menu);
 	}