diff --git a/src/main/java/com/tianpengtech/admin/fairwithdraw/FairWithdrawAdminServiceImpl.java b/src/main/java/com/tianpengtech/admin/fairwithdraw/FairWithdrawAdminServiceImpl.java
index 3f93a277b7d54acf1b047ed7b4383b2ec09defa9..74e21cbe289632286bd797b6cfa9b3c9f43a3481 100644
--- a/src/main/java/com/tianpengtech/admin/fairwithdraw/FairWithdrawAdminServiceImpl.java
+++ b/src/main/java/com/tianpengtech/admin/fairwithdraw/FairWithdrawAdminServiceImpl.java
@@ -66,8 +66,8 @@ public class FairWithdrawAdminServiceImpl extends AbstractAdmin implements IAdmi
 	public void changeStatus(Model<?> model, long id, int status, Kv params) throws ValidateException {
 		FairWithdraw temp = FairWithdraw.dao.findById(id);
 		
-		if(temp.getInt(FairWithdraw.STATUS)==FairWithdraw.STATUS_ERROR){
-			throw new ValidateException("当前状态已经是处理失败状态,请勿重复当前操作");
+		if(temp.getInt(FairWithdraw.STATUS)!=FairWithdraw.STATUS_APPROVING){
+			throw new ValidateException("当前记录已经被处理过了,请勿重复当前操作");
 		}
 		
 		String content = params.getStr(Opertion.CONTENT);
@@ -149,7 +149,6 @@ public class FairWithdrawAdminServiceImpl extends AbstractAdmin implements IAdmi
 //			fair.set(Fair.MONEY,currentMoney);
 //			fair.set(Fair.AVALIABLE_FEE,currentMoney);
 //			fair.update();
-			
 			Jpush.pushCustomContentToSomeOne(fair.getStr(Fair.MOIBILE), result, Jpush.PUSH_MSG);
 			Jpush.pushMessageInfoToSomeOne(fair.getStr(Fair.MOIBILE), result, Jpush.PUSH_MSG);
 		}
diff --git a/src/main/java/com/tianpengtech/admin/task/TaskAdminServiceImpl.java b/src/main/java/com/tianpengtech/admin/task/TaskAdminServiceImpl.java
index d842ad78cb754edb6b4aeb0e3566a858222566de..284cc3a08211e82798b7bfb798f95067804c883f 100644
--- a/src/main/java/com/tianpengtech/admin/task/TaskAdminServiceImpl.java
+++ b/src/main/java/com/tianpengtech/admin/task/TaskAdminServiceImpl.java
@@ -111,7 +111,7 @@ public class TaskAdminServiceImpl extends AbstractAdmin implements IAdminOpt{
 			PushKit.pushSystemMessageNow("管理员"+result);
 			OperationDao.ME.recordLog(id, Opertion.OPT_TASK_LOG,userId,result);
 			Jpush.pushCustomContentToAll("任务《"+temp.getStr(Task.TASK_TITLE)+"》发布啦,快来接任务吧!",Jpush.PUSH_TASK);
-			Jpush.pushMessageInfoToAll("任务《"+temp.getStr(Task.TASK_TITLE)+"》发布啦,快来接任务吧!",Jpush.PUSH_TASK);
+			Jpush.pushMessageInfoToAll("任务《"+temp.getStr(Task.TASK_TITLE)+"》发布啦,快来接任务吧!",Jpush.PUSH_TASK,id+"");
 			
 			if(SysConfigDao.ME.isSendTaskSMS()){
 				List<Fair> fairs = readAllFair();
diff --git a/src/main/java/com/tianpengtech/common/MyConfig.java b/src/main/java/com/tianpengtech/common/MyConfig.java
index b074f99eaa8cd3631cd4481db7be0cc4a40cd7d3..ad564ae019d7a3e7497e40c43bee64f4a69c452f 100644
--- a/src/main/java/com/tianpengtech/common/MyConfig.java
+++ b/src/main/java/com/tianpengtech/common/MyConfig.java
@@ -4,6 +4,7 @@ package com.tianpengtech.common;
 import com.alibaba.druid.filter.stat.StatFilter;
 import com.alibaba.druid.wall.WallFilter;
 import com.jfinal.config.*;
+import com.jfinal.config.Routes.Route;
 import com.jfinal.core.JFinal;
 import com.jfinal.ext.handler.ContextPathHandler;
 import com.jfinal.kit.PropKit;
@@ -64,10 +65,12 @@ import com.tianpengtech.front.web.tasktemplate.TaskTemplateController;
 import com.tianpengtech.front.website.H5AdController;
 import com.tianpengtech.front.website.WebSiteRoutes;
 
+import java.lang.reflect.Method;
 import java.util.Properties;
 
 public class MyConfig extends JFinalConfig {
 
+	private Routes routes;
     public Properties loadProp(String pro, String dev) {
         try {
             return loadPropertyFile(pro);
@@ -78,7 +81,6 @@ public class MyConfig extends JFinalConfig {
 
     @Override
     public void configConstant(Constants me) {
-
         PropKit.use("a_little_config.txt");
         me.setDevMode(PropKit.getBoolean("devMode", false));
 //        me.setBaseUploadPath(PropKit.get("user.upload.dir"));
@@ -200,10 +202,16 @@ public class MyConfig extends JFinalConfig {
         QuartzPlugin.addJob("TaskJob_first", "0 5 0 * * ?", TaskStartJob.class);//每天凌晨12:05检查当天需要被标记进行中的任务
         QuartzPlugin.addJob("TaskJob_second", "0 50 23 * * ?", TaskEndJob.class);//每天11:50检查当天需要结束的任务
         QuartzPlugin.addJob("SessionJob", "0 0/2 * * * ?", SessionJob.class);
+        
+        
+//        for (Route r : this.routes.getRouteItemList()) {
+//    		System.out.println(r.getControllerClass()+":"+r.getControllerKey());
+//		}
+        
     }
 
     public static void main(String[] args) {
-        JFinal.start("src/main/webapp", 8091, "/",5);
+        JFinal.start("src/main/webapp", 8091,"/",5);
     }
 
     @Override
diff --git a/src/main/java/com/tianpengtech/common/model/fairreport/FairReport.java b/src/main/java/com/tianpengtech/common/model/fairreport/FairReport.java
index a41e1c1c2d3aa983b31701bd8f6a859f25053e51..afc02c1d86f32d3d8fe34151ba4376a7e31cae93 100644
--- a/src/main/java/com/tianpengtech/common/model/fairreport/FairReport.java
+++ b/src/main/java/com/tianpengtech/common/model/fairreport/FairReport.java
@@ -1,12 +1,13 @@
 package com.tianpengtech.common.model.fairreport;
+
 import com.tianpengtech.common.model.AbstractBaseModel;
+
 /**
- *实体类名-举报信息表
- * fair_report
+ * 实体类名-举报信息表 fair_report
  *
  * @since Sat Aug 05 13:55:06 CST 2017
  */
-public class FairReport extends AbstractBaseModel< FairReport > {
+public class FairReport extends AbstractBaseModel<FairReport> {
 
 	/**
 	 *
@@ -14,15 +15,13 @@ public class FairReport extends AbstractBaseModel< FairReport > {
 	private static final long serialVersionUID = 1L;
 	public static final FairReport dao = new FairReport();
 
-
-		public static final String ID ="id"; //
-		public static final String CONTENT ="content"; //举报内容
-		public static final String CREATE_TIME ="create_time"; //
-		public static final String STATUS ="status"; //状态
-		public static final String USER_ID ="user_id"; //被举报人ID
-		public static final String FAIR_ID ="fair_id"; //举报人ID
-		public static final String CONTENT_ID ="content_id"; //数据字典表ID,如果该字段为空则填入content字段
-
+	public static final String ID = "id"; //
+	public static final String CONTENT = "content"; // 举报内容
+	public static final String CREATE_TIME = "create_time"; //
+	public static final String STATUS = "status"; // 状态
+	public static final String USER_ID = "user_id"; // 被举报人ID
+	public static final String FAIR_ID = "fair_id"; // 举报人ID
+	public static final String CONTENT_ID = "content_id"; // 数据字典表ID,如果该字段为空则填入content字段
 
 	@Override
 	public String tableName() {
diff --git a/src/main/java/com/tianpengtech/common/model/task/Task.java b/src/main/java/com/tianpengtech/common/model/task/Task.java
index 2522bc46424a8d193e2a19ae9fb85f43dcb14337..61e365627aa3bf95ebef760fb14c1eadef6bfa2e 100644
--- a/src/main/java/com/tianpengtech/common/model/task/Task.java
+++ b/src/main/java/com/tianpengtech/common/model/task/Task.java
@@ -59,11 +59,11 @@ public class Task extends AbstractBaseModel<Task> {
 	public static final int SUCCESS_YES=1;
 
 	
-	public static final int STATUS_APPROVING=1;
-	public static final int STATUS_SUCCESS=2;
-	public static final int STATUS_FAILURE=3;
-	public static final int STATUS_WAIT=4;
-	public static final int STATUS_START=5;
+	public static final int STATUS_APPROVING=1;//等待审核
+	public static final int STATUS_SUCCESS=2;//通过审核
+	public static final int STATUS_FAILURE=3;//拒绝通过审核
+	public static final int STATUS_WAIT=4;//未开始
+	public static final int STATUS_START=5;//进行中
 	public static final int STATUS_COMPLETED=6; //已完成
 
 	public static final int DELETE_STATUS_YES=1;
diff --git a/src/main/java/com/tianpengtech/common/model/task/TaskCVS.java b/src/main/java/com/tianpengtech/common/model/task/TaskCVS.java
index 47eab766eb9e9dd32ea4b58719b1d59278413bc0..9133817451daa4ca74ccd1a4399c9490d538f488 100644
--- a/src/main/java/com/tianpengtech/common/model/task/TaskCVS.java
+++ b/src/main/java/com/tianpengtech/common/model/task/TaskCVS.java
@@ -33,7 +33,8 @@ public class TaskCVS extends AbstractBaseModel<TaskCVS> {
 		public static final String PROVINCE ="province"; //省份
 		public static final String CITY ="city"; //市
 		public static final String type ="type"; //市
-
+		public static final String WEIXIN_AVATAR = "weixin_avatar"; // 微信头像
+		public static final String WEIXIN_NICKNAME = "weixin_nickname"; // 微信昵称
 
 	@Override
 	public String tableName() {
diff --git a/src/main/java/com/tianpengtech/common/model/task/TaskCount.java b/src/main/java/com/tianpengtech/common/model/task/TaskCount.java
index 6415c951618e629a6b4d1e67e91f5200ce457935..5dd45e8a6eb4d5a1d50a9cc15e52d924d40b9b8f 100644
--- a/src/main/java/com/tianpengtech/common/model/task/TaskCount.java
+++ b/src/main/java/com/tianpengtech/common/model/task/TaskCount.java
@@ -31,6 +31,8 @@ public class TaskCount extends AbstractBaseModel<TaskCount> {
 	public static final String PROVINCE = "province"; // 省份
 	public static final String CITY = "city"; // 市
 	public static final String TYPE = "type"; // 统计方式
+	public static final String WEIXIN_AVATAR = "weixin_avatar"; // 微信头像
+	public static final String WEIXIN_NICKNAME = "weixin_nickname"; // 微信昵称
 
 	public static final int TYPE_DEV = 1;
 	public static final int TYPE_PRO = 0;
diff --git a/src/main/java/com/tianpengtech/common/util/push/Jpush.java b/src/main/java/com/tianpengtech/common/util/push/Jpush.java
index 681558d7efad7c28d2b908d5bbb221cf478792ca..db2e27f14a28334d75b3baf9a67bcd5aaf8c8042 100644
--- a/src/main/java/com/tianpengtech/common/util/push/Jpush.java
+++ b/src/main/java/com/tianpengtech/common/util/push/Jpush.java
@@ -25,6 +25,10 @@ public class Jpush {
 	private static String masterSecret = "16fa00649bab368bca6754b3";
 	private static String appKey = "6a81d135389c221b23441e27";
 	
+//	private static String masterSecret = "61dbbaa4d280ec4924de0cb1";
+//	private static String appKey = "73f08e92f37b08fa4c9f05bf";
+	
+	
 	public final static String PUSH_TASK="task";
 	public final static String PUSH_MSG="msg";
 	
@@ -59,8 +63,8 @@ public class Jpush {
         }
     }
 	
-	public static void pushMessageInfoToAll(String ALERT,String type){
-		PushResult result = jPushMessageInfoToAll(ALERT,type);
+	public static void pushMessageInfoToAll(String ALERT,String type,String taskId){
+		PushResult result = jPushMessageInfoToAll(ALERT,type,taskId);
         if(result != null && result.isResultOK()){
             log.info("信息推送成功!");
         }else{
@@ -84,7 +88,7 @@ public class Jpush {
 	}
 	
 	
-	private static PushPayload customMessageInfoPushToAll(String title,String type){
+	private static PushPayload customMessageInfoPushToAll(String title,String type,String taskId){
 		Map<String,String> param = new HashMap<String,String>();
 		param.put("type", type);
 		return PushPayload.newBuilder()
@@ -93,11 +97,14 @@ public class Jpush {
                 .setNotification(Notification.newBuilder()
                         .addPlatformNotification(AndroidNotification.newBuilder()
                                 .addExtra("type",type)
+                                .addExtra("taskId",taskId)
                                 .setAlert(title)
                                 .build())
                         .addPlatformNotification(IosNotification.newBuilder()
                                 .addExtra("type",type)
+                                .addExtra("taskId",taskId)
                                 .setAlert(title)
+                                .setBadge(0)
                                 .build())
                         .build())
                 .setOptions(Options.newBuilder()
@@ -142,10 +149,6 @@ public class Jpush {
                         .setApnsProduction(PRO_ENV)//true-推送生产环境 false-推送开发环境(测试使用参数)
                         .setTimeToLive(LIVE_TIME)//消息在JPush服务器的失效时间(测试使用参数)
                         .build())
-                .setOptions(Options.newBuilder()
-                        .setApnsProduction(PRO_ENV)//true-推送生产环境 false-推送开发环境(测试使用参数)
-                        .setTimeToLive(LIVE_TIME)//消息在JPush服务器的失效时间(测试使用参数)
-                        .build())
                 .build();
 		 
 	}
@@ -208,10 +211,10 @@ public class Jpush {
         }    
     }
 	
-	private static PushResult jPushMessageInfoToAll(String title,String type){
+	private static PushResult jPushMessageInfoToAll(String title,String type,String taskId){
         ClientConfig clientConfig = ClientConfig.getInstance();
         JPushClient jpushClient = new JPushClient(masterSecret, appKey, null, clientConfig);
-        PushPayload payload = customMessageInfoPushToAll(title,type);
+        PushPayload payload = customMessageInfoPushToAll(title,type,taskId);
         try {
             return jpushClient.sendPush(payload);
         } catch (APIConnectionException e) {
@@ -230,8 +233,8 @@ public class Jpush {
 	public static void main(String[] args) {
 //		Jpush.pushCustomContentToAll("xxxxqqq!!",Jpush.PUSH_TASK);
 //		Jpush.pushCustomContentToSomeOne("13262535273","你的消息····来了123ddd!23223!!",Jpush.PUSH_MSG);
-//		Jpush.pushMessageInfoToSomeOne("13262535273","我是服务器通知信息 我来了!!!",Jpush.PUSH_MSG);
-		Jpush.pushMessageInfoToSomeOne("13262535273","我是服务器通知信息 我来了!!!",Jpush.PUSH_TASK);
-//		Jpush.pushMessageInfoToAll("您的快递到了,请到楼下取",Jpush.PUSH_TASK);
+//		Jpush.pushMessageInfoToSomeOne("13262535273","我是服务器通知信息MSG 我来了!!!",Jpush.PUSH_MSG);
+//		Jpush.pushMessageInfoToSomeOne("13262535273","我是服务器通知信息 我来了!!!",Jpush.PUSH_TASK);
+		Jpush.pushMessageInfoToAll("您的快递到了,请到楼下取",Jpush.PUSH_TASK,"3128");
 	}
 }
diff --git a/src/main/java/com/tianpengtech/front/im/ImController.java b/src/main/java/com/tianpengtech/front/im/ImController.java
index cffa94f52235810115acbd0bdb31b6335c2d1cc3..d64b9ad755c43219caa7db391f509dd280495a9d 100644
--- a/src/main/java/com/tianpengtech/front/im/ImController.java
+++ b/src/main/java/com/tianpengtech/front/im/ImController.java
@@ -3,15 +3,14 @@ package com.tianpengtech.front.im;
 import com.jfinal.core.Controller;
 import com.tianpengtech.common.im.kit.PushKit;
 
-public class ImController extends Controller{
+public class ImController extends Controller {
 
-	public void index(){
+	public void index() {
 		renderTemplate("index.html");
 	}
-	
-	
-	public void pushMsg(){
-		String msg= "你好美人!!";
+
+	public void pushMsg() {
+		String msg = "你好美人!!";
 		PushKit.pushSystemMessage(msg);
 		renderText(msg);
 	}
diff --git a/src/main/java/com/tianpengtech/front/mobile/common/constant/Constant.java b/src/main/java/com/tianpengtech/front/mobile/common/constant/Constant.java
index d3fbabe0eb0e550319975fff85e4a6d33d7dbc17..62eeaefade699d68b9b59dd9b0fc656f202388e2 100644
--- a/src/main/java/com/tianpengtech/front/mobile/common/constant/Constant.java
+++ b/src/main/java/com/tianpengtech/front/mobile/common/constant/Constant.java
@@ -7,7 +7,7 @@ public class Constant {
 
     public static final String DEFAULT_PASSWORD = "zxc@#@$6";
 
-    public static final String REGEX_MOBILE = "^((17[0-9])|(14[0-9])|(13[0-9])|(15[^4,\\D])|(18[0-9]))\\d{8}$";
+    public static final String REGEX_MOBILE = "^(|(16[0-9])|(17[0-9])|(14[0-9])|(13[0-9])|(15[^4,\\D])|(18[0-9]))\\d{8}$";
     public static final String REGEX_INTERGER = "^\\d+$";
     public static final String REGEX_MONEY = "(^[1-9]([0-9]+)?(\\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\\.[0-9]([0-9])?$)";
 }
diff --git a/src/main/java/com/tianpengtech/front/mobile/common/util/UserUtil.java b/src/main/java/com/tianpengtech/front/mobile/common/util/UserUtil.java
index f1da49c43aee576c77823a1b5cd87539aff68ebd..61912f185963e2b10641dd93363941b8e751ce37 100644
--- a/src/main/java/com/tianpengtech/front/mobile/common/util/UserUtil.java
+++ b/src/main/java/com/tianpengtech/front/mobile/common/util/UserUtil.java
@@ -18,6 +18,7 @@ public class UserUtil {
      * @return
      */
     public static User getCurrentUser(String token, String source) {
+//    	token="4304585384ecef7061eb176ffed77f9c";
         User user = CacheKit.get(CACHE_NAME,source.toUpperCase()+"_USER_CLIENT_" + token);
         if (user != null) {
             setCurrentUser( user, token, source);
diff --git a/src/main/java/com/tianpengtech/front/mobile/task/MobileTaskService.java b/src/main/java/com/tianpengtech/front/mobile/task/MobileTaskService.java
index 068bf533d0e40eb25f78ad7973ff7695f329a3b7..6fd82bed65715db056261b7c0386594fa6cbb470 100644
--- a/src/main/java/com/tianpengtech/front/mobile/task/MobileTaskService.java
+++ b/src/main/java/com/tianpengtech/front/mobile/task/MobileTaskService.java
@@ -12,6 +12,7 @@ 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.task.Task;
+import com.tianpengtech.common.model.task.TaskSource;
 import com.tianpengtech.common.model.task.TaskWh;
 import com.tianpengtech.common.model.taskscreenshot.TaskScreenShot;
 import com.tianpengtech.common.util.DateUtils;
@@ -51,6 +52,9 @@ public class MobileTaskService {
 	 * @return
 	 */
 	public R taskIndex(int pageNum, int length, long uid) {
+		
+		boolean isOpenFairLevel=SysConfigDao.ME.isOpenFairLevel();
+		R r = R.ok();
 		String s = String.format("select task.task_type,task.total_fee, task.create_user, %s,%s,%s,%s,%s,%s,%s,%s ", Task.STATUS,
 				Task.ID, Task.TASK_TITLE, Task.TASK_START_TIME, Task.TASK_END_TIME, Task.TASK_DESCRIPTION,
 				Task.TASK_PRICE, Task.WH_NUMBER);
@@ -92,17 +96,34 @@ public class MobileTaskService {
 			t.put("hasApprover", hasApprover);
 			//检查当前登录用户是否有资格接任务
 			int priceLevel = fair.getInt(Fair.PRICE);
-			boolean canApply = (priceLevel>=t.getDouble(Task.TASK_PRICE));
-			t.put("canApply", canApply);
+			boolean canApply = (priceLevel>=t.getDouble(Task.TOTAL_FEE));
+			
+			if(isOpenFairLevel){
+				t.put("canApply", canApply);
+			}else{
+				t.put("canApply", true);
+			}
 			t.set("task_price",TaskCalculateService.ME.calculateTaskTotalFee(t));
 			t.set(Task.TASK_TITLE,XxxUtil.handleContent(t.getStr(Task.TASK_TITLE), 14));
 			t.set(Task.TASK_DESCRIPTION,XxxUtil.handleContent(t.getStr(Task.TASK_DESCRIPTION),103));
+		
+			List<TaskSource> source = taskService.findSourceByTask(t.getInt(Task.ID));
+			for (TaskSource taskSource : source) {
+				String ts = taskSource.getStr(TaskSource.SOURCE);
+				ts = ts+"?imageMogr2/gravity/Center/100x100";
+				taskSource.set(TaskSource.SOURCE, ts);
+			}
+			t.put("source", source);
 		});
-		R r = R.ok();
+		
 		r.p("pageNum", pageNum);
 		r.p("task", page.getList());
 		r.p("totalRow", page.getTotalRow());
-		r.p("taskTodayNum",taskTodayNum(uid));
+		if(isSpacial(fair.getStr(Fair.MOIBILE))){
+			r.p("taskTodayNum",1000);
+		}else{
+			r.p("taskTodayNum",taskTodayNum(uid));
+		}
 		return r;
 	}
 
@@ -210,6 +231,14 @@ public class MobileTaskService {
 			// t.put("hasApprover", hasApprover);
 			t.set(Task.TASK_TITLE,XxxUtil.handleContent(t.getStr(Task.TASK_TITLE), 14));
 			t.set(Task.TASK_DESCRIPTION,XxxUtil.handleContent(t.getStr(Task.TASK_DESCRIPTION),103));
+			
+			List<TaskSource> source = taskService.findSourceByTask(t.getInt(Task.ID));
+			for (TaskSource taskSource : source) {
+				String ts = taskSource.getStr(TaskSource.SOURCE);
+				ts = ts+"?imageMogr2/gravity/Center/100x100";
+				taskSource.set(TaskSource.SOURCE, ts);
+			}
+			t.put("source", source);
 		}
 		R r = R.ok();
 		r.p("count", page.getTotalRow());
@@ -228,6 +257,7 @@ public class MobileTaskService {
 		Task task = taskDao.findFirst(sql.toString(), id, uid);
 		String url ="http://www.ele-young.com/platform/mission?id=" + id;
 //		String url ="http://192.168.1.101:8091/platform/mission?id=" + id;
+		
 		if (task == null) {
 			sql = new StringBuffer(
 					"select task.total_fee,task.extension_type,task.wh_number,task.task_type, wh.reason , wh.code,task.task_url, task.create_user,task.task_title,task.task_description,task.task_price,task.status as status,task.id as id,task.task_start_time,task.task_end_time,wh.click_num,wh.cvs_num,wh.id as whid,task.task_url from "
@@ -239,6 +269,7 @@ public class MobileTaskService {
 			task.put("click_num",0);
 			task.put("cvs_num",0);
 			task.put("actual_price",0);
+			
 		} else {
 			task.put("sumClick", task.getClick());
 			task.put("sumCvs", task.getCvs());
@@ -252,6 +283,16 @@ public class MobileTaskService {
 				url =url+ "&ucode=" + task.getStr("code");
 			}
 		}
+		boolean isOpenFairLevel=SysConfigDao.ME.isOpenFairLevel();
+		Fair fair = Fair.dao.findById(uid);
+		int priceLevel = fair.getInt(Fair.PRICE);
+		boolean canApply = (priceLevel>=task.getDouble(Task.TOTAL_FEE));
+		if(isOpenFairLevel){
+			task.put("canApply", canApply);
+		}else{
+			task.put("canApply", true);
+		}
+		
 		task.set("task_price",TaskCalculateService.ME.calculateTaskTotalFee(task));
 		task.put("dateString", task.getDateString());
 		Authenticate auth = AuthenticateSerivce.ME.findAuthenticateByUserId(task.getInt(Task.CREATE_USER));
@@ -263,9 +304,16 @@ public class MobileTaskService {
 		task.put("companyId", companyId);
 		task.put("companyLogo", logo);
 //		
+		List<TaskSource> source = taskService.findSourceByTask(task.getInt(Task.ID));
 		
+		for (TaskSource taskSource : source) {
+			String s = taskSource.getStr(TaskSource.SOURCE);
+			s = s+"?imageMogr2/gravity/Center/100x100";
+			taskSource.set(TaskSource.SOURCE, s);
+		}
 		
 		task.put("task_url", url);
+		task.put("task_count_url", "http://ele-young.com/h5/appTaskStatistical/analysis.html?taskId="+task.getInt(Task.ID)+"&whId="+fair.getInt(Fair.ID));
 		R r = R.ok();
 		r.p("task", task);
 		task.put("acceptNum", 0);
@@ -301,18 +349,19 @@ public class MobileTaskService {
 			f.put("fairUrl",fairUrl);
 		}
 		r.p("fairs", fairses);
+		r.p("source", source);
 		int num = (fairses.isEmpty()) ? 0 : fairses.size();
 		task.put("acceptNum", num);
 		// }
 		boolean result = TaskService.isExistFairTask(uid + "", id + "");
 		task.put("isJoin", result);
-		Fair fair = Fair.dao.findById(uid);
 		boolean hasApprover = (fair != null && (fair.getInt(Fair.STATUS) == Fair.STATUS_SUCCESS)) ? true : false;
 		task.put("hasApprover", hasApprover);
 		task.put("wh_status", Task.STATUS_COMPLETED);
 		String photo = ((fair.getStr(Fair.PHOTO).equals("/upload/avatar/x.jpg")) ? defaultAvatar
 				: fair.getStr(Fair.PHOTO));
 		task.put("myAvatar",photo);
+		task.put("wh_id",uid);
 		return r;
 	}
 
@@ -360,7 +409,10 @@ public class MobileTaskService {
 		Dictionary dictionary = DictionaryDao.ME.readDirecotryByCode(Dictionary.SYS_APPLY_NUM);
 		int applyNum = Integer.parseInt(dictionary.getStr(Dictionary.NAME));
 		List<TaskWh> wh_tasks = queryFairWhTasksToday(uid);
-		if(wh_tasks.size()>=applyNum){
+		
+		//添加特殊帐号,让其无限接受任务
+		
+		if(wh_tasks.size()>=applyNum && (!isSpacial(fair.getStr(Fair.MOIBILE)))){
 			r = R.fail("你每天只能接受"+applyNum+"个任务");
 			return r;
 		}
@@ -387,6 +439,11 @@ public class MobileTaskService {
 		}
 		return r;
 	}
+	
+	private boolean isSpacial(String mobile){
+		String special="18268114484,18721608514,15720605907,13819492790,13262535273";
+		return special.contains(mobile);
+	}
 
 	public R isExistFairTask(String taskId, long uid) {
 		R r;
diff --git a/src/main/java/com/tianpengtech/front/web/count/TaskCountController.java b/src/main/java/com/tianpengtech/front/web/count/TaskCountController.java
index 78fd07030a0785fef88e6dd1b4d6cb8476c58cfa..8e0a22df006fc13be1c5ce55504825bed8851887 100644
--- a/src/main/java/com/tianpengtech/front/web/count/TaskCountController.java
+++ b/src/main/java/com/tianpengtech/front/web/count/TaskCountController.java
@@ -172,6 +172,7 @@ public class TaskCountController extends Controller{
 			wxUser = tcService.getUserInfoFromWeixin(code,ip);
 			setSessionAttr("wxuser", wxUser);
 		}
+		System.out.println("getUserInfoFromWeixin:-------->"+wxUser);
 		renderJson(JsonUtil.printObject(wxUser));
 	}
 
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 76f2cfffcee3e08c21e4567a65bf8044b5fef449..4fdce81a3d8f35ff0abbd25b25544c7dc6947e19 100644
--- a/src/main/java/com/tianpengtech/front/web/task/TaskService.java
+++ b/src/main/java/com/tianpengtech/front/web/task/TaskService.java
@@ -204,7 +204,7 @@ public class TaskService {
      * @param ua
      * @param ip
      */
-    public void saveTaskClick(String ref, String ua ,String ip,String code,String token){
+    public void saveTaskClick(String ref, String ua ,String ip,String code,String token,String avatarUrl,String nickName){
         synchronized (code) {
             TaskWh taskWh = getByCode(code);
 //            boolean devModel = PropKit.getBoolean("devMode");
@@ -238,18 +238,19 @@ public class TaskService {
                     if (i != null) {//假如当前记录再有效期内,则不记录当前数据
                     	return;
                     }
-                    updateRealClickNum(ref, ua, ip, code, taskWh,token);
+                    updateRealClickNum(ref, ua, ip, code, taskWh,token,avatarUrl,nickName);
                 }else{
-                	updateRealClickNum(ref, ua, ip, code, taskWh,token);
-                	updateDevClickNum(ref, ua, ip, code, taskWh,TaskCount.TYPE_DEV);
+                	updateRealClickNum(ref, ua, ip, code, taskWh,token,avatarUrl,nickName);
+                	updateDevClickNum(ref, ua, ip, code, taskWh,TaskCount.TYPE_DEV,avatarUrl,nickName);
                 }
             }
             
         }
     }
 
-	private void updateRealClickNum(String ref, String ua, String ip, String code, TaskWh taskWh,String token) {
-		updateDevClickNum(ref, ua, ip, code, taskWh,TaskCount.TYPE_PRO);
+	private void updateRealClickNum(String ref, String ua, String ip, String code,
+			TaskWh taskWh,String token,String avatarUrl,String nickName) {
+		updateDevClickNum(ref, ua, ip, code, taskWh,TaskCount.TYPE_PRO,avatarUrl,nickName);
 		//缓存内写入数据防止此IP在限制时间内再次点击
 		CacheKit.put(TASK_CACHE_CLICK_NAME,token, 1);
 		//点击次数加一
@@ -258,7 +259,7 @@ public class TaskService {
 		taskWh.update();
 	}
 
-	private void updateDevClickNum(String ref, String ua, String ip, String code, TaskWh taskWh,int type) {
+	private void updateDevClickNum(String ref, String ua, String ip, String code, TaskWh taskWh,int type,String avatarUrl,String nickName) {
 		UserAgentInfo userAgentInfo = UAUtil.get(ua);
 		IpInfo info = IpUtil.getIpInfo(ip);
 		TaskCount taskCount = new TaskCount();
@@ -269,6 +270,8 @@ public class TaskService {
 		taskCount.set(TaskCount.TASK_CODE, code);
 		taskCount.set(TaskCount.USER_AGENT, ua);
 		taskCount.set(TaskCount.TYPE,type);
+		taskCount.set(TaskCount.WEIXIN_AVATAR, avatarUrl);
+		taskCount.set(TaskCount.WEIXIN_NICKNAME, nickName);
 		if (userAgentInfo != null) {
 		    taskCount.set(TaskCount.OS_NAME, userAgentInfo.getOsName());
 		    taskCount.set(TaskCount.UA_NAME, userAgentInfo.getUaName());
@@ -291,7 +294,7 @@ public class TaskService {
      * @param ua
      * @param ip
      */
-    public void saveTaskCvs(String ref, String ua ,String ip,String code,String token){
+    public void saveTaskCvs(String ref, String ua ,String ip,String code,String token,String avartar,String nickName){
         synchronized (code) {
             TaskWh taskWh = getByCode(code);
 //            boolean devModel = PropKit.getBoolean("devMode");
@@ -322,17 +325,18 @@ public class TaskService {
                     if (i != null) {
                         return;
                     }
-                    updateRealCVS(ref, ua, ip, code, taskWh,TaskCount.TYPE_PRO,token);
+                    updateRealCVS(ref, ua, ip, code, taskWh,TaskCount.TYPE_PRO,token,avartar,nickName);
                 }else{
-                	updateRealCVS(ref, ua, ip, code, taskWh,TaskCount.TYPE_PRO,token);
-                	updateDevCVS(ref, ua, ip, code, taskWh,TaskCount.TYPE_DEV);
+                	updateRealCVS(ref, ua, ip, code, taskWh,TaskCount.TYPE_PRO,token,avartar,nickName);
+                	updateDevCVS(ref, ua, ip, code, taskWh,TaskCount.TYPE_DEV,avartar,nickName);
                 }
             }
         }
     }
 
-	private void updateRealCVS(String ref, String ua, String ip, String code, TaskWh taskWh,int type,String token) {
-		updateDevCVS(ref, ua, ip, code, taskWh, type);
+	private void updateRealCVS(String ref, String ua, String ip, String code, TaskWh taskWh
+			,int type,String token,String avatarUrl,String nickName) {
+		updateDevCVS(ref, ua, ip, code, taskWh, type,avatarUrl,nickName);
 		//缓存内写入数据防止此IP在限制时间内再次点击
 		CacheKit.put(TASK_CACHE_CLICK_NAME, token, 1);
 		//点击次数加一
@@ -341,7 +345,7 @@ public class TaskService {
 		taskWh.update();
 	}
 
-	private void updateDevCVS(String ref, String ua, String ip, String code, TaskWh taskWh, int type) {
+	private void updateDevCVS(String ref, String ua, String ip, String code, TaskWh taskWh, int type,String avatarUrl,String nickName) {
 		UserAgentInfo userAgentInfo = UAUtil.get(ua);
 		IpInfo info = IpUtil.getIpInfo(ip);
 		TaskCVS taskCvs = new TaskCVS();
@@ -352,6 +356,8 @@ public class TaskService {
 		taskCvs.set(TaskCount.TASK_CODE, code);
 		taskCvs.set(TaskCount.USER_AGENT, ua);
 		taskCvs.set(TaskCount.TYPE, type);
+		taskCvs.set(TaskCount.WEIXIN_AVATAR, avatarUrl);
+		taskCvs.set(TaskCount.WEIXIN_NICKNAME, nickName);
 		if (userAgentInfo != null) {
 		    taskCvs.set(TaskCount.OS_NAME, userAgentInfo.getOsName());
 		    taskCvs.set(TaskCount.UA_NAME, userAgentInfo.getUaName());
diff --git a/src/main/java/com/tianpengtech/front/web/task/TaskWebController.java b/src/main/java/com/tianpengtech/front/web/task/TaskWebController.java
index c247d31a79605ba575fa715574059804b4b7cf33..321022c39f7eb96bcae751857f754f79258069c2 100644
--- a/src/main/java/com/tianpengtech/front/web/task/TaskWebController.java
+++ b/src/main/java/com/tianpengtech/front/web/task/TaskWebController.java
@@ -213,6 +213,15 @@ public class TaskWebController extends BaseController {
 		String ref = getHeader("Referer");
 		String ip = IpKit.getRealIp(getRequest());
 		String code = getPara("code");
+		Map<String,Object> wxUser = getSessionAttr("wxuser");
+		
+		String avatar="";
+		String nickName="";
+		System.out.println("taskCount:-------->"+wxUser);
+		if(wxUser!=null){
+			avatar = (String) wxUser.get("avatarUrl");
+			nickName = (String) wxUser.get("nickName");
+		}
 		
 		//为客户端生成TOKEN值,这样方便统计信息
 		String token = getCookie("token");
@@ -220,7 +229,7 @@ public class TaskWebController extends BaseController {
 			token = UUID.randomUUID().toString();
 			setCookie("token",token,COOKIE_TIME_OUT);
 		}
-		service.saveTaskClick(ref, ua, ip, code,token);
+		service.saveTaskClick(ref, ua, ip, code,token,avatar,nickName);
 		renderJson(JsonUtil.printSuccess("记录成功"));
 	}
 
@@ -235,11 +244,19 @@ public class TaskWebController extends BaseController {
 		String ip = IpKit.getRealIp(getRequest());
 		String code = getPara("code");
 		String token = getCookie("cvs_token");
+		Map<String,Object> wxUser = getSessionAttr("wxuser");
+		String avatar="";
+		String nickName="";
+		if(wxUser!=null){
+			avatar = (String) wxUser.get("avatarUrl");
+			nickName = (String) wxUser.get("nickName");
+		}
+		
 		if(StringUtils.isEmpty(token)){
 			token = UUID.randomUUID().toString();
 			setCookie("cvs_token",token,COOKIE_TIME_OUT);
 		}
-		service.saveTaskCvs(ref, ua, ip, code,token);
+		service.saveTaskCvs(ref, ua, ip, code,token,avatar,nickName);
 		renderJson(JsonUtil.printSuccess("记录成功"));
 	}
 
diff --git a/src/main/resources/qiniu.properties b/src/main/resources/qiniu.properties
index e84feeed6d014120ccd31cf403be038502896137..d55de288fdf7616805a8ecdda846227114807e27 100644
--- a/src/main/resources/qiniu.properties
+++ b/src/main/resources/qiniu.properties
@@ -2,8 +2,8 @@
 qiniu.accesskey = PjlZQxB-Fgig0eOX_lifvqRHHxN0TB7crVA-UOFg
 qiniu.secretkey = 92vtRIpmXznDkU67tbuo3Dzp-Cd-HrTrjanmEfuc
 qiniu.bucket = bosu-web
-qiniu.domain = http://osyy0ckv9.bkt.clouddn.com
-
+#qiniu.domain = http://osyy0ckv9.bkt.clouddn.com
+qiniu.domain = http://pic.ele-young.com
 #����
 #qiniu.accesskey = -JDM4qj1rwRHp4xQ3A3ThRFygi8u7fMMD6t_oPVj
 #qiniu.secretkey = qkE3ci-jgw3hN5GQFjDwOBHxYaLxSRqiPHIzlBxs
diff --git a/src/main/webapp/2dI3Wtkkw9.txt b/src/main/webapp/2dI3Wtkkw9.txt
new file mode 100644
index 0000000000000000000000000000000000000000..2c329ec87230078b5594089b9b4c4ee69bb2abe2
--- /dev/null
+++ b/src/main/webapp/2dI3Wtkkw9.txt
@@ -0,0 +1 @@
+fca7037a6b2302c28c33d01b86efd6e1
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/view/admin/fairwithdraw/fairwithdraw-reason.html b/src/main/webapp/WEB-INF/view/admin/fairwithdraw/fairwithdraw-reason.html
index 59953a0ee53f53d0c82a0f8518cbcf5b546950a2..26bc75ea7a9d14f1267b73e16c530364c0902917 100644
--- a/src/main/webapp/WEB-INF/view/admin/fairwithdraw/fairwithdraw-reason.html
+++ b/src/main/webapp/WEB-INF/view/admin/fairwithdraw/fairwithdraw-reason.html
@@ -31,9 +31,7 @@
    		<div class="row cl">
 	        <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>拒绝理由</label>
 	        <div class="formControls col-xs-8 col-sm-9">
-	        	<textarea name="content" class="textarea" rows="5" maxlength="40" placeholder="请输入简短的拒绝理由,最多40个字符...,处理失败,提现的金额会退回申请人账户余额。">
-					#(content)
-				</textarea>
+	        	<textarea name="content" class="textarea" rows="5" maxlength="40" placeholder="请输入简短的拒绝理由,最多40个字符...,处理失败,提现的金额会退回申请人账户余额。">#(content)</textarea>
 	        </div>
 	    </div>
 	    <div class="row cl">
diff --git a/src/main/webapp/task_template/common/__task_base_template.html b/src/main/webapp/task_template/common/__task_base_template.html
index e3a8f6b34c546f19743745df326718c6a4c85dd5..cc1b1a5d6607e1b6117a35530922feb25397fa50 100644
--- a/src/main/webapp/task_template/common/__task_base_template.html
+++ b/src/main/webapp/task_template/common/__task_base_template.html
@@ -140,10 +140,17 @@
 
 <script type="text/javascript" src="#(contextPath)/task_template/common/js/jquery.min.js" ></script>
 <script type="text/javascript" src="http://pv.sohu.com/cityjson"></script>
-<script type="text/javascript" src="#(contextPath)/assets/front/web/script/task-count.js"></script>
+
 <script src="#(contextPath)/assets/front/web/script/layer.js"></script>
+
+<script type="text/javascript" src="#(contextPath)/task_template/common/js/common.js" ></script>
+<script type="text/javascript" src="#(contextPath)/task_template/common/js/index.js"></script>
+<script type="text/javascript" src="#(contextPath)/assets/front/web/script/task-count.js"></script>
 <script type="text/javascript">
-    taskCount("#(ucode??'')");
+    
+    
+    setTimeout(function(){ taskCount("#(ucode??'')");},1000);
+    
     $("#ip").val(returnCitySN.cip);
     $("#commentBtn").click(function(){
         layer.open({
@@ -160,8 +167,6 @@
 
     });
 </script>
-<script type="text/javascript" src="#(contextPath)/task_template/common/js/common.js" ></script>
-<script type="text/javascript" src="#(contextPath)/task_template/common/js/index.js"></script>
 #@taskJs()
 </body>
 </html>