mvp

//model层

package com.bawie.zhoukaomoni.mvp.model;

/**

  • @Author:asus

  • @E-mail: 945574298@163.com

  • @Date:2019/3/16 14:20

  • @Description:描述信息
    */
    public interface IModel {
    void getModel(ModelCallBack modelCallBack);
    interface ModelCallBack{
    void onSuccess(Object data);
    void onFail(Exception e);

    }
    }

//model实现类‘’

package com.bawie.zhoukaomoni.mvp.model;

import com.bawie.zhoukaomoni.bean.ShopBean;
import com.bawie.zhoukaomoni.http.OkHttp;

/**

  • @Author:asus

  • @E-mail: 945574298@163.com

  • @Date:2019/3/16 14:24

  • @Description:描述信息
    */
    public class IModelImpl implements IModel {
    String Base_url=“http://172.17.8.100/small/commodity/v1/commodityList”;
    @Override
    public void getModel(final ModelCallBack modelCallBack) {
    OkHttp.getInstance().doGet(Base_url, ShopBean.class, new OkHttp.NetCallBack() {
    @Override
    public void LoadSuccess(Object obj) {
    modelCallBack.onSuccess(obj);

         }
    
         @Override
         public void LoadFail() {
    
         }
     });
    

    }
    }

//presenter

package com.bawie.zhoukaomoni.mvp.presenter;

import com.bawie.zhoukaomoni.mvp.view.Iview;

/**

  • @Author:asus
  • @E-mail: 945574298@163.com
  • @Date:2019/3/16 14:22
  • @Description:描述信息
    */
    public interface Ipresenter {
    void getPreData();
    void attchView(Iview iview);
    void Detchview(Iview iview);
    }

//presenter实现类

package com.bawie.zhoukaomoni.mvp.presenter;

import com.bawie.zhoukaomoni.MainActivity;
import com.bawie.zhoukaomoni.mvp.model.IModel;
import com.bawie.zhoukaomoni.mvp.model.IModelImpl;
import com.bawie.zhoukaomoni.mvp.view.Iview;

import java.lang.ref.SoftReference;

/**

  • @Author:asus

  • @E-mail: 945574298@163.com

  • @Date:2019/3/16 14:29

  • @Description:描述信息
    */
    public class IpresenterImpl implements Ipresenter {

    private IModelImpl iModel;
    MainActivity mainActivity;
    private SoftReference iModelSoftReference;

    @Override
    public void getPreData() {
    iModel.getModel(new IModel.ModelCallBack() {
    @Override
    public void onSuccess(Object data) {
    mainActivity.getView(data);
    }

    @Override
    public void onFail(Exception e) {
    
    }
    

    });
    }

    @Override
    public void attchView(Iview iview) {
    this.mainActivity= (MainActivity) iview;
    iModel = new IModelImpl();
    iModelSoftReference = new SoftReference(iModel);

    }

    @Override
    public void Detchview(Iview iview) {
    iview = null;
    }
    }

//view层

package com.bawie.zhoukaomoni.mvp.view;

/**

  • @Author:asus
  • @E-mail: 945574298@163.com
  • @Date:2019/3/16 14:23
  • @Description:描述信息
    */
    public interface Iview {
    void getView(Object data);
    }

//okhttp

package com.bawie.zhoukaomoni.http;

/**

  • @Author:asus
  • @E-mail: 945574298@163.com
  • @Date:2019/3/16 14:13
  • @Description:描述信息
    */

import android.os.Environment;
import android.os.Handler;
import android.util.Log;

import com.google.gson.Gson;

import java.io.File;
import java.io.IOException;
import java.util.concurrent.TimeUnit;

import okhttp3.Cache;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

public class OkHttp {

private OkHttpClient client;
private static volatile OkHttp instance;
private Handler handler = new Handler();

//创建拦截器
private Interceptor getAppInterceptor() {
    Interceptor interceptor = new Interceptor() {
        @Override
        public Response intercept(Chain chain) throws IOException {

            Request request = chain.request();
            Log.e("++++++", "拦截前");
            Response response = chain.proceed(request);
            Log.e("++++++", "拦截后");
            return response;
        }
    };
    return interceptor;
}

//添加拦截器
private OkHttp() {
    File file = new File(Environment.getExternalStorageDirectory(), "cache1");
    client = new OkHttpClient().newBuilder()
            .readTimeout(3000, TimeUnit.SECONDS)
            .connectTimeout(3000, TimeUnit.SECONDS)
            .addInterceptor(getAppInterceptor())
            .cache(new Cache(file, 10 * 1024))
            .build();
}

//创建单例
public static OkHttp getInstance() {
    if (instance == null) {
        synchronized (OkHttp.class) {
            if (null == instance) {
                instance = new OkHttp();
            }
        }
    }
    return instance;
}

//封装doget方法
public void doGet(String url, final Class clazz, final NetCallBack netCallBack) {
    // 2. 创建一个请求对象
    Request request = new Request.Builder()
            .get()
            .url(url)
            .build();
    //创建call对象
    Call call = client.newCall(request);
    call.enqueue(new Callback() {
        @Override
        public void onFailure(Call call, IOException e) {

        }

        @Override
        public void onResponse(Call call, Response response) throws IOException {
            String string = response.body().string();
            Gson gson = new Gson();
            final Object o = gson.fromJson(string, clazz);
            handler.post(new Runnable() {
                @Override
                public void run() {
                    netCallBack.LoadSuccess(o);
                }
            });
        }
    });
}

//封装dopost请求
public void doPost(String url, final Class clazz, String name, String pwd, final NetCallBack netCallBack) {
    //新建okhttp对象
    client = new OkHttpClient();
    /**
     * 通过体传值
     */
    FormBody build = new FormBody.Builder()
            .add("phone", name)
            .add("pwd", pwd)
            .build();
    Request request = new Request.Builder()
            .url(url)
            .post(build)
            .build();
    Call call = client.newCall(request);
    call.enqueue(new Callback() {
        @Override
        public void onFailure(Call call, IOException e) {

        }

        @Override
        public void onResponse(Call call, Response response) throws IOException {
            String string = response.body().string();
            Gson gson = new Gson();
            final Object o = gson.fromJson(string, clazz);
            handler.post(new Runnable() {
                @Override
                public void run() {
                    netCallBack.LoadSuccess(o);
                }
            });
        }
    });
}

public interface NetCallBack {
    void LoadSuccess(Object obj);

    void LoadFail();
}

}

//适配器

package com.bawie.zhoukaomoni.adapter;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.bawie.zhoukaomoni.R;
import com.bawie.zhoukaomoni.bean.ShopBean;
import com.bumptech.glide.Glide;

/**

  • @Author:asus

  • @E-mail: 945574298@163.com

  • @Date:2019/3/16 15:22

  • @Description:描述信息
    */
    public class ShopAdapter extends RecyclerView.Adapter<ShopAdapter.ViewHolder> {
    Context context;
    ShopBean shopBean;

    public ShopAdapter(Context context, ShopBean shopBean){
    this.context = context;
    this.shopBean = shopBean;
    }
    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(context).inflate(R.layout.shop_layout, parent, false);

     return new ViewHolder(view);
    

    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
    Glide.with(context).load(shopBean.getResult().getMlss().getCommodityList().get(position).getMasterPic()).into(holder.imageView);
    holder.textView.setText(shopBean.getResult().getMlss().getCommodityList().get(position).getCommodityName());

    }

    @Override
    public int getItemCount() {
    return shopBean.getResult().getMlss().getCommodityList().size();
    }

    public class ViewHolder extends RecyclerView.ViewHolder {
    private ImageView imageView;
    private TextView textView;
    public ViewHolder(View view) {
    super(view);
    imageView = view.findViewById(R.id.image);
    textView = view.findViewById(R.id.textview);

     }
    

    }
    }

//mainactivity

package com.bawie.zhoukaomoni;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;

import com.bawie.zhoukaomoni.adapter.ShopAdapter;
import com.bawie.zhoukaomoni.bean.ShopBean;
import com.bawie.zhoukaomoni.mvp.presenter.IpresenterImpl;
import com.bawie.zhoukaomoni.mvp.view.Iview;

public class MainActivity extends AppCompatActivity implements Iview {
public static final String TAG=“MainActivity”;
private RecyclerView recyclerView;
private IpresenterImpl ipresenter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ipresenter = new IpresenterImpl();
     ipresenter.attchView(this);
     ipresenter.getPreData();
     initview();
}

private void initview() {
     recyclerView = findViewById(R.id.recycle);
    recyclerView.setLayoutManager(new LinearLayoutManager(this));

}


@Override
public void getView(Object data) {
    if(data!=null){
        ShopBean shopBean= (ShopBean) data;

        ShopAdapter shopAdapter = new ShopAdapter(MainActivity.this, shopBean);
        recyclerView.setAdapter(shopAdapter);

    }
}

@Override
protected void onResume() {
    super.onResume();
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于微信小程序的家政服务预约系统采用PHP语言和微信小程序技术,数据库采用Mysql,运行软件为微信开发者工具。本系统实现了管理员和客户、员工三个角色的功能。管理员的功能为客户管理、员工管理、家政服务管理、服务预约管理、员工风采管理、客户需求管理、接单管理等。客户的功能为查看家政服务进行预约和发布自己的需求以及管理预约信息和接单信息等。员工可以查看预约信息和进行接单。本系统实现了网上预约家政服务的流程化管理,可以帮助工作人员的管理工作和帮助客户查询家政服务的相关信息,改变了客户找家政服务的方式,提高了预约家政服务的效率。 本系统是针对网上预约家政服务开发的工作管理系统,包括到所有的工作内容。可以使网上预约家政服务的工作合理化和流程化。本系统包括手机端设计和电脑端设计,有界面和数据库。本系统的使用角色分为管理员和客户、员工三个身份。管理员可以管理系统里的所有信息。员工可以发布服务信息和查询客户的需求进行接单。客户可以发布需求和预约家政服务以及管理预约信息、接单信息。 本功能可以实现家政服务信息的查询和删除,管理员添加家政服务信息功能填写正确的信息就可以实现家政服务信息的添加,点击家政服务信息管理功能可以看到基于微信小程序的家政服务预约系统里所有家政服务的信息,在添加家政服务信息的界面里需要填写标题信息,当信息填写不正确就会造成家政服务信息添加失败。员工风采信息可以使客户更好的了解员工。员工风采信息管理的流程为,管理员点击员工风采信息管理功能,查看员工风采信息,点击员工风采信息添加功能,输入员工风采信息然后点击提交按钮就可以完成员工风采信息的添加。客户需求信息关系着客户的家政服务预约,管理员可以查询和修改客户需求信息,还可以查看客户需求的添加时间。接单信息属于本系统里的核心数据,管理员可以对接单的信息进行查询。本功能设计的目的可以使家政服务进行及时的安排。管理员可以查询员工信息,可以进行修改删除。 客户可以查看自己的预约和修改自己的资料并发布需求以及管理接单信息等。 在首页里可以看到管理员添加和管理的信息,客户可以在首页里进行家政服务的预约和公司介绍信息的了解。 员工可以查询客户需求进行接单以及管理家政服务信息和留言信息、收藏信息等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值