Преглед изворни кода

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

raomeng пре 8 година
родитељ
комит
79a71aa9ab
49 измењених фајлова са 1492 додато и 212 уклоњено
  1. 5 5
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/message/PersonalRegActivity.java
  2. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/secretary/BookingListActivity.java
  3. 13 10
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/me/MeFragment.java
  4. 4 0
      app_core/common/src/main/java/com/core/app/AppConfig.java
  5. 5 3
      app_core/common/src/main/java/com/core/dao/StepRankingFirstDao.java
  6. 15 1
      app_core/common/src/main/java/com/core/model/StepRankingFirstBean.java
  7. 2 2
      app_core/common/src/main/res/drawable/select_weixin_list_item.xml
  8. 29 1
      app_core/common/src/main/res/layout/bsetting_activity.xml
  9. 5 6
      app_core/common/src/main/res/layout/image_setting_activity.xml
  10. 18 0
      app_core/common/src/main/res/layout/item_pop_list_select.xml
  11. 53 9
      app_modular/appbooking/src/main/java/com/modular/booking/activity/services/BServiceAddActivity.java
  12. 1 1
      app_modular/appbooking/src/main/java/com/modular/booking/activity/services/BServiceListActivity.java
  13. 1 1
      app_modular/appbooking/src/main/java/com/modular/booking/activity/services/BServiceSearchActivity.java
  14. 98 7
      app_modular/appbooking/src/main/java/com/modular/booking/activity/services/BServicesActivity.java
  15. 62 2
      app_modular/appbooking/src/main/java/com/modular/booking/activity/utils/GridSelectActivity.java
  16. 1 1
      app_modular/appbooking/src/main/java/com/modular/booking/adapter/ItemBserviceListAdapter.java
  17. 81 0
      app_modular/appbooking/src/main/java/com/modular/booking/adapter/ItemRoomsSelectAdapter.java
  18. 14 4
      app_modular/appbooking/src/main/java/com/modular/booking/model/SBMenuModel.java
  19. 0 0
      app_modular/appbooking/src/main/res/com/modular/booking/adapter/ItemRoomsSelectAdapter.java
  20. 2 2
      app_modular/appbooking/src/main/res/layout/activity_grid_select.xml
  21. 2 1
      app_modular/appbooking/src/main/res/layout/item_bservice_header.xml
  22. 25 5
      app_modular/appbooking/src/main/res/layout/item_bservice_list.xml
  23. 7 5
      app_modular/appbooking/src/main/res/layout/item_bservice_storeman_list.xml
  24. 28 6
      app_modular/appbooking/src/main/res/layout/item_rooms_select.xml
  25. 1 1
      app_modular/appcontact/src/main/java/com/uas/appcontact/db/ContactsDao.java
  26. 1 2
      app_modular/appcontact/src/main/java/com/uas/appcontact/utils/ContactsUtils.java
  27. 2 0
      app_modular/applogin/src/main/java/com/modular/login/activity/LoginActivity.java
  28. 8 2
      app_modular/appme/src/main/AndroidManifest.xml
  29. 1 1
      app_modular/appme/src/main/java/com/uas/appme/pedometer/service/StepService.java
  30. 18 2
      app_modular/appme/src/main/java/com/uas/appme/pedometer/utils/StepUtils.java
  31. 20 0
      app_modular/appme/src/main/java/com/uas/appme/settings/activity/BComSetEmployeeRestActivity.java
  32. 11 7
      app_modular/appme/src/main/java/com/uas/appme/settings/activity/BRestActivity.java
  33. 18 1
      app_modular/appme/src/main/java/com/uas/appme/settings/activity/BSetComRestListActivity.java
  34. 13 4
      app_modular/appme/src/main/java/com/uas/appme/settings/activity/BSettingActivity.java
  35. 54 16
      app_modular/appme/src/main/java/com/uas/appme/settings/activity/BSettingLocationActivity.java
  36. 93 3
      app_modular/appme/src/main/java/com/uas/appme/settings/activity/BusinessHoursSetting.java
  37. 32 4
      app_modular/appme/src/main/java/com/uas/appme/settings/activity/ImageSettingActivity.java
  38. 16 4
      app_modular/appme/src/main/java/com/uas/appme/settings/activity/PersonSettingActivity.java
  39. 5 8
      app_modular/appme/src/main/java/com/uas/appme/settings/activity/SettingActivity.java
  40. 57 0
      app_modular/appme/src/main/java/com/uas/appme/settings/activity/SigatureActivity.java
  41. 55 0
      app_modular/appme/src/main/java/com/uas/appme/settings/handwritedemo/LandscapeActivity.java
  42. 367 0
      app_modular/appme/src/main/java/com/uas/appme/settings/handwritedemo/LinePathView.java
  43. 65 0
      app_modular/appme/src/main/res/layout/activity_hand_write.xml
  44. 123 80
      app_modular/appme/src/main/res/layout/business_hours_setting_activity.xml
  45. 1 0
      app_modular/appme/src/main/res/layout/com_location_input_item.xml
  46. 54 0
      app_modular/appme/src/main/res/layout/signture_activity.xml
  47. 1 1
      app_modular/appmessages/src/main/assets/business_statistics.json
  48. 2 1
      app_modular/appmessages/src/main/java/com/modular/appmessages/activity/UUSportActivity.java
  49. 2 2
      version.gradle

+ 5 - 5
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/message/PersonalRegActivity.java

@@ -19,15 +19,15 @@ import com.common.data.CalendarUtil;
 import com.common.data.JSONUtil;
 import com.common.data.StringUtil;
 import com.common.hmac.Md5Util;
-import com.lidroid.xutils.ViewUtils;
-import com.lidroid.xutils.view.annotation.ViewInject;
-import com.xzjmyk.pm.activity.R;
 import com.core.app.Constants;
 import com.core.base.BaseActivity;
 import com.core.net.http.ViewUtil;
 import com.core.utils.ToastUtil;
-import com.xzjmyk.pm.activity.util.oa.CommonUtil;
 import com.core.utils.time.wheel.DateTimePicker;
+import com.lidroid.xutils.ViewUtils;
+import com.lidroid.xutils.view.annotation.ViewInject;
+import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.util.oa.CommonUtil;
 
 import java.util.GregorianCalendar;
 import java.util.HashMap;
