Commit 72663cb3 by 宁斌

1、餐牌食品組分頁調整

2、打印回調不成功處理
3、數據下載頁面調整
4、獲取支付方式接口替換
parent 6c4562f5
...@@ -39,7 +39,8 @@ allprojects { ...@@ -39,7 +39,8 @@ allprojects {
maven { url 'http://www.idescout.com/maven/repo/' } maven { url 'http://www.idescout.com/maven/repo/' }
//阿里云仓库 //阿里云仓库
maven { url "http://maven.aliyun.com/nexus/content/repositories/releases" } maven { url "http://maven.aliyun.com/nexus/content/repositories/releases" }
// 私有仓库地址
maven { url "http://lib.gcssloop.com/repository/gcssloop-central/" }
maven{ url 'https://maven.aliyun.com/repository/google' } maven{ url 'https://maven.aliyun.com/repository/google' }
maven{ url 'https://maven.aliyun.com/repository/jcenter' } maven{ url 'https://maven.aliyun.com/repository/jcenter' }
} }
......
...@@ -2,10 +2,10 @@ package com.gingersoft.gsa.cloud.download.mvp.contract; ...@@ -2,10 +2,10 @@ package com.gingersoft.gsa.cloud.download.mvp.contract;
import android.content.Context; import android.content.Context;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.common.bean.FoodBean; import com.gingersoft.gsa.cloud.base.common.bean.FoodBean;
import com.gingersoft.gsa.cloud.database.bean.Food; import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.download.mvp.model.bean.ComboRespone; import com.gingersoft.gsa.cloud.download.mvp.model.bean.ComboItemRespone;
import com.gingersoft.gsa.cloud.download.mvp.model.bean.FoodComboRespone;
import com.gingersoft.gsa.cloud.download.mvp.model.bean.FoodModifierRespone; import com.gingersoft.gsa.cloud.download.mvp.model.bean.FoodModifierRespone;
import com.gingersoft.gsa.cloud.download.mvp.model.bean.FunctionRespone; import com.gingersoft.gsa.cloud.download.mvp.model.bean.FunctionRespone;
import com.gingersoft.gsa.cloud.download.mvp.model.bean.ModifierRespone; import com.gingersoft.gsa.cloud.download.mvp.model.bean.ModifierRespone;
...@@ -54,7 +54,9 @@ public interface DownloadContract { ...@@ -54,7 +54,9 @@ public interface DownloadContract {
Observable<ModifierRespone> downModifier(int restaurantId); Observable<ModifierRespone> downModifier(int restaurantId);
Observable<ComboRespone> downCombo(int restaurantId); Observable<FoodComboRespone> downFoodCombo(int restaurantId);
Observable<ComboItemRespone> downComboItem(int restaurantId);
Observable<FoodModifierRespone> downFoodModifier(int restaurantId); Observable<FoodModifierRespone> downFoodModifier(int restaurantId);
} }
......
...@@ -3,11 +3,11 @@ package com.gingersoft.gsa.cloud.download.mvp.model; ...@@ -3,11 +3,11 @@ package com.gingersoft.gsa.cloud.download.mvp.model;
import android.app.Application; import android.app.Application;
import android.content.Context; import android.content.Context;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.common.bean.FoodBean; import com.gingersoft.gsa.cloud.base.common.bean.FoodBean;
import com.gingersoft.gsa.cloud.database.bean.Food; import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.utils.FoodDaoUtils; import com.gingersoft.gsa.cloud.database.utils.FoodDaoUtils;
import com.gingersoft.gsa.cloud.download.mvp.model.bean.ComboRespone; import com.gingersoft.gsa.cloud.download.mvp.model.bean.ComboItemRespone;
import com.gingersoft.gsa.cloud.download.mvp.model.bean.FoodComboRespone;
import com.gingersoft.gsa.cloud.download.mvp.model.bean.FoodModifierRespone; import com.gingersoft.gsa.cloud.download.mvp.model.bean.FoodModifierRespone;
import com.gingersoft.gsa.cloud.download.mvp.model.bean.FunctionRespone; import com.gingersoft.gsa.cloud.download.mvp.model.bean.FunctionRespone;
import com.gingersoft.gsa.cloud.download.mvp.model.bean.ModifierRespone; import com.gingersoft.gsa.cloud.download.mvp.model.bean.ModifierRespone;
...@@ -86,9 +86,15 @@ public class DownloadModel extends BaseModel implements DownloadContract.Model { ...@@ -86,9 +86,15 @@ public class DownloadModel extends BaseModel implements DownloadContract.Model {
} }
@Override @Override
public Observable<ComboRespone> downCombo(int restaurantId) { public Observable<FoodComboRespone> downFoodCombo(int restaurantId) {
return mRepositoryManager.obtainRetrofitService(DownloadService.class) return mRepositoryManager.obtainRetrofitService(DownloadService.class)
.downCombo(restaurantId); .downFoodCombo(restaurantId);
}
@Override
public Observable<ComboItemRespone> downComboItem(int restaurantId) {
return mRepositoryManager.obtainRetrofitService(DownloadService.class)
.downComboItem(restaurantId);
} }
@Override @Override
......
package com.gingersoft.gsa.cloud.download.mvp.model.bean;
import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import com.gingersoft.gsa.cloud.database.bean.FoodCombo;
import java.util.List;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-02-18
* 修订历史:2020-02-18
* 描述:
*/
public class ComboItemRespone {
private boolean success;
private String errMsg;
private long sysTime;
private List<ComboItem> data;
public boolean isSuccess() {
return success;
}
public void setSuccess(boolean success) {
this.success = success;
}
public String getErrMsg() {
return errMsg;
}
public void setErrMsg(String errMsg) {
this.errMsg = errMsg;
}
public long getSysTime() {
return sysTime;
}
public void setSysTime(long sysTime) {
this.sysTime = sysTime;
}
public List<ComboItem> getData() {
return data;
}
public void setData(List<ComboItem> data) {
this.data = data;
}
}
...@@ -4,6 +4,17 @@ public class DataDownLoadState { ...@@ -4,6 +4,17 @@ public class DataDownLoadState {
private String text; private String text;
private int state = 0; private int state = 0;
//下載進度所占比例
private float ratio;
public float getRatio() {
return ratio;
}
public void setRatio(float ratio) {
this.ratio = ratio;
}
public DataDownLoadState() { public DataDownLoadState() {
} }
......
package com.gingersoft.gsa.cloud.download.mvp.model.bean; package com.gingersoft.gsa.cloud.download.mvp.model.bean;
import com.gingersoft.gsa.cloud.database.bean.Combo; import com.gingersoft.gsa.cloud.database.bean.FoodCombo;
import java.util.List; import java.util.List;
...@@ -11,12 +11,12 @@ import java.util.List; ...@@ -11,12 +11,12 @@ import java.util.List;
* 修订历史:2020-02-18 * 修订历史:2020-02-18
* 描述: * 描述:
*/ */
public class ComboRespone { public class FoodComboRespone {
private boolean success; private boolean success;
private String errMsg; private String errMsg;
private long sysTime; private long sysTime;
private List<Combo> data; private List<FoodCombo> data;
public boolean isSuccess() { public boolean isSuccess() {
return success; return success;
...@@ -42,11 +42,11 @@ public class ComboRespone { ...@@ -42,11 +42,11 @@ public class ComboRespone {
this.sysTime = sysTime; this.sysTime = sysTime;
} }
public List<Combo> getData() { public List<FoodCombo> getData() {
return data; return data;
} }
public void setData(List<Combo> data) { public void setData(List<FoodCombo> data) {
this.data = data; this.data = data;
} }
} }
package com.gingersoft.gsa.cloud.download.mvp.model.bean; package com.gingersoft.gsa.cloud.download.mvp.model.bean;
import com.gingersoft.gsa.cloud.database.bean.Combo;
import com.gingersoft.gsa.cloud.database.bean.FoodModifier; import com.gingersoft.gsa.cloud.database.bean.FoodModifier;
import java.util.List; import java.util.List;
......
package com.gingersoft.gsa.cloud.download.mvp.model.downmanager;
import android.content.Context;
import com.gingersoft.gsa.cloud.base.threadPool.ThreadPoolManager;
import com.gingersoft.gsa.cloud.base.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.base.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.base.utils.log.LogUtil;
import com.gingersoft.gsa.cloud.base.utils.okhttpUtils.OkHttp3Utils;
import com.gingersoft.gsa.cloud.download.mvp.presenter.DownloadPresenter;
import com.jess.arms.utils.ArmsUtils;
import java.net.URLEncoder;
import java.util.List;
import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-02-25
* 修订历史:2020-02-25
* 描述:數據下載管理類
*/
public class DownloadManager {
private static DownloadManager downloadManager;
private Context context;
//当前请求响应成功数
private int responseSuccessCount;
//当前请求响应失敗数
private int responseErrorCount;
//当前所需請求數
private int requestCount;
public static DownloadManager getInstance() {
if (downloadManager == null) {
downloadManager = new DownloadManager();
}
return downloadManager;
}
public DownloadManager takeRequestExecute(Context context, List<DownloadRequest> requests, DownloadPresenter presenter) {
this.context = context;
this.requestCount = requests.size();
//重置响应数
this.responseSuccessCount = 0;
ThreadPoolManager poolManager = ThreadPoolManager.getInstence();
for (int i = 0; i < requests.size(); i++) {
DownloadRequest request = requests.get(i);
if (request != null) {
DownloadTaskImp taskImp = new DownloadTaskImp(request,presenter);
poolManager.putExecutableTasks(taskImp);
}
}
return this;
}
public void download(DownloadRequest request) {
OkHttp3Utils.get(request.getUrl())
.subscribeOn(Schedulers.io())
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<String>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(String data) {
if (listener != null) {
listener.onSuccess(data, request.getDownTag());
}
//同步响应数加+1
responseSuccessCount++;
}
@Override
public void onError(Throwable t) {
if (listener != null) {
listener.onError(t, request.getDownTag());
}
responseErrorCount++;
}
@Override
public void onComplete() {
if (responseSuccessCount == requestCount) {
if (listener != null) {
listener.noComplete();
}
}
}
});
}
private OnDownloadResultListener listener;
public void setDownloadResultListener(OnDownloadResultListener listener) {
this.listener = listener;
}
public interface OnDownloadResultListener {
void onSuccess(String respose, int downTag);
void onError(Throwable t, int downTag);
void noComplete();
}
}
package com.gingersoft.gsa.cloud.download.mvp.model.downmanager;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-02-25
* 修订历史:2020-02-25
* 描述:
*/
public class DownloadRequest {
private int downTag;
private String url;
private int restaurantId;
public int getDownTag() {
return downTag;
}
public void setDownTag(int downTag) {
this.downTag = downTag;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public int getRestaurantId() {
return restaurantId;
}
public void setRestaurantId(int restaurantId) {
this.restaurantId = restaurantId;
}
}
package com.gingersoft.gsa.cloud.download.mvp.model.downmanager;
import com.gingersoft.gsa.cloud.download.mvp.presenter.DownloadPresenter;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-02-25
* 修订历史:2020-02-25
* 描述:
*/
public class DownloadTaskImp implements Runnable {
private DownloadRequest request;
private DownloadPresenter presenter;
public DownloadTaskImp(DownloadRequest request, DownloadPresenter presenter) {
this.request = request;
this.presenter = presenter;
}
@Override
public void run() {
// DownloadManager.getInstance().download(request);
// switch (request.getDownTag()) {
// case 0:
// presenter.downFun();
// break;
// case 1:
// presenter.downFoodList();
// break;
// case 2:
// presenter.downModifier();
// break;
// case 3:
// presenter.downCombo();
// break;
// case 4:
// presenter.downFoodModifier();
// break;
// }
switch (request.getDownTag()) {
case 0:
presenter.downFun(request.getDownTag());
break;
case 1:
presenter.downFoodList(request.getDownTag());
break;
case 2:
presenter.downModifier(request.getDownTag());
break;
case 3:
presenter.downFoodCombo(request.getDownTag());
break;
case 4:
presenter.downComboItem(request.getDownTag());
break;
case 5:
presenter.downFoodModifier(request.getDownTag());
break;
}
}
}
...@@ -2,7 +2,8 @@ package com.gingersoft.gsa.cloud.download.mvp.model.service; ...@@ -2,7 +2,8 @@ package com.gingersoft.gsa.cloud.download.mvp.model.service;
import com.gingersoft.gsa.cloud.base.Api; import com.gingersoft.gsa.cloud.base.Api;
import com.gingersoft.gsa.cloud.base.common.bean.FoodBean; import com.gingersoft.gsa.cloud.base.common.bean.FoodBean;
import com.gingersoft.gsa.cloud.download.mvp.model.bean.ComboRespone; import com.gingersoft.gsa.cloud.download.mvp.model.bean.ComboItemRespone;
import com.gingersoft.gsa.cloud.download.mvp.model.bean.FoodComboRespone;
import com.gingersoft.gsa.cloud.download.mvp.model.bean.FoodModifierRespone; import com.gingersoft.gsa.cloud.download.mvp.model.bean.FoodModifierRespone;
import com.gingersoft.gsa.cloud.download.mvp.model.bean.FunctionRespone; import com.gingersoft.gsa.cloud.download.mvp.model.bean.FunctionRespone;
import com.gingersoft.gsa.cloud.download.mvp.model.bean.ModifierRespone; import com.gingersoft.gsa.cloud.download.mvp.model.bean.ModifierRespone;
...@@ -27,7 +28,10 @@ public interface DownloadService { ...@@ -27,7 +28,10 @@ public interface DownloadService {
Observable<ModifierRespone> downModifier(@Query("restaurantId") int restaurantId); Observable<ModifierRespone> downModifier(@Query("restaurantId") int restaurantId);
@GET(Api.food_package_relation + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2) @GET(Api.food_package_relation + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<ComboRespone> downCombo(@Query("restaurantId") int restaurantId); Observable<FoodComboRespone> downFoodCombo(@Query("restaurantId") int restaurantId);
@GET(Api.food_comboItem + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<ComboItemRespone> downComboItem(@Query("restaurantId") int restaurantId);
@GET(Api.food_modifiere_relation + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2) @GET(Api.food_modifiere_relation + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<FoodModifierRespone> downFoodModifier(@Query("restaurantId") int restaurantId); Observable<FoodModifierRespone> downFoodModifier(@Query("restaurantId") int restaurantId);
......
package com.gingersoft.gsa.cloud.download.mvp.ui.activity; package com.gingersoft.gsa.cloud.download.mvp.ui.activity;
import android.annotation.TargetApi;
import android.app.Activity;
import android.content.Intent; import android.content.Intent;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.view.View; import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils; import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils;
import com.gingersoft.gsa.cloud.download.R; import com.gingersoft.gsa.cloud.download.R;
...@@ -15,10 +23,13 @@ import com.jess.arms.base.BaseActivity; ...@@ -15,10 +23,13 @@ import com.jess.arms.base.BaseActivity;
import com.jess.arms.base.DefaultAdapter; import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.di.component.AppComponent; import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import com.qmuiteam.qmui.alpha.QMUIAlphaImageButton;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.widget.QMUITopBar; import com.qmuiteam.qmui.widget.QMUITopBar;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView; import butterknife.BindView;
...@@ -45,6 +56,8 @@ public class DownloadActivity extends BaseActivity<DownloadPresenter> implements ...@@ -45,6 +56,8 @@ public class DownloadActivity extends BaseActivity<DownloadPresenter> implements
@BindView(R2.id.recycle_download) @BindView(R2.id.recycle_download)
RecyclerView recycle_download; RecyclerView recycle_download;
@BindView(R2.id.tv_progress)
TextView tv_progress;
@Override @Override
public void setupActivityComponent(@NonNull AppComponent appComponent) { public void setupActivityComponent(@NonNull AppComponent appComponent) {
...@@ -58,6 +71,7 @@ public class DownloadActivity extends BaseActivity<DownloadPresenter> implements ...@@ -58,6 +71,7 @@ public class DownloadActivity extends BaseActivity<DownloadPresenter> implements
@Override @Override
protected void onCreate(@Nullable Bundle savedInstanceState) { protected void onCreate(@Nullable Bundle savedInstanceState) {
setTransparent(this);
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
} }
...@@ -79,15 +93,22 @@ public class DownloadActivity extends BaseActivity<DownloadPresenter> implements ...@@ -79,15 +93,22 @@ public class DownloadActivity extends BaseActivity<DownloadPresenter> implements
@Override @Override
public void initTopBar() { public void initTopBar() {
// mTopBar.setBackgroundColor(ContextCompat.getColor(this, R.color.white)); QMUIAlphaImageButton leftButton = mTopBar.addLeftBackImageButton();
mTopBar.addLeftImageButton(R.drawable.icon_back, R.id.iv_left_back).setOnClickListener(v -> finish()); leftButton.setOnClickListener(new View.OnClickListener() {
mTopBar.addRightTextButton("刷新", R.id.topbar).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
killMyself();
}
});
QMUIAlphaImageButton rightButton = mTopBar.addRightImageButton(R.drawable.icon_refresh, R.id.btn_back);
rightButton.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
mPresenter.downAllList(); mPresenter.downAllList();
} }
}); });
mTopBar.setTitle("數據下載"); mTopBar.setTitle("數據下載").setTextColor(ArmsUtils.getColor(this, R.color.theme_white_color));
} }
@Override @Override
...@@ -151,4 +172,54 @@ public class DownloadActivity extends BaseActivity<DownloadPresenter> implements ...@@ -151,4 +172,54 @@ public class DownloadActivity extends BaseActivity<DownloadPresenter> implements
LinearLayoutManager manager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false); LinearLayoutManager manager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
ArmsUtils.configRecyclerView(recycle_download, manager); ArmsUtils.configRecyclerView(recycle_download, manager);
} }
public void setTvProgress(float progress) {
tv_progress.setText(progress + "%");
}
/**
* 设置状态栏全透明
*
* @param activity 需要设置的activity
*/
public static void setTransparent(Activity activity) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) {
return;
}
transparentStatusBar(activity);
// setRootView(activity);
}
/**
* 使状态栏透明
*/
@TargetApi(Build.VERSION_CODES.KITKAT)
private static void transparentStatusBar(Activity activity) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
//需要设置这个flag contentView才能延伸到状态栏
activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
//状态栏覆盖在contentView上面,设置透明使contentView的背景透出来
activity.getWindow().setStatusBarColor(Color.TRANSPARENT);
} else {
//让contentView延伸到状态栏并且设置状态栏颜色透明
activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
}
}
/**
* 设置根布局参数
*/
private static void setRootView(Activity activity) {
ViewGroup parent = (ViewGroup) activity.findViewById(android.R.id.content);
for (int i = 0, count = parent.getChildCount(); i < count; i++) {
View childView = parent.getChildAt(i);
if (childView instanceof ViewGroup) {
childView.setFitsSystemWindows(true);
((ViewGroup) childView).setClipToPadding(true);
}
}
}
} }
...@@ -2,20 +2,54 @@ ...@@ -2,20 +2,54 @@
<com.qmuiteam.qmui.widget.QMUIWindowInsetLayout xmlns:android="http://schemas.android.com/apk/res/android" <com.qmuiteam.qmui.widget.QMUIWindowInsetLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent"
android:background="@mipmap/down_decoration">
<com.qmuiteam.qmui.widget.QMUITopBar <com.qmuiteam.qmui.widget.QMUITopBar
android:id="@+id/topbar" android:id="@+id/topbar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="?attr/qmui_topbar_height" /> android:layout_height="?attr/qmui_topbar_height"
android:layout_marginTop="@dimen/dp_20"
android:background="@color/trans" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="2">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@mipmap/down_cloud"/>
<TextView
android:id="@+id/tv_progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="100%"
android:layout_gravity="center"
android:layout_marginTop="@dimen/dp_12"
android:textColor="#13B7F5"
android:textSize="@dimen/sp_24" />
</FrameLayout>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycle_download" android:id="@+id/recycle_download"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="0dp"
android:layout_weight="1"
android:fadeScrollbars="false" android:fadeScrollbars="false"
android:layout_marginTop="?attr/qmui_topbar_height" android:background="@mipmap/down_wave"
android:listSelector="@color/theme_background_color"> android:paddingTop="@dimen/dp_50"
</androidx.recyclerview.widget.RecyclerView> android:listSelector="@color/theme_background_color"/>
</LinearLayout>
</com.qmuiteam.qmui.widget.QMUIWindowInsetLayout> </com.qmuiteam.qmui.widget.QMUIWindowInsetLayout>
\ No newline at end of file
...@@ -96,7 +96,7 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N ...@@ -96,7 +96,7 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N
public void initData(@Nullable Bundle savedInstanceState) { public void initData(@Nullable Bundle savedInstanceState) {
initShadow(); initShadow();
initFuncationData(); initFuncationData();
setTopInfo(); setTitleInfo();
} }
private void initShadow() { private void initShadow() {
...@@ -165,7 +165,7 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N ...@@ -165,7 +165,7 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N
rvStaffManagement.setAdapter(staffAdapter); rvStaffManagement.setAdapter(staffAdapter);
} }
private void setTopInfo() { private void setTitleInfo() {
String restaurantName = GsaCloudApplication.getRestaurantName(this); String restaurantName = GsaCloudApplication.getRestaurantName(this);
String memberName = GsaCloudApplication.getMemberName(this); String memberName = GsaCloudApplication.getMemberName(this);
if (!TextUtils.isEmpty(restaurantName)) { if (!TextUtils.isEmpty(restaurantName)) {
...@@ -184,9 +184,17 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N ...@@ -184,9 +184,17 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N
new ChooseRestaurantDialog.BottomListSheetBuilder(this) new ChooseRestaurantDialog.BottomListSheetBuilder(this)
.addBrandItems(brandsBeans) .addBrandItems(brandsBeans)
.setOnItemClickListener((dialog, item, position) -> { .setOnItemClickListener((dialog, item, position) -> {
LoginBean.DataBean.UserBean.BrandsBean brandsBean = getBrandByRestaurantId(brandsBeans, item.getId());
if(brandsBean != null) {
saveBrandAndRestaurantInfo(brandsBean.getBrandId(), brandsBean.getBrandName(), item.getId(), item.getText());
}
GsaCloudApplication.setRestaurantId(NewMainActivity.this, item.getId()); GsaCloudApplication.setRestaurantId(NewMainActivity.this, item.getId());
GsaCloudApplication.setRestaurantName(NewMainActivity.this, item.getText()); GsaCloudApplication.setRestaurantName(NewMainActivity.this, item.getText());
setTopInfo();
setTitleInfo();
CC.obtainBuilder("Component.Download") CC.obtainBuilder("Component.Download")
.setActionName("showDownloadActivity") .setActionName("showDownloadActivity")
.build() .build()
...@@ -199,6 +207,26 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N ...@@ -199,6 +207,26 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N
} }
} }
private void saveBrandAndRestaurantInfo(int brandId, String brandName, int restaurantId, String restaurantName) {
GsaCloudApplication.setBrandId(this, brandId);
GsaCloudApplication.setBrandName(this, brandName);
GsaCloudApplication.setRestaurantId(this, restaurantId);
GsaCloudApplication.setRestaurantName(this, restaurantName);
}
private LoginBean.DataBean.UserBean.BrandsBean getBrandByRestaurantId(List<LoginBean.DataBean.UserBean.BrandsBean> brands, int restaurantId) {
for (int i = 0; i < brands.size(); i++) {
if (brands.get(i).getRestaurants() != null) {
for (int j = 0; j < brands.get(i).getRestaurants().size(); j++) {
if (brands.get(i).getRestaurants().get(j).getRestaurantId() == restaurantId) {
return brands.get(i);
}
}
}
}
return null;
}
@Override @Override
public void initIntent() { public void initIntent() {
...@@ -259,7 +287,7 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N ...@@ -259,7 +287,7 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N
} }
}; };
@OnClick({R2.id.layout_login_out, R2.id.iv_personal_center}) @OnClick({R2.id.layout_login_out, R2.id.iv_personal_center,R2.id.tv_restaurant_name})
@Override @Override
public void onClick(View v) { public void onClick(View v) {
if (v.getId() == R.id.layout_login_out) { if (v.getId() == R.id.layout_login_out) {
......
...@@ -108,15 +108,16 @@ public class PrintComponent implements IComponent { ...@@ -108,15 +108,16 @@ public class PrintComponent implements IComponent {
} }
private boolean print(CC cc) { private boolean print(CC cc) {
Context context = cc.getContext(); // Context context = cc.getContext();
Intent intent = new Intent(context, PrintActivity.class); // Intent intent = new Intent(context, PrintActivity.class);
if (!(context instanceof Activity)) { // if (!(context instanceof Activity)) {
//调用方没有设置context或app间组件跳转,context为application // //调用方没有设置context或app间组件跳转,context为application
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
} // }
//将cc的callId传给Activity,登录完成后通过这个callId来回传结果 // //将cc的callId传给Activity,登录完成后通过这个callId来回传结果
intent.putExtra("callId", cc.getCallId()); // intent.putExtra("callId", cc.getCallId());
context.startActivity(intent); // context.startActivity(intent);
CCUtil.navigateTo(cc,PrintActivity.class);
//返回true,不立即调用CC.sendCCResult //返回true,不立即调用CC.sendCCResult
return true; return true;
} }
......
...@@ -193,16 +193,20 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -193,16 +193,20 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
* 打印失敗 * 打印失敗
*/ */
private void printFile() { private void printFile() {
CC.sendCCResult(getIntent().getStringExtra("callId"), CCResult.error("print error")); String callId = CCUtil.getNavigateCallId(this);
CC.sendCCResult(callId, CCResult.error("print error"));
finish(); finish();
} }
/** /**
* 打印成功 * 打印成功
*/ */
private void printSuccess() { private void printSuccess() {
CC.sendCCResult(getIntent().getStringExtra("callId"), CCResult.success()); String callId = CCUtil.getNavigateCallId(this);
CC.sendCCResult(callId, CCResult.success());
finish(); finish();
} }
//初始化打印內容 //初始化打印內容
public Bitmap initPrintBitmap(int width) { public Bitmap initPrintBitmap(int width) {
Bitmap bitmap = getIntent().getParcelableExtra("bitmap"); Bitmap bitmap = getIntent().getParcelableExtra("bitmap");
......
...@@ -41,7 +41,7 @@ android { ...@@ -41,7 +41,7 @@ android {
/** /**
* 版本号 * 版本号
*/ */
schemaVersion 13 schemaVersion 8
/** /**
* greendao输出dao的数据库操作实体类文件夹(相对路径 包名+自定义路径名称,包将创建于包名的直接路径下) * greendao输出dao的数据库操作实体类文件夹(相对路径 包名+自定义路径名称,包将创建于包名的直接路径下)
*/ */
...@@ -80,6 +80,7 @@ dependencies { ...@@ -80,6 +80,7 @@ dependencies {
implementation rootProject.ext.dependencies["BaseRecyclerViewAdapter"] implementation rootProject.ext.dependencies["BaseRecyclerViewAdapter"]
implementation 'com.android.support:design:28.0.0' implementation 'com.android.support:design:28.0.0'
implementation 'com.gcssloop.recyclerview:pagerlayoutmanager:2.3.8'
//陰影背景 //陰影背景
// implementation 'com.github.Liberuman:ShadowDrawable:0.1' // implementation 'com.github.Liberuman:ShadowDrawable:0.1'
api 'com.github.lihangleo2:ShadowLayout:2.1.6' api 'com.github.lihangleo2:ShadowLayout:2.1.6'
......
...@@ -20,7 +20,8 @@ public interface Api { ...@@ -20,7 +20,8 @@ public interface Api {
String modifier = "food/items"; String modifier = "food/items";
//食品套餐關係 //食品套餐關係
String food_package_relation = "food/package"; String food_package_relation = "food/package";
//套餐食品關係
String food_comboItem = "food/comboItem";
//食品細項關係 //食品細項關係
String food_modifiere_relation = "food/modifierDetail"; String food_modifiere_relation = "food/modifierDetail";
} }
...@@ -23,7 +23,7 @@ public class BillTypeAdapter extends BaseQuickAdapter<PayMethod, BaseViewHolder> ...@@ -23,7 +23,7 @@ public class BillTypeAdapter extends BaseQuickAdapter<PayMethod, BaseViewHolder>
@Override @Override
protected void convert(BaseViewHolder helper, PayMethod item) { protected void convert(BaseViewHolder helper, PayMethod item) {
helper.setText(R.id.tv_total_amount_text, item.getName()); helper.setText(R.id.tv_total_amount_text, item.getPayName());
helper.setText(R.id.tv_total_amount, item.getPayMoney() + ""); helper.setText(R.id.tv_total_amount, item.getPayMoney() + "");
} }
} }
...@@ -32,6 +32,10 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -32,6 +32,10 @@ public class GsaCloudApplication extends BaseApplication {
* 系统上下文 * 系统上下文
*/ */
private static Context mAppContext; private static Context mAppContext;
/**
* 设置请求超时默认20秒钟 从后台获取超时时间
*/
public static int REQUEST_TIMEOUT = 20;
public static boolean isLogin = false; public static boolean isLogin = false;
public static CurrentAndroidSetting androidSetting; public static CurrentAndroidSetting androidSetting;
...@@ -107,6 +111,14 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -107,6 +111,14 @@ public class GsaCloudApplication extends BaseApplication {
return (int) SPUtils.get(context, UserConstans.memberId, 0); return (int) SPUtils.get(context, UserConstans.memberId, 0);
} }
public static int getBrandId(Context context) {
return (int) SPUtils.get(context, UserConstans.brandId, 0);
}
public static String getBrandName(Context context) {
return (String) SPUtils.get(context, UserConstans.brandName, "");
}
public static int getRestaurantId(Context context) { public static int getRestaurantId(Context context) {
return (int) SPUtils.get(context, UserConstans.restaurantId, 0); return (int) SPUtils.get(context, UserConstans.restaurantId, 0);
} }
...@@ -135,6 +147,13 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -135,6 +147,13 @@ public class GsaCloudApplication extends BaseApplication {
SPUtils.put(context, UserConstans.memberName, memberName); SPUtils.put(context, UserConstans.memberName, memberName);
} }
public static void setBrandId(Context context, int restaurantId) {
SPUtils.put(context, UserConstans.brandId, restaurantId);
}
public static void setBrandName(Context context, String restaurantName) {
SPUtils.put(context, UserConstans.brandName, restaurantName);
}
public static void setRestaurantId(Context context, int restaurantId) { public static void setRestaurantId(Context context, int restaurantId) {
SPUtils.put(context, UserConstans.restaurantId, restaurantId); SPUtils.put(context, UserConstans.restaurantId, restaurantId);
} }
...@@ -145,5 +164,4 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -145,5 +164,4 @@ public class GsaCloudApplication extends BaseApplication {
SPUtils.put(context, UserConstans.brandRestaurantInfos, brandRestaurantIds); SPUtils.put(context, UserConstans.brandRestaurantInfos, brandRestaurantIds);
} }
} }
...@@ -23,6 +23,7 @@ public class OrderBean { ...@@ -23,6 +23,7 @@ public class OrderBean {
private int id; private int id;
private String orderNo; private String orderNo;
private int status; private int status;
private int person;
private double totalAmount; private double totalAmount;
private double totalPoints; private double totalPoints;
private String createTime; private String createTime;
...@@ -31,11 +32,12 @@ public class OrderBean { ...@@ -31,11 +32,12 @@ public class OrderBean {
public OrderBean() { public OrderBean() {
} }
public OrderBean(int id, String orderNo, int status, String createTime) { public OrderBean(OrderBean orderBean) {
this.id = id; this.id = orderBean.id;
this.orderNo = orderNo; this.status = orderBean.status;
this.status = status; this.orderNo = orderBean.orderNo;
this.createTime = createTime; this.person = orderBean.person;
this.createTime = orderBean.createTime;
} }
public int getId() { public int getId() {
...@@ -62,6 +64,14 @@ public class OrderBean { ...@@ -62,6 +64,14 @@ public class OrderBean {
this.status = status; this.status = status;
} }
public int getPerson() {
return person;
}
public void setPerson(int person) {
this.person = person;
}
public double getTotalAmount() { public double getTotalAmount() {
return totalAmount; return totalAmount;
} }
......
package com.gingersoft.gsa.cloud.base.common.bean; package com.gingersoft.gsa.cloud.base.common.bean;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.database.bean.Combo; import com.gingersoft.gsa.cloud.database.bean.FoodCombo;
import com.gingersoft.gsa.cloud.database.bean.Food; import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.bean.Modifier; import com.gingersoft.gsa.cloud.database.bean.Modifier;
...@@ -561,19 +561,19 @@ public class OrderDetail implements Serializable { ...@@ -561,19 +561,19 @@ public class OrderDetail implements Serializable {
/** /**
* 套餐食品轉換 * 套餐食品轉換
* *
* @param combo * @param foodCombo
* @param number * @param number
* @param prop * @param prop
* @param isRvMealClicked * @param isRvMealClicked
* @return * @return
*/ */
public static OrderDetail comboTransOrderDetail(Combo combo, int number, String prop, boolean isRvMealClicked) { public static OrderDetail comboTransOrderDetail(FoodCombo foodCombo, int number, String prop, boolean isRvMealClicked) {
OrderDetail orderDetail = new OrderDetail(); OrderDetail orderDetail = new OrderDetail();
orderDetail.setProductName(combo.getName()); orderDetail.setProductName(foodCombo.getName());
orderDetail.setId(combo.getId()); orderDetail.setId(foodCombo.getId());
orderDetail.setProductId(combo.getComId()); orderDetail.setProductId(foodCombo.getComId());
orderDetail.setParentId(combo.getFid()); orderDetail.setParentId(foodCombo.getFid());
orderDetail.setUnit_price(combo.getPrice()); orderDetail.setUnit_price(foodCombo.getPrice());
orderDetail.setPrice(number * orderDetail.getUnit_price()); orderDetail.setPrice(number * orderDetail.getUnit_price());
orderDetail.setNumber(number); orderDetail.setNumber(number);
orderDetail.setOrderId(MyOrderManage.getInstance().getOrderId()); orderDetail.setOrderId(MyOrderManage.getInstance().getOrderId());
...@@ -582,7 +582,7 @@ public class OrderDetail implements Serializable { ...@@ -582,7 +582,7 @@ public class OrderDetail implements Serializable {
orderDetail.setType(FOOD_TYPE); orderDetail.setType(FOOD_TYPE);
orderDetail.setItemType(2); orderDetail.setItemType(2);
orderDetail.setProp(prop); orderDetail.setProp(prop);
// orderDetail.setComboAuto(combo.isAutoMode()); // orderDetail.setComboAuto(foodCombo.isAutoMode());
if (isRvMealClicked) { if (isRvMealClicked) {
//手动点击细项 才将子食品作为主体被选中 //手动点击细项 才将子食品作为主体被选中
orderDetail.setSelected(2); orderDetail.setSelected(2);
......
...@@ -2,7 +2,7 @@ package com.gingersoft.gsa.cloud.base.common.bean; ...@@ -2,7 +2,7 @@ package com.gingersoft.gsa.cloud.base.common.bean;
import android.graphics.Color; import android.graphics.Color;
import java.util.List; import com.google.gson.annotations.SerializedName;
/** /**
* 作者:ELEGANT_BIN * 作者:ELEGANT_BIN
...@@ -13,8 +13,16 @@ import java.util.List; ...@@ -13,8 +13,16 @@ import java.util.List;
*/ */
public class PayMethod { public class PayMethod {
/**
* success : true
* sysTime : 1582865195628
* data : [{"id":11,"payName":"服務員確認","createTime":"May 7, 2018 11:47:27 AM"},{"id":1019,"payName":"轉數快支付","remarks":"","createTime":"Jul 10, 2019 4:56:21 PM"},{"id":9,"payName":"微信","createTime":"Jun 29, 2018 4:34:26 PM"},{"id":10,"payName":"Apple pay","createTime":"Aug 9, 2018 3:59:05 PM"},{"id":1010,"payName":"YedPay支付宝"},{"id":6,"payName":"支付寶HK","createTime":"Sep 12, 2017 2:45:12 PM"},{"id":8,"payName":"支付寶","createTime":"Jan 5, 2018 10:55:06 AM"},{"id":1020,"payName":"PayMe","createTime":"Nov 29, 2019 6:07:56 PM"}]
*/
private int id; private int id;
private String name; private String payName;
private String createTime;
private String remarks;
private String NAME; private String NAME;
private String NAME2; private String NAME2;
...@@ -24,13 +32,14 @@ public class PayMethod { ...@@ -24,13 +32,14 @@ public class PayMethod {
//*************自定義字段*************** //*************自定義字段***************
private double payMoney = 0.0; private double payMoney = 0.0;
private double TipsPrice = 0.0; private double TipsPrice = 0.0;
private int payModeTextColor = android.graphics.Color.parseColor("#000000"); private int payModeTextColor = Color.parseColor("#000000");
private int payMoneyTextColor = android.graphics.Color.parseColor("#000000"); private int payMoneyTextColor = Color.parseColor("#000000");
private int payModeTextSelectColor = android.graphics.Color.parseColor("#000000"); private int payModeTextSelectColor = Color.parseColor("#000000");
private int payMoneyTextSelectColor = Color.parseColor("#000000"); private int payMoneyTextSelectColor = Color.parseColor("#000000");
private int payModeSize = 18; private int payModeSize = 18;
private int payMoneySize = 18; private int payMoneySize = 18;
public int getId() { public int getId() {
return id; return id;
} }
...@@ -39,16 +48,52 @@ public class PayMethod { ...@@ -39,16 +48,52 @@ public class PayMethod {
this.id = id; this.id = id;
} }
public String getName() { public String getPayName() {
return name; return payName;
} }
public void setName(String name) { public void setPayName(String payName) {
this.name = name; this.payName = payName;
} }
public String getPayName() { public String getCreateTime() {
return name; return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public String getRemarks() {
return remarks;
}
public void setRemarks(String remarks) {
this.remarks = remarks;
}
public String getNAME() {
return NAME;
}
public void setNAME(String NAME) {
this.NAME = NAME;
}
public String getNAME2() {
return NAME2;
}
public void setNAME2(String NAME2) {
this.NAME2 = NAME2;
}
public String getNAME3() {
return NAME3;
}
public void setNAME3(String NAME3) {
this.NAME3 = NAME3;
} }
public String getPAYWAY() { public String getPAYWAY() {
......
...@@ -2,14 +2,12 @@ package com.gingersoft.gsa.cloud.base.common.bean.mealManage; ...@@ -2,14 +2,12 @@ package com.gingersoft.gsa.cloud.base.common.bean.mealManage;
import android.app.Activity; import android.app.Activity;
import com.gingersoft.gsa.cloud.base.common.bean.BillMethodBean;
import com.gingersoft.gsa.cloud.base.common.bean.OrderBean; import com.gingersoft.gsa.cloud.base.common.bean.OrderBean;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail; import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.common.bean.PayMethod; import com.gingersoft.gsa.cloud.base.common.bean.PayMethod;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.database.bean.Food;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
...@@ -89,10 +87,18 @@ public class MyOrderManage { ...@@ -89,10 +87,18 @@ public class MyOrderManage {
return 0; return 0;
} }
public Date getOpenTableTime() {
if (orderBean != null) {
return new Date(orderBean.getCreateTime());
}
return new Date();
}
public void setOrderBean(OrderBean orderBean) { public void setOrderBean(OrderBean orderBean) {
this.orderBean = orderBean; this.orderBean = orderBean;
} }
public void changeNumber(int number) { public void changeNumber(int number) {
if (orderFoodList.size() <= 0) { if (orderFoodList.size() <= 0) {
......
...@@ -22,7 +22,7 @@ public class OpenTableManage { ...@@ -22,7 +22,7 @@ public class OpenTableManage {
//是否刷新數據 //是否刷新數據
private boolean isRefresh = false; private boolean isRefresh = false;
//開台人數 //開台人數
private int peopleNumber; private int peopleNumber = 0;
//是否分檯 //是否分檯
private boolean isSplite = false; private boolean isSplite = false;
//分檯編號 //分檯編號
...@@ -38,6 +38,10 @@ public class OpenTableManage { ...@@ -38,6 +38,10 @@ public class OpenTableManage {
return sDefaultOpenTableManage; return sDefaultOpenTableManage;
} }
public void clear() {
peopleNumber = 0;
}
public TableBean.DataBean getTableBean() { public TableBean.DataBean getTableBean() {
return tableBean; return tableBean;
} }
......
package com.gingersoft.gsa.cloud.base.threadPool;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2019-11-18
* 修订历史:2019-11-18
* 描述:
*/
public class Test {
public static void main(String[] args) {
ThreadPoolManager threadPoolManager = ThreadPoolManager.getInstence();
}
}
package com.gingersoft.gsa.cloud.base.threadPool;
import android.util.Log;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.RejectedExecutionHandler;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2019-11-18
* 修订历史:2019-11-18
* 描述: 線程池管理類
*/
public class ThreadPoolManager {
private String TAG =this.getClass().getSimpleName();
private static ThreadPoolManager instence = null;
private ThreadPoolExecutor mThreadPoolExecutor;
//线程数量,核心线程数
private int corePoolSize = 5;
//池中允许的最大线程数
private int maximumPoolSize = 10;
//设置空闲线程的空闲时间,如果一共有6个线程,那么超出核心线程数的两个线程就会被记录时间,超过该时间就会被杀死,如果没有超过核心线程数,那么线程是不会被倒计时的。
private long keepAliveTime = 10;
//等待执行的容器容量大小
private int capacity = 10;
//拒绝后的执行任务容器--》凉快的地方
private LinkedBlockingQueue taskQueue =new LinkedBlockingQueue();
public synchronized static ThreadPoolManager getInstence() {
if (instence == null) {
synchronized (ThreadPoolManager.class) {
if (instence == instence) {
instence = new ThreadPoolManager();
}
}
}
return instence;
}
/**
* 构造方法里面就初始化线程池
* ArrayBlockingQueue是一个执行任务的容量,当调用mThreadPoolExecutor的execute,容量加1,执行run完后,容量减1
* ArrayBlockingQueue后面传入true就是以FIFO规则存储:先进先出
*/
public ThreadPoolManager(){
if(mThreadPoolExecutor==null){
mThreadPoolExecutor = new ThreadPoolExecutor(corePoolSize,maximumPoolSize,keepAliveTime, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(capacity,true),handler);
}
//开启线程一直循环从等待队列里面取出可执行任务并执行
mThreadPoolExecutor.execute(runnable);
}
/**
* 往队列里面存入可执行任务
* @param runnable
*/
public void putExecutableTasks(Runnable runnable){
try {
taskQueue.put(runnable);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
/**
* ThreadPoolExecutor的run
*/
private Runnable runnable=new Runnable() {
@Override
public void run() {
//开启循环
while(true){
//取出等待的执行任务
Runnable taskQueueRunnable = null;
try {
Log.d(TAG,"等待队列大小:"+taskQueue.size());
taskQueueRunnable = (Runnable) taskQueue.take();
} catch (InterruptedException e) {
e.printStackTrace();
}
if(runnable!=null){
mThreadPoolExecutor.execute(taskQueueRunnable);
}
Log.d(TAG,"线程池大小"+mThreadPoolExecutor.getPoolSize());
}
}
};
/**
* 拒绝策略
* 当ArrayBlockingQueue容量过大,就要执行拒绝策略,对来的执行任务说:放不下了,先到一边凉快去,那么就要有一个凉快的容器撞他们
*
*/
private RejectedExecutionHandler handler = new RejectedExecutionHandler(){
@Override
public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) {
try {
taskQueue.put(r);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
}
...@@ -5,8 +5,8 @@ package com.gingersoft.gsa.cloud.base.utils.constans; ...@@ -5,8 +5,8 @@ package com.gingersoft.gsa.cloud.base.utils.constans;
*/ */
public class HttpsConstans { public class HttpsConstans {
public static String ROOT_SERVER_ADDRESS_FORMAL = "http://gingersoft.tpddns.cn:58201/ricepon-cloud-gsa/api/";// 深圳服务器 // public static String ROOT_SERVER_ADDRESS_FORMAL = "http://gingersoft.tpddns.cn:58201/ricepon-cloud-gsa/api/";// 深圳服务器
// public static String ROOT_SERVER_ADDRESS_FORMAL = "http://a.ricepon.com:58201/ricepon-cloud-gsa/api/";// 香港服务器 public static String ROOT_SERVER_ADDRESS_FORMAL = "http://a.ricepon.com:58201/ricepon-cloud-gsa/api/";// 香港服务器
public static String ROOT_SERVER_ADDRESS_FORMAL2 = "http://gingersoft.tpddns.cn:53000/mock/49/ricepon-cloud-gsa/api/";//測試服務器 public static String ROOT_SERVER_ADDRESS_FORMAL2 = "http://gingersoft.tpddns.cn:53000/mock/49/ricepon-cloud-gsa/api/";//測試服務器
......
...@@ -12,6 +12,8 @@ public class UserConstans { ...@@ -12,6 +12,8 @@ public class UserConstans {
/**當前餐檯ID,名稱*/ /**當前餐檯ID,名稱*/
public static String restaurantId = "restaurant_id"; public static String restaurantId = "restaurant_id";
public static String restaurantName = "restaurant_name"; public static String restaurantName = "restaurant_name";
public static String brandId = "brand_id";
public static String brandName = "brand_name";
/**當前賬號下所有餐檯品牌Json*/ /**當前賬號下所有餐檯品牌Json*/
public static String brandRestaurantInfos = "brand_restaurant_infos"; public static String brandRestaurantInfos = "brand_restaurant_infos";
......
package com.gingersoft.gsa.cloud.database.bean;
import org.greenrobot.greendao.annotation.Entity;
import org.greenrobot.greendao.annotation.Id;
import org.greenrobot.greendao.annotation.Property;
import java.util.Date;
import org.greenrobot.greendao.annotation.Generated;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-02-18
* 修订历史:2020-02-18
* 描述:套餐食品關係
*/
@Entity
public class ComboItem {
/**
* ID
*/
@Property(nameInDb = "_id")
@Id(autoincrement = true)
private Long id;
private Long comId;
private Long fid;
private Long qty;
private Double diffAmt;
private Long seqNo;
private Long visible;
private Date createTime;
private String createBy;
private Date updateTime;
private Long conditions;
private Long isRT;
private Byte deletes;
private Long posId;
private Long restaurant_id;
private Byte isMainAccount;
@Generated(hash = 1857315418)
public ComboItem(Long id, Long comId, Long fid, Long qty, Double diffAmt,
Long seqNo, Long visible, Date createTime, String createBy,
Date updateTime, Long conditions, Long isRT, Byte deletes, Long posId,
Long restaurant_id, Byte isMainAccount) {
this.id = id;
this.comId = comId;
this.fid = fid;
this.qty = qty;
this.diffAmt = diffAmt;
this.seqNo = seqNo;
this.visible = visible;
this.createTime = createTime;
this.createBy = createBy;
this.updateTime = updateTime;
this.conditions = conditions;
this.isRT = isRT;
this.deletes = deletes;
this.posId = posId;
this.restaurant_id = restaurant_id;
this.isMainAccount = isMainAccount;
}
@Generated(hash = 435228340)
public ComboItem() {
}
public Long getId() {
return id;
}
public Long getComId() {
return comId;
}
public Long getFid() {
return fid;
}
public Long getQty() {
return qty;
}
public Double getDiffAmt() {
return diffAmt;
}
public Long getSeqNo() {
return seqNo;
}
public Long getVisible() {
return visible;
}
public Date getCreateTime() {
return createTime;
}
public String getCreateBy() {
return createBy;
}
public Date getUpdateTime() {
return updateTime;
}
public Long getConditions() {
return conditions;
}
public Long getIsRT() {
return isRT;
}
public Byte getDeletes() {
return deletes;
}
public Long getPosId() {
return posId;
}
public Long getRestaurant_id() {
return restaurant_id;
}
public Byte getIsMainAccount() {
return isMainAccount;
}
public void setId(Long id) {
this.id = id;
}
public void setComId(Long comId) {
this.comId = comId;
}
public void setFid(Long fid) {
this.fid = fid;
}
public void setQty(Long qty) {
this.qty = qty;
}
public void setDiffAmt(Double diffAmt) {
this.diffAmt = diffAmt;
}
public void setSeqNo(Long seqNo) {
this.seqNo = seqNo;
}
public void setVisible(Long visible) {
this.visible = visible;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public void setCreateBy(String createBy) {
this.createBy = createBy;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public void setConditions(Long conditions) {
this.conditions = conditions;
}
public void setIsRT(Long isRT) {
this.isRT = isRT;
}
public void setDeletes(Byte deletes) {
this.deletes = deletes;
}
public void setPosId(Long posId) {
this.posId = posId;
}
public void setRestaurant_id(Long restaurant_id) {
this.restaurant_id = restaurant_id;
}
public void setIsMainAccount(Byte isMainAccount) {
this.isMainAccount = isMainAccount;
}
}
...@@ -5,11 +5,17 @@ import android.graphics.Color; ...@@ -5,11 +5,17 @@ import android.graphics.Color;
import org.greenrobot.greendao.annotation.Entity; import org.greenrobot.greendao.annotation.Entity;
import org.greenrobot.greendao.annotation.Generated; import org.greenrobot.greendao.annotation.Generated;
import org.greenrobot.greendao.annotation.Id; import org.greenrobot.greendao.annotation.Id;
import org.greenrobot.greendao.annotation.JoinEntity;
import org.greenrobot.greendao.annotation.Property; import org.greenrobot.greendao.annotation.Property;
import org.greenrobot.greendao.annotation.ToMany;
import org.greenrobot.greendao.annotation.Transient; import org.greenrobot.greendao.annotation.Transient;
import org.jetbrains.annotations.NotNull;
import java.util.Date; import java.util.Date;
import java.util.List;
import org.greenrobot.greendao.DaoException;
import com.gingersoft.gsa.cloud.database.greendao.DaoSession;
import com.gingersoft.gsa.cloud.database.greendao.ComboItemDao;
import com.gingersoft.gsa.cloud.database.greendao.FoodDao;
/** /**
* 作者:ELEGANT_BIN * 作者:ELEGANT_BIN
...@@ -22,14 +28,16 @@ import java.util.Date; ...@@ -22,14 +28,16 @@ import java.util.Date;
@Entity @Entity
public class Food { public class Food {
@Property(nameInDb = "_id")
@Id(autoincrement = true)
private Long dbid;
/** /**
* ID * ID
*/ */
@Property(nameInDb = "_id")
@Id(autoincrement = true)
private Long id; private Long id;
@ToMany
@JoinEntity(entity = FoodCombo.class, sourceProperty = "fid", targetProperty = "comId")
private List<ComboItem> comboItems;
/** /**
* 上級ID (如0=最高級) * 上級ID (如0=最高級)
*/ */
...@@ -293,7 +301,6 @@ public class Food { ...@@ -293,7 +301,6 @@ public class Food {
*/ */
private Long isStatistic; private Long isStatistic;
/** /**
* 自定義字段 * 自定義字段
*/ */
...@@ -317,17 +324,24 @@ public class Food { ...@@ -317,17 +324,24 @@ public class Food {
/**是否组合食品*/ /**是否组合食品*/
private boolean isComboFood = false; private boolean isComboFood = false;
/** Used to resolve relations */
@Generated(hash = 2040040024)
private transient DaoSession daoSession;
/** Used for active entity operations. */
@Generated(hash = 1296197325)
private transient FoodDao myDao;
@Generated(hash = 866324199) @Generated(hash = 866324199)
public Food() { public Food() {
} }
@Generated(hash = 1165612351) @Generated(hash = 1640870418)
public Food(Long dbid, Long id, Long parentId, Long restaurantId, Byte isParent, public Food(Long id, Long parentId, Long restaurantId, Byte isParent, Long seqNo,
Long seqNo, String foodName, String foodName1, String foodName2, String plu, String foodName, String foodName1, String foodName2, String plu, String posFid,
String posFid, String foodDesc, Long limitAmount, Long limitType, String foodDesc, Long limitAmount, Long limitType, Long foodSummary,
Long foodSummary, Long invisible, Byte autoMod, Double price, Double marketPrice, Long invisible, Byte autoMod, Double price, Double marketPrice,
Double lunchboxPrice, String imgUrlSmall, String imageurl, Long riceponInvisible, Double lunchboxPrice, String imgUrlSmall, String imageurl, Long riceponInvisible,
Double cost, Date startDate, Date endDate, Long like, Long totalSold, Long isSold, Double cost, Date startDate, Date endDate, Long like, Long totalSold, Long isSold,
String createBy, Date createTime, String updateBy, Date updateTime, Long periodId, String createBy, Date createTime, String updateBy, Date updateTime, Long periodId,
...@@ -339,7 +353,6 @@ public class Food { ...@@ -339,7 +353,6 @@ public class Food {
Byte serviceCharge, Long colorId, Long conditions, Long isRt, Long deletes, Byte serviceCharge, Long colorId, Long conditions, Long isRt, Long deletes,
Long isTimingFood, Long minLongTime, Long unitTime, Double unitPrice, Long isTimingFood, Long minLongTime, Long unitTime, Double unitPrice,
Long freeLongTime, Date freePeriodBegin, Long isStatistic) { Long freeLongTime, Date freePeriodBegin, Long isStatistic) {
this.dbid = dbid;
this.id = id; this.id = id;
this.parentId = parentId; this.parentId = parentId;
this.restaurantId = restaurantId; this.restaurantId = restaurantId;
...@@ -946,14 +959,6 @@ public class Food { ...@@ -946,14 +959,6 @@ public class Food {
this.isStatistic = isStatistic; this.isStatistic = isStatistic;
} }
public Long getDbid() {
return this.dbid;
}
public void setDbid(Long dbid) {
this.dbid = dbid;
}
public int getNumber() { public int getNumber() {
return number; return number;
} }
...@@ -1001,4 +1006,82 @@ public class Food { ...@@ -1001,4 +1006,82 @@ public class Food {
public void setComboFood(boolean comboFood) { public void setComboFood(boolean comboFood) {
isComboFood = comboFood; isComboFood = comboFood;
} }
/**
* To-many relationship, resolved on first access (and after reset).
* Changes to to-many relations are not persisted, make changes to the target entity.
*/
@Generated(hash = 929118398)
public List<ComboItem> getComboItems() {
if (comboItems == null) {
final DaoSession daoSession = this.daoSession;
if (daoSession == null) {
throw new DaoException("Entity is detached from DAO context");
}
ComboItemDao targetDao = daoSession.getComboItemDao();
List<ComboItem> comboItemsNew = targetDao._queryFood_ComboItems(id);
synchronized (this) {
if (comboItems == null) {
comboItems = comboItemsNew;
}
}
}
return comboItems;
}
/** Resets a to-many relationship, making the next get call to query for a fresh result. */
@Generated(hash = 1344176234)
public synchronized void resetComboItems() {
comboItems = null;
}
/**
* Convenient call for {@link org.greenrobot.greendao.AbstractDao#delete(Object)}.
* Entity must attached to an entity context.
*/
@Generated(hash = 128553479)
public void delete() {
if (myDao == null) {
throw new DaoException("Entity is detached from DAO context");
}
myDao.delete(this);
}
/**
* Convenient call for {@link org.greenrobot.greendao.AbstractDao#refresh(Object)}.
* Entity must attached to an entity context.
*/
@Generated(hash = 1942392019)
public void refresh() {
if (myDao == null) {
throw new DaoException("Entity is detached from DAO context");
}
myDao.refresh(this);
}
/**
* Convenient call for {@link org.greenrobot.greendao.AbstractDao#update(Object)}.
* Entity must attached to an entity context.
*/
@Generated(hash = 713229351)
public void update() {
if (myDao == null) {
throw new DaoException("Entity is detached from DAO context");
}
myDao.update(this);
}
/** called by internal mechanisms, do not call yourself. */
@Generated(hash = 505459956)
public void __setDaoSession(DaoSession daoSession) {
this.daoSession = daoSession;
myDao = daoSession != null ? daoSession.getFoodDao() : null;
}
} }
...@@ -3,8 +3,7 @@ package com.gingersoft.gsa.cloud.database.bean; ...@@ -3,8 +3,7 @@ package com.gingersoft.gsa.cloud.database.bean;
import android.graphics.Color; import android.graphics.Color;
import org.greenrobot.greendao.annotation.Entity; import org.greenrobot.greendao.annotation.Entity;
import org.greenrobot.greendao.annotation.Id; import org.greenrobot.greendao.annotation.JoinEntity;
import org.greenrobot.greendao.annotation.NotNull;
import org.greenrobot.greendao.annotation.Property; import org.greenrobot.greendao.annotation.Property;
import org.greenrobot.greendao.annotation.ToMany; import org.greenrobot.greendao.annotation.ToMany;
import org.greenrobot.greendao.annotation.Transient; import org.greenrobot.greendao.annotation.Transient;
...@@ -12,35 +11,25 @@ import org.greenrobot.greendao.annotation.Generated; ...@@ -12,35 +11,25 @@ import org.greenrobot.greendao.annotation.Generated;
import java.util.List; import java.util.List;
import org.greenrobot.greendao.DaoException;
import com.gingersoft.gsa.cloud.database.greendao.DaoSession;
import com.gingersoft.gsa.cloud.database.greendao.FoodDao;
import com.gingersoft.gsa.cloud.database.greendao.ComboDao;
/** /**
* 作者:ELEGANT_BIN * 作者:ELEGANT_BIN
* 版本:1.6.0 * 版本:1.6.0
* 创建日期:2020-02-18 * 创建日期:2020-02-18
* 修订历史:2020-02-18 * 修订历史:2020-02-18
* 描述:套餐關係 * 描述:食品套餐關係
*/ */
@Entity @Entity
public class Combo { public class FoodCombo {
@Property(nameInDb = "_id") @Property(nameInDb = "_id")
@Id(autoincrement = true)
private Long dbid;
@NotNull
private Long id; private Long id;
private Long fid; //食品ID private Long fid; //食品ID
private int comId;//套餐ID private int comId;//套餐ID
//關聯食品表 // @ToMany
@ToMany(referencedJoinProperty = "id") // @JoinEntity(entity = ComboItem.class, sourceProperty = "comId", targetProperty = "fid")
private List<Food> foods; // private List<ComboItem> comboItems;
/** /**
* 自定義字段 * 自定義字段
*/ */
...@@ -79,44 +68,20 @@ public class Combo { ...@@ -79,44 +68,20 @@ public class Combo {
@Transient @Transient
private Modifier modifier; private Modifier modifier;
/**
* Used to resolve relations
*/
@Generated(hash = 2040040024)
private transient DaoSession daoSession;
/**
* Used for active entity operations.
*/
@Generated(hash = 1678159415)
private transient ComboDao myDao;
@Generated(hash = 1487508076) @Generated(hash = 34188725)
public Combo(Long dbid, @NotNull Long id, Long fid, int comId) { public FoodCombo(Long id, Long fid, int comId) {
this.dbid = dbid;
this.id = id; this.id = id;
this.fid = fid; this.fid = fid;
this.comId = comId; this.comId = comId;
} }
@Generated(hash = 2090634475) @Generated(hash = 1913989231)
public Combo() { public FoodCombo() {
} }
// @Generated(hash = 196636064)
// public Combo(Long dbid, @NotNull Long id, Long fid, int comId) {
// this.dbid = dbid;
// this.id = id;
// this.fid = fid;
// this.comId = comId;
// }
//
// @Generated(hash = 2090634475)
// public Combo() {
// }
public long getParentId() { public long getParentId() {
return parentId; return parentId;
...@@ -126,7 +91,7 @@ public class Combo { ...@@ -126,7 +91,7 @@ public class Combo {
this.parentId = parentId; this.parentId = parentId;
} }
public long getId() { public Long getId() {
return id; return id;
} }
...@@ -198,14 +163,6 @@ public class Combo { ...@@ -198,14 +163,6 @@ public class Combo {
this.fontColor = fontColor; this.fontColor = fontColor;
} }
public Long getDbid() {
return dbid;
}
public void setDbid(Long dbid) {
this.dbid = dbid;
}
public Modifier getModifier() { public Modifier getModifier() {
return modifier; return modifier;
} }
...@@ -218,87 +175,12 @@ public class Combo { ...@@ -218,87 +175,12 @@ public class Combo {
this.id = id; this.id = id;
} }
public static FoodCombo addFoodInfo(Food food, FoodCombo foodCombo) {
/** foodCombo.setName(food.getFoodName());
* To-many relationship, resolved on first access (and after reset). foodCombo.setFid(food.getId());
* Changes to to-many relations are not persisted, make changes to the target entity. foodCombo.setPrice(food.getPrice());
*/ foodCombo.setAutoMode(food.getAutoMod());
@Generated(hash = 696813942) return foodCombo;
public List<Food> getFoods() {
if (foods == null) {
final DaoSession daoSession = this.daoSession;
if (daoSession == null) {
throw new DaoException("Entity is detached from DAO context");
}
FoodDao targetDao = daoSession.getFoodDao();
List<Food> foodsNew = targetDao._queryCombo_Foods(dbid);
synchronized (this) {
if (foods == null) {
foods = foodsNew;
}
}
}
return foods;
}
/**
* Resets a to-many relationship, making the next get call to query for a fresh result.
*/
@Generated(hash = 1950966)
public synchronized void resetFoods() {
foods = null;
}
/**
* Convenient call for {@link org.greenrobot.greendao.AbstractDao#delete(Object)}.
* Entity must attached to an entity context.
*/
@Generated(hash = 128553479)
public void delete() {
if (myDao == null) {
throw new DaoException("Entity is detached from DAO context");
}
myDao.delete(this);
} }
/**
* Convenient call for {@link org.greenrobot.greendao.AbstractDao#refresh(Object)}.
* Entity must attached to an entity context.
*/
@Generated(hash = 1942392019)
public void refresh() {
if (myDao == null) {
throw new DaoException("Entity is detached from DAO context");
}
myDao.refresh(this);
}
/**
* Convenient call for {@link org.greenrobot.greendao.AbstractDao#update(Object)}.
* Entity must attached to an entity context.
*/
@Generated(hash = 713229351)
public void update() {
if (myDao == null) {
throw new DaoException("Entity is detached from DAO context");
}
myDao.update(this);
}
/**
* called by internal mechanisms, do not call yourself.
*/
@Generated(hash = 589205575)
public void __setDaoSession(DaoSession daoSession) {
this.daoSession = daoSession;
myDao = daoSession != null ? daoSession.getComboDao() : null;
}
public static Combo addFoodInfo(Food food, Combo combo) {
combo.setName(food.getFoodName());
combo.setFid(food.getId());
combo.setPrice(food.getPrice());
combo.setAutoMode(food.getAutoMod());
return combo;
}
} }
...@@ -14,29 +14,31 @@ import org.greenrobot.greendao.identityscope.IdentityScopeType; ...@@ -14,29 +14,31 @@ import org.greenrobot.greendao.identityscope.IdentityScopeType;
// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. // THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
/** /**
* Master of DAO (schema version 13): knows all DAOs. * Master of DAO (schema version 8): knows all DAOs.
*/ */
public class DaoMaster extends AbstractDaoMaster { public class DaoMaster extends AbstractDaoMaster {
public static final int SCHEMA_VERSION = 13; public static final int SCHEMA_VERSION = 8;
/** Creates underlying database table using DAOs. */ /** Creates underlying database table using DAOs. */
public static void createAllTables(Database db, boolean ifNotExists) { public static void createAllTables(Database db, boolean ifNotExists) {
ComboDao.createTable(db, ifNotExists);
FoodDao.createTable(db, ifNotExists); FoodDao.createTable(db, ifNotExists);
FoodModifierDao.createTable(db, ifNotExists); FoodModifierDao.createTable(db, ifNotExists);
FunctionDao.createTable(db, ifNotExists); FunctionDao.createTable(db, ifNotExists);
ModifierDao.createTable(db, ifNotExists); ModifierDao.createTable(db, ifNotExists);
PrinterDeviceBeanDao.createTable(db, ifNotExists); PrinterDeviceBeanDao.createTable(db, ifNotExists);
ComboItemDao.createTable(db, ifNotExists);
FoodComboDao.createTable(db, ifNotExists);
} }
/** Drops underlying database table using DAOs. */ /** Drops underlying database table using DAOs. */
public static void dropAllTables(Database db, boolean ifExists) { public static void dropAllTables(Database db, boolean ifExists) {
ComboDao.dropTable(db, ifExists);
FoodDao.dropTable(db, ifExists); FoodDao.dropTable(db, ifExists);
FoodModifierDao.dropTable(db, ifExists); FoodModifierDao.dropTable(db, ifExists);
FunctionDao.dropTable(db, ifExists); FunctionDao.dropTable(db, ifExists);
ModifierDao.dropTable(db, ifExists); ModifierDao.dropTable(db, ifExists);
PrinterDeviceBeanDao.dropTable(db, ifExists); PrinterDeviceBeanDao.dropTable(db, ifExists);
ComboItemDao.dropTable(db, ifExists);
FoodComboDao.dropTable(db, ifExists);
} }
/** /**
...@@ -55,12 +57,13 @@ public class DaoMaster extends AbstractDaoMaster { ...@@ -55,12 +57,13 @@ public class DaoMaster extends AbstractDaoMaster {
public DaoMaster(Database db) { public DaoMaster(Database db) {
super(db, SCHEMA_VERSION); super(db, SCHEMA_VERSION);
registerDaoClass(ComboDao.class);
registerDaoClass(FoodDao.class); registerDaoClass(FoodDao.class);
registerDaoClass(FoodModifierDao.class); registerDaoClass(FoodModifierDao.class);
registerDaoClass(FunctionDao.class); registerDaoClass(FunctionDao.class);
registerDaoClass(ModifierDao.class); registerDaoClass(ModifierDao.class);
registerDaoClass(PrinterDeviceBeanDao.class); registerDaoClass(PrinterDeviceBeanDao.class);
registerDaoClass(ComboItemDao.class);
registerDaoClass(FoodComboDao.class);
} }
public DaoSession newSession() { public DaoSession newSession() {
......
...@@ -8,19 +8,21 @@ import org.greenrobot.greendao.database.Database; ...@@ -8,19 +8,21 @@ import org.greenrobot.greendao.database.Database;
import org.greenrobot.greendao.identityscope.IdentityScopeType; import org.greenrobot.greendao.identityscope.IdentityScopeType;
import org.greenrobot.greendao.internal.DaoConfig; import org.greenrobot.greendao.internal.DaoConfig;
import com.gingersoft.gsa.cloud.database.bean.Combo;
import com.gingersoft.gsa.cloud.database.bean.Food; import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.bean.FoodModifier; import com.gingersoft.gsa.cloud.database.bean.FoodModifier;
import com.gingersoft.gsa.cloud.database.bean.Function; import com.gingersoft.gsa.cloud.database.bean.Function;
import com.gingersoft.gsa.cloud.database.bean.Modifier; import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean; import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import com.gingersoft.gsa.cloud.database.bean.FoodCombo;
import com.gingersoft.gsa.cloud.database.greendao.ComboDao;
import com.gingersoft.gsa.cloud.database.greendao.FoodDao; import com.gingersoft.gsa.cloud.database.greendao.FoodDao;
import com.gingersoft.gsa.cloud.database.greendao.FoodModifierDao; import com.gingersoft.gsa.cloud.database.greendao.FoodModifierDao;
import com.gingersoft.gsa.cloud.database.greendao.FunctionDao; import com.gingersoft.gsa.cloud.database.greendao.FunctionDao;
import com.gingersoft.gsa.cloud.database.greendao.ModifierDao; import com.gingersoft.gsa.cloud.database.greendao.ModifierDao;
import com.gingersoft.gsa.cloud.database.greendao.PrinterDeviceBeanDao; import com.gingersoft.gsa.cloud.database.greendao.PrinterDeviceBeanDao;
import com.gingersoft.gsa.cloud.database.greendao.ComboItemDao;
import com.gingersoft.gsa.cloud.database.greendao.FoodComboDao;
// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. // THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
...@@ -31,27 +33,26 @@ import com.gingersoft.gsa.cloud.database.greendao.PrinterDeviceBeanDao; ...@@ -31,27 +33,26 @@ import com.gingersoft.gsa.cloud.database.greendao.PrinterDeviceBeanDao;
*/ */
public class DaoSession extends AbstractDaoSession { public class DaoSession extends AbstractDaoSession {
private final DaoConfig comboDaoConfig;
private final DaoConfig foodDaoConfig; private final DaoConfig foodDaoConfig;
private final DaoConfig foodModifierDaoConfig; private final DaoConfig foodModifierDaoConfig;
private final DaoConfig functionDaoConfig; private final DaoConfig functionDaoConfig;
private final DaoConfig modifierDaoConfig; private final DaoConfig modifierDaoConfig;
private final DaoConfig printerDeviceBeanDaoConfig; private final DaoConfig printerDeviceBeanDaoConfig;
private final DaoConfig comboItemDaoConfig;
private final DaoConfig foodComboDaoConfig;
private final ComboDao comboDao;
private final FoodDao foodDao; private final FoodDao foodDao;
private final FoodModifierDao foodModifierDao; private final FoodModifierDao foodModifierDao;
private final FunctionDao functionDao; private final FunctionDao functionDao;
private final ModifierDao modifierDao; private final ModifierDao modifierDao;
private final PrinterDeviceBeanDao printerDeviceBeanDao; private final PrinterDeviceBeanDao printerDeviceBeanDao;
private final ComboItemDao comboItemDao;
private final FoodComboDao foodComboDao;
public DaoSession(Database db, IdentityScopeType type, Map<Class<? extends AbstractDao<?, ?>>, DaoConfig> public DaoSession(Database db, IdentityScopeType type, Map<Class<? extends AbstractDao<?, ?>>, DaoConfig>
daoConfigMap) { daoConfigMap) {
super(db); super(db);
comboDaoConfig = daoConfigMap.get(ComboDao.class).clone();
comboDaoConfig.initIdentityScope(type);
foodDaoConfig = daoConfigMap.get(FoodDao.class).clone(); foodDaoConfig = daoConfigMap.get(FoodDao.class).clone();
foodDaoConfig.initIdentityScope(type); foodDaoConfig.initIdentityScope(type);
...@@ -67,32 +68,37 @@ public class DaoSession extends AbstractDaoSession { ...@@ -67,32 +68,37 @@ public class DaoSession extends AbstractDaoSession {
printerDeviceBeanDaoConfig = daoConfigMap.get(PrinterDeviceBeanDao.class).clone(); printerDeviceBeanDaoConfig = daoConfigMap.get(PrinterDeviceBeanDao.class).clone();
printerDeviceBeanDaoConfig.initIdentityScope(type); printerDeviceBeanDaoConfig.initIdentityScope(type);
comboDao = new ComboDao(comboDaoConfig, this); comboItemDaoConfig = daoConfigMap.get(ComboItemDao.class).clone();
comboItemDaoConfig.initIdentityScope(type);
foodComboDaoConfig = daoConfigMap.get(FoodComboDao.class).clone();
foodComboDaoConfig.initIdentityScope(type);
foodDao = new FoodDao(foodDaoConfig, this); foodDao = new FoodDao(foodDaoConfig, this);
foodModifierDao = new FoodModifierDao(foodModifierDaoConfig, this); foodModifierDao = new FoodModifierDao(foodModifierDaoConfig, this);
functionDao = new FunctionDao(functionDaoConfig, this); functionDao = new FunctionDao(functionDaoConfig, this);
modifierDao = new ModifierDao(modifierDaoConfig, this); modifierDao = new ModifierDao(modifierDaoConfig, this);
printerDeviceBeanDao = new PrinterDeviceBeanDao(printerDeviceBeanDaoConfig, this); printerDeviceBeanDao = new PrinterDeviceBeanDao(printerDeviceBeanDaoConfig, this);
comboItemDao = new ComboItemDao(comboItemDaoConfig, this);
foodComboDao = new FoodComboDao(foodComboDaoConfig, this);
registerDao(Combo.class, comboDao);
registerDao(Food.class, foodDao); registerDao(Food.class, foodDao);
registerDao(FoodModifier.class, foodModifierDao); registerDao(FoodModifier.class, foodModifierDao);
registerDao(Function.class, functionDao); registerDao(Function.class, functionDao);
registerDao(Modifier.class, modifierDao); registerDao(Modifier.class, modifierDao);
registerDao(PrinterDeviceBean.class, printerDeviceBeanDao); registerDao(PrinterDeviceBean.class, printerDeviceBeanDao);
registerDao(ComboItem.class, comboItemDao);
registerDao(FoodCombo.class, foodComboDao);
} }
public void clear() { public void clear() {
comboDaoConfig.clearIdentityScope();
foodDaoConfig.clearIdentityScope(); foodDaoConfig.clearIdentityScope();
foodModifierDaoConfig.clearIdentityScope(); foodModifierDaoConfig.clearIdentityScope();
functionDaoConfig.clearIdentityScope(); functionDaoConfig.clearIdentityScope();
modifierDaoConfig.clearIdentityScope(); modifierDaoConfig.clearIdentityScope();
printerDeviceBeanDaoConfig.clearIdentityScope(); printerDeviceBeanDaoConfig.clearIdentityScope();
} comboItemDaoConfig.clearIdentityScope();
foodComboDaoConfig.clearIdentityScope();
public ComboDao getComboDao() {
return comboDao;
} }
public FoodDao getFoodDao() { public FoodDao getFoodDao() {
...@@ -115,4 +121,12 @@ public class DaoSession extends AbstractDaoSession { ...@@ -115,4 +121,12 @@ public class DaoSession extends AbstractDaoSession {
return printerDeviceBeanDao; return printerDeviceBeanDao;
} }
public ComboItemDao getComboItemDao() {
return comboItemDao;
}
public FoodComboDao getFoodComboDao() {
return foodComboDao;
}
} }
...@@ -9,137 +9,119 @@ import org.greenrobot.greendao.internal.DaoConfig; ...@@ -9,137 +9,119 @@ import org.greenrobot.greendao.internal.DaoConfig;
import org.greenrobot.greendao.database.Database; import org.greenrobot.greendao.database.Database;
import org.greenrobot.greendao.database.DatabaseStatement; import org.greenrobot.greendao.database.DatabaseStatement;
import com.gingersoft.gsa.cloud.database.bean.Combo; import com.gingersoft.gsa.cloud.database.bean.FoodCombo;
// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. // THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
/** /**
* DAO for table "COMBO". * DAO for table "FOOD_COMBO".
*/ */
public class ComboDao extends AbstractDao<Combo, Long> { public class FoodComboDao extends AbstractDao<FoodCombo, Void> {
public static final String TABLENAME = "COMBO"; public static final String TABLENAME = "FOOD_COMBO";
/** /**
* Properties of entity Combo.<br/> * Properties of entity FoodCombo.<br/>
* Can be used for QueryBuilder and for referencing column names. * Can be used for QueryBuilder and for referencing column names.
*/ */
public static class Properties { public static class Properties {
public final static Property Dbid = new Property(0, Long.class, "dbid", true, "_id"); public final static Property Id = new Property(0, Long.class, "id", false, "_id");
public final static Property Id = new Property(1, Long.class, "id", false, "ID"); public final static Property Fid = new Property(1, Long.class, "fid", false, "FID");
public final static Property Fid = new Property(2, Long.class, "fid", false, "FID"); public final static Property ComId = new Property(2, int.class, "comId", false, "COM_ID");
public final static Property ComId = new Property(3, int.class, "comId", false, "COM_ID");
} }
private DaoSession daoSession;
public FoodComboDao(DaoConfig config) {
public ComboDao(DaoConfig config) {
super(config); super(config);
} }
public ComboDao(DaoConfig config, DaoSession daoSession) { public FoodComboDao(DaoConfig config, DaoSession daoSession) {
super(config, daoSession); super(config, daoSession);
this.daoSession = daoSession;
} }
/** Creates the underlying database table. */ /** Creates the underlying database table. */
public static void createTable(Database db, boolean ifNotExists) { public static void createTable(Database db, boolean ifNotExists) {
String constraint = ifNotExists? "IF NOT EXISTS ": ""; String constraint = ifNotExists? "IF NOT EXISTS ": "";
db.execSQL("CREATE TABLE " + constraint + "\"COMBO\" (" + // db.execSQL("CREATE TABLE " + constraint + "\"FOOD_COMBO\" (" + //
"\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: dbid "\"_id\" INTEGER," + // 0: id
"\"ID\" INTEGER NOT NULL ," + // 1: id "\"FID\" INTEGER," + // 1: fid
"\"FID\" INTEGER," + // 2: fid "\"COM_ID\" INTEGER NOT NULL );"); // 2: comId
"\"COM_ID\" INTEGER NOT NULL );"); // 3: comId
} }
/** Drops the underlying database table. */ /** Drops the underlying database table. */
public static void dropTable(Database db, boolean ifExists) { public static void dropTable(Database db, boolean ifExists) {
String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"COMBO\""; String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"FOOD_COMBO\"";
db.execSQL(sql); db.execSQL(sql);
} }
@Override @Override
protected final void bindValues(DatabaseStatement stmt, Combo entity) { protected final void bindValues(DatabaseStatement stmt, FoodCombo entity) {
stmt.clearBindings(); stmt.clearBindings();
Long dbid = entity.getDbid(); Long id = entity.getId();
if (dbid != null) { if (id != null) {
stmt.bindLong(1, dbid); stmt.bindLong(1, id);
} }
stmt.bindLong(2, entity.getId());
Long fid = entity.getFid(); Long fid = entity.getFid();
if (fid != null) { if (fid != null) {
stmt.bindLong(3, fid); stmt.bindLong(2, fid);
} }
stmt.bindLong(4, entity.getComId()); stmt.bindLong(3, entity.getComId());
} }
@Override @Override
protected final void bindValues(SQLiteStatement stmt, Combo entity) { protected final void bindValues(SQLiteStatement stmt, FoodCombo entity) {
stmt.clearBindings(); stmt.clearBindings();
Long dbid = entity.getDbid(); Long id = entity.getId();
if (dbid != null) { if (id != null) {
stmt.bindLong(1, dbid); stmt.bindLong(1, id);
} }
stmt.bindLong(2, entity.getId());
Long fid = entity.getFid(); Long fid = entity.getFid();
if (fid != null) { if (fid != null) {
stmt.bindLong(3, fid); stmt.bindLong(2, fid);
}
stmt.bindLong(4, entity.getComId());
} }
stmt.bindLong(3, entity.getComId());
@Override
protected final void attachEntity(Combo entity) {
super.attachEntity(entity);
entity.__setDaoSession(daoSession);
} }
@Override @Override
public Long readKey(Cursor cursor, int offset) { public Void readKey(Cursor cursor, int offset) {
return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); return null;
} }
@Override @Override
public Combo readEntity(Cursor cursor, int offset) { public FoodCombo readEntity(Cursor cursor, int offset) {
Combo entity = new Combo( // FoodCombo entity = new FoodCombo( //
cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // dbid cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id
cursor.getLong(offset + 1), // id cursor.isNull(offset + 1) ? null : cursor.getLong(offset + 1), // fid
cursor.isNull(offset + 2) ? null : cursor.getLong(offset + 2), // fid cursor.getInt(offset + 2) // comId
cursor.getInt(offset + 3) // comId
); );
return entity; return entity;
} }
@Override @Override
public void readEntity(Cursor cursor, Combo entity, int offset) { public void readEntity(Cursor cursor, FoodCombo entity, int offset) {
entity.setDbid(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0));
entity.setId(cursor.getLong(offset + 1)); entity.setFid(cursor.isNull(offset + 1) ? null : cursor.getLong(offset + 1));
entity.setFid(cursor.isNull(offset + 2) ? null : cursor.getLong(offset + 2)); entity.setComId(cursor.getInt(offset + 2));
entity.setComId(cursor.getInt(offset + 3));
} }
@Override @Override
protected final Long updateKeyAfterInsert(Combo entity, long rowId) { protected final Void updateKeyAfterInsert(FoodCombo entity, long rowId) {
entity.setDbid(rowId); // Unsupported or missing PK type
return rowId; return null;
} }
@Override @Override
public Long getKey(Combo entity) { public Void getKey(FoodCombo entity) {
if(entity != null) {
return entity.getDbid();
} else {
return null; return null;
} }
}
@Override @Override
public boolean hasKey(Combo entity) { public boolean hasKey(FoodCombo entity) {
return entity.getDbid() != null; // TODO
return false;
} }
@Override @Override
......
package com.gingersoft.gsa.cloud.database.utils;
import android.content.Context;
import android.util.Log;
import com.gingersoft.gsa.cloud.database.DaoManager;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import com.gingersoft.gsa.cloud.database.greendao.ComboItemDao;
import com.gingersoft.gsa.cloud.database.greendao.FoodDao;
import org.greenrobot.greendao.query.QueryBuilder;
import java.util.ArrayList;
import java.util.List;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-01-02
* 修订历史:2020-01-02
* 描述:
*/
public class ComboItemDaoUtils {
private static final String TAG = ComboItemDaoUtils.class.getSimpleName();
private DaoManager mManager;
private Context mContext;
public ComboItemDaoUtils(Context context) {
mManager = DaoManager.getInstance();
mManager.init(context);
this.mContext = context;
}
/**
* 清除緩存
*/
public void detachAll(){
ComboItemDao comboItemDao = DaoManager.getInstance().getDaoSession().getComboItemDao();
comboItemDao.detachAll();
}
/**
* 完成Food记录的插入,如果表未创建,先创建Food表
*
* @param comboItem
* @return
*/
public boolean insertCombo(ComboItem comboItem) {
boolean flag = false;
flag = mManager.getDaoSession().getComboItemDao().insert(comboItem) == -1 ? false : true;
Log.i(TAG, "insert ComboItem :" + flag + "-->" + comboItem.toString());
return flag;
}
/**
* 插入多条数据,在子线程操作
*
* @param foodList
* @return
*/
public boolean insertMultCombo(final List<ComboItem> foodList) {
boolean flag = false;
try {
mManager.getDaoSession().runInTx(new Runnable() {
@Override
public void run() {
for (ComboItem Food : foodList) {
mManager.getDaoSession().insertOrReplace(Food);
}
}
});
flag = true;
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
/**
* 修改一条数据
*
* @param ComboItem
* @return
*/
public boolean updateCombo(ComboItem ComboItem) {
boolean flag = false;
try {
mManager.getDaoSession().update(ComboItem);
flag = true;
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
/**
* 删除单条记录
*
* @param food
* @return
*/
public boolean deleteCombo(ComboItem food) {
boolean flag = false;
try {
//按照id删除
mManager.getDaoSession().delete(food);
flag = true;
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
/**
* 删除所有记录
*
* @return
*/
public boolean deleteAll() {
boolean flag = false;
try {
//按照id删除
mManager.getDaoSession().deleteAll(ComboItem.class);
flag = true;
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
/**
* 查询所有记录
*
* @return
*/
public List<ComboItem> queryAllCombo() {
return mManager.getDaoSession().loadAll(ComboItem.class);
}
/**
* 根据主键id查询记录
*
* @param key
* @return
*/
public ComboItem queryComboById(long key) {
return mManager.getDaoSession().load(ComboItem.class, key);
}
/**
* 使用native sql进行查询操作
*/
public List<ComboItem> queryComboByNativeSql(String sql, String[] conditions) {
return mManager.getDaoSession().queryRaw(ComboItem.class, sql, conditions);
}
/**
* 使用queryBuilder进行查询食品
*
* @return
*/
public List<ComboItem> queryComboFoodsByQueryBuilder(long fid) {
// ComboItem comboItem = queryComboByQueryBuilder(fid);
// List<ComboItem> foodCombos = null;
// if (comboItem != null) {
// foodCombos = queryCombosByComIdQueryBuilder(comboItem.getComId());
// }
List<ComboItem> list = new ArrayList<>();
// FoodDaoUtils foodDao = new FoodDaoUtils(mContext);
// if (foodCombos != null) {
// for (int i = 0; i < foodCombos.size(); i++) {
// Food food = foodDao.queryFoodByFidQueryBuilder(foodCombos.get(i).getFid());
// if (food != null) {
// list.add(comboItem.addFoodInfo(food, foodCombos.get(i)));
// }
// }
// }
return list;
}
public List<ComboItem> queryCombosFoodsByQueryBuilder(long fid) {
QueryBuilder<ComboItem> queryBuilder = mManager.getDaoSession().queryBuilder(ComboItem.class);
// queryBuilder.where(queryBuilder.join()).orderAsc(FoodDao.Properties.SeqNo).list();
// List<ComboItem> ComboItem = queryCombosByQueryBuilder(fid);
// List<ComboItem> foodCombos = null;
// if (ComboItem != null && ComboItem.size() != 0) {
// foodCombos = queryCombosByComIdQueryBuilder(ComboItem.get(0).getComId());
// }
List<ComboItem> list = new ArrayList<>();
// FoodDaoUtils foodDao = new FoodDaoUtils(mContext);
// if (foodCombos != null) {
// for (int i = 0; i < foodCombos.size(); i++) {
// Food food = foodDao.queryFoodByFidQueryBuilder(foodCombos.get(i).getFid());
// if(food != null) {
// list.add(ComboItem.addFoodInfo(food, foodCombos.get(i)));
// }
// }
// }
return list;
}
/**
* 使用queryBuilder进行查询食品
*
* @return
*/
public ComboItem queryComboByQueryBuilder(long fid) {
QueryBuilder<ComboItem> queryBuilder = mManager.getDaoSession().queryBuilder(ComboItem.class);
return queryBuilder.where(ComboItemDao.Properties.Fid.eq(fid)).build().unique();
}
/**
* 使用queryBuilder进行查询食品
*
* @return
*/
public List<ComboItem> queryCombosByQueryBuilder(long fid) {
QueryBuilder<ComboItem> queryBuilder = mManager.getDaoSession().queryBuilder(ComboItem.class);
return queryBuilder.where(ComboItemDao.Properties.Fid.eq(fid)).build().list();
}
/**
* 使用queryBuilder进行查询食品
*
* @return
*/
public List<ComboItem> queryCombosByComIdQueryBuilder(int comId) {
QueryBuilder<ComboItem> queryBuilder = mManager.getDaoSession().queryBuilder(ComboItem.class);
return queryBuilder.where(ComboItemDao.Properties.ComId.eq(comId)).list();
}
}
...@@ -4,10 +4,9 @@ import android.content.Context; ...@@ -4,10 +4,9 @@ import android.content.Context;
import android.util.Log; import android.util.Log;
import com.gingersoft.gsa.cloud.database.DaoManager; import com.gingersoft.gsa.cloud.database.DaoManager;
import com.gingersoft.gsa.cloud.database.bean.Combo; import com.gingersoft.gsa.cloud.database.bean.FoodCombo;
import com.gingersoft.gsa.cloud.database.bean.Food; import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.greendao.ComboDao; import com.gingersoft.gsa.cloud.database.greendao.FoodComboDao;
import com.gingersoft.gsa.cloud.database.greendao.FoodDao;
import org.greenrobot.greendao.query.QueryBuilder; import org.greenrobot.greendao.query.QueryBuilder;
...@@ -21,28 +20,37 @@ import java.util.List; ...@@ -21,28 +20,37 @@ import java.util.List;
* 修订历史:2020-01-02 * 修订历史:2020-01-02
* 描述: * 描述:
*/ */
public class ComboDaoUtils { public class FoodComboDaoUtils {
private static final String TAG = ComboDaoUtils.class.getSimpleName(); private static final String TAG = FoodComboDaoUtils.class.getSimpleName();
private DaoManager mManager; private DaoManager mManager;
private Context mContext; private Context mContext;
public ComboDaoUtils(Context context) { public FoodComboDaoUtils(Context context) {
mManager = DaoManager.getInstance(); mManager = DaoManager.getInstance();
mManager.init(context); mManager.init(context);
this.mContext = context; this.mContext = context;
} }
/** /**
* 清除緩存
*/
public void detachAll(){
FoodComboDao FoodComboDao = DaoManager.getInstance().getDaoSession().getFoodComboDao();
FoodComboDao.detachAll();
}
/**
* 完成Food记录的插入,如果表未创建,先创建Food表 * 完成Food记录的插入,如果表未创建,先创建Food表
* *
* @param combo * @param foodCombo
* @return * @return
*/ */
public boolean insertCombo(Combo combo) { public boolean insertCombo(FoodCombo foodCombo) {
boolean flag = false; boolean flag = false;
flag = mManager.getDaoSession().getComboDao().insert(combo) == -1 ? false : true; flag = mManager.getDaoSession().getFoodComboDao().insert(foodCombo) == -1 ? false : true;
Log.i(TAG, "insert Combo :" + flag + "-->" + combo.toString()); Log.i(TAG, "insert FoodCombo :" + flag + "-->" + foodCombo.toString());
return flag; return flag;
} }
...@@ -52,13 +60,13 @@ public class ComboDaoUtils { ...@@ -52,13 +60,13 @@ public class ComboDaoUtils {
* @param foodList * @param foodList
* @return * @return
*/ */
public boolean insertMultCombo(final List<Combo> foodList) { public boolean insertMultCombo(final List<FoodCombo> foodList) {
boolean flag = false; boolean flag = false;
try { try {
mManager.getDaoSession().runInTx(new Runnable() { mManager.getDaoSession().runInTx(new Runnable() {
@Override @Override
public void run() { public void run() {
for (Combo Food : foodList) { for (FoodCombo Food : foodList) {
mManager.getDaoSession().insertOrReplace(Food); mManager.getDaoSession().insertOrReplace(Food);
} }
} }
...@@ -73,13 +81,13 @@ public class ComboDaoUtils { ...@@ -73,13 +81,13 @@ public class ComboDaoUtils {
/** /**
* 修改一条数据 * 修改一条数据
* *
* @param combo * @param foodCombo
* @return * @return
*/ */
public boolean updateCombo(Combo combo) { public boolean updateCombo(FoodCombo foodCombo) {
boolean flag = false; boolean flag = false;
try { try {
mManager.getDaoSession().update(combo); mManager.getDaoSession().update(foodCombo);
flag = true; flag = true;
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
...@@ -93,7 +101,7 @@ public class ComboDaoUtils { ...@@ -93,7 +101,7 @@ public class ComboDaoUtils {
* @param food * @param food
* @return * @return
*/ */
public boolean deleteCombo(Combo food) { public boolean deleteCombo(FoodCombo food) {
boolean flag = false; boolean flag = false;
try { try {
//按照id删除 //按照id删除
...@@ -114,7 +122,7 @@ public class ComboDaoUtils { ...@@ -114,7 +122,7 @@ public class ComboDaoUtils {
boolean flag = false; boolean flag = false;
try { try {
//按照id删除 //按照id删除
mManager.getDaoSession().deleteAll(Combo.class); mManager.getDaoSession().deleteAll(FoodCombo.class);
flag = true; flag = true;
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
...@@ -127,8 +135,8 @@ public class ComboDaoUtils { ...@@ -127,8 +135,8 @@ public class ComboDaoUtils {
* *
* @return * @return
*/ */
public List<Combo> queryAllCombo() { public List<FoodCombo> queryAllCombo() {
return mManager.getDaoSession().loadAll(Combo.class); return mManager.getDaoSession().loadAll(FoodCombo.class);
} }
/** /**
...@@ -137,15 +145,15 @@ public class ComboDaoUtils { ...@@ -137,15 +145,15 @@ public class ComboDaoUtils {
* @param key * @param key
* @return * @return
*/ */
public Combo queryComboById(long key) { public FoodCombo queryComboById(long key) {
return mManager.getDaoSession().load(Combo.class, key); return mManager.getDaoSession().load(FoodCombo.class, key);
} }
/** /**
* 使用native sql进行查询操作 * 使用native sql进行查询操作
*/ */
public List<Combo> queryComboByNativeSql(String sql, String[] conditions) { public List<FoodCombo> queryComboByNativeSql(String sql, String[] conditions) {
return mManager.getDaoSession().queryRaw(Combo.class, sql, conditions); return mManager.getDaoSession().queryRaw(FoodCombo.class, sql, conditions);
} }
/** /**
...@@ -153,38 +161,38 @@ public class ComboDaoUtils { ...@@ -153,38 +161,38 @@ public class ComboDaoUtils {
* *
* @return * @return
*/ */
public List<Combo> queryComboFoodsByQueryBuilder(long fid) { public List<FoodCombo> queryComboFoodsByQueryBuilder(long fid) {
Combo combo = queryComboByQueryBuilder(fid); FoodCombo foodCombo = queryComboByQueryBuilder(fid);
List<Combo> combos = null; List<FoodCombo> foodCombos = null;
if (combo != null) { if (foodCombo != null) {
combos = queryCombosByComIdQueryBuilder(combo.getComId()); foodCombos = queryCombosByComIdQueryBuilder(foodCombo.getComId());
} }
List<Combo> list = new ArrayList<>(); List<FoodCombo> list = new ArrayList<>();
FoodDaoUtils foodDao = new FoodDaoUtils(mContext); FoodDaoUtils foodDao = new FoodDaoUtils(mContext);
if (combos != null) { if (foodCombos != null) {
for (int i = 0; i < combos.size(); i++) { for (int i = 0; i < foodCombos.size(); i++) {
Food food = foodDao.queryFoodByFidQueryBuilder(combos.get(i).getFid()); Food food = foodDao.queryFoodByFidQueryBuilder(foodCombos.get(i).getFid());
if (food != null) { if (food != null) {
list.add(Combo.addFoodInfo(food, combos.get(i))); list.add(FoodCombo.addFoodInfo(food, foodCombos.get(i)));
} }
} }
} }
return list; return list;
} }
public List<Combo> queryCombosFoodsByQueryBuilder(long fid) { public List<FoodCombo> queryCombosFoodsByQueryBuilder(long fid) {
List<Combo> combo = queryCombosByQueryBuilder(fid); List<FoodCombo> foodCombo = queryCombosByQueryBuilder(fid);
List<Combo> combos = null; List<FoodCombo> foodCombos = null;
if (combo != null && combo.size() != 0) { if (foodCombo != null && foodCombo.size() != 0) {
combos = queryCombosByComIdQueryBuilder(combo.get(0).getComId()); foodCombos = queryCombosByComIdQueryBuilder(foodCombo.get(0).getComId());
} }
List<Combo> list = new ArrayList<>(); List<FoodCombo> list = new ArrayList<>();
FoodDaoUtils foodDao = new FoodDaoUtils(mContext); FoodDaoUtils foodDao = new FoodDaoUtils(mContext);
if (combos != null) { if (foodCombos != null) {
for (int i = 0; i < combos.size(); i++) { for (int i = 0; i < foodCombos.size(); i++) {
Food food = foodDao.queryFoodByFidQueryBuilder(combos.get(i).getFid()); Food food = foodDao.queryFoodByFidQueryBuilder(foodCombos.get(i).getFid());
if(food != null) { if(food != null) {
list.add(Combo.addFoodInfo(food, combos.get(i))); list.add(FoodCombo.addFoodInfo(food, foodCombos.get(i)));
} }
} }
} }
...@@ -196,9 +204,9 @@ public class ComboDaoUtils { ...@@ -196,9 +204,9 @@ public class ComboDaoUtils {
* *
* @return * @return
*/ */
public Combo queryComboByQueryBuilder(long fid) { public FoodCombo queryComboByQueryBuilder(long fid) {
QueryBuilder<Combo> queryBuilder = mManager.getDaoSession().queryBuilder(Combo.class); QueryBuilder<FoodCombo> queryBuilder = mManager.getDaoSession().queryBuilder(FoodCombo.class);
return queryBuilder.where(ComboDao.Properties.Fid.eq(fid)).build().unique(); return queryBuilder.where(FoodComboDao.Properties.Fid.eq(fid)).build().unique();
} }
/** /**
...@@ -206,9 +214,9 @@ public class ComboDaoUtils { ...@@ -206,9 +214,9 @@ public class ComboDaoUtils {
* *
* @return * @return
*/ */
public List<Combo> queryCombosByQueryBuilder(long fid) { public List<FoodCombo> queryCombosByQueryBuilder(long fid) {
QueryBuilder<Combo> queryBuilder = mManager.getDaoSession().queryBuilder(Combo.class); QueryBuilder<FoodCombo> queryBuilder = mManager.getDaoSession().queryBuilder(FoodCombo.class);
return queryBuilder.where(ComboDao.Properties.Fid.eq(fid)).build().list(); return queryBuilder.where(FoodComboDao.Properties.Fid.eq(fid)).build().list();
} }
/** /**
...@@ -216,8 +224,8 @@ public class ComboDaoUtils { ...@@ -216,8 +224,8 @@ public class ComboDaoUtils {
* *
* @return * @return
*/ */
public List<Combo> queryCombosByComIdQueryBuilder(int comId) { public List<FoodCombo> queryCombosByComIdQueryBuilder(int comId) {
QueryBuilder<Combo> queryBuilder = mManager.getDaoSession().queryBuilder(Combo.class); QueryBuilder<FoodCombo> queryBuilder = mManager.getDaoSession().queryBuilder(FoodCombo.class);
return queryBuilder.where(ComboDao.Properties.ComId.eq(comId)).list(); return queryBuilder.where(FoodComboDao.Properties.ComId.eq(comId)).list();
} }
} }
...@@ -5,10 +5,13 @@ import android.util.Log; ...@@ -5,10 +5,13 @@ import android.util.Log;
import com.gingersoft.gsa.cloud.database.DaoManager; import com.gingersoft.gsa.cloud.database.DaoManager;
import com.gingersoft.gsa.cloud.database.bean.Food; import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.bean.FoodCombo;
import com.gingersoft.gsa.cloud.database.greendao.FoodComboDao;
import com.gingersoft.gsa.cloud.database.greendao.FoodDao; import com.gingersoft.gsa.cloud.database.greendao.FoodDao;
import org.greenrobot.greendao.query.QueryBuilder; import org.greenrobot.greendao.query.QueryBuilder;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
...@@ -23,17 +26,27 @@ public class FoodDaoUtils { ...@@ -23,17 +26,27 @@ public class FoodDaoUtils {
private static final String TAG = FoodDaoUtils.class.getSimpleName(); private static final String TAG = FoodDaoUtils.class.getSimpleName();
private DaoManager mManager; private DaoManager mManager;
public FoodDaoUtils(Context context){ public FoodDaoUtils(Context context) {
mManager = DaoManager.getInstance(); mManager = DaoManager.getInstance();
mManager.init(context); mManager.init(context);
} }
/**
* 清除緩存
*/
public void detachAll() {
FoodDao foodDao = DaoManager.getInstance().getDaoSession().getFoodDao();
foodDao.detachAll();
}
/** /**
* 完成Food记录的插入,如果表未创建,先创建Food表 * 完成Food记录的插入,如果表未创建,先创建Food表
*
* @param Food * @param Food
* @return * @return
*/ */
public boolean insertFood(Food Food){ public boolean insertFood(Food Food) {
boolean flag = false; boolean flag = false;
flag = mManager.getDaoSession().getFoodDao().insert(Food) == -1 ? false : true; flag = mManager.getDaoSession().getFoodDao().insert(Food) == -1 ? false : true;
Log.i(TAG, "insert Food :" + flag + "-->" + Food.toString()); Log.i(TAG, "insert Food :" + flag + "-->" + Food.toString());
...@@ -42,6 +55,7 @@ public class FoodDaoUtils { ...@@ -42,6 +55,7 @@ public class FoodDaoUtils {
/** /**
* 插入多条数据,在子线程操作 * 插入多条数据,在子线程操作
*
* @param foodList * @param foodList
* @return * @return
*/ */
...@@ -65,15 +79,16 @@ public class FoodDaoUtils { ...@@ -65,15 +79,16 @@ public class FoodDaoUtils {
/** /**
* 修改一条数据 * 修改一条数据
*
* @param food * @param food
* @return * @return
*/ */
public boolean updateFood(Food food){ public boolean updateFood(Food food) {
boolean flag = false; boolean flag = false;
try { try {
mManager.getDaoSession().update(food); mManager.getDaoSession().update(food);
flag = true; flag = true;
}catch (Exception e){ } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
return flag; return flag;
...@@ -81,16 +96,17 @@ public class FoodDaoUtils { ...@@ -81,16 +96,17 @@ public class FoodDaoUtils {
/** /**
* 删除单条记录 * 删除单条记录
*
* @param food * @param food
* @return * @return
*/ */
public boolean deleteFood(Food food){ public boolean deleteFood(Food food) {
boolean flag = false; boolean flag = false;
try { try {
//按照id删除 //按照id删除
mManager.getDaoSession().delete(food); mManager.getDaoSession().delete(food);
flag = true; flag = true;
}catch (Exception e){ } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
return flag; return flag;
...@@ -98,15 +114,16 @@ public class FoodDaoUtils { ...@@ -98,15 +114,16 @@ public class FoodDaoUtils {
/** /**
* 删除所有记录 * 删除所有记录
*
* @return * @return
*/ */
public boolean deleteAll(){ public boolean deleteAll() {
boolean flag = false; boolean flag = false;
try { try {
//按照id删除 //按照id删除
mManager.getDaoSession().deleteAll(Food.class); mManager.getDaoSession().deleteAll(Food.class);
flag = true; flag = true;
}catch (Exception e){ } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
return flag; return flag;
...@@ -114,18 +131,20 @@ public class FoodDaoUtils { ...@@ -114,18 +131,20 @@ public class FoodDaoUtils {
/** /**
* 查询所有记录 * 查询所有记录
*
* @return * @return
*/ */
public List<Food> queryAllFood(){ public List<Food> queryAllFood() {
return mManager.getDaoSession().loadAll(Food.class); return mManager.getDaoSession().loadAll(Food.class);
} }
/** /**
* 根据主键id查询记录 * 根据主键id查询记录
*
* @param key * @param key
* @return * @return
*/ */
public Food queryFoodById(long key){ public Food queryFoodById(long key) {
return mManager.getDaoSession().load(Food.class, key); return mManager.getDaoSession().load(Food.class, key);
} }
...@@ -133,44 +152,72 @@ public class FoodDaoUtils { ...@@ -133,44 +152,72 @@ public class FoodDaoUtils {
/** /**
* 使用native sql进行查询操作 * 使用native sql进行查询操作
*/ */
public List<Food> queryFoodByNativeSql(String sql, String[] conditions){ public List<Food> queryFoodByNativeSql(String sql, String[] conditions) {
return mManager.getDaoSession().queryRaw(Food.class, sql, conditions); return mManager.getDaoSession().queryRaw(Food.class, sql, conditions);
} }
/** /**
* 使用queryBuilder进行查询食品組 * 使用queryBuilder进行查询食品組
*
* @return * @return
*/ */
public List<Food> queryFoodGroupByQueryBuilder(){ public List<Food> queryFoodGroupByQueryBuilder() {
QueryBuilder<Food> queryBuilder = mManager.getDaoSession().queryBuilder(Food.class); QueryBuilder<Food> queryBuilder = mManager.getDaoSession().queryBuilder(Food.class);
return queryBuilder.where(FoodDao.Properties.ParentId.le(0)).list(); long currentTime = System.currentTimeMillis();
return queryBuilder.where(queryBuilder.and(
FoodDao.Properties.ParentId.eq(0),
FoodDao.Properties.StartDate.le(currentTime),
FoodDao.Properties.EndDate.ge(currentTime))).orderAsc(FoodDao.Properties.SeqNo).list();
} }
/** /**
* 使用queryBuilder进行查询食品 * 使用queryBuilder进行查询食品
*
* @return * @return
*/ */
public List<Food> queryFoodByQueryBuilder(long parentId){ public List<Food> queryFoodByQueryBuilder(long parentId) {
QueryBuilder<Food> queryBuilder = mManager.getDaoSession().queryBuilder(Food.class); QueryBuilder<Food> queryBuilder = mManager.getDaoSession().queryBuilder(Food.class);
return queryBuilder.where(FoodDao.Properties.ParentId.eq(parentId)).list(); long currentTime = System.currentTimeMillis();
return queryBuilder.where(queryBuilder.and(
FoodDao.Properties.ParentId.eq(parentId),
FoodDao.Properties.Invisible.notEq(1),
FoodDao.Properties.StartDate.le(currentTime),
FoodDao.Properties.EndDate.ge(currentTime))).orderAsc(FoodDao.Properties.SeqNo).list();
} }
/** /**
* 使用queryBuilder进行查询食品 * 使用queryBuilder进行查询食品
*
* @return * @return
*/ */
public Food queryFoodByFidQueryBuilder(long fid){ public Food queryFoodByFidQueryBuilder(long fid) {
QueryBuilder<Food> queryBuilder = mManager.getDaoSession().queryBuilder(Food.class); QueryBuilder<Food> queryBuilder = mManager.getDaoSession().queryBuilder(Food.class);
return queryBuilder.where(FoodDao.Properties.Id.eq(fid)).build().unique(); return queryBuilder.where(FoodDao.Properties.Id.eq(fid)).build().unique();
} }
/** /**
* 使用queryBuilder进行查询食品 * 使用queryBuilder进行查询食品
*
* @return * @return
*/ */
public Food queryFoodByQueryBuilder(String plu){ public Food queryFoodByQueryBuilder(String plu) {
QueryBuilder<Food> queryBuilder = mManager.getDaoSession().queryBuilder(Food.class); QueryBuilder<Food> queryBuilder = mManager.getDaoSession().queryBuilder(Food.class);
return queryBuilder.where(FoodDao.Properties.Plu.eq(plu)).build().unique(); return queryBuilder.where(FoodDao.Properties.Plu.eq(plu)).build().unique();
} }
public Food queryFoodByFidQueryBuilder2(long fid) {
QueryBuilder<Food> queryBuilder = mManager.getDaoSession().queryBuilder(Food.class);
queryBuilder.join(FoodCombo.class, FoodComboDao.Properties.ComId).where(FoodComboDao.Properties.Fid.eq(fid));
String sql;
sql = "SELECT c.*,f.FOOD_NAME,f.FOOD_NAME1,f.FOOD_NAME2 FROM COMBO_ITEM c join FOOD f on c.FID=f._id join FOOD_COMBO r on r.COMID=c.COMID ";
if (fid > 0) {
sql = sql + " where r.FID='" + fid + "'";
}
List<Food> foodList = queryFoodByNativeSql(sql, null);
return queryBuilder.where(FoodDao.Properties.Id.eq(fid)).build().unique();
}
} }
...@@ -4,13 +4,9 @@ import android.content.Context; ...@@ -4,13 +4,9 @@ import android.content.Context;
import android.util.Log; import android.util.Log;
import com.gingersoft.gsa.cloud.database.DaoManager; import com.gingersoft.gsa.cloud.database.DaoManager;
import com.gingersoft.gsa.cloud.database.bean.Combo;
import com.gingersoft.gsa.cloud.database.bean.FoodModifier; import com.gingersoft.gsa.cloud.database.bean.FoodModifier;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.bean.Modifier; import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.database.greendao.ComboDao;
import com.gingersoft.gsa.cloud.database.greendao.FoodModifierDao; import com.gingersoft.gsa.cloud.database.greendao.FoodModifierDao;
import com.gingersoft.gsa.cloud.database.greendao.ModifierDao;
import org.greenrobot.greendao.query.QueryBuilder; import org.greenrobot.greendao.query.QueryBuilder;
......
...@@ -4,16 +4,11 @@ import android.content.Context; ...@@ -4,16 +4,11 @@ import android.content.Context;
import android.util.Log; import android.util.Log;
import com.gingersoft.gsa.cloud.database.DaoManager; import com.gingersoft.gsa.cloud.database.DaoManager;
import com.gingersoft.gsa.cloud.database.bean.Combo;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.bean.Modifier; import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.database.greendao.ComboDao;
import com.gingersoft.gsa.cloud.database.greendao.FoodModifierDao;
import com.gingersoft.gsa.cloud.database.greendao.ModifierDao; import com.gingersoft.gsa.cloud.database.greendao.ModifierDao;
import org.greenrobot.greendao.query.QueryBuilder; import org.greenrobot.greendao.query.QueryBuilder;
import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
...@@ -36,6 +31,14 @@ public class ModifierDaoUtils { ...@@ -36,6 +31,14 @@ public class ModifierDaoUtils {
} }
/** /**
* 清除緩存
*/
public void detachAll(){
ModifierDao modifierDao = DaoManager.getInstance().getDaoSession().getModifierDao();
modifierDao.detachAll();
}
/**
* 完成Food记录的插入,如果表未创建,先创建Food表 * 完成Food记录的插入,如果表未创建,先创建Food表
* @param modifier * @param modifier
* @return * @return
......
package com.gingersoft.gsa.cloud.ui.recylcler.Indicator;
import android.util.Log;
/**
* 作用:Pager配置
* 作者:GcsSloop
* 摘要:主要用于Log的显示与关闭
*/
public class PagerConfig {
private static final String TAG = "PagerGrid";
private static boolean sShowLog = false;
private static int sFlingThreshold = 1000; // Fling 阀值,滚动速度超过该阀值才会触发滚动
private static float sMillisecondsPreInch = 60f; // 每一个英寸滚动需要的微秒数,数值越大,速度越慢
/**
* 判断是否输出日志
*
* @return true 输出,false 不输出
*/
public static boolean isShowLog() {
return sShowLog;
}
/**
* 设置是否输出日志
*
* @param showLog 是否输出
*/
public static void setShowLog(boolean showLog) {
sShowLog = showLog;
}
/**
* 获取当前滚动速度阀值
*
* @return 当前滚动速度阀值
*/
public static int getFlingThreshold() {
return sFlingThreshold;
}
/**
* 设置当前滚动速度阀值
*
* @param flingThreshold 滚动速度阀值
*/
public static void setFlingThreshold(int flingThreshold) {
sFlingThreshold = flingThreshold;
}
/**
* 获取滚动速度 英寸/微秒
*
* @return 英寸滚动速度
*/
public static float getMillisecondsPreInch() {
return sMillisecondsPreInch;
}
/**
* 设置像素滚动速度 英寸/微秒
*
* @param millisecondsPreInch 英寸滚动速度
*/
public static void setMillisecondsPreInch(float millisecondsPreInch) {
sMillisecondsPreInch = millisecondsPreInch;
}
//--- 日志 -------------------------------------------------------------------------------------
public static void Logi(String msg) {
if (!PagerConfig.isShowLog()) return;
Log.i(TAG, msg);
}
public static void Loge(String msg) {
if (!PagerConfig.isShowLog()) return;
Log.e(TAG, msg);
}
}
\ No newline at end of file
package com.gingersoft.gsa.cloud.ui.recylcler.Indicator;
import android.util.DisplayMetrics;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearSmoothScroller;
import androidx.recyclerview.widget.RecyclerView;
import static com.gingersoft.gsa.cloud.ui.recylcler.Indicator.PagerConfig.Logi;
/**
* 作用:用于处理平滑滚动
* 作者:GcsSloop
* 摘要:用于用户手指抬起后页面对齐或者 Fling 事件。
*/
public class PagerGridSmoothScroller extends LinearSmoothScroller {
private RecyclerView mRecyclerView;
public PagerGridSmoothScroller(@NonNull RecyclerView recyclerView) {
super(recyclerView.getContext());
mRecyclerView = recyclerView;
}
@Override
protected void onTargetFound(View targetView, RecyclerView.State state, Action action) {
RecyclerView.LayoutManager manager = mRecyclerView.getLayoutManager();
if (null == manager) return;
if (manager instanceof PagerGridLayoutManager) {
PagerGridLayoutManager layoutManager = (PagerGridLayoutManager) manager;
int pos = mRecyclerView.getChildAdapterPosition(targetView);
int[] snapDistances = layoutManager.getSnapOffset(pos);
final int dx = snapDistances[0];
final int dy = snapDistances[1];
Logi("dx = " + dx);
Logi("dy = " + dy);
final int time = calculateTimeForScrolling(Math.max(Math.abs(dx), Math.abs(dy)));
if (time > 0) {
action.update(dx, dy, time, mDecelerateInterpolator);
}
}
}
@Override
protected float calculateSpeedPerPixel(DisplayMetrics displayMetrics) {
return PagerConfig.getMillisecondsPreInch() / displayMetrics.densityDpi;
}
}
package com.gingersoft.gsa.cloud.ui.recylcler.Indicator;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.LinearSmoothScroller;
import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.SnapHelper;
import static com.gingersoft.gsa.cloud.ui.recylcler.Indicator.PagerConfig.Loge;
/**
* 作用:分页居中工具
* 作者:GcsSloop
* 摘要:每次只滚动一个页面
*/
public class PagerGridSnapHelper extends SnapHelper {
private RecyclerView mRecyclerView; // RecyclerView
/**
* 用于将滚动工具和 Recycler 绑定
*
* @param recyclerView RecyclerView
* @throws IllegalStateException 状态异常
*/
@Override
public void attachToRecyclerView(@Nullable RecyclerView recyclerView) throws
IllegalStateException {
super.attachToRecyclerView(recyclerView);
mRecyclerView = recyclerView;
}
/**
* 计算需要滚动的向量,用于页面自动回滚对齐
*
* @param layoutManager 布局管理器
* @param targetView 目标控件
* @return 需要滚动的距离
*/
@Nullable
@Override
public int[] calculateDistanceToFinalSnap(@NonNull RecyclerView.LayoutManager layoutManager,
@NonNull View targetView) {
int pos = layoutManager.getPosition(targetView);
Loge("findTargetSnapPosition, pos = " + pos);
int[] offset = new int[2];
if (layoutManager instanceof PagerGridLayoutManager) {
PagerGridLayoutManager manager = (PagerGridLayoutManager) layoutManager;
offset = manager.getSnapOffset(pos);
}
return offset;
}
/**
* 获得需要对齐的View,对于分页布局来说,就是页面第一个
*
* @param layoutManager 布局管理器
* @return 目标控件
*/
@Nullable
@Override
public View findSnapView(RecyclerView.LayoutManager layoutManager) {
if (layoutManager instanceof PagerGridLayoutManager) {
PagerGridLayoutManager manager = (PagerGridLayoutManager) layoutManager;
return manager.findSnapView();
}
return null;
}
/**
* 获取目标控件的位置下标
* (获取滚动后第一个View的下标)
*
* @param layoutManager 布局管理器
* @param velocityX X 轴滚动速率
* @param velocityY Y 轴滚动速率
* @return 目标控件的下标
*/
@Override
public int findTargetSnapPosition(RecyclerView.LayoutManager layoutManager,
int velocityX, int velocityY) {
int target = RecyclerView.NO_POSITION;
Loge("findTargetSnapPosition, velocityX = " + velocityX + ", velocityY" + velocityY);
if (null != layoutManager && layoutManager instanceof PagerGridLayoutManager) {
PagerGridLayoutManager manager = (PagerGridLayoutManager) layoutManager;
if (manager.canScrollHorizontally()) {
if (velocityX > PagerConfig.getFlingThreshold()) {
target = manager.findNextPageFirstPos();
} else if (velocityX < -PagerConfig.getFlingThreshold()) {
target = manager.findPrePageFirstPos();
}
} else if (manager.canScrollVertically()) {
if (velocityY > PagerConfig.getFlingThreshold()) {
target = manager.findNextPageFirstPos();
} else if (velocityY < -PagerConfig.getFlingThreshold()) {
target = manager.findPrePageFirstPos();
}
}
}
Loge("findTargetSnapPosition, target = " + target);
return target;
}
/**
* 一扔(快速滚动)
*
* @param velocityX X 轴滚动速率
* @param velocityY Y 轴滚动速率
* @return 是否消费该事件
*/
@Override
public boolean onFling(int velocityX, int velocityY) {
RecyclerView.LayoutManager layoutManager = mRecyclerView.getLayoutManager();
if (layoutManager == null) {
return false;
}
RecyclerView.Adapter adapter = mRecyclerView.getAdapter();
if (adapter == null) {
return false;
}
int minFlingVelocity = PagerConfig.getFlingThreshold();
Loge("minFlingVelocity = " + minFlingVelocity);
return (Math.abs(velocityY) > minFlingVelocity || Math.abs(velocityX) > minFlingVelocity)
&& snapFromFling(layoutManager, velocityX, velocityY);
}
/**
* 快速滚动的具体处理方案
*
* @param layoutManager 布局管理器
* @param velocityX X 轴滚动速率
* @param velocityY Y 轴滚动速率
* @return 是否消费该事件
*/
private boolean snapFromFling(@NonNull RecyclerView.LayoutManager layoutManager, int velocityX,
int velocityY) {
if (!(layoutManager instanceof RecyclerView.SmoothScroller.ScrollVectorProvider)) {
return false;
}
RecyclerView.SmoothScroller smoothScroller = createSnapScroller(layoutManager);
if (smoothScroller == null) {
return false;
}
int targetPosition = findTargetSnapPosition(layoutManager, velocityX, velocityY);
if (targetPosition == RecyclerView.NO_POSITION) {
return false;
}
smoothScroller.setTargetPosition(targetPosition);
layoutManager.startSmoothScroll(smoothScroller);
return true;
}
/**
* 通过自定义 LinearSmoothScroller 来控制速度
*
* @param layoutManager 布局故哪里去
* @return 自定义 LinearSmoothScroller
*/
protected LinearSmoothScroller createSnapScroller(RecyclerView.LayoutManager layoutManager) {
if (!(layoutManager instanceof RecyclerView.SmoothScroller.ScrollVectorProvider)) {
return null;
}
return new PagerGridSmoothScroller(mRecyclerView);
}
//--- 公开方法 ----------------------------------------------------------------------------------
/**
* 设置滚动阀值
* @param threshold 滚动阀值
*/
public void setFlingThreshold(int threshold) {
PagerConfig.setFlingThreshold(threshold);
}
}
...@@ -17,6 +17,10 @@ public interface GoldConstants { ...@@ -17,6 +17,10 @@ public interface GoldConstants {
// boolean isRefreshData = false; // boolean isRefreshData = false;
int DetailColCount = 4; int DetailColCount = 4;
int foodGriupColCount = 5;//食品組列數 int foodGriupColCount = 5;//食品組列數
int foodGriupRows = 2;//食品組行數
int foodGriupColumns = 5;//食品組列數
int foodGriupPageSize = 10;//食品組最大顯示數 int foodGriupPageSize = 10;//食品組最大顯示數
} }
package com.gingersoft.gsa.cloud.table.mvp.contract; package com.gingersoft.gsa.cloud.table.mvp.contract;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.jess.arms.base.DefaultAdapter; import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.mvp.IModel; import com.jess.arms.mvp.IModel;
import com.jess.arms.mvp.IView; import com.jess.arms.mvp.IView;
import io.reactivex.Observable;
import okhttp3.RequestBody;
/** /**
* ================================================ * ================================================
...@@ -31,5 +35,7 @@ public interface BaseOrderContract { ...@@ -31,5 +35,7 @@ public interface BaseOrderContract {
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存 //Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends IModel { interface Model extends IModel {
Observable<BaseResult> updateOrderStatus(RequestBody formBody);
} }
} }
...@@ -4,17 +4,12 @@ import android.app.Activity; ...@@ -4,17 +4,12 @@ import android.app.Activity;
import android.widget.BaseAdapter; import android.widget.BaseAdapter;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult; import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.database.bean.Combo; import com.gingersoft.gsa.cloud.database.bean.FoodCombo;
import com.gingersoft.gsa.cloud.database.bean.FoodModifier; import com.gingersoft.gsa.cloud.database.bean.FoodModifier;
import com.gingersoft.gsa.cloud.database.bean.Modifier; import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose; import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose;
import com.gingersoft.gsa.cloud.database.bean.Food; import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.OrderRequest;
import com.gingersoft.gsa.cloud.table.mvp.presenter.MealStandPresenter;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity;
import com.jess.arms.base.DefaultAdapter; import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.mvp.IModel;
import com.jess.arms.mvp.IView;
import java.util.List; import java.util.List;
...@@ -115,9 +110,9 @@ public interface MealStandContract { ...@@ -115,9 +110,9 @@ public interface MealStandContract {
List<Modifier> queryDB_ModifierList(long fid); List<Modifier> queryDB_ModifierList(long fid);
List<Combo> queryDB_ComboList(long fid); List<FoodCombo> queryDB_ComboList(long fid);
List<Combo> isComboFood(long fid); List<FoodCombo> isComboFood(long fid);
List<FoodModifier> queryDB_FoodModifierList(long fid); List<FoodModifier> queryDB_FoodModifierList(long fid);
} }
......
...@@ -53,10 +53,10 @@ public interface OrderPayContract { ...@@ -53,10 +53,10 @@ public interface OrderPayContract {
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存 //Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends BaseOrderContract.Model { interface Model extends BaseOrderContract.Model {
Observable<BaseResult> getPayMethods(); Observable<BaseResult> getPayMethods(int brandId,int restaurantId);
// Observable<Object> getN5SaleTxnId(String url); // Observable<Object> getN5SaleTxnId(String url);
// //
Observable<BaseResult> updateOrderStatus( RequestBody formBody); // Observable<BaseResult> updateOrderStatus( RequestBody formBody);
} }
} }
...@@ -4,22 +4,18 @@ import android.app.Application; ...@@ -4,22 +4,18 @@ import android.app.Application;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult; import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.database.bean.Combo; import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import com.gingersoft.gsa.cloud.database.bean.FoodCombo;
import com.gingersoft.gsa.cloud.database.bean.FoodModifier; import com.gingersoft.gsa.cloud.database.bean.FoodModifier;
import com.gingersoft.gsa.cloud.database.bean.Modifier; import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.database.greendao.ModifierDao; import com.gingersoft.gsa.cloud.database.utils.FoodComboDaoUtils;
import com.gingersoft.gsa.cloud.database.utils.ComboDaoUtils;
import com.gingersoft.gsa.cloud.database.utils.FoodModifierDaoUtils; import com.gingersoft.gsa.cloud.database.utils.FoodModifierDaoUtils;
import com.gingersoft.gsa.cloud.database.utils.ModifierDaoUtils;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose; import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose;
import com.gingersoft.gsa.cloud.database.bean.Food; import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.utils.FoodDaoUtils; import com.gingersoft.gsa.cloud.database.utils.FoodDaoUtils;
import com.gingersoft.gsa.cloud.table.mvp.contract.MealStandContract; import com.gingersoft.gsa.cloud.table.mvp.contract.MealStandContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.OrderRequest;
import com.gingersoft.gsa.cloud.table.mvp.model.service.MealService; import com.gingersoft.gsa.cloud.table.mvp.model.service.MealService;
import com.gingersoft.gsa.cloud.table.mvp.presenter.MealStandPresenter; import com.gingersoft.gsa.cloud.table.mvp.model.service.OrderPayService;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.jess.arms.di.scope.ActivityScope; import com.jess.arms.di.scope.ActivityScope;
import com.jess.arms.integration.IRepositoryManager; import com.jess.arms.integration.IRepositoryManager;
...@@ -30,11 +26,7 @@ import java.util.List; ...@@ -30,11 +26,7 @@ import java.util.List;
import javax.inject.Inject; import javax.inject.Inject;
import io.reactivex.Observable; import io.reactivex.Observable;
import io.reactivex.ObservableSource;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.functions.Action;
import io.reactivex.functions.Function; import io.reactivex.functions.Function;
import io.reactivex.schedulers.Schedulers;
import okhttp3.RequestBody; import okhttp3.RequestBody;
...@@ -111,13 +103,15 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model ...@@ -111,13 +103,15 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model
@Override @Override
public List<Food> queryDB_FoodGroupList() { public List<Food> queryDB_FoodGroupList() {
FoodDaoUtils foodDaoUtils = new FoodDaoUtils(mApplication); FoodDaoUtils foodDaoUtils = new FoodDaoUtils(mApplication);
return foodDaoUtils.queryFoodGroupByQueryBuilder(); List<Food> foods = foodDaoUtils.queryFoodGroupByQueryBuilder();
return foods;
} }
@Override @Override
public List<Food> queryDB_FoodList(long parentId) { public List<Food> queryDB_FoodList(long parentId) {
FoodDaoUtils foodDaoUtils = new FoodDaoUtils(mApplication); FoodDaoUtils foodDaoUtils = new FoodDaoUtils(mApplication);
return foodDaoUtils.queryFoodByQueryBuilder(parentId); List<Food> foods = foodDaoUtils.queryFoodByQueryBuilder(parentId);
return foods;
} }
@Override @Override
...@@ -127,15 +121,19 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model ...@@ -127,15 +121,19 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model
} }
@Override @Override
public List<Combo> queryDB_ComboList(long fid) { public List<FoodCombo> queryDB_ComboList(long fid) {
ComboDaoUtils comboDaoUtils = new ComboDaoUtils(mApplication); FoodComboDaoUtils foodComboDaoUtils = new FoodComboDaoUtils(mApplication);
return comboDaoUtils.queryComboFoodsByQueryBuilder(fid); List<FoodCombo> foodCombo = foodComboDaoUtils.queryCombosByQueryBuilder(fid);
FoodDaoUtils foodDaoUtils = new FoodDaoUtils(mApplication);
Food food = foodDaoUtils.queryFoodByFidQueryBuilder2(fid);
return foodCombo;
} }
@Override @Override
public List<Combo> isComboFood(long fid) { public List<FoodCombo> isComboFood(long fid) {
ComboDaoUtils comboDaoUtils = new ComboDaoUtils(mApplication); FoodComboDaoUtils foodComboDaoUtils = new FoodComboDaoUtils(mApplication);
return comboDaoUtils.queryCombosFoodsByQueryBuilder(fid); return foodComboDaoUtils.queryCombosFoodsByQueryBuilder(fid);
} }
@Override @Override
...@@ -144,4 +142,9 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model ...@@ -144,4 +142,9 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model
} }
@Override
public Observable<BaseResult> updateOrderStatus(RequestBody formBody) {
return mRepositoryManager.obtainRetrofitService(OrderPayService.class)
.updateOrderStatus(formBody);
}
} }
\ No newline at end of file
...@@ -7,6 +7,7 @@ import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose; ...@@ -7,6 +7,7 @@ import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose;
import com.gingersoft.gsa.cloud.table.mvp.contract.OrderContentContract; import com.gingersoft.gsa.cloud.table.mvp.contract.OrderContentContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.OrderRequest; import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.OrderRequest;
import com.gingersoft.gsa.cloud.table.mvp.model.service.MealService; import com.gingersoft.gsa.cloud.table.mvp.model.service.MealService;
import com.gingersoft.gsa.cloud.table.mvp.model.service.OrderPayService;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.jess.arms.di.scope.ActivityScope; import com.jess.arms.di.scope.ActivityScope;
import com.jess.arms.integration.IRepositoryManager; import com.jess.arms.integration.IRepositoryManager;
...@@ -66,4 +67,10 @@ public class OrderContentModel extends BaseModel implements OrderContentContract ...@@ -66,4 +67,10 @@ public class OrderContentModel extends BaseModel implements OrderContentContract
return mRepositoryManager.obtainRetrofitService(MealService.class) return mRepositoryManager.obtainRetrofitService(MealService.class)
.printOrder(request); .printOrder(request);
} }
@Override
public Observable<BaseResult> updateOrderStatus(RequestBody formBody) {
return mRepositoryManager.obtainRetrofitService(OrderPayService.class)
.updateOrderStatus(formBody);
}
} }
\ No newline at end of file
...@@ -48,9 +48,9 @@ public class OrderPayModel extends BaseModel implements OrderPayContract.Model { ...@@ -48,9 +48,9 @@ public class OrderPayModel extends BaseModel implements OrderPayContract.Model {
} }
@Override @Override
public Observable<BaseResult> getPayMethods() { public Observable<BaseResult> getPayMethods(int brandId,int restaurantId) {
return mRepositoryManager.obtainRetrofitService(OrderPayService.class) return mRepositoryManager.obtainRetrofitService(OrderPayService.class)
.getPayMethods(); .getPayMethods(brandId,restaurantId);
} }
@Override @Override
......
...@@ -36,8 +36,10 @@ public interface MealService { ...@@ -36,8 +36,10 @@ public interface MealService {
@POST("orderDetails/delete" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2) @POST("orderDetails/delete" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> deleteFood(@Body RequestBody requestBody); Observable<BaseResult> deleteFood(@Body RequestBody requestBody);
@POST("behavior/print" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2) // @POST("behavior/print" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseRespose> printOrder(@Body RequestBody requestBody); // Observable<BaseRespose> printOrder(@Body RequestBody requestBody);
@POST("restaurantTable/print" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseRespose> printOrder(@Body RequestBody requestBody);
} }
...@@ -8,6 +8,7 @@ import okhttp3.RequestBody; ...@@ -8,6 +8,7 @@ import okhttp3.RequestBody;
import retrofit2.http.Body; import retrofit2.http.Body;
import retrofit2.http.GET; import retrofit2.http.GET;
import retrofit2.http.POST; import retrofit2.http.POST;
import retrofit2.http.Query;
/** /**
* Created by Wyh on 2020/1/17. * Created by Wyh on 2020/1/17.
...@@ -17,7 +18,7 @@ public interface OrderPayService { ...@@ -17,7 +18,7 @@ public interface OrderPayService {
@POST("order/update" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2) @POST("order/update" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> updateOrderStatus(@Body RequestBody requestBody); Observable<BaseResult> updateOrderStatus(@Body RequestBody requestBody);
@GET("pay/get" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2) @GET("restaurant/pay/get" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> getPayMethods(); Observable<BaseResult> getPayMethods(@Query("brandId") int brandId,@Query("restaurantId") int restaurantId);
} }
...@@ -2,7 +2,9 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter; ...@@ -2,7 +2,9 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter;
import android.app.Activity; import android.app.Activity;
import android.app.Application; import android.app.Application;
import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.common.bean.OrderBean; import com.gingersoft.gsa.cloud.base.common.bean.OrderBean;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage;
...@@ -17,6 +19,8 @@ import com.jess.arms.di.scope.ActivityScope; ...@@ -17,6 +19,8 @@ import com.jess.arms.di.scope.ActivityScope;
import com.jess.arms.http.imageloader.ImageLoader; import com.jess.arms.http.imageloader.ImageLoader;
import com.jess.arms.integration.AppManager; import com.jess.arms.integration.AppManager;
import com.jess.arms.mvp.BasePresenter; import com.jess.arms.mvp.BasePresenter;
import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.RxLifecycleUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
...@@ -25,7 +29,12 @@ import java.util.List; ...@@ -25,7 +29,12 @@ import java.util.List;
import javax.inject.Inject; import javax.inject.Inject;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
import me.jessyan.rxerrorhandler.core.RxErrorHandler; import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber;
import okhttp3.FormBody;
import okhttp3.RequestBody;
/** /**
* 作者:ELEGANT_BIN * 作者:ELEGANT_BIN
...@@ -150,6 +159,33 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas ...@@ -150,6 +159,33 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
}); });
} }
/**
* 修改訂單
*
* @param //orderId 訂單號
* @param //person 人數
*/
public void updateOrderPerson(String peopleNumber, TextView textView) {
RequestBody requestBody = new FormBody.Builder()
.add("orderId", MyOrderManage.getInstance().getOrderId() + "")
.add("person", peopleNumber + "")
.build();
mModel.updateOrderStatus(requestBody)
.subscribeOn(Schedulers.io())
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(BaseResult baseResult) {
if (baseResult.isSuccess()) {
textView.setText("人數:" + peopleNumber);
OpenTableManage.getDefault().setPeopleNumber(Integer.parseInt(peopleNumber));
}
}
});
}
public void changeNumber(int number) { public void changeNumber(int number) {
if (!changeNumberCondition(number)) { if (!changeNumberCondition(number)) {
return; return;
......
...@@ -5,6 +5,7 @@ import android.graphics.Color; ...@@ -5,6 +5,7 @@ import android.graphics.Color;
import android.view.View; import android.view.View;
import com.billy.cc.core.component.CC; import com.billy.cc.core.component.CC;
import com.billy.cc.core.component.CCUtil;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult; import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.common.bean.OrderBean; import com.gingersoft.gsa.cloud.base.common.bean.OrderBean;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail; import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
...@@ -105,11 +106,12 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -105,11 +106,12 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
public void onItemClick(View view, int viewType, Object data, int position) { public void onItemClick(View view, int viewType, Object data, int position) {
switch (position) { switch (position) {
case 0: case 0:
sendOrder(); //送單
sendOrder(false);
break; break;
case 1: case 1:
printOrder(OpenTableManage.getDefault().getTableBean().getId());
//打印 //打印
sendOrder(true);
break; break;
case 2: case 2:
//結賬 //結賬
...@@ -127,7 +129,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -127,7 +129,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
mFunctionList.addAll(Arrays.asList(functions)); mFunctionList.addAll(Arrays.asList(functions));
} }
private void createOrder() { private void createOrder(boolean isPrint) {
OrderRequest request = getCreateOrderRequest(getOrderFoodLists()); OrderRequest request = getCreateOrderRequest(getOrderFoodLists());
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), JsonUtils.toJson(request)); RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), JsonUtils.toJson(request));
mModel.createOrder(requestBody) mModel.createOrder(requestBody)
...@@ -142,19 +144,27 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -142,19 +144,27 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
@Override @Override
public void onNext(@NonNull BaseResult info) { public void onNext(@NonNull BaseResult info) {
if (info != null && info.isSuccess()) { if (info != null && info.isSuccess()) {
if (isPrint) {
printOrder(OpenTableManage.getDefault().getTableBean().getId());
} else {
mRootView.sendSuccess(); mRootView.sendSuccess();
mRootView.showMessage("送單成功"); mRootView.showMessage("送單成功");
printSendOrder(getOrderFoodLists()); printSendOrder(getOrderFoodLists());
mAppManager.killActivity(MealStandActivity.class); mAppManager.killActivity(MealStandActivity.class);
mRootView.killMyself(); mRootView.killMyself();
}
} else {
if (isPrint) {
printOrder(OpenTableManage.getDefault().getTableBean().getId());
} else { } else {
mRootView.showMessage("送單失敗"); mRootView.showMessage("送單失敗");
} }
} }
}
}); });
} }
private void addOrderFood() { private void addOrderFood(boolean isPrint) {
List<OrderDetail> newFoods = getNewOrderFoodLists(); List<OrderDetail> newFoods = getNewOrderFoodLists();
for (OrderDetail food : newFoods) { for (OrderDetail food : newFoods) {
food.setOrderId(MyOrderManage.getInstance().getOrderId()); food.setOrderId(MyOrderManage.getInstance().getOrderId());
...@@ -172,16 +182,31 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -172,16 +182,31 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
@Override @Override
public void onNext(@NonNull BaseResult info) { public void onNext(@NonNull BaseResult info) {
if (info != null && info.isSuccess()) { if (info != null && info.isSuccess()) {
if (isPrint) {
printOrder(OpenTableManage.getDefault().getTableBean().getId());
} else {
mRootView.showMessage("送單成功"); mRootView.showMessage("送單成功");
printSendOrder(newFoods); printSendOrder(newFoods);
mRootView.sendSuccess(); mRootView.sendSuccess();
// mRootView.launchActivity(new Intent(IActivity, MealStandActivity.class)); }
} else { } else {
if (isPrint) {
printOrder(OpenTableManage.getDefault().getTableBean().getId());
} else {
if(getNewOrderFoodLists().size() == 0){
//未新增食品點擊送單 後台不讓過直接提示即可
mRootView.showMessage("送單成功");
printSendOrder(newFoods);
mRootView.sendSuccess();
}else {
mRootView.showMessage("送單失敗"); mRootView.showMessage("送單失敗");
} }
} }
}
}
}); });
} }
/** /**
* 打印上菜紙 * 打印上菜紙
*/ */
...@@ -211,6 +236,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -211,6 +236,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
// } // }
// }); // });
} }
public void printOrder(int tableId) { public void printOrder(int tableId) {
RequestBody requestBody = new FormBody.Builder() RequestBody requestBody = new FormBody.Builder()
.add("tableId", tableId + "") .add("tableId", tableId + "")
...@@ -229,13 +255,16 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -229,13 +255,16 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
public void onNext(@NonNull BaseRespose info) { public void onNext(@NonNull BaseRespose info) {
if (info != null && info.isSuccess()) { if (info != null && info.isSuccess()) {
CC.obtainBuilder("Component.Print") CC.obtainBuilder("Component.Print")
.setActionName("printActivity")
.addParam("type", 1)//印單 .addParam("type", 1)//印單
.setActionName("printActivity")
.build() .build()
.callAsync((cc, result) -> { .callAsync((cc, result) -> {
if (result.isSuccess()) { if (result.isSuccess()) {
//打印成功 //打印成功
mRootView.printSuccess(); mRootView.printSuccess();
} else {
mRootView.printSuccess();
mRootView.showMessage("打印失敗!");
} }
}); });
//打印 //打印
...@@ -246,11 +275,16 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -246,11 +275,16 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
}); });
} }
public void sendOrder() { /**
* 送單
*
* @param isPrint 印單先調用送單接口
*/
public void sendOrder(boolean isPrint) {
if (MyOrderManage.getInstance().getOrderId() == -1) { if (MyOrderManage.getInstance().getOrderId() == -1) {
createOrder(); createOrder(isPrint);
} else { } else {
addOrderFood(); addOrderFood(isPrint);
} }
} }
......
...@@ -5,6 +5,7 @@ import android.text.TextUtils; ...@@ -5,6 +5,7 @@ import android.text.TextUtils;
import android.view.View; import android.view.View;
import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseQuickAdapter;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult; import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage;
...@@ -149,7 +150,9 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model ...@@ -149,7 +150,9 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
} }
public void getPayMethods() { public void getPayMethods() {
mModel.getPayMethods() int brandId = GsaCloudApplication.getBrandId(mApplication);
int restaurantId = GsaCloudApplication.getRestaurantId(mApplication);
mModel.getPayMethods(brandId, restaurantId)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null)) .doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread()) .subscribeOn(AndroidSchedulers.mainThread())
...@@ -180,11 +183,11 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model ...@@ -180,11 +183,11 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
.add("orderId", MyOrderManage.getInstance().getOrderId() + "") .add("orderId", MyOrderManage.getInstance().getOrderId() + "")
.add("person", OpenTableManage.getDefault().getPeopleNumber() + "") .add("person", OpenTableManage.getDefault().getPeopleNumber() + "")
.add("status", statius) .add("status", statius)
.add("orderPayType", mBillMoneyList.get(0).getId()+"") .add("orderPayType", mBillMoneyList.get(0).getId() + "")
.build(); .build();
mModel.updateOrderStatus(requestBody) mModel.updateOrderStatus(requestBody)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading("")) .doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread()) .subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading()) .doAfterTerminate(() -> mRootView.hideLoading())
......
...@@ -39,6 +39,7 @@ import okhttp3.RequestBody; ...@@ -39,6 +39,7 @@ import okhttp3.RequestBody;
import javax.inject.Inject; import javax.inject.Inject;
import com.gingersoft.gsa.cloud.table.mvp.contract.TableContract; import com.gingersoft.gsa.cloud.table.mvp.contract.TableContract;
import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.RxLifecycleUtils; import com.jess.arms.utils.RxLifecycleUtils;
import com.qmuiteam.qmui.widget.dialog.QMUIDialog; import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
...@@ -145,34 +146,34 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont ...@@ -145,34 +146,34 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
mRootView.setCurrentOperatType(TableOperatTypeConstant.move_table_4); mRootView.setCurrentOperatType(TableOperatTypeConstant.move_table_4);
return; return;
} }
if (mBottomFunctionList.get(position).getResName().equals("↑")) { // if (mBottomFunctionList.get(position).getResName().equals("↑")) {
mBottomFunctionList.add(new Function((long) 5, 1, 2025, "skyorder", "", "")); // mBottomFunctionList.add(new Function((long) 5, 1, 2025, "skyorder", "", ""));
mBottomFunctionList.add(new Function((long) 6, 1, 2025, "上菜紙", "", "")); // mBottomFunctionList.add(new Function((long) 6, 1, 2025, "上菜紙", "", ""));
for (int i = 0; i < mBottomFunctionList.size(); i++) { // for (int i = 0; i < mBottomFunctionList.size(); i++) {
boolean isMore = mBottomFunctionList.get(i).getResName().equals("↑"); // boolean isMore = mBottomFunctionList.get(i).getResName().equals("↑");
if (isMore) // if (isMore)
mBottomFunctionList.get(i).setResName("↓"); // mBottomFunctionList.get(i).setResName("↓");
} // }
mBottomFunctionAdapter.notifyDataSetChanged(); // mBottomFunctionAdapter.notifyDataSetChanged();
} else if (mBottomFunctionList.get(position).getResName().equals("↓")) { // } else if (mBottomFunctionList.get(position).getResName().equals("↓")) {
mBottomFunctionList.remove(mBottomFunctionList.size() - 1); // mBottomFunctionList.remove(mBottomFunctionList.size() - 1);
mBottomFunctionList.remove(mBottomFunctionList.size() - 1); // mBottomFunctionList.remove(mBottomFunctionList.size() - 1);
for (int i = 0; i < mBottomFunctionList.size(); i++) { // for (int i = 0; i < mBottomFunctionList.size(); i++) {
boolean isMore = mBottomFunctionList.get(i).getResName().equals("↓"); // boolean isMore = mBottomFunctionList.get(i).getResName().equals("↓");
if (isMore) // if (isMore)
mBottomFunctionList.get(i).setResName("↑"); // mBottomFunctionList.get(i).setResName("↑");
} // }
mBottomFunctionAdapter.notifyDataSetChanged(); // mBottomFunctionAdapter.notifyDataSetChanged();
} // }
} }
}); });
} }
public void initBottomFunctionItem() { public void initBottomFunctionItem() {
mBottomFunctionList.add(new Function((long) 1, 1, 2025, "重置檯號", "", "")); mBottomFunctionList.add(new Function((long) 1, 1, 2025, "重置檯號", "", String.valueOf(R.mipmap.table_init)));
mBottomFunctionList.add(new Function((long) 2, 1, 2025, "轉檯", "", "")); mBottomFunctionList.add(new Function((long) 2, 1, 2025, "轉檯", "", String.valueOf(R.mipmap.table_move)));
mBottomFunctionList.add(new Function((long) 3, 1, 2025, "分檯", "", "")); // mBottomFunctionList.add(new Function((long) 3, 1, 2025, "分檯", "", ""));
mBottomFunctionList.add(new Function((long) 4, 1, 2025, "↑", "", "")); // mBottomFunctionList.add(new Function((long) 4, 1, 2025, "↑", "", ""));
} }
public void getTables(boolean show) { public void getTables(boolean show) {
...@@ -218,7 +219,6 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont ...@@ -218,7 +219,6 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
RequestBody requestBody = new FormBody.Builder() RequestBody requestBody = new FormBody.Builder()
.add("id", String.valueOf(tableId)) .add("id", String.valueOf(tableId))
.build(); .build();
mModel.openTable(requestBody) mModel.openTable(requestBody)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null)) .doOnSubscribe(disposable -> mRootView.showLoading(null))
...@@ -235,11 +235,16 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont ...@@ -235,11 +235,16 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
TableBean.DataBean openTableBean = getTableById(tableId); TableBean.DataBean openTableBean = getTableById(tableId);
OpenTableManage.getDefault().setTableBean(openTableBean); OpenTableManage.getDefault().setTableBean(openTableBean);
if (respose.getData() != null && respose.getData().getOrderDetails() != null) { OrderBean orderBean = respose.getData();
if (orderBean != null && respose.getData().getOrderDetails() != null) {
OpenTableManage.getDefault().setPeopleNumber(orderBean.getPerson());
List<OrderBean.OrderDetailsBean> orderDetailsBeans = respose.getData().getOrderDetails();
//緩存訂單信息 //緩存訂單信息
MyOrderManage.getInstance().setOrderBean(new OrderBean(respose.getData().getId(), respose.getData().getOrderNo(), respose.getData().getStatus(), respose.getData().getCreateTime())); MyOrderManage.getInstance().setOrderBean(new OrderBean(orderBean));
//緩存食品信息 //緩存食品信息
List<OrderDetail> orderDetailList = OrderDetail.orderTransOrderDetails(respose.getData().getOrderDetails()); List<OrderDetail> orderDetailList = OrderDetail.orderTransOrderDetails(orderDetailsBeans);
MyOrderManage.getInstance().setOrderFoodList(orderDetailList); MyOrderManage.getInstance().setOrderFoodList(orderDetailList);
} else { } else {
...@@ -274,7 +279,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont ...@@ -274,7 +279,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
mRootView.showMessage("此檯使用中."); mRootView.showMessage("此檯使用中.");
return; return;
} }
if(tableBean.getStatus() == 0){ if (tableBean.getStatus() == 0) {
mRootView.showMessage("此檯未開檯."); mRootView.showMessage("此檯未開檯.");
return; return;
} }
...@@ -286,10 +291,13 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont ...@@ -286,10 +291,13 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
mRootView.showMessage("此檯使用中."); mRootView.showMessage("此檯使用中.");
return; return;
} }
if (tableBean.getStatus() == 2 || tableBean.getStatus() == 3) {
mRootView.showMessage(tableBean.getTableName() + "檯已開檯不可轉檯");
return;
}
targetTableName = tableBean.getTableName(); targetTableName = tableBean.getTableName();
targetTableId = tableBean.getId(); targetTableId = tableBean.getId();
mRootView.setOperatContentText("由: " + originalTableName + " 轉到 " + mRootView.setOperatContentText("由: " + originalTableName + " 轉到 " + targetTableName + " 號檯");
targetTableName + " 號檯");
showOperatTipDialog(tableBean); showOperatTipDialog(tableBean);
} }
} else { } else {
...@@ -337,7 +345,11 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont ...@@ -337,7 +345,11 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
mModel.initTable(requestBody) mModel.initTable(requestBody)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null)) .doOnSubscribe(disposable -> {
if (showMessage) {
mRootView.showLoading(null);
}
})
.subscribeOn(AndroidSchedulers.mainThread()) .subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading()) .doAfterTerminate(() -> mRootView.hideLoading())
......
...@@ -9,6 +9,8 @@ import android.widget.Button; ...@@ -9,6 +9,8 @@ import android.widget.Button;
import android.widget.Chronometer; import android.widget.Chronometer;
import android.widget.TextView; import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage;
import com.gingersoft.gsa.cloud.base.utils.VibratorUtils; import com.gingersoft.gsa.cloud.base.utils.VibratorUtils;
import com.gingersoft.gsa.cloud.base.utils.view.ViewUtils; import com.gingersoft.gsa.cloud.base.utils.view.ViewUtils;
...@@ -28,6 +30,8 @@ import com.qmuiteam.qmui.util.QMUIDisplayHelper; ...@@ -28,6 +30,8 @@ import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import org.simple.eventbus.EventBus; import org.simple.eventbus.EventBus;
import java.util.Date;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
...@@ -100,6 +104,7 @@ public class OrderContentActivity extends BaseActivity<OrderContentPresenter> im ...@@ -100,6 +104,7 @@ public class OrderContentActivity extends BaseActivity<OrderContentPresenter> im
QMUIDisplayHelper.cancelFullScreen(this); QMUIDisplayHelper.cancelFullScreen(this);
initOrderDetail(); initOrderDetail();
initTopInfo();
mPresenter.initTopFunctionData(); mPresenter.initTopFunctionData();
mPresenter.initAdapter(); mPresenter.initAdapter();
mPresenter.initOrderTopFunctionListener(); mPresenter.initOrderTopFunctionListener();
...@@ -120,6 +125,24 @@ public class OrderContentActivity extends BaseActivity<OrderContentPresenter> im ...@@ -120,6 +125,24 @@ public class OrderContentActivity extends BaseActivity<OrderContentPresenter> im
tv_total.setText("$" + total); tv_total.setText("$" + total);
} }
private void initTopInfo() {
Date dd = MyOrderManage.getInstance().getOpenTableTime();
String openTime = String.format("%tH:%tM", dd, dd);
String tableno = "";
if (!OpenTableManage.getDefault().isSplite()) {
tableno = OpenTableManage.getDefault().getTableBean().getTableName();
} else {//TODO 暫未分檯功能
// tableno = GSAApplication.tableContract.getTableno().trim() + "-" + GSAApplication.tableContract.getTableno_split().trim();
}
btn_table.setText(tableno);
tv_time.setText("時間:" + openTime);
btn_people_num.setText(OpenTableManage.getDefault().getPeopleNumber() + "");
tv_server_main.setText(GsaCloudApplication.getMemberName(this));
}
@OnClick({R2.id.btn_table, R2.id.btn_people_num}) @OnClick({R2.id.btn_table, R2.id.btn_people_num})
public void onClick(View v) { public void onClick(View v) {
...@@ -204,10 +227,9 @@ public class OrderContentActivity extends BaseActivity<OrderContentPresenter> im ...@@ -204,10 +227,9 @@ public class OrderContentActivity extends BaseActivity<OrderContentPresenter> im
public void onComfirmClick(String number) { public void onComfirmClick(String number) {
recordOperat(true); recordOperat(true);
//选择的人数大于0 //选择的人数大于0
if (Integer.parseInt(number) > 0) { // if (Integer.parseInt(number) > 0) {
OpenTableManage.getDefault().setPeopleNumber(Integer.parseInt(number)); // }
} mPresenter.updateOrderPerson(number,btn_people_num);
btn_people_num.setText(number);
} }
@Override @Override
...@@ -217,6 +239,7 @@ public class OrderContentActivity extends BaseActivity<OrderContentPresenter> im ...@@ -217,6 +239,7 @@ public class OrderContentActivity extends BaseActivity<OrderContentPresenter> im
}); });
chooseNumberDialog.setCancelable(isNeedCancel); chooseNumberDialog.setCancelable(isNeedCancel);
} }
chooseNumberDialog.show();
} }
@Override @Override
...@@ -237,7 +260,7 @@ public class OrderContentActivity extends BaseActivity<OrderContentPresenter> im ...@@ -237,7 +260,7 @@ public class OrderContentActivity extends BaseActivity<OrderContentPresenter> im
@Override @Override
public void showMessage(@NonNull String message) { public void showMessage(@NonNull String message) {
checkNotNull(message); checkNotNull(message);
ArmsUtils.makeText(this,message); ArmsUtils.makeText(this, message);
} }
@Override @Override
......
...@@ -192,7 +192,7 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements ...@@ -192,7 +192,7 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
private void initTopInfo() { private void initTopInfo() {
Date dd = new Date(OpenTableManage.getDefault().getTableBean().getCreateTime()); Date dd = MyOrderManage.getInstance().getOpenTableTime();
String openTime = String.format("%tH:%tM", dd, dd); String openTime = String.format("%tH:%tM", dd, dd);
String tableno = ""; String tableno = "";
...@@ -203,9 +203,9 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements ...@@ -203,9 +203,9 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
} }
btn_table.setText(tableno); btn_table.setText(tableno);
tv_time.setText("開檯時間" + openTime); tv_time.setText("時間:" + openTime);
btn_people_num.setText(OpenTableManage.getDefault().getPeopleNumber() + ""); btn_people_num.setText(OpenTableManage.getDefault().getPeopleNumber() + "");
tv_server_main.setText("waiter:" + GsaCloudApplication.getMemberName(this)); tv_server_main.setText( GsaCloudApplication.getMemberName(this));
tv_action_name.setBackgroundColor(Color.parseColor("#C50000")); tv_action_name.setBackgroundColor(Color.parseColor("#C50000"));
tv_action_name.setText("結賬"); tv_action_name.setText("結賬");
......
...@@ -11,6 +11,7 @@ import android.view.View; ...@@ -11,6 +11,7 @@ import android.view.View;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.base.utils.log.LogUtil; import com.gingersoft.gsa.cloud.base.utils.log.LogUtil;
import com.gingersoft.gsa.cloud.table.R; import com.gingersoft.gsa.cloud.table.R;
...@@ -31,6 +32,7 @@ import com.jess.arms.di.component.AppComponent; ...@@ -31,6 +32,7 @@ import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import com.gingersoft.gsa.cloud.table.mvp.contract.TableContract; import com.gingersoft.gsa.cloud.table.mvp.contract.TableContract;
import com.gingersoft.gsa.cloud.table.mvp.presenter.TablePresenter; import com.gingersoft.gsa.cloud.table.mvp.presenter.TablePresenter;
import com.qmuiteam.qmui.alpha.QMUIAlphaImageButton;
import com.qmuiteam.qmui.layout.QMUIButton; import com.qmuiteam.qmui.layout.QMUIButton;
import com.qmuiteam.qmui.widget.QMUITopBar; import com.qmuiteam.qmui.widget.QMUITopBar;
...@@ -154,6 +156,24 @@ public class TableActivity extends BaseActivity<TablePresenter> implements Table ...@@ -154,6 +156,24 @@ public class TableActivity extends BaseActivity<TablePresenter> implements Table
killMyself(); killMyself();
} }
}); });
QMUIAlphaImageButton rightButton = mTopBar.addRightImageButton(R.drawable.icon_refresh, R.id.btn_right);
QMUIAlphaImageButton rightButton2 = mTopBar.addRightImageButton(R.mipmap.meal_down, R.id.btn_fid);
rightButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mPresenter.getTables(true);
}
});
rightButton2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CC.obtainBuilder("Component.Download")
.setActionName("showDownloadActivity")
.build()
.call();
}
});
mTopBar.setTitle("餐檯模式"); mTopBar.setTitle("餐檯模式");
} }
......
...@@ -69,6 +69,7 @@ public class BottomFunctionAdapter extends DefaultAdapter<Function> { ...@@ -69,6 +69,7 @@ public class BottomFunctionAdapter extends DefaultAdapter<Function> {
private void initItemData(Function item) { private void initItemData(Function item) {
tv_name.setText(item.getResName()); tv_name.setText(item.getResName());
iv_icon.setImageResource(Integer.parseInt(item.getImageURL()));
} }
......
package com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal; package com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal;
import android.content.Context; import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.GradientDrawable; import android.graphics.drawable.GradientDrawable;
import android.text.TextUtils;
import android.view.Gravity; import android.view.Gravity;
import android.view.MotionEvent; import android.view.MotionEvent;
import android.view.View; import android.view.View;
...@@ -12,7 +10,7 @@ import android.widget.ImageView; ...@@ -12,7 +10,7 @@ import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.database.bean.Combo; import com.gingersoft.gsa.cloud.database.bean.FoodCombo;
import com.gingersoft.gsa.cloud.database.bean.Modifier; import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.table.R; import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2; import com.gingersoft.gsa.cloud.table.R2;
...@@ -33,7 +31,7 @@ import butterknife.BindView; ...@@ -33,7 +31,7 @@ import butterknife.BindView;
* 描述: * 描述:
*/ */
public class ComboAdapter extends DefaultAdapter<Combo> { public class ComboAdapter extends DefaultAdapter<FoodCombo> {
private Context mContext; private Context mContext;
...@@ -45,7 +43,7 @@ public class ComboAdapter extends DefaultAdapter<Combo> { ...@@ -45,7 +43,7 @@ public class ComboAdapter extends DefaultAdapter<Combo> {
private int OrderNumberChildFontSize; private int OrderNumberChildFontSize;
public ComboAdapter(Context context, List<Combo> infos) { public ComboAdapter(Context context, List<FoodCombo> infos) {
super(infos); super(infos);
this.mContext = context; this.mContext = context;
...@@ -64,7 +62,7 @@ public class ComboAdapter extends DefaultAdapter<Combo> { ...@@ -64,7 +62,7 @@ public class ComboAdapter extends DefaultAdapter<Combo> {
} }
@Override @Override
public BaseHolder<Combo> getHolder(View v, int viewType) { public BaseHolder<FoodCombo> getHolder(View v, int viewType) {
return new ComboItemHolder(v); return new ComboItemHolder(v);
} }
...@@ -73,7 +71,7 @@ public class ComboAdapter extends DefaultAdapter<Combo> { ...@@ -73,7 +71,7 @@ public class ComboAdapter extends DefaultAdapter<Combo> {
return R.layout.table_item_combo; return R.layout.table_item_combo;
} }
class ComboItemHolder extends BaseHolder<Combo> { class ComboItemHolder extends BaseHolder<FoodCombo> {
@BindView(R2.id.tv_name) @BindView(R2.id.tv_name)
TextView tv_name; TextView tv_name;
...@@ -90,7 +88,7 @@ public class ComboAdapter extends DefaultAdapter<Combo> { ...@@ -90,7 +88,7 @@ public class ComboAdapter extends DefaultAdapter<Combo> {
} }
@Override @Override
public void setData(Combo datasBean, int position) { public void setData(FoodCombo datasBean, int position) {
iv_qty_sold.setVisibility(View.INVISIBLE); iv_qty_sold.setVisibility(View.INVISIBLE);
tv_soldout.setVisibility(View.INVISIBLE); tv_soldout.setVisibility(View.INVISIBLE);
...@@ -190,7 +188,7 @@ public class ComboAdapter extends DefaultAdapter<Combo> { ...@@ -190,7 +188,7 @@ public class ComboAdapter extends DefaultAdapter<Combo> {
tv_soldout.setTextSize(OrderNumberChildFontSize); tv_soldout.setTextSize(OrderNumberChildFontSize);
} }
private void initComboName(Combo datasBean) { private void initComboName(FoodCombo datasBean) {
String Fname = datasBean.getName(); String Fname = datasBean.getName();
tv_name.setText(Fname); tv_name.setText(Fname);
tv_name.setTextSize(FontSize); tv_name.setTextSize(FontSize);
...@@ -198,7 +196,7 @@ public class ComboAdapter extends DefaultAdapter<Combo> { ...@@ -198,7 +196,7 @@ public class ComboAdapter extends DefaultAdapter<Combo> {
initComboColor(datasBean); initComboColor(datasBean);
} }
private void initComboColor(Combo datasBean) { private void initComboColor(FoodCombo datasBean) {
GradientDrawable drawable = new GradientDrawable(); GradientDrawable drawable = new GradientDrawable();
drawable.setShape(GradientDrawable.RECTANGLE); drawable.setShape(GradientDrawable.RECTANGLE);
drawable.setGradientType(GradientDrawable.RECTANGLE); drawable.setGradientType(GradientDrawable.RECTANGLE);
...@@ -226,7 +224,7 @@ public class ComboAdapter extends DefaultAdapter<Combo> { ...@@ -226,7 +224,7 @@ public class ComboAdapter extends DefaultAdapter<Combo> {
public interface OnItemClickListener { public interface OnItemClickListener {
void onItemClick(Combo datasBean, int position); void onItemClick(FoodCombo datasBean, int position);
} }
} }
...@@ -181,8 +181,8 @@ public class FoodAdapter extends DefaultAdapter<Food> { ...@@ -181,8 +181,8 @@ public class FoodAdapter extends DefaultAdapter<Food> {
tv_soldout.setVisibility(View.INVISIBLE); tv_soldout.setVisibility(View.INVISIBLE);
iv_qtySold.setVisibility(View.INVISIBLE); iv_qtySold.setVisibility(View.INVISIBLE);
long isSold = datasBean.getIsSold(); long Invisible = datasBean.getInvisible();
if (isSold == 1) { if (Invisible == 2) {
iv_qtySold.setVisibility(View.VISIBLE); iv_qtySold.setVisibility(View.VISIBLE);
} else { } else {
iv_qtySold.setVisibility(View.INVISIBLE); iv_qtySold.setVisibility(View.INVISIBLE);
...@@ -209,6 +209,9 @@ public class FoodAdapter extends DefaultAdapter<Food> { ...@@ -209,6 +209,9 @@ public class FoodAdapter extends DefaultAdapter<Food> {
} }
return; return;
} }
for (int i = 0; i < mInfos.size(); i++) {
mInfos.get(i).setSelected(false);
}
if (currentSelectPosition == 0 || currentSelectPosition != position) { if (currentSelectPosition == 0 || currentSelectPosition != position) {
if (currentSelectPosition < mInfos.size()) { if (currentSelectPosition < mInfos.size()) {
...@@ -218,8 +221,9 @@ public class FoodAdapter extends DefaultAdapter<Food> { ...@@ -218,8 +221,9 @@ public class FoodAdapter extends DefaultAdapter<Food> {
} }
//设置当前选中item颜色 //设置当前选中item颜色
if (datasBean != null)
datasBean.setSelected(true); datasBean.setSelected(true);
notifyItemChanged(position); notifyDataSetChanged();
//保存上次操作的position //保存上次操作的position
currentSelectPosition = position; currentSelectPosition = position;
......
...@@ -7,12 +7,14 @@ import android.view.ViewGroup; ...@@ -7,12 +7,14 @@ import android.view.ViewGroup;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.database.bean.Food; import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.table.R; import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2; import com.gingersoft.gsa.cloud.table.R2;
import com.jess.arms.base.BaseHolder; import com.jess.arms.base.BaseHolder;
import com.jess.arms.base.DefaultAdapter; import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.DeviceUtils;
import java.util.List; import java.util.List;
...@@ -31,7 +33,7 @@ public class FoodGroupAdapter extends DefaultAdapter<Food> { ...@@ -31,7 +33,7 @@ public class FoodGroupAdapter extends DefaultAdapter<Food> {
private Context mContext; private Context mContext;
// private List<Color.DatasBean> mColorList; // private List<Color.DatasBean> mColorList;
private int mOrderNumberShowSize; private int mOrderNumberShowSize;
private int mOrderNumberFontSize; private int mOrderNumberFontSize;
private int FoodTypeFontSize; private int FoodTypeFontSize;
...@@ -47,14 +49,14 @@ public class FoodGroupAdapter extends DefaultAdapter<Food> { ...@@ -47,14 +49,14 @@ public class FoodGroupAdapter extends DefaultAdapter<Food> {
super(infos); super(infos);
this.mContext = context; this.mContext = context;
// this.mOrderNumberShowSize = GSAApplication.androidSetting.getOrderNumberShowSize(); this.mOrderNumberShowSize = GsaCloudApplication.androidSetting.getOrderNumberShowSize();
// this.mOrderNumberFontSize = GSAApplication.androidSetting.getOrderNumberFontSize(); this.mOrderNumberFontSize = GsaCloudApplication.androidSetting.getOrderNumberFontSize();
// this.FoodTypeFontSize = GSAApplication.androidSetting.getFoodTypeFontSize(); this.FoodTypeFontSize = GsaCloudApplication.androidSetting.getFoodTypeFontSize();
// int foodCol = GSAApplication.androidSetting.getFoodTypeCol(); int foodCol = GsaCloudApplication.androidSetting.getFoodTypeCol();
// this.mParentColWidth = (int) (DeviceUtils.getScreenWidth(context) / foodCol); this.mParentColWidth = (int) (DeviceUtils.getScreenWidth(context) / foodCol);
//
// this.mParentColHeight = GSAApplication.androidSetting.getLayoutFoodTypeHeight() / GSAApplication.androidSetting.getFoodTypeRow(); this.mParentColHeight = GsaCloudApplication.androidSetting.getLayoutFoodTypeHeight() / GsaCloudApplication.androidSetting.getFoodTypeRow();
// this.mLayoutQtyHeight = GSAApplication.androidSetting.getLayoutQtyHeight(); this.mLayoutQtyHeight = GsaCloudApplication.androidSetting.getLayoutQtyHeight();
// //
// Db_Color dc = new Db_Color(context); // Db_Color dc = new Db_Color(context);
// mColorList = dc.query(""); // mColorList = dc.query("");
...@@ -103,19 +105,17 @@ public class FoodGroupAdapter extends DefaultAdapter<Food> { ...@@ -103,19 +105,17 @@ public class FoodGroupAdapter extends DefaultAdapter<Food> {
@Override @Override
public void onViewClick(View view, int position) { public void onViewClick(View view, int position) {
if (mOnItemClickListener != null) { if (mOnItemClickListener != null) {
for (int i = 0; i < mInfos.size(); i++) {
mInfos.get(i).setSelected(false);
}
if (currentSelectPosition != position) { if (currentSelectPosition != position) {
//设置当前选中item颜色 //设置当前选中item颜色
datasBean.setSelected(true); datasBean.setSelected(true);
tv_name.setBackgroundColor(mContext.getResources().getColor(R.color.colorAccent)); tv_name.setBackgroundColor(mContext.getResources().getColor(R.color.orange_500));
//重置上次选中item的颜色
mInfos.get(currentSelectPosition).setSelected(false);
notifyItemChanged(currentSelectPosition, 1);
//保存上次操作的position //保存上次操作的position
currentSelectPosition = position; currentSelectPosition = position;
} }
notifyDataSetChanged();
mOnItemClickListener.onItemClick(datasBean, position); mOnItemClickListener.onItemClick(datasBean, position);
} }
} }
...@@ -124,7 +124,7 @@ public class FoodGroupAdapter extends DefaultAdapter<Food> { ...@@ -124,7 +124,7 @@ public class FoodGroupAdapter extends DefaultAdapter<Food> {
public void setFoodGroup(Food datasBean) { public void setFoodGroup(Food datasBean) {
// String desc = ""; // String desc = "";
// switch (GSAApplication.androidSetting.getDataLanguage()) { // switch (GsaCloudApplication.androidSetting.getDataLanguage()) {
// case 1: // case 1:
// desc = datasBean.getDesc1(); // desc = datasBean.getDesc1();
// break; // break;
...@@ -151,7 +151,7 @@ public class FoodGroupAdapter extends DefaultAdapter<Food> { ...@@ -151,7 +151,7 @@ public class FoodGroupAdapter extends DefaultAdapter<Food> {
tv_name.setHeight(mParentColHeight); tv_name.setHeight(mParentColHeight);
tv_name.setGravity(Gravity.CENTER); tv_name.setGravity(Gravity.CENTER);
GridLayoutManager.LayoutParams lp = (GridLayoutManager.LayoutParams) rl_container.getLayoutParams(); RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) rl_container.getLayoutParams();
lp.height = mParentColHeight; lp.height = mParentColHeight;
lp.width = mParentColWidth; lp.width = mParentColWidth;
rl_container.setLayoutParams(lp); rl_container.setLayoutParams(lp);
...@@ -224,7 +224,7 @@ public class FoodGroupAdapter extends DefaultAdapter<Food> { ...@@ -224,7 +224,7 @@ public class FoodGroupAdapter extends DefaultAdapter<Food> {
// tv_soldout.setVisibility(View.INVISIBLE); // tv_soldout.setVisibility(View.INVISIBLE);
// } else { // } else {
// tv_soldout.setVisibility(View.VISIBLE); // tv_soldout.setVisibility(View.VISIBLE);
tv_soldout.setText(datasBean.getNumber()); // tv_soldout.setText(datasBean.getNumber());
// } // }
/** /**
......
...@@ -16,10 +16,12 @@ import com.gingersoft.gsa.cloud.table.di.component.DaggerAllTableComponent; ...@@ -16,10 +16,12 @@ import com.gingersoft.gsa.cloud.table.di.component.DaggerAllTableComponent;
import com.gingersoft.gsa.cloud.table.mvp.contract.AllTableContract; import com.gingersoft.gsa.cloud.table.mvp.contract.AllTableContract;
import com.gingersoft.gsa.cloud.table.mvp.presenter.AllTablePresenter; import com.gingersoft.gsa.cloud.table.mvp.presenter.AllTablePresenter;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.TableActivity; import com.gingersoft.gsa.cloud.table.mvp.ui.activity.TableActivity;
import com.gingersoft.gsa.cloud.ui.recylcler.decorator.GridDividerItemDecoration;
import com.jess.arms.base.BaseFragment; import com.jess.arms.base.BaseFragment;
import com.jess.arms.base.DefaultAdapter; import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.di.component.AppComponent; import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import java.util.List; import java.util.List;
...@@ -203,9 +205,7 @@ public class AllTableFragment extends BaseFragment<AllTablePresenter> implements ...@@ -203,9 +205,7 @@ public class AllTableFragment extends BaseFragment<AllTablePresenter> implements
// } else { // } else {
mAllTableRecycleLayoutManager = new GridLayoutManager(getActivity(), 4, LinearLayoutManager.VERTICAL, false); mAllTableRecycleLayoutManager = new GridLayoutManager(getActivity(), 4, LinearLayoutManager.VERTICAL, false);
recycle_all_table.setLayoutManager(mAllTableRecycleLayoutManager); recycle_all_table.setLayoutManager(mAllTableRecycleLayoutManager);
recycle_all_table.setItemAnimator(new DefaultItemAnimator()); recycle_all_table.addItemDecoration(new GridDividerItemDecoration(QMUIDisplayHelper.dpToPx(1), ArmsUtils.getColor(getActivity(), R.color.theme_grey_color)));
recycle_all_table.addItemDecoration(new DividerItemDecoration(getActivity(), LinearLayoutManager.HORIZONTAL));
recycle_all_table.addItemDecoration(new DividerItemDecoration(getActivity(), LinearLayoutManager.VERTICAL));
// } // }
} }
} }
...@@ -16,10 +16,12 @@ import com.gingersoft.gsa.cloud.table.di.component.DaggerStateTableComponent; ...@@ -16,10 +16,12 @@ import com.gingersoft.gsa.cloud.table.di.component.DaggerStateTableComponent;
import com.gingersoft.gsa.cloud.table.mvp.contract.StateTableContract; import com.gingersoft.gsa.cloud.table.mvp.contract.StateTableContract;
import com.gingersoft.gsa.cloud.table.mvp.presenter.StateTablePresenter; import com.gingersoft.gsa.cloud.table.mvp.presenter.StateTablePresenter;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.TableActivity; import com.gingersoft.gsa.cloud.table.mvp.ui.activity.TableActivity;
import com.gingersoft.gsa.cloud.ui.recylcler.decorator.GridDividerItemDecoration;
import com.jess.arms.base.BaseFragment; import com.jess.arms.base.BaseFragment;
import com.jess.arms.base.DefaultAdapter; import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.di.component.AppComponent; import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import java.util.List; import java.util.List;
...@@ -109,7 +111,7 @@ public class StateTableFragment extends BaseFragment<StateTablePresenter> implem ...@@ -109,7 +111,7 @@ public class StateTableFragment extends BaseFragment<StateTablePresenter> implem
@Override @Override
public boolean onTouch(View v, MotionEvent event) { public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction(); int action = event.getAction();
switch (action){ switch (action) {
case MotionEvent.ACTION_DOWN: case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_MOVE: //用户滑动 先停止刷新餐台数据 case MotionEvent.ACTION_MOVE: //用户滑动 先停止刷新餐台数据
mActivity.onPauseRefreshTableData(); mActivity.onPauseRefreshTableData();
...@@ -137,7 +139,7 @@ public class StateTableFragment extends BaseFragment<StateTablePresenter> implem ...@@ -137,7 +139,7 @@ public class StateTableFragment extends BaseFragment<StateTablePresenter> implem
//recycleView正在滑动 //recycleView正在滑动
if (recycle_state_table.getScrollState() != 0) { if (recycle_state_table.getScrollState() != 0) {
} else { } else {
mPresenter.updateAllTableData(mActivity, datasBeans,status); mPresenter.updateAllTableData(mActivity, datasBeans, status);
} }
} }
break; break;
...@@ -205,9 +207,7 @@ public class StateTableFragment extends BaseFragment<StateTablePresenter> implem ...@@ -205,9 +207,7 @@ public class StateTableFragment extends BaseFragment<StateTablePresenter> implem
// } else { // } else {
mStateTableRecycleLayoutManager = new GridLayoutManager(getActivity(), 4, LinearLayoutManager.VERTICAL, false); mStateTableRecycleLayoutManager = new GridLayoutManager(getActivity(), 4, LinearLayoutManager.VERTICAL, false);
recycle_state_table.setLayoutManager(mStateTableRecycleLayoutManager); recycle_state_table.setLayoutManager(mStateTableRecycleLayoutManager);
recycle_state_table.setItemAnimator(new DefaultItemAnimator()); recycle_state_table.addItemDecoration(new GridDividerItemDecoration(QMUIDisplayHelper.dpToPx(1), ArmsUtils.getColor(getActivity(), R.color.theme_grey_color)));
recycle_state_table.addItemDecoration(new DividerItemDecoration(getActivity(), LinearLayoutManager.HORIZONTAL));
recycle_state_table.addItemDecoration(new DividerItemDecoration(getActivity(), LinearLayoutManager.VERTICAL));
// } // }
} }
} }
...@@ -91,9 +91,9 @@ ...@@ -91,9 +91,9 @@
android:divider="@null" android:divider="@null"
android:fadeScrollbars="false" android:fadeScrollbars="false"
android:orientation="vertical" android:orientation="vertical"
android:background="@color/theme_white_color"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" /> app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
<TextView <TextView
android:id="@+id/tv_whole" android:id="@+id/tv_whole"
android:layout_width="match_parent" android:layout_width="match_parent"
...@@ -102,8 +102,9 @@ ...@@ -102,8 +102,9 @@
android:textSize="@dimen/font_large" android:textSize="@dimen/font_large"
android:textStyle="bold" android:textStyle="bold"
android:textColor="@color/theme_text_color" android:textColor="@color/theme_text_color"
android:layout_marginBottom="@dimen/dp_20" android:paddingBottom="@dimen/dp_20"
android:paddingRight="@dimen/dp_10" android:paddingRight="@dimen/dp_10"
android:background="@color/theme_white_color"
android:gravity="right|center_vertical"/> android:gravity="right|center_vertical"/>
......
...@@ -72,7 +72,7 @@ ...@@ -72,7 +72,7 @@
<com.qmuiteam.qmui.layout.QMUIButton <com.qmuiteam.qmui.layout.QMUIButton
android:id="@+id/btn_cancel_operat" android:id="@+id/btn_cancel_operat"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/dp_48" android:layout_height="@dimen/dp_55"
android:textColor="@color/theme_white_color" android:textColor="@color/theme_white_color"
android:background="@color/theme_grey_color" android:background="@color/theme_grey_color"
android:layout_alignParentBottom="true" android:layout_alignParentBottom="true"
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="@dimen/dp_55"
android:gravity="center" android:gravity="center"
android:orientation="vertical" android:orientation="vertical"
android:background="@drawable/ui_selector_item_background"> android:background="@drawable/ui_selector_item_background">
......
...@@ -67,7 +67,7 @@ public class LoginPresenter extends BasePresenter<LoginContract.Model, LoginCont ...@@ -67,7 +67,7 @@ public class LoginPresenter extends BasePresenter<LoginContract.Model, LoginCont
if (account.equals("")) { if (account.equals("")) {
requestBody = new FormBody.Builder() requestBody = new FormBody.Builder()
.add("userName", "admin") .add("userName", "1")
.add("passWord", "123456") .add("passWord", "123456")
.build(); .build();
// requestBody = new FormBody.Builder() // requestBody = new FormBody.Builder()
...@@ -83,7 +83,7 @@ public class LoginPresenter extends BasePresenter<LoginContract.Model, LoginCont ...@@ -83,7 +83,7 @@ public class LoginPresenter extends BasePresenter<LoginContract.Model, LoginCont
mModel.login(requestBody) mModel.login(requestBody)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading("")) .doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread()) .subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading()) .doAfterTerminate(() -> mRootView.hideLoading())
...@@ -114,7 +114,7 @@ public class LoginPresenter extends BasePresenter<LoginContract.Model, LoginCont ...@@ -114,7 +114,7 @@ public class LoginPresenter extends BasePresenter<LoginContract.Model, LoginCont
mModel.loginOut(requestBody) mModel.loginOut(requestBody)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading("")) .doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread()) .subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading()) .doAfterTerminate(() -> mRootView.hideLoading())
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment