Commit 83ec6e5f by 王宇航

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	public-base/src/main/java/com/gingersoft/gsa/cloud/base/application/GsaCloudApplication.java
#	public-database/src/main/java/com/gingersoft/gsa/cloud/database/bean/Food.java
#	public-database/src/main/java/com/gingersoft/gsa/cloud/database/greendao/FoodDao.java
#	public-ui/build.gradle
#	table-mode/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/MealStandPresenter.java
parents 0d07084b 150babe0
...@@ -9,24 +9,15 @@ project.dependencies.add('api', project(':cc')) //用最新版 ...@@ -9,24 +9,15 @@ project.dependencies.add('api', project(':cc')) //用最新版
//project.dependencies.add('api', "com.billy.android:cc:2.1.6") //用最新版 //project.dependencies.add('api', "com.billy.android:cc:2.1.6") //用最新版
dependencies { dependencies {
if (project.name != 'public-base' && project.name != 'arms' && project.name !='public-database') { if (project.name != 'public-base' && project.name != 'arms') {
implementation project(':public-base') implementation project(':public-base')
} }
if (project.name != 'public-database' && project.name != 'arms' && project.name != 'public-network') {
implementation project(':public-database')
}
if (project.name != 'public-network' && project.name != 'arms' && project.name != 'public-base' && project.name != 'public-database') {
implementation project(':public-network')
}
if (project.name != 'arms') { if (project.name != 'arms') {
implementation project(':arms') implementation project(':arms')
} }
// //
if (project.name != 'public-database' && project.name != 'public-network' && project.name != 'arms') { if (project.name != 'arms') {
implementation rootProject.ext.dependencies["qmui"] implementation rootProject.ext.dependencies["qmui"]
if (project.name != 'public-ui' && project.name != 'public-base') {
implementation project(':public-ui')
}
} }
implementation rootProject.ext.dependencies["retrofit-url-manager"] implementation rootProject.ext.dependencies["retrofit-url-manager"]
annotationProcessor rootProject.ext.dependencies["butterknife-compiler"] annotationProcessor rootProject.ext.dependencies["butterknife-compiler"]
...@@ -34,6 +25,8 @@ dependencies { ...@@ -34,6 +25,8 @@ dependencies {
implementation rootProject.ext.dependencies["multidex"] implementation rootProject.ext.dependencies["multidex"]
implementation rootProject.ext.dependencies["constraintlayout"] implementation rootProject.ext.dependencies["constraintlayout"]
implementation 'org.jetbrains:annotations:15.0' implementation 'org.jetbrains:annotations:15.0'
//日誌管理
implementation 'com.elvishew:xlog:1.6.1'
} }
......
...@@ -26,14 +26,20 @@ android { ...@@ -26,14 +26,20 @@ android {
resourcePrefix "download_data" resourcePrefix "download_data"
buildTypes { buildTypes {
release { debug {
postprocessing { buildConfigField "boolean", "LOG_DEBUG", "true"
removeUnusedCode false buildConfigField "boolean", "USE_CANARY", "true"
removeUnusedResources false minifyEnabled false
obfuscate false
optimizeCode false
proguardFiles 'proguard.cfg' proguardFiles 'proguard.cfg'
} }
release {
buildConfigField "boolean", "LOG_DEBUG", "false"
buildConfigField "boolean", "USE_CANARY", "false"
minifyEnabled false
shrinkResources false
zipAlignEnabled false
proguardFiles 'proguard.cfg'
} }
} }
......
[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"1.0","enabled":true,"outputFile":"2020-02-08_GsAndroid_1.0_ʽ_.apk","fullName":"release","baseName":"release"},"path":"2020-02-08_GsAndroid_1.0_ʽ_.apk","properties":{}}]
\ No newline at end of file
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<!-- arms配置 --> <!-- arms配置 -->
<meta-data <meta-data
android:name="network.config.GlobalConfiguration" android:name="com.gingersoft.gsa.cloud.globalconfig.GlobalConfiguration"
android:value="ConfigModule" /> android:value="ConfigModule" />
</application> </application>
</manifest> </manifest>
...@@ -2,9 +2,13 @@ package com.gingersoft.gsa.cloud.download.mvp.contract; ...@@ -2,9 +2,13 @@ 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.FunctionBean; import com.gingersoft.gsa.cloud.download.mvp.model.bean.ComboRespone;
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.ModifierRespone;
import com.jess.arms.base.DefaultAdapter; import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.mvp.IView; import com.jess.arms.mvp.IView;
import com.jess.arms.mvp.IModel; import com.jess.arms.mvp.IModel;
...@@ -44,8 +48,14 @@ public interface DownloadContract { ...@@ -44,8 +48,14 @@ public interface DownloadContract {
List<Food> queryDB_FoodList(Context context, int parentId); List<Food> queryDB_FoodList(Context context, int parentId);
Observable<FunctionBean> downFunctionList(); Observable<FunctionRespone> downFunctionList();
Observable<FoodBean> downFoodList(String restaurantId); Observable<FoodBean> downFoodList(int restaurantId);
Observable<ModifierRespone> downModifier(int restaurantId);
Observable<ComboRespone> downCombo(int restaurantId);
Observable<FoodModifierRespone> downFoodModifier(int restaurantId);
} }
} }
...@@ -3,10 +3,14 @@ package com.gingersoft.gsa.cloud.download.mvp.model; ...@@ -3,10 +3,14 @@ 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.FunctionBean; import com.gingersoft.gsa.cloud.download.mvp.model.bean.ComboRespone;
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.ModifierRespone;
import com.gingersoft.gsa.cloud.download.mvp.model.service.DownloadService; import com.gingersoft.gsa.cloud.download.mvp.model.service.DownloadService;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.jess.arms.integration.IRepositoryManager; import com.jess.arms.integration.IRepositoryManager;
...@@ -64,17 +68,34 @@ public class DownloadModel extends BaseModel implements DownloadContract.Model { ...@@ -64,17 +68,34 @@ public class DownloadModel extends BaseModel implements DownloadContract.Model {
} }
@Override @Override
public Observable<FunctionBean> downFunctionList() { public Observable<FunctionRespone> downFunctionList() {
return mRepositoryManager.obtainRetrofitService(DownloadService.class) return mRepositoryManager.obtainRetrofitService(DownloadService.class)
.downFunctionList(); .downFunctionList();
} }
@Override @Override
public Observable<FoodBean> downFoodList(String restaurantId) { public Observable<FoodBean> downFoodList(int restaurantId) {
return mRepositoryManager.obtainRetrofitService(DownloadService.class) return mRepositoryManager.obtainRetrofitService(DownloadService.class)
.downFoodList(restaurantId); .downFoodList(restaurantId);
} }
@Override
public Observable<ModifierRespone> downModifier(int restaurantId) {
return mRepositoryManager.obtainRetrofitService(DownloadService.class)
.downModifier(restaurantId);
}
@Override
public Observable<ComboRespone> downCombo(int restaurantId) {
return mRepositoryManager.obtainRetrofitService(DownloadService.class)
.downCombo(restaurantId);
}
@Override
public Observable<FoodModifierRespone> downFoodModifier(int restaurantId) {
return mRepositoryManager.obtainRetrofitService(DownloadService.class)
.downFoodModifier(restaurantId);
}
} }
\ No newline at end of file
package com.gingersoft.gsa.cloud.download.mvp.model.bean;
import com.gingersoft.gsa.cloud.database.bean.Combo;
import java.util.List;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-02-18
* 修订历史:2020-02-18
* 描述:
*/
public class ComboRespone {
private boolean success;
private String errMsg;
private long sysTime;
private List<Combo> 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<Combo> getData() {
return data;
}
public void setData(List<Combo> data) {
this.data = data;
}
}
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 java.util.List;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-02-18
* 修订历史:2020-02-18
* 描述:
*/
public class FoodModifierRespone {
private boolean success;
private String errMsg;
private long sysTime;
private List<FoodModifier> 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<FoodModifier> getData() {
return data;
}
public void setData(List<FoodModifier> data) {
this.data = data;
}
}
...@@ -11,7 +11,7 @@ import java.util.List; ...@@ -11,7 +11,7 @@ import java.util.List;
* 修订历史:2019-12-28 * 修订历史:2019-12-28
* 描述: * 描述:
*/ */
public class FunctionBean { public class FunctionRespone {
/** /**
......
package com.gingersoft.gsa.cloud.download.mvp.model.bean;
import com.gingersoft.gsa.cloud.database.bean.FoodModifier;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
import java.util.List;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-02-18
* 修订历史:2020-02-18
* 描述:
*/
public class ModifierRespone {
private boolean success;
private String errMsg;
private long sysTime;
private List<Modifier> 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<Modifier> getData() {
return data;
}
public void setData(List<Modifier> data) {
this.data = data;
}
}
package com.gingersoft.gsa.cloud.download.mvp.model.service; package com.gingersoft.gsa.cloud.download.mvp.model.service;
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.FunctionBean; import com.gingersoft.gsa.cloud.download.mvp.model.bean.ComboRespone;
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.ModifierRespone;
import io.reactivex.Observable; import io.reactivex.Observable;
import me.jessyan.retrofiturlmanager.RetrofitUrlManager; import me.jessyan.retrofiturlmanager.RetrofitUrlManager;
...@@ -14,8 +18,18 @@ import retrofit2.http.Query; ...@@ -14,8 +18,18 @@ import retrofit2.http.Query;
public interface DownloadService { public interface DownloadService {
@GET("user/resource/list" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2) @GET("user/resource/list" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<FunctionBean> downFunctionList(); Observable<FunctionRespone> downFunctionList();
@GET(Api.food_list + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<FoodBean> downFoodList(@Query("restaurantId") int restaurantId);
@GET(Api.modifier + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<ModifierRespone> downModifier(@Query("restaurantId") int restaurantId);
@GET(Api.food_package_relation + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<ComboRespone> downCombo(@Query("restaurantId") int restaurantId);
@GET(Api.food_modifiere_relation + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<FoodModifierRespone> downFoodModifier(@Query("restaurantId") int restaurantId);
@GET("food/list" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<FoodBean> downFoodList(@Query("restaurantId") String restaurantId);
} }
...@@ -3,14 +3,21 @@ package com.gingersoft.gsa.cloud.download.mvp.presenter; ...@@ -3,14 +3,21 @@ package com.gingersoft.gsa.cloud.download.mvp.presenter;
import android.app.Application; import android.app.Application;
import com.billy.cc.core.component.CC; import com.billy.cc.core.component.CC;
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.base.utils.constans.HttpsConstans; 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.Modifier;
import com.gingersoft.gsa.cloud.database.utils.ComboDaoUtils;
import com.gingersoft.gsa.cloud.database.utils.FoodDaoUtils; import com.gingersoft.gsa.cloud.database.utils.FoodDaoUtils;
import com.gingersoft.gsa.cloud.database.utils.FoodModifierDaoUtils;
import com.gingersoft.gsa.cloud.database.utils.FunctionDaoUtils; import com.gingersoft.gsa.cloud.database.utils.FunctionDaoUtils;
import com.gingersoft.gsa.cloud.database.utils.ModifierDaoUtils;
import com.gingersoft.gsa.cloud.download.mvp.model.bean.ComboRespone;
import com.gingersoft.gsa.cloud.download.mvp.model.bean.DataDownLoadState; import com.gingersoft.gsa.cloud.download.mvp.model.bean.DataDownLoadState;
import com.gingersoft.gsa.cloud.download.mvp.model.bean.FunctionBean; 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.ModifierRespone;
import com.gingersoft.gsa.cloud.download.mvp.ui.activity.DownloadActivity; import com.gingersoft.gsa.cloud.download.mvp.ui.activity.DownloadActivity;
import com.gingersoft.gsa.cloud.download.mvp.ui.adapter.DataDownLoadAdapter; import com.gingersoft.gsa.cloud.download.mvp.ui.adapter.DataDownLoadAdapter;
import com.jess.arms.integration.AppManager; import com.jess.arms.integration.AppManager;
...@@ -62,13 +69,13 @@ public class DownloadPresenter extends BasePresenter<DownloadContract.Model, Dow ...@@ -62,13 +69,13 @@ public class DownloadPresenter extends BasePresenter<DownloadContract.Model, Dow
private DataDownLoadAdapter mAapter; private DataDownLoadAdapter mAapter;
private List<DataDownLoadState> mList = new ArrayList<>(); private List<DataDownLoadState> mList = new ArrayList<>();
private String[] downTitles = {"功能列表", "食品列表", "食品細項", "套餐", "食品細項關係"};
private String serverAddress;
private int downLoadCount = 0; //下载数据计数 private int downLoadCount = 0; //下载数据计数
private boolean downLoadState = false; private boolean downLoadState = false;
private String urlList[] = {HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL2 + Api.download_function_list, Api.download_food_list}; private List<Food> foodList;
// private String urlList[] = {HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL2 + Api.download_function_list, Api.download_food_list};
@Inject @Inject
public DownloadPresenter(DownloadContract.Model model, DownloadContract.View rootView) { public DownloadPresenter(DownloadContract.Model model, DownloadContract.View rootView) {
...@@ -100,13 +107,16 @@ public class DownloadPresenter extends BasePresenter<DownloadContract.Model, Dow ...@@ -100,13 +107,16 @@ public class DownloadPresenter extends BasePresenter<DownloadContract.Model, Dow
//初始化下载记录标志 //初始化下载记录标志
downLoadCount = 0; downLoadCount = 0;
downLoadState = false; downLoadState = false;
down_load_data(urlList); down_load_data();
} }
public void down_load_data(String[] url) { public void down_load_data() {
String restaurantId = "26"; int restaurantId = 26;
Observable.mergeArray(mModel.downFunctionList(), mModel.downFoodList(restaurantId)) // int restaurantId = GsaCloudApplication.getRestaurantId(IActivity);
Observable.mergeArray(mModel.downFunctionList(), mModel.downFoodList(restaurantId)
, mModel.downModifier(restaurantId), mModel.downCombo(restaurantId),
mModel.downFoodModifier(restaurantId))
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.subscribeOn(AndroidSchedulers.mainThread()) .subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
...@@ -147,8 +157,8 @@ public class DownloadPresenter extends BasePresenter<DownloadContract.Model, Dow ...@@ -147,8 +157,8 @@ public class DownloadPresenter extends BasePresenter<DownloadContract.Model, Dow
@Override @Override
public void onNext(Object o) { public void onNext(Object o) {
if (o instanceof FunctionBean) { if (o instanceof FunctionRespone) {
FunctionBean functionBean = (FunctionBean) o; FunctionRespone functionBean = (FunctionRespone) o;
if (functionBean != null) { if (functionBean != null) {
FunctionDaoUtils functionDao = new FunctionDaoUtils(IActivity); FunctionDaoUtils functionDao = new FunctionDaoUtils(IActivity);
...@@ -169,9 +179,7 @@ public class DownloadPresenter extends BasePresenter<DownloadContract.Model, Dow ...@@ -169,9 +179,7 @@ public class DownloadPresenter extends BasePresenter<DownloadContract.Model, Dow
} }
} else if (o instanceof FoodBean) { } else if (o instanceof FoodBean) {
FoodBean foodBean = (FoodBean) o; FoodBean foodBean = (FoodBean) o;
if (foodBean != null) { if (foodBean != null) {
FoodDaoUtils foodDao = new FoodDaoUtils(IActivity); FoodDaoUtils foodDao = new FoodDaoUtils(IActivity);
foodDao.deleteAll(); foodDao.deleteAll();
...@@ -180,21 +188,64 @@ public class DownloadPresenter extends BasePresenter<DownloadContract.Model, Dow ...@@ -180,21 +188,64 @@ public class DownloadPresenter extends BasePresenter<DownloadContract.Model, Dow
} }
} }
FoodDaoUtils foodDao = new FoodDaoUtils(IActivity);
List<Food> foodList = foodDao.queryAllFood();
downLoadCount++; downLoadCount++;
mRootView.getRecycleDownload().smoothScrollToPosition(1); mRootView.getRecycleDownload().smoothScrollToPosition(1);
mList.get(1).setState(2); mList.get(1).setState(2);
if (DeviceUtils.netIsConnected(mApplication)) {
mList.get(2).setState(1);
} else {
mRootView.showMessage("Can not connect server, retry?");
}
} else if (o instanceof ModifierRespone) {
ModifierRespone modifier = (ModifierRespone) o;
if (modifier != null) {
ModifierDaoUtils modifierDao = new ModifierDaoUtils(IActivity);
modifierDao.deleteAll();
if (modifier.isSuccess() && modifier.getData() != null) {
modifierDao.insertMultModifier(modifier.getData());
}
}
downLoadState = true; downLoadCount++;
mRootView.getRecycleDownload().smoothScrollToPosition(1);
mList.get(2).setState(2);
if (DeviceUtils.netIsConnected(mApplication)) {
mList.get(3).setState(1);
} else {
mRootView.showMessage("Can not connect server, retry?");
}
// if (DeviceUtils.netIsConnected(mApplication)) { } else if (o instanceof ComboRespone) {
// mList.get(2).setState(1); ComboRespone combo = (ComboRespone) o;
// } else { if (combo != null) {
// mRootView.showMessage("Can not connect server, retry?"); ComboDaoUtils comboDao = new ComboDaoUtils(IActivity);
// } comboDao.deleteAll();
if (combo.isSuccess() && combo.getData() != null) {
comboDao.insertMultCombo(combo.getData());
}
}
downLoadCount++;
mRootView.getRecycleDownload().smoothScrollToPosition(1);
mList.get(3).setState(2);
if (DeviceUtils.netIsConnected(mApplication)) {
mList.get(4).setState(1);
} else {
mRootView.showMessage("Can not connect server, retry?");
}
} else if (o instanceof FoodModifierRespone) {
FoodModifierRespone foodModifier = (FoodModifierRespone) o;
if (foodModifier != null) {
FoodModifierDaoUtils foodModifierDao = new FoodModifierDaoUtils(IActivity);
foodModifierDao.deleteAll();
if (foodModifier.isSuccess() && foodModifier.getData() != null) {
foodModifierDao.insertMultFoodModifier(foodModifier.getData());
}
}
downLoadCount++;
mRootView.getRecycleDownload().smoothScrollToPosition(1);
downLoadState = true;
} }
mAapter.notifyDataSetChanged(); mAapter.notifyDataSetChanged();
...@@ -221,19 +272,12 @@ public class DownloadPresenter extends BasePresenter<DownloadContract.Model, Dow ...@@ -221,19 +272,12 @@ public class DownloadPresenter extends BasePresenter<DownloadContract.Model, Dow
} }
public void initDataDownItem() { public void initDataDownItem() {
for (int i = 0; i < downTitles.length; i++) {
//1
DataDownLoadState downLoadState1 = new DataDownLoadState(); DataDownLoadState downLoadState1 = new DataDownLoadState();
downLoadState1.setState(0); downLoadState1.setState(0);
downLoadState1.setText("功能列表"); downLoadState1.setText(downTitles[i]);
mList.add(downLoadState1); mList.add(downLoadState1);
//2
DataDownLoadState downLoadState2 = new DataDownLoadState();
downLoadState2.setState(0);
downLoadState2.setText("食品列表");
mList.add(downLoadState2);
} }
}
} }
...@@ -6,7 +6,7 @@ import android.view.View; ...@@ -6,7 +6,7 @@ import android.view.View;
import com.gingersoft.gsa.cloud.download.R; import com.gingersoft.gsa.cloud.download.R;
import com.gingersoft.gsa.cloud.download.R2; import com.gingersoft.gsa.cloud.download.R2;
import com.gingersoft.gsa.cloud.download.di.component.DaggerDownloadComponent; import com.gingersoft.gsa.cloud.download.di.component.DaggerDownloadComponent;
import com.gingersoft.gsa.cloud.ui.dialog.LoadingDialog; import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog;
import com.jess.arms.base.BaseActivity; 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;
...@@ -15,11 +15,8 @@ import com.gingersoft.gsa.cloud.download.mvp.contract.DownloadContract; ...@@ -15,11 +15,8 @@ import com.gingersoft.gsa.cloud.download.mvp.contract.DownloadContract;
import com.gingersoft.gsa.cloud.download.mvp.presenter.DownloadPresenter; import com.gingersoft.gsa.cloud.download.mvp.presenter.DownloadPresenter;
import com.qmuiteam.qmui.widget.QMUITopBar; import com.qmuiteam.qmui.widget.QMUITopBar;
import org.simple.eventbus.EventBus;
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;
......
...@@ -26,31 +26,31 @@ android { ...@@ -26,31 +26,31 @@ android {
resourcePrefix "main" resourcePrefix "main"
buildTypes { buildTypes {
release { debug {
postprocessing { buildConfigField "boolean", "LOG_DEBUG", "true"
removeUnusedCode false buildConfigField "boolean", "USE_CANARY", "true"
removeUnusedResources false minifyEnabled false
obfuscate false
optimizeCode false
proguardFiles 'proguard.cfg' proguardFiles 'proguard.cfg'
} }
release {
buildConfigField "boolean", "LOG_DEBUG", "false"
buildConfigField "boolean", "USE_CANARY", "false"
minifyEnabled false
shrinkResources false
zipAlignEnabled false
proguardFiles 'proguard.cfg'
} }
} }
} }
dependencies { dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar']) implementation fileTree(dir: 'libs', include: ['*.jar'])
// if (project.ext.runAsApp) {
annotationProcessor rootProject.ext.dependencies["dagger2-compiler"] annotationProcessor rootProject.ext.dependencies["dagger2-compiler"]
debugImplementation rootProject.ext.dependencies["canary-debug"] debugImplementation rootProject.ext.dependencies["canary-debug"]
releaseImplementation rootProject.ext.dependencies["canary-release"] releaseImplementation rootProject.ext.dependencies["canary-release"]
testImplementation rootProject.ext.dependencies["canary-release"] testImplementation rootProject.ext.dependencies["canary-release"]
// }else {
// compileOnly rootProject.ext.dependencies["dagger2-compiler"]
// compileOnly rootProject.ext.dependencies["canary-debug"]
// compileOnly rootProject.ext.dependencies["canary-release"]
// compileOnly rootProject.ext.dependencies["canary-release"]
// }
testImplementation rootProject.ext.dependencies["junit"] testImplementation rootProject.ext.dependencies["junit"]
implementation rootProject.ext.dependencies["BaseRecyclerViewAdapter"] implementation rootProject.ext.dependencies["BaseRecyclerViewAdapter"]
implementation 'com.github.Liberuman:ShadowDrawable:0.1'//陰影背景 implementation 'com.github.Liberuman:ShadowDrawable:0.1'//陰影背景
......
...@@ -7,8 +7,8 @@ import android.widget.TextView; ...@@ -7,8 +7,8 @@ import android.widget.TextView;
import com.gingersoft.gsa.cloud.main.R; import com.gingersoft.gsa.cloud.main.R;
import com.gingersoft.gsa.cloud.main.R2; import com.gingersoft.gsa.cloud.main.R2;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.SectionHeader; import com.gingersoft.gsa.cloud.ui.bean.view.SectionHeader;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.SectionItem; import com.gingersoft.gsa.cloud.ui.bean.view.SectionNormalItem;
import com.gingersoft.gsa.cloud.main.mvp.ui.view.HomeFunctionHead; import com.gingersoft.gsa.cloud.main.mvp.ui.view.HomeFunctionHead;
import com.qmuiteam.qmui.widget.section.QMUIDefaultStickySectionAdapter; import com.qmuiteam.qmui.widget.section.QMUIDefaultStickySectionAdapter;
import com.qmuiteam.qmui.widget.section.QMUISection; import com.qmuiteam.qmui.widget.section.QMUISection;
...@@ -21,7 +21,7 @@ import butterknife.ButterKnife; ...@@ -21,7 +21,7 @@ import butterknife.ButterKnife;
/** /**
* Created by Wyh on 2020/1/10. * Created by Wyh on 2020/1/10.
*/ */
public class HomeFunctionAdapter extends QMUIDefaultStickySectionAdapter<SectionHeader, SectionItem> { public class HomeFunctionAdapter extends QMUIDefaultStickySectionAdapter<SectionHeader, SectionNormalItem> {
@NonNull @NonNull
@Override @Override
...@@ -36,14 +36,14 @@ public class HomeFunctionAdapter extends QMUIDefaultStickySectionAdapter<Section ...@@ -36,14 +36,14 @@ public class HomeFunctionAdapter extends QMUIDefaultStickySectionAdapter<Section
} }
@Override @Override
protected void onBindSectionHeader(QMUIStickySectionAdapter.ViewHolder holder, int position, QMUISection<SectionHeader, SectionItem> section) { protected void onBindSectionHeader(QMUIStickySectionAdapter.ViewHolder holder, int position, QMUISection<SectionHeader, SectionNormalItem> section) {
super.onBindSectionHeader(holder, position, section); super.onBindSectionHeader(holder, position, section);
HomeFunctionHead itemView = (HomeFunctionHead) holder.itemView; HomeFunctionHead itemView = (HomeFunctionHead) holder.itemView;
itemView.render(section.getHeader(), section.isFold()); itemView.render(section.getHeader(), section.isFold());
} }
@Override @Override
protected void onBindSectionItem(QMUIStickySectionAdapter.ViewHolder holder, int position, QMUISection<SectionHeader, SectionItem> section, int itemIndex) { protected void onBindSectionItem(QMUIStickySectionAdapter.ViewHolder holder, int position, QMUISection<SectionHeader, SectionNormalItem> section, int itemIndex) {
super.onBindSectionItem(holder, position, section, itemIndex); super.onBindSectionItem(holder, position, section, itemIndex);
ViewHolder viewHolder = (ViewHolder) holder; ViewHolder viewHolder = (ViewHolder) holder;
viewHolder.ivFun.setImageResource(section.getItemAt(itemIndex).getImage()); viewHolder.ivFun.setImageResource(section.getItemAt(itemIndex).getImage());
......
package com.gingersoft.gsa.cloud.main.mvp.ui.fragment; package com.gingersoft.gsa.cloud.main.mvp.ui.fragment;
import android.content.Intent; import android.content.Intent;
import android.media.Image;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log;
import android.util.SparseArray;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
...@@ -20,10 +17,11 @@ import com.gingersoft.gsa.cloud.main.R2; ...@@ -20,10 +17,11 @@ import com.gingersoft.gsa.cloud.main.R2;
import com.gingersoft.gsa.cloud.main.di.component.DaggerHomeComponent; import com.gingersoft.gsa.cloud.main.di.component.DaggerHomeComponent;
import com.gingersoft.gsa.cloud.main.mvp.contract.HomeContract; import com.gingersoft.gsa.cloud.main.mvp.contract.HomeContract;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.HomeTurnoverBean; import com.gingersoft.gsa.cloud.main.mvp.model.bean.HomeTurnoverBean;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.SectionHeader; import com.gingersoft.gsa.cloud.ui.bean.view.SectionHeader;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.SectionItem; import com.gingersoft.gsa.cloud.ui.bean.view.SectionNormalItem;
import com.gingersoft.gsa.cloud.main.mvp.presenter.HomePresenter; import com.gingersoft.gsa.cloud.main.mvp.presenter.HomePresenter;
import com.gingersoft.gsa.cloud.main.mvp.ui.adapter.HomeFunctionAdapter; import com.gingersoft.gsa.cloud.main.mvp.ui.adapter.HomeFunctionAdapter;
import com.gingersoft.gsa.cloud.ui.bean.view.SectionNormalItem;
import com.jess.arms.base.BaseFragment; import com.jess.arms.base.BaseFragment;
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;
...@@ -43,7 +41,6 @@ import androidx.annotation.Nullable; ...@@ -43,7 +41,6 @@ import androidx.annotation.Nullable;
import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView; import butterknife.BindView;
import dagger.Component;
import static com.jess.arms.utils.Preconditions.checkNotNull; import static com.jess.arms.utils.Preconditions.checkNotNull;
...@@ -85,7 +82,7 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements HomeCon ...@@ -85,7 +82,7 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements HomeCon
private String[] title = new String[]{"點餐", "管理", "員工"}; private String[] title = new String[]{"點餐", "管理", "員工"};
private Map<String, String[]> function = new HashMap<>(); private Map<String, String[]> function = new HashMap<>();
private ArrayList<QMUISection<SectionHeader, SectionItem>> list; private ArrayList<QMUISection<SectionHeader, SectionNormalItem>> list;
public static HomeFragment newInstance() { public static HomeFragment newInstance() {
HomeFragment fragment = new HomeFragment(); HomeFragment fragment = new HomeFragment();
...@@ -140,9 +137,9 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements HomeCon ...@@ -140,9 +137,9 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements HomeCon
mLayoutManager = createLayoutManager(); mLayoutManager = createLayoutManager();
mSectionLayout.setLayoutManager(mLayoutManager); mSectionLayout.setLayoutManager(mLayoutManager);
mAdapter = new HomeFunctionAdapter(); mAdapter = new HomeFunctionAdapter();
mAdapter.setCallback(new QMUIStickySectionAdapter.Callback<SectionHeader, SectionItem>() { mAdapter.setCallback(new QMUIStickySectionAdapter.Callback<SectionHeader, SectionNormalItem>() {
@Override @Override
public void loadMore(QMUISection<SectionHeader, SectionItem> section, boolean loadMoreBefore) { public void loadMore(QMUISection<SectionHeader, SectionNormalItem> section, boolean loadMoreBefore) {
} }
...@@ -189,13 +186,13 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements HomeCon ...@@ -189,13 +186,13 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements HomeCon
mAdapter.setData(list); mAdapter.setData(list);
} }
private QMUISection<SectionHeader, SectionItem> createSection(String title) { private QMUISection<SectionHeader, SectionNormalItem> createSection(String title) {
SectionHeader header = new SectionHeader(title); SectionHeader header = new SectionHeader(title);
ArrayList<SectionItem> contents = new ArrayList<>(); ArrayList<SectionNormalItem> contents = new ArrayList<>();
for (int i = 0; i < Objects.requireNonNull(function.get(title)).length; i++) { for (int i = 0; i < Objects.requireNonNull(function.get(title)).length; i++) {
contents.add(new SectionItem(R.drawable.ic_dining_table, Objects.requireNonNull(function.get(title))[i])); contents.add(new SectionNormalItem(R.drawable.ic_dining_table, Objects.requireNonNull(function.get(title))[i]));
} }
// QMUISection<SectionHeader, SectionItem> section = new QMUISection<>(header, contents, false); // QMUISection<SectionHeader, SectionNormalItem> section = new QMUISection<>(header, contents, false);
// if test load more, you can open the code // if test load more, you can open the code
// section.setExistAfterDataToLoad(true); // section.setExistAfterDataToLoad(true);
// section.setExistBeforeDataToLoad(true); // section.setExistBeforeDataToLoad(true);
......
...@@ -10,7 +10,7 @@ import android.widget.LinearLayout; ...@@ -10,7 +10,7 @@ import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import com.gingersoft.gsa.cloud.main.R; import com.gingersoft.gsa.cloud.main.R;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.SectionHeader; import com.gingersoft.gsa.cloud.ui.bean.view.SectionHeader;
import com.qmuiteam.qmui.util.QMUIDisplayHelper; import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
......
...@@ -22,14 +22,18 @@ android { ...@@ -22,14 +22,18 @@ android {
resourcePrefix "print" resourcePrefix "print"
buildTypes { buildTypes {
release { debug {
postprocessing { buildConfigField "boolean", "LOG_DEBUG", "true"
removeUnusedCode false buildConfigField "boolean", "USE_CANARY", "true"
removeUnusedResources false minifyEnabled false
obfuscate false
optimizeCode false
proguardFiles 'proguard.cfg' proguardFiles 'proguard.cfg'
} }
release {
buildConfigField "boolean", "LOG_DEBUG", "false"
buildConfigField "boolean", "USE_CANARY", "false"
minifyEnabled false
zipAlignEnabled false
proguardFiles 'proguard.cfg'
} }
} }
} }
......
...@@ -3,7 +3,7 @@ package com.joe.print.mvp.print; ...@@ -3,7 +3,7 @@ package com.joe.print.mvp.print;
import android.content.Context; import android.content.Context;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.ui.dialog.LoadingDialog; import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog;
import am.util.printer.PrintExecutor; import am.util.printer.PrintExecutor;
import am.util.printer.PrintSocketHolder; import am.util.printer.PrintSocketHolder;
......
...@@ -6,10 +6,11 @@ import android.view.View; ...@@ -6,10 +6,11 @@ import android.view.View;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.common.bean.BillingBean; import com.gingersoft.gsa.cloud.base.common.bean.BillingBean;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean; import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
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.OpenTableContract; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil; import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils; import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.database.bean.Food; import com.gingersoft.gsa.cloud.database.bean.Food;
...@@ -120,11 +121,11 @@ public class SendPrint implements PrintDataMaker { ...@@ -120,11 +121,11 @@ public class SendPrint implements PrintDataMaker {
checkOutTime = view.findViewById(R.id.tv_checkout_time); checkOutTime = view.findViewById(R.id.tv_checkout_time);
line_food_info = view.findViewById(R.id.line_food_info); line_food_info = view.findViewById(R.id.line_food_info);
} }
List<Food> foodList = MyOrderManage.getInstance().getOrderFoodList(); List<OrderDetail> foodList = MyOrderManage.getInstance().getOrderFoodList();
TableBean.DataBean tableBean = OpenTableContract.getDefault().getTableBean(); TableBean.DataBean tableBean = OpenTableManage.getDefault().getTableBean();
tableNum.setText(tableBean.getTableName()); tableNum.setText(tableBean.getTableName());
people.setText(tableBean.getPeopleNumber() + ""); people.setText(OpenTableManage.getDefault().getPeopleNumber() + "");
orderData.setText(tableBean.getCreateTime()); orderData.setText(tableBean.getCreateTime());
checkOutTime.setText(TimeUtils.getCurrentTimeInString(TimeUtils.DEFAULT_DATE_FORMAT)); checkOutTime.setText(TimeUtils.getCurrentTimeInString(TimeUtils.DEFAULT_DATE_FORMAT));
...@@ -144,17 +145,17 @@ public class SendPrint implements PrintDataMaker { ...@@ -144,17 +145,17 @@ public class SendPrint implements PrintDataMaker {
rvBillAmount.setLayoutManager(new LinearLayoutManager(context)); rvBillAmount.setLayoutManager(new LinearLayoutManager(context));
rvBillAmount.setAdapter(billAdapter); rvBillAmount.setAdapter(billAdapter);
} }
if(OpenTableContract.getDefault().getTableBean() != null) { if(OpenTableManage.getDefault().getTableBean() != null) {
tableNum.setText(OpenTableContract.getDefault().getTableBean().getTableName()); tableNum.setText(OpenTableManage.getDefault().getTableBean().getTableName());
people.setText(OpenTableContract.getDefault().getTableBean().getPeopleNumber() + ""); people.setText(OpenTableManage.getDefault().getPeopleNumber() + "");
} }
if(MyOrderManage.getInstance().getOrderId() != -1){ if(MyOrderManage.getInstance().getOrderId() != -1){
orderNum.setText(MyOrderManage.getInstance().getOrderId() + ""); orderNum.setText(MyOrderManage.getInstance().getOrderId() + "");
} }
BigDecimal totalAmount = new BigDecimal(0); BigDecimal totalAmount = new BigDecimal(0);
for (Food food : MyOrderManage.getInstance().getOrderFoodList()) { for (OrderDetail food : MyOrderManage.getInstance().getOrderFoodList()) {
totalAmount = MoneyUtil.sum(totalAmount, MoneyUtil.priceCalculation(food.getPrice(), food.getNumber())); totalAmount = MoneyUtil.sum(totalAmount, MoneyUtil.priceCalculation(food.getUnit_price(), food.getNumber()));
} }
//總金額 //總金額
mTvTotalAmount.setText(totalAmount +""); mTvTotalAmount.setText(totalAmount +"");
......
...@@ -6,16 +6,13 @@ import android.content.Context; ...@@ -6,16 +6,13 @@ import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.view.WindowManager; import android.view.WindowManager;
import com.billy.cc.core.component.CC; import com.billy.cc.core.component.CC;
import com.billy.cc.core.component.CCResult; import com.billy.cc.core.component.CCResult;
import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils; import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils;
import com.gingersoft.gsa.cloud.database.DaoManager; import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog;
import com.gingersoft.gsa.cloud.database.greendao.PrinterDeviceBeanDao;
import com.gingersoft.gsa.cloud.ui.dialog.LoadingDialog;
import com.joe.print.mvp.print.SendPrint; import com.joe.print.mvp.print.SendPrint;
import am.util.printer.PrintExecutor; import am.util.printer.PrintExecutor;
...@@ -24,8 +21,6 @@ import am.util.printer.PrinterWriter58mm; ...@@ -24,8 +21,6 @@ import am.util.printer.PrinterWriter58mm;
import am.util.printer.PrinterWriter80mm; import am.util.printer.PrinterWriter80mm;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import static com.gingersoft.gsa.cloud.database.DaoManager.getInstance;
/** /**
* Created by Wyh on 2020/1/7. * Created by Wyh on 2020/1/7.
*/ */
......
...@@ -15,6 +15,7 @@ import com.billy.cc.core.component.CC; ...@@ -15,6 +15,7 @@ import com.billy.cc.core.component.CC;
import com.billy.cc.core.component.CCResult; import com.billy.cc.core.component.CCResult;
import com.billy.cc.core.component.CCUtil; import com.billy.cc.core.component.CCUtil;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.common.bean.PrinterManger.PrinterManager; import com.gingersoft.gsa.cloud.base.common.bean.PrinterManger.PrinterManager;
import com.gingersoft.gsa.cloud.base.utils.PrintUtils; import com.gingersoft.gsa.cloud.base.utils.PrintUtils;
import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils; import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils;
...@@ -106,7 +107,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -106,7 +107,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
type = CCUtil.getNavigateParam(this, "type", 1001); type = CCUtil.getNavigateParam(this, "type", 1001);
if (type == 0) { if (type == 0) {
//上菜紙 //上菜紙
List<Food> foods = CCUtil.getNavigateParam(this, "NewFoods", new ArrayList<>()); List<OrderDetail> foods = CCUtil.getNavigateParam(this, "NewFoods", new ArrayList<>());
bitmap = PrintUtils.getPrintBitmap(mContext, foods); bitmap = PrintUtils.getPrintBitmap(mContext, foods);
} else if (type == 1) { } else if (type == 1) {
//印單 //印單
...@@ -126,6 +127,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -126,6 +127,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
selectDialog = new DialogUtils(mContext, R.layout.print_dialog_select_device) { selectDialog = new DialogUtils(mContext, R.layout.print_dialog_select_device) {
@Override @Override
public void initLayout(ViewHepler hepler, Dialog dialog) { public void initLayout(ViewHepler hepler, Dialog dialog) {
dialogCount++; dialogCount++;
......
...@@ -107,7 +107,7 @@ public class PrinterAddActivity extends BaseActivity<PrinterAddPresenter> implem ...@@ -107,7 +107,7 @@ public class PrinterAddActivity extends BaseActivity<PrinterAddPresenter> implem
} }
topBar.setTitle(title); topBar.setTitle(title);
topBar.setBackgroundColor(getResources().getColor(R.color.theme_color)); topBar.setBackgroundColor(getResources().getColor(R.color.theme_color));
topBar.addLeftImageButton(R.drawable.icon_white_back, R.id.iv_left_back).setOnClickListener(v -> finish()); topBar.addLeftImageButton(R.drawable.icon_return, R.id.iv_left_back).setOnClickListener(v -> finish());
topBar.addRightTextButton("保存", R.id.printer_add).setOnClickListener(this); topBar.addRightTextButton("保存", R.id.printer_add).setOnClickListener(this);
} }
......
...@@ -133,7 +133,7 @@ public class PrinterListActivity extends BaseActivity<PrintListPresenter> implem ...@@ -133,7 +133,7 @@ public class PrinterListActivity extends BaseActivity<PrintListPresenter> implem
public void initTopBar() { public void initTopBar() {
topBar.setTitle("打印設置"); topBar.setTitle("打印設置");
topBar.setBackgroundColor(getResources().getColor(R.color.theme_color)); topBar.setBackgroundColor(getResources().getColor(R.color.theme_color));
topBar.addLeftImageButton(R.drawable.icon_white_back, R.id.iv_left_back).setOnClickListener(v -> finish()); topBar.addLeftImageButton(R.drawable.icon_return, R.id.iv_left_back).setOnClickListener(v -> finish());
topBar.addRightImageButton(R.drawable.ic_add, R.id.printer_add).setOnClickListener(v -> startActivity(new Intent(mContext, PrinterAddActivity.class))); topBar.addRightImageButton(R.drawable.ic_add, R.id.printer_add).setOnClickListener(v -> startActivity(new Intent(mContext, PrinterAddActivity.class)));
} }
......
ext.alwaysLib = true //虽然apply了cc-settings-2.gradle,但一直作为library编译,否则别的组件依赖此module时会报错 ext.alwaysLib = true //虽然apply了cc-settings-2.gradle,但一直作为library编译,否则别的组件依赖此module时会报错
apply from: rootProject.file("cc-settings.gradle") apply from: rootProject.file("cc-settings.gradle")
apply plugin: 'com.jakewharton.butterknife'
apply plugin: 'org.greenrobot.greendao'
android { android {
compileSdkVersion rootProject.ext.android["compileSdkVersion"] compileSdkVersion rootProject.ext.android["compileSdkVersion"]
...@@ -19,29 +20,65 @@ android { ...@@ -19,29 +20,65 @@ android {
sourceCompatibility JavaVersion.VERSION_1_8 sourceCompatibility JavaVersion.VERSION_1_8
} }
resourcePrefix "base" // resourcePrefix "base"
buildTypes { buildTypes {
debug {
buildConfigField "boolean", "LOG_DEBUG", "true"
buildConfigField "boolean", "USE_CANARY", "true"
minifyEnabled false
proguardFiles 'proguard.cfg'
}
release { release {
buildConfigField "boolean", "LOG_DEBUG", "false"
buildConfigField "boolean", "USE_CANARY", "false"
minifyEnabled false minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' zipAlignEnabled false
proguardFiles 'proguard.cfg'
} }
} }
greendao {
/**
* 版本号
*/
schemaVersion 13
/**
* greendao输出dao的数据库操作实体类文件夹(相对路径 包名+自定义路径名称,包将创建于包名的直接路径下)
*/
daoPackage 'com.gingersoft.gsa.cloud.database.greendao'
/**
* greenDao实体类包文件夹
*/
targetGenDir 'src/main/java'
generateTests false //设置为true以自动生成单元测试。
}
} }
dependencies { dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs') implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation files('libs/javabase64-1.2.jar') implementation files('libs/javabase64-1.2.jar')
implementation files('libs/sun.misc.BASE64Decoder.jar') implementation files('libs/sun.misc.BASE64Decoder.jar')
// test
testImplementation rootProject.ext.dependencies["junit"]
debugImplementation rootProject.ext.dependencies["canary-debug"]
releaseImplementation rootProject.ext.dependencies["canary-release"]
testImplementation rootProject.ext.dependencies["canary-release"]
annotationProcessor rootProject.ext.dependencies["dagger2-compiler"]
// implementation 'androidx.appcompat:appcompat:1.1.0' // implementation 'androidx.appcompat:appcompat:1.1.0'
testImplementation 'junit:junit:4.12' testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.2.0' androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation rootProject.ext.dependencies["fastjson"] implementation rootProject.ext.dependencies["fastjson"]
//日誌管理
implementation 'com.elvishew:xlog:1.6.1'
implementation rootProject.ext.dependencies["zxing"] implementation rootProject.ext.dependencies["zxing"]
implementation rootProject.ext.dependencies["progressmanager"]
// 數據庫
implementation 'org.greenrobot:greendao:3.2.2'
implementation 'org.greenrobot:greendao-generator:3.2.2'
implementation rootProject.ext.dependencies["BaseRecyclerViewAdapter"] implementation rootProject.ext.dependencies["BaseRecyclerViewAdapter"]
implementation files('libs/ecracalib.jar') implementation files('libs/ecracalib.jar')
implementation files('libs/nexgon5lib.jar')
} }
...@@ -12,7 +12,15 @@ public interface Api { ...@@ -12,7 +12,15 @@ public interface Api {
String login = "gsa/login"; String login = "gsa/login";
String logout = "gsa/logout"; String logout = "gsa/logout";
//功能列表
String download_function_list = "user/resource/list"; String download_function_list = "user/resource/list";
String download_food_list = "food/list"; //食品列表
String food_list = "food/list";
//細項
String modifier = "food/items";
//食品套餐關係
String food_package_relation = "food/package";
//食品細項關係
String food_modifiere_relation = "food/modifierDetail";
} }
...@@ -4,6 +4,7 @@ import com.chad.library.adapter.base.BaseQuickAdapter; ...@@ -4,6 +4,7 @@ import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder; import com.chad.library.adapter.base.BaseViewHolder;
import com.gingersoft.gsa.cloud.base.R; import com.gingersoft.gsa.cloud.base.R;
import com.gingersoft.gsa.cloud.base.common.bean.BillMethodBean; import com.gingersoft.gsa.cloud.base.common.bean.BillMethodBean;
import com.gingersoft.gsa.cloud.base.common.bean.PayMethod;
import com.gingersoft.gsa.cloud.database.bean.Food; import com.gingersoft.gsa.cloud.database.bean.Food;
import java.util.List; import java.util.List;
...@@ -14,15 +15,15 @@ import androidx.annotation.Nullable; ...@@ -14,15 +15,15 @@ import androidx.annotation.Nullable;
* Created by Wyh on 2020/1/9. * Created by Wyh on 2020/1/9.
* 結賬方式 * 結賬方式
*/ */
public class BillTypeAdapter extends BaseQuickAdapter<BillMethodBean, BaseViewHolder> { public class BillTypeAdapter extends BaseQuickAdapter<PayMethod, BaseViewHolder> {
public BillTypeAdapter(@Nullable List<BillMethodBean> data) { public BillTypeAdapter(@Nullable List<PayMethod> data) {
super(R.layout.base_print_item_bill_type, data); super(R.layout.base_print_item_bill_type, data);
} }
@Override @Override
protected void convert(BaseViewHolder helper, BillMethodBean 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.getName());
helper.setText(R.id.tv_total_amount, item.getMoney() + ""); helper.setText(R.id.tv_total_amount, item.getPayMoney() + "");
} }
} }
...@@ -3,24 +3,24 @@ package com.gingersoft.gsa.cloud.base.adapter.print; ...@@ -3,24 +3,24 @@ package com.gingersoft.gsa.cloud.base.adapter.print;
import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder; import com.chad.library.adapter.base.BaseViewHolder;
import com.gingersoft.gsa.cloud.base.R; import com.gingersoft.gsa.cloud.base.R;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
import com.gingersoft.gsa.cloud.database.bean.Food; import com.gingersoft.gsa.cloud.database.bean.Food;
import java.util.List; import java.util.List;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
/** /**
* Created by Wyh on 2020/1/9. * Created by Wyh on 2020/1/9.
*/ */
public class FoodAdapter extends BaseQuickAdapter<Food, BaseViewHolder> { public class FoodAdapter extends BaseQuickAdapter<OrderDetail, BaseViewHolder> {
public FoodAdapter(@Nullable List<Food> data) { public FoodAdapter(@Nullable List<OrderDetail> data) {
super(R.layout.print_item_food, data); super(R.layout.print_item_food, data);
} }
@Override @Override
protected void convert(BaseViewHolder helper, Food item) { protected void convert(BaseViewHolder helper, OrderDetail item) {
helper.setText(R.id.tv_food_name, item.getFoodName()); helper.setText(R.id.tv_food_name, item.getName());
helper.setText(R.id.tv_food_quantity, String.valueOf(item.getNumber())); helper.setText(R.id.tv_food_quantity, String.valueOf(item.getNumber()));
helper.setText(R.id.tv_food_price, "$" + item.getPrice()); helper.setText(R.id.tv_food_price, "$" + item.getAmount_price());
} }
} }
...@@ -20,7 +20,7 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -20,7 +20,7 @@ public class GsaCloudApplication extends BaseApplication {
private static Context mAppContext; private static Context mAppContext;
public static boolean isLogin = false; public static boolean isLogin = false;
public static CurrentAndroidSetting androidSetting;
public static String userName = ""; public static String userName = "";
@Override @Override
...@@ -34,7 +34,7 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -34,7 +34,7 @@ public class GsaCloudApplication extends BaseApplication {
initGreenDao(); initGreenDao();
AppCrashHandler.getInstance().init(this, "test"); AppCrashHandler.getInstance().init(this,"test");
} }
...@@ -57,6 +57,7 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -57,6 +57,7 @@ public class GsaCloudApplication extends BaseApplication {
} }
//获取登陆token //获取登陆token
public static String getLoginToken(Context context) { public static String getLoginToken(Context context) {
return (String) SPUtils.get(context, UserConstans.token, ""); return (String) SPUtils.get(context, UserConstans.token, "");
......
...@@ -126,6 +126,14 @@ public class OrderBean { ...@@ -126,6 +126,14 @@ public class OrderBean {
this.orderId = orderId; this.orderId = orderId;
} }
public OrderDetailsBean(String productName, String productId, double price, double lunchboxPrice, int number) {
this.productName = productName;
this.productId = productId;
this.price = price;
this.lunchboxPrice = lunchboxPrice;
this.number = number;
}
public int getId() { public int getId() {
return id; return id;
} }
...@@ -200,10 +208,20 @@ public class OrderBean { ...@@ -200,10 +208,20 @@ public class OrderBean {
} }
public static List<OrderDetailsBean> transOrderDetails(List<Food> foods) { // public static List<OrderDetailsBean> transOrderDetails(List<Food> foods) {
// List<OrderDetailsBean> orderDetailsBeans = new ArrayList<>();
// for (Food food : foods) {
// OrderDetailsBean orderDetailsBean = new OrderDetailsBean(food.getFoodName(), food.getParentId()+ "", food.getPrice(), food.getLunchboxPrice(), food.getNumber(), food.getOrderId());
// orderDetailsBeans.add(orderDetailsBean);
// }
// return orderDetailsBeans;
// }
public static List<OrderDetailsBean> transOrderDetails(List<OrderDetail> foods) {
List<OrderDetailsBean> orderDetailsBeans = new ArrayList<>(); List<OrderDetailsBean> orderDetailsBeans = new ArrayList<>();
for (Food food : foods) { for (OrderDetail food : foods) {
OrderDetailsBean orderDetailsBean = new OrderDetailsBean(food.getFoodName(), food.getParentId()+ "", food.getPrice(), food.getLunchboxPrice(), food.getNumber(), food.getOrderId()); // OrderDetailsBean orderDetailsBean = new OrderDetailsBean(food.getName(), food.getParentId()+ "", food.getAmount_price(), food.getLunchboxPrice(), food.getNumber(), food.getOrderId());
OrderDetailsBean orderDetailsBean = new OrderDetailsBean(food.getName(), food.getParentId()+ "", food.getAmount_price(), food.getLunchboxPrice(), food.getNumber());
orderDetailsBeans.add(orderDetailsBean); orderDetailsBeans.add(orderDetailsBean);
} }
return orderDetailsBeans; return orderDetailsBeans;
......
package com.gingersoft.gsa.cloud.base.common.bean;
import android.graphics.Color;
import java.util.List;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-02-15
* 修订历史:2020-02-15
* 描述:
*/
public class PayMethod {
private int id;
private String name;
private String NAME;
private String NAME2;
private String NAME3;
private String PAYWAY;
//*************自定義字段***************
private double payMoney = 0.0;
private double TipsPrice = 0.0;
private int payModeTextColor = android.graphics.Color.parseColor("#000000");
private int payMoneyTextColor = android.graphics.Color.parseColor("#000000");
private int payModeTextSelectColor = android.graphics.Color.parseColor("#000000");
private int payMoneyTextSelectColor = Color.parseColor("#000000");
private int payModeSize = 18;
private int payMoneySize = 18;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPayName() {
return name;
}
public String getPAYWAY() {
return PAYWAY;
}
public void setPAYWAY(String PAYWAY) {
this.PAYWAY = PAYWAY;
}
public double getPayMoney() {
return payMoney;
}
public void setPayMoney(double payMoney) {
this.payMoney = payMoney;
}
public double getTipsPrice() {
return TipsPrice;
}
public void setTipsPrice(double tipsPrice) {
TipsPrice = tipsPrice;
}
public int getPayModeTextColor() {
return payModeTextColor;
}
public void setPayModeTextColor(int payModeTextColor) {
this.payModeTextColor = payModeTextColor;
}
public int getPayMoneyTextColor() {
return payMoneyTextColor;
}
public void setPayMoneyTextColor(int payMoneyTextColor) {
this.payMoneyTextColor = payMoneyTextColor;
}
public int getPayModeTextSelectColor() {
return payModeTextSelectColor;
}
public void setPayModeTextSelectColor(int payModeTextSelectColor) {
this.payModeTextSelectColor = payModeTextSelectColor;
}
public int getPayMoneyTextSelectColor() {
return payMoneyTextSelectColor;
}
public void setPayMoneyTextSelectColor(int payMoneyTextSelectColor) {
this.payMoneyTextSelectColor = payMoneyTextSelectColor;
}
public int getPayModeSize() {
return payModeSize;
}
public void setPayModeSize(int payModeSize) {
this.payModeSize = payModeSize;
}
public int getPayMoneySize() {
return payMoneySize;
}
public void setPayMoneySize(int payMoneySize) {
this.payMoneySize = payMoneySize;
}
}
...@@ -82,7 +82,6 @@ public class TableBean { ...@@ -82,7 +82,6 @@ public class TableBean {
private int posTableId; private int posTableId;
private int serviceCharge; private int serviceCharge;
private int memberId; private int memberId;
/** /**
* 可使用 0 * 可使用 0
* 操作中 1 * 操作中 1
...@@ -92,19 +91,15 @@ public class TableBean { ...@@ -92,19 +91,15 @@ public class TableBean {
* 连台 6 * 连台 6
*/ */
private int status; private int status;
private int useStatus; private int useStatus;
//是否刷新數據
private boolean isRefresh = false;
//開台人數
private int peopleNumber;
public boolean isRefresh() {
return isRefresh; public int getUseStatus() {
return useStatus;
} }
public void setRefresh(boolean refresh) { public void setUseStatus(int useStatus) {
isRefresh = refresh; this.useStatus = useStatus;
} }
public int getId() { public int getId() {
...@@ -115,14 +110,6 @@ public class TableBean { ...@@ -115,14 +110,6 @@ public class TableBean {
this.id = id; this.id = id;
} }
public int getPeopleNumber() {
return peopleNumber;
}
public void setPeopleNumber(int peopleNumber) {
this.peopleNumber = peopleNumber;
}
public String getTableName() { public String getTableName() {
return tableName; return tableName;
} }
...@@ -211,12 +198,5 @@ public class TableBean { ...@@ -211,12 +198,5 @@ public class TableBean {
this.status = status; this.status = status;
} }
public int getUseStatus() {
return useStatus;
}
public void setUseStatus(int useStatus) {
this.useStatus = useStatus;
}
} }
} }
...@@ -10,21 +10,30 @@ import com.gingersoft.gsa.cloud.base.common.bean.TableBean; ...@@ -10,21 +10,30 @@ import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
* 修订历史:2020-01-09 * 修订历史:2020-01-09
* 描述:保存開台返回的訂單數據 * 描述:保存開台返回的訂單數據
*/ */
public class OpenTableContract { public class OpenTableManage {
private String TAG = getClass().getSimpleName(); private String TAG = getClass().getSimpleName();
private static OpenTableContract sDefaultOpenTableManage; private static OpenTableManage sDefaultOpenTableManage;
//記錄開台信息 //開台信息
private TableBean.DataBean tableBean; private TableBean.DataBean tableBean;
//記錄訂單信息 //使用狀態
private int useStatus;
//是否刷新數據
private boolean isRefresh = false;
//開台人數
private int peopleNumber;
//是否分檯
private boolean isSplite = false;
//分檯編號
private String splitNo;
//訂單ID //訂單ID
// private int orderId ; // private int orderId ;
public static OpenTableContract getDefault() { public static OpenTableManage getDefault() {
if (sDefaultOpenTableManage == null) { if (sDefaultOpenTableManage == null) {
sDefaultOpenTableManage = new OpenTableContract(); sDefaultOpenTableManage = new OpenTableManage();
} }
return sDefaultOpenTableManage; return sDefaultOpenTableManage;
} }
...@@ -37,7 +46,47 @@ public class OpenTableContract { ...@@ -37,7 +46,47 @@ public class OpenTableContract {
this.tableBean = tableBean; this.tableBean = tableBean;
} }
// public int getOrderId() { public int getUseStatus() {
return useStatus;
}
public void setUseStatus(int useStatus) {
this.useStatus = useStatus;
}
public boolean isRefresh() {
return isRefresh;
}
public void setRefresh(boolean refresh) {
isRefresh = refresh;
}
public int getPeopleNumber() {
return peopleNumber;
}
public void setPeopleNumber(int peopleNumber) {
this.peopleNumber = peopleNumber;
}
public boolean isSplite() {
return isSplite;
}
public void setSplite(boolean splite) {
isSplite = splite;
}
public String getSplitNo() {
return splitNo;
}
public void setSplitNo(String splitNo) {
this.splitNo = splitNo;
}
// public int getOrderId() {
// return orderId; // return orderId;
// } // }
// //
......
...@@ -5,7 +5,6 @@ import android.graphics.Bitmap; ...@@ -5,7 +5,6 @@ import android.graphics.Bitmap;
import android.view.View; import android.view.View;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.R; import com.gingersoft.gsa.cloud.base.R;
import com.gingersoft.gsa.cloud.base.adapter.print.BillAdapter; import com.gingersoft.gsa.cloud.base.adapter.print.BillAdapter;
import com.gingersoft.gsa.cloud.base.adapter.print.BillTypeAdapter; import com.gingersoft.gsa.cloud.base.adapter.print.BillTypeAdapter;
...@@ -13,20 +12,18 @@ import com.gingersoft.gsa.cloud.base.adapter.print.FoodAdapter; ...@@ -13,20 +12,18 @@ import com.gingersoft.gsa.cloud.base.adapter.print.FoodAdapter;
import com.gingersoft.gsa.cloud.base.adapter.print.KitChenPrintFoodAdapter; import com.gingersoft.gsa.cloud.base.adapter.print.KitChenPrintFoodAdapter;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BillingBean; import com.gingersoft.gsa.cloud.base.common.bean.BillingBean;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean; import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
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.OpenTableContract; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils; import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.base.utils.view.ImageUtils; import com.gingersoft.gsa.cloud.base.utils.view.ImageUtils;
import com.gingersoft.gsa.cloud.base.utils.view.LayoutToBitmapUtils; import com.gingersoft.gsa.cloud.base.utils.view.LayoutToBitmapUtils;
import com.gingersoft.gsa.cloud.database.bean.Food;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
...@@ -46,7 +43,7 @@ public class PrintUtils { ...@@ -46,7 +43,7 @@ public class PrintUtils {
* @param context * @param context
* @return * @return
*/ */
public static Bitmap getPrintBitmap(Context context, List<Food> foodList) { public static Bitmap getPrintBitmap(Context context, List<OrderDetail> foodList) {
View view = LinearLayout.inflate(context, R.layout.print_layout_print, null); View view = LinearLayout.inflate(context, R.layout.print_layout_print, null);
TextView brandName = view.findViewById(R.id.tv_brand_name); TextView brandName = view.findViewById(R.id.tv_brand_name);
TextView restaurantName = view.findViewById(R.id.tv_restaurant_name); TextView restaurantName = view.findViewById(R.id.tv_restaurant_name);
...@@ -59,11 +56,11 @@ public class PrintUtils { ...@@ -59,11 +56,11 @@ public class PrintUtils {
TextView mTvTotalAmount = view.findViewById(R.id.tv_total_amount); TextView mTvTotalAmount = view.findViewById(R.id.tv_total_amount);
TextView checkOutTime = view.findViewById(R.id.tv_checkout_time); TextView checkOutTime = view.findViewById(R.id.tv_checkout_time);
TextView line_food_info = view.findViewById(R.id.line_food_info); TextView line_food_info = view.findViewById(R.id.line_food_info);
// List<Food> foodList = MyOrderManage.getInstance().getOrderFoodList(); // List<OrderDetail> foodList = MyOrderManage.getInstance().getOrderFoodList();
TableBean.DataBean tableBean = OpenTableContract.getDefault().getTableBean(); TableBean.DataBean tableBean = OpenTableManage.getDefault().getTableBean();
tableNum.setText(tableBean.getTableName()); tableNum.setText(tableBean.getTableName());
people.setText(tableBean.getPeopleNumber() + ""); people.setText(OpenTableManage.getDefault().getPeopleNumber() + "");
orderData.setText(tableBean.getCreateTime()); orderData.setText(tableBean.getCreateTime());
checkOutTime.setText(TimeUtils.getCurrentTimeInString(TimeUtils.DEFAULT_DATE_FORMAT)); checkOutTime.setText(TimeUtils.getCurrentTimeInString(TimeUtils.DEFAULT_DATE_FORMAT));
...@@ -83,11 +80,10 @@ public class PrintUtils { ...@@ -83,11 +80,10 @@ public class PrintUtils {
rvBillAmount.setLayoutManager(new LinearLayoutManager(context)); rvBillAmount.setLayoutManager(new LinearLayoutManager(context));
rvBillAmount.setAdapter(billAdapter); rvBillAmount.setAdapter(billAdapter);
} }
if (OpenTableContract.getDefault(). if (OpenTableManage.getDefault().
getTableBean() != null) { getTableBean() != null) {
tableNum.setText(OpenTableContract.getDefault().getTableBean().getTableName()); tableNum.setText(OpenTableManage.getDefault().getTableBean().getTableName());
people.setText(OpenTableContract.getDefault().getTableBean().getPeopleNumber() + ""); people.setText(OpenTableManage.getDefault().getPeopleNumber() + "");
} }
if (MyOrderManage.getInstance(). if (MyOrderManage.getInstance().
...@@ -98,10 +94,10 @@ public class PrintUtils { ...@@ -98,10 +94,10 @@ public class PrintUtils {
BigDecimal totalAmount = new BigDecimal(0); BigDecimal totalAmount = new BigDecimal(0);
for ( for (
Food food : MyOrderManage.getInstance(). OrderDetail OrderDetail : MyOrderManage.getInstance().
getOrderFoodList()) { getOrderFoodList()) {
totalAmount = MoneyUtil.sum(totalAmount, MoneyUtil.priceCalculation(food.getPrice(), food.getNumber())); totalAmount = MoneyUtil.sum(totalAmount, MoneyUtil.priceCalculation(OrderDetail.getUnit_price(), OrderDetail.getNumber()));
} }
//總金額 //總金額
mTvTotalAmount.setText(totalAmount + ""); mTvTotalAmount.setText(totalAmount + "");
...@@ -136,11 +132,11 @@ public class PrintUtils { ...@@ -136,11 +132,11 @@ public class PrintUtils {
TextView line_food_info = view.findViewById(R.id.line_food_info); TextView line_food_info = view.findViewById(R.id.line_food_info);
RecyclerView rvPayType = view.findViewById(R.id.rv_print_pay_type);//顯示支付方式 RecyclerView rvPayType = view.findViewById(R.id.rv_print_pay_type);//顯示支付方式
List<Food> foodList = MyOrderManage.getInstance().getOrderFoodList(); List<OrderDetail> foodList = MyOrderManage.getInstance().getOrderFoodList();
TableBean.DataBean tableBean = OpenTableContract.getDefault().getTableBean(); TableBean.DataBean tableBean = OpenTableManage.getDefault().getTableBean();
tableNum.setText(tableBean.getTableName()); tableNum.setText(tableBean.getTableName());
people.setText(tableBean.getPeopleNumber() + ""); people.setText(OpenTableManage.getDefault().getPeopleNumber() + "");
orderData.setText(tableBean.getCreateTime()); orderData.setText(tableBean.getCreateTime());
checkOutTime.setText(TimeUtils.getCurrentTimeInString(TimeUtils.DEFAULT_DATE_FORMAT)); checkOutTime.setText(TimeUtils.getCurrentTimeInString(TimeUtils.DEFAULT_DATE_FORMAT));
...@@ -160,9 +156,9 @@ public class PrintUtils { ...@@ -160,9 +156,9 @@ public class PrintUtils {
rvBillAmount.setLayoutManager(new LinearLayoutManager(context)); rvBillAmount.setLayoutManager(new LinearLayoutManager(context));
rvBillAmount.setAdapter(billAdapter); rvBillAmount.setAdapter(billAdapter);
} }
if (OpenTableContract.getDefault().getTableBean() != null) { if (OpenTableManage.getDefault().getTableBean() != null) {
tableNum.setText(OpenTableContract.getDefault().getTableBean().getTableName()); tableNum.setText(OpenTableManage.getDefault().getTableBean().getTableName());
people.setText(OpenTableContract.getDefault().getTableBean().getPeopleNumber() + ""); people.setText(OpenTableManage.getDefault().getPeopleNumber() + "");
} }
if (MyOrderManage.getInstance().getOrderId() != -1) { if (MyOrderManage.getInstance().getOrderId() != -1) {
...@@ -170,8 +166,8 @@ public class PrintUtils { ...@@ -170,8 +166,8 @@ public class PrintUtils {
} }
BigDecimal totalAmount = new BigDecimal(0); BigDecimal totalAmount = new BigDecimal(0);
for (Food food : MyOrderManage.getInstance().getOrderFoodList()) { for (OrderDetail OrderDetail : MyOrderManage.getInstance().getOrderFoodList()) {
totalAmount = MoneyUtil.sum(totalAmount, MoneyUtil.priceCalculation(food.getPrice(), food.getNumber())); totalAmount = MoneyUtil.sum(totalAmount, MoneyUtil.priceCalculation(OrderDetail.getUnit_price(), OrderDetail.getNumber()));
} }
//總金額 //總金額
mTvTotalAmount.setText(totalAmount + ""); mTvTotalAmount.setText(totalAmount + "");
......
...@@ -6,6 +6,7 @@ package com.gingersoft.gsa.cloud.base.utils.constans; ...@@ -6,6 +6,7 @@ package com.gingersoft.gsa.cloud.base.utils.constans;
public class UserConstans { public class UserConstans {
public static String memberId = "member_id"; public static String memberId = "member_id";
public static String memberName = "member_name";
public static String token = "user_token"; public static String token = "user_token";
public static String restaurantId = "restaurant_id"; public static String restaurantId = "restaurant_id";
......
...@@ -15,7 +15,6 @@ import android.view.Window; ...@@ -15,7 +15,6 @@ import android.view.Window;
import android.view.WindowManager; import android.view.WindowManager;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.load.resource.bitmap.RoundedCorners; import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
......
package com.gingersoft.gsa.cloud.database; package com.gingersoft.gsa.cloud.database;
import android.content.Context; import android.content.Context;
import com.gingersoft.gsa.cloud.base.BuildConfig;
import com.gingersoft.gsa.cloud.database.greendao.DaoMaster; import com.gingersoft.gsa.cloud.database.greendao.DaoMaster;
import com.gingersoft.gsa.cloud.database.greendao.DaoSession; import com.gingersoft.gsa.cloud.database.greendao.DaoSession;
import org.greenrobot.greendao.query.QueryBuilder; import org.greenrobot.greendao.query.QueryBuilder;
/** /**
......
package com.gingersoft.gsa.cloud.database.bean;
import android.graphics.Color;
import org.greenrobot.greendao.annotation.Entity;
import org.greenrobot.greendao.annotation.Id;
import org.greenrobot.greendao.annotation.NotNull;
import org.greenrobot.greendao.annotation.Property;
import org.greenrobot.greendao.annotation.ToMany;
import org.greenrobot.greendao.annotation.Transient;
import org.greenrobot.greendao.annotation.Generated;
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
* 版本:1.6.0
* 创建日期:2020-02-18
* 修订历史:2020-02-18
* 描述:套餐關係
*/
@Entity
public class Combo {
@Property(nameInDb = "_id")
@Id(autoincrement = true)
private Long dbid;
@NotNull
private Long id;
private Long fid; //食品ID
private int comId;//套餐ID
//關聯食品表
@ToMany(referencedJoinProperty = "id")
private List<Food> foods;
/**
* 自定義字段
*/
@Transient
private String name;
/**價格*/
@Transient
private double price = 0.00;
/**是否自動展開*/
@Transient
private int autoMode = 0;
/**是否备注细项*/
@Transient
private boolean isModifier;
/**背景顏色*/
@Transient
private int bgColor = Color.parseColor("#067878");
/**字體顏色*/
@Transient
private int fontColor = Color.parseColor("#FFFFFF");
/**套餐細項*/
@Transient
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)
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() {
}
// @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 getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public Long getFid() {
return fid;
}
public void setFid(Long fid) {
this.fid = fid;
}
public int getComId() {
return comId;
}
public void setComId(int comId) {
this.comId = comId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAutoMode() {
return autoMode;
}
public void setAutoMode(int autoMode) {
this.autoMode = autoMode;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public boolean isModifier() {
return isModifier;
}
public void setModifier(boolean modifier) {
isModifier = modifier;
}
public int getBgColor() {
return bgColor;
}
public void setBgColor(int bgColor) {
this.bgColor = bgColor;
}
public int getFontColor() {
return fontColor;
}
public void setFontColor(int fontColor) {
this.fontColor = fontColor;
}
public Long getDbid() {
return dbid;
}
public void setDbid(Long dbid) {
this.dbid = dbid;
}
public Modifier getModifier() {
return modifier;
}
public void setModifier(Modifier modifier) {
this.modifier = modifier;
}
public void setId(Long id) {
this.id = id;
}
/**
* 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 = 696813942)
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;
}
}
package com.gingersoft.gsa.cloud.database.bean;
import org.greenrobot.greendao.annotation.Entity;
import org.greenrobot.greendao.annotation.Id;
import org.greenrobot.greendao.annotation.NotNull;
import org.greenrobot.greendao.annotation.Property;
import org.greenrobot.greendao.annotation.Generated;
import org.greenrobot.greendao.annotation.ToMany;
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.FoodModifierDao;
import com.gingersoft.gsa.cloud.database.greendao.ModifierDao;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-02-18
* 修订历史:2020-02-18
* 描述:
*/
@Entity
public class FoodModifier {
@Property(nameInDb = "_id")
@Id(autoincrement = true)
private Long dbid;
@NotNull
private Long id;
private Long fid;
private Long mid;
//關聯食品表
@ToMany(referencedJoinProperty = "mid")
private List<Modifier> modifiers;
/** Used to resolve relations */
@Generated(hash = 2040040024)
private transient DaoSession daoSession;
/** Used for active entity operations. */
@Generated(hash = 1456075793)
private transient FoodModifierDao myDao;
@Generated(hash = 969556490)
public FoodModifier(Long dbid, @NotNull Long id, Long fid, Long mid) {
this.dbid = dbid;
this.id = id;
this.fid = fid;
this.mid = mid;
}
@Generated(hash = 1385518392)
public FoodModifier() {
}
public Long getDbid() {
return dbid;
}
public void setDbid(Long dbid) {
this.dbid = dbid;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getFid() {
return fid;
}
public void setFid(Long fid) {
this.fid = fid;
}
public Long getMid() {
return mid;
}
public void setMid(Long mid) {
this.mid = mid;
}
/**
* 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 = 638717814)
public void __setDaoSession(DaoSession daoSession) {
this.daoSession = daoSession;
myDao = daoSession != null ? daoSession.getFoodModifierDao() : null;
}
/**
* 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 = 1902490580)
public List<Modifier> getModifiers() {
if (modifiers == null) {
final DaoSession daoSession = this.daoSession;
if (daoSession == null) {
throw new DaoException("Entity is detached from DAO context");
}
ModifierDao targetDao = daoSession.getModifierDao();
List<Modifier> modifiersNew = targetDao._queryFoodModifier_Modifiers(dbid);
synchronized (this) {
if (modifiers == null) {
modifiers = modifiersNew;
}
}
}
return modifiers;
}
/** Resets a to-many relationship, making the next get call to query for a fresh result. */
@Generated(hash = 51124353)
public synchronized void resetModifiers() {
modifiers = null;
}
}
...@@ -5,6 +5,7 @@ import org.greenrobot.greendao.annotation.Entity; ...@@ -5,6 +5,7 @@ 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.NotNull; import org.greenrobot.greendao.annotation.NotNull;
import org.greenrobot.greendao.annotation.Property;
import org.greenrobot.greendao.annotation.Transient; import org.greenrobot.greendao.annotation.Transient;
/** /**
...@@ -18,11 +19,12 @@ import org.greenrobot.greendao.annotation.Transient; ...@@ -18,11 +19,12 @@ import org.greenrobot.greendao.annotation.Transient;
@Entity @Entity
public class Function { public class Function {
@Property(nameInDb = "_id")
@Id(autoincrement = true) @Id(autoincrement = true)
private Long id; private Long dbid;
@NotNull @NotNull
private Long id;
private int status; private int status;
private long effectiveTime; private long effectiveTime;
private String resName; private String resName;
...@@ -50,9 +52,10 @@ public class Function { ...@@ -50,9 +52,10 @@ public class Function {
private int textSizeRes; private int textSizeRes;
@Generated(hash = 291948792) @Generated(hash = 1134214411)
public Function(Long id, int status, long effectiveTime, String resName, public Function(Long dbid, @NotNull Long id, int status, long effectiveTime,
String resUrl, String imageURL) { String resName, String resUrl, String imageURL) {
this.dbid = dbid;
this.id = id; this.id = id;
this.status = status; this.status = status;
this.effectiveTime = effectiveTime; this.effectiveTime = effectiveTime;
...@@ -65,6 +68,16 @@ public class Function { ...@@ -65,6 +68,16 @@ public class Function {
public Function() { public Function() {
} }
public Function(@NotNull Long id, int status, long effectiveTime,
String resName, String resUrl, String imageURL) {
this.id = id;
this.status = status;
this.effectiveTime = effectiveTime;
this.resName = resName;
this.resUrl = resUrl;
this.imageURL = imageURL;
}
public Function(String resName, int textColor, int backgroundColor, int textSize) { public Function(String resName, int textColor, int backgroundColor, int textSize) {
this.resName = resName; this.resName = resName;
this.textColor = textColor; this.textColor = textColor;
...@@ -200,4 +213,12 @@ public class Function { ...@@ -200,4 +213,12 @@ public class Function {
", textSizeRes=" + textSizeRes + ", textSizeRes=" + textSizeRes +
'}'; '}';
} }
public Long getDbid() {
return this.dbid;
}
public void setDbid(Long dbid) {
this.dbid = dbid;
}
} }
package com.gingersoft.gsa.cloud.database.bean;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-02-19
* 修订历史:2020-02-19
* 描述:
*/
public class Score {
}
package com.gingersoft.gsa.cloud.database.greendao;
import android.database.Cursor;
import android.database.sqlite.SQLiteStatement;
import org.greenrobot.greendao.AbstractDao;
import org.greenrobot.greendao.Property;
import org.greenrobot.greendao.internal.DaoConfig;
import org.greenrobot.greendao.database.Database;
import org.greenrobot.greendao.database.DatabaseStatement;
import com.gingersoft.gsa.cloud.database.bean.Combo;
// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
/**
* DAO for table "COMBO".
*/
public class ComboDao extends AbstractDao<Combo, Long> {
public static final String TABLENAME = "COMBO";
/**
* Properties of entity Combo.<br/>
* Can be used for QueryBuilder and for referencing column names.
*/
public static class Properties {
public final static Property Dbid = new Property(0, Long.class, "dbid", true, "_id");
public final static Property Id = new Property(1, Long.class, "id", false, "ID");
public final static Property Fid = new Property(2, Long.class, "fid", false, "FID");
public final static Property ComId = new Property(3, int.class, "comId", false, "COM_ID");
}
private DaoSession daoSession;
public ComboDao(DaoConfig config) {
super(config);
}
public ComboDao(DaoConfig config, DaoSession daoSession) {
super(config, daoSession);
this.daoSession = daoSession;
}
/** Creates the underlying database table. */
public static void createTable(Database db, boolean ifNotExists) {
String constraint = ifNotExists? "IF NOT EXISTS ": "";
db.execSQL("CREATE TABLE " + constraint + "\"COMBO\" (" + //
"\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: dbid
"\"ID\" INTEGER NOT NULL ," + // 1: id
"\"FID\" INTEGER," + // 2: fid
"\"COM_ID\" INTEGER NOT NULL );"); // 3: comId
}
/** Drops the underlying database table. */
public static void dropTable(Database db, boolean ifExists) {
String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"COMBO\"";
db.execSQL(sql);
}
@Override
protected final void bindValues(DatabaseStatement stmt, Combo entity) {
stmt.clearBindings();
Long dbid = entity.getDbid();
if (dbid != null) {
stmt.bindLong(1, dbid);
}
stmt.bindLong(2, entity.getId());
Long fid = entity.getFid();
if (fid != null) {
stmt.bindLong(3, fid);
}
stmt.bindLong(4, entity.getComId());
}
@Override
protected final void bindValues(SQLiteStatement stmt, Combo entity) {
stmt.clearBindings();
Long dbid = entity.getDbid();
if (dbid != null) {
stmt.bindLong(1, dbid);
}
stmt.bindLong(2, entity.getId());
Long fid = entity.getFid();
if (fid != null) {
stmt.bindLong(3, fid);
}
stmt.bindLong(4, entity.getComId());
}
@Override
protected final void attachEntity(Combo entity) {
super.attachEntity(entity);
entity.__setDaoSession(daoSession);
}
@Override
public Long readKey(Cursor cursor, int offset) {
return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0);
}
@Override
public Combo readEntity(Cursor cursor, int offset) {
Combo entity = new Combo( //
cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // dbid
cursor.getLong(offset + 1), // id
cursor.isNull(offset + 2) ? null : cursor.getLong(offset + 2), // fid
cursor.getInt(offset + 3) // comId
);
return entity;
}
@Override
public void readEntity(Cursor cursor, Combo entity, int offset) {
entity.setDbid(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0));
entity.setId(cursor.getLong(offset + 1));
entity.setFid(cursor.isNull(offset + 2) ? null : cursor.getLong(offset + 2));
entity.setComId(cursor.getInt(offset + 3));
}
@Override
protected final Long updateKeyAfterInsert(Combo entity, long rowId) {
entity.setDbid(rowId);
return rowId;
}
@Override
public Long getKey(Combo entity) {
if(entity != null) {
return entity.getDbid();
} else {
return null;
}
}
@Override
public boolean hasKey(Combo entity) {
return entity.getDbid() != null;
}
@Override
protected final boolean isEntityUpdateable() {
return true;
}
}
...@@ -14,22 +14,28 @@ import org.greenrobot.greendao.identityscope.IdentityScopeType; ...@@ -14,22 +14,28 @@ 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 1): knows all DAOs. * Master of DAO (schema version 13): knows all DAOs.
*/ */
public class DaoMaster extends AbstractDaoMaster { public class DaoMaster extends AbstractDaoMaster {
public static final int SCHEMA_VERSION = 1; public static final int SCHEMA_VERSION = 13;
/** 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);
FunctionDao.createTable(db, ifNotExists); FunctionDao.createTable(db, ifNotExists);
ModifierDao.createTable(db, ifNotExists);
PrinterDeviceBeanDao.createTable(db, ifNotExists); PrinterDeviceBeanDao.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);
FunctionDao.dropTable(db, ifExists); FunctionDao.dropTable(db, ifExists);
ModifierDao.dropTable(db, ifExists);
PrinterDeviceBeanDao.dropTable(db, ifExists); PrinterDeviceBeanDao.dropTable(db, ifExists);
} }
...@@ -49,8 +55,11 @@ public class DaoMaster extends AbstractDaoMaster { ...@@ -49,8 +55,11 @@ 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(FunctionDao.class); registerDaoClass(FunctionDao.class);
registerDaoClass(ModifierDao.class);
registerDaoClass(PrinterDeviceBeanDao.class); registerDaoClass(PrinterDeviceBeanDao.class);
} }
......
...@@ -8,12 +8,18 @@ import org.greenrobot.greendao.database.Database; ...@@ -8,12 +8,18 @@ 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.Function; import com.gingersoft.gsa.cloud.database.bean.Function;
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.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.FunctionDao; import com.gingersoft.gsa.cloud.database.greendao.FunctionDao;
import com.gingersoft.gsa.cloud.database.greendao.ModifierDao;
import com.gingersoft.gsa.cloud.database.greendao.PrinterDeviceBeanDao; import com.gingersoft.gsa.cloud.database.greendao.PrinterDeviceBeanDao;
// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. // THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
...@@ -25,50 +31,86 @@ import com.gingersoft.gsa.cloud.database.greendao.PrinterDeviceBeanDao; ...@@ -25,50 +31,86 @@ 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 functionDaoConfig; private final DaoConfig functionDaoConfig;
private final DaoConfig modifierDaoConfig;
private final DaoConfig printerDeviceBeanDaoConfig; private final DaoConfig printerDeviceBeanDaoConfig;
private final ComboDao comboDao;
private final FoodDao foodDao; private final FoodDao foodDao;
private final FoodModifierDao foodModifierDao;
private final FunctionDao functionDao; private final FunctionDao functionDao;
private final ModifierDao modifierDao;
private final PrinterDeviceBeanDao printerDeviceBeanDao; private final PrinterDeviceBeanDao printerDeviceBeanDao;
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);
foodModifierDaoConfig = daoConfigMap.get(FoodModifierDao.class).clone();
foodModifierDaoConfig.initIdentityScope(type);
functionDaoConfig = daoConfigMap.get(FunctionDao.class).clone(); functionDaoConfig = daoConfigMap.get(FunctionDao.class).clone();
functionDaoConfig.initIdentityScope(type); functionDaoConfig.initIdentityScope(type);
modifierDaoConfig = daoConfigMap.get(ModifierDao.class).clone();
modifierDaoConfig.initIdentityScope(type);
printerDeviceBeanDaoConfig = daoConfigMap.get(PrinterDeviceBeanDao.class).clone(); printerDeviceBeanDaoConfig = daoConfigMap.get(PrinterDeviceBeanDao.class).clone();
printerDeviceBeanDaoConfig.initIdentityScope(type); printerDeviceBeanDaoConfig.initIdentityScope(type);
comboDao = new ComboDao(comboDaoConfig, this);
foodDao = new FoodDao(foodDaoConfig, this); foodDao = new FoodDao(foodDaoConfig, this);
foodModifierDao = new FoodModifierDao(foodModifierDaoConfig, this);
functionDao = new FunctionDao(functionDaoConfig, this); functionDao = new FunctionDao(functionDaoConfig, this);
modifierDao = new ModifierDao(modifierDaoConfig, this);
printerDeviceBeanDao = new PrinterDeviceBeanDao(printerDeviceBeanDaoConfig, this); printerDeviceBeanDao = new PrinterDeviceBeanDao(printerDeviceBeanDaoConfig, this);
registerDao(Combo.class, comboDao);
registerDao(Food.class, foodDao); registerDao(Food.class, foodDao);
registerDao(FoodModifier.class, foodModifierDao);
registerDao(Function.class, functionDao); registerDao(Function.class, functionDao);
registerDao(Modifier.class, modifierDao);
registerDao(PrinterDeviceBean.class, printerDeviceBeanDao); registerDao(PrinterDeviceBean.class, printerDeviceBeanDao);
} }
public void clear() { public void clear() {
comboDaoConfig.clearIdentityScope();
foodDaoConfig.clearIdentityScope(); foodDaoConfig.clearIdentityScope();
foodModifierDaoConfig.clearIdentityScope();
functionDaoConfig.clearIdentityScope(); functionDaoConfig.clearIdentityScope();
modifierDaoConfig.clearIdentityScope();
printerDeviceBeanDaoConfig.clearIdentityScope(); printerDeviceBeanDaoConfig.clearIdentityScope();
} }
public ComboDao getComboDao() {
return comboDao;
}
public FoodDao getFoodDao() { public FoodDao getFoodDao() {
return foodDao; return foodDao;
} }
public FoodModifierDao getFoodModifierDao() {
return foodModifierDao;
}
public FunctionDao getFunctionDao() { public FunctionDao getFunctionDao() {
return functionDao; return functionDao;
} }
public ModifierDao getModifierDao() {
return modifierDao;
}
public PrinterDeviceBeanDao getPrinterDeviceBeanDao() { public PrinterDeviceBeanDao getPrinterDeviceBeanDao() {
return printerDeviceBeanDao; return printerDeviceBeanDao;
} }
......
package com.gingersoft.gsa.cloud.database.greendao;
import android.database.Cursor;
import android.database.sqlite.SQLiteStatement;
import org.greenrobot.greendao.AbstractDao;
import org.greenrobot.greendao.Property;
import org.greenrobot.greendao.internal.DaoConfig;
import org.greenrobot.greendao.database.Database;
import org.greenrobot.greendao.database.DatabaseStatement;
import com.gingersoft.gsa.cloud.database.bean.FoodModifier;
// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
/**
* DAO for table "FOOD_MODIFIER".
*/
public class FoodModifierDao extends AbstractDao<FoodModifier, Long> {
public static final String TABLENAME = "FOOD_MODIFIER";
/**
* Properties of entity FoodModifier.<br/>
* Can be used for QueryBuilder and for referencing column names.
*/
public static class Properties {
public final static Property Dbid = new Property(0, Long.class, "dbid", true, "_id");
public final static Property Id = new Property(1, Long.class, "id", false, "ID");
public final static Property Fid = new Property(2, Long.class, "fid", false, "FID");
public final static Property Mid = new Property(3, Long.class, "mid", false, "MID");
}
private DaoSession daoSession;
public FoodModifierDao(DaoConfig config) {
super(config);
}
public FoodModifierDao(DaoConfig config, DaoSession daoSession) {
super(config, daoSession);
this.daoSession = daoSession;
}
/** Creates the underlying database table. */
public static void createTable(Database db, boolean ifNotExists) {
String constraint = ifNotExists? "IF NOT EXISTS ": "";
db.execSQL("CREATE TABLE " + constraint + "\"FOOD_MODIFIER\" (" + //
"\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: dbid
"\"ID\" INTEGER NOT NULL ," + // 1: id
"\"FID\" INTEGER," + // 2: fid
"\"MID\" INTEGER);"); // 3: mid
}
/** Drops the underlying database table. */
public static void dropTable(Database db, boolean ifExists) {
String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"FOOD_MODIFIER\"";
db.execSQL(sql);
}
@Override
protected final void bindValues(DatabaseStatement stmt, FoodModifier entity) {
stmt.clearBindings();
Long dbid = entity.getDbid();
if (dbid != null) {
stmt.bindLong(1, dbid);
}
stmt.bindLong(2, entity.getId());
Long fid = entity.getFid();
if (fid != null) {
stmt.bindLong(3, fid);
}
Long mid = entity.getMid();
if (mid != null) {
stmt.bindLong(4, mid);
}
}
@Override
protected final void bindValues(SQLiteStatement stmt, FoodModifier entity) {
stmt.clearBindings();
Long dbid = entity.getDbid();
if (dbid != null) {
stmt.bindLong(1, dbid);
}
stmt.bindLong(2, entity.getId());
Long fid = entity.getFid();
if (fid != null) {
stmt.bindLong(3, fid);
}
Long mid = entity.getMid();
if (mid != null) {
stmt.bindLong(4, mid);
}
}
@Override
protected final void attachEntity(FoodModifier entity) {
super.attachEntity(entity);
entity.__setDaoSession(daoSession);
}
@Override
public Long readKey(Cursor cursor, int offset) {
return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0);
}
@Override
public FoodModifier readEntity(Cursor cursor, int offset) {
FoodModifier entity = new FoodModifier( //
cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // dbid
cursor.getLong(offset + 1), // id
cursor.isNull(offset + 2) ? null : cursor.getLong(offset + 2), // fid
cursor.isNull(offset + 3) ? null : cursor.getLong(offset + 3) // mid
);
return entity;
}
@Override
public void readEntity(Cursor cursor, FoodModifier entity, int offset) {
entity.setDbid(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0));
entity.setId(cursor.getLong(offset + 1));
entity.setFid(cursor.isNull(offset + 2) ? null : cursor.getLong(offset + 2));
entity.setMid(cursor.isNull(offset + 3) ? null : cursor.getLong(offset + 3));
}
@Override
protected final Long updateKeyAfterInsert(FoodModifier entity, long rowId) {
entity.setDbid(rowId);
return rowId;
}
@Override
public Long getKey(FoodModifier entity) {
if(entity != null) {
return entity.getDbid();
} else {
return null;
}
}
@Override
public boolean hasKey(FoodModifier entity) {
return entity.getDbid() != null;
}
@Override
protected final boolean isEntityUpdateable() {
return true;
}
}
...@@ -24,12 +24,13 @@ public class FunctionDao extends AbstractDao<Function, Long> { ...@@ -24,12 +24,13 @@ public class FunctionDao extends AbstractDao<Function, Long> {
* 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 Id = new Property(0, Long.class, "id", true, "_id"); public final static Property Dbid = new Property(0, Long.class, "dbid", true, "_id");
public final static Property Status = new Property(1, int.class, "status", false, "STATUS"); public final static Property Id = new Property(1, Long.class, "id", false, "ID");
public final static Property EffectiveTime = new Property(2, long.class, "effectiveTime", false, "EFFECTIVE_TIME"); public final static Property Status = new Property(2, int.class, "status", false, "STATUS");
public final static Property ResName = new Property(3, String.class, "resName", false, "RES_NAME"); public final static Property EffectiveTime = new Property(3, long.class, "effectiveTime", false, "EFFECTIVE_TIME");
public final static Property ResUrl = new Property(4, String.class, "resUrl", false, "RES_URL"); public final static Property ResName = new Property(4, String.class, "resName", false, "RES_NAME");
public final static Property ImageURL = new Property(5, String.class, "imageURL", false, "IMAGE_URL"); public final static Property ResUrl = new Property(5, String.class, "resUrl", false, "RES_URL");
public final static Property ImageURL = new Property(6, String.class, "imageURL", false, "IMAGE_URL");
} }
...@@ -45,12 +46,13 @@ public class FunctionDao extends AbstractDao<Function, Long> { ...@@ -45,12 +46,13 @@ public class FunctionDao extends AbstractDao<Function, Long> {
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 + "\"FUNCTION\" (" + // db.execSQL("CREATE TABLE " + constraint + "\"FUNCTION\" (" + //
"\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: dbid
"\"STATUS\" INTEGER NOT NULL ," + // 1: status "\"ID\" INTEGER NOT NULL ," + // 1: id
"\"EFFECTIVE_TIME\" INTEGER NOT NULL ," + // 2: effectiveTime "\"STATUS\" INTEGER NOT NULL ," + // 2: status
"\"RES_NAME\" TEXT," + // 3: resName "\"EFFECTIVE_TIME\" INTEGER NOT NULL ," + // 3: effectiveTime
"\"RES_URL\" TEXT," + // 4: resUrl "\"RES_NAME\" TEXT," + // 4: resName
"\"IMAGE_URL\" TEXT);"); // 5: imageURL "\"RES_URL\" TEXT," + // 5: resUrl
"\"IMAGE_URL\" TEXT);"); // 6: imageURL
} }
/** Drops the underlying database table. */ /** Drops the underlying database table. */
...@@ -63,26 +65,27 @@ public class FunctionDao extends AbstractDao<Function, Long> { ...@@ -63,26 +65,27 @@ public class FunctionDao extends AbstractDao<Function, Long> {
protected final void bindValues(DatabaseStatement stmt, Function entity) { protected final void bindValues(DatabaseStatement stmt, Function entity) {
stmt.clearBindings(); stmt.clearBindings();
Long id = entity.getId(); Long dbid = entity.getDbid();
if (id != null) { if (dbid != null) {
stmt.bindLong(1, id); stmt.bindLong(1, dbid);
} }
stmt.bindLong(2, entity.getStatus()); stmt.bindLong(2, entity.getId());
stmt.bindLong(3, entity.getEffectiveTime()); stmt.bindLong(3, entity.getStatus());
stmt.bindLong(4, entity.getEffectiveTime());
String resName = entity.getResName(); String resName = entity.getResName();
if (resName != null) { if (resName != null) {
stmt.bindString(4, resName); stmt.bindString(5, resName);
} }
String resUrl = entity.getResUrl(); String resUrl = entity.getResUrl();
if (resUrl != null) { if (resUrl != null) {
stmt.bindString(5, resUrl); stmt.bindString(6, resUrl);
} }
String imageURL = entity.getImageURL(); String imageURL = entity.getImageURL();
if (imageURL != null) { if (imageURL != null) {
stmt.bindString(6, imageURL); stmt.bindString(7, imageURL);
} }
} }
...@@ -90,26 +93,27 @@ public class FunctionDao extends AbstractDao<Function, Long> { ...@@ -90,26 +93,27 @@ public class FunctionDao extends AbstractDao<Function, Long> {
protected final void bindValues(SQLiteStatement stmt, Function entity) { protected final void bindValues(SQLiteStatement stmt, Function entity) {
stmt.clearBindings(); stmt.clearBindings();
Long id = entity.getId(); Long dbid = entity.getDbid();
if (id != null) { if (dbid != null) {
stmt.bindLong(1, id); stmt.bindLong(1, dbid);
} }
stmt.bindLong(2, entity.getStatus()); stmt.bindLong(2, entity.getId());
stmt.bindLong(3, entity.getEffectiveTime()); stmt.bindLong(3, entity.getStatus());
stmt.bindLong(4, entity.getEffectiveTime());
String resName = entity.getResName(); String resName = entity.getResName();
if (resName != null) { if (resName != null) {
stmt.bindString(4, resName); stmt.bindString(5, resName);
} }
String resUrl = entity.getResUrl(); String resUrl = entity.getResUrl();
if (resUrl != null) { if (resUrl != null) {
stmt.bindString(5, resUrl); stmt.bindString(6, resUrl);
} }
String imageURL = entity.getImageURL(); String imageURL = entity.getImageURL();
if (imageURL != null) { if (imageURL != null) {
stmt.bindString(6, imageURL); stmt.bindString(7, imageURL);
} }
} }
...@@ -121,36 +125,38 @@ public class FunctionDao extends AbstractDao<Function, Long> { ...@@ -121,36 +125,38 @@ public class FunctionDao extends AbstractDao<Function, Long> {
@Override @Override
public Function readEntity(Cursor cursor, int offset) { public Function readEntity(Cursor cursor, int offset) {
Function entity = new Function( // Function entity = new Function( //
cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // dbid
cursor.getInt(offset + 1), // status cursor.getLong(offset + 1), // id
cursor.getLong(offset + 2), // effectiveTime cursor.getInt(offset + 2), // status
cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // resName cursor.getLong(offset + 3), // effectiveTime
cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // resUrl cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // resName
cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // imageURL cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // resUrl
cursor.isNull(offset + 6) ? null : cursor.getString(offset + 6) // imageURL
); );
return entity; return entity;
} }
@Override @Override
public void readEntity(Cursor cursor, Function entity, int offset) { public void readEntity(Cursor cursor, Function entity, int offset) {
entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); entity.setDbid(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0));
entity.setStatus(cursor.getInt(offset + 1)); entity.setId(cursor.getLong(offset + 1));
entity.setEffectiveTime(cursor.getLong(offset + 2)); entity.setStatus(cursor.getInt(offset + 2));
entity.setResName(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); entity.setEffectiveTime(cursor.getLong(offset + 3));
entity.setResUrl(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); entity.setResName(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4));
entity.setImageURL(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); entity.setResUrl(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5));
entity.setImageURL(cursor.isNull(offset + 6) ? null : cursor.getString(offset + 6));
} }
@Override @Override
protected final Long updateKeyAfterInsert(Function entity, long rowId) { protected final Long updateKeyAfterInsert(Function entity, long rowId) {
entity.setId(rowId); entity.setDbid(rowId);
return rowId; return rowId;
} }
@Override @Override
public Long getKey(Function entity) { public Long getKey(Function entity) {
if(entity != null) { if(entity != null) {
return entity.getId(); return entity.getDbid();
} else { } else {
return null; return null;
} }
...@@ -158,7 +164,7 @@ public class FunctionDao extends AbstractDao<Function, Long> { ...@@ -158,7 +164,7 @@ public class FunctionDao extends AbstractDao<Function, Long> {
@Override @Override
public boolean hasKey(Function entity) { public boolean hasKey(Function entity) {
return entity.getId() != null; return entity.getDbid() != null;
} }
@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.Combo;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.greendao.ComboDao;
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 ComboDaoUtils {
private static final String TAG = ComboDaoUtils.class.getSimpleName();
private DaoManager mManager;
private Context mContext;
public ComboDaoUtils(Context context) {
mManager = DaoManager.getInstance();
mManager.init(context);
this.mContext =context;
}
/**
* 完成Food记录的插入,如果表未创建,先创建Food表
*
* @param combo
* @return
*/
public boolean insertCombo(Combo combo) {
boolean flag = false;
flag = mManager.getDaoSession().getComboDao().insert(combo) == -1 ? false : true;
Log.i(TAG, "insert Combo :" + flag + "-->" + combo.toString());
return flag;
}
/**
* 插入多条数据,在子线程操作
*
* @param foodList
* @return
*/
public boolean insertMultCombo(final List<Combo> foodList) {
boolean flag = false;
try {
mManager.getDaoSession().runInTx(new Runnable() {
@Override
public void run() {
for (Combo Food : foodList) {
mManager.getDaoSession().insertOrReplace(Food);
}
}
});
flag = true;
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
/**
* 修改一条数据
*
* @param combo
* @return
*/
public boolean updateCombo(Combo combo) {
boolean flag = false;
try {
mManager.getDaoSession().update(combo);
flag = true;
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
/**
* 删除单条记录
*
* @param food
* @return
*/
public boolean deleteCombo(Combo 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(Combo.class);
flag = true;
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
/**
* 查询所有记录
*
* @return
*/
public List<Combo> queryAllCombo() {
return mManager.getDaoSession().loadAll(Combo.class);
}
/**
* 根据主键id查询记录
*
* @param key
* @return
*/
public Combo queryComboById(long key) {
return mManager.getDaoSession().load(Combo.class, key);
}
/**
* 使用native sql进行查询操作
*/
public List<Combo> queryComboByNativeSql(String sql, String[] conditions) {
return mManager.getDaoSession().queryRaw(Combo.class, sql, conditions);
}
/**
* 使用queryBuilder进行查询食品
*
* @return
*/
public List<Combo> queryComboFoodsByQueryBuilder(long fid) {
Combo combo = queryComboByQueryBuilder(fid);
List<Combo> combos = null;
if (combo != null) {
combos = queryCombosByComIdQueryBuilder(combo.getComId());
}
List<Combo> list = new ArrayList<>();
FoodDaoUtils foodDao = new FoodDaoUtils(mContext);
if (combos != null) {
for (int i = 0; i < combos.size(); i++) {
Food food = foodDao.queryFoodByFidQueryBuilder(combos.get(i).getFid());
list.add(Combo.addFoodInfo(food,combos.get(i)));
}
}
return list;
}
/**
* 使用queryBuilder进行查询食品
*
* @return
*/
public Combo queryComboByQueryBuilder(long fid) {
QueryBuilder<Combo> queryBuilder = mManager.getDaoSession().queryBuilder(Combo.class);
return queryBuilder.where(ComboDao.Properties.Fid.eq(fid)).build().unique();
}
/**
* 使用queryBuilder进行查询食品
*
* @return
*/
public List<Combo> queryCombosByComIdQueryBuilder(int comId) {
QueryBuilder<Combo> queryBuilder = mManager.getDaoSession().queryBuilder(Combo.class);
return queryBuilder.where(ComboDao.Properties.ComId.eq(comId)).list();
}
}
//package com.gingersoft.gsa.cloud.database.utils; package com.gingersoft.gsa.cloud.database.utils;//package com.gingersoft.gsa.cloud.database.utils;
// //
//import android.content.Context; //import android.content.Context;
//import android.util.Log; //import android.util.Log;
......
...@@ -159,6 +159,15 @@ public class FoodDaoUtils { ...@@ -159,6 +159,15 @@ public class FoodDaoUtils {
* 使用queryBuilder进行查询食品 * 使用queryBuilder进行查询食品
* @return * @return
*/ */
public Food queryFoodByFidQueryBuilder(long fid){
QueryBuilder<Food> queryBuilder = mManager.getDaoSession().queryBuilder(Food.class);
return queryBuilder.where(FoodDao.Properties.Id.eq(fid)).build().unique();
}
/**
* 使用queryBuilder进行查询食品
* @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();
......
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.Combo;
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.greendao.ComboDao;
import com.gingersoft.gsa.cloud.database.greendao.FoodModifierDao;
import com.gingersoft.gsa.cloud.database.greendao.ModifierDao;
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 FoodModifierDaoUtils {
private static final String TAG = FoodModifierDaoUtils.class.getSimpleName();
private DaoManager mManager;
private Context mContext;
public FoodModifierDaoUtils(Context context) {
mManager = DaoManager.getInstance();
mManager.init(context);
this.mContext = context;
}
/**
* 完成Food记录的插入,如果表未创建,先创建Food表
*
* @param foodModifier
* @return
*/
public boolean insertCombo(FoodModifier foodModifier) {
boolean flag = false;
flag = mManager.getDaoSession().getFoodModifierDao().insert(foodModifier) == -1 ? false : true;
Log.i(TAG, "insert FoodModifier :" + flag + "-->" + foodModifier.toString());
return flag;
}
/**
* 插入多条数据,在子线程操作
*
* @param foodList
* @return
*/
public boolean insertMultFoodModifier(final List<FoodModifier> foodList) {
boolean flag = false;
try {
mManager.getDaoSession().runInTx(new Runnable() {
@Override
public void run() {
for (FoodModifier Food : foodList) {
mManager.getDaoSession().insertOrReplace(Food);
}
}
});
flag = true;
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
/**
* 修改一条数据
*
* @param foodModifier
* @return
*/
public boolean updateFoodModifier(FoodModifier foodModifier) {
boolean flag = false;
try {
mManager.getDaoSession().update(foodModifier);
flag = true;
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
/**
* 删除单条记录
*
* @param food
* @return
*/
public boolean deleteFoodModifier(FoodModifier 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(FoodModifier.class);
flag = true;
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
/**
* 查询所有记录
*
* @return
*/
public List<FoodModifier> queryAllFoodModifier() {
return mManager.getDaoSession().loadAll(FoodModifier.class);
}
/**
* 根据主键id查询记录
*
* @param key
* @return
*/
public FoodModifier queryFoodModifierById(long key) {
return mManager.getDaoSession().load(FoodModifier.class, key);
}
/**
* 使用queryBuilder进行查询食品
*
* @return
*/
public List<Modifier> queryModifiersByQueryBuilder(long fid) {
List<FoodModifier> foodModifiers = queryFoodModifiersByMidQueryBuilder(fid);
List<Modifier> list = new ArrayList<>();
ModifierDaoUtils modifierDao = new ModifierDaoUtils(mContext);
if (foodModifiers != null) {
for (int i = 0; i < foodModifiers.size(); i++) {
Modifier modifier = modifierDao.queryModifierByQueryBuilder(foodModifiers.get(i).getMid());
list.add(modifier);
}
}
return list;
}
/**
* 使用native sql进行查询操作
*/
public List<FoodModifier> queryFoodModifierByNativeSql(String sql, String[] conditions) {
return mManager.getDaoSession().queryRaw(FoodModifier.class, sql, conditions);
}
/**
* 使用queryBuilder进行查询食品
*
* @return
*/
public FoodModifier queryFoodModifierByQueryBuilder(long fid) {
QueryBuilder<FoodModifier> queryBuilder = mManager.getDaoSession().queryBuilder(FoodModifier.class);
return queryBuilder.where(FoodModifierDao.Properties.Fid.eq(fid)).build().unique();
}
/**
* 使用queryBuilder进行查询食品
*
* @return
*/
public List<FoodModifier> queryFoodModifiersByMidQueryBuilder(long fid) {
QueryBuilder<FoodModifier> queryBuilder = mManager.getDaoSession().queryBuilder(FoodModifier.class);
return queryBuilder.where(FoodModifierDao.Properties.Fid.eq(fid)).list();
}
}
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.Combo;
import com.gingersoft.gsa.cloud.database.bean.Food;
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 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 ModifierDaoUtils {
private static final String TAG = ModifierDaoUtils.class.getSimpleName();
private DaoManager mManager;
private Context mContext;
public ModifierDaoUtils(Context context){
mManager = DaoManager.getInstance();
mManager.init(context);
this.mContext = context;
}
/**
* 完成Food记录的插入,如果表未创建,先创建Food表
* @param modifier
* @return
*/
public boolean insertModifier(Modifier modifier){
boolean flag = false;
flag = mManager.getDaoSession().getModifierDao().insert(modifier) == -1 ? false : true;
Log.i(TAG, "insert Modifier :" + flag + "-->" + modifier.toString());
return flag;
}
/**
* 插入多条数据,在子线程操作
* @param foodList
* @return
*/
public boolean insertMultModifier(final List<Modifier> foodList) {
boolean flag = false;
try {
mManager.getDaoSession().runInTx(new Runnable() {
@Override
public void run() {
for (Modifier Food : foodList) {
mManager.getDaoSession().insertOrReplace(Food);
}
}
});
flag = true;
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
/**
* 修改一条数据
* @param modifier
* @return
*/
public boolean updateModifier(Modifier modifier){
boolean flag = false;
try {
mManager.getDaoSession().update(modifier);
flag = true;
}catch (Exception e){
e.printStackTrace();
}
return flag;
}
/**
* 删除单条记录
* @param modifier
* @return
*/
public boolean deleteModifier(Modifier modifier){
boolean flag = false;
try {
//按照id删除
mManager.getDaoSession().delete(modifier);
flag = true;
}catch (Exception e){
e.printStackTrace();
}
return flag;
}
/**
* 删除所有记录
* @return
*/
public boolean deleteAll(){
boolean flag = false;
try {
//按照id删除
mManager.getDaoSession().deleteAll(Modifier.class);
flag = true;
}catch (Exception e){
e.printStackTrace();
}
return flag;
}
/**
* 查询所有记录
* @return
*/
public List<Modifier> queryAllModifier(){
return mManager.getDaoSession().loadAll(Modifier.class);
}
/**
* 根据主键id查询记录
* @param key
* @return
*/
public Modifier queryModifierById(long key){
return mManager.getDaoSession().load(Modifier.class, key);
}
/**
* 使用native sql进行查询操作
*/
public List<Modifier> queryModifierByNativeSql(String sql, String[] conditions){
return mManager.getDaoSession().queryRaw(Modifier.class, sql, conditions);
}
/**
* 使用queryBuilder进行查询食品
* @return
*/
public Modifier queryModifierByQueryBuilder(long mid){
QueryBuilder<Modifier> queryBuilder = mManager.getDaoSession().queryBuilder(Modifier.class);
return queryBuilder.where(ModifierDao.Properties.Mid.eq(mid)).build().unique();
}
/**
* 使用queryBuilder进行查询食品
* @param mid
* @return
*/
public List<Modifier> queryModifierByMidIdQueryBuilder(long mid) {
QueryBuilder<Modifier> queryBuilder = mManager.getDaoSession().queryBuilder(Modifier.class);
return queryBuilder.where(ModifierDao.Properties.Mid.eq(mid)).list();
}
/**
* 使用queryBuilder进行查询食品
* @param mod_msg
* @param visible
* @return
*/
public List<Modifier> queryModifierByModMsgAndVisibleQueryBuilder(String mod_msg,int visible) {
QueryBuilder<Modifier> queryBuilder = mManager.getDaoSession().queryBuilder(Modifier.class);
return queryBuilder.where(ModifierDao.Properties.ModMsg.eq(mod_msg)).where(ModifierDao.Properties.Invisible.eq(visible)).list();
}
/**
* 使用queryBuilder进行查询食品
* @param mod_taste
* @param visible
* @return
*/
public List<Modifier> queryModifierByModModTasteVisibleQueryBuilder(long mod_taste,int visible) {
QueryBuilder<Modifier> queryBuilder = mManager.getDaoSession().queryBuilder(Modifier.class);
return queryBuilder.where(ModifierDao.Properties.ModTaste.eq(mod_taste)).where(ModifierDao.Properties.Invisible.eq(visible)).list();
}
/**
* 使用queryBuilder进行查询食品
* @param topid
* @param visible
* @return
*/
public List<Modifier> queryModifierByTopidAndVisibleQueryBuilder(long topid,int visible) {
QueryBuilder<Modifier> queryBuilder = mManager.getDaoSession().queryBuilder(Modifier.class);
return queryBuilder.where(ModifierDao.Properties.TopId.eq(topid)).where(ModifierDao.Properties.Invisible.eq(visible)).list();
}
}
//package com.gingersoft.gsa.cloud.database.utils; package com.gingersoft.gsa.cloud.database.utils;//package com.gingersoft.gsa.cloud.database.utils;
// //
//import android.content.Context; //import android.content.Context;
//import android.util.Log; //import android.util.Log;
......
package network.config; package com.gingersoft.gsa.cloud.globalconfig;
import android.app.Application; import android.app.Application;
import android.content.Context; import android.content.Context;
import com.gingersoft.gsa.cloud.base.utils.constans.HttpsConstans;
import com.gingersoft.gsa.cloud.globalconfig.applyOptions.MyGlobalHttpHandler;
import com.gingersoft.gsa.cloud.globalconfig.applyOptions.MyGsonConfiguration;
import com.gingersoft.gsa.cloud.globalconfig.applyOptions.MyOkhttpConfiguration;
import com.gingersoft.gsa.cloud.globalconfig.applyOptions.MyResponseErrorListener;
import com.gingersoft.gsa.cloud.globalconfig.applyOptions.MyRetrofitConfiguration;
import com.gingersoft.gsa.cloud.globalconfig.applyOptions.MyRxCacheConfiguration;
import com.gingersoft.gsa.cloud.globalconfig.lifecyclesOptioins.MyActivityLifecycle;
import com.gingersoft.gsa.cloud.globalconfig.lifecyclesOptioins.MyAppLifecycles;
import com.jess.arms.base.delegate.AppLifecycles; import com.jess.arms.base.delegate.AppLifecycles;
import com.jess.arms.di.module.GlobalConfigModule; import com.jess.arms.di.module.GlobalConfigModule;
import com.jess.arms.integration.ConfigModule; import com.jess.arms.integration.ConfigModule;
import com.jess.arms.utils.DataHelper; import com.jess.arms.utils.DataHelper;
import com.gingersoft.gsa.cloud.base.utils.constans.HttpsConstans;
import java.io.File; import java.io.File;
import java.util.List; import java.util.List;
import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentManager;
import network.config.applyOptions.MyGlobalHttpHandler;
import network.config.applyOptions.MyGsonConfiguration;
import network.config.applyOptions.MyOkhttpConfiguration;
import network.config.applyOptions.MyResponseErrorListener;
import network.config.applyOptions.MyRetrofitConfiguration;
import network.config.applyOptions.MyRxCacheConfiguration;
import network.config.lifecyclesOptioins.MyActivityLifecycle;
import network.config.lifecyclesOptioins.MyAppLifecycles;
public class GlobalConfiguration implements ConfigModule { public class GlobalConfiguration implements ConfigModule {
......
package network.config.applyOptions; package com.gingersoft.gsa.cloud.globalconfig.applyOptions;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.utils.request.RequestUtils;
import com.jess.arms.http.GlobalHttpHandler;
import com.gingersoft.gsa.cloud.base.utils.constans.AppConstans; import com.gingersoft.gsa.cloud.base.utils.constans.AppConstans;
import com.gingersoft.gsa.cloud.base.utils.encryption.Aes; import com.gingersoft.gsa.cloud.base.utils.encryption.Aes;
import com.gingersoft.gsa.cloud.base.utils.log.LogUtil; import com.gingersoft.gsa.cloud.base.utils.log.LogUtil;
import com.gingersoft.gsa.cloud.base.utils.other.AppUtils; import com.gingersoft.gsa.cloud.base.utils.other.AppUtils;
import com.jess.arms.http.GlobalHttpHandler;
import okhttp3.Headers; import okhttp3.Headers;
import okhttp3.Interceptor; import okhttp3.Interceptor;
...@@ -30,7 +29,6 @@ public class MyGlobalHttpHandler implements GlobalHttpHandler { ...@@ -30,7 +29,6 @@ public class MyGlobalHttpHandler implements GlobalHttpHandler {
// 统一处理http请求。eg:给request统一添加token或者header以及参数加密等操作 // 统一处理http请求。eg:给request统一添加token或者header以及参数加密等操作
String requestBody = request.toString(); String requestBody = request.toString();
e(requestBody); e(requestBody);
String url = chain.request().url().url().toString(); String url = chain.request().url().url().toString();
String token = ""; String token = "";
......
package network.config.applyOptions; package com.gingersoft.gsa.cloud.globalconfig.applyOptions;
import android.content.Context; import android.content.Context;
......
package network.config.applyOptions; package com.gingersoft.gsa.cloud.globalconfig.applyOptions;
import android.content.Context; import android.content.Context;
import com.jess.arms.di.module.ClientModule; import com.jess.arms.di.module.ClientModule;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import me.jessyan.progressmanager.ProgressManager; import me.jessyan.progressmanager.ProgressManager;
import me.jessyan.retrofiturlmanager.RetrofitUrlManager; import me.jessyan.retrofiturlmanager.RetrofitUrlManager;
import okhttp3.OkHttpClient; import okhttp3.OkHttpClient;
......
package network.config.applyOptions; package com.gingersoft.gsa.cloud.globalconfig.applyOptions;
import android.content.Context; import android.content.Context;
import android.net.ParseException; import android.net.ParseException;
import com.gingersoft.gsa.cloud.base.R;
import com.gingersoft.gsa.cloud.network.R; import com.gingersoft.gsa.cloud.base.utils.log.LogUtil;
import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils;
import com.google.gson.JsonIOException; import com.google.gson.JsonIOException;
import com.google.gson.JsonParseException; import com.google.gson.JsonParseException;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import com.gingersoft.gsa.cloud.base.utils.log.LogUtil;
import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils;
import org.json.JSONException; import org.json.JSONException;
import java.net.SocketTimeoutException; import java.net.SocketTimeoutException;
import java.net.UnknownHostException; import java.net.UnknownHostException;
import me.jessyan.rxerrorhandler.handler.listener.ResponseErrorListener; import me.jessyan.rxerrorhandler.handler.listener.ResponseErrorListener;
import retrofit2.HttpException; import retrofit2.HttpException;
import timber.log.Timber; import timber.log.Timber;
......
package network.config.applyOptions; package com.gingersoft.gsa.cloud.globalconfig.applyOptions;
import android.content.Context; import android.content.Context;
import com.gingersoft.gsa.cloud.globalconfig.applyOptions.intercept.LoggingInterceptor;
import com.jess.arms.di.module.ClientModule; import com.jess.arms.di.module.ClientModule;
import network.config.applyOptions.intercept.LoggingInterceptor;
import okhttp3.OkHttpClient; import okhttp3.OkHttpClient;
import retrofit2.Retrofit; import retrofit2.Retrofit;
......
package network.config.applyOptions; package com.gingersoft.gsa.cloud.globalconfig.applyOptions;
import android.content.Context; import android.content.Context;
......
package network.config.applyOptions.intercept; package com.gingersoft.gsa.cloud.globalconfig.applyOptions.intercept;
import android.util.Log; import android.util.Log;
import com.billy.cc.core.component.Chain;
import com.gingersoft.gsa.cloud.base.utils.log.LogUtil; import com.gingersoft.gsa.cloud.base.utils.log.LogUtil;
import java.io.IOException; import java.io.IOException;
......
package network.config.applyOptions.intercept; package com.gingersoft.gsa.cloud.globalconfig.applyOptions.intercept;
import java.io.IOException; import java.io.IOException;
......
package network.config.lifecyclesOptioins; package com.gingersoft.gsa.cloud.globalconfig.lifecyclesOptioins;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.app.Activity; import android.app.Activity;
......
package network.config.lifecyclesOptioins; package com.gingersoft.gsa.cloud.globalconfig.lifecyclesOptioins;
import android.app.Application; import android.app.Application;
import android.content.Context; import android.content.Context;
import com.jess.arms.base.delegate.AppLifecycles; import com.jess.arms.base.delegate.AppLifecycles;
import com.squareup.leakcanary.RefWatcher; import com.squareup.leakcanary.RefWatcher;
//import com.alibaba.android.arouter.launcher.ARouter; //import com.alibaba.android.arouter.launcher.ARouter;
......
package com.gingersoft.gsa.cloud.ui.adapter;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.R;
import com.gingersoft.gsa.cloud.base.R2;
import com.gingersoft.gsa.cloud.ui.bean.view.SectionHeader;
import com.gingersoft.gsa.cloud.ui.bean.view.SectionTextItem;
import com.gingersoft.gsa.cloud.ui.view.BaseTextSection;
import com.qmuiteam.qmui.widget.section.QMUIDefaultStickySectionAdapter;
import com.qmuiteam.qmui.widget.section.QMUISection;
import com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter;
import androidx.annotation.NonNull;
import butterknife.BindView;
import butterknife.ButterKnife;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-02-09
* 修订历史:2020-02-09
* 描述:
*/
public class BasTextSectiontAdapter extends QMUIDefaultStickySectionAdapter<SectionHeader, SectionTextItem> {
@NonNull
@Override
protected QMUIStickySectionAdapter.ViewHolder onCreateSectionHeaderViewHolder(@NonNull ViewGroup viewGroup) {
return new QMUIStickySectionAdapter.ViewHolder(new BaseTextSection(viewGroup.getContext()));
}
@NonNull
@Override
protected ViewHolder onCreateSectionItemViewHolder(@NonNull ViewGroup viewGroup) {
return new ViewHolder(View.inflate(viewGroup.getContext(), R.layout.iu_item_base_text_section, null));
}
@Override
protected void onBindSectionHeader(QMUIStickySectionAdapter.ViewHolder holder, int position, QMUISection<SectionHeader, SectionTextItem> section) {
super.onBindSectionHeader(holder, position, section);
BaseTextSection itemView = (BaseTextSection) holder.itemView;
itemView.render(section.getHeader(), section.isFold());
}
@Override
protected void onBindSectionItem(QMUIStickySectionAdapter.ViewHolder holder, int position, QMUISection<SectionHeader, SectionTextItem> section, int itemIndex) {
super.onBindSectionItem(holder, position, section, itemIndex);
ViewHolder viewHolder = (ViewHolder) holder;
viewHolder.tv_name.setText(section.getItemAt(itemIndex).getText());
}
public class ViewHolder extends QMUIStickySectionAdapter.ViewHolder {
@BindView(R2.id.tv_name)
TextView tv_name;//功能名
public ViewHolder(View itemView) {
super(itemView);
ButterKnife.bind(this, itemView);
}
public TextView getTvName() {
return tv_name;
}
public SectionTextItem getSectionTextItem(int position) {
SectionTextItem item = getSectionItem(position);
return item;
}
}
}
package com.gingersoft.gsa.cloud.ui.adapter;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import com.gingersoft.gsa.cloud.base.R;
import com.gingersoft.gsa.cloud.base.R2;
import com.gingersoft.gsa.cloud.ui.bean.view.SectionHeader;
import com.gingersoft.gsa.cloud.ui.bean.view.SectionImageItem;
import com.gingersoft.gsa.cloud.ui.view.BaseTextSection;
import com.qmuiteam.qmui.widget.section.QMUIDefaultStickySectionAdapter;
import com.qmuiteam.qmui.widget.section.QMUISection;
import com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter;
import androidx.annotation.NonNull;
import butterknife.BindView;
import butterknife.ButterKnife;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-02-09
* 修订历史:2020-02-09
* 描述:
*/
public class BaseImageSectiontAdapter extends QMUIDefaultStickySectionAdapter<SectionHeader, SectionImageItem> {
@NonNull
@Override
protected QMUIStickySectionAdapter.ViewHolder onCreateSectionHeaderViewHolder(@NonNull ViewGroup viewGroup) {
return new QMUIStickySectionAdapter.ViewHolder(new BaseTextSection(viewGroup.getContext()));
}
@NonNull
@Override
protected ViewHolder onCreateSectionItemViewHolder(@NonNull ViewGroup viewGroup) {
return new ViewHolder(View.inflate(viewGroup.getContext(), R.layout.iu_item_base_image_section, null));
}
@Override
protected void onBindSectionHeader(QMUIStickySectionAdapter.ViewHolder holder, int position, QMUISection<SectionHeader, SectionImageItem> section) {
super.onBindSectionHeader(holder, position, section);
BaseTextSection itemView = (BaseTextSection) holder.itemView;
itemView.render(section.getHeader(), section.isFold());
}
@Override
protected void onBindSectionItem(QMUIStickySectionAdapter.ViewHolder holder, int position, QMUISection<SectionHeader, SectionImageItem> section, int itemIndex) {
super.onBindSectionItem(holder, position, section, itemIndex);
ViewHolder viewHolder = (ViewHolder) holder;
viewHolder.iv_icon.setImageResource(section.getItemAt(itemIndex).getImage());
}
public class ViewHolder extends QMUIStickySectionAdapter.ViewHolder {
@BindView(R2.id.iv_icon)
ImageView iv_icon;//功能名
public ViewHolder(View itemView) {
super(itemView);
ButterKnife.bind(this, itemView);
}
public ImageView getIcon() {
return iv_icon;
}
}
}
package com.gingersoft.gsa.cloud.ui.bean.mode;
import java.util.List;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2019-12-28
* 修订历史:2019-12-28
* 描述:
*/
public class LoginBean {
/**
* success : true
* sysTime : 1578563902000
* data : {"user":{"userId":1,"userName":"admin","brands":[{"brandId":242,"brandName":"莫拉塔","restaurants":[]},{"brandId":243,"brandName":"蕭蕭","restaurants":[{"restaurantId":337,"restaurantName":"小張"}]}]},"token":"24ce30df203b41619a21967dbd9988b9"}
*/
private boolean success;
private String errMsg;
private long sysTime;
private DataBean 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 DataBean getData() {
return data;
}
public void setData(DataBean data) {
this.data = data;
}
public static class DataBean {
/**
* user : {"userId":1,"userName":"admin","brands":[{"brandId":242,"brandName":"莫拉塔","restaurants":[]},{"brandId":243,"brandName":"蕭蕭","restaurants":[{"restaurantId":337,"restaurantName":"小張"}]}]}
* token : 24ce30df203b41619a21967dbd9988b9
*/
private UserBean user;
private String token;
public UserBean getUser() {
return user;
}
public void setUser(UserBean user) {
this.user = user;
}
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
public static class UserBean {
/**
* userId : 1
* userName : admin
* brands : [{"brandId":242,"brandName":"莫拉塔","restaurants":[]},{"brandId":243,"brandName":"蕭蕭","restaurants":[{"restaurantId":337,"restaurantName":"小張"}]}]
*/
private int userId;
private String userName;
private List<BrandsBean> brands;
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public List<BrandsBean> getBrands() {
return brands;
}
public void setBrands(List<BrandsBean> brands) {
this.brands = brands;
}
public static class BrandsBean {
/**
* brandId : 242
* brandName : 莫拉塔
* restaurants : []
*/
private int brandId;
private String brandName;
private List<RestaurantsBean> restaurants;
public int getBrandId() {
return brandId;
}
public void setBrandId(int brandId) {
this.brandId = brandId;
}
public String getBrandName() {
return brandName;
}
public void setBrandName(String brandName) {
this.brandName = brandName;
}
public List<RestaurantsBean> getRestaurants() {
return restaurants;
}
public void setRestaurants(List<RestaurantsBean> restaurants) {
this.restaurants = restaurants;
}
public static class RestaurantsBean {
private int restaurantId;
private String restaurantName;
public int getRestaurantId() {
return restaurantId;
}
public void setRestaurantId(int restaurantId) {
this.restaurantId = restaurantId;
}
public String getRestaurantName() {
return restaurantName;
}
public void setRestaurantName(String restaurantName) {
this.restaurantName = restaurantName;
}
}
}
}
}
}
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
*/ */
package com.gingersoft.gsa.cloud.main.mvp.model.bean; package com.gingersoft.gsa.cloud.ui.bean.view;
import com.qmuiteam.qmui.widget.section.QMUISection.Model; import com.qmuiteam.qmui.widget.section.QMUISection.Model;
import java.util.Objects; import java.util.Objects;
......
package com.gingersoft.gsa.cloud.ui.bean.view;
import com.qmuiteam.qmui.widget.section.QMUISection.Model;
import java.util.Objects;
/**
* 單個圖片
*/
public class SectionImageItem implements Model<SectionImageItem> {
private int image;
public SectionImageItem(int image) {
this.image = image;
}
public int getImage() {
return image;
}
@Override
public SectionImageItem cloneForDiff() {
return new SectionImageItem(getImage());
}
@Override
public boolean isSameItem(SectionImageItem other) {
return Objects.equals(image, other.image);
}
@Override
public boolean isSameContent(SectionImageItem other) {
return true;
}
}
package com.gingersoft.gsa.cloud.ui.bean.view;
import com.qmuiteam.qmui.widget.section.QMUISection.Model;
import java.util.Objects;
/**
* 文字加圖片
*/
public class SectionNormalItem implements Model<SectionNormalItem> {
private int image;
private String text;
public SectionNormalItem(int image, String text) {
this.image = image;
this.text = text;
}
public String getText() {
return text;
}
public int getImage() {
return image;
}
@Override
public SectionNormalItem cloneForDiff() {
return new SectionNormalItem(getImage(), getText());
}
@Override
public boolean isSameItem(SectionNormalItem other) {
return Objects.equals(text, other.text);
}
@Override
public boolean isSameContent(SectionNormalItem other) {
return true;
}
}
package com.gingersoft.gsa.cloud.ui.bean.view;
import com.qmuiteam.qmui.widget.section.QMUISection.Model;
import java.util.Objects;
/**
* 單個文字
*/
public class SectionTextItem implements Model<SectionTextItem> {
private int id;
private String text;
public SectionTextItem(int id, String text) {
this.id = id;
this.text = text;
}
public SectionTextItem(String text) {
this.text = text;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getText() {
return text;
}
@Override
public SectionTextItem cloneForDiff() {
return new SectionTextItem(getText());
}
@Override
public boolean isSameItem(SectionTextItem other) {
return Objects.equals(text, other.text);
}
@Override
public boolean isSameContent(SectionTextItem other) {
return true;
}
}
package com.gingersoft.gsa.cloud.ui.bean.view;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2018/11/27
* 修订历史:2018/11/27
* 描述:
*/
public class TagViewBean {
private boolean checked = false;
private String tagName;
private int id;
public TagViewBean(boolean checked, String tagName, int id) {
this.checked = checked;
this.tagName = tagName;
this.id = id;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public boolean isChecked() {
return checked;
}
public void setChecked(boolean checked) {
this.checked = checked;
}
public String getTagName() {
return tagName;
}
public void setTagName(String tagName) {
this.tagName = tagName;
}
}
package com.gingersoft.gsa.cloud.ui.recylcler;
import android.content.Context;
import android.util.AttributeSet;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2019-10-26
* 修订历史:2019-10-26
* 描述:
*/
public class RecyclerViewNoBugLinearLayoutManager extends LinearLayoutManager {
public RecyclerViewNoBugLinearLayoutManager(Context context) {
super(context);
}
public RecyclerViewNoBugLinearLayoutManager(Context context, int orientation, boolean reverseLayout) {
super(context, orientation, reverseLayout);
}
public RecyclerViewNoBugLinearLayoutManager(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
@Override
public void onLayoutChildren(RecyclerView.Recycler recycler, RecyclerView.State state) {
try {
//try catch一下
super.onLayoutChildren(recycler, state);
} catch (IndexOutOfBoundsException e) {
e.printStackTrace();
}
}
}
/*
* Tencent is pleased to support the open source community by making QMUI_Android available.
*
* Copyright (C) 2017-2018 THL A29 Limited, a Tencent company. All rights reserved.
*
* Licensed under the MIT License (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
*
* http://opensource.org/licenses/MIT
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is
* distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* either express or implied. See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.gingersoft.gsa.cloud.ui.recylcler.decorator;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.view.View;
import androidx.core.view.ViewCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
/**
* @author cginechen
* @date 2016-10-21
*/
public class DividerItemDecoration extends RecyclerView.ItemDecoration {
private static final int[] ATTRS = new int[]{
android.R.attr.listDivider
};
public static final int HORIZONTAL_LIST = LinearLayoutManager.HORIZONTAL;
public static final int VERTICAL_LIST = LinearLayoutManager.VERTICAL;
private Drawable mDivider;
private int mOrientation;
public DividerItemDecoration(Context context, int orientation) {
final TypedArray a = context.obtainStyledAttributes(ATTRS);
mDivider = a.getDrawable(0);
a.recycle();
setOrientation(orientation);
}
public void setOrientation(int orientation) {
if (orientation != HORIZONTAL_LIST && orientation != VERTICAL_LIST) {
throw new IllegalArgumentException("invalid orientation");
}
mOrientation = orientation;
}
@Override
public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {
if (mOrientation == VERTICAL_LIST) {
drawVertical(c, parent);
} else {
drawHorizontal(c, parent);
}
}
public void drawVertical(Canvas c, RecyclerView parent) {
final int left = parent.getPaddingLeft();
final int right = parent.getWidth() - parent.getPaddingRight();
final int childCount = parent.getChildCount();
for (int i = 0; i < childCount; i++) {
final View child = parent.getChildAt(i);
final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child
.getLayoutParams();
final int top = child.getBottom() + params.bottomMargin +
Math.round(ViewCompat.getTranslationY(child));
final int bottom = top + mDivider.getIntrinsicHeight();
mDivider.setBounds(left, top, right, bottom);
mDivider.draw(c);
}
}
public void drawHorizontal(Canvas c, RecyclerView parent) {
final int top = parent.getPaddingTop();
final int bottom = parent.getHeight() - parent.getPaddingBottom();
final int childCount = parent.getChildCount();
for (int i = 0; i < childCount; i++) {
final View child = parent.getChildAt(i);
final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child
.getLayoutParams();
final int left = child.getRight() + params.rightMargin +
Math.round(ViewCompat.getTranslationX(child));
final int right = left + mDivider.getIntrinsicHeight();
mDivider.setBounds(left, top, right, bottom);
mDivider.draw(c);
}
}
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
if (mOrientation == VERTICAL_LIST) {
outRect.set(0, 0, 0, mDivider.getIntrinsicHeight());
} else {
outRect.set(0, 0, mDivider.getIntrinsicWidth(), 0);
}
}
}
/*
* Tencent is pleased to support the open source community by making QMUI_Android available.
*
* Copyright (C) 2017-2018 THL A29 Limited, a Tencent company. All rights reserved.
*
* Licensed under the MIT License (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
*
* http://opensource.org/licenses/MIT
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is
* distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* either express or implied. See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.gingersoft.gsa.cloud.ui.recylcler.decorator;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Rect;
import android.view.View;
import androidx.annotation.ColorInt;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
/**
* @author cginechen
* @date 2016-10-21
*/
public class GridDividerItemDecoration extends RecyclerView.ItemDecoration {
private Paint mPaint;
private int mDividerWidth;
public GridDividerItemDecoration(int height, @ColorInt int color) {
mDividerWidth = height;
mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mPaint.setColor(color);
mPaint.setStyle(Paint.Style.FILL);
}
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
super.getItemOffsets(outRect, view, parent, state);
int itemPosition = ((RecyclerView.LayoutParams) view.getLayoutParams()).getViewLayoutPosition();
int spanCount = getSpanCount(parent);
boolean isfirsColumn = isfirsColumn(itemPosition, spanCount);
boolean isLastColumn = isLastColumn(itemPosition, spanCount);
boolean isfirstRow = isfirstRow(itemPosition, spanCount);
int top;
int left;
int right;
int bottom;
int eachWidth = (spanCount - 1) * mDividerWidth / spanCount;
int dl = mDividerWidth - eachWidth;
left = itemPosition % spanCount * dl;
right = eachWidth - left;
bottom = mDividerWidth;
if (isfirstRow) {
top = mDividerWidth;
} else {
top = 0;
}
if (isfirsColumn) {
left = mDividerWidth;
}
if (isLastColumn) {
right = mDividerWidth;
}
outRect.set(left, top, right, bottom);
}
@Override
public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {
super.onDraw(c, parent, state);
draw(c, parent);
}
private void draw(Canvas canvas, RecyclerView parent) {
int childSize = parent.getChildCount();
for (int i = 0; i < childSize; i++) {
View child = parent.getChildAt(i);
RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) child.getLayoutParams();
/**
* 画水平分隔线
*/
int left = child.getLeft();
int right = child.getRight();
int top = child.getBottom() + layoutParams.bottomMargin;
int bottom = top + mDividerWidth;
canvas.drawRect(left, top, right, bottom, mPaint);
/**
* 画垂直分割线
*/
top = child.getTop();
bottom = child.getBottom() + mDividerWidth;
left = child.getRight() + layoutParams.rightMargin;
right = left + mDividerWidth;
canvas.drawRect(left, top, right, bottom, mPaint);
int spanCount = getSpanCount(parent);
/**
* 如果是第一行
*/
if (isfirstRow(i, spanCount)) {
canvas.drawRect(0, 0, right, mDividerWidth, mPaint);
}
/**
* 如果是第一列
*/
if (isfirsColumn(i, spanCount)) {
canvas.drawRect(0, 0, mDividerWidth, bottom, mPaint);
}
}
}
/**
* 判断是不是第一行
*
* @param pos
* @param spanCount
* @return
*/
private boolean isfirstRow(int pos, int spanCount) {
if ((pos / spanCount + 1) == 1) {
return true;
} else {
return false;
}
}
/**
* 判断是不是第一列
*
* @param pos
* @param spanCount
* @return
*/
private boolean isfirsColumn(int pos, int spanCount) {
if (pos % spanCount == 0) {
return true;
} else {
return false;
}
}
/**
* 判断是不是最后一列
*
* @param pos
* @param spanCount
* @return
*/
private boolean isLastColumn(int pos, int spanCount) {
if ((pos - spanCount + 1) % spanCount == 0) {
return true;
} else {
return false;
}
}
/**
* 列数
*
* @param parent
* @return
*/
private int getSpanCount(RecyclerView parent) {
RecyclerView.LayoutManager layoutManager = parent.getLayoutManager();
return ((GridLayoutManager) layoutManager).getSpanCount();
}
}
package com.gingersoft.gsa.cloud.ui.view;
import android.content.Context;
import android.graphics.Color;
import android.graphics.Typeface;
import android.util.AttributeSet;
import android.view.Gravity;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.R;
import com.gingersoft.gsa.cloud.ui.bean.view.SectionHeader;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import androidx.annotation.Nullable;
/**
* Created by Wyh on 2020/1/10.
*/
public class BaseTextSection extends LinearLayout {
private TextView mTitleTv;
public BaseTextSection(Context context) {
this(context, null);
}
public BaseTextSection(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
setOrientation(LinearLayout.HORIZONTAL);
setGravity(Gravity.CENTER_VERTICAL);
setBackgroundColor(Color.WHITE);
int paddingHor = QMUIDisplayHelper.dp2px(context, 10);
int paddingVer = QMUIDisplayHelper.dp2px(context, 8);
mTitleTv = new TextView(getContext());
mTitleTv.setTextSize(16);
mTitleTv.setTypeface(Typeface.DEFAULT_BOLD);
mTitleTv.setTextColor(getColor(context, R.color.black));
mTitleTv.setPadding(paddingHor, paddingVer, paddingHor, paddingVer);
mTitleTv.setGravity(Gravity.CENTER_VERTICAL);
addView(mTitleTv, new LayoutParams(0, ViewGroup.LayoutParams.WRAP_CONTENT, 1f));
setBackgroundColor(getColor(context, R.color.theme_white_color));
}
private int getColor(Context context, int colorId) {
return context.getResources().getColor(colorId);
}
// public ImageView getArrowView() {
// return mArrowView;
// }
public void render(SectionHeader header, boolean isFold) {
mTitleTv.setText(header.getText());
}
//
// @Override
// protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
// super.onMeasure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(headerHeight, MeasureSpec.EXACTLY));
// }
}
\ No newline at end of file
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