@@ -157,7 +157,7 @@ public class PersonalRegActivity extends BaseActivity implements View.OnClickLis
 
     private void doRegiter() {
         progressDialog.dismiss();
-        String url = "http://113.105.74.140:8092/" + "user/appRegister";
+        String url = Constants.IM_BASE_URL() + "user/appRegister";
         Map<String, Object> params = new HashMap<>();
         params.put("telephone", phone_et.getText().toString());
         params.put("password", md5_password);

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

@@ -340,7 +340,7 @@ public class BookingListActivity extends OABaseActivity implements HttpImp, View
         String url = Constants.IM_BASE_URL() + "user/appBookingList";
         Map<String, Object> params = new HashMap<>();
         params.put("token",  UserSp.getInstance(MyApplication.getInstance()).getAccessToken(""));
-        params.put("userid", UserSp.getInstance(MyApplication.getInstance()).getUserId(""));
+        params.put("userid", MyApplication.getInstance().mLoginUser.getUserId());
         params.put("telephone",  UserSp.getInstance(MyApplication.getInstance()).getTelephone(""));
         params.put("yearmonth", DateFormatUtil.getStrDate4Date(curDate, "yyyyMM"));
         LinkedHashMap<String, Object> headers = new LinkedHashMap<>();

+ 13 - 10
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/me/MeFragment.java

@@ -30,8 +30,6 @@ import com.common.system.PermissionUtil;
 import com.core.api.wxapi.ApiPlatform;
 import com.core.api.wxapi.ApiUAS;
 import com.core.api.wxapi.ApiUtils;
-import com.core.app.AppConfig;
-import com.core.app.AppConstant;
 import com.core.app.AppConstant;
 import com.core.app.Constants;
 import com.core.app.MyApplication;
@@ -44,6 +42,7 @@ import com.lidroid.xutils.view.annotation.ViewInject;
 import com.uas.appme.other.model.Master;
 import com.uas.appme.settings.activity.BaseInfoActivity;
 import com.uas.appme.settings.activity.SettingActivity;
+import com.uas.appme.settings.activity.SigatureActivity;
 import com.uas.appme.widget.MasterDialog;
 import com.uuzuche.lib_zxing.activity.CaptureActivity;
 import com.xzjmyk.pm.activity.CaptureResultActivity;
@@ -51,7 +50,6 @@ import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.ui.MainActivity;
 import com.xzjmyk.pm.activity.ui.base.EasyFragment;
 import com.xzjmyk.pm.activity.ui.circle.BusinessCircleActivity;
-import com.xzjmyk.pm.activity.ui.erp.activity.message.PersonalRegActivity;
 import com.xzjmyk.pm.activity.ui.tool.SingleImagePreviewActivity;
 import com.xzjmyk.pm.activity.util.im.UserRoleUtils;
 import com.xzjmyk.pm.activity.util.oa.CommonUtil;
@@ -274,6 +272,13 @@ public class MeFragment extends EasyFragment implements View.OnClickListener {
     private void initView() {
         LogUtil.d(TAG,"initView()");
         ct = getActivity();
+        
+//       new Thread(new Runnable() {
+//           @Override
+//           public void run() {
+//               ContactsUtils.testAddContact();
+//           }
+//       }).start();
         findViewById(R.id.my_data_rl).setOnClickListener(this);
         findViewById(R.id.my_friend_rl).setOnClickListener(this);
         findViewById(R.id.my_space_rl).setOnClickListener(this);
@@ -288,11 +293,7 @@ public class MeFragment extends EasyFragment implements View.OnClickListener {
         mAvatarImg = (ImageView) findViewById(R.id.avatar_img);
         mNickNameTv = (TextView) findViewById(R.id.nick_name_tv);
         mPhoneNumTv = (TextView) findViewById(R.id.phone_number_tv);
-         
         
-   
-
-
         IntentFilter loginFilter = new IntentFilter();
         loginFilter.addAction("com.app.home.update");
         LocalBroadcastManager.getInstance(ct).registerReceiver(updateLoginState, loginFilter);
@@ -330,7 +331,7 @@ public class MeFragment extends EasyFragment implements View.OnClickListener {
 //        iv_desc_oa.setVisibility(seting ? View.GONE : View.VISIBLE);
         CommonUtil.clearSharedPreferences(ct, "seting");
         CommonUtil.clearSharedPreferences(ct, "seting_1");
-       // doHITask(); // TODO 测试按钮
+        doHITask(); // TODO 测试按钮
 
         UserRoleUtils.checkUserRole(this, getmRootView());
     }
@@ -343,7 +344,7 @@ public class MeFragment extends EasyFragment implements View.OnClickListener {
         } else {
 //            test_rl.setVisibility(View.VISIBLE);
             my_qr_code_rl.setVisibility(View.GONE);
-            picture_selector_rl.setVisibility(View.GONE);
+            picture_selector_rl.setVisibility(View.VISIBLE);
         }
 
         my_qr_code_rl.setOnClickListener(new View.OnClickListener() {
@@ -364,9 +365,11 @@ public class MeFragment extends EasyFragment implements View.OnClickListener {
             @Override
             public void onClick(View v) {
 //                startActivity(new Intent(ct, PictureSelectorDemo.class));
-                startActivity(new Intent(ct, PersonalRegActivity.class));
+//                startActivity(new Intent(ct, PersonalRegActivity.class));
 //                startActivity(new Intent(ct,TemperatureActivity.class));
 //                startActivity(new Intent(ct,ToastDemoActivity.class));
+                startActivity(new Intent(ct, SigatureActivity.class));
+
             }
         });
 

+ 4 - 0
app_core/common/src/main/java/com/core/app/AppConfig.java

@@ -6,6 +6,7 @@ import android.content.SharedPreferences.Editor;
 import android.text.TextUtils;
 import android.util.Log;
 
+import com.common.config.BaseConfig;
 import com.core.model.ConfigBean;
 
 public class AppConfig {
@@ -178,6 +179,9 @@ public class AppConfig {
 
     private static void initApiUrls(AppConfig config) {
         String apiUrl = config.apiUrl;
+        if (BaseConfig.isDebug()){
+            apiUrl=Constants.IM_BASE_URL();
+        }
         /* 登陆注册 */
         config.USER_REGISTER = apiUrl + "user/register";// 注册
         config.VERIFY_TELEPHONE = apiUrl + "verify/telephone";// 验证手机号有没有被注册

+ 5 - 3
app_core/common/src/main/java/com/core/dao/StepRankingFirstDao.java

@@ -74,13 +74,14 @@ public class StepRankingFirstDao {
             cursor = stepDb.rawQuery("select * from StepRankingFirst", null);
             stepDb.beginTransaction();
             while (cursor.moveToNext()) {
+                int id = cursor.getInt(cursor.getColumnIndex("_id"));
                 String date = cursor.getString(cursor.getColumnIndex("date"));
                 String my_userid = cursor.getString(cursor.getColumnIndex("my_userid"));
                 String my_rank = cursor.getString(cursor.getColumnIndex("my_rank"));
                 String my_steps = cursor.getString(cursor.getColumnIndex("my_steps"));
                 String f_userid = cursor.getString(cursor.getColumnIndex("f_userid"));
                 String f_name = cursor.getString(cursor.getColumnIndex("f_name"));
-                StepRankingFirstBean entity = new StepRankingFirstBean(date, my_userid, my_rank, my_steps, f_userid, f_name);
+                StepRankingFirstBean entity = new StepRankingFirstBean(id,date, my_userid, my_rank, my_steps, f_userid, f_name);
                 dataList.add(entity);
             }
             stepDb.setTransactionSuccessful();
@@ -116,7 +117,7 @@ public class StepRankingFirstDao {
             values.put("my_steps",bean.getMy_steps());
             values.put("f_userid",bean.getF_userid());
             values.put("f_name",bean.getF_name());
-            stepDb.update("StepRankingFirst", values, "date=?", new String[]{bean.getDate() + ""});
+            stepDb.update("StepRankingFirst", values, "date=?", new String[]{bean.getDate()});
             stepDb.setTransactionSuccessful();
             stepDb.endTransaction();
         } catch (SQLException e) {
@@ -169,12 +170,13 @@ public class StepRankingFirstDao {
             while (cursor.moveToNext()) {
                 String date = curDate;
                 if (curDate.equals(date)) {
+                    int id = cursor.getInt(cursor.getColumnIndex("_id"));
                     String my_userid = cursor.getString(cursor.getColumnIndexOrThrow("my_userid"));
                     String my_rank = cursor.getString(cursor.getColumnIndexOrThrow("my_rank"));
                     String my_steps = cursor.getString(cursor.getColumnIndexOrThrow("my_steps"));
                     String f_userid = cursor.getString(cursor.getColumnIndexOrThrow("f_userid"));
                     String f_name = cursor.getString(cursor.getColumnIndexOrThrow("f_name"));
-                    bean = new StepRankingFirstBean(date, my_userid,my_rank,my_steps,f_userid,f_name);
+                    bean = new StepRankingFirstBean(id,date, my_userid,my_rank,my_steps,f_userid,f_name);
                     //跳出循环
                     break;
                 }

+ 15 - 1
app_core/common/src/main/java/com/core/model/StepRankingFirstBean.java

@@ -14,6 +14,8 @@ public class StepRankingFirstBean {
      + "f_userid TEXT, "
      + "f_name TEXT,"
      */
+
+    private int _id;
     private String date;
     private String my_userid;
     private String my_rank;
@@ -21,7 +23,8 @@ public class StepRankingFirstBean {
     private String f_userid;
     private String f_name;
 
-    public StepRankingFirstBean(String date, String my_userid, String my_rank, String my_steps, String f_userid, String f_name) {
+    public StepRankingFirstBean(int _id,String date, String my_userid, String my_rank, String my_steps, String f_userid, String f_name) {
+        this._id = _id;
         this.date = date;
         this.my_userid = my_userid;
         this.my_rank = my_rank;
@@ -30,6 +33,17 @@ public class StepRankingFirstBean {
         this.f_name = f_name;
     }
 
+    public StepRankingFirstBean(){
+
+    }
+    public int get_id() {
+        return _id;
+    }
+
+    public void set_id(int _id) {
+        this._id = _id;
+    }
+
     public String getDate() {
         return date;
     }

+ 2 - 2
app_core/common/src/main/res/drawable/select_weixin_list_item.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:drawable="@color/item_color1" android:state_pressed="true" />
-    <item android:drawable="@color/item_color1" android:state_selected="true"/>
+    <item android:drawable="@color/antionbarcolor" android:state_pressed="true" />
+    <item android:drawable="@color/antionbarcolor" android:state_selected="true"/>
     <item android:drawable="@color/item_color2" />
 </selector>

+ 29 - 1
app_core/common/src/main/res/layout/bsetting_activity.xml

@@ -261,10 +261,38 @@
             android:background="@drawable/oa_next"
             android:contentDescription="@string/app_name" />
     </RelativeLayout>
+
     <RelativeLayout
-        android:id="@+id/business_introduction_rl"
+        android:id="@+id/room_type_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" />
+    </RelativeLayout>
+    <RelativeLayout
+        android:id="@+id/business_introduction_rl"
+        style="@style/IMTbleLine"
+        android:background="@drawable/selector_me_menu_item_bg"
+        android:layout_alignParentTop="true"
+        android:layout_centerHorizontal="true">
         <View
             android:layout_alignParentBottom="true"
             android:layout_width="match_parent"

+ 5 - 6
app_core/common/src/main/res/layout/image_setting_activity.xml

@@ -5,8 +5,8 @@
 
     <ImageView
         android:id="@+id/image_im"
-        android:layout_width="200dp"
-        android:layout_height="200dp"
+        android:layout_width="150dp"
+        android:layout_height="150dp"
         android:scaleType="fitXY"
         android:src="@drawable/add_picture"
         android:layout_centerInParent="true"
@@ -17,12 +17,11 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="点击更换照片"
-        android:padding="10dp"
         android:textColor="@color/blue"
-        android:textSize="18sp"
         android:layout_marginBottom="143dp"
-        android:layout_alignParentBottom="true"
-        android:layout_centerHorizontal="true" />
+        android:layout_centerHorizontal="true"
+        android:layout_below="@id/image_im"
+        android:layout_marginTop="20dp"/>
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"

+ 18 - 0
app_core/common/src/main/res/layout/item_pop_list_select.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content">
+  
+    <TextView
+        android:id="@+id/tv_item_name"
+        android:paddingLeft="2dp"
+        android:paddingRight="2dp"
+        android:paddingTop="10dp"
+        android:paddingBottom="10dp"
+        android:textSize="14sp"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:background="@drawable/selector_me_menu_item_bg"
+        android:gravity="center"
+        android:text="xxx" />
+</RelativeLayout>

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

@@ -48,7 +48,9 @@ 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.modular.booking.R;
+import com.modular.booking.activity.utils.GridSelectActivity;
 import com.modular.booking.model.SBListModel;
+import com.modular.booking.model.SBMenuModel;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -512,18 +514,58 @@ public class BServiceAddActivity extends OABaseActivity implements View.OnClickL
                 tv.setText(number.substring(0, number.length() - 1));
                 break;
             case SERVICE_SELECT:
-            case MAN_SELECT:
-                SelectBean service = data.getParcelableExtra("data");
-                if (service != null && service.getName() != null) {
-                    LogUtil.i("service=" + JSON.toJSONString(service));
-                    tvMessage = service.getName();
-                    serviceId = service.getFields();
-                    serviceName = service.getName();
+                try {
+                    SBMenuModel menuModel= data.getParcelableExtra("data");
+                    JSONObject object=  JSON.parseObject(menuModel.getData());
+                    //sm_userid
+                    //sm_username
+                    tvMessage = object.getString("st_name");
+                    serviceId = object.getString("st_id");
+                    serviceName = object.getString("st_name");
                     if (tv != null) {
                         tv.setTag(R.id.tag_id, serviceId);
                         tv.setTag(R.id.tag_id2, serviceName);
                     }
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                break;
+            case MAN_SELECT:
+                try {
+                    SBMenuModel menuModel= data.getParcelableExtra("data");
+                    JSONObject object=  JSON.parseObject(menuModel.getData());
+                    //sm_userid
+                    //sm_username
+                    if (model.getIndustrycode().equals("10001")) {
+                        //医生
+                        tvMessage = object.getString("sm_username");
+                        serviceId = object.getString("sm_userid");
+                        serviceName = object.getString("sm_username");
+                    }else{
+                        //其它
+                        tvMessage = object.getString("st_name");
+                        serviceId = object.getString("st_id");
+                        serviceName = object.getString("st_name");
+                    }
+                  
+                    if (tv != null) {
+                          tv.setTag(R.id.tag_id, serviceId);
+                          tv.setTag(R.id.tag_id2, serviceName);
+                      }
+                } catch (Exception e) {
+                    e.printStackTrace();
                 }
+//                SelectBean service = data.getParcelableExtra("data");
+//                if (service != null && service.getName() != null) {
+//                    LogUtil.i("service=" + JSON.toJSONString(service));
+//                    tvMessage = service.getName();
+//                    serviceId = service.getFields();
+//                    serviceName = service.getName();
+//                    if (tv != null) {
+//                        tv.setTag(R.id.tag_id, serviceId);
+//                        tv.setTag(R.id.tag_id2, serviceName);
+//                    }
+//                }
                 break;
         }
         if (tvMessage != null && tv != null) {
@@ -566,11 +608,12 @@ public class BServiceAddActivity extends OABaseActivity implements View.OnClickL
                             bean.setFields(String.valueOf(id));
                             bean.setName(name);
                             bean.setObject(object.toJSONString());
+                            bean.setJson(object.toJSONString());
                             selectBeens.add(bean);
                         }
                     }
                     if (!ListUtils.isEmpty(selectBeens)) {
-                        Intent intent = new Intent(ct, SelectActivity.class)
+                        Intent intent = new Intent(ct, GridSelectActivity.class)
                                 .putExtra("type", 2)
                                 .putExtra("title", title)
                                 .putParcelableArrayListExtra("data", selectBeens);
@@ -616,11 +659,12 @@ public class BServiceAddActivity extends OABaseActivity implements View.OnClickL
                             bean.setId(id);
                             bean.setFields(String.valueOf(id));
                             bean.setName(name);
+                            bean.setJson(object.toJSONString());
                             selectBeens.add(bean);
                         }
                     }
                     if (!ListUtils.isEmpty(selectBeens)) {
-                        Intent intent = new Intent(ct, SelectActivity.class)
+                        Intent intent = new Intent(ct, GridSelectActivity.class)
                                 .putExtra("type", 2)
                                 .putExtra("title", title)
                                 .putParcelableArrayListExtra("data", selectBeens);

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

@@ -212,7 +212,7 @@ public class BServiceListActivity extends OABaseActivity {
                             LatLng latLng = new LatLng(Double.valueOf(sc_latitude), Double.valueOf(sc_longitude));
                             float distance = BaiduMapUtil.getInstence().autoDistance(latLng);
                             sbListModel.setDistance(String.valueOf(DistanceUtils.mToKm(distance,"#.0")));
-                            sbListModel.setCash("免费");
+                            sbListModel.setCash(mObject.getString("sc_telephone"));
                             sbListModel.setCompanyid(mObject.getString("sc_uu"));
                             sbListModel.setImid(mObject.getString("sc_imid"));
                             sbListModel.setId(mObject.getInteger("sc_id"));

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

@@ -192,7 +192,7 @@ public class BServiceSearchActivity extends OABaseActivity implements View.OnCli
                                 LatLng latLng = new LatLng(Double.valueOf(sc_latitude), Double.valueOf(sc_longitude));
                                 float distance = BaiduMapUtil.getInstence().autoDistance(latLng);
                                 sbListModel.setDistance(String.valueOf(DistanceUtils.mToKm(distance,"#.0")));
-                                sbListModel.setCash("免费");
+                                sbListModel.setCash(mObject.getString("sc_telephone"));
                                 sbListModel.setImid(mObject.getString("sc_imid"));
                                 sbListModel.setId(mObject.getInteger("sc_id"));
                                 sbListModel.setStarttime(mObject.getString("sc_starttime"));

+ 98 - 7
app_modular/appbooking/src/main/java/com/modular/booking/activity/services/BServicesActivity.java

@@ -30,6 +30,7 @@ import com.common.system.DisplayUtil;
 import com.core.app.Constants;
 import com.core.app.MyApplication;
 import com.core.base.OABaseActivity;
+import com.core.net.location.BdLocationHelper;
 import com.core.utils.BaiduMapUtil;
 import com.core.utils.DistanceUtils;
 import com.core.widget.DrawableCenterTextView;
@@ -312,8 +313,82 @@ public class BServicesActivity extends OABaseActivity implements View.OnClickLis
 //        drawBg.setAlpha(255);
 //    }
 
-    public void loadListData(final int pageSize) {
+    public void loadSeachData(String distance,final int pageSize){
+        showLoading();
+        BdLocationHelper helper = MyApplication.getInstance().getBdLocationHelper();
+        //distance, type, longitude, latitude, pageIndex, token
+        HttpClient httpClient = new HttpClient.Builder(Constants.IM_BASE_URL()).isDebug(true).build();
+        httpClient.Api().send(new HttpClient.Builder()
+                .url("user/appSearchStore")
+                .add("type", "0")
+                .add("distance",distance)
+                .add("longitude", helper.getLongitude())
+                .add("latitude", helper.getLatitude())
+                .add("pageIndex", String.valueOf(pageSize))
+                .add("token", MyApplication.getInstance().mAccessToken)
+                .method(Method.POST)
+                .build(), new ResultSubscriber<>(new ResultListener<Object>() {
+            @Override
+            public void onResponse(Object o) {
+                dimssLoading();
+                mListView.onRefreshComplete();
+                try {
+                    if (pageSize == 1) {
+                        modelList.clear();
+                    }
+                    LogUtil.d("o.toString" + o.toString());
+                    if (JSONUtil.validate(o.toString())) {
+                        JSONObject object = JSON.parseObject(o.toString());
+                        JSONArray jsonArray = object.getJSONArray("reslut");
+                        if (!ListUtils.isEmpty(jsonArray)) {
+                            for (int i = 0; i < jsonArray.size(); i++) {
+                                JSONObject mObject = jsonArray.getJSONObject(i);
+                                SBListModel sbListModel = new SBListModel();
+                                sbListModel.setName(mObject.getString("sc_companyname"));
+                                sbListModel.setAddress(mObject.getString("sc_address"));
+                                sbListModel.setBookType(mObject.getString("sc_booktype"));
+                                sbListModel.setUrl(mObject.getString("sc_imageurl"));
+                                sbListModel.setType(mObject.getString("sc_industry"));
+                                sbListModel.setIndustrycode(mObject.getString("sc_industrycode"));
+                                sbListModel.setCompanyid(mObject.getString("sc_uu"));
+                                sbListModel.setPhone(mObject.getString("sc_telephone"));
 
+                                String sc_latitude = mObject.getString("sc_latitude");
+                                String sc_longitude = mObject.getString("sc_longitude");
+                                sbListModel.setLatitude(sc_latitude);
+                                sbListModel.setLongitude(sc_longitude);
+                                sbListModel.setIntroduce(mObject.getString("sc_introduce"));
+                                LatLng latLng = new LatLng(Double.valueOf(sc_latitude), Double.valueOf(sc_longitude));
+                                float distance = BaiduMapUtil.getInstence().autoDistance(latLng);
+                                sbListModel.setDistance(String.valueOf(DistanceUtils.mToKm(distance, "#.0")));
+                                sbListModel.setCash(mObject.getString("sc_telephone"));
+                                sbListModel.setImid(mObject.getString("sc_imid"));
+                                sbListModel.setId(mObject.getInteger("sc_id"));
+                                sbListModel.setStarttime(mObject.getString("sc_starttime"));
+                                sbListModel.setEndtime(mObject.getString("sc_endtime"));
+                                modelList.add(sbListModel);
+                            }
+                            LogUtil.d("myTest", JSON.toJSONString(modelList));
+                            if (mListAdapter == null) {
+                                mListAdapter = new ItemBserviceListAdapter(mContext, modelList);
+                                mListView.setAdapter(mListAdapter);
+                            } else {
+                                mListAdapter.notifyDataSetChanged();
+                            }
+                            //mListAdapter.notifyDataSetChanged();
+                        } else {
+                            ToastMessage("没有更多数据");
+                        }
+                    }
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        }));
+    }
+    
+    
+    public void loadListData(final int pageSize) {
         HttpClient httpClient = new HttpClient.Builder(Constants.IM_BASE_URL()).isDebug(true).build();
         httpClient.Api().send(new HttpClient.Builder()
                 .url("/user/appStoreList")
@@ -354,7 +429,7 @@ public class BServicesActivity extends OABaseActivity implements View.OnClickLis
                                 LatLng latLng = new LatLng(Double.valueOf(sc_latitude), Double.valueOf(sc_longitude));
                                 float distance = BaiduMapUtil.getInstence().autoDistance(latLng);
                                 sbListModel.setDistance(String.valueOf(DistanceUtils.mToKm(distance, "#.0")));
-                                sbListModel.setCash("免费");
+                                sbListModel.setCash(mObject.getString("sc_telephone"));
                                 sbListModel.setImid(mObject.getString("sc_imid"));
                                 sbListModel.setId(mObject.getInteger("sc_id"));
                                 sbListModel.setStarttime(mObject.getString("sc_starttime"));
@@ -413,18 +488,34 @@ public class BServicesActivity extends OABaseActivity implements View.OnClickLis
                 @Override
                 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                     popupWindow.dismiss();
+                    pageSize=1;
                     switch (position) {
                         case 0:
-            
+                           loadSeachData("500",pageSize);
                             break;
                         case 1:
-                        
+                            loadSeachData("1000",pageSize);
                             break;
                         case 2:
-                        
+                            
+                            loadSeachData("2000",pageSize);
+                            break;
+                        case 3:
+                            loadSeachData("5000",pageSize);
+                            break;
+                        case 4:
+                            loadSeachData("10000",pageSize);
+                            break;
+                        case 5:
+                            loadSeachData("20000",pageSize);
+                            break;
+                        case 6:
+                            loadSeachData("30000",pageSize);
+                            break;
+                        case 7:
+                          loadListData(pageSize);
                             break;
                         default:
-                           
                             break;
                     }
                 }
@@ -470,7 +561,7 @@ public class BServicesActivity extends OABaseActivity implements View.OnClickLis
         map.put("item_name", "30km");
         list.add(map);
         map = new HashMap<>();
-        map.put("item_name", "深圳");
+        map.put("item_name", "全部");
         list.add(map);
         return list;
     }

+ 62 - 2
app_modular/appbooking/src/main/java/com/modular/booking/activity/utils/GridSelectActivity.java

@@ -1,18 +1,78 @@
 package com.modular.booking.activity.utils;
 
+import android.content.Intent;
 import android.os.Bundle;
+import android.view.View;
+import android.widget.AdapterView;
+import android.widget.GridView;
 
+import com.alibaba.fastjson.JSON;
+import com.common.LogUtil;
+import com.common.data.ListUtils;
+import com.common.data.StringUtil;
 import com.core.base.OABaseActivity;
+import com.core.model.SelectBean;
+import com.modular.booking.R;
+import com.modular.booking.adapter.ItemRoomsSelectAdapter;
+import com.modular.booking.model.SBMenuModel;
+
+import java.util.ArrayList;
+import java.util.List;
 
 /**
   * @desc:功能界面  表格选择界面
   * @author:Arison on 2017/11/1
   */
 public class GridSelectActivity extends OABaseActivity {
-    
-    
+    ItemRoomsSelectAdapter itemAdapter;
+    private GridView gvTopic;
+    private List<SBMenuModel> menuModels=new ArrayList<>();
+    ArrayList<SelectBean> selectBeens = new ArrayList<SelectBean>();
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_grid_select);
+        gvTopic = (GridView) findViewById(R.id.gv_topic);
+        initView();
+        initEvent();
+    }
+    
+    private void initView(){
+        if (getIntent()!=null){
+           selectBeens=getIntent().getParcelableArrayListExtra("data");
+           getSupportActionBar().setTitle(getIntent().getStringExtra("title"));
+           if (!ListUtils.isEmpty(selectBeens)){
+               for (int i = 0; i < selectBeens.size(); i++) {
+                   SelectBean selectBean=selectBeens.get(i);
+                   com.alibaba.fastjson.JSONObject object= JSON.parseObject(selectBean.getJson()) ;
+                   SBMenuModel menuModel=new SBMenuModel();
+                   menuModel.setUrl(object.getString("st_imageurl"));
+                   if (StringUtil.isEmpty(object.getString("st_name"))){
+                       menuModel.setTitle(object.getString("sm_username"));//医生
+                   }else{
+                       menuModel.setTitle(object.getString("st_name"));
+                   }
+                   menuModel.setCode(object.getString("sm_userid"));
+                   menuModel.setData(object.toJSONString());
+                   menuModels.add(menuModel);
+               }
+           }
+        }
+        LogUtil.d("GridSelectActivity","models:"+JSON.toJSONString(menuModels));
+        itemAdapter = new ItemRoomsSelectAdapter(mContext, menuModels);
+        gvTopic.setAdapter(itemAdapter);
+    }
+    private static final String TAG = "GridSelectActivity";
+    public void initEvent(){
+        gvTopic.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+            @Override
+            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+                ItemRoomsSelectAdapter.ViewHolder menuModel = (ItemRoomsSelectAdapter.ViewHolder) view.getTag();
+                LogUtil.d(TAG ,JSON.toJSONString(menuModel.model));
+                setResult(0x21,new Intent().putExtra("data",menuModel.model));
+                finish();
+            }
+        });
     }
 }

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

@@ -110,7 +110,7 @@ public class ItemBserviceListAdapter extends BaseAdapter {
             ivIcon = (ImageView) view.findViewById(R.id.iv_icon);
             tvTitle = (TextView) view.findViewById(R.id.tvTitle);
             tvType = (TextView) view.findViewById(R.id.tvType);
-            tvStart = (TextView) view.findViewById(R.id.tvStart);
+           // tvStart = (TextView) view.findViewById(R.id.tvStart);
             tvDistance = (TextView) view.findViewById(R.id.tvDistance);
             tvCash = (TextView) view.findViewById(R.id.tvCash);
             btBook = (Button) view.findViewById(R.id.btBook);

+ 81 - 0
app_modular/appbooking/src/main/java/com/modular/booking/adapter/ItemRoomsSelectAdapter.java

@@ -0,0 +1,81 @@
+package com.modular.booking.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.ImageView;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import com.common.data.StringUtil;
+import com.core.utils.helper.AvatarHelper;
+import com.modular.booking.R;
+import com.modular.booking.model.SBMenuModel;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class ItemRoomsSelectAdapter extends BaseAdapter {
+
+    private List<SBMenuModel> objects = new ArrayList<SBMenuModel>();
+
+    private Context context;
+    private LayoutInflater layoutInflater;
+
+    public ItemRoomsSelectAdapter(Context context,List<SBMenuModel> data) {
+        this.context = context;
+        this.objects=data;
+        this.layoutInflater = LayoutInflater.from(context);
+    }
+
+    @Override
+    public int getCount() {
+        return objects.size();
+    }
+
+    @Override
+    public SBMenuModel getItem(int position) {
+        return objects.get(position);
+    }
+
+    @Override
+    public long getItemId(int position) {
+        return position;
+    }
+
+    @Override
+    public View getView(int position, View convertView, ViewGroup parent) {
+        if (convertView == null) {
+            convertView = layoutInflater.inflate(R.layout.item_rooms_select, null);
+            convertView.setTag(new ViewHolder(convertView));
+        }
+        initializeViews((SBMenuModel)getItem(position), (ViewHolder) convertView.getTag());
+        return convertView;
+    }
+
+    private void initializeViews(SBMenuModel object, ViewHolder holder) {
+        if(StringUtil.isEmpty(object.getUrl())){
+            AvatarHelper.getInstance().display(object.getCode(), holder.ivItem, true,true);
+        }else{
+            AvatarHelper.getInstance().display(object.getUrl(), holder.ivItem, true);
+        }
+        holder.tvName.setText(object.getTitle());
+        holder.model=object;
+    }
+
+    public class ViewHolder {
+        private RelativeLayout rlItem;
+        private ImageView ivItem;
+        private TextView tvName;
+       public SBMenuModel model;
+
+        public ViewHolder(View view) {
+            rlItem = (RelativeLayout) view.findViewById(R.id.rlItem);
+            tvName = (TextView) view.findViewById(R.id.tvName);
+            ivItem=(ImageView) view.findViewById(R.id.ivItem);
+            
+        }
+    }
+}

+ 14 - 4
app_modular/appbooking/src/main/java/com/modular/booking/model/SBMenuModel.java

@@ -16,6 +16,7 @@ public class SBMenuModel implements Parcelable {
     private int descColor;
     private String desc;
     private String url;
+    private String data;
 
     public int getIcon() {
         return icon;
@@ -65,6 +66,16 @@ public class SBMenuModel implements Parcelable {
         this.descColor = descColor;
     }
 
+    public String getData() {
+        return data;
+    }
+
+    public void setData(String data) {
+        this.data = data;
+    }
+
+    public SBMenuModel() {
+    }
 
     @Override
     public int describeContents() {
@@ -79,9 +90,7 @@ public class SBMenuModel implements Parcelable {
         dest.writeInt(this.descColor);
         dest.writeString(this.desc);
         dest.writeString(this.url);
-    }
-
-    public SBMenuModel() {
+        dest.writeString(this.data);
     }
 
     protected SBMenuModel(Parcel in) {
@@ -91,9 +100,10 @@ public class SBMenuModel implements Parcelable {
         this.descColor = in.readInt();
         this.desc = in.readString();
         this.url = in.readString();
+        this.data = in.readString();
     }
 
-    public static final Parcelable.Creator<SBMenuModel> CREATOR = new Parcelable.Creator<SBMenuModel>() {
+    public static final Creator<SBMenuModel> CREATOR = new Creator<SBMenuModel>() {
         @Override
         public SBMenuModel createFromParcel(Parcel source) {
             return new SBMenuModel(source);

+ 0 - 0
app_modular/appbooking/src/main/res/com/modular/booking/adapter/ItemRoomsSelectAdapter.java


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

@@ -2,13 +2,13 @@
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent">
-    <com.core.widget.NScrollerGridView
+    <GridView
         android:id="@+id/gv_topic"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:background="@color/white"
         android:horizontalSpacing="15dp"
-        android:numColumns="4"
+        android:numColumns="2"
         android:paddingLeft="15dp"
         android:paddingRight="15dp"
         android:paddingTop="5dp"

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

@@ -28,5 +28,6 @@
         android:layout_height="45dp"
         android:layout_marginBottom="10dp"
         android:background="@null"
-        android:src="@drawable/defaultpic"></de.hdodenhof.circleimageview.CircleImageView>
+        android:src="@drawable/defaultpic">
+    </de.hdodenhof.circleimageview.CircleImageView>
 </LinearLayout>

+ 25 - 5
app_modular/appbooking/src/main/res/layout/item_bservice_list.xml

@@ -14,6 +14,7 @@
         android:layout_width="80dp"
         android:layout_height="80dp"
         android:layout_margin="10dp"
+        android:scaleType="fitXY"
         android:src="@drawable/defaultpic" />
 
     <LinearLayout
@@ -46,17 +47,35 @@
                 android:textSize="10sp" />
         </LinearLayout>
 
+        <!--<LinearLayout-->
+            <!--android:layout_width="match_parent"-->
+            <!--android:layout_height="match_parent"-->
+            <!--android:orientation="horizontal">-->
+
+            <!--<TextView-->
+                <!--android:id="@+id/tvStart"-->
+                <!--android:layout_width="wrap_content"-->
+                <!--android:layout_height="wrap_content"-->
+                <!--android:layout_weight="1"-->
+                <!--android:text="****" />-->
+        <!--</LinearLayout>-->
+
         <LinearLayout
             android:layout_width="match_parent"
-            android:layout_height="match_parent"
+            android:layout_height="wrap_content"
             android:orientation="horizontal">
 
-            <TextView
+            <RatingBar
                 android:id="@+id/tvStart"
+                style="@android:style/Widget.Holo.RatingBar.Small"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:layout_weight="1"
-                android:text="****" />
+                android:numStars="5"
+                android:progressTint="#f5c814"
+                android:rating="5"
+                android:secondaryProgressTint="#f5c814"
+                android:stepSize="0"
+                tools:ignore="NewApi" />
         </LinearLayout>
 
         <LinearLayout
@@ -81,8 +100,9 @@
                 android:id="@+id/tvCash"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
+                android:drawableLeft="@drawable/icon_tel"
                 android:layout_weight="1"
-                android:text="58代100"
+                android:text="1328349823"
                 android:textColor="@color/light_green" />
 
             <Button

+ 7 - 5
app_modular/appbooking/src/main/res/layout/item_bservice_storeman_list.xml

@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:layout_width="match_parent"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
               android:layout_height="match_parent"
               android:gravity="center_vertical"
               android:orientation="horizontal">
@@ -50,14 +51,15 @@
 
             <RatingBar
                 android:id="@+id/bservice_storeman_rate_rb"
-                style="?android:attr/ratingBarStyleSmall"
+                style="@android:style/Widget.Holo.RatingBar.Small"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
+                android:numStars="5"
                 android:progressTint="#f5c814"
+                android:rating="5"
                 android:secondaryProgressTint="#f5c814"
-                android:numStars="5"
-                android:rating="3.5"
-                android:stepSize="0.1" />
+                android:stepSize="0"
+                tools:ignore="NewApi" />
         </LinearLayout>
 
         <LinearLayout

+ 28 - 6
app_modular/appbooking/src/main/res/layout/item_rooms_select.xml

@@ -1,7 +1,29 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="vertical" 
+<?xml version="1.0" encoding="UTF-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/rlItem"
+    android:orientation="vertical"
     android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-</LinearLayout>
+    android:layout_height="match_parent"
+    android:background="@color/white">
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="150dp">
+    <ImageView
+        android:id="@+id/ivItem"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:scaleType="fitXY" />
+    <TextView
+        android:id="@+id/tvName"
+        android:layout_width="match_parent"
+        android:layout_height="40dp"
+        android:textSize="16sp"
+        android:gravity="center"
+        android:layout_alignParentBottom="true"
+        android:textColor="@color/white"
+        android:textStyle="bold"
+        android:background="#80000000"
+        android:text="服务项目"
+        />
+    </RelativeLayout>
+</RelativeLayout>

+ 1 - 1
app_modular/appcontact/src/main/java/com/uas/appcontact/db/ContactsDao.java

@@ -76,7 +76,7 @@ public class ContactsDao {
 //                "(select min(id) from tbl_contacts where tf_phone=a.tf_phone and tf_ownerId=? ) and (tf_phone<> ? and tf_phone<> ?) " +
 //                "   ", new String[]{ownerId,"未填写"," "});
 
-        String sql="select * from tbl_contacts where tf_phone  in (select tf_phone from (select tf_phone,max(id) from tbl_contacts  where (tf_phone<> ? and tf_phone<> ?) group by tf_phone)) and tf_ownerId=?";
+        String sql="select * from tbl_contacts where id  in (select id from (select tf_phone,max(id) id from tbl_contacts  where (tf_phone<> ? and tf_phone<> ?) group by tf_phone)) and tf_ownerId=?";
 //        Cursor cursor =db.rawQuery("select * from tbl_contacts a where id=" +
 //                "(select min(id) from tbl_contacts where tf_phone=a.tf_phone and tf_ownerId=? ) and (tf_phone<> ? and tf_phone<> ?) " +
 //                "  and (tf_whichSys=? or tf_whichSys=? ) ", new String[]{ownerId,"未填写"," ",master,""});

+ 1 - 2
app_modular/appcontact/src/main/java/com/uas/appcontact/utils/ContactsUtils.java

@@ -146,8 +146,7 @@ public class ContactsUtils {
 
 
     public static void testAddContact() {
-        for (int i = 0; i < 1500; i++) {
-
+        for (int i = 0; i < 5500; i++) {
             addContact("测试" + i, "123456783" + i, "");
             LogUtil.d("Test", "导入数据i=" + i);
         }

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

@@ -12,6 +12,7 @@ import android.view.View;
 import android.widget.EditText;
 import android.widget.TextView;
 
+import com.alibaba.fastjson.JSON;
 import com.android.volley.Response.ErrorListener;
 import com.android.volley.VolleyError;
 import com.common.LogUtil;
@@ -207,6 +208,7 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
                 }
                 boolean success = false;
                 if (result.getResultCode() == Result.CODE_SUCCESS) {
+                    LogUtil.d("HttpLogs", "IM login:"+JSON.toJSONString(result));
                     success = LoginHelper.setLoginUser(mContext, phoneNumber, digestPwd, result);// 设置登陆用户信息
                 }
                 if (success) {

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

@@ -1,6 +1,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.uas.appme" >
-
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
     <uses-permission android:name="android.permission.CALL_PHONE" />
     <application
         android:allowBackup="true"
@@ -63,6 +64,11 @@
         <activity android:name=".settings.activity.BRestActivity" />
         <activity android:name=".settings.activity.BSetComRestListActivity" />
         <activity android:name=".settings.activity.BusinessHoursSetting"
-            android:label="设置营业时间"/>
+            android:windowSoftInputMode="stateUnspecified|adjustNothing"/>
+        <activity android:name=".settings.activity.SigatureActivity"/>
+        <activity android:name=".settings.handwritedemo.LandscapeActivity"
+            android:label="签名"
+            android:screenOrientation="landscape"
+            />
     </application>
 </manifest>

+ 1 - 1
app_modular/appme/src/main/java/com/uas/appme/pedometer/service/StepService.java

@@ -410,7 +410,7 @@ public class StepService extends Service implements SensorEventListener {
         }
 //        StepUtils.doSaveLocalStepsToJudgeHttps();
 //        TrackUtils.doSaveTrackPoint(latLngsList);
-        StepUtils.doBeforeSavaRFIToLocal(my_userid,token); //将每天的第一名信息保存在本地数据库,供第二天展示
+//        StepUtils.doBeforeSavaRFIToLocal(my_userid,token); //将每天的第一名信息保存在本地数据库,供第二天展示
     }
 
     @Override

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

@@ -357,10 +357,26 @@ public class StepUtils {
                         fbean = dao.getCurDataByDate(CURRENT_DATE);
                         LogUtil.prinlnLongMsg("fbean1",JSON.toJSONString(fbean));
                         if (fbean == null){  //进行新增操作
-                            fbean = new StepRankingFirstBean(CURRENT_DATE,my_userid,my_rank,my_steps,f_userid,f_name);
+//                            fbean = new StepRankingFirstBean(null,CURRENT_DATE,my_userid,my_rank,my_steps,f_userid,f_name);
+                            fbean = new StepRankingFirstBean();
+                            fbean.setDate(CURRENT_DATE);
+                            fbean.setMy_userid(my_userid);
+                            fbean.setMy_rank(my_rank);
+                            fbean.setMy_steps(my_steps);
+                            fbean.setF_userid(f_userid);
+                            fbean.setF_name(f_name);
+
                             dao.addNewRFIData(fbean);
                         }else {  //进行更新操作
-                            fbean = new StepRankingFirstBean(CURRENT_DATE,my_userid,my_rank,my_steps,f_userid,f_name);
+//                            fbean = new StepRankingFirstBean(CURRENT_DATE,my_userid,my_rank,my_steps,f_userid,f_name);
+                            fbean = new StepRankingFirstBean();
+                            fbean.setDate(CURRENT_DATE);
+                            fbean.setMy_userid(my_userid);
+                            fbean.setMy_rank(my_rank);
+                            fbean.setMy_steps(my_steps);
+                            fbean.setF_userid(f_userid);
+                            fbean.setF_name(f_name);
+
                             dao.updateCurDateRFI(fbean);
                         }
 

+ 20 - 0
app_modular/appme/src/main/java/com/uas/appme/settings/activity/BComSetEmployeeRestActivity.java

@@ -179,6 +179,25 @@ public class BComSetEmployeeRestActivity extends BaseActivity implements View.On
     }
 
     private void doSave(List<ComRestBean> mList) {
+        Boolean canSave = true;
+        if (mList.size() > 1){
+            for (int i = 0; i < mList.size(); i++) {
+                for (int j = i+1;j < mList.size();j++){
+                    if (mList.get(i).getSf_username().equals(mList.get(j).getSf_username()) &&
+                            mList.get(i).getSf_date().equals(mList.get(j).getSf_date())){
+                        ToastMessage("存在重复的条目明细");
+                        LogUtil.prinlnLongMsg("fanglh",mList.get(i).getSf_username()+","+
+                                mList.get(j).getSf_username() +","+
+                                mList.get(i).getSf_date()+","+
+                                mList.get(j).getSf_date());
+                        canSave = false;
+                        break;
+                    }
+                }
+            }
+        }
+
+        if (!canSave) return;
         HttpClient httpClient = new HttpClient.Builder(Constants.IM_BASE_URL()).isDebug(true).build(true);
         progressDialog.show();
         httpClient.Api().send(new HttpClient.Builder()
@@ -264,6 +283,7 @@ public class BComSetEmployeeRestActivity extends BaseActivity implements View.On
             viewHolder.name_tv.setOnClickListener(new View.OnClickListener() {
                 @Override
                 public void onClick(View v) {
+                    click_positon = position;
                     if (ListUtils.isEmpty(serviceMans)) {
                         doInputName(position);
                     }

+ 11 - 7
app_modular/appme/src/main/java/com/uas/appme/settings/activity/BRestActivity.java

@@ -51,11 +51,13 @@ public class BRestActivity extends BaseActivity implements BRestAdapter.OnItemCl
 	private int position;
 	private BRestAdapter mAdapter;
 	private String companyid;
+	private String id;
 
 	@Override
 	protected void onCreate(Bundle savedInstanceState) {
 		super.onCreate(savedInstanceState);
 		setContentView(R.layout.activity_brest);
+		getSupportActionBar().setTitle(getString(R.string.updata));
 		initView();
 		initData();
 	}
@@ -64,19 +66,19 @@ public class BRestActivity extends BaseActivity implements BRestAdapter.OnItemCl
 		Intent intent = getIntent();
 		if (intent != null) {
 			String data = intent.getStringExtra("updateData");
-			type = intent.getIntExtra("type", 0);
+			type = intent.getIntExtra("type", -1);
 			if (!StringUtil.isEmpty(data) && JSONUtil.validateJSONObject(data)) {
 				JSONObject object = JSON.parseObject(data);
 				companyid = JSONUtil.getText(object, "sf_companyid", "sc_companyid");
 				String companyname = JSONUtil.getText(object, "sf_companyname", "sc_companyname");
 				String date = JSONUtil.getText(object, "sf_date", "sc_date");
-				String _id = JSONUtil.getText(object, "sf_id", "sc_id");
-				String userid = JSONUtil.getText(object, "sf_userid");
-				String username = JSONUtil.getText(object, "sf_username");
+				id = JSONUtil.getText(object, "sf_id", "sc_id");
+				String userid = JSONUtil.getText(object, "sf_userid","sc_userid");
+				String username = JSONUtil.getText(object, "sf_username","sc_username");
 				BRest model = new BRest(type);
 				model.setCompanyname(companyname);
 				model.setCompanyid(companyid);
-				model.set_id(_id);
+				model.set_id(id);
 				model.setUserId(userid);
 				model.setUsername(username);
 				long time = DateFormatUtil.str2Long(date, DateFormatUtil.YMD_HMS);
@@ -104,16 +106,18 @@ public class BRestActivity extends BaseActivity implements BRestAdapter.OnItemCl
 				String json = bean.getJson();
 				if (JSONUtil.validateJSONObject(json)) {
 					JSONObject object = JSON.parseObject(json);
+					LogUtil.prinlnLongMsg("fanglh1",JSON.toJSONString(object));
 					if (object != null) {
 						BRest model = new BRest(type);
 						model.setCompanyid(JSONUtil.getText(object, "sm_companyid"));
 						model.setCompanyname(JSONUtil.getText(object, "sm_companyname"));
 						model.setUserId(JSONUtil.getText(object, "sm_userid"));
 						model.setUsername(JSONUtil.getText(object, "sm_username"));
-						model.set_id(JSONUtil.getText(object, "sm_id"));
+						model.set_id(id);
 						if (mAdapter != null) {
 							mAdapter.updateData(position, model);
 						}
+						LogUtil.prinlnLongMsg("fanglh2",JSON.toJSONString(model));
 					}
 				}
 			}
@@ -152,7 +156,7 @@ public class BRestActivity extends BaseActivity implements BRestAdapter.OnItemCl
 		Intent intent = getIntent();
 		String updateData = intent.getStringExtra("updateData");
 		if (StringUtil.isEmpty(updateData)) return;
-		type = intent.getIntExtra("type", 0);
+		type = intent.getIntExtra("type", -1);
 		String keyfield = null;
 		String tablename = null;
 		String id = null;

+ 18 - 1
app_modular/appme/src/main/java/com/uas/appme/settings/activity/BSetComRestListActivity.java

@@ -22,12 +22,14 @@ import com.common.data.JSONUtil;
 import com.common.data.ListUtils;
 import com.common.data.StringUtil;
 import com.common.system.DisplayUtil;
+import com.core.app.AppConstant;
 import com.core.app.Constants;
 import com.core.app.MyApplication;
 import com.core.base.BaseActivity;
 import com.core.utils.CommonUtil;
 import com.core.widget.EmptyLayout;
 import com.core.widget.MyListView;
+import com.core.widget.view.Activity.MultiImagePreviewActivity;
 import com.me.network.app.http.HttpClient;
 import com.me.network.app.http.Method;
 import com.me.network.app.http.rx.ResultListener;
@@ -38,6 +40,8 @@ import com.uas.appme.settings.model.BSettingPlaceBean;
 import com.uas.appme.settings.model.CompanyRestListBean;
 import com.uas.appme.settings.model.EmployeeRestListBean;
 
+import java.util.ArrayList;
+
 
 /**
  * Created by ${FANGLH} on 2017/10/14.
@@ -375,7 +379,7 @@ public class BSetComRestListActivity extends BaseActivity {
 			viewHolder.name_tv.setText(model.getResult().get(position).getSt_name());
 
 			//显示服务时间
-			viewHolder.sTime_tv.setText(model.getResult().get(position).getSt_servicetime() + getString(R.string.minute));
+			viewHolder.sTime_tv.setText(model.getResult().get(position).getSt_servicetime());
 
 			//显示照片
 			if (!StringUtil.isEmpty(model.getResult().get(position).getSt_imageurl())){
@@ -384,6 +388,19 @@ public class BSetComRestListActivity extends BaseActivity {
 			}else
 				viewHolder.image_rl.setVisibility(View.GONE);
 
+
+			viewHolder.image_rl.setOnClickListener(new View.OnClickListener() {
+				@Override
+				public void onClick(View v) {
+					ArrayList<String> mPhotoList = new ArrayList<>();
+					mPhotoList.add(model.getResult().get(position).getSt_imageurl());
+					Intent intent = new Intent(ct, MultiImagePreviewActivity.class);
+					intent.putExtra(AppConstant.EXTRA_IMAGES, mPhotoList);
+					intent.putExtra(AppConstant.EXTRA_POSITION, 0);
+					intent.putExtra(AppConstant.EXTRA_CHANGE_SELECTED, false);
+					startActivity(intent);
+				}
+			});
 			return convertView;
 		}
 

+ 13 - 4
app_modular/appme/src/main/java/com/uas/appme/settings/activity/BSettingActivity.java

@@ -3,6 +3,7 @@ package com.uas.appme.settings.activity;
 import android.content.Intent;
 import android.os.Bundle;
 import android.view.View;
+import android.widget.RelativeLayout;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
@@ -29,7 +30,7 @@ public class BSettingActivity extends BaseActivity implements View.OnClickListen
 
     private String sc_industry = null;
     private String sc_industrycode = null;
-    private String business_iamge;
+    private RelativeLayout rTyperl;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -62,14 +63,12 @@ public class BSettingActivity extends BaseActivity implements View.OnClickListen
             }
         }));
 
-        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)
-            .putExtra("business_iamge",business_iamge));
+            startActivity(new Intent(this,ImageSettingActivity.class));
         }else if (v.getId() == R.id.keshi_setting_rl){
             
         }else if (v.getId() == R.id.people_setting_rl){
@@ -97,6 +96,9 @@ public class BSettingActivity extends BaseActivity implements View.OnClickListen
         }else if (v.getId() == R.id.business_introduction_rl){
             startActivity(new Intent(ct,BusinessHoursSetting.class)
                     .putExtra("setType",3));
+        }else if (v.getId() == R.id.room_type_rl){
+            startActivity(new Intent(ct,BusinessHoursSetting.class)
+                    .putExtra("setType",4));
         }
     }
 
@@ -110,5 +112,12 @@ public class BSettingActivity extends BaseActivity implements View.OnClickListen
         findViewById(R.id.business_hours_rl).setOnClickListener(this);
         findViewById(R.id.booking_timetype_rl).setOnClickListener(this);
         findViewById(R.id.business_introduction_rl).setOnClickListener(this);
+        rTyperl = (RelativeLayout) findViewById(R.id.room_type_rl);
+        rTyperl.setOnClickListener(this);
+
+        if ("餐饮".equals(sc_industry))
+            rTyperl.setVisibility(View.VISIBLE);
+        else
+            rTyperl.setVisibility(View.GONE);
     }
 }

+ 54 - 16
app_modular/appme/src/main/java/com/uas/appme/settings/activity/BSettingLocationActivity.java

@@ -94,7 +94,7 @@ public class BSettingLocationActivity extends BaseActivity implements View.OnCli
         super.onCreate(savedInstanceState);
         setContentView(R.layout.service_bcom_setting_activity);
         initView();
-        initData();
+        judgeWhichType();
         String[] permissions = new String[]{Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE};
         for (String permission : permissions) {
             if (PermissionUtil.lacksPermissions(ct, permission)) {
@@ -103,11 +103,34 @@ public class BSettingLocationActivity extends BaseActivity implements View.OnCli
         }
     }
 
+    private void judgeWhichType() {
+        HttpClient httpClient = new HttpClient.Builder(Constants.IM_BASE_URL()).isDebug(true).build(true);
+        httpClient.Api().send(new HttpClient.Builder()
+                .url("user/appCompanyType")
+                .add("companyid", CommonUtil.getSharedPreferences(MyApplication.getInstance(),"erp_uu"))
+                .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("appCompanyType", o.toString()+"");
+
+                //{"result":[{"sc_industry":"医疗","sc_industrycode":"10001"}]}
+                JSONArray array = JSON.parseObject(o.toString()).getJSONArray("result");
+                if (ListUtils.isEmpty(array)) return;
+                JSONObject object = array.getJSONObject(0);
+                if (object == null) return;
+                sc_industry = object.getString("sc_industry");
+                sc_industrycode = object.getString("sc_industrycode");
+                Log.i("fanglh1",sc_industry+"");
+                initData();
+            }
+        }));
+
+    }
     private void initData() {
 
-        //接收商家类型
-        sc_industry = getIntent().getStringExtra("sc_industry");
-        sc_industrycode = getIntent().getStringExtra("sc_industrycode");
         updateData = getIntent().getStringExtra("updateData");
         if (!StringUtil.isEmpty(updateData) &&  JSONUtil.validate(updateData) ){  // 更新状态则不显示 + 新增按钮,且保存改为更新
             deleteBtn.setVisibility(View.VISIBLE);
@@ -125,6 +148,7 @@ public class BSettingLocationActivity extends BaseActivity implements View.OnCli
             model.setSt_servicetime(JSON.parseObject(updateData).getString("st_servicetime"));
             model.setSt_imageurl(JSON.parseObject(updateData).getString("st_imageurl"));
             mList.add(model);
+            myAdapter.setIndustry(sc_industry);
             myAdapter.notifyDataSetChanged();
         }else {
             deleteBtn.setVisibility(View.GONE);
@@ -137,8 +161,10 @@ public class BSettingLocationActivity extends BaseActivity implements View.OnCli
             model.setSt_imageurl("");
 //            model.setSt_id("0");
             mList.add(model);
+            myAdapter.setIndustry(sc_industry);
             myAdapter.notifyDataSetChanged();
         }
+        Log.i("fanglh",sc_industry+"");
     }
 
     private void initView() {
@@ -357,9 +383,10 @@ public class BSettingLocationActivity extends BaseActivity implements View.OnCli
 
                 @Override
                 public void onSuccess(ResponseInfo<String> responseInfo) {
-                    if (JSONUtil.validate(responseInfo.result) && JSON.parseObject(responseInfo.result).getBoolean("success")) {
+                    try {
+                    if (JSONUtil.validate(responseInfo.result) && responseInfo.result.contains("success") &&
+                            JSON.parseObject(responseInfo.result).getBoolean("success")) {
                         LogUtil.prinlnLongMsg("UploadServlet", responseInfo.result + "");
-                        try {
                             JSONObject object = JSON.parseObject(responseInfo.result);
                             JSONObject dataobject = object.getJSONObject("data");
                             if (dataobject == null) {
@@ -381,9 +408,10 @@ public class BSettingLocationActivity extends BaseActivity implements View.OnCli
                             LogUtil.prinlnLongMsg("mList",JSON.toJSONString(mList));
                             doJudegeCNow_p();
 
-                        } catch (Exception e) {
-                            e.printStackTrace();
-                        }
+
+                    }
+                    } catch (Exception e) {
+                        e.printStackTrace();
                     }
                 }
 
@@ -461,6 +489,15 @@ public class BSettingLocationActivity extends BaseActivity implements View.OnCli
         private Context mContext;
         private List<BSetLocationBean> modelList;
         private ArrayList<String> photoList;
+        private String industry;
+
+        public String getIndustry() {
+            return industry;
+        }
+
+        public void setIndustry(String industry) {
+            this.industry = industry;
+        }
 
         public ArrayList<String> getPhotoList() {
             return photoList;
@@ -512,13 +549,14 @@ public class BSettingLocationActivity extends BaseActivity implements View.OnCli
                 viewHolder.name_tv.setKeyListener(null);
                 viewHolder.sTime_et.setFocusable(false);
                 viewHolder.sTime_et.setKeyListener(null);
-                if("会所".equals(sc_industry))
-                    viewHolder.sTime_rl.setVisibility(View.VISIBLE);
-                else
-                    viewHolder.sTime_rl.setVisibility(View.GONE);
             }else {
                 viewHolder = (ViewHolder) convertView.getTag();
             }
+            if("会所".equals(industry))
+                viewHolder.sTime_rl.setVisibility(View.VISIBLE);
+            else
+                viewHolder.sTime_rl.setVisibility(View.GONE);
+
             viewHolder.name_tv.setOnClickListener(new View.OnClickListener() {
                 @Override
                 public void onClick(View v) {
@@ -594,11 +632,11 @@ public class BSettingLocationActivity extends BaseActivity implements View.OnCli
 
 
             //显示服务时间/分钟
-            if (!ListUtils.isEmpty(modelList) && !StringUtil.isEmpty(modelList.get(position).getSt_servicetime()))
+            if (!ListUtils.isEmpty(modelList) && !StringUtil.isEmpty(modelList.get(position).getSt_servicetime())){
                 viewHolder.sTime_et.setText(modelList.get(position).getSt_servicetime());
-            else
+            }else{
                 viewHolder.sTime_et.setText(null);
-
+            }
             return convertView;
         }
         class ViewHolder{

+ 93 - 3
app_modular/appme/src/main/java/com/uas/appme/settings/activity/BusinessHoursSetting.java

@@ -4,12 +4,12 @@ import android.content.Intent;
 import android.os.Bundle;
 import android.view.View;
 import android.widget.Button;
-import android.widget.EditText;
 import android.widget.LinearLayout;
 import android.widget.TextView;
 import android.widget.Toast;
 
 import com.alibaba.fastjson.JSON;
+import com.andreabaccega.widget.FormEditText;
 import com.common.LogUtil;
 import com.common.data.DateFormatUtil;
 import com.common.data.JSONUtil;
@@ -42,8 +42,12 @@ public class BusinessHoursSetting extends BaseActivity implements View.OnClickLi
     private TextView period_tv;
     private TextView timpoint_tv;
     private int sc_booktype = -1;
+    private int sc_cytype = -1;
     private int setType;
-    private EditText bIntroductionEt;
+    private FormEditText bIntroductionEt;
+    private LinearLayout roomType_ll;
+    private TextView rtype1_tv;
+    private TextView rtype2_tv;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -58,6 +62,7 @@ public class BusinessHoursSetting extends BaseActivity implements View.OnClickLi
     private void initView() {
         setType = getIntent().getIntExtra("setType",-1);
 
+        //设置营业时间
         mTvStartTime = (TextView) findViewById(R.id.tv_startTime);
         mTvEndTime = (TextView) findViewById(R.id.tv_endTime);
         mSubmitBtn = (Button) findViewById(R.id.submit_btn);
@@ -66,6 +71,7 @@ public class BusinessHoursSetting extends BaseActivity implements View.OnClickLi
         mTvEndTime.setOnClickListener(this);
         mSubmitBtn.setOnClickListener(this);
 
+        //设置预约时间类型
         set_hour_ll = (LinearLayout)findViewById(R.id.set_hour_ll);
         set_booktype_ll = (LinearLayout)findViewById(R.id.set_booktype_ll);
 
@@ -75,22 +81,38 @@ public class BusinessHoursSetting extends BaseActivity implements View.OnClickLi
         timpoint_tv = (TextView) findViewById(R.id.timpoint_tv);
         timpoint_tv.setOnClickListener(this);
 
-        bIntroductionEt = (EditText) findViewById(R.id.business_Introduction_et);
+        //设置包房预订类型
+        roomType_ll = (LinearLayout) findViewById(R.id.set_roomtype_ll);
+        rtype1_tv = (TextView) findViewById(R.id.rtype1_tv);
+        rtype2_tv = (TextView) findViewById(R.id.rtype2_tv);
+        rtype1_tv.setOnClickListener(this);
+        rtype2_tv.setOnClickListener(this);
+
+        bIntroductionEt = (FormEditText) findViewById(R.id.business_Introduction_et);
         if (setType == 1){
             getSupportActionBar().setTitle("设置营业时间");
             set_hour_ll.setVisibility(View.VISIBLE);
             set_booktype_ll.setVisibility(View.GONE);
             bIntroductionEt.setVisibility(View.GONE);
+            roomType_ll.setVisibility(View.GONE);
         }else if (setType == 2){
             getSupportActionBar().setTitle("设置预约时间类型");
             set_hour_ll.setVisibility(View.GONE);
             set_booktype_ll.setVisibility(View.VISIBLE);
             bIntroductionEt.setVisibility(View.GONE);
+            roomType_ll.setVisibility(View.GONE);
         }else if (setType == 3){
             getSupportActionBar().setTitle("商家详情");
             set_hour_ll.setVisibility(View.GONE);
             set_booktype_ll.setVisibility(View.GONE);
             bIntroductionEt.setVisibility(View.VISIBLE);
+            roomType_ll.setVisibility(View.GONE);
+        }else if (setType == 4){
+            getSupportActionBar().setTitle("设置包房预订类型");
+            set_hour_ll.setVisibility(View.GONE);
+            set_booktype_ll.setVisibility(View.GONE);
+            bIntroductionEt.setVisibility(View.GONE);
+            roomType_ll.setVisibility(View.VISIBLE);
         }
     }
 
@@ -108,6 +130,8 @@ public class BusinessHoursSetting extends BaseActivity implements View.OnClickLi
                 doSaveTimeType();
             else if (setType == 3)
                 doSaveBIntroduction();
+            else if (setType == 4)
+                doSaveRoomtype();
         }else if (v.getId() == R.id.tv_startTime){
             startActivityForResult(new Intent(mContext, SelectCalendarActivity.class)
                             .putExtra("startDate", DateFormatUtil.long2Str(DateFormatUtil.YMD_HMS))
@@ -130,14 +154,61 @@ public class BusinessHoursSetting extends BaseActivity implements View.OnClickLi
             sc_booktype = 0;
             period_tv.setBackgroundResource(R.color.white);
             timpoint_tv.setBackgroundResource(R.color.aqua);
+        }else if (v.getId() == R.id.rtype1_tv){
+            sc_cytype = 0;
+            rtype1_tv.setBackgroundResource(R.color.aqua);
+            rtype2_tv.setBackgroundResource(R.color.white);
+        }else if (v.getId() == R.id.rtype2_tv){
+            sc_cytype = 1;
+            rtype1_tv.setBackgroundResource(R.color.white);
+            rtype2_tv.setBackgroundResource(R.color.aqua);
         }
     }
 
+    private void doSaveRoomtype() {
+        if ( sc_cytype == -1){
+            ToastMessage("请选择包房预订类型");
+            return;
+        }
+        Map<String,Object> param = new HashMap<>();
+        param.put("sc_uu",CommonUtil.getSharedPreferences(MyApplication.getInstance(),"erp_uu"));
+        param.put(" sc_cytype", sc_cytype);
+
+        LogUtil.prinlnLongMsg("appStoreUpdate",JSONUtil.map2JSON(param));
+        HttpClient httpClient = new HttpClient.Builder(Constants.IM_BASE_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();
+                }
+            }
+        }));
+    }
+
     private void doSaveBIntroduction() {
         if (StringUtil.isEmpty(bIntroductionEt.getText().toString())){
             ToastMessage("请输入商家详情介绍");
             return;
         }
+        if (bIntroductionEt.getText().toString().contains("'")){
+            ToastMessage("含违规字符");
+            return;
+        }
 
         Map<String,Object> param = new HashMap<>();
         param.put("sc_uu",CommonUtil.getSharedPreferences(MyApplication.getInstance(),"erp_uu"));
@@ -237,11 +308,14 @@ public class BusinessHoursSetting extends BaseActivity implements View.OnClickLi
                     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"));
                     String timekind = JSON.parseObject(o.toString()).getString("timekind");
+                   //预约时间类型
                     if (!StringUtil.isEmpty(timekind)){
                         if ("1".equals(timekind)){
                             sc_booktype = 1;
@@ -253,9 +327,25 @@ public class BusinessHoursSetting extends BaseActivity implements View.OnClickLi
                             timpoint_tv.setBackgroundResource(R.color.aqua);
                         }
                     }
+
+                    //商家详情介绍
                     if (o.toString().contains("introduce") && !StringUtil.isEmpty(JSON.parseObject(o.toString()).getString("introduce"))){
             bIntroductionEt.setText(JSON.parseObject(o.toString()).getString("introduce"));
                     }
+
+                    //包房预订类型
+                    String cytype = JSON.parseObject(o.toString()).getString("cytype");
+                    if (!StringUtil.isEmpty(cytype)){
+                        if ("1".equals(cytype)){
+                            sc_cytype = 1;
+                            rtype1_tv.setBackgroundResource(R.color.white);
+                            rtype2_tv.setBackgroundResource(R.color.aqua);
+                        }else {
+                            sc_cytype = 0;
+                            rtype1_tv.setBackgroundResource(R.color.aqua);
+                            rtype2_tv.setBackgroundResource(R.color.white);
+                        }
+                    }
                 } catch (Exception e) {
                     e.printStackTrace();
                 }

+ 32 - 4
app_modular/appme/src/main/java/com/uas/appme/settings/activity/ImageSettingActivity.java

@@ -64,7 +64,8 @@ public class ImageSettingActivity extends BaseActivity implements View.OnClickLi
 		super.onCreate(savedInstanceState);
 		setContentView(R.layout.image_setting_activity);
         initView();
-		String[] permissions = new String[]{Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE};
+        initData();
+        String[] permissions = new String[]{Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE};
 		for (String permission : permissions) {
 			if (PermissionUtil.lacksPermissions(ct, permission)) {
 				PermissionUtil.requestPermission(this, PermissionUtil.DEFAULT_REQUEST, permission);
@@ -72,15 +73,42 @@ public class ImageSettingActivity extends BaseActivity implements View.OnClickLi
 				return;
 		}
     }
+
+    private void initData() {
+        HttpClient httpClient = new HttpClient.Builder(Constants.IM_BASE_URL()).isDebug(true).build(true);
+        httpClient.Api().send(new HttpClient.Builder()
+                .url("user/appCompanyAdmin")
+                .add("companyid",CommonUtil.getSharedPreferences(MyApplication.getInstance(),"erp_uu"))
+                .add("userid", MyApplication.getInstance().getLoginUserId())
+                .add("token",MyApplication.getInstance().mAccessToken)
+                .method(Method.GET)
+                .build(),new ResultSubscriber<>(new ResultListener<Object>() {
+            @Override
+            public void onResponse(Object o) {
+                LogUtil.prinlnLongMsg("appCompanyAdmin", o.toString()+"");
+                if (!JSONUtil.validate(o.toString()) || o == null) return;
+                try {
+                    //{"result":"1","url":"http://113.105.74.140:8081/u/0/0/201710/o/48fda5af663f40f795f2dd49e2d8801f.jpg"}
+                    if (o.toString().contains("result")) {
+                            if (o.toString().contains("url")) {
+                                photoselect = JSON.parseObject(o.toString()).getString("url");
+                                ImageLoader.getInstance().displayImage(photoselect.toString(),mImageIm);
+                            }
+                    }
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        }));
+
+    }
+
     private void initView() {
         mImageIm = (ImageView) findViewById(R.id.image_im);
         findViewById(R.id.image_tv).setOnClickListener(this);
         findViewById(R.id.btn_save).setOnClickListener(this);
         mProgressDialog = ProgressDialogUtil.init(mContext, null, getString(R.string.please_wait));
         mImageIm.setOnClickListener(this);
-        String business_iamge = getIntent().getStringExtra("business_iamge");
-        if (!StringUtil.isEmpty(business_iamge))
-            ImageLoader.getInstance().displayImage(business_iamge,mImageIm);
     }
 
     @Override

+ 16 - 4
app_modular/appme/src/main/java/com/uas/appme/settings/activity/PersonSettingActivity.java

@@ -431,7 +431,10 @@ public class PersonSettingActivity extends BaseActivity implements View.OnClickL
                     if (o.toString().contains("result") && JSON.parseObject(o.toString()).getBoolean("result")){
                         if (o.toString().contains("imid")){
                             String imid = JSON.parseObject(o.toString()).getString("imid");
-                            if (StringUtil.isEmpty(imid)) return;
+                            if (StringUtil.isEmpty(imid)) {
+                               ToastMessage("imid获取失败,请稍后再试");
+                                return;
+                            }
                             if (updateChangeP) {  //更换过照片
                                 unLoadHeader(imid);
                             }else {
@@ -440,6 +443,8 @@ public class PersonSettingActivity extends BaseActivity implements View.OnClickL
                         }else
                             beforeSendMsg();
 
+                    }else if (!StringUtil.isEmpty(JSON.parseObject(o.toString()).getString("result"))){
+                        ToastMessage(JSON.parseObject(o.toString()).getString("result"));
                     }else
                         ToastMessage(getString(R.string.save_failed));
                 } catch (Exception e) {
@@ -526,10 +531,15 @@ public class PersonSettingActivity extends BaseActivity implements View.OnClickL
 
         String modeid2 = "fd4ac30e-b176-4410-ac0e-e39c8b71dfe0";
 
+        if (!StringUtil.isEmpty(sm_id)) {
+            jumpTo();
+            return; //更新时不发短信
+        }
         sendMessages(modeid1,name,phone);
         sendMessages(modeid2,name,phone);
     }
 
+    private int sendM = 0;
     private void sendMessages( final String modeid, final String name, final String phone) {
         StringJsonObjectRequest<AddAttentionResult> request = new StringJsonObjectRequest<AddAttentionResult>(
                 Request.Method.POST, "http://message.ubtob.com/sms/send", new Response.ErrorListener() {
@@ -540,9 +550,11 @@ public class PersonSettingActivity extends BaseActivity implements View.OnClickL
         }, new StringJsonObjectRequest.Listener<AddAttentionResult>() {
             @Override
             public void onResponse(ObjectResult<AddAttentionResult> result) {
-                Toast.makeText(ct,"短信发送成功",Toast.LENGTH_LONG).show();
-                jumpTo();
-
+                sendM++;
+                if (sendM == 2){
+                    Toast.makeText(ct,"短信发送成功",Toast.LENGTH_LONG).show();
+                    jumpTo();
+                }
             }
         }, AddAttentionResult.class, null) {
             @Override

+ 5 - 8
app_modular/appme/src/main/java/com/uas/appme/settings/activity/SettingActivity.java

@@ -103,7 +103,6 @@ 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) {
@@ -293,12 +292,11 @@ public class SettingActivity extends BaseActivity implements View.OnClickListene
                 try {
                     //{"result":"1","url":"http://113.105.74.140:8081/u/0/0/201710/o/48fda5af663f40f795f2dd49e2d8801f.jpg"}
                     if (o.toString().contains("result")) {
-                        if (!CommonUtil.isReleaseVersion()) {
+//                        if (!CommonUtil.isReleaseVersion()) {
+//                            businessmen_setting_rl.setVisibility(View.VISIBLE);
+//                        }else
+                            if ("1".equals(JSON.parseObject(o.toString()).getString("result"))){
                             businessmen_setting_rl.setVisibility(View.VISIBLE);
-                        }else if ("1".equals(JSON.parseObject(o.toString()).getString("result"))){
-                            businessmen_setting_rl.setVisibility(View.VISIBLE);
-                            if (o.toString().contains("url"))
-                                business_iamge = JSON.parseObject(o.toString()).getString("url");
                         }else{
                             businessmen_setting_rl.setVisibility(View.GONE);
                         }
@@ -436,8 +434,7 @@ 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)
-           .putExtra("business_iamge",business_iamge));
+           startActivity(new Intent(this,BSettingActivity.class));
            PreferenceUtils.putBoolean(Constants.B_SETTINGRED, true);
            bsettingRed.setVisibility(View.GONE);
        }

+ 57 - 0
app_modular/appme/src/main/java/com/uas/appme/settings/activity/SigatureActivity.java

@@ -0,0 +1,57 @@
+package com.uas.appme.settings.activity;
+
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.os.Bundle;
+import android.os.Environment;
+import android.view.View;
+import android.widget.ImageView;
+
+import com.core.base.BaseActivity;
+import com.uas.appme.R;
+import com.uas.appme.settings.handwritedemo.LandscapeActivity;
+
+import java.io.File;
+
+/**
+ * Created by FANGlh on 2017/11/8.
+ * function:
+ */
+
+public class SigatureActivity extends BaseActivity implements View.OnClickListener{
+
+    private ImageView s_image;
+    public static String path1= Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "ls.png";
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        initView();
+    }
+
+    private void initView() {
+        setContentView(R.layout.signture_activity);
+        getSupportActionBar().setTitle("签名");
+        findViewById(R.id.btn2).setOnClickListener(this);
+        s_image = (ImageView) findViewById(R.id.img2);
+        s_image.setOnClickListener(this);
+    }
+
+    @Override
+    public void onClick(View v) {
+        if (v.getId() == R.id.btn2){
+            startActivityForResult(new Intent(this, LandscapeActivity.class), 101);
+        }
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        if(resultCode==101){
+            BitmapFactory.Options options = new BitmapFactory.Options();
+            options.inSampleSize = 2;
+            Bitmap bm = BitmapFactory.decodeFile(path1, options);
+            s_image.setImageBitmap(bm);
+        }
+
+    }
+}

+ 55 - 0
app_modular/appme/src/main/java/com/uas/appme/settings/handwritedemo/LandscapeActivity.java

@@ -0,0 +1,55 @@
+package com.uas.appme.settings.handwritedemo;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Toast;
+
+import com.uas.appme.R;
+import com.uas.appme.settings.activity.SigatureActivity;
+
+import java.io.IOException;
+
+public class LandscapeActivity extends Activity implements View.OnClickListener {
+   private LinePathView pathView;
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_hand_write);
+        setResult(50);
+        initView();
+    }
+
+    private void initView(){
+        findViewById(R.id.back).setOnClickListener(this);
+        findViewById(R.id.clear1).setOnClickListener(this);
+        findViewById(R.id.save1).setOnClickListener(this);
+        pathView = (LinePathView) findViewById(R.id.view);
+        pathView.setPaintWidth(5);
+    }
+
+
+    @Override
+    public void onClick(View v) {
+        if (v.getId() == R.id.clear1){
+            pathView.clear();
+        }else if (v.getId()== R.id.back){
+            finish();
+        }
+        else if (v.getId() == R.id.save1){
+            if (pathView.getTouched())
+            {
+                try {
+                    pathView.save(SigatureActivity.path1,false,10);
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+                setResult(101);
+                finish();
+            }else {
+                Toast.makeText(LandscapeActivity.this,"您没有签名~", Toast.LENGTH_SHORT).show();
+            }
+        }
+    }
+}
+

+ 367 - 0
app_modular/appme/src/main/java/com/uas/appme/settings/handwritedemo/LinePathView.java

@@ -0,0 +1,367 @@
+package com.uas.appme.settings.handwritedemo;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.Bitmap.Config;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.Paint.Style;
+import android.graphics.Path;
+import android.graphics.PorterDuff;
+import android.support.annotation.ColorInt;
+import android.util.AttributeSet;
+import android.view.MotionEvent;
+import android.view.View;
+
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+
+
+/**
+ * 绘制Path的View 用于签名
+ *
+ * @author wastrel
+ */
+@SuppressLint("ClickableViewAccessibility")
+public class LinePathView extends View {
+
+    private  static final String TAG=LinePathView.class.getSimpleName();
+
+    private Context mContext;
+
+    /**
+     * 笔画X坐标起点
+     */
+    private float mX;
+    /**
+     * 笔画Y坐标起点
+     */
+    private float mY;
+    /**
+     * 手写画笔
+     */
+    private final Paint mGesturePaint = new Paint();
+    /**
+     * 路径
+     */
+    private final Path mPath = new Path();
+    /**
+     * 背景画布
+     */
+    private Canvas cacheCanvas;
+    /**
+     * 背景Bitmap缓存
+     */
+    private Bitmap cachebBitmap;
+    /**
+     * 是否已经签名
+     */
+    private boolean isTouched = false;
+
+
+    /**
+     * 画笔宽度 px;
+     */
+    private int mPaintWidth = 10;
+
+    /**
+     * 前景色
+     */
+    private int mPenColor = Color.BLACK;
+
+    private int mBackColor= Color.TRANSPARENT;
+    public LinePathView(Context context) {
+        super(context);
+        init(context);
+    }
+
+    public LinePathView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        init(context);
+    }
+
+    public LinePathView(Context context, AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+        init(context);
+    }
+
+    public void init(Context context) {
+        this.mContext = context;
+        mGesturePaint.setAntiAlias(true);
+        mGesturePaint.setStyle(Style.STROKE);
+        mGesturePaint.setStrokeWidth(mPaintWidth);
+        mGesturePaint.setColor(mPenColor);
+
+    }
+
+
+    @Override
+    protected void onSizeChanged(int w, int h, int oldw, int oldh) {
+        super.onSizeChanged(w, h, oldw, oldh);
+        cachebBitmap = Bitmap.createBitmap(getWidth(), getHeight(), Config.ARGB_8888);
+        cacheCanvas = new Canvas(cachebBitmap);
+        cacheCanvas.drawColor(mBackColor);
+        isTouched=false;
+    }
+
+    @Override
+    public boolean onTouchEvent(MotionEvent event) {
+        switch (event.getAction()) {
+            case MotionEvent.ACTION_DOWN:
+                touchDown(event);
+                break;
+            case MotionEvent.ACTION_MOVE:
+                isTouched = true;
+                touchMove(event);
+                break;
+            case MotionEvent.ACTION_UP:
+                cacheCanvas.drawPath(mPath, mGesturePaint);
+                mPath.reset();
+                break;
+        }
+        // 更新绘制
+        invalidate();
+        return true;
+    }
+
+    @Override
+    protected void onDraw(Canvas canvas) {
+        super.onDraw(canvas);
+
+        canvas.drawBitmap(cachebBitmap, 0, 0, mGesturePaint);
+        // 通过画布绘制多点形成的图形
+        canvas.drawPath(mPath, mGesturePaint);
+    }
+
+    // 手指点下屏幕时调用
+    private void touchDown(MotionEvent event) {
+
+        // mPath.rewind();
+        // 重置绘制路线,即隐藏之前绘制的轨迹
+        mPath.reset();
+        float x = event.getX();
+        float y = event.getY();
+
+        mX = x;
+        mY = y;
+        // mPath绘制的绘制起点
+        mPath.moveTo(x, y);
+    }
+
+    // 手指在屏幕上滑动时调用
+    private void touchMove(MotionEvent event) {
+        final float x = event.getX();
+        final float y = event.getY();
+
+        final float previousX = mX;
+        final float previousY = mY;
+
+        final float dx = Math.abs(x - previousX);
+        final float dy = Math.abs(y - previousY);
+
+        // 两点之间的距离大于等于3时,生成贝塞尔绘制曲线
+        if (dx >= 3 || dy >= 3) {
+            // 设置贝塞尔曲线的操作点为起点和终点的一半
+            float cX = (x + previousX) / 2;
+            float cY = (y + previousY) / 2;
+
+            // 二次贝塞尔,实现平滑曲线;previousX, previousY为操作点,cX, cY为终点
+            mPath.quadTo(previousX, previousY, cX, cY);
+
+            // 第二次执行时,第一次结束调用的坐标值将作为第二次调用的初始坐标值
+            mX = x;
+            mY = y;
+        }
+    }
+
+    /**
+     * 清除画板
+     */
+    public void clear() {
+        if (cacheCanvas != null) {
+            isTouched = false;
+            mGesturePaint.setColor(mPenColor);
+            cacheCanvas.drawColor(mBackColor, PorterDuff.Mode.CLEAR);
+            mGesturePaint.setColor(mPenColor);
+            invalidate();
+        }
+    }
+
+
+    /**
+     * 保存画板
+     *
+     * @param path 保存到路劲
+     */
+
+    public void save(String path) throws IOException {
+        save(path, false, 0);
+    }
+
+    /**
+     * 保存画板
+     *
+     * @param path       保存到路劲
+     * @param clearBlank 是否清楚空白区域
+     * @param blank  边缘空白区域
+     */
+    public void save(String path, boolean clearBlank, int blank) throws IOException {
+
+        Bitmap bitmap=cachebBitmap;
+        //BitmapUtil.createScaledBitmapByHeight(srcBitmap, 300);//  压缩图片
+        if (clearBlank) {
+            bitmap = clearBlank(bitmap, blank);
+        }
+        ByteArrayOutputStream bos = new ByteArrayOutputStream();
+        bitmap.compress(Bitmap.CompressFormat.PNG, 100, bos);
+        byte[] buffer = bos.toByteArray();
+        if (buffer != null) {
+                File file = new File(path);
+                if (file.exists()) {
+                    file.delete();
+                }
+                OutputStream outputStream = new FileOutputStream(file);
+                outputStream.write(buffer);
+                outputStream.close();
+        }
+    }
+
+    /**
+     * 获取画板的bitmap
+     * @return
+     */
+    public Bitmap getBitMap()
+    {
+        setDrawingCacheEnabled(true);
+        buildDrawingCache();
+        Bitmap bitmap=getDrawingCache();
+        setDrawingCacheEnabled(false);
+        return bitmap;
+    }
+
+
+
+
+    /**
+     * 逐行扫描 清楚边界空白。
+     *
+     * @param bp
+     * @param blank 边距留多少个像素
+     * @return
+     */
+    private Bitmap clearBlank(Bitmap bp, int blank) {
+        int HEIGHT = bp.getHeight();
+        int WIDTH = bp.getWidth();
+        int top = 0, left = 0, right = 0, bottom = 0;
+        int[] pixs = new int[WIDTH];
+        boolean isStop;
+        for (int y = 0; y < HEIGHT; y++) {
+            bp.getPixels(pixs, 0, WIDTH, 0, y, WIDTH, 1);
+            isStop = false;
+            for (int pix : pixs) {
+                if (pix != mBackColor) {
+                    top = y;
+                    isStop = true;
+                    break;
+                }
+            }
+            if (isStop) {
+                break;
+            }
+        }
+        for (int y = HEIGHT - 1; y >= 0; y--) {
+            bp.getPixels(pixs, 0, WIDTH, 0, y, WIDTH, 1);
+            isStop = false;
+            for (int pix : pixs) {
+                if (pix != mBackColor) {
+                    bottom = y;
+                    isStop = true;
+                    break;
+                }
+            }
+            if (isStop) {
+                break;
+            }
+        }
+        pixs = new int[HEIGHT];
+        for (int x = 0; x < WIDTH; x++) {
+            bp.getPixels(pixs, 0, 1, x, 0, 1, HEIGHT);
+            isStop = false;
+            for (int pix : pixs) {
+                if (pix != mBackColor) {
+                    left = x;
+                    isStop = true;
+                    break;
+                }
+            }
+            if (isStop) {
+                break;
+            }
+        }
+        for (int x = WIDTH - 1; x > 0; x--) {
+            bp.getPixels(pixs, 0, 1, x, 0, 1, HEIGHT);
+            isStop = false;
+            for (int pix : pixs) {
+                if (pix != mBackColor) {
+                    right = x;
+                    isStop = true;
+                    break;
+                }
+            }
+            if (isStop) {
+                break;
+            }
+        }
+        if (blank < 0) {
+            blank = 0;
+        }
+        left = left - blank > 0 ? left - blank : 0;
+        top = top - blank > 0 ? top - blank : 0;
+        right = right + blank > WIDTH - 1 ? WIDTH - 1 : right + blank;
+        bottom = bottom + blank > HEIGHT - 1 ? HEIGHT - 1 : bottom + blank;
+        return Bitmap.createBitmap(bp, left, top, right - left, bottom - top);
+    }
+
+    /**
+     * 设置画笔宽度 默认宽度为10px
+     *
+     * @param mPaintWidth
+     */
+    public void setPaintWidth(int mPaintWidth) {
+        mPaintWidth = mPaintWidth > 0 ? mPaintWidth : 10;
+        this.mPaintWidth = mPaintWidth;
+        mGesturePaint.setStrokeWidth(mPaintWidth);
+
+    }
+
+
+    public void setBackColor(@ColorInt int backColor)
+    {
+        mBackColor=backColor;
+    }
+
+
+    /**
+     * 设置画笔颜色
+     *
+     * @param mPenColor
+     */
+    public void setPenColor(int mPenColor) {
+        this.mPenColor = mPenColor;
+        mGesturePaint.setColor(mPenColor);
+    }
+
+    /**
+     * 是否有签名
+     *
+     * @return
+     */
+    public boolean getTouched() {
+        return isTouched;
+    }
+}

+ 65 - 0
app_modular/appme/src/main/res/layout/activity_hand_write.xml

@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/ll"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    >
+
+<RelativeLayout
+    android:layout_marginTop="5dp"
+    android:layout_width="match_parent"
+    android:layout_height="50dp">
+
+    <Button
+        android:id="@+id/save1"
+        android:layout_alignParentRight="true"
+        android:layout_width="100dp"
+        android:layout_height="45dp"
+        android:text="保存并返回"
+        android:background="@drawable/bg_bule_btn"
+        android:layout_marginRight="10dp"
+        />
+    <Button
+        android:layout_width="50dp"
+        android:layout_height="45dp"
+        android:id="@+id/back"
+        android:text="返回"
+        android:background="@drawable/bg_bule_btn"
+        android:visibility="visible"
+        android:layout_marginLeft="10dp"/>
+    <Button
+        android:id="@+id/clear1"
+        android:layout_marginLeft="20dp"
+        android:layout_width="50dp"
+        android:layout_height="45dp"
+        android:text="清除"
+        android:background="@drawable/bg_bule_btn"
+        android:layout_alignParentTop="true"
+        android:layout_toRightOf="@+id/back"
+        android:layout_toEndOf="@+id/back"
+        android:layout_marginStart="20dp" />
+    <Button
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:id="@+id/change"
+        android:text="改变颜色"
+        android:visibility="gone"/>
+    <Button
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:id="@+id/changewidth"
+        android:text="改变宽度"
+        android:visibility="gone"
+        />
+</RelativeLayout>
+
+    <com.uas.appme.settings.handwritedemo.LinePathView
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:id="@+id/view"
+        android:background="#FFFFFF"
+        android:layout_gravity="center_horizontal" />
+
+</LinearLayout>

+ 123 - 80
app_modular/appme/src/main/res/layout/business_hours_setting_activity.xml

@@ -5,89 +5,132 @@
     android:layout_height="match_parent"
     android:orientation="vertical"
     >
-      <LinearLayout
-          android:id="@+id/set_hour_ll"
-          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>
-
-    <LinearLayout
-        android:id="@+id/set_booktype_ll"
+    <com.core.widget.CustomerScrollView
         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="预约时间类型"/>
-        <TextView
-            android:id="@+id/period_tv"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="center_vertical"
-            style="@style/crm_business_btn"
-            android:text="按时间段"
-            android:gravity="center"/>
-        <TextView
-            android:id="@+id/timpoint_tv"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="center_vertical"
-            style="@style/crm_business_btn"
-            android:text="按时间点"
-            android:gravity="center"/>
-    </LinearLayout>
+        android:fillViewport="true">
 
-
-    <EditText
-        android:id="@+id/business_Introduction_et"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_margin="10dp"
-        android:background="@drawable/full_edit_bg"
-        android:gravity="top"
-        android:hint="请输入商家详情介绍限"
-        android:inputType="textMultiLine"
-        android:minHeight="200dp"
-        android:padding="10dp"
-        android:textColor="@color/black"
-        android:textColorHint="@color/grey"
-        android:textSize="16sp"
-        android:maxLength="400"/>
-    <Button
-            android:id="@+id/submit_btn"
+        <LinearLayout
             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" />
+            android:orientation="vertical">
+
+            <LinearLayout
+                android:id="@+id/set_hour_ll"
+                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>
+
+            <LinearLayout
+                android:id="@+id/set_booktype_ll"
+                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="预约时间类型:"/>
+                <TextView
+                    android:id="@+id/period_tv"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center_vertical"
+                    style="@style/crm_business_btn"
+                    android:text="按时间段"
+                    android:gravity="center"/>
+                <TextView
+                    android:id="@+id/timpoint_tv"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center_vertical"
+                    style="@style/crm_business_btn"
+                    android:text="按时间点"
+                    android:gravity="center"/>
+            </LinearLayout>
+
+            <LinearLayout
+                android:id="@+id/set_roomtype_ll"
+                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="包房预订类型:"/>
+                <TextView
+                    android:id="@+id/rtype1_tv"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center_vertical"
+                    style="@style/crm_business_btn"
+                    android:text="早中晚"
+                    android:gravity="center"/>
+                <TextView
+                    android:id="@+id/rtype2_tv"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center_vertical"
+                    style="@style/crm_business_btn"
+                    android:text="中晚"
+                    android:gravity="center"/>
+            </LinearLayout>
+
+            <com.andreabaccega.widget.FormEditText
+                android:id="@+id/business_Introduction_et"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_margin="10dp"
+                android:background="@drawable/full_edit_bg"
+                android:gravity="top"
+                android:hint="请输入商家详情介绍限400字"
+                android:inputType="textMultiLine"
+                android:minHeight="200dp"
+                android:padding="10dp"
+                android:textColor="@color/black"
+                android:textColorHint="@color/grey"
+                android:textSize="16sp"
+                android:maxLength="400"/>
+            <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>
+
+    </com.core.widget.CustomerScrollView>
+
+
 </LinearLayout>

+ 1 - 0
app_modular/appme/src/main/res/layout/com_location_input_item.xml

@@ -147,6 +147,7 @@
                 android:gravity="center_vertical|right"
                 android:inputType="number"
                 android:textColor="@color/text_main"
+                android:maxLength="6"
                 />
             <ImageView
                 android:layout_width="@dimen/next_width"

+ 54 - 0
app_modular/appme/src/main/res/layout/signture_activity.xml

@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="#458632"
+    android:orientation="vertical"
+    >
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:gravity="center_horizontal">
+        <Button
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:id="@+id/btn1"
+            android:text="区域裁剪"
+            android:visibility="gone"/>
+        <Button
+            android:layout_width="100dp"
+            android:layout_height="45dp"
+            android:id="@+id/btn2"
+            android:text="去写签名"
+            android:layout_marginTop="50dp"
+            android:background="@drawable/bg_bule_btn"/>
+
+    </LinearLayout>
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textColor="@android:color/white"
+        android:text="签名区域裁剪(白边距为10px):"
+        android:visibility="gone"/>
+    <ImageView
+        android:id="@+id/img1"
+        android:layout_width="320dp"
+        android:scaleType="centerInside"
+        android:background="#FFFFFF"
+        android:layout_height="160dp"
+        android:visibility="gone"/>
+    <TextView
+        android:layout_width="wrap_content"
+        android:textColor="@android:color/white"
+        android:layout_height="wrap_content"
+        android:text="签名显示:"/>
+    <ImageView
+        android:id="@+id/img2"
+        android:layout_width="320dp"
+        android:background="#FFFFFF"
+        android:scaleType="centerInside"
+        android:layout_height="160dp"
+        android:layout_gravity="center_horizontal"/>
+</LinearLayout>

+ 1 - 1
app_modular/appmessages/src/main/assets/business_statistics.json

@@ -148,7 +148,7 @@
             "detailValue": ""
           },
           {
-            "detailName": "预约数",
+            "detailName": "预约数",
             "detailKey": "ordercount",
             "detailValue": ""
           }

+ 2 - 1
app_modular/appmessages/src/main/java/com/modular/appmessages/activity/UUSportActivity.java

@@ -54,7 +54,8 @@ public class UUSportActivity extends BaseActivity implements View.OnClickListene
 
     private void initData() {
         model = mStepRankingFirstDao.getAllRFIDatas();
-        LogUtil.prinlnLongMsg("fanglh", JSON.toJSONString(model));
+        StepRankingFirstBean mm = mStepRankingFirstDao.getCurDataByDate("2017年11月06日");
+        LogUtil.prinlnLongMsg("fanglh", JSON.toJSONString(model)+","+JSON.toJSONString(mm));
         if (ListUtils.isEmpty(model)){
             mEmptyLayout.showEmpty();
             return;

+ 2 - 2
version.gradle

@@ -11,8 +11,8 @@ ext {
             minSdkVersion    : 9,
             targetSdkVersion : 24,
             javaVersion      : JavaVersion.VERSION_1_8,
-            versionCode      : 123,
-            versionName      : '6.0.3',
+            versionCode      : 124,
+            versionName      : '6.0.4',
     ]
 
     depsVersion = [