Commit 142fb551 by 宁斌

添加清機頁面

parent cfa82849
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.gingersoft.gsa.cloud.main">
<uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application
android:name="com.gingersoft.gsa.cloud.base.application.GsaCloudApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:networkSecurityConfig="@xml/network_android"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".mvp.ui.activity.ReportActivity"/>
<activity android:name=".mvp.ui.activity.MainActivity" />
<activity
android:name=".mvp.ui.activity.NewMainActivity"
android:theme="@style/MainTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data
android:name="com.gingersoft.gsa.cloud.globalconfig.GlobalConfiguration"
android:value="ConfigModule" />
<meta-data
android:name="design_width_in_dp"
android:value="360" />
<meta-data
android:name="design_height_in_dp"
android:value="540" />
</application>
</manifest>
\ No newline at end of file
<<<<<<< Original<<<<<<< Original<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.gingersoft.gsa.cloud.main">
<uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application
android:name="com.gingersoft.gsa.cloud.base.application.GsaCloudApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:networkSecurityConfig="@xml/network_android"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".mvp.ui.activity.ReportActivity" />
<activity android:name=".mvp.ui.activity.MainActivity" />
<activity
android:name=".mvp.ui.activity.NewMainActivity"
android:theme="@style/MainTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data
android:name="com.gingersoft.gsa.cloud.globalconfig.GlobalConfiguration"
android:value="ConfigModule" />
<meta-data
android:name="design_width_in_dp"
android:value="360" />
<meta-data
android:name="design_height_in_dp"
android:value="540" />
</application>
</manifest>=======<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.gingersoft.gsa.cloud.main.mvp">
<application>
<activity android:name="com.gingersoft.gsa.cloud.main.mvp.ui.activity.SettlementReportActivity"></activity>
</application>
</manifest>>>>>>>> Added
=======<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.gingersoft.gsa.cloud.main">
<application>
<activity android:name="com.gingersoft.gsa.cloud.main.mvp.ui.activity.SettlementActivity"></activity>
</application>
</manifest>>>>>>>> Added
package com.gingersoft.gsa.cloud.main.di.component;
import dagger.BindsInstance;
import dagger.Component;
import com.jess.arms.di.component.AppComponent;
import com.gingersoft.gsa.cloud.main.di.module.SettlementModule;
import com.gingersoft.gsa.cloud.main.mvp.contract.SettlementContract;
import com.jess.arms.di.scope.ActivityScope;
import com.gingersoft.gsa.cloud.main.mvp.ui.activity.SettlementActivity;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 03/04/2020 21:37
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
@ActivityScope
@Component(modules = SettlementModule.class, dependencies = AppComponent.class)
public interface SettlementComponent {
void inject(SettlementActivity activity);
@Component.Builder
interface Builder {
@BindsInstance
SettlementComponent.Builder view(SettlementContract.View view);
SettlementComponent.Builder appComponent(AppComponent appComponent);
SettlementComponent build();
}
}
\ No newline at end of file
package com.gingersoft.gsa.cloud.main.di.component;
import dagger.BindsInstance;
import dagger.Component;
import com.jess.arms.di.component.AppComponent;
import com.gingersoft.gsa.cloud.main.di.module.SettlementReportModule;
import com.gingersoft.gsa.cloud.main.mvp.contract.SettlementReportContract;
import com.jess.arms.di.scope.ActivityScope;
import com.gingersoft.gsa.cloud.main.mvp.ui.activity.SettlementReportActivity;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 03/04/2020 21:36
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
@ActivityScope
@Component(modules = SettlementReportModule.class, dependencies = AppComponent.class)
public interface SettlementReportComponent {
void inject(SettlementReportActivity activity);
@Component.Builder
interface Builder {
@BindsInstance
SettlementReportComponent.Builder view(SettlementReportContract.View view);
SettlementReportComponent.Builder appComponent(AppComponent appComponent);
SettlementReportComponent build();
}
}
\ No newline at end of file
package com.gingersoft.gsa.cloud.main.di.module;
import com.jess.arms.di.scope.ActivityScope;
import dagger.Binds;
import dagger.Module;
import dagger.Provides;
import com.gingersoft.gsa.cloud.main.mvp.contract.SettlementContract;
import com.gingersoft.gsa.cloud.main.mvp.model.SettlementModel;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 03/04/2020 21:37
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
@Module
public abstract class SettlementModule {
@Binds
abstract SettlementContract.Model bindSettlementModel(SettlementModel model);
}
\ No newline at end of file
package com.gingersoft.gsa.cloud.main.di.module;
import com.jess.arms.di.scope.ActivityScope;
import dagger.Binds;
import dagger.Module;
import dagger.Provides;
import com.gingersoft.gsa.cloud.main.mvp.contract.SettlementReportContract;
import com.gingersoft.gsa.cloud.main.mvp.model.SettlementReportModel;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 03/04/2020 21:36
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
@Module
public abstract class SettlementReportModule {
@Binds
abstract SettlementReportContract.Model bindSettlementReportModel(SettlementReportModel model);
}
\ No newline at end of file
package com.gingersoft.gsa.cloud.main.mvp.contract;
import com.jess.arms.mvp.IView;
import com.jess.arms.mvp.IModel;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 03/04/2020 21:37
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
public interface SettlementContract {
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface View extends IView {
}
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends IModel{
}
}
package com.gingersoft.gsa.cloud.main.mvp.contract;
import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.mvp.IView;
import com.jess.arms.mvp.IModel;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 03/04/2020 21:36
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
public interface SettlementReportContract {
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface View extends IView {
void setSettlementReportItemAdapter(DefaultAdapter adapter);
// void returnSettlementData(SettlementResult.DatasBean datasBean);
}
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends IModel{
}
}
package com.gingersoft.gsa.cloud.main.mvp.model;
import android.app.Application;
import com.google.gson.Gson;
import com.jess.arms.integration.IRepositoryManager;
import com.jess.arms.mvp.BaseModel;
import com.jess.arms.di.scope.ActivityScope;
import javax.inject.Inject;
import com.gingersoft.gsa.cloud.main.mvp.contract.SettlementContract;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 03/04/2020 21:37
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
@ActivityScope
public class SettlementModel extends BaseModel implements SettlementContract.Model{
@Inject
Gson mGson;
@Inject
Application mApplication;
@Inject
public SettlementModel(IRepositoryManager repositoryManager) {
super(repositoryManager);
}
@Override
public void onDestroy() {
super.onDestroy();
this.mGson = null;
this.mApplication = null;
}
}
\ No newline at end of file
package com.gingersoft.gsa.cloud.main.mvp.model;
import android.app.Application;
import com.google.gson.Gson;
import com.jess.arms.integration.IRepositoryManager;
import com.jess.arms.mvp.BaseModel;
import com.jess.arms.di.scope.ActivityScope;
import javax.inject.Inject;
import com.gingersoft.gsa.cloud.main.mvp.contract.SettlementReportContract;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 03/04/2020 21:36
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
@ActivityScope
public class SettlementReportModel extends BaseModel implements SettlementReportContract.Model{
@Inject
Gson mGson;
@Inject
Application mApplication;
@Inject
public SettlementReportModel(IRepositoryManager repositoryManager) {
super(repositoryManager);
}
@Override
public void onDestroy() {
super.onDestroy();
this.mGson = null;
this.mApplication = null;
}
}
\ No newline at end of file
package com.gingersoft.gsa.cloud.main.mvp.model.bean;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-03-04
* 修订历史:2020-03-04
* 描述:
*/
public class SettlementReportItem {
private String leftText;
private String centerText;
private String rightText;
public SettlementReportItem(String leftText, String centerText, String rightText) {
this.leftText = leftText;
this.centerText = centerText;
this.rightText = rightText;
}
public String getLeftText() {
return leftText;
}
public void setLeftText(String leftText) {
this.leftText = leftText;
}
public String getCenterText() {
return centerText;
}
public void setCenterText(String centerText) {
this.centerText = centerText;
}
public String getRightText() {
return rightText;
}
public void setRightText(String rightText) {
this.rightText = rightText;
}
}
package com.gingersoft.gsa.cloud.main.mvp.presenter;
import android.app.Application;
import com.jess.arms.integration.AppManager;
import com.jess.arms.di.scope.ActivityScope;
import com.jess.arms.mvp.BasePresenter;
import com.jess.arms.http.imageloader.ImageLoader;
import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import javax.inject.Inject;
import com.gingersoft.gsa.cloud.main.mvp.contract.SettlementContract;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 03/04/2020 21:37
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
@ActivityScope
public class SettlementPresenter extends BasePresenter<SettlementContract.Model, SettlementContract.View> {
@Inject
RxErrorHandler mErrorHandler;
@Inject
Application mApplication;
@Inject
ImageLoader mImageLoader;
@Inject
AppManager mAppManager;
@Inject
public SettlementPresenter (SettlementContract.Model model, SettlementContract.View rootView) {
super(model, rootView);
}
@Override
public void onDestroy() {
super.onDestroy();
this.mErrorHandler = null;
this.mAppManager = null;
this.mImageLoader = null;
this.mApplication = null;
}
}
package com.gingersoft.gsa.cloud.main.mvp.presenter;
import android.app.Application;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.SettlementReportItem;
import com.gingersoft.gsa.cloud.main.mvp.ui.activity.SettlementReportActivity;
import com.gingersoft.gsa.cloud.main.mvp.ui.adapter.SettlementReportItemAdapter;
import com.jess.arms.integration.AppManager;
import com.jess.arms.di.scope.ActivityScope;
import com.jess.arms.mvp.BasePresenter;
import com.jess.arms.http.imageloader.ImageLoader;
import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import javax.inject.Inject;
import com.gingersoft.gsa.cloud.main.mvp.contract.SettlementReportContract;
import java.util.ArrayList;
import java.util.List;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 03/04/2020 21:36
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
@ActivityScope
public class SettlementReportPresenter extends BasePresenter<SettlementReportContract.Model, SettlementReportContract.View> {
@Inject
RxErrorHandler mErrorHandler;
@Inject
Application mApplication;
@Inject
ImageLoader mImageLoader;
@Inject
AppManager mAppManager;
private SettlementReportActivity IActivity;
private SettlementReportItemAdapter reportItemAdapter;
private List<SettlementReportItem> mList;
@Inject
public SettlementReportPresenter (SettlementReportContract.Model model, SettlementReportContract.View rootView) {
super(model, rootView);
}
@Override
public void onDestroy() {
super.onDestroy();
this.mErrorHandler = null;
this.mAppManager = null;
this.mImageLoader = null;
this.mApplication = null;
}
public void initAdapter() {
if (reportItemAdapter == null) {
mList = new ArrayList<>();
reportItemAdapter = new SettlementReportItemAdapter(IActivity, mList);
mRootView.setSettlementReportItemAdapter(reportItemAdapter);
}
}
public void notifyDataSetChanged(List<SettlementReportItem> settlementReportItems) {
mList.clear();
mList.addAll(settlementReportItems);
reportItemAdapter.notifyDataSetChanged();
}
}
......@@ -287,7 +287,7 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N
}
};
@OnClick({R2.id.layout_login_out, R2.id.iv_personal_center,R2.id.tv_restaurant_name})
@OnClick({R2.id.layout_login_out, R2.id.iv_personal_center,R2.id.tv_restaurant_name,R2.id.tv_clearance})
@Override
public void onClick(View v) {
if (v.getId() == R.id.layout_login_out) {
......@@ -297,6 +297,9 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N
slideMenu.toggle();
} else if (v.getId() == R.id.tv_restaurant_name) {
showChooseRestaurantDialog();
} else if (v.getId() == R.id.tv_clearance) {
}
}
......
package com.gingersoft.gsa.cloud.main.mvp.ui.activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import com.gingersoft.gsa.cloud.base.utils.LanguageUtils;
import com.jess.arms.base.BaseActivity;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils;
import com.gingersoft.gsa.cloud.main.mvp.contract.SettlementContract;
import com.gingersoft.gsa.cloud.main.mvp.presenter.SettlementPresenter;
import com.qmuiteam.qmui.widget.QMUITopBar;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import butterknife.BindView;
import static com.jess.arms.utils.Preconditions.checkNotNull;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 03/04/2020 21:37
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
public class SettlementActivity extends BaseActivity<SettlementPresenter> implements SettlementContract.View {
@BindView(R2.id.topbar)
QMUITopBar mTopBar;
@Override
public void setupActivityComponent(@NonNull AppComponent appComponent) {
DaggerSettlementComponent //如找不到该类,请编译一下项目
.builder()
.appComponent(appComponent)
.view(this)
.build()
.inject(this);
}
@Override
public int initView(@Nullable Bundle savedInstanceState) {
return R.layout.activity_settlement; //如果你不需要框架帮你设置 setContentView(id) 需要自行设置,请返回 0
}
@Override
public void initData(@Nullable Bundle savedInstanceState) {
}
@Override
public void initIntent() {
}
@Override
public void initTopBar() {
mTopBar.setBackgroundColor(ContextCompat.getColor(this, R2.color.theme_color));
mTopBar.addLeftBackImageButton().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
killMyself();
// overridePendingTransition(R.anim.slide_still, R.anim.slide_out_right);
}
});
mTopBar.setTitle(LanguageUtils.get_language_system(this, "funcSelect.settlement", "清機"));
}
@Override
public void initLanguage() {
}
@Override
public void initLayoutParams() {
}
@Override
public void initLayoutVisible() {
}
@Override
public void showLoading(String message) {
}
@Override
public void hideLoading() {
}
@Override
public void showMessage(@NonNull String message) {
checkNotNull(message);
ArmsUtils.snackbarText(message);
}
@Override
public void launchActivity(@NonNull Intent intent) {
checkNotNull(intent);
ArmsUtils.startActivity(intent);
}
@Override
public void killMyself() {
finish();
}
}
package com.gingersoft.gsa.cloud.main.mvp.ui.activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.main.R2;
import com.jess.arms.base.BaseActivity;
import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils;
import com.gingersoft.gsa.cloud.main.mvp.contract.SettlementReportContract;
import com.gingersoft.gsa.cloud.main.mvp.presenter.SettlementReportPresenter;
import com.qmuiteam.qmui.widget.QMUITopBar;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.DefaultItemAnimator;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import static com.jess.arms.utils.Preconditions.checkNotNull;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 03/04/2020 21:36
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
public class SettlementReportActivity extends BaseActivity<SettlementReportPresenter> implements SettlementReportContract.View {
@BindView(R2.id.topbar)
QMUITopBar mTopBar;
@BindView(R2.id.tv_name)
TextView tv_name;
@BindView(R2.id.tv_start_time)
TextView tv_start_time;
@BindView(R2.id.tv_end_time)
TextView tv_end_time;
@BindView(R2.id.rv_settlement_report_item)
RecyclerView rv_settlement_report_item;
@Override
public void setupActivityComponent(@NonNull AppComponent appComponent) {
DaggerSettlementReportComponent //如找不到该类,请编译一下项目
.builder()
.appComponent(appComponent)
.view(this)
.build()
.inject(this);
}
@Override
public int initView(@Nullable Bundle savedInstanceState) {
return R.layout.activity_settlement_report; //如果你不需要框架帮你设置 setContentView(id) 需要自行设置,请返回 0
}
@Override
public void initData(@Nullable Bundle savedInstanceState) {
}
@Override
public void initIntent() {
}
@Override
public void initTopBar() {
mTopBar.setBackgroundColor(ContextCompat.getColor(this, R2.color.theme_color));
mTopBar.addLeftBackImageButton().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
killMyself();
// overridePendingTransition(R.anim.slide_still, R.anim.slide_out_right);
}
});
mTopBar.setTitle(LanguageUtils.get_language_system(this, "function.order.detail2", "清機報表"));
// mTopBar.addRightTextButton("打印", R.id.right_img).setOnClickListener(new View.OnClickListener() {
//
// @Override
// public void onClick(View v) {
// if (result != null) {
//
// String businessStartTimeRow = LanguageUtils.get_language_system(SettlementReportActivity.this, "from.business.hours", "由營業日期") + " : " + startTime;
// String businessEndTimeRow = LanguageUtils.get_language_system(SettlementReportActivity.this, "to.business.hours", "到營業日期") + " : " + endTime;
//
// PrintSettlementReport settlementReport = new PrintSettlementReport();
// settlementReport.setBrandMachineNameRow(GSAApplication.machineName);
// settlementReport.setShopNameRow(LanguageUtils.get_language_system(SettlementReportActivity.this, "shop.number", "店鋪編號") + " : " + GSAApplication.androidSetting.getShopId());
// settlementReport.setBusinessStartTimeRow(businessStartTimeRow);
// settlementReport.setBusinessEndTimeRow(businessEndTimeRow);
// settlementReport.setReportName(LanguageUtils.get_language_system(SettlementReportActivity.this, "EODReport", "清機報表"));
// settlementReport.setResult(result);
// PrintAction.getInstance().performN5PrintSettlementReport(SettlementReportActivity.this, settlementReport, new PrintAction.onPrintListener() {
//
// @Override
// public void success() {
//
// }
//
// @Override
// public void failure(String error) {
//
// }
// });
// }
// }
// });
}
@Override
public void initLanguage() {
}
@Override
public void initLayoutParams() {
}
@Override
public void initLayoutVisible() {
}
@Override
public void showLoading(String message) {
}
@Override
public void hideLoading() {
}
@Override
public void showMessage(@NonNull String message) {
checkNotNull(message);
ArmsUtils.snackbarText(message);
}
@Override
public void launchActivity(@NonNull Intent intent) {
checkNotNull(intent);
ArmsUtils.startActivity(intent);
}
@Override
public void killMyself() {
finish();
}
@Override
public void setSettlementReportItemAdapter(DefaultAdapter adapter) {
setSettlementReportItemRecycleLayoutManager();
rv_settlement_report_item.setAdapter(adapter);
}
public void setSettlementReportItemRecycleLayoutManager() {
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
rv_settlement_report_item.setLayoutManager(linearLayoutManager);
rv_settlement_report_item.setItemAnimator(new DefaultItemAnimator());
}
}
package com.gingersoft.gsa.cloud.main.mvp.ui.adapter;
import android.content.Context;
import android.view.View;
import android.widget.TextView;
import com.gingersoft.gsa.cloud.main.R2;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.SettlementReportItem;
import com.jess.arms.base.BaseHolder;
import com.jess.arms.base.DefaultAdapter;
import java.util.List;
import butterknife.BindView;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2018/6/27
* 修订历史:2018/6/27
* 描述:
*/
public class SettlementReportItemAdapter extends DefaultAdapter<SettlementReportItem> {
private Context mContext;
public SettlementReportItemAdapter(Context context, List<SettlementReportItem> infos) {
super(infos);
this.mContext = context;
}
@Override
public int getItemCount() {
return mInfos.size();
}
@Override
public BaseHolder<SettlementReportItem> getHolder(View v, int viewType) {
return new SettlementReportItemHolder(v);
}
@Override
public int getLayoutId(int viewType) {
return R.layout.item_settlement_report;
}
class SettlementReportItemHolder extends BaseHolder<SettlementReportItem> {
@BindView(R2.id.tv_left)
TextView tv_left;
@BindView(R2.id.tv_center)
TextView tv_center;
@BindView(R2.id.tv_right)
TextView tv_right;
public SettlementReportItemHolder(View itemView) {
super(itemView);
}
@Override
public void setData(SettlementReportItem reportItem, int position) {
tv_left.setText(reportItem.getLeftText());
tv_center.setText(reportItem.getCenterText());
tv_right.setText(reportItem.getRightText());
}
}
}
......@@ -135,6 +135,15 @@
android:text="設置"
android:textColor="@color/white"
android:textSize="@dimen/sp_17" />
<TextView
android:id="@+id/tv_clearance"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_14"
android:text="清機"
android:textColor="@color/white"
android:textSize="@dimen/sp_17" />
</LinearLayout>
<View
......
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<com.qmuiteam.qmui.widget.QMUIWindowInsetLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.qmuiteam.qmui.widget.QMUITopBar
android:id="@+id/topbar"
android:layout_width="match_parent"
android:layout_height="?attr/qmui_topbar_height"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/theme_white_color"
android:orientation="vertical"
android:layout_marginTop="?attr/qmui_topbar_height">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/dp_10"
android:orientation="vertical">
<TextView
android:id="@+id/tv_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/black"
android:textSize="@dimen/sp_16"
android:text="店鋪名稱:gingersoft"/>
<TextView
android:id="@+id/tv_start_time"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/black"
android:layout_marginTop="@dimen/dp_5"
android:textSize="@dimen/sp_14"
android:text=""/>
<TextView
android:id="@+id/tv_end_time"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/black"
android:textSize="@dimen/sp_14"
android:layout_marginTop="@dimen/dp_5"
android:text=""/>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/dp_0_5"
android:background="@color/theme_grey_color"
android:layout_marginTop="@dimen/dp_8"/>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_settlement_report_item"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="@null"
android:fadeScrollbars="false"/>
</LinearLayout>
</com.qmuiteam.qmui.widget.QMUIWindowInsetLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/cl_container"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_25">
<TextView
android:id="@+id/tv_left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="left"
android:textColor="@color/black"
android:textSize="@dimen/sp_14"
android:layout_marginLeft="@dimen/dp_15"
app:layout_constraintBottom_toBottomOf="@+id/tv_center"
app:layout_constraintLeft_toLeftOf="@+id/cl_container" />
<TextView
android:id="@+id/tv_center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_120"
android:text="center"
android:textColor="@color/black"
android:textSize="@dimen/sp_14"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="right"
android:textColor="@color/black"
android:textSize="@dimen/sp_14"
android:layout_marginRight="@dimen/dp_15"
app:layout_constraintBottom_toBottomOf="@+id/tv_center"
app:layout_constraintRight_toRightOf="@+id/cl_container" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
......@@ -42,7 +42,7 @@ android {
/**
* 版本号
*/
schemaVersion 14
schemaVersion 1
/**
* greendao输出dao的数据库操作实体类文件夹(相对路径 包名+自定义路径名称,包将创建于包名的直接路径下)
*/
......
......@@ -130,11 +130,15 @@ public class OrderBean {
private long parentId;
private long orderId;
/**商品父級ID*/
private long topId;
public OrderDetailsBean() {
}
public OrderDetailsBean(String productName, long productId,long parentId, double price, double lunchboxPrice, int number,byte type, long orderId) {
public OrderDetailsBean(String productName, long productId,long parentId, double price, double lunchboxPrice,
int number,byte type, long orderId) {
this.productName = productName;
this.productId = productId;
this.parentId = parentId;
......@@ -232,6 +236,14 @@ public class OrderBean {
public void setOrderId(long orderId) {
this.orderId = orderId;
}
public long getTopId() {
return topId;
}
public void setTopId(long topId) {
this.topId = topId;
}
}
// public static List<OrderDetailsBean> transOrderDetails(List<Food> foods) {
......
......@@ -67,14 +67,14 @@ public class OrderDetail implements Serializable {
*/
private long id;
/**
* 订单ID
*/
private long orderId;
/**
* 父级ID
*/
private long parentId;
/**
* 订单ID
*/
private long orderId;
/**
* 商品名称
*/
private String productName;
......@@ -83,6 +83,10 @@ public class OrderDetail implements Serializable {
*/
private long productId;
/**
* 商品組id
*/
private long topId;
/**
* 總價格(已經x數量)
*/
private double price = 0;
......@@ -475,6 +479,14 @@ public class OrderDetail implements Serializable {
this.printseting = printseting;
}
public long getTopId() {
return topId;
}
public void setTopId(long topId) {
this.topId = topId;
}
/**
* 已送單食品轉換
*
......@@ -541,9 +553,10 @@ public class OrderDetail implements Serializable {
public static OrderDetail foodTransOrderDetails(Food foods, int number) {
OrderDetail orderDetail = new OrderDetail();
orderDetail.setProductName(foods.getFoodName());
orderDetail.setId(foods.getId());
orderDetail.setProductId(foods.getId());
orderDetail.setTopId(0);
orderDetail.setId(0);
orderDetail.setParentId(0);
orderDetail.setProductId(foods.getId());
// orderDetail.setParentId(foods.getParentId());
orderDetail.setUnit_price(foods.getPrice());
orderDetail.setPrice(number * orderDetail.getUnit_price());
......@@ -569,16 +582,16 @@ public class OrderDetail implements Serializable {
* @param isRvMealClicked
* @return
*/
public static OrderDetail comboTransOrderDetail(ComboItem foodCombo, int number, long fid, String prop, boolean isRvMealClicked) {
public static OrderDetail comboTransOrderDetail(ComboItem foodCombo, long id,int number, String prop, boolean isRvMealClicked) {
OrderDetail orderDetail = new OrderDetail();
orderDetail.setProductName(foodCombo.getName());
if (foodCombo.getFid() != null) {
orderDetail.setId(foodCombo.getFid());
orderDetail.setTopId(foodCombo.getFid());
}
if (foodCombo.getComId() != null) {
orderDetail.setProductId(foodCombo.getComId());
}
orderDetail.setParentId(fid);
orderDetail.setParentId(id);
orderDetail.setUnit_price(foodCombo.getPrice());
orderDetail.setPrice(number * orderDetail.getUnit_price());
orderDetail.setNumber(number);
......@@ -606,11 +619,12 @@ public class OrderDetail implements Serializable {
* @param number
* @return
*/
public static OrderDetail modifierTransOrderDetail(Modifier modifier, int number) {
public static OrderDetail modifierTransOrderDetail(Modifier modifier,long id, int number) {
OrderDetail orderDetail = new OrderDetail();
orderDetail.setProductName(modifier.getModifierName());
orderDetail.setId(modifier.getMid());
orderDetail.setParentId(modifier.getFid());
orderDetail.setTopId(modifier.getFid());
orderDetail.setParentId(id);
orderDetail.setProductId(modifier.getMid());
orderDetail.setUnit_price(modifier.getPrice());
orderDetail.setPrice(number * orderDetail.getUnit_price());
orderDetail.setNumber(number);
......
......@@ -68,34 +68,25 @@ public class ComboItem {
private String name2;
@Transient
private long parentId;
/**
* 價格
*/
/**默認選中數*/
@Transient
private String defmodifier = "0";
/**價格*/
@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;
......@@ -129,6 +120,7 @@ public class ComboItem {
}
public Long getId() {
return id;
}
......@@ -337,6 +329,14 @@ public class ComboItem {
this.modifier = modifier;
}
public String getDefmodifier() {
return defmodifier;
}
public void setDefmodifier(String defmodifier) {
this.defmodifier = defmodifier;
}
public static ComboItem addFoodInfo(Food food, ComboItem foodCombo) {
foodCombo.setName(food.getFoodName());
foodCombo.setFid(food.getId());
......
......@@ -31,7 +31,7 @@ public class Food {
/**
* ID
*/
@Property(nameInDb = "_id")
@Property(nameInDb = "FID")
@Id(autoincrement = true)
private Long id;
......
......@@ -27,6 +27,8 @@ public class FoodCombo {
private Long fid; //食品ID
private int comId;//套餐ID
// private String defmodifier;
// private String excmodifier;
// /**
// * 自定義字段
// */
......@@ -67,6 +69,10 @@ public class FoodCombo {
@Generated(hash = 1913989231)
public FoodCombo() {
}
@Generated(hash = 34188725)
public FoodCombo(Long id, Long fid, int comId) {
this.id = id;
......@@ -74,10 +80,6 @@ public class FoodCombo {
this.comId = comId;
}
@Generated(hash = 1913989231)
public FoodCombo() {
}
public Long getId() {
return this.id;
}
......@@ -102,6 +104,4 @@ public class FoodCombo {
this.comId = comId;
}
}
......@@ -207,7 +207,9 @@ public class Modifier {
/**
* 自定義字段
*/
/**當前食品ID*/
/**
* 當前食品ID
*/
@Transient
private long fid;
@Transient
......@@ -222,12 +224,16 @@ public class Modifier {
@Transient
/**最大選中數*/
private int maxNumber = 99;
/**默認選中數*/
@Transient
private String defmodifier = "0";
@Transient
/**是否選中*/
private boolean selected;
@Transient
/**是否細項組返回按鈕*/
private boolean isReturn;
private boolean isReturn = false;
@Generated(hash = 869528398)
......@@ -300,6 +306,7 @@ public class Modifier {
}
public Long getDbid() {
return dbid;
}
......@@ -762,4 +769,13 @@ public class Modifier {
public void setPId(String pId) {
this.pId = pId;
}
public String getDefmodifier() {
return defmodifier;
}
public void setDefmodifier(String defmodifier) {
this.defmodifier = defmodifier;
}
}
......@@ -14,10 +14,10 @@ import org.greenrobot.greendao.identityscope.IdentityScopeType;
// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
/**
* Master of DAO (schema version 14): knows all DAOs.
* Master of DAO (schema version 1): knows all DAOs.
*/
public class DaoMaster extends AbstractDaoMaster {
public static final int SCHEMA_VERSION = 14;
public static final int SCHEMA_VERSION = 1;
/** Creates underlying database table using DAOs. */
public static void createAllTables(Database db, boolean ifNotExists) {
......
......@@ -24,7 +24,7 @@ public class FoodDao extends AbstractDao<Food, Long> {
* Can be used for QueryBuilder and for referencing column names.
*/
public static class Properties {
public final static Property Id = new Property(0, Long.class, "id", true, "_id");
public final static Property Id = new Property(0, Long.class, "id", true, "FID");
public final static Property ParentId = new Property(1, Long.class, "parentId", false, "PARENT_ID");
public final static Property RestaurantId = new Property(2, Long.class, "restaurantId", false, "RESTAURANT_ID");
public final static Property IsParent = new Property(3, Byte.class, "isParent", false, "IS_PARENT");
......@@ -106,7 +106,7 @@ public class FoodDao extends AbstractDao<Food, Long> {
public static void createTable(Database db, boolean ifNotExists) {
String constraint = ifNotExists? "IF NOT EXISTS ": "";
db.execSQL("CREATE TABLE " + constraint + "\"FOOD\" (" + //
"\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id
"\"FID\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id
"\"PARENT_ID\" INTEGER," + // 1: parentId
"\"RESTAURANT_ID\" INTEGER," + // 2: restaurantId
"\"IS_PARENT\" INTEGER," + // 3: isParent
......
......@@ -162,14 +162,16 @@ public class ComboItemDaoUtils {
ArrayList<ComboItem> comboItems = new ArrayList<>();
String sql = "SELECT c.*,f.FOOD_NAME,f.FOOD_NAME1,f.FOOD_NAME2,f.PRICE,f.AUTO_MOD FROM COMBO_ITEM c join FOOD f on c.FID=f._id and f.INVISIBLE=0 join FOOD_COMBO r on r.COM_ID=c.COM_ID ";
// String sql = "SELECT c.*,f.FOOD_NAME,f.FOOD_NAME1,f.FOOD_NAME2,f.PRICE,f.AUTO_MOD FROM COMBO_ITEM c join FOOD f on c.FID=f.FID and f.INVISIBLE=0 join FOOD_COMBO r on r.COM_ID=c.COM_ID ";
String sql = "SELECT c.*,f.FOOD_NAME,f.FOOD_NAME1,f.FOOD_NAME2,f.PRICE,f.AUTO_MOD FROM COMBO_ITEM c join FOOD f on c.FID=f.FID and f.INVISIBLE=0 join FOOD_COMBO r on r.COM_ID=c.COM_ID ";
if (fid > 0) {
sql = sql + " where r.FID='" + fid + "'";
}
Cursor c = mManager.getDaoSession().getFoodDao().getDatabase().rawQuery(sql, null);
while (c.moveToNext()) {
ComboItem order = new ComboItem();
order.setFid(c.getLong(c.getColumnIndex("_id")));
order.setFid(c.getLong(c.getColumnIndex("FID")));
order.setComId(c.getLong(c.getColumnIndex("COM_ID")));
order.setPrice(c.getDouble(c.getColumnIndex("PRICE")));
order.setSeqNo(c.getLong(c.getColumnIndex("SEQ_NO")));
......
......@@ -34,6 +34,7 @@ public class ModifierDaoUtils {
public static final int modifierMode_Msg = 702;
public static final int modifierMode_Add_2 = 703; //二级下的mod_taste=1
public static final int modifierMode_Msg_2 = 704; //二级下的mod_msg=1
public static final int modifierMode_Child = 705; //isPatent=1內的子項
public ModifierDaoUtils(Context context) {
......@@ -289,13 +290,12 @@ public class ModifierDaoUtils {
}
public List<Modifier> queryModifiersByFid(long fid, int mode) {
QueryBuilder<Modifier> queryBuilder = mManager.getDaoSession().queryBuilder(Modifier.class);
// String sql = " SELECT MODIFIER.mid,MODIFIER_NAME,MODIFIER_NAME1,MODIFIER_NAME2,TOP_ID,PRICE,MOD_COMM,MOD_TASTE,MOD_MSG,VISIBLE,MULTIPLE,IS_PARENT" +
// " FROM MODIFIER join FOOD_MODIFIER on MODIFIER.MID=FOOD_MODIFIER.MID where MODIFIER.VISIBLE=0 and FOOD_MODIFIER.FID='" + fid + "' order by FOOD_MODIFIER.seq,MODIFIER.SEQ_NO";
String sql = " SELECT MODIFIER.MID,MODIFIER_NAME,MODIFIER_NAME1,MODIFIER_NAME2,TOP_ID,PRICE,MOD_COMM,MOD_TASTE,MOD_MSG,VISIBLE,MULTIPLE,IS_PARENT" +
" FROM MODIFIER join FOOD_MODIFIER on MODIFIER.MID=FOOD_MODIFIER.MID where MODIFIER.INVISIBLE=0 and FOOD_MODIFIER.FID='" + fid + "' order by FOOD_MODIFIER.SEQ_NO,MODIFIER.SEQ_NO";
" FROM MODIFIER join FOOD_MODIFIER fm on MODIFIER.MID=FOOD_MODIFIER.MID where MODIFIER.INVISIBLE=0 and FOOD_MODIFIER.FID='" + fid + "' order by FOOD_MODIFIER.SEQ_NO,MODIFIER.SEQ_NO";
List<Modifier> mfs_child = new ArrayList<>();
......@@ -307,14 +307,14 @@ public class ModifierDaoUtils {
switch (mode) {
case modifierMode_All:
sqlstr = " SELECT MODIFIER.MID,MODIFIER_NAME,MODIFIER_NAME1,MODIFIER_NAME2,TOP_ID,PRICE,MOD_COMM,MOD_TASTE,MOD_MSG,VISIBLE,MULTIPLE,IS_PARENT" +
sqlstr = " SELECT MODIFIER.MID,MODIFIER_NAME,MODIFIER_NAME1,MODIFIER_NAME2,TOP_ID,PRICE,MOD_COMM,MOD_TASTE,MOD_MSG,VISIBLE,MULTIPLE,IS_PARENT,DEFMODIFIER" +
" FROM MODIFIER join FOOD_MODIFIER on MODIFIER.TOP_ID=FOOD_MODIFIER.MID where MODIFIER.INVISIBLE=0 and MODIFIER.IS_PARENT=1 and FOOD_MODIFIER.FID='" + fid + "' order by FOOD_MODIFIER.SEQ_NO,MODIFIER.SEQ_NO";
mfs_child1 = query_modifier_Child_new(sqlstr, fid);
List<Modifier> mfs_child2 = new ArrayList<>();
sqlstr = " SELECT MODIFIER.MID,MODIFIER_NAME,MODIFIER_NAME1,MODIFIER_NAME2,TOP_ID,PRICE,MOD_COMM,MOD_TASTE,MOD_MSG,VISIBLE,MULTIPLE,IS_PARENT" +
sqlstr = " SELECT MODIFIER.MID,MODIFIER_NAME,MODIFIER_NAME1,MODIFIER_NAME2,TOP_ID,PRICE,MOD_COMM,MOD_TASTE,MOD_MSG,VISIBLE,MULTIPLE,IS_PARENT,DEFMODIFIER" +
" FROM MODIFIER join FOOD_MODIFIER on MODIFIER.TOP_ID=FOOD_MODIFIER.MID where MODIFIER.INVISIBLE=0 and MODIFIER.IS_PARENT=0 and FOOD_MODIFIER.FID='" + fid + "' order by FOOD_MODIFIER.SEQ_NO,MODIFIER.SEQ_NO";
mfs_child2 = query_modifier_Child_new(sqlstr, fid);
......@@ -337,6 +337,10 @@ public class ModifierDaoUtils {
// sqlstr = " topid='" + fid + "' and visible=0";
// mfs_child1 = query_modifier_Child(sqlstr, fid);
// break;
case modifierMode_Child:
sqlstr = " topid='" + fid + "' and visible=0";
// mfs_child1 = query_modifier_Child(sqlstr, fid);
break;
}
// mfs_child.addAll(fms1);
......@@ -364,6 +368,7 @@ public class ModifierDaoUtils {
order.setModMsg(c.getLong(c.getColumnIndex("MOD_MSG")));
order.setModTaste(c.getLong(c.getColumnIndex("MOD_TASTE")));
order.setMultiple(c.getDouble(c.getColumnIndex("MULTIPLE")));
// order.setDefmodifier(c.getString(c.getColumnIndex("DEFMODIFIER")));
// if (order.isVisible()) {
modifiers.add(order);
// }
......
......@@ -96,6 +96,8 @@ public interface MealStandContract {
void setMealRvScrollToPosition(int position);
Activity getActivity();
void setModifierTop(int Margins);
}
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
......@@ -115,7 +117,7 @@ public interface MealStandContract {
List<Food> queryDB_FoodList(long parentId);
List<Modifier> queryDB_ModifierList(long fid);
List<Modifier> queryDB_ModifierList(long fid,int mode);
List<ComboItem> queryDB_ComboList(long fid);
......
......@@ -65,6 +65,45 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model
this.mApplication = null;
}
@Override
public List<Food> queryDB_FoodGroupList() {
FoodDaoUtils foodDaoUtils = new FoodDaoUtils(mApplication);
List<Food> foods = foodDaoUtils.queryFoodGroupByQueryBuilder();
return foods;
}
@Override
public List<Food> queryDB_FoodList(long parentId) {
FoodDaoUtils foodDaoUtils = new FoodDaoUtils(mApplication);
List<Food> foods = foodDaoUtils.queryFoodByQueryBuilder(parentId);
return foods;
}
@Override
public List<Modifier> queryDB_ModifierList(long fid,int mode) {
ModifierDaoUtils daoUtils = new ModifierDaoUtils(mApplication);
return daoUtils.queryModifiersByFid(fid,mode);
}
@Override
public List<ComboItem> queryDB_ComboList(long fid) {
ComboItemDaoUtils comboItemDao = new ComboItemDaoUtils(mApplication);
List<ComboItem> foodCombo = comboItemDao.queryComboItemsByFidQueryBuilder(fid);
return foodCombo;
}
@Override
public List<FoodCombo> isComboFood(long fid) {
FoodComboDaoUtils foodComboDaoUtils = new FoodComboDaoUtils(mApplication);
return foodComboDaoUtils.queryCombosFoodsByQueryBuilder(fid);
}
@Override
public List<FoodModifier> queryDB_FoodModifierList(long fid) {
return null;
}
@Override
public Observable<BaseRespose> loadOrder(int orderId) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
......@@ -105,45 +144,6 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model
}
@Override
public List<Food> queryDB_FoodGroupList() {
FoodDaoUtils foodDaoUtils = new FoodDaoUtils(mApplication);
List<Food> foods = foodDaoUtils.queryFoodGroupByQueryBuilder();
return foods;
}
@Override
public List<Food> queryDB_FoodList(long parentId) {
FoodDaoUtils foodDaoUtils = new FoodDaoUtils(mApplication);
List<Food> foods = foodDaoUtils.queryFoodByQueryBuilder(parentId);
return foods;
}
@Override
public List<Modifier> queryDB_ModifierList(long fid) {
ModifierDaoUtils daoUtils = new ModifierDaoUtils(mApplication);
return daoUtils.queryModifiersByFid(fid,ModifierDaoUtils.modifierMode_All);
}
@Override
public List<ComboItem> queryDB_ComboList(long fid) {
ComboItemDaoUtils comboItemDao = new ComboItemDaoUtils(mApplication);
List<ComboItem> foodCombo = comboItemDao.queryComboItemsByFidQueryBuilder(fid);
return foodCombo;
}
@Override
public List<FoodCombo> isComboFood(long fid) {
FoodComboDaoUtils foodComboDaoUtils = new FoodComboDaoUtils(mApplication);
return foodComboDaoUtils.queryCombosFoodsByQueryBuilder(fid);
}
@Override
public List<FoodModifier> queryDB_FoodModifierList(long fid) {
return null;
}
@Override
public Observable<BaseResult> updateOrderStatus(RequestBody formBody) {
return mRepositoryManager.obtainRetrofitService(OrderPayService.class)
.updateOrderStatus(formBody);
......
......@@ -162,6 +162,10 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
mOrderContentActivity.initOrderDetail();
}
}
@Override
public void onCurrentOrderDetail(OrderDetail datasBean, int position) {
}
});
}
......@@ -297,7 +301,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
for (OrderDetail food : foodList) {
OrderBean.OrderDetailsBean request = new OrderBean.OrderDetailsBean();
request.setProductName(food.getProductName());
request.setProductId(food.getId());
request.setProductId(food.getProductId());
request.setParentId(food.getParentId());
request.setNumber(food.getNumber());
request.setPrice(food.getPrice());
......
......@@ -17,6 +17,7 @@ import com.gingersoft.gsa.cloud.database.bean.FoodCombo;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.database.utils.FoodDaoUtils;
import com.gingersoft.gsa.cloud.database.utils.ModifierDaoUtils;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.mvp.contract.MealStandContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose;
......@@ -169,6 +170,11 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
@Override
public void onMealCountAdd(OrderDetail datasBean, int position) {
}
@Override
public void onCurrentOrderDetail(OrderDetail datasBean, int position) {
mCurrentOrderDetailBean = datasBean;
}
});
mFoodAdapter.setOnItemClickListener(new FoodAdapter.OnItemClickListener() {
......@@ -180,6 +186,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
}
RvMealClicked = false;
mCurrentOrderDetailBean = OrderDetail.foodTransOrderDetails(datasBean, 1);
loadComboData(mCurrentOrderDetailBean, false);
addFoodItemBefore(mCurrentOrderDetailBean);
updateOrderFoodNumber();
}
......@@ -199,7 +206,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
// }
//设置当前操作的套餐细项
mCurrentOrderDetailBean = OrderDetail.comboTransOrderDetail(datasBean, 1, mCurrentOrderDetailBean.getId(), "combo", RvMealClicked);
mCurrentOrderDetailBean = OrderDetail.comboTransOrderDetail(datasBean, mCurrentOrderDetailBean.getId(),1, "combo", RvMealClicked);
//先清除上一次选择的子项最大数
// mModel.clearComboQty();
//添加子项
......@@ -223,15 +230,17 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
// addModalKeyBoardModfier(datasBean.getModifier());
// displayModalKeyBoardDialog();
// } else {
addModifierItem(datasBean);
// if (datasBean.isParent()) {
// loadModifierData(mCurrentOrderDetailBean.getProductId());
// } else {
addModifierItem(datasBean);
// }
}
});
}
private void addFoodItemBefore(OrderDetail datasBean) {
loadComboData(mCurrentOrderDetailBean, false);
int addPosition = addFoodItem(datasBean);
//这里主食品作为选中主体
......@@ -242,24 +251,28 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
int addPosition = mSelectMealAdapter.addFoodItem(orderDetail);
// if (orderDetail.getComboLevel() > 0) {
// //自动添加组合子食品
// if (mCurrentFoodComboList != null && mCurrentFoodComboList.size() > 0) {
// for (int i = 0; i < mCurrentFoodComboList.size(); i++) {
// ComboItem foodComboItem = mCurrentFoodComboList.get(i);
// mCurrentOrderDetailBean = OrderDetail.comboTransOrderDetail(foodComboItem, 1, mCurrentOrderDetailBean.getId(),"combo", RvMealClicked);
// addPosition = addComboItem(mCurrentOrderDetailBean);
// }
// }
// }
if (orderDetail.getComboLevel() > 0) {
//自动添加组合子食品
if (mFoodComboList != null && mFoodComboList.size() > 0) {
for (int i = 0; i < mFoodComboList.size(); i++) {
ComboItem foodComboItem = mFoodComboList.get(i);
int defNumber = Integer.parseInt(foodComboItem.getDefmodifier());
if (defNumber != 0) {
mCurrentOrderDetailBean = OrderDetail.comboTransOrderDetail(foodComboItem, mCurrentOrderDetailBean.getId(), defNumber, "combo", RvMealClicked);
addPosition = addComboItem(mCurrentOrderDetailBean);
}
}
}
}
// if (mAutoModifierList != null && mAutoModifierList.size() > 0) {
// //自动添加mixqty>1細項
// for (int i = 0; i < mAutoModifierList.size(); i++) {
// Modifier.DatasBean modfier = mAutoModifierList.get(i);
// mSelectMealAdapter.addFoodItem(myOrderManage.modifierConvertOrderDetail(modfier));
// }
// }
//自动添加mixqty>1細項
for (int i = 0; i < mModifierList.size(); i++) {
Modifier modfier = mModifierList.get(i);
int defNumber = Integer.parseInt(modfier.getDefmodifier());
if (defNumber != 0) {
addPosition = mSelectMealAdapter.addFoodItem(OrderDetail.modifierTransOrderDetail(modfier,mCurrentOrderDetailBean.getId(), defNumber));
}
}
return addPosition;
}
......@@ -272,7 +285,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
@Subscriber(tag = MealConstant.ADD_FOOD_MODIFIER)
private void addModifierItem(Modifier datasBean) {
mCurrentOrderDetailBean = OrderDetail.modifierTransOrderDetail(datasBean, 1);
mCurrentOrderDetailBean = OrderDetail.modifierTransOrderDetail(datasBean,mCurrentOrderDetailBean.getId(), 1);
int addPosition = mSelectMealAdapter.addFoodItem(mCurrentOrderDetailBean);
mRootView.setMealRvScrollToPosition(addPosition);
}
......@@ -287,38 +300,16 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
List<ComboItem> comboItems = mModel.queryDB_ComboList(fid);
comboItemList.addAll(comboItems);
}
List<Modifier> modifierList = mModel.queryDB_ModifierList(fid);
// for (int i = 0; i < modifierList.size(); i++) {
// Modifier modfier = modifierList.get(i);
// /**
// * 这里套餐细项和备注使用同一个rv显示,统一数据源
// */
// {
// //设置备注细项背景、字体颜色
// modfier.setBgColor(Color.parseColor("#ffeb3b"));
//
// ComboItem foodComboItem = new ComboItem();
// foodComboItem.setModifier(true);
//// if (modfier.isParent()) {
//// foodComboItem.setModKeyboard(modfier.isModKeyboard());
//// }
// foodComboItem.setModifier(modfier);
//
// mCurrentFoodComboList.add(foodComboItem);
// }
// }
List<Modifier> modifierList = mModel.queryDB_ModifierList(fid, ModifierDaoUtils.modifierMode_All);
//更新套餐数据
updateComboData(comboItemList);
//更新细项数据
updateModifierData(modifierList);
if (comboItemList.size() > 0) {
IActivity.setModifierTop(10);
mRootView.setModifierTop(10);
} else {
IActivity.setModifierTop(0);
mRootView.setModifierTop(0);
}
// if (food.getAutoMod() == 1) {
......@@ -328,6 +319,13 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
// }
}
private void loadModifierData(long fid) {
List<Modifier> modifierList = mModel.queryDB_ModifierList(fid, ModifierDaoUtils.modifierMode_Child);
updateModifierData(modifierList);
}
public void createOrder() {
OrderRequest request = getCreateOrderRequest(getNewOrderFoodLists());
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), JsonUtils.toJson(request));
......
......@@ -1028,6 +1028,7 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen
}
}
@Override
public void setModifierTop(int Margins) {
RelativeLayout.LayoutParams layoutParam = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
layoutParam.setMargins(0, Margins, 0, 0);
......
......@@ -626,7 +626,7 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
private void setItemNo(OrderDetail foodBean) {
switch (foodBean.getItemType()) {
case 1:
// foodBean.setParentId(foodBean.getProductId());
// foodBean.setTopId(foodBean.getProductId());
break;
case 2:
case 3:
......@@ -640,7 +640,7 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
}
}
}
foodBean.setParentId(itemno);
foodBean.setTopId(itemno);
break;
default:
break;
......@@ -871,6 +871,9 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
select_start_position = mainStartPos;
select_end_position = mainEndPos;
if(mOnItemClickListener != null){
mOnItemClickListener.onCurrentOrderDetail(mInfos.get(select_position),select_position);
}
notifyDataSetChanged();
}
......@@ -961,6 +964,8 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
void onMealCountDelete(OrderDetail datasBean, int position);
void onMealCountAdd(OrderDetail datasBean, int position);
void onCurrentOrderDetail(OrderDetail datasBean, int position);
}
}
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