登录注册+商品列表+商品详情

/--------依赖------------/

//Recycleview依赖
compile 'com.android.support:recyclerview-v7:26.0.0-alpha1'
compile 'com.jcodecraeer:xrecyclerview:1.3.2'
//GSON依赖
compile 'com.google.code.gson:gson:2.2.4'
//butterknife(黄油刀)
compile 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
//SimpleDraweeView加载图片的依赖:
compile 'com.facebook.fresco:fresco:1.5.0'
//rxjava
compile 'io.reactivex:rxjava:1.1.6'
compile 'io.reactivex:rxandroid:1.2.1'
//retrofit2
compile 'com.squareup.retrofit2:retrofit:2.3.0'
compile 'com.squareup.retrofit2:converter-gson:2.3.0'
compile 'com.squareup.retrofit2:adapter-rxjava:2.3.0'
//glide依赖包
compile 'com.github.bumptech.glide:glide:3.7.0'
/----------权限---------------/

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

工具包 

public class HttpConfig {

    //https://www.zhaoapi.cn/product/getProducts
    //当前子分类下的商品列表(分页)
    public static String base_url="http://120.27.23.105/";

}
 

接口Service

public interface MyService {
    //登录
    @FormUrlEncoded
    @POST("user/login")
    Observable<LoginUserBean> loginpost(@FieldMap Map<String,String> map);

    //注册
    @FormUrlEncoded
    @POST("user/reg")
    Observable<RegBean> regpost(@FieldMap Map<String,String> map);

    //获取商品列表
    @GET("product/getProducts")
    Observable<GoodsBean> getGoodsListData(@Query("pscid") String pscid,@Query("page") String page);
    //添加购物车
    //添加购物车
    @GET("product/addCart")
    Observable<AddBean> addCart(@Query("uid") String uid, @Query("pid") String pid);

}
网络请求工具包
public class RetrofitUtils {
    //单利模式
    private static RetrofitUtils retrofitUtils;
    private final Retrofit retrofit;

    public static RetrofitUtils getRetrofitUtils(){
        //判断
        if(retrofitUtils==null){
            retrofitUtils=new RetrofitUtils();
        }
        return retrofitUtils;
    }

    public RetrofitUtils(){
        retrofit=new Retrofit.Builder()
                .baseUrl(HttpConfig.base_url)
                .addConverterFactory(GsonConverterFactory.create(new Gson()))
                .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
                .build();
    }

    public <T> T createRequest(Class<T> clz){
        T t = retrofit.create(clz);
        return t;
    }

}
 

M层  

public interface IModel {
    //登录
    void login(Map<String,String> map);
    //注册
    void reg(Map<String,String> map);
    //获取商品列表
    void getGoodsListData(String pscid,String page);
    void getGoodsListFresh(String pscid,String page);
    void getGoodsListLoadMore(String pscid,String page);
    //添加购物车
    void addCart(String uid, String pid);
    //购物车

}

P层 接口

public interface IPresenter {

    //登录
    void loginPresenter(IModel iModel, IView iView);
    //接收参数
    void getLogin(LoginUserBean loginUserBean);
    //接收失败的提示
    void getErrorData(String msg);

    //注册
    void regPresenter(IModel iModel, IRegView iRegView);
    //接收参数
    void getReg(RegBean regBean);
    //接收失败的提示
    void getRegErrorData(String msg);

    //--------------商品列表----------------
    //得到商品列表数据
    //关联M和V层
    void getGoodsList(IModel iModel,IGoodsView iGoodsView);
    void getGoodsListFresh(IModel iModel,IGoodsView iGoodsView);
    void getGoodsListLoadMore(IModel iModel,IGoodsView iGoodsView);
    //展示列表数据
    void getGoodsListData(List<GoodsBean.DataBean> list);
    void getGoodsListFresh(List<GoodsBean.DataBean> list);
    void getGoodsListLoadMore(List<GoodsBean.DataBean> list);
    //错误提示
    void getGoodsListError(String error);
    //-----------添加购物车
    void addCart(IModel iModel, IDetailView iDetailView);

    void addSuccess();

    void addError();
}

V层  接口

public interface IView {
    //登录成功
    void loginSuccess();
    //登录失败
    void loginError(String error);
    //获取手机号
    String getMobile();
    //获取密码
    String getPassword();
}
实体类

public class ModelImp1 implements IModel{
    private static final String TAG = "ModelImp1---";
    //关联p层
    private IPresenter iPresenter;

    public ModelImp1(IPresenter iPresenter) {
        this.iPresenter = iPresenter;
    }

    //登录
    @Override
    public void login(Map<String, String> map) {

        //使用retrofit

        RetrofitUtils retrofitUtils = RetrofitUtils.getRetrofitUtils();
        MyService myService = retrofitUtils.createRequest(MyService.class);
        myService.loginpost(map)
                .subscribeOn(Schedulers.newThread())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<LoginUserBean>() {
                    @Override
                    public void onCompleted() {

                        Log.d(TAG, "onCompleted: 完成-----");
                    }

                    @Override
                    public void onError(Throwable e) {
                        Log.d(TAG, "onError: 异常-----"+e.getMessage());
                        //调用p层的错误提示方法
                        iPresenter.getErrorData(e.getMessage());
                    }

                    @Override
                    public void onNext(LoginUserBean loginUserBean) {
                        //把值传给p层
                        Log.d(TAG, "onNext: "+loginUserBean);

                        //判断
                        if(loginUserBean.getCode().equals("0")){
                            iPresenter.getLogin(loginUserBean);
                        }else{
                            iPresenter.getErrorData("请先注册---");
                        }
                    }
                });


    }

    //注册
    @Override
    public void reg(Map<String, String> map) {
        RetrofitUtils retrofitUtils = RetrofitUtils.getRetrofitUtils();
        MyService myService = retrofitUtils.createRequest(MyService.class);
        myService.regpost(map)
                .subscribeOn(Schedulers.newThread())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<RegBean>() {
                    @Override
                    public void onCompleted() {
                        Log.d(TAG, "onCompleted: 注册完成----");
                    }

                    @Override
                    public void onError(Throwable e) {
                        Log.d(TAG, "onError: 异常---"+e.getMessage());
                        iPresenter.getRegErrorData("注册失败--");
                    }

                    @Override
                    public void onNext(RegBean regBean) {
                        Log.d(TAG, "onNext: "+regBean);
                        //判断
                        if(regBean.getCode().equals("0")){
                            iPresenter.getReg(regBean);
                        }else{
                            iPresenter.getRegErrorData("注册失败");
                        }
                    }
                });

    }

    //----------------商品列表页面------------------
    @Override
    public void getGoodsListData(String pscid, String page) {
        //retrofit网络请求
        RetrofitUtils retrofitUtils = RetrofitUtils.getRetrofitUtils();
        MyService myService = retrofitUtils.createRequest(MyService.class);
        myService.getGoodsListData(pscid, page)
                .subscribeOn(Schedulers.newThread())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<GoodsBean>() {
                    @Override
                    public void onCompleted() {
                        Log.d(TAG, "onCompleted: 商品列表完成----");
                    }

                    @Override
                    public void onError(Throwable e) {
                        Log.d(TAG, "onError: 异常------"+e);

                    }

                    @Override
                    public void onNext(GoodsBean goodsBean) {
                        String code = goodsBean.getCode();
                        Log.d("test",code + "===============");
                        if(code.equals("0")){
                            iPresenter.getGoodsListData(goodsBean.getData());
                        }else{
                            Log.d(TAG, "onNext: "+goodsBean);
                        }

                    }
                });
    }

    @Override
    public void getGoodsListFresh(String pscid, String page) {
        //retrofit网络请求
        RetrofitUtils retrofitUtils = RetrofitUtils.getRetrofitUtils();
        MyService myService = retrofitUtils.createRequest(MyService.class);
        myService.getGoodsListData(pscid, page)
                .subscribeOn(Schedulers.newThread())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<GoodsBean>() {
                    @Override
                    public void onCompleted() {
                        Log.d(TAG, "onCompleted: 商品列表完成----");
                    }

                    @Override
                    public void onError(Throwable e) {
                        Log.d(TAG, "onError: 异常------"+e);

                    }

                    @Override
                    public void onNext(GoodsBean goodsBean) {
                        String code = goodsBean.getCode();
                        if(code.equals("0")){
                            iPresenter.getGoodsListData(goodsBean.getData());
                        }else{
                            Log.d(TAG, "onNext: "+goodsBean);
                        }

                    }
                });
    }

    @Override
    public void getGoodsListLoadMore(String pscid, String page) {
        //retrofit网络请求
        RetrofitUtils retrofitUtils = RetrofitUtils.getRetrofitUtils();
        MyService myService = retrofitUtils.createRequest(MyService.class);
        myService.getGoodsListData(pscid, page)
                .subscribeOn(Schedulers.newThread())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<GoodsBean>() {
                    @Override
                    public void onCompleted() {
                        Log.d(TAG, "onCompleted: 商品列表完成----");
                    }

                    @Override
                    public void onError(Throwable e) {
                        Log.d(TAG, "onError: 异常------"+e);

                    }

                    @Override
                    public void onNext(GoodsBean goodsBean) {
                        String code = goodsBean.getCode();
                        if(code.equals("0")){
                            iPresenter.getGoodsListData(goodsBean.getData());
                        }else{
                            Log.d(TAG, "onNext: "+goodsBean);
                        }

                    }
                });
    }

    //添加购物车
    @Override
    public void addCart(String uid, String pid) {
        RetrofitUtils retrofitUtils = RetrofitUtils.getRetrofitUtils();
        MyService myService = retrofitUtils.createRequest(MyService.class);
        myService.addCart(uid,pid)
                .subscribeOn(Schedulers.newThread())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<AddBean>() {
                    @Override
                    public void onCompleted() {
                        Log.d(TAG, "tainjai--- ");
                    }

                    @Override
                    public void onError(Throwable e) {
                        Log.d(TAG, "tainjai失败---: ");
                        iPresenter.addError();
                    }

                    @Override
                    public void onNext(AddBean addBean) {
                        Log.d(TAG, "addBean: "+addBean);
                        if (addBean.getCode().equals("0")){
                            iPresenter.addSuccess();
                        }else {
                            iPresenter.addError();
                        }
                    }
                });
    }

}
P 实体类

public class PresenterImp1 implements IPresenter{
    //关联V层
    private IView iView;
    private IRegView iRegView;
    private IGoodsView iGoodsView;
    private IDetailView iDetailView;
    private static final String TAG = "PresenterImp1===";

    @Override
    public void loginPresenter(IModel iModel, IView iView) {
        
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值