diff --git a/app/build.gradle b/app/build.gradle
index b4fba75..11184bd 100755
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -110,6 +110,9 @@ dependencies {
     if (isSaleModule.toBoolean()) {
         api project(':saleCenter')
     }
+    if (isLearnModule.toBoolean()) {
+        api project(':learnCenter')
+    }
 //    compile(name: 'orderCenter-debug', ext: 'aar')
 //    compile(name: 'userCenter-debug', ext: 'aar')
 //    compile(name: 'messageCenter-debug', ext: 'aar')
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index ec11555..2e0924b 100755
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -146,7 +146,9 @@
         <activity
             android:name=".ui.MainActivity"
             android:launchMode="singleTask"
-            android:screenOrientation="portrait" />
+            android:screenOrientation="portrait"
+            android:configChanges="orientation|screenSize|keyboardHidden"
+            />
         <activity
             android:name="com.dayu.bigfish.ui.ManagerActivity"
             android:launchMode="singleTask"
diff --git a/app/src/main/java/com/dayu/bigfish/ui/AboutUsActivity.java b/app/src/main/java/com/dayu/bigfish/ui/AboutUsActivity.java
index ce3d9c5..2529dcf 100755
--- a/app/src/main/java/com/dayu/bigfish/ui/AboutUsActivity.java
+++ b/app/src/main/java/com/dayu/bigfish/ui/AboutUsActivity.java
@@ -3,6 +3,7 @@ package com.dayu.bigfish.ui;
 import com.dayu.base.ui.activity.DataBindingActivity;
 import com.dayu.bigfish.AboutUsBinding;
 import com.dayu.bigfish.R;
+import com.dayu.utils.AppUtils;
 
 /**
  * 关于我们
@@ -19,6 +20,8 @@ public class AboutUsActivity extends DataBindingActivity<AboutUsBinding> {
     @Override
     public void initView() {
         mBind.ivBack.setOnClickListener(o -> finish());
+        String versionCode = AppUtils.getPackageNum();
+        mBind.tvVersion.setText(getString(R.string.tv_now_version)+versionCode);
     }
 
 }
diff --git a/app/src/main/java/com/dayu/bigfish/ui/MainActivity.java b/app/src/main/java/com/dayu/bigfish/ui/MainActivity.java
index 5b3d64a..f7feef1 100644
--- a/app/src/main/java/com/dayu/bigfish/ui/MainActivity.java
+++ b/app/src/main/java/com/dayu/bigfish/ui/MainActivity.java
@@ -3,7 +3,6 @@ package com.dayu.bigfish.ui;
 import android.app.NotificationManager;
 import android.content.Context;
 import android.content.Intent;
-import android.graphics.Color;
 import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
@@ -20,7 +19,8 @@ import android.widget.TextView;
 
 import com.alibaba.android.arouter.facade.annotation.Route;
 import com.alibaba.android.arouter.launcher.ARouter;
-import com.bigfish.salecenter.event.SaleTabNumEvent;
+import com.dayu.event.LearnTabNumEvent;
+import com.dayu.event.SaleTabNumEvent;
 import com.bigfish.salecenter.ui.fragment.HomeSaleFragment;
 import com.dayu.base.api.Api;
 import com.dayu.base.api.DownloadService;
@@ -35,16 +35,14 @@ import com.dayu.bigfish.api.protocol.VersionInfo;
 import com.dayu.bigfish.databinding.ActivityMainBinding;
 import com.dayu.bigfish.presenter.main.MainContract;
 import com.dayu.bigfish.presenter.main.MainPresenter;
-import com.dayu.bigfish.ui.fragment.HomeFirstTabFragment;
 import com.dayu.bigfish.ui.service.LocationService;
 import com.dayu.bigfish.utils.HxManager;
 import com.dayu.common.BaseApplication;
 import com.dayu.common.Constants;
 import com.dayu.event.DownloadBean;
 import com.dayu.event.UserInfo;
+import com.dayu.learncenter.ui.fragment.HomeLearnFragment;
 import com.dayu.location.base.LocationUtils;
-import com.dayu.managercenter.ui.fragment.ManagerFragment;
-import com.dayu.message.ui.fragment.HomeMessageFragment;
 import com.dayu.order.common.TabNumEvent;
 import com.dayu.order.ui.activity.OrderDetailsActivity;
 import com.dayu.order.ui.activity.ReceivingActivity;
@@ -54,12 +52,10 @@ import com.dayu.provider.event.RefreshReceivingNum;
 import com.dayu.provider.event.SwtichFragment;
 import com.dayu.provider.router.RouterPath;
 import com.dayu.usercenter.ui.activity2.BusinessTypeActivity;
-import com.dayu.usercenter.ui.fragment.HomePersonFragment;
 import com.dayu.usercenter.ui.fragment.HomeUserFragment;
 import com.dayu.utils.LogUtils;
 import com.dayu.utils.SPUtils;
 import com.dayu.utils.TimeUtils;
-import com.dayu.utils.ToastUtils;
 import com.dayu.utils.UserManager;
 import com.dayu.utils.badgeNumberManger.BadgeNumberManager;
 import com.dayu.widgets.BadgeView;
@@ -73,8 +69,9 @@ import org.greenrobot.eventbus.Subscribe;
 import org.greenrobot.eventbus.ThreadMode;
 
 import java.io.File;
-import java.util.HashMap;
-import java.util.Map;
+
+import cn.jzvd.Jzvd;
+import cn.jzvd.JzvdStd;
 
 /**
  * Created by luofan
@@ -92,6 +89,7 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
 //    private HomeFirstTabFragment firstFragment;
     private HomeSaleFragment saleFragment;
     private HomeOrderFragment secondFragment;
+    private HomeLearnFragment learnFragment;
     //    private HomeMessageFragment thirdFragment;
 //    private HomePersonFragment fourFragment;
     private HomeUserFragment fourFragment;
@@ -99,6 +97,7 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
     private BadgeView mBadgeView;
     private BadgeView mOrderBadgeView;
     private BadgeView mSaleBadgeView;
+    private BadgeView mLearnBadgeView;
 
     @Override
     public int getLayoutId() {
@@ -119,24 +118,25 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
         MobclickAgent.onEvent(this, "go_home");
         saleFragment = HomeSaleFragment.newInstance();
         secondFragment = HomeOrderFragment.newInstance();
+        learnFragment = new HomeLearnFragment();
+        fourFragment = HomeUserFragment.newInstance();
 //        thirdFragment = HomeMessageFragment.newInstance();
 //        fourFragment = HomePersonFragment.newInstance();
-        fourFragment = HomeUserFragment.newInstance();
-        if (UserManager.getInstance().getRole() == Constants.ENGINEER) {
+//        if (UserManager.getInstance().getRole() == Constants.ENGINEER) {
 //            firstFragment = HomeFirstTabFragment.newInstance();
 //            mFragments = new Fragment[]{firstFragment, secondFragment, thirdFragment, fourFragment};
 //            mFirstPositon = 1;
-            mFragments = new Fragment[]{saleFragment, secondFragment, fourFragment};
+            mFragments = new Fragment[]{saleFragment, secondFragment, learnFragment,fourFragment};
             mFirstPositon = 0;
-        } else if (UserManager.getInstance().getRole() == Constants.MANAGER_ENGINEER) {
+//        } else if (UserManager.getInstance().getRole() == Constants.MANAGER_ENGINEER) {
 //            managerFragment = ManagerFragment.newInstance();
 //            mFragments = new Fragment[]{managerFragment, secondFragment, thirdFragment, fourFragment};
-            mFragments = new Fragment[]{saleFragment, secondFragment, fourFragment};
-            mFirstPositon = 0;
-            mBind.tabFirst.setText(getString(R.string.send_order));
-        }
+//            mFragments = new Fragment[]{saleFragment, secondFragment, learnFragment,fourFragment};
+//            mFirstPositon = 0;
+//            mBind.tabFirst.setText(getString(R.string.send_order));
+//        }
 //        mTabs = new TextView[]{mBind.tabFirst, mBind.tabSecond, mBind.tabThird, mBind.tabFour};
-        mTabs = new TextView[]{mBind.tabSale, mBind.tabSecond, mBind.tabFour};
+        mTabs = new TextView[]{mBind.tabSale, mBind.tabSecond,mBind.tabLearn, mBind.tabFour};
         addFragment();
         initListener();
         doAction(getIntent());
@@ -178,7 +178,8 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
             }
 
         });
-        mBind.tabFour.setOnClickListener(o -> showHideFragment(2, mPosition));
+        mBind.tabLearn.setOnClickListener(o -> showHideFragment(2, mPosition));
+        mBind.tabFour.setOnClickListener(o -> showHideFragment(3, mPosition));
     }
 
     //提示去认证身份
@@ -225,6 +226,7 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
      */
     private void showHideFragment(int showPosition, int hidePosition) {
         if (showPosition == hidePosition) return;
+        if (showPosition != 2) JzvdStd.goOnPlayOnPause();
         mFragmentManger.beginTransaction()
                 .hide(mFragments[hidePosition])
                 .show(mFragments[showPosition])
@@ -314,6 +316,22 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
             mSaleBadgeView.setText("99+");
         }
     }
+    @Subscribe
+    public void changeLearnNum(LearnTabNumEvent event) {
+        if (event.num <= 0)
+            return;
+        if (mLearnBadgeView == null) {
+            mLearnBadgeView = new BadgeView(this);
+            mLearnBadgeView.setTargetView(mBind.tabLearn);
+            mLearnBadgeView.setBadgeGravity(Gravity.CENTER | Gravity.TOP);
+            mLearnBadgeView.setBadgeMargin(20, 0, 0, 0);
+        }
+        if (event.num < 100) {
+            mLearnBadgeView.setText(event.num + "", TextView.BufferType.NORMAL);
+        } else {
+            mLearnBadgeView.setText("99+");
+        }
+    }
 
 
     @Override
@@ -470,9 +488,11 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
     @Override
     public boolean onKeyDown(int keyCode, KeyEvent event) {
         if (keyCode == KeyEvent.KEYCODE_BACK) {
-            // 不退出程序,进入后台
-            moveTaskToBack(true);
-            return true;
+            if (!Jzvd.backPress()) {
+                // 不退出程序,进入后台
+                moveTaskToBack(true);
+                return true;
+            }
         }
         return super.onKeyDown(keyCode, event);
     }
diff --git a/app/src/main/res/drawable/tab_learn_selector.xml b/app/src/main/res/drawable/tab_learn_selector.xml
new file mode 100644
index 0000000..cb30144
--- /dev/null
+++ b/app/src/main/res/drawable/tab_learn_selector.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="@mipmap/img_tab_learn_selected" android:state_selected="true"/>
+    <item android:drawable="@mipmap/img_tab_learn"/>
+</selector>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 946278f..1acf9cc 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -79,6 +79,19 @@
                 android:textColor="#585858"
                 android:textSize="10sp" />
 
+            <TextView
+                android:id="@+id/tab_learn"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="10dp"
+                android:layout_weight="1"
+                android:drawablePadding="2dp"
+                android:drawableTop="@drawable/tab_learn_selector"
+                android:gravity="center"
+                android:text="@string/learn_str"
+                android:textColor="#585858"
+                android:textSize="10sp" />
+
             <LinearLayout
                 android:visibility="gone"
                 android:id="@+id/tab_get_order"
diff --git a/app/src/main/res/layout/app_activity_about_us.xml b/app/src/main/res/layout/app_activity_about_us.xml
index b4b73b7..0089c1c 100755
--- a/app/src/main/res/layout/app_activity_about_us.xml
+++ b/app/src/main/res/layout/app_activity_about_us.xml
@@ -52,7 +52,7 @@
                         android:layout_width="@dimen/dp_205"
                         android:layout_height="@dimen/dp_205"
                         android:layout_centerHorizontal="true"
-                        android:layout_marginTop="@dimen/dp_57"
+                        android:layout_marginTop="40dp"
                         android:src="@mipmap/about_us"
                         />
 
@@ -82,12 +82,22 @@
                         android:textSize="@dimen/sp_15"
                         />
 
+
+
+                    <TextView
+                        android:id="@+id/tv_version"
+                        style="@style/common_text_style"
+                        android:layout_below="@id/about_main_text"
+                        android:layout_centerHorizontal="true"
+                        android:layout_marginTop="@dimen/dp_30"
+                        android:text="@string/tv_now_version"
+                        />
                     <TextView
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:layout_below="@id/about_main_text"
+                        android:layout_below="@id/tv_version"
                         android:layout_centerHorizontal="true"
-                        android:layout_marginTop="@dimen/dp_41"
+                        android:layout_marginTop="@dimen/dp_20"
                         android:text="@string/tv_about_dayu"
                         android:textColor="@color/cl_selector_hui"
                         android:textSize="@dimen/sp_12"
diff --git a/baseSDK/build.gradle b/baseSDK/build.gradle
index 838011e..5d23b4c 100644
--- a/baseSDK/build.gradle
+++ b/baseSDK/build.gradle
@@ -70,10 +70,7 @@ dependencies {
     api 'com.journeyapps:zxing-android-embedded:3.5.0'
     api project(':locationComponent')
     api project(':pickerview')
-    api 'cn.jzvd:jiaozivideoplayer:7.1.0'
-    //    api 'tv.danmaku.ijk.media:ijkplayer-java:0.8.4'
-    //    api 'tv.danmaku.ijk.media:ijkplayer-armv7a:0.8.4'
-    //    api 'tv.danmaku.ijk.media:ijkplayer-x86:0.8.4'
+    api 'cn.jzvd:jiaozivideoplayer:7.2.4'
     api 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.35'
     api 'com.badoo.mobile:android-weak-handler:1.1'
     api 'com.youth.banner:banner:1.4.10'
@@ -83,5 +80,6 @@ dependencies {
     api 'com.google.android:flexbox:1.0.0'
     api 'com.github.chrisbanes:PhotoView:2.0.0'
 
+
     api project(':umeng')
 }
diff --git a/baseSDK/src/main/java/com/dayu/common/Constants.java b/baseSDK/src/main/java/com/dayu/common/Constants.java
index ff37887..f22e0cd 100755
--- a/baseSDK/src/main/java/com/dayu/common/Constants.java
+++ b/baseSDK/src/main/java/com/dayu/common/Constants.java
@@ -49,30 +49,30 @@ public class Constants {
     /**
      * uat环境配置.
      */
-//    public static final String ENVIROMENT = "uat";
-//    public static final int LOG_LEVEL = LogUtils.LEVEL_ALL;
-//    public static final String BASE_URL = "http://47.95.223.6:3112";
-//    public final static String UP_PHOTO = "/file/uploadMore?targetPath=test/sp/mobile/android/business/checkApply";
-//    public final static String WEB_SOP = "http://47.95.223.6:9004/#/sop";
-//    public final static String WEB_SOP_DETAIL = "http://47.95.223.6:9004/#/sopdetail";
-//    public final static String WEB_ZHI_SHI = "http://47.95.223.6:9004/#/detail";
-//    public final static String CHECK_MULTI_WEB_SOP = "http://47.95.223.6:9004/#/manyServiceResult";
-//    public final static String MULTI_WEB_SOP = "http://47.95.223.6:9004/#/manySop";
-//    public static final boolean IS_DEBUG = true;
+    public static final String ENVIROMENT = "uat";
+    public static final int LOG_LEVEL = LogUtils.LEVEL_ALL;
+    public static final String BASE_URL = "http://47.95.223.6:3112";
+    public final static String UP_PHOTO = "/file/uploadMore?targetPath=test/sp/mobile/android/business/checkApply";
+    public final static String WEB_SOP = "http://47.95.223.6:9004/#/sop";
+    public final static String WEB_SOP_DETAIL = "http://47.95.223.6:9004/#/sopdetail";
+    public final static String WEB_ZHI_SHI = "http://47.95.223.6:9004/#/detail";
+    public final static String CHECK_MULTI_WEB_SOP = "http://47.95.223.6:9004/#/manyServiceResult";
+    public final static String MULTI_WEB_SOP = "http://47.95.223.6:9004/#/manySop";
+    public static final boolean IS_DEBUG = true;
 
     /**
      * 正式环境.
      */
-    public static final String ENVIROMENT = "release";
-    public static final int LOG_LEVEL = LogUtils.LEVEL_OFF;
-    public static final String BASE_URL = "https://mobile.kf.ai";
-    public final static String UP_PHOTO = "/file/uploadMore?targetPath=online/sp/mobile/android/business/checkApply";
-    public final static String WEB_SOP = "https://sop.kf.ai/#/sop";
-    public final static String WEB_SOP_DETAIL = "https://sop.kf.ai/#/sopdetail";
-    public final static String WEB_ZHI_SHI = "https://sop.kf.ai/#/detail";
-    public final static String CHECK_MULTI_WEB_SOP = "https://sop.kf.ai/#/manyServiceResult";
-    public final static String MULTI_WEB_SOP = "https://sop.kf.ai/#/manySop";
-    public static final boolean IS_DEBUG = false;
+//    public static final String ENVIROMENT = "release";
+//    public static final int LOG_LEVEL = LogUtils.LEVEL_OFF;
+//    public static final String BASE_URL = "https://mobile.kf.ai";
+//    public final static String UP_PHOTO = "/file/uploadMore?targetPath=online/sp/mobile/android/business/checkApply";
+//    public final static String WEB_SOP = "https://sop.kf.ai/#/sop";
+//    public final static String WEB_SOP_DETAIL = "https://sop.kf.ai/#/sopdetail";
+//    public final static String WEB_ZHI_SHI = "https://sop.kf.ai/#/detail";
+//    public final static String CHECK_MULTI_WEB_SOP = "https://sop.kf.ai/#/manyServiceResult";
+//    public final static String MULTI_WEB_SOP = "https://sop.kf.ai/#/manySop";
+//    public static final boolean IS_DEBUG = false;
 
     /**
      * 统一配置.
diff --git a/baseSDK/src/main/java/com/dayu/event/LearnTabNumEvent.java b/baseSDK/src/main/java/com/dayu/event/LearnTabNumEvent.java
new file mode 100644
index 0000000..b1ec9db
--- /dev/null
+++ b/baseSDK/src/main/java/com/dayu/event/LearnTabNumEvent.java
@@ -0,0 +1,10 @@
+package com.dayu.event;
+
+public class LearnTabNumEvent {
+
+    public int num;
+
+    public LearnTabNumEvent(int num) {
+        this.num = num;
+    }
+}
diff --git a/saleCenter/src/main/java/com/bigfish/salecenter/event/SaleTabNumEvent.java b/baseSDK/src/main/java/com/dayu/event/SaleTabNumEvent.java
similarity index 90%
rename from saleCenter/src/main/java/com/bigfish/salecenter/event/SaleTabNumEvent.java
rename to baseSDK/src/main/java/com/dayu/event/SaleTabNumEvent.java
index 0956730..e80d6ba 100644
--- a/saleCenter/src/main/java/com/bigfish/salecenter/event/SaleTabNumEvent.java
+++ b/baseSDK/src/main/java/com/dayu/event/SaleTabNumEvent.java
@@ -1,4 +1,4 @@
-package com.bigfish.salecenter.event;
+package com.dayu.event;
 
 /**
  * Created by mReturn
diff --git a/baseSDK/src/main/java/com/dayu/utils/MediaChooseUtils.java b/baseSDK/src/main/java/com/dayu/utils/MediaChooseUtils.java
new file mode 100644
index 0000000..194cf24
--- /dev/null
+++ b/baseSDK/src/main/java/com/dayu/utils/MediaChooseUtils.java
@@ -0,0 +1,98 @@
+package com.dayu.utils;
+
+import android.app.Activity;
+import android.os.Environment;
+
+import com.luck.picture.lib.PictureSelectionModel;
+import com.luck.picture.lib.PictureSelector;
+import com.luck.picture.lib.config.PictureConfig;
+import com.luck.picture.lib.config.PictureMimeType;
+
+import java.io.File;
+
+public class MediaChooseUtils {
+
+    /**
+     * 选择单张图片
+     */
+    public static void chooseSigleImg(Activity activity) {
+        chooseMedia(activity,PictureMimeType.ofImage(),1,0);
+    }
+
+    /**
+     * 选择头像图片并裁剪
+     */
+    public static void chooseAvatarImg(Activity activity) {
+        PictureSelectionModel selector = getPictureSelectionModel(activity, PictureMimeType.ofImage(), 1, 0);
+        selector.enableCrop(true)//是否裁剪
+                .withAspectRatio(1, 1)
+                .freeStyleCropEnabled(false);
+        selector.forResult(PictureConfig.CHOOSE_REQUEST);
+    }
+
+    /**
+     * 选择多张图片
+     */
+    public static void chooseImgs(Activity activity,int maxCount) {
+        chooseMedia(activity,PictureMimeType.ofImage(),maxCount,0);
+    }
+
+    /**
+     * 选择单个视频
+     */
+    public static void chooseSigleVideo(Activity activity,int videoLength) {
+        chooseMedia(activity,PictureMimeType.ofVideo(),1,videoLength);
+    }
+
+    /**
+     * 选择多个视频
+     */
+    public static void chooseVideos(Activity activity,int maxCount,int videoLength) {
+        chooseMedia(activity,PictureMimeType.ofVideo(),maxCount,videoLength);
+    }
+
+    /**
+     * 选择多媒体文件
+     * @param activity
+     * @param type
+     * @param maxCount
+     * @param videoLength
+     */
+    public static void chooseMedia(Activity activity,int type,int maxCount,int videoLength) {
+        PictureSelectionModel selector = getPictureSelectionModel(activity, type, maxCount, videoLength);
+        selector.forResult(PictureConfig.CHOOSE_REQUEST);
+    }
+
+    public static PictureSelectionModel getPictureSelectionModel(Activity activity, int type, int maxCount, int videoLength) {
+        return PictureSelector.create(activity)
+                    .openGallery(type)//全部.PictureMimeType.ofAll()、图片.ofImage()、视频.ofVideo()
+                    .maxSelectNum(maxCount)// 最大图片选择数量 int
+                    .imageSpanCount(4)// 每行显示个数 int
+                    .selectionMode(PictureConfig.MULTIPLE)// 多选 or 单选 PictureConfig.MULTIPLE or PictureConfig.SINGLE
+                    .previewImage(true)// 是否可预览图片 true or false
+                    .isCamera(true)// 是否显示拍照按钮 true or false
+                    .recordVideoSecond(videoLength) //最大视频长度(秒)
+                    .videoMaxSecond(videoLength) //最大视频长度(秒)
+                    .isZoomAnim(true)// 图片列表点击 缩放效果 默认true
+                    .sizeMultiplier(0.1f)// glide 加载图片大小 0~1之间 如设置 .glideOverride()无效
+                    .setOutputCameraPath("/CustomPath")// 自定义拍、照保存路径,可不填
+                    .compress(true)// 是否压缩 true or false
+                    .glideOverride(300, 500)// int glide 加载宽高,越小图片列表越流畅,但会影响列表图片浏览的清晰度
+                    .hideBottomControls(true)// 是否显示uCrop工具栏,默认不显示 true or false
+                    .compressSavePath(getPath())//压缩图片保存地址
+                    .previewEggs(true)// 预览图片时 是否增强左右滑动图片体验(图片滑动一半即可看到上一张是否选中) true or false
+                    .minimumCompressSize(100)// 小于100kb的图片不压缩
+    //                .enableCrop(true)//是否裁剪
+    //                .freeStyleCropEnabled(true)
+                    .synOrAsy(true);
+    }
+
+    public static String getPath() {
+        String path = Environment.getExternalStorageDirectory() + "/dayu/image/";
+        File file = new File(path);
+        if (file.mkdirs()) {
+            return path;
+        }
+        return path;
+    }
+}
diff --git a/baseSDK/src/main/java/com/dayu/widgets/MyJzvdStd.java b/baseSDK/src/main/java/com/dayu/widgets/MyJzvdStd.java
new file mode 100644
index 0000000..e478470
--- /dev/null
+++ b/baseSDK/src/main/java/com/dayu/widgets/MyJzvdStd.java
@@ -0,0 +1,109 @@
+package com.dayu.widgets;
+
+import android.content.Context;
+import android.util.AttributeSet;
+
+import com.dayu.baselibrary.R;
+
+import cn.jzvd.JzvdStd;
+
+public class MyJzvdStd extends JzvdStd {
+    public int curProgress;
+    public long curPosition;
+    private PlayCallBack callBack;
+
+    public MyJzvdStd(Context context) {
+        super(context);
+    }
+
+    public MyJzvdStd(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    @Override
+    public int getLayoutId() {
+        return R.layout.jz_layout_std;
+    }
+
+    @Override
+    public void startVideo() {
+        super.startVideo();
+        curProgress = 0;
+        curPosition = 0;
+        if (callBack != null)
+            callBack.onstart();
+    }
+
+    //onState 代表了播放器引擎的回调,播放视频各个过程的状态的回调
+
+    @Override
+    public void onProgress(int progress, long position, long duration) {
+        super.onProgress(progress, position, duration);
+        curProgress = progress;
+        curPosition = position;
+    }
+
+    @Override
+    public void onStatePreparing() {
+        super.onStatePreparing();
+
+    }
+
+    @Override
+    public void onStatePause() {
+        super.onStatePause();
+        if (callBack != null)
+            callBack.onPause();
+    }
+
+
+    @Override
+    public void onStateError() {
+        super.onStateError();
+    }
+
+    @Override
+    public void onStateAutoComplete() {
+        super.onStateAutoComplete();
+        curProgress = 100;
+        curPosition = getDuration();
+        if (callBack != null)
+            callBack.onComplete();
+    }
+
+    @Override
+    public void updateStartImage() {
+        if (state == STATE_PLAYING) {
+            startButton.setVisibility(VISIBLE);
+            startButton.setImageResource(cn.jzvd.R.drawable.jz_click_pause_selector);
+            replayTextView.setVisibility(GONE);
+        } else if (state == STATE_ERROR) {
+            startButton.setVisibility(INVISIBLE);
+            replayTextView.setVisibility(GONE);
+        } else if (state == STATE_AUTO_COMPLETE) {
+            startButton.setVisibility(VISIBLE);
+            startButton.setImageResource(cn.jzvd.R.drawable.jz_click_replay_selector);
+            replayTextView.setVisibility(VISIBLE);
+        } else {
+            startButton.setImageResource(cn.jzvd.R.drawable.jz_click_play_selector);
+            replayTextView.setVisibility(GONE);
+            if (state == 0 && callBack != null)
+                callBack.onPrepare();
+        }
+    }
+
+
+    public void setPlayCallBack(PlayCallBack callBack) {
+        this.callBack = callBack;
+    }
+
+    public interface PlayCallBack {
+        void onstart();
+
+        void onPrepare();
+
+        void onPause();
+
+        void onComplete();
+    }
+}
diff --git a/baseSDK/src/main/res/drawable-hdpi/icon_like_gray.png b/baseSDK/src/main/res/drawable-hdpi/icon_like_gray.png
new file mode 100644
index 0000000..bebbd48
Binary files /dev/null and b/baseSDK/src/main/res/drawable-hdpi/icon_like_gray.png differ
diff --git a/baseSDK/src/main/res/drawable-hdpi/icon_like_red.png b/baseSDK/src/main/res/drawable-hdpi/icon_like_red.png
new file mode 100644
index 0000000..8bd1c72
Binary files /dev/null and b/baseSDK/src/main/res/drawable-hdpi/icon_like_red.png differ
diff --git a/baseSDK/src/main/res/drawable-hdpi/icon_looks.png b/baseSDK/src/main/res/drawable-hdpi/icon_looks.png
new file mode 100644
index 0000000..38bc1f2
Binary files /dev/null and b/baseSDK/src/main/res/drawable-hdpi/icon_looks.png differ
diff --git a/baseSDK/src/main/res/drawable-xhdpi/icon_add_blue.png b/baseSDK/src/main/res/drawable-xhdpi/icon_add_blue.png
new file mode 100644
index 0000000..94aad6d
Binary files /dev/null and b/baseSDK/src/main/res/drawable-xhdpi/icon_add_blue.png differ
diff --git a/baseSDK/src/main/res/drawable-xhdpi/icon_video_default.png b/baseSDK/src/main/res/drawable-xhdpi/icon_video_default.png
new file mode 100644
index 0000000..f9d175e
Binary files /dev/null and b/baseSDK/src/main/res/drawable-xhdpi/icon_video_default.png differ
diff --git a/baseSDK/src/main/res/drawable/bg_input_black_react.xml b/baseSDK/src/main/res/drawable/bg_input_black_react.xml
new file mode 100644
index 0000000..a389645
--- /dev/null
+++ b/baseSDK/src/main/res/drawable/bg_input_black_react.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <stroke
+        android:width="1dp"
+        android:color="#333"
+        />
+    <corners android:radius="0.5dp"/>
+</shape>
\ No newline at end of file
diff --git a/baseSDK/src/main/res/layout/layout_common_top_tab.xml b/baseSDK/src/main/res/layout/layout_common_top_tab.xml
new file mode 100644
index 0000000..077dc9f
--- /dev/null
+++ b/baseSDK/src/main/res/layout/layout_common_top_tab.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:gravity="center"
+    android:orientation="vertical">
+    <TextView
+        android:id="@+id/tabtext"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:gravity="center"
+        android:textStyle="bold"
+        android:textSize="30sp"
+        android:textColor="#585858"
+        />
+    <TextView
+        android:id="@+id/tabicon"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textColor="#585858"
+        android:textSize="13.3sp"
+        android:layout_gravity="center"/>
+
+
+</LinearLayout>
\ No newline at end of file
diff --git a/baseSDK/src/main/res/values/strings.xml b/baseSDK/src/main/res/values/strings.xml
index d5eaf06..a667e67 100644
--- a/baseSDK/src/main/res/values/strings.xml
+++ b/baseSDK/src/main/res/values/strings.xml
@@ -80,6 +80,7 @@
     <string name="tv_about_us">扫码关注我们的微信服务号</string>
     <string name="tv_about_us_text">&#160;&#160;&#160;&#160;传统低效的客服体系,正在成为厂商、服务商、消费者的包袱。大鱼准备以科技之力进行客服产业革命。运用Ai、云和大数据等技术,连接厂商、销售商、服务商和消费者,打造去中心化的智能共享客户服务解决方案。</string>
     <string name="tv_about_dayu">大鱼创想&#160;&#160;版权所有</string>
+    <string name="tv_now_version">当前版本:</string>
     <string name="tv_about_user_feiyong">收取费用</string>
     <string name="tv_order_updoor_feiyong">上门费</string>
     <string name="tv_order_serve_feiyong">服务费用</string>
@@ -973,7 +974,6 @@ C) 在甲方使用大鱼平台服务过程中产生的业务数据,客户数�
     <string name="save_str">保存</string>
     <string name="save_success">保存成功</string>
     <string name="save_fail">保存失败</string>
-
     <string name="record_income_total">收入总额(元)</string>
     <string name="record_reward_total">收入总额(元)</string>
     <string name="record_done_service">完成服务工单</string>
@@ -983,5 +983,29 @@ C) 在甲方使用大鱼平台服务过程中产生的业务数据,客户数�
     <string name="city_str">市</string>
     <string name="zone_str">区/县</string>
 
+    <!-- learn -->
+    <string name="learn_str">学习</string>
+    <string name="find_course">查找课程</string>
+    <array name="learn_top_tab_item">
+        <item>公开课</item>
+        <item>已学习</item>
+        <item>已发布</item>
+    </array>
+    <string name="pub_course_title">我要开课</string>
+    <string name="course_theme">课程主题:</string>
+    <string name="pls_input_course_theme">请填写课程主题</string>
+    <string name="course_desc">课程简介:</string>
+    <string name="pls_input_course_desc">请填写课程简介</string>
+    <string name="upload_video">上传视频:</string>
+    <string name="pls_choose_video">请选择视频</string>
+    <string name="learn_tips">温馨提示:</string>
+    <string name="learn_tip1">1、请勿发布反动和涉黄内容的视频,平台有权下架并追究发布者的法律责任。</string>
+    <string name="learn_tip2">2、大鱼平台将对优质课程(点赞数)和热门课程(阅读数)的发布者进行现金奖励。</string>
+    <string name="confirm_pub">确认发布</string>
+    <string name="limit_10_words">限10个字</string>
+    <string name="limit_100_words">限100字</string>
+    <string name="course_detail">课程详情</string>
+    <string name="course_puber">发布方:</string>
+
 </resources>
 
diff --git a/baseSDK/src/main/res/values/styles.xml b/baseSDK/src/main/res/values/styles.xml
index d5a7533..e4571bf 100755
--- a/baseSDK/src/main/res/values/styles.xml
+++ b/baseSDK/src/main/res/values/styles.xml
@@ -85,6 +85,35 @@
         <item name="android:background">@drawable/bg_input_gray_react</item>
     </style>
 
+    <style name="learn_course_edit" parent="common_text_style">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">35dp</item>
+        <item name="android:padding">3dp</item>
+        <item name="android:layout_marginLeft">10dp</item>
+        <item name="android:gravity">left|center_vertical</item>
+        <item name="android:background">@drawable/bg_input_gray_react</item>
+    </style>
+
+    <style name="ll_course_content" parent="common_text_style">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:orientation">horizontal</item>
+        <item name="android:gravity">center_vertical</item>
+        <item name="android:layout_marginTop">15dp</item>
+        <item name="android:layout_marginLeft">5dp</item>
+        <item name="android:layout_marginRight">5dp</item>
+    </style>
+
+    <style name="tv_course_left" parent="common_text_style">
+        <item name="android:layout_width">60dp</item>
+        <item name="android:gravity">right</item>
+    </style>
+
+    <style name="tv_course_content" parent="common_text_style">
+        <item name="android:layout_marginLeft">10dp</item>
+        <item name="android:textColor">#8b8b8b</item>
+    </style>
+
     <style name="sale_item_text" parent="common_text_style">
         <item name="android:maxLines">1</item>
     </style>
@@ -150,15 +179,27 @@
         <item name="android:maxLines">1</item>
     </style>
 
-    <style name="btn_bottom_common">
-        <item name="android:layout_width">match_parent</item>
+    <style name="btn_common">
+        <item name="android:layout_width">wrap_content</item>
         <item name="android:layout_height">45dp</item>
-        <item name="android:background">@drawable/tab_blue_react</item>
         <item name="android:textColor">@color/white</item>
         <item name="android:gravity">center</item>
         <item name="android:textSize">16sp</item>
     </style>
 
+    <style name="btn_bottom_common" parent="btn_common">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:background">@drawable/tab_blue_react</item>
+    </style>
+
+
+    <style name="btn_common_gray" parent="btn_common">
+        <item name="android:background">@drawable/tab_gray_react</item>
+    </style>
+    <style name="btn_common_blue" parent="btn_common">
+        <item name="android:background">@drawable/tab_blue_react</item>
+    </style>
+
 
     <style name="title">
         <item name="android:layout_width">match_parent</item>
diff --git a/gradle.properties b/gradle.properties
index 81035b0..8183386 100755
--- a/gradle.properties
+++ b/gradle.properties
@@ -9,6 +9,9 @@ isOrderModule=true
 isManagerModule=true
 ##销售模块
 isSaleModule=true
+##培训模块
+isLearnModule=true
+
 ##maven依赖
 mavenMode=false
 BASE_URL=http://47.94.101.239:3112
diff --git a/learnCenter/.gitignore b/learnCenter/.gitignore
new file mode 100644
index 0000000..796b96d
--- /dev/null
+++ b/learnCenter/.gitignore
@@ -0,0 +1 @@
+/build
diff --git a/learnCenter/build.gradle b/learnCenter/build.gradle
new file mode 100644
index 0000000..064f0b7
--- /dev/null
+++ b/learnCenter/build.gradle
@@ -0,0 +1,64 @@
+if (isLearnModule.toBoolean()) {
+    apply plugin: 'com.android.library'
+} else {
+    apply plugin: 'com.android.application'
+}
+
+android {
+    compileSdkVersion compile_sdk_version
+    buildToolsVersion build_tools_version
+
+    defaultConfig {
+        minSdkVersion min_sdk_version
+        targetSdkVersion target_sdk_version
+        versionCode version_code
+        versionName verson_name
+        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+        multiDexEnabled true
+        vectorDrawables.useSupportLibrary = true
+
+        javaCompileOptions {
+            annotationProcessorOptions {
+                arguments = [moduleName: project.getName()]
+            }
+        }
+    }
+
+    compileOptions {
+        sourceCompatibility JavaVersion.VERSION_1_8
+        targetCompatibility JavaVersion.VERSION_1_8
+    }
+
+    buildTypes {
+        release {
+            minifyEnabled isReleaseMinify
+            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+        }
+    }
+
+    dataBinding {
+        enabled = true
+    }
+
+    dexOptions {
+        preDexLibraries = false
+    }
+
+    sourceSets {
+        main {
+            if (isLearnModule.toBoolean()) {
+                manifest.srcFile 'src/main/release/AndroidManifest.xml'
+            } else {
+                manifest.srcFile 'src/main/debug/AndroidManifest.xml'
+            }
+        }
+    }
+}
+
+dependencies {
+    api fileTree(dir: 'libs', include: ['*.jar'])
+
+    //ARouter
+    annotationProcessor "com.alibaba:arouter-compiler:$arouter_compiler_version"
+    api project(':provider')
+}
diff --git a/learnCenter/proguard-rules.pro b/learnCenter/proguard-rules.pro
new file mode 100644
index 0000000..f1b4245
--- /dev/null
+++ b/learnCenter/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
diff --git a/learnCenter/src/androidTest/java/com/dayu/learncenter/ExampleInstrumentedTest.java b/learnCenter/src/androidTest/java/com/dayu/learncenter/ExampleInstrumentedTest.java
new file mode 100644
index 0000000..0c7112e
--- /dev/null
+++ b/learnCenter/src/androidTest/java/com/dayu/learncenter/ExampleInstrumentedTest.java
@@ -0,0 +1,26 @@
+package com.dayu.learncenter;
+
+import android.content.Context;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static org.junit.Assert.*;
+
+/**
+ * Instrumented test, which will execute on an Android device.
+ *
+ * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
+ */
+@RunWith(AndroidJUnit4.class)
+public class ExampleInstrumentedTest {
+    @Test
+    public void useAppContext() {
+        // Context of the app under test.
+        Context appContext = InstrumentationRegistry.getTargetContext();
+
+        assertEquals("com.dayu.learncenter.test", appContext.getPackageName());
+    }
+}
diff --git a/learnCenter/src/main/debug/AndroidManifest.xml b/learnCenter/src/main/debug/AndroidManifest.xml
new file mode 100644
index 0000000..aba1d20
--- /dev/null
+++ b/learnCenter/src/main/debug/AndroidManifest.xml
@@ -0,0 +1,2 @@
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.dayu.learncenter" />
diff --git a/learnCenter/src/main/java/com/dayu/learncenter/adapter/LearnAdapter.java b/learnCenter/src/main/java/com/dayu/learncenter/adapter/LearnAdapter.java
new file mode 100644
index 0000000..d2d6845
--- /dev/null
+++ b/learnCenter/src/main/java/com/dayu/learncenter/adapter/LearnAdapter.java
@@ -0,0 +1,54 @@
+package com.dayu.learncenter.adapter;
+
+import android.view.View;
+
+import com.dayu.base.ui.adapter.CoreAdapter;
+import com.dayu.learncenter.R;
+import com.dayu.learncenter.api.bean.CommonLearnBean;
+import com.dayu.learncenter.databinding.ItemCommonLearnBinding;
+import com.dayu.utils.GlideImageLoader;
+import com.dayu.utils.LogUtils;
+import com.dayu.utils.ToastUtils;
+import com.dayu.widgets.MyJzvdStd;
+
+public class LearnAdapter extends CoreAdapter<CommonLearnBean,ItemCommonLearnBinding> {
+    private int type;
+
+    public LearnAdapter(boolean needFoot,int type) {
+        super(needFoot);
+        this.type = type;
+    }
+
+    @Override
+    protected void onBind(ItemCommonLearnBinding holder, CommonLearnBean item, int position) {
+        super.onBind(holder, item, position);
+        holder.tvTitle.setText(item.title);
+        holder.jzVideo.setUp(item.url,"");
+        GlideImageLoader.load(mContext, holder.jzVideo.posterImageView, item.url, R.drawable.icon_video_default);
+        holder.jzVideo.setPlayCallBack(new MyJzvdStd.PlayCallBack() {
+            @Override
+            public void onstart() {
+                LogUtils.e("videoState start "+item.id);
+                item.showDate = false;
+                holder.tvDate.setVisibility(View.GONE);
+            }
+
+            @Override
+            public void onPrepare() {
+                LogUtils.e("videoState prepa3 "+item.id);
+                holder.tvDate.setVisibility(View.VISIBLE);
+            }
+
+            @Override
+            public void onPause() {
+                LogUtils.e("videoState pause: "+item.id+"  "+holder.jzVideo.curProgress
+                        +" "+holder.jzVideo.curPosition+"  "+holder.jzVideo.getDuration());
+            }
+
+            @Override
+            public void onComplete() {
+                LogUtils.e("videoState complete");
+            }
+        });
+    }
+}
diff --git a/learnCenter/src/main/java/com/dayu/learncenter/api/bean/CommonLearnBean.java b/learnCenter/src/main/java/com/dayu/learncenter/api/bean/CommonLearnBean.java
new file mode 100644
index 0000000..50d3ae7
--- /dev/null
+++ b/learnCenter/src/main/java/com/dayu/learncenter/api/bean/CommonLearnBean.java
@@ -0,0 +1,14 @@
+package com.dayu.learncenter.api.bean;
+
+public class CommonLearnBean {
+    public int id;
+    public String url;
+    public String title;
+    public boolean showDate = true;
+
+    public CommonLearnBean(int id, String url, String title) {
+        this.id = id;
+        this.url = url;
+        this.title = title;
+    }
+}
diff --git a/learnCenter/src/main/java/com/dayu/learncenter/presenter/common_learn/CommonLearnContract.java b/learnCenter/src/main/java/com/dayu/learncenter/presenter/common_learn/CommonLearnContract.java
new file mode 100644
index 0000000..8780ed4
--- /dev/null
+++ b/learnCenter/src/main/java/com/dayu/learncenter/presenter/common_learn/CommonLearnContract.java
@@ -0,0 +1,12 @@
+package com.dayu.learncenter.presenter.common_learn;
+
+import com.dayu.base.ui.presenter.BaseListPresenter;
+import com.dayu.common.BaseView;
+
+public interface CommonLearnContract {
+    interface View extends BaseView {
+    }
+
+    abstract class Presenter extends BaseListPresenter<View> {
+    }
+}
diff --git a/learnCenter/src/main/java/com/dayu/learncenter/presenter/common_learn/CommonLearnPresenter.java b/learnCenter/src/main/java/com/dayu/learncenter/presenter/common_learn/CommonLearnPresenter.java
new file mode 100644
index 0000000..3b56056
--- /dev/null
+++ b/learnCenter/src/main/java/com/dayu/learncenter/presenter/common_learn/CommonLearnPresenter.java
@@ -0,0 +1,28 @@
+package com.dayu.learncenter.presenter.common_learn;
+
+import android.databinding.ObservableField;
+
+import com.dayu.event.UserInfo;
+import com.dayu.utils.UserManager;
+
+public class CommonLearnPresenter extends CommonLearnContract.Presenter{
+
+    private int mUserId;
+    private int type;
+    private ObservableField<Object> datas = new ObservableField<>();
+
+    public void setType(int type) {
+        this.type = type;
+    }
+
+    @Override
+    public void onAttached() {
+        UserInfo userInfo = UserManager.getInstance().getUser();
+        mUserId = Integer.parseInt(userInfo.getAccountId());
+    }
+
+    @Override
+    public ObservableField<Object> getSourceDatas() {
+        return datas;
+    }
+}
diff --git a/learnCenter/src/main/java/com/dayu/learncenter/ui/activity/CourseDetailActivity.java b/learnCenter/src/main/java/com/dayu/learncenter/ui/activity/CourseDetailActivity.java
new file mode 100644
index 0000000..15fd43f
--- /dev/null
+++ b/learnCenter/src/main/java/com/dayu/learncenter/ui/activity/CourseDetailActivity.java
@@ -0,0 +1,26 @@
+package com.dayu.learncenter.ui.activity;
+
+import com.dayu.base.ui.activity.BaseActivity;
+import com.dayu.base.ui.presenter.SImplePresenter;
+import com.dayu.learncenter.R;
+import com.dayu.learncenter.databinding.ActivityCourseDetailBinding;
+
+/**
+ * 课程详情
+ */
+public class CourseDetailActivity extends BaseActivity<SImplePresenter,ActivityCourseDetailBinding> {
+    @Override
+    public void setPresenter() {
+
+    }
+
+    @Override
+    public int getLayoutId() {
+        return R.layout.activity_course_detail;
+    }
+
+    @Override
+    public void initView() {
+        mBind.titleBack.setOnClickListener(v->dumpBack());
+    }
+}
diff --git a/learnCenter/src/main/java/com/dayu/learncenter/ui/activity/PubCourseActivity.java b/learnCenter/src/main/java/com/dayu/learncenter/ui/activity/PubCourseActivity.java
new file mode 100644
index 0000000..8024e4e
--- /dev/null
+++ b/learnCenter/src/main/java/com/dayu/learncenter/ui/activity/PubCourseActivity.java
@@ -0,0 +1,114 @@
+package com.dayu.learncenter.ui.activity;
+
+import android.content.Intent;
+import android.text.TextUtils;
+import android.view.View;
+
+import com.dayu.base.ui.activity.BaseActivity;
+import com.dayu.base.ui.presenter.SImplePresenter;
+import com.dayu.learncenter.R;
+import com.dayu.learncenter.databinding.ActivityPubCourseBinding;
+import com.dayu.utils.GlideImageLoader;
+import com.dayu.utils.MediaChooseUtils;
+import com.dayu.utils.ToastUtils;
+import com.luck.picture.lib.PictureSelector;
+import com.luck.picture.lib.compress.Luban;
+import com.luck.picture.lib.compress.OnCompressListener;
+import com.luck.picture.lib.config.PictureConfig;
+import com.luck.picture.lib.entity.LocalMedia;
+
+import java.util.List;
+
+/**
+ * 开课
+ */
+public class PubCourseActivity extends BaseActivity<SImplePresenter, ActivityPubCourseBinding> {
+    private String theme;
+    private String desc;
+    private String videoPath;
+
+    @Override
+    public void setPresenter() {
+
+    }
+
+    @Override
+    public int getLayoutId() {
+        return R.layout.activity_pub_course;
+    }
+
+    @Override
+    public void initView() {
+        setListener();
+    }
+
+    private void setListener() {
+        mBind.titleBack.setOnClickListener(view -> dumpBack());
+        mBind.btnCancle.setOnClickListener(view -> dumpBack());
+        mBind.btnConfirm.setOnClickListener(view -> onConfimClick());
+        mBind.rlVideo.setOnClickListener(v -> {
+            if (TextUtils.isEmpty(videoPath)) {
+                MediaChooseUtils.chooseSigleVideo(this, 180);
+            }
+        });
+        mBind.ivDelete.setOnClickListener(v -> {
+            videoPath = "";
+            setVideoView();
+        });
+        mBind.jzVideo.setOnClickListener(v->showToast("click"));
+    }
+
+    private void onConfimClick() {
+        if (canSubmit()) {
+            showToast("submit");
+        }
+    }
+
+    //判断是否能提交
+    private boolean canSubmit() {
+        String theme = mBind.edtTheme.getText().toString().trim();
+        String desc = mBind.edtDesc.getText().toString();
+        if (TextUtils.isEmpty(theme)) {
+            showToast(R.string.pls_input_course_theme);
+            return false;
+        }
+        if (TextUtils.isEmpty(desc) || TextUtils.isEmpty(desc.trim())) {
+            showToast(R.string.pls_input_course_desc);
+            return false;
+        }
+        if (TextUtils.isEmpty(videoPath)) {
+            showToast(R.string.pls_choose_video);
+            return false;
+        }
+        return true;
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        if (resultCode == RESULT_OK) {
+            switch (requestCode) {
+                case PictureConfig.CHOOSE_REQUEST:
+                    List<LocalMedia> mSelectList = PictureSelector.obtainMultipleResult(data);
+                    if (mSelectList != null) {
+                        videoPath = mSelectList.get(0).getPath();
+                        setVideoView();
+                    }
+                    break;
+            }
+        }
+    }
+
+    //设置视频布局显示状态
+    private void setVideoView() {
+        if (TextUtils.isEmpty(videoPath)) {
+            mBind.jzVideo.setVisibility(View.GONE);
+            mBind.ivDelete.setVisibility(View.GONE);
+        } else {
+            mBind.ivDelete.setVisibility(View.VISIBLE);
+            mBind.jzVideo.setVisibility(View.VISIBLE);
+            mBind.jzVideo.setUp(videoPath, "");
+            GlideImageLoader.load(mActivity, mBind.jzVideo.posterImageView, videoPath, R.drawable.icon_video_default);
+        }
+    }
+}
diff --git a/learnCenter/src/main/java/com/dayu/learncenter/ui/fragment/CommonLearnFragment.java b/learnCenter/src/main/java/com/dayu/learncenter/ui/fragment/CommonLearnFragment.java
new file mode 100644
index 0000000..6c835a6
--- /dev/null
+++ b/learnCenter/src/main/java/com/dayu/learncenter/ui/fragment/CommonLearnFragment.java
@@ -0,0 +1,90 @@
+package com.dayu.learncenter.ui.fragment;
+
+import android.os.Bundle;
+import android.view.View;
+
+import com.chad.library.adapter.base.BaseQuickAdapter;
+import com.chad.library.adapter.base.BaseViewHolder;
+import com.dayu.base.ui.fragment.BaseFragment;
+import com.dayu.learncenter.R;
+import com.dayu.learncenter.adapter.LearnAdapter;
+import com.dayu.learncenter.api.bean.CommonLearnBean;
+import com.dayu.learncenter.databinding.FragmentCommonLearnBinding;
+import com.dayu.learncenter.databinding.ItemCommonLearnBinding;
+import com.dayu.learncenter.presenter.common_learn.CommonLearnContract;
+import com.dayu.learncenter.presenter.common_learn.CommonLearnPresenter;
+import com.dayu.learncenter.ui.activity.CourseDetailActivity;
+import com.dayu.learncenter.ui.activity.PubCourseActivity;
+import com.dayu.widgets.listener.OnItemClickListener;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import cn.jzvd.Jzvd;
+import cn.jzvd.JzvdStd;
+
+public class CommonLearnFragment extends BaseFragment<CommonLearnPresenter,FragmentCommonLearnBinding>
+        implements CommonLearnContract.View {
+    private int type; //1.商品 2.收藏
+
+
+    public static CommonLearnFragment newInstance(int type) {
+        Bundle args = new Bundle();
+        args.putInt("type", type);
+        CommonLearnFragment fragment = new CommonLearnFragment();
+        fragment.setArguments(args);
+        return fragment;
+    }
+
+    @Override
+    public void setPresenter() {
+        mBind.setPresenter(mPresenter);
+    }
+
+    @Override
+    public int getLayoutId() {
+        return R.layout.fragment_common_learn;
+    }
+
+
+    @Override
+    protected void lazyLoad() {
+        super.lazyLoad();
+        mPresenter.refresh();
+    }
+
+    @Override
+    public void initView() {
+        Bundle bundle = getArguments();
+        type = bundle.getInt("type");
+        mPresenter.setType(type);
+        mBind.edtSeacher.setText(getString(R.string.find_course)+type);
+
+        mBind.rlSeacher.setVisibility(type==3?View.GONE:View.VISIBLE);
+        mBind.ivPubCourse.setOnClickListener(view -> startActivity(PubCourseActivity.class));
+
+        setAdapter();
+    }
+
+    private void setAdapter() {
+        List<CommonLearnBean> items = new ArrayList<>();
+        String url = "http://dl.kf.ai/online/ka/spu/serviceDetailVideo/c8f6169b1272663588a24b48c6261a0f.mp4";
+        for (int i=0;i<10;i++){
+            items.add(new CommonLearnBean(i,url,"Video Title "+i));
+        }
+
+        LearnAdapter mAdapter = new LearnAdapter(true,type);
+        mAdapter.setViewType(R.layout.item_common_learn);
+        mBind.recyclerView.setAdapter(mAdapter);
+        mAdapter.setData(items);
+        mAdapter.setOnItemClickListener((item, bind) -> {
+            startActivity(CourseDetailActivity.class);
+        });
+    }
+
+    @Override
+    public void onPause() {
+        super.onPause();
+        JzvdStd.goOnPlayOnPause();
+    }
+}
diff --git a/learnCenter/src/main/java/com/dayu/learncenter/ui/fragment/HomeLearnFragment.java b/learnCenter/src/main/java/com/dayu/learncenter/ui/fragment/HomeLearnFragment.java
new file mode 100644
index 0000000..74e3abc
--- /dev/null
+++ b/learnCenter/src/main/java/com/dayu/learncenter/ui/fragment/HomeLearnFragment.java
@@ -0,0 +1,133 @@
+package com.dayu.learncenter.ui.fragment;
+
+import android.content.res.AssetManager;
+import android.graphics.Typeface;
+import android.support.design.widget.TabLayout;
+import android.support.v4.app.Fragment;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.TextView;
+
+import com.dayu.base.ui.adapter.FragmentAdapter;
+import com.dayu.base.ui.fragment.BaseFragment;
+import com.dayu.base.ui.presenter.SImplePresenter;
+import com.dayu.event.LearnTabNumEvent;
+import com.dayu.learncenter.R;
+import com.dayu.learncenter.databinding.FragmentHomeLearnBinding;
+import com.dayu.utils.TabLayoutUtils;
+import com.dayu.utils.UIUtils;
+import com.umeng.analytics.MobclickAgent;
+
+import org.greenrobot.eventbus.EventBus;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class HomeLearnFragment extends BaseFragment<SImplePresenter, FragmentHomeLearnBinding> {
+    public List<Fragment> list_fragments;
+    private FragmentAdapter adapter;
+    private TextView mTabNumTv;
+    private TextView mTabTextTv;
+    private boolean isFirstAddTab = true;
+    private String[] tabDesc;
+
+    @Override
+    public void setPresenter() {
+    }
+
+    @Override
+    public int getLayoutId() {
+        return R.layout.fragment_home_learn;
+    }
+
+    @Override
+    public void initView() {
+        tabDesc = UIUtils.getStrings(R.array.learn_top_tab_item);
+        initData();
+    }
+
+    private void initData() {
+        list_fragments = new ArrayList<>();
+        list_fragments.add(CommonLearnFragment.newInstance(1));
+        list_fragments.add(CommonLearnFragment.newInstance(2));
+        list_fragments.add(CommonLearnFragment.newInstance(3));
+        adapter = new FragmentAdapter(getFragmentManager(), list_fragments);
+        mBind.vpLearn.setAdapter(adapter);
+        mBind.tabLearn.setupWithViewPager(mBind.vpLearn);
+        mBind.tabLearn.setTabMode(TabLayout.MODE_FIXED);
+        mBind.vpLearn.setOffscreenPageLimit(4);
+        mBind.tabLearn.post(() ->
+                TabLayoutUtils.setIndicator(mBind.tabLearn, 0, 0, R.color.cl_order_item_line_bg, mActivity));
+        mBind.tabLearn.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
+            @Override
+            public void onTabSelected(TabLayout.Tab tab) {
+                int temp = tab.getPosition();
+                if (tab.getCustomView() == null) {
+                    return;
+                }
+                mTabNumTv = tab.getCustomView().findViewById(R.id.tabtext);
+                mTabTextTv = tab.getCustomView().findViewById(R.id.tabicon);
+                mTabNumTv.setTextColor(getResources().getColor(R.color.bg_button));
+                mTabTextTv.setTextColor(getResources().getColor(R.color.bg_button));
+                mBind.vpLearn.setCurrentItem(temp);
+                MobclickAgent.onPageStart("HomeLearnFragment" + temp);
+            }
+
+            @Override
+            public void onTabUnselected(TabLayout.Tab tab) {
+                if (mTabNumTv == null || mTabTextTv == null) {
+                    return;
+                }
+                int temp = tab.getPosition();
+                mTabNumTv.setTextColor(getResources().getColor(R.color.cl_tab_init));
+                mTabTextTv.setTextColor(getResources().getColor(R.color.cl_tab_init));
+            }
+
+            @Override
+            public void onTabReselected(TabLayout.Tab tab) {
+            }
+        });
+
+        setTabNum(0);
+
+//        mPresenter.chooseTab(0);
+    }
+
+    public void setTabNum(int myTabIndex) {
+        EventBus.getDefault().post(new LearnTabNumEvent(1));
+        String[] tabNum = new String[]{0 + "", 0 + "", 0 + ""};
+        if (isFirstAddTab) {
+            mBind.tabLearn.removeAllTabs();
+            mBind.tabLearn.addTab(mBind.tabLearn.newTab().setCustomView(CreatTab(0, tabNum[0], tabDesc[0])));
+            mBind.tabLearn.addTab(mBind.tabLearn.newTab().setCustomView(CreatTab(1, tabNum[1], tabDesc[1])));
+            mBind.tabLearn.addTab(mBind.tabLearn.newTab().setCustomView(CreatTab(2, tabNum[2], tabDesc[2])));
+            isFirstAddTab = false;
+        } else {
+            for (int i = 0; i < mBind.tabLearn.getTabCount(); i++) {
+                TextView tv = mBind.tabLearn.getTabAt(i).getCustomView().findViewById(R.id.tabtext);
+                TextView tvIcon = mBind.tabLearn.getTabAt(i).getCustomView().findViewById(R.id.tabicon);
+                tv.setText(tabNum[i]);
+                tvIcon.setText(tabDesc[i]);
+            }
+        }
+        if (myTabIndex != -1) {
+//            mBind.vpLearn.setCurrentItem(myTabIndex);
+            mBind.tabLearn.getTabAt(myTabIndex).select();
+        }
+    }
+
+    private View CreatTab(int index, String number, String iconID) {
+        View newtab = LayoutInflater.from(mActivity).inflate(R.layout.layout_common_top_tab, null);
+        TextView textView_number = newtab.findViewById(R.id.tabtext);
+        AssetManager mgr = mActivity.getAssets();
+        if (index == 0) {
+            textView_number.setTextColor(getResources().getColor(R.color.cl_tab_read));
+        }
+        Typeface tf = Typeface.createFromAsset(mgr, "fonts/DIN Alternate Bold.ttf");
+        textView_number.setTypeface(tf);
+        textView_number.setText(number);
+        TextView textView = newtab.findViewById(R.id.tabicon);
+        textView.setText(iconID);
+        return newtab;
+    }
+}
diff --git a/learnCenter/src/main/release/AndroidManifest.xml b/learnCenter/src/main/release/AndroidManifest.xml
new file mode 100644
index 0000000..991443d
--- /dev/null
+++ b/learnCenter/src/main/release/AndroidManifest.xml
@@ -0,0 +1,18 @@
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.dayu.learncenter" >
+    <application
+        android:allowBackup="true"
+        android:label="@string/app_name"
+        android:supportsRtl="true">
+        <activity android:name=".ui.activity.PubCourseActivity"
+            android:configChanges="orientation|screenSize|keyboardHidden"
+            android:screenOrientation="portrait"
+            />
+        <activity android:name=".ui.activity.CourseDetailActivity"
+            android:configChanges="orientation|screenSize|keyboardHidden"
+            android:screenOrientation="portrait"
+            />
+
+    </application>
+</manifest>
+
diff --git a/learnCenter/src/main/res/layout/activity_course_detail.xml b/learnCenter/src/main/res/layout/activity_course_detail.xml
new file mode 100644
index 0000000..109ca3c
--- /dev/null
+++ b/learnCenter/src/main/res/layout/activity_course_detail.xml
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:background="@color/white">
+
+        <RelativeLayout
+            android:id="@+id/rl_title"
+            style="@style/title">
+
+            <TextView
+                android:id="@+id/tv_title"
+                style="@style/text_title"
+                android:text="@string/course_detail" />
+
+            <ImageView
+                android:id="@+id/title_back"
+                style="@style/title_image_back" />
+
+            <ImageView
+                style="@style/card_line"
+                android:layout_alignParentBottom="true" />
+        </RelativeLayout>
+
+        <android.support.v4.widget.NestedScrollView
+            android:id="@+id/nsv_operate"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_below="@id/rl_title"
+            >
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:orientation="vertical">
+
+            <LinearLayout style="@style/ll_course_content">
+
+                <TextView
+                    style="@style/tv_course_left"
+                    android:text="@string/course_theme" />
+
+                <TextView
+                    android:id="@+id/tv_theme"
+                    style="@style/tv_course_content"
+                    />
+            </LinearLayout>
+            <LinearLayout style="@style/ll_course_content">
+
+                <TextView
+                    style="@style/tv_course_left"
+                    android:text="@string/course_desc"
+                    />
+
+                <TextView
+                    android:id="@+id/tv_desc"
+                    style="@style/tv_course_content"
+                    />
+            </LinearLayout>
+            <LinearLayout style="@style/ll_course_content">
+
+                <TextView
+                    style="@style/tv_course_left"
+                    android:text="@string/course_puber"
+                    />
+
+                <TextView
+                    android:id="@+id/tv_puber"
+                    style="@style/tv_course_content"
+                    />
+            </LinearLayout>
+
+            <LinearLayout
+                android:id="@+id/ll_video"
+                android:layout_width="match_parent"
+                android:layout_height="180dp"
+                android:layout_marginTop="15dp">
+
+                <cn.jzvd.JzvdStd
+                    android:id="@+id/jz_video"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent" />
+            </LinearLayout>
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="horizontal"
+                android:layout_marginLeft="10dp"
+                android:layout_marginRight="10dp"
+                android:gravity="center_vertical"
+                >
+                <TextView
+                    android:id="@+id/tv_component"
+                    android:layout_width="0dp"
+                    android:layout_weight="1"
+                    android:layout_height="43dp"
+                    android:gravity="center_vertical"
+                    android:text="留言"
+                    android:textColor="@color/cl_home_title_text_color"
+                    android:textSize="14sp"
+                    android:textStyle="bold" />
+
+                <ImageView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:src="@drawable/icon_looks"
+                    android:layout_marginLeft="10dp"
+                    />
+                <TextView
+                    android:id="@+id/tv_looks"
+                    style="@style/common_text_style"
+                    android:text="12345"
+                    android:layout_marginLeft="5dp"
+                    />
+                <ImageView
+                    android:id="@+id/iv_like"
+                    android:layout_width="18dp"
+                    android:layout_height="18dp"
+                    android:src="@drawable/icon_like_gray"
+                    android:layout_marginLeft="10dp"
+                    />
+                <TextView
+                    android:id="@+id/tv_like"
+                    style="@style/common_text_style"
+                    android:text="12345"
+                    android:layout_marginLeft="5dp"
+                    android:layout_marginRight="10dp"
+                    />
+            </LinearLayout>
+
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="1dp"
+                android:background="@color/color_ee" />
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_margin="10dp"
+                android:focusable="true"
+                android:focusableInTouchMode="true"
+                android:orientation="horizontal">
+
+                <ImageView
+                    android:id="@+id/iv_avatar"
+                    android:layout_width="35dp"
+                    android:layout_height="35dp"
+                    android:src="@drawable/icon_user_default"
+                    android:layout_marginRight="10dp" />
+
+                <EditText
+                    android:id="@+id/edt_comment"
+                    android:layout_width="0dp"
+                    android:layout_height="35dp"
+                    android:layout_weight="1"
+                    android:background="#f5f5f5"
+                    android:hint="@string/ask_detail"
+                    android:padding="5dp"
+                    android:paddingLeft="5dp"
+                    android:singleLine="true"
+                    android:textSize="13sp" />
+
+                <Button
+                    android:id="@+id/btn_send"
+                    android:layout_width="80dp"
+                    android:layout_height="35dp"
+                    android:layout_gravity="center_vertical"
+                    android:background="@color/cl_home_button"
+                    android:gravity="center"
+                    android:text="@string/send_str"
+                    android:textColor="@color/white"
+                    android:textSize="13sp" />
+            </LinearLayout>
+
+
+            <android.support.v7.widget.RecyclerView
+                android:id="@+id/rv_component"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="10dp"
+                android:layout_marginRight="10dp"
+                />
+        </LinearLayout>
+        </android.support.v4.widget.NestedScrollView>
+
+
+    </RelativeLayout>
+</layout>
\ No newline at end of file
diff --git a/learnCenter/src/main/res/layout/activity_pub_course.xml b/learnCenter/src/main/res/layout/activity_pub_course.xml
new file mode 100644
index 0000000..9528084
--- /dev/null
+++ b/learnCenter/src/main/res/layout/activity_pub_course.xml
@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    >
+
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:background="@color/white"
+        >
+
+        <RelativeLayout
+            android:id="@+id/rl_title"
+            style="@style/title">
+
+            <TextView
+                android:id="@+id/tv_title"
+                style="@style/text_title"
+                android:text="@string/pub_course_title" />
+
+            <ImageView
+                android:id="@+id/title_back"
+                style="@style/title_image_back" />
+
+            <ImageView
+                style="@style/card_line"
+                android:layout_alignParentBottom="true" />
+        </RelativeLayout>
+
+        <ScrollView
+            android:layout_below="@+id/rl_title"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:overScrollMode="never"
+            android:padding="10dp"
+            android:layout_marginBottom="60dp"
+            android:scrollbars="none">
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:orientation="vertical">
+
+                <LinearLayout style="@style/ll_part_bottom">
+                    <TextView
+                        style="@style/common_text_style"
+                        android:drawableLeft="@drawable/icon_star_necessary"
+                        android:text="@string/course_theme" />
+
+                    <EditText
+                        android:id="@+id/edt_theme"
+                        style="@style/learn_course_edit"
+                        android:maxLength="10"
+                        android:hint="@string/limit_10_words" />
+                </LinearLayout>
+
+                <LinearLayout style="@style/ll_part_bottom">
+                    <TextView
+                        style="@style/common_text_style"
+                        android:drawableLeft="@drawable/icon_star_necessary"
+                        android:text="@string/course_desc" />
+
+                    <EditText
+                        android:id="@+id/edt_desc"
+                        style="@style/learn_course_edit"
+                        android:layout_height="100dp"
+                        android:maxLength="100"
+                        android:hint="@string/limit_100_words" />
+                </LinearLayout>
+
+
+                <TextView
+                    style="@style/common_text_style"
+                    android:layout_marginTop="20dp"
+                    android:drawableLeft="@drawable/icon_star_necessary"
+                    android:text="@string/upload_video" />
+
+                <RelativeLayout
+                    android:id="@+id/rl_video"
+                    android:layout_width="match_parent"
+                    android:layout_height="180dp"
+                    android:layout_margin="10dp"
+                    android:background="@drawable/bg_input_gray_react"
+                    >
+
+                    <TextView
+                        style="@style/common_text_style"
+                        android:textSize="30sp"
+                        android:textColor="#999"
+                        android:text="+"
+                        android:layout_centerInParent="true"
+                        />
+                    <cn.jzvd.JzvdStd
+                        android:visibility="gone"
+                        android:id="@+id/jz_video"
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent" />
+                    <ImageView
+                        android:visibility="gone"
+                        android:id="@+id/iv_delete"
+                        android:layout_width="25dp"
+                        android:layout_height="25dp"
+                        android:layout_alignParentRight="true"
+                        android:layout_alignParentTop="true"
+                        android:src="@drawable/img_photo_delete" />
+
+                </RelativeLayout>
+
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="vertical"
+                    android:background="#f2f2f2"
+                    android:padding="2dp"
+                    android:layout_marginTop="15dp"
+                    >
+                    <TextView
+                        style="@style/common_text_style"
+                        android:textSize="16sp"
+                        android:text="@string/learn_tips"
+                        android:textStyle="bold"
+                        />
+                    <TextView
+                        style="@style/common_text_style"
+                        android:text="@string/learn_tip1"
+                        android:layout_marginTop="25dp"
+                        />
+                    <TextView
+                        style="@style/common_text_style"
+                        android:text="@string/learn_tip2"
+                        android:layout_marginTop="25dp"
+                        android:layout_marginBottom="15dp"
+                        />
+
+                </LinearLayout>
+
+            </LinearLayout>
+
+        </ScrollView>
+
+        <LinearLayout
+            android:layout_alignParentBottom="true"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+            android:layout_marginBottom="15dp"
+            android:paddingLeft="15dp"
+            android:paddingRight="15dp"
+            >
+            <Button
+                android:id="@+id/btn_cancle"
+                style="@style/btn_common_gray"
+                android:layout_width="0dp"
+                android:layout_weight="1"
+                android:text="@string/cancle"
+                />
+            <Button
+                android:id="@+id/btn_confirm"
+                android:layout_marginLeft="25dp"
+                style="@style/btn_common_blue"
+                android:layout_width="0dp"
+                android:text="@string/confirm_pub"
+                android:layout_weight="1.5"
+                />
+        </LinearLayout>
+    </RelativeLayout>
+</layout>
\ No newline at end of file
diff --git a/learnCenter/src/main/res/layout/fragment_common_learn.xml b/learnCenter/src/main/res/layout/fragment_common_learn.xml
new file mode 100644
index 0000000..97cafa8
--- /dev/null
+++ b/learnCenter/src/main/res/layout/fragment_common_learn.xml
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
+
+    <data>
+
+        <variable
+            name="presenter"
+            type="com.dayu.base.ui.presenter.BaseListPresenter" />
+    </data>
+
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:focusable="true"
+        android:focusableInTouchMode="true"
+        android:background="#f5f5f5"
+        android:orientation="vertical">
+
+        <RelativeLayout
+            android:id="@+id/rl_seacher"
+            android:layout_width="match_parent"
+            android:layout_height="45dp"
+            android:background="@color/cl_white"
+            android:layout_marginLeft="13dp"
+            android:layout_marginRight="13dp"
+            >
+
+            <EditText
+                android:id="@+id/edt_seacher"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:layout_centerVertical="true"
+                android:layout_marginBottom="5dp"
+                android:layout_marginLeft="10dp"
+                android:layout_marginRight="10dp"
+                android:background="@null"
+                android:gravity="center"
+                android:hint="@string/find_course"
+                android:imeOptions="actionSearch"
+                android:inputType="text"
+                android:singleLine="true"
+                android:layout_toLeftOf="@+id/tv_cancel"
+                android:textSize="15sp" />
+
+
+            <TextView
+                android:id="@+id/tv_cancel"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_alignParentRight="true"
+                android:layout_centerVertical="true"
+                android:layout_marginRight="20dp"
+                android:gravity="center"
+                android:text="@string/cancle"
+                android:textColor="@color/cl_black"
+                android:textSize="16sp"
+                android:textStyle="bold"
+                android:visibility="gone"
+                />
+
+            <ImageView
+                android:layout_width="match_parent"
+                android:layout_height="5dp"
+                android:layout_alignParentBottom="true"
+                android:src="@drawable/line_shape" />
+        </RelativeLayout>
+
+
+        <com.dayu.widgets.LRecyclerView
+            android:layout_below="@id/rl_seacher"
+            android:id="@+id/recyclerView"
+            setPresenter="@{presenter}"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent" />
+
+        <ImageView
+            android:id="@+id/iv_pub_course"
+            android:layout_width="50dp"
+            android:layout_height="50dp"
+            android:layout_alignParentBottom="true"
+            android:layout_alignParentRight="true"
+            android:layout_marginBottom="50dp"
+            android:layout_marginRight="30dp"
+            android:src="@drawable/icon_add_blue"
+            />
+    </RelativeLayout>
+
+</layout>
\ No newline at end of file
diff --git a/learnCenter/src/main/res/layout/fragment_home_learn.xml b/learnCenter/src/main/res/layout/fragment_home_learn.xml
new file mode 100644
index 0000000..300c33a
--- /dev/null
+++ b/learnCenter/src/main/res/layout/fragment_home_learn.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
+
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:background="@color/cl_white"
+        android:orientation="vertical">
+
+        <RelativeLayout style="@style/title">
+
+            <TextView
+                style="@style/text_title"
+                android:text="@string/learn_str" />
+
+        </RelativeLayout>
+
+
+        <android.support.design.widget.TabLayout
+            android:id="@+id/tab_learn"
+            android:layout_width="match_parent"
+            android:layout_height="78dp"
+            app:tabIndicatorColor="@color/cl_tab_line"
+            app:tabMaxWidth="0dp"
+            app:tabIndicatorHeight="0dp"
+            app:tabBackground="@drawable/top_tab_selector"
+            app:tabMode="fixed" />
+
+        <ImageView style="@style/card_line" />
+
+        <android.support.v4.view.ViewPager
+            android:id="@+id/vp_learn"
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:layout_weight="1" />
+    </LinearLayout>
+
+</layout>
\ No newline at end of file
diff --git a/learnCenter/src/main/res/layout/item_common_learn.xml b/learnCenter/src/main/res/layout/item_common_learn.xml
new file mode 100644
index 0000000..65ebe5f
--- /dev/null
+++ b/learnCenter/src/main/res/layout/item_common_learn.xml
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
+
+
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="@dimen/dp_13.3"
+        android:layout_marginTop="5dp"
+        android:layout_marginRight="@dimen/dp_13.3"
+        android:background="@drawable/item_shape">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical">
+
+            <RelativeLayout
+                android:id="@+id/rl_video"
+                android:layout_width="match_parent"
+                android:layout_height="180dp">
+
+                <com.dayu.widgets.MyJzvdStd
+                    android:id="@+id/jz_video"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent" />
+            </RelativeLayout>
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="45dp"
+                android:gravity="center_vertical"
+                android:orientation="horizontal">
+
+                <TextView
+                    android:id="@+id/tv_title"
+                    style="@style/common_text_style"
+                    android:layout_width="0dp"
+                    android:layout_marginLeft="5dp"
+                    android:layout_weight="1"
+                    android:maxLines="2"
+                    android:text="标题" />
+
+                <ImageView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="10dp"
+                    android:src="@drawable/icon_looks" />
+
+                <TextView
+                    android:id="@+id/tv_looks"
+                    style="@style/common_text_style"
+                    android:layout_marginLeft="5dp"
+                    android:text="12345" />
+
+                <ImageView
+                    android:id="@+id/iv_like"
+                    android:layout_width="18dp"
+                    android:layout_height="18dp"
+                    android:layout_marginLeft="10dp"
+                    android:src="@drawable/icon_like_gray" />
+
+                <TextView
+                    android:id="@+id/tv_like"
+                    style="@style/common_text_style"
+                    android:layout_marginLeft="5dp"
+                    android:layout_marginRight="10dp"
+                    android:text="12345" />
+            </LinearLayout>
+
+        </LinearLayout>
+
+        <TextView
+            android:id="@+id/tv_progress"
+            style="@style/common_text_style"
+            android:padding="10dp"
+            android:text="学习进度 0%"
+            android:textColor="@color/text_common_blue"
+            android:textSize="20sp"
+            android:layout_marginTop="15dp"
+            android:visibility="gone"
+            android:layout_centerHorizontal="true"
+            />
+        <TextView
+            android:id="@+id/tv_date"
+            style="@style/common_text_style"
+            android:height="36dp"
+            android:gravity="center"
+            android:paddingLeft="15dp"
+            android:paddingRight="15dp"
+            android:text="发布时间 2020-01-01"
+            android:background="#80ffffff"
+            android:layout_marginTop="130dp"
+            android:layout_centerHorizontal="true"
+            />
+
+    </RelativeLayout>
+
+</layout>
\ No newline at end of file
diff --git a/learnCenter/src/main/res/values/strings.xml b/learnCenter/src/main/res/values/strings.xml
new file mode 100644
index 0000000..5c2a009
--- /dev/null
+++ b/learnCenter/src/main/res/values/strings.xml
@@ -0,0 +1,3 @@
+<resources>
+    <string name="app_name">LearnCenter</string>
+</resources>
diff --git a/learnCenter/src/test/java/com/dayu/learncenter/ExampleUnitTest.java b/learnCenter/src/test/java/com/dayu/learncenter/ExampleUnitTest.java
new file mode 100644
index 0000000..06242e5
--- /dev/null
+++ b/learnCenter/src/test/java/com/dayu/learncenter/ExampleUnitTest.java
@@ -0,0 +1,17 @@
+package com.dayu.learncenter;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
+ */
+public class ExampleUnitTest {
+    @Test
+    public void addition_isCorrect() {
+        assertEquals(4, 2 + 2);
+    }
+}
\ No newline at end of file
diff --git a/orderCenter/src/main/java/com/dayu/order/ui/fragment/OperateDetailFragment.java b/orderCenter/src/main/java/com/dayu/order/ui/fragment/OperateDetailFragment.java
index a55c85e..ebb1903 100644
--- a/orderCenter/src/main/java/com/dayu/order/ui/fragment/OperateDetailFragment.java
+++ b/orderCenter/src/main/java/com/dayu/order/ui/fragment/OperateDetailFragment.java
@@ -89,7 +89,7 @@ public class OperateDetailFragment extends BaseFragment<SImplePresenter, Fragmen
 //        String url = "http://jzvd.nathen.cn/c6e3dc12a1154626b3476d9bf3bd7266/6b56c5f0dc31428083757a45764763b0-5287d2089db37e62345123a1be272f8b.mp4";
         String url = operateInfo.getVideoUrl();
         mBind.jzVideo.setUp(url, "");
-        GlideImageLoader.load(mActivity, mBind.jzVideo.thumbImageView, url, R.drawable.icon_app_logo);
+        GlideImageLoader.load(mActivity, mBind.jzVideo.posterImageView, url, R.drawable.icon_video_default);
 
         setListener();
     }
diff --git a/orderCenter/src/main/res/layout/fragment_order_home.xml b/orderCenter/src/main/res/layout/fragment_order_home.xml
index cc10155..caf559b 100755
--- a/orderCenter/src/main/res/layout/fragment_order_home.xml
+++ b/orderCenter/src/main/res/layout/fragment_order_home.xml
@@ -64,6 +64,7 @@
             android:layout_marginBottom="50dp"
             android:layout_marginRight="10dp"
             android:src="@drawable/icon_create_order"
-            android:visibility="gone" />
+            android:visibility="gone"
+            />
     </RelativeLayout>
 </layout>
\ No newline at end of file
diff --git a/saleCenter/src/main/java/com/bigfish/salecenter/api/SaleService.java b/saleCenter/src/main/java/com/bigfish/salecenter/api/SaleService.java
index afbcbe2..56a9b6c 100644
--- a/saleCenter/src/main/java/com/bigfish/salecenter/api/SaleService.java
+++ b/saleCenter/src/main/java/com/bigfish/salecenter/api/SaleService.java
@@ -1,6 +1,5 @@
 package com.bigfish.salecenter.api;
 
-import com.bigfish.salecenter.event.SaleTabNumEvent;
 import com.bigfish.salecenter.model.CollectProductData;
 import com.bigfish.salecenter.model.CommentBean;
 import com.bigfish.salecenter.model.CommentPostData;
diff --git a/saleCenter/src/main/java/com/bigfish/salecenter/ui/fragment/HomeSaleFragment.java b/saleCenter/src/main/java/com/bigfish/salecenter/ui/fragment/HomeSaleFragment.java
index 60707dd..3586bd8 100644
--- a/saleCenter/src/main/java/com/bigfish/salecenter/ui/fragment/HomeSaleFragment.java
+++ b/saleCenter/src/main/java/com/bigfish/salecenter/ui/fragment/HomeSaleFragment.java
@@ -6,22 +6,18 @@ import android.os.Bundle;
 import android.support.design.widget.TabLayout;
 import android.view.LayoutInflater;
 import android.view.View;
-import android.view.ViewGroup;
 import android.widget.TextView;
 
 import com.bigfish.salecenter.R;
 import com.bigfish.salecenter.databinding.FragmentHomeSaleBinding;
 import com.bigfish.salecenter.event.RefreshSaleTab;
-import com.bigfish.salecenter.event.SaleTabNumEvent;
+import com.dayu.event.SaleTabNumEvent;
 import com.bigfish.salecenter.model.SaleTab;
 import com.bigfish.salecenter.presenter.homesale.HomeSaleContract;
 import com.bigfish.salecenter.presenter.homesale.HomeSalePresenter;
 import com.dayu.base.ui.adapter.FragmentAdapter;
 import com.dayu.base.ui.fragment.BaseFragment;
-import com.dayu.provider.event.RefreshTab;
-import com.dayu.utils.LogUtils;
 import com.dayu.utils.TabLayoutUtils;
-import com.dayu.utils.ToastUtils;
 import com.umeng.analytics.MobclickAgent;
 
 import android.support.v4.app.Fragment;
diff --git a/saleCenter/src/main/java/com/bigfish/salecenter/ui/fragment/ProductInstructionFragment.java b/saleCenter/src/main/java/com/bigfish/salecenter/ui/fragment/ProductInstructionFragment.java
index 5bd8bbf..d804087 100644
--- a/saleCenter/src/main/java/com/bigfish/salecenter/ui/fragment/ProductInstructionFragment.java
+++ b/saleCenter/src/main/java/com/bigfish/salecenter/ui/fragment/ProductInstructionFragment.java
@@ -117,7 +117,7 @@ public class ProductInstructionFragment extends BaseFragment<SImplePresenter, Fr
         } else {
             mBind.llVideo.setVisibility(View.VISIBLE);
             mBind.jzVideo.setUp(url, "");
-            GlideImageLoader.load(mActivity, mBind.jzVideo.thumbImageView, url, R.drawable.icon_app_logo);
+            GlideImageLoader.load(mActivity, mBind.jzVideo.posterImageView, url, R.drawable.icon_video_default);
         }
     }
 
diff --git a/saleCenter/src/main/java/com/bigfish/salecenter/ui/fragment/SaleProductFragment.java b/saleCenter/src/main/java/com/bigfish/salecenter/ui/fragment/SaleProductFragment.java
index 93b6edf..a7e5199 100644
--- a/saleCenter/src/main/java/com/bigfish/salecenter/ui/fragment/SaleProductFragment.java
+++ b/saleCenter/src/main/java/com/bigfish/salecenter/ui/fragment/SaleProductFragment.java
@@ -56,6 +56,11 @@ public class SaleProductFragment extends BaseFragment<SaleProductPresent, Fragme
     }
 
     @Override
+    public int getLayoutId() {
+        return R.layout.fragment_common_sale;
+    }
+
+    @Override
     protected void lazyLoad() {
         super.lazyLoad();
         mPresenter.refresh();
@@ -85,8 +90,8 @@ public class SaleProductFragment extends BaseFragment<SaleProductPresent, Fragme
             }
         });
     }
-
     //搜索
+
     private void initSearchView() {
         mBind.edtSeacher.setHint(mActivity.getString(R.string.input_sale_product));
         mBind.edtSeacher.addTextChangedListener(new MyTextWatcher(){
@@ -123,19 +128,14 @@ public class SaleProductFragment extends BaseFragment<SaleProductPresent, Fragme
         });
     }
 
-
     //跳转详情页
+
     private void toDetail(ProductListBean item) {
         Intent intent = new Intent(mActivity, ProductDetailActivity.class);
         intent.putExtra("id", item.getId());
         mActivity.startActivity(intent);
     }
 
-    @Override
-    public int getLayoutId() {
-        return R.layout.fragment_common_sale;
-    }
-
 
     @Subscribe
     public void onCollectChange(CollectChangedEvent event) {
diff --git a/saleCenter/src/main/res/layout/fragment_common_sale.xml b/saleCenter/src/main/res/layout/fragment_common_sale.xml
index 8bea08c..a24a5d5 100644
--- a/saleCenter/src/main/res/layout/fragment_common_sale.xml
+++ b/saleCenter/src/main/res/layout/fragment_common_sale.xml
@@ -12,6 +12,7 @@
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"
+        android:background="#f5f5f5"
         android:focusable="true"
         android:focusableInTouchMode="true"
         android:orientation="vertical">
@@ -20,15 +21,19 @@
             android:id="@+id/rl_seacher"
             android:layout_width="match_parent"
             android:layout_height="45dp"
-            android:background="@color/cl_white"
-            >
+            android:layout_marginLeft="13dp"
+            android:layout_marginRight="13dp"
+            android:background="@color/cl_white">
 
             <EditText
                 android:id="@+id/edt_seacher"
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
                 android:layout_centerVertical="true"
+                android:layout_marginLeft="10dp"
+                android:layout_marginRight="10dp"
                 android:layout_marginBottom="5dp"
+                android:layout_toLeftOf="@+id/tv_cancel"
                 android:background="@null"
                 android:gravity="center"
                 android:hint="@string/input_sale_product"
@@ -50,8 +55,7 @@
                 android:textColor="@color/cl_black"
                 android:textSize="16sp"
                 android:textStyle="bold"
-                android:visibility="gone"
-                />
+                android:visibility="gone" />
 
             <ImageView
                 android:layout_width="match_parent"
@@ -65,8 +69,7 @@
             android:id="@+id/recyclerView"
             setPresenter="@{presenter}"
             android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:background="#f5f5f5" />
+            android:layout_height="match_parent" />
     </LinearLayout>
 
 </layout>
\ No newline at end of file
diff --git a/settings.gradle b/settings.gradle
index bcce3e4..02c9ce6 100755
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,4 +1,4 @@
-include ':app', ':saleCenter',
+include ':app', ':saleCenter', ':learnCenter',
         ':provider',
         ':baseSDK',
         ':messageCenter',
@@ -8,4 +8,5 @@ include ':app', ':saleCenter',
         ':locationComponent',
         ':pickerview',
         ':wheelview',
-        ':IDCardLib', ':umeng'
+        ':IDCardLib',
+        ':umeng'