diff --git a/src/main/java/com/tianpengtech/common/MyConfig.java b/src/main/java/com/tianpengtech/common/MyConfig.java
index 22e46edea93ffccc33836006082a5ca2428ac720..46ee979ddedba6ddc1ce05ba82b30d9193bd7d98 100644
--- a/src/main/java/com/tianpengtech/common/MyConfig.java
+++ b/src/main/java/com/tianpengtech/common/MyConfig.java
@@ -24,6 +24,7 @@ import com.tianpengtech.common.model.fairauth.FairAuth;
 import com.tianpengtech.common.model.fairbankno.FairBankno;
 import com.tianpengtech.common.model.fairext.FairExt;
 import com.tianpengtech.common.model.fairmessage.FairMessage;
+import com.tianpengtech.common.model.fairphoto.FairPhoto;
 import com.tianpengtech.common.model.fairreport.FairReport;
 import com.tianpengtech.common.model.fairwithdraw.FairWithdraw;
 import com.tianpengtech.common.model.feedback.FeedBack;
@@ -152,6 +153,7 @@ public class MyConfig extends JFinalConfig {
         arp.addMapping(FairWithdraw.dao.tableName(),FairWithdraw.class);
         arp.addMapping(FairReport.dao.tableName(),FairReport.class);
         arp.addMapping(FairAdvertisement.dao.tableName(),FairAdvertisement.class);
+        arp.addMapping(FairPhoto.dao.tableName(),FairPhoto.class);
         EhCachePlugin cachePlugin = new EhCachePlugin();
         me.add(cachePlugin);
     }
@@ -172,7 +174,7 @@ public class MyConfig extends JFinalConfig {
     }
 
     public static void main(String[] args) {
-        JFinal.start("src/main/webapp", 8090, "/",5);
+        JFinal.start("src/main/webapp", 8090, "/");
     }
 
     @Override
diff --git a/src/main/java/com/tianpengtech/common/generator/app/Generator.java b/src/main/java/com/tianpengtech/common/generator/app/Generator.java
index d3a0f79a3bb9436c396383c840b37691631e25f2..8d49ad8a9ee49576db44f585d377573263655c20 100644
--- a/src/main/java/com/tianpengtech/common/generator/app/Generator.java
+++ b/src/main/java/com/tianpengtech/common/generator/app/Generator.java
@@ -232,7 +232,7 @@ public class Generator {
         Engine engine = engineConfig();
 //        Generator.excute(engine,".user", "User", "fair_user", "用户表");
 //        Generator.excute(engine,".authenticate", "Authenticate", "fair_user_authenticate", "用户认证表");
-        Generator.excute(engine,".fairadvertisement", "FairAdvertisement", "fair_advertisement", "广告信息表");
+        Generator.excute(engine,".fair", "FairPhoto", "fair_photo", "网红照片表");
 //        Generator.excute(engine,".wh", "Fair", "fair_wh", "网红表");
 //        Generator.excute(engine,".feedback", "FeedBack", "fair_feedback", "反馈表");
 
diff --git a/src/main/java/com/tianpengtech/common/model/fairphoto/FairPhoto.java b/src/main/java/com/tianpengtech/common/model/fairphoto/FairPhoto.java
new file mode 100644
index 0000000000000000000000000000000000000000..9a53721505312afd5e7a504d28bff5198a4291f9
--- /dev/null
+++ b/src/main/java/com/tianpengtech/common/model/fairphoto/FairPhoto.java
@@ -0,0 +1,30 @@
+package com.tianpengtech.common.model.fairphoto;
+import com.tianpengtech.common.model.AbstractBaseModel;
+/**
+ *实体类名-网红照片表
+ * fair_photo
+ *
+ * @since Thu Sep 07 21:03:22 CST 2017
+ */
+public class FairPhoto extends AbstractBaseModel< FairPhoto > {
+
+	/**
+	 *
+	 */
+	private static final long serialVersionUID = 1L;
+	public static final FairPhoto dao = new FairPhoto();
+
+
+		public static final String ID ="id"; //
+		public static final String URL ="url"; //图片链接
+		public static final String WH_ID ="wh_id"; //网红ID
+		public static final String DELETETAG ="deletetag"; //删除标识
+		public static final String CREATE_TIME ="create_time"; //
+
+
+	@Override
+	public String tableName() {
+		return "fair_photo";
+	}
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportController.java b/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportController.java
index d5d05b6649df22bccf45809503cf1a628a116b8c..756c5df25f1ccacd3fb2d61a57836ccfce5c40d7 100644
--- a/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportController.java
+++ b/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportController.java
@@ -218,6 +218,40 @@ public class MobilePassportController extends BaseController{
         R r=ps.withdraw(money,46,wdToken,bankId);
         renderJson(r);
     }
+
+    /**
+     * 保存网红照片
+     */
+    public void savePhoto(){
+        String url = getPara("url");
+        User user= UserUtil.getCurrentUser(getPara("token"),getHeader("source"));
+        long uid = user.get(User.ID);
+        R r=ps.savePhoto(uid,url);
+        renderJson(r);
+    }
+
+    /**
+     * 获取网红照片
+     */
+    public void getPhoto(){
+        User user= UserUtil.getCurrentUser(getPara("token"),getHeader("source"));
+        long uid = user.get(User.ID);
+        R r=ps.getPhoto(uid);
+        renderJson(r);
+    }
+
+    /**
+     * 删除照片
+     */
+    public void delPhoto(){
+        User user= UserUtil.getCurrentUser(getPara("token"),getHeader("source"));
+        long uid = user.get(User.ID);
+        String id = getPara("id");
+        R r=ps.delPhoto(uid,id);
+        renderJson(r);
+    }
+
+
     
     public void yandou(){
     	R r = R.ok("成功");
@@ -245,4 +279,7 @@ public class MobilePassportController extends BaseController{
             throw e;
         }
     }
+
+
+
 }
diff --git a/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportService.java b/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportService.java
index a4d428fd3afa57d6e0d8723fb4e860018d57b1ce..d6552efd81dce9325412311725f95935b673e33a 100644
--- a/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportService.java
+++ b/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportService.java
@@ -10,6 +10,7 @@ import com.jfinal.plugin.ehcache.CacheKit;
 import com.tianpengtech.common.model.fair.Fair;
 import com.tianpengtech.common.model.fairauth.FairAuth;
 import com.tianpengtech.common.model.fairext.FairExt;
+import com.tianpengtech.common.model.fairphoto.FairPhoto;
 import com.tianpengtech.common.model.fairwithdraw.FairWithdraw;
 import com.tianpengtech.common.model.moneylog.MoneyLog;
 import com.tianpengtech.common.model.task.Task;
@@ -528,7 +529,59 @@ public class MobilePassportService {
         }
 
     }
-    
+
+
+    /**
+     * 保存网红图片
+     * @return
+     */
+    public R savePhoto(long uid,String picUrl){
+        FairPhoto fp = new FairPhoto();
+        fp.set(FairPhoto.URL,picUrl);
+        fp.set(FairPhoto.WH_ID,uid);
+        if(fp.save()){
+            return R.ok();
+        }else{
+            return R.fail("保存失败");
+        }
+    }
+
+
+    /**
+     * 获取网红所有照片
+     * @param uid
+     * @return
+     */
+    public R getPhoto(long uid){
+        String sql=String.format("select %s,%s from %s where %s=? and %s=? ",FairPhoto.URL,FairPhoto.ID,FairPhoto.dao.tableName(),FairPhoto.DELETETAG,FairPhoto.WH_ID);
+        List<FairPhoto> list=FairPhoto.dao.find(sql,0,uid);
+        R r = R.ok("成功");
+        r.p("photos",list);
+        return r;
+    }
+
+    /**
+     * 删除照片
+     * @param id
+     * @return
+     */
+    public R delPhoto(long uid,String id){
+        String sql=String.format("select * from %s where %s=? and %s=? and %s=?",FairPhoto.dao.tableName(),FairPhoto.DELETETAG,FairPhoto.ID,FairPhoto.WH_ID);
+        FairPhoto fp=FairPhoto.dao.findFirst(sql,0,id,uid);
+        if (fp==null){
+            return R.fail("照片不存在");
+        }else{
+            fp.set(FairPhoto.DELETETAG,1);
+            if(fp.update()){
+                return R.ok();
+            }else{
+                return R.fail("删除失败");
+            }
+        }
+    }
+
+
+
     
     
     public static void main(String[] args) {
diff --git a/src/main/java/com/tianpengtech/front/web/fair/FairWebController.java b/src/main/java/com/tianpengtech/front/web/fair/FairWebController.java
index 5ed2905fe5c0f98ee7abb03035cfd9e7df6381d3..c986064b13477386b8115ba0f9abc479ccbb4bd1 100644
--- a/src/main/java/com/tianpengtech/front/web/fair/FairWebController.java
+++ b/src/main/java/com/tianpengtech/front/web/fair/FairWebController.java
@@ -93,16 +93,14 @@ public class FairWebController extends BaseController {
      */
     public void detail_task(){
         String id=getPara("id");
-        int start = getParaToInt(GlobalConfigConstant.PARAM_NAME_START,
-                5);
-        int length = getParaToInt(GlobalConfigConstant.PARAM_NAME_LENGTH,
+        int pageNum = getParaToInt(GlobalConfigConstant.PARAM_NAME_PAGENUM, GlobalConfigConstant.DEFAULT_VALUE_PAGENUM);
+        int pageSize = getParaToInt(GlobalConfigConstant.PARAM_NAME_PAGESIZE,
                 GlobalConfigConstant.DEFAULT_VALUE_PAGESIZE);
-        int pageNum = XxxUtil.calculatePageNumForDataTable(start, length);
         if (StrKit.isBlank(id)) {
             renderJson(Ret.fail("msg", "网红不存在"));
             return;
         }
-        setAttr("taskPage",taskService.findTaskByFair(pageNum,length,Integer.parseInt(id)));
+        setAttr("taskPage",taskService.findTaskByFair(pageNum,pageSize,Integer.parseInt(id)));
         renderJson();
     }
 }
diff --git a/src/main/java/com/tianpengtech/front/web/task/TaskService.java b/src/main/java/com/tianpengtech/front/web/task/TaskService.java
index 7b1a408dbbc3232e17c7b42eda73d4939273abb2..01eeda1ae2845a5fbda3b9c05e2f362e7169b556 100644
--- a/src/main/java/com/tianpengtech/front/web/task/TaskService.java
+++ b/src/main/java/com/tianpengtech/front/web/task/TaskService.java
@@ -16,6 +16,7 @@ import com.tianpengtech.common.ip.IpUtil;
 import com.tianpengtech.common.model.authenticate.Authenticate;
 import com.tianpengtech.common.model.dictionary.Dictionary;
 import com.tianpengtech.common.model.fair.Fair;
+import com.tianpengtech.common.model.fairauth.FairAuth;
 import com.tianpengtech.common.model.moneylog.MoneyLog;
 import com.tianpengtech.common.model.task.*;
 import com.tianpengtech.common.model.user.User;
@@ -347,13 +348,22 @@ public class TaskService {
      * @return
      */
     public Page<Task> findTaskByFair(int pageNum, int length, int fairId){
-        String sql="select * ";
+        String sql="select *,(select auth.company_name from "+ Authenticate.dao.tableName()+" auth where auth."+Authenticate.USER_ID+"=task."+Task.CREATE_USER+") as cmp,(select fa.nick_name from "+FairAuth.dao.tableName()+" fa where fa."+FairAuth.ID+"=tw."+TaskWh.WH_ID+") whn " +
+                " ";
         QueryConstructor queryConstructor = new QueryConstructor();
         queryConstructor.setCommand("from "+TaskWh.dao.tableName() +" tw left join " + taskDao.tableName() +" task on tw."+TaskWh.TASK_ID+"=task."+Task.ID);
         queryConstructor.and(new EqualCondition("tw." + TaskWh.DELETETAG, TaskWh.DELETE_STATUS_NO));
         queryConstructor.and(new EqualCondition("tw." + TaskWh.WH_ID,fairId));
-        String from = queryConstructor.buildSQL("order by tw.id desc");
-        return taskDao.paginateByCache(Task.TASK_CACHE_NAME,"fair_task_"+fairId+"_"+pageNum+"_"+length,pageNum,length,sql,from,queryConstructor.getParams().toArray());
+        String from = queryConstructor.buildSQL(" order by tw.id desc");
+        Page<Task> taskPage= taskDao.paginateByCache(Task.TASK_CACHE_NAME,"fair_task_"+fairId+"_"+pageNum+"_"+length,pageNum,length,sql,from,queryConstructor.getParams().toArray());
+        List<Task> tasks=taskPage.getList();
+        for (Task t:tasks) {
+            t.put("statusString",t.status());
+            t.put("click",t.getClick());
+            t.put("cvs",t.getCvs());
+            t.put("dateString",t.getDateString());
+        }
+        return taskPage;
     }
 
     /**
diff --git a/src/main/resources/a_little_config.txt b/src/main/resources/a_little_config.txt
index 08ae1df0de9d6a711276d26d283450c4cc4ab9b6..591775ff27c885fb464f667311457df9cd15287e 100644
--- a/src/main/resources/a_little_config.txt
+++ b/src/main/resources/a_little_config.txt
@@ -9,7 +9,7 @@ password =ad--Test
 devMode = true
 
 ##这个路径请定位到项目中的view文件夹所在的文件夹的路径(WEB-INF/view)
-codeBaseTemplatePath=/Users/tianpengtech/git/fair/src/main/webapp/WEB-INF/view
+codeBaseTemplatePath=E:/project/fair/src/main/webapp/WEB-INF/view
 
 ##设置输出的文件夹,这里放置在项目中的/WEB-INF/view/admin/
 pageOutPutBasePath=/Users/tianpengtech/git/fair/src/main/webapp/WEB-INF/view/admin
diff --git a/src/main/webapp/WEB-INF/view/web/fair/fair_detail.html b/src/main/webapp/WEB-INF/view/web/fair/fair_detail.html
index 345bec3be2716ad297f86123bb607cb69f9e4bf2..621b740a4862ead74bd1dc86331b5e2685918f44 100644
--- a/src/main/webapp/WEB-INF/view/web/fair/fair_detail.html
+++ b/src/main/webapp/WEB-INF/view/web/fair/fair_detail.html
@@ -1,11 +1,14 @@
 #@web_layout?()
 #define css()
+<link rel="stylesheet" type="text/css" href="#(contextPath)/assets/front/web/css/layer.css?#(getUUID())" />
 <link rel="stylesheet" type="text/css" href="#(contextPath)/assets/front/web/css/main.css?#(getUUID())" />
+<link rel="stylesheet" type="text/css" href="#(contextPath)/assets/front/web/css/laypage.css?#(getUUID())" />
 #end
 #define content()
 <div class="c-article">
     <div class="g-fair-base-info">
         <div class="u-title">个人信息</div>
+        <input type="hidden" id="fair_id" value="#(fair.id)">
         <div class="m-box-row">
             <div class="m-card">
                 #if(fair.personal_photo??)
@@ -85,49 +88,10 @@
     </div>
     <div class="g-fair-task-info">
         <div class="u-title">任务信息</div>
-        <ul class="m-list">
-        
-        	#for(x:[1,2,3])
-            <li class="m-cell">
-                <div class="m-content">
-                    <div class="u-content-value">2017-05-04</div>
-                    <div class="u-content-value">xxxxxxxxxx活动</div>
-                    <div class="u-content-value">点击量:xxxxx</div>
-                    <div class="u-content-value">转化量:xxxx</div>
-                    <div class="u-content-value">已完成</div>
-                    <div class="u-content-value ">
-                        <div class="u-content-btn" data-status="off" style="border-radius:3px;">评论(xxx)</div>
-                    </div>
-                </div>
-                <ul class="m-more">
-                    <li class="m-more-cell">
-                        <div class="u-more-value">
-                            <div class="u-more-head"></div>
-                            <div class="u-more-name">xxxxxxx</div>
-                        </div>
-                        <div class="u-more-value-mid">xxxxx2131d2ef13ef13ef1fewr2er213r13r4134r134r14exxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</div>
-                        <div class="u-more-value">2017-05-02</div>
-                    </li>
-                    <li class="m-more-cell">
-                        <div class="u-more-value">
-                            <div class="u-more-head"></div>
-                            <div class="u-more-name">xxxxxxx</div>
-                        </div>
-                        <div class="u-more-value-mid">xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</div>
-                        <div class="u-more-value">2017-05-02</div>
-                    </li>
-                    <li class="m-more-cell">
-                        <div class="u-more-value">
-                            <div class="u-more-head"></div>
-                            <div class="u-more-name">xxxxxxx</div>
-                        </div>
-                        <div class="u-more-value-mid">xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</div>
-                        <div class="u-more-value">2017-05-02</div>
-                    </li>
-                </ul>
-            </li>
-            #end
+        <ul class="m-list" id="data" >
+
         </ul>
+        <div class="m-choice-page" id="m_choice_page"></div>
     </div>
 </div>
 #end
diff --git a/src/main/webapp/assets/front/web/script/platform_fair_detail.js b/src/main/webapp/assets/front/web/script/platform_fair_detail.js
index fdeffb63a7f9db906bfc1cb08dd04d9a4e47f26a..ea7527cc95dd500fb0fffecbd53b606465fa11f3 100644
--- a/src/main/webapp/assets/front/web/script/platform_fair_detail.js
+++ b/src/main/webapp/assets/front/web/script/platform_fair_detail.js
@@ -1,13 +1,15 @@
 /**
  * Created by Delicate on 2017/5/31.
  */
-require(["jquery"],()=>{
+let laypage;
+require(["jquery", "common", "laypage"], (a, b, c) => {
+    laypage = c;
     init();
     monitor();
     service();
 })
 const init = ()=>{
-
+    load(1);
 }
 const monitor = ()=>{
     $(".g-fair-task-info .u-content-btn").on("click",function(){
@@ -16,7 +18,7 @@ const monitor = ()=>{
     		$(".g-fair-task-info .m-cell-active").removeClass("m-cell-active");
             $(this).parent().parent().parent().addClass("m-cell-active");
             $(".u-content-btn").each(function (i,item){
-            	console.log(item);
+            	// console.log(item);
             	$(item).attr("data-status","off");
             });
             $(this).attr("data-status","open");
@@ -28,4 +30,86 @@ const monitor = ()=>{
 }
 const service = ()=>{
 
+}
+
+const load = number => {
+    $.ajax({
+        type:"post",
+        url:"/platform/fair/detail_task",
+        datatype:"json",
+        data:{
+            pageNum: number,
+            pageSize: 4,
+            id: $("#fair_id").val()
+        },
+        success:function(data){
+            let _html = "";
+            if(data.taskPage.list.length>0){
+                for (var i=0;i<data.taskPage.list.length;i++){
+                    const item = data.taskPage.list[i];
+                    var h="";
+                    var count=0;
+                    if (item.evaluate_issuer!=null || item.evaluate_whom !=null){
+                        h+='<ul class="m-more">';
+                        if (item.evaluate_issuer!=null){
+                            count++;
+                            h+='<li class="m-more-cell">'+
+                            '<div class="u-more-value">'+
+                            '<div class="u-more-head"></div>'+
+                            '<div class="u-more-name">'+item.cmp+'</div>'+
+                            '</div>'+
+                            '<div class="u-more-value-mid">'+item.evaluate_issuer+'</div>'+
+                            '<div class="u-more-value">'+item.issuer_date+'</div>'+
+                            '</li>';
+                        }
+                        if (item.evaluate_whom!=null){
+                            count++;
+                            h+='<li class="m-more-cell">'+
+                            '<div class="u-more-value">'+
+                            '<div class="u-more-head"></div>'+
+                            '<div class="u-more-name">'+item.whn+'</div>'+
+                            '</div>'+
+                            '<div class="u-more-value-mid">'+item.evaluate_whom+'</div>'+
+                            '<div class="u-more-value">'+item.whom_date+'</div>'+
+                            '</li>';
+                        }
+                        h+='</ul>';
+                    }
+                    _html += '<li class="m-cell">'+
+                    '<div class="m-content">'+
+                    '<div class="u-content-value">'+item.dateString+'</div>'+
+                    '<div class="u-content-value">'+item.task_title+'</div>'+
+                    '<div class="u-content-value">点击量:'+item.click+'</div>'+
+                    '<div class="u-content-value">转化量:'+item.cvs+'</div>'+
+                    '<div class="u-content-value">'+item.statusString+'</div>'+
+                    '<div class="u-content-value ">'+
+                    '<div class="u-content-btn" data-status="off" style="border-radius:3px;">评论('+count+')</div>'+
+                    '</div>'+
+                    '</div>';
+                    _html+=h;
+                    _html+='</li>';
+                }
+                page(data.taskPage.totalPage,data.taskPage.pageNumber);
+                $("#m_choice_page").show();
+            }else{
+                _html="<tr><td colspan='6' style='text-align:center;font-weight:500;padding-top:27px;position:initial;'>当前没有检索到任何相关信息</td>"
+                $("#m_choice_page").hide();
+            }
+            $("#data").html(_html);
+            monitor();
+        }
+    })
+}
+
+const page = (total, index) => {
+    laypage({
+        cont: 'm_choice_page', //容器。值支持id名、原生dom对象,jquery对象。【如该容器为】:<div id="page1"></div>
+        pages: total||1, //通过后台拿到的总页数
+        curr: index || 1, //当前页
+        jump: function (obj, first) { //触发分页后的回调
+            if (!first) { //点击跳页触发函数自身,并传递当前页:obj.curr
+                load(obj.curr);
+            }
+        }
+    });
 }
\ No newline at end of file