| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- package cn.seecoder.courselearningdemo.viewmodel;
- import androidx.lifecycle.LiveData;
- import androidx.lifecycle.MutableLiveData;
- import androidx.lifecycle.ViewModel;
- import java.util.ArrayList;
- import java.util.List;
- import cn.seecoder.courselearningdemo.model.CourseOrder;
- import cn.seecoder.courselearningdemo.model.PageInfo;
- import cn.seecoder.courselearningdemo.model.ResultVO;
- import cn.seecoder.courselearningdemo.repository.CourseOrderRepository;
- import cn.seecoder.courselearningdemo.repository.CourseRepository;
- import cn.seecoder.courselearningdemo.utils.Constant;
- import retrofit2.Call;
- import retrofit2.Callback;
- import retrofit2.Response;
- import cn.seecoder.courselearningdemo.model.Course;
- import cn.seecoder.courselearningdemo.network.RetrofitClient;
- import cn.seecoder.courselearningdemo.utils.LoadState;
- import cn.seecoder.courselearningdemo.utils.LogUtil;
- public class HomeViewModel extends ViewModel {
- private String uid = null;
- private String queryKey = "";
- private Integer currentPage = 1;
- private MutableLiveData<LoadState> stateData;
- private MutableLiveData<List<Course>> courseListData;
- private MutableLiveData<Boolean> courseOrderFlag = new MutableLiveData<>();
- private CourseOrderRepository courseOrderRepository= new CourseOrderRepository();
- private CourseRepository courseRepository= CourseRepository.getCourseRepository();
- public HomeViewModel(){
- }
- public void setUid(String uid) {
- this.uid = uid;
- query();
- }
- public String getUid() {
- return uid;
- }
- public void setQueryKey(String queryKey) {
- this.queryKey = queryKey.trim();
- }
- public LiveData<LoadState> getState(){
- return stateData;
- }
- public LiveData<List<Course>> getData() {
- if (courseListData == null) {
- courseListData = new MutableLiveData<>();
- stateData = new MutableLiveData<>();
- loadData();
- }
- return courseListData;
- }
- public LiveData<Boolean> getCourseOrderFlag(){
- return courseOrderFlag;
- }
- public void getNextPageData(){
- currentPage ++;
- loadData();
- }
- public void query(){
- currentPage = 1;
- courseListData.setValue(new ArrayList<>());
- loadData();
- }
- private void loadData(){
- stateData.setValue(LoadState.LOADING);
- courseRepository.getCourseListData(currentPage,uid,queryKey,courseListData,stateData);
- currentPage =courseRepository.getCurrentPage();
- }
- public void createCourseOrder(Course course){
- // 生成待支付订单
- CourseOrder order = new CourseOrder();
- order.setUserId(uid);
- order.setCourseId(course.getId());
- order.setCourseName(course.getName());
- order.setCost(course.getCost());
- // 订单状态设为未支付
- order.setStatus(Constant.ORDER_STATUS_UNPAID);
- // 调用后端生成订单的接口
- courseOrderFlag=courseOrderRepository.createCourseOrder(order);
- if(courseOrderRepository.getSuccessCreatedFlag()==true)
- sendCourseOrderSuccessNotify(course.getId());
- }
- private void sendCourseOrderSuccessNotify(Integer courseId){
- System.out.println("sendCourseOrderSuccessNotify uid = "+uid);
- Call<ResultVO<String>> sendCourseOrderSuccessNotify = RetrofitClient.notifyService.sendCourseOrderSuccessNotify(uid, courseId);
- sendCourseOrderSuccessNotify.enqueue(new Callback<ResultVO<String>>() {
- @Override
- public void onResponse(Call<ResultVO<String>> call, Response<ResultVO<String>> response) {
- if(response.body() == null || response.body().getCode() == null)
- LogUtil.e("sendCourseOrderSuccessNotify", "response Null Error!");
- else if(response.body().getCode().equals(Constant.REQUEST_SUCCESS))
- LogUtil.i("sendCourseOrderSuccessNotify", "success");
- else
- LogUtil.i("sendCourseOrderSuccessNotify", "fail");
- }
- @Override
- public void onFailure(Call<ResultVO<String>> call, Throwable t) {
- LogUtil.i("sendCourseOrderSuccessNotify", "Call fail"+ t.getMessage() + " caused by: "+t.getCause());
- }
- });
- }
- }
|