diff --git a/src/main/java/com/tianpengtech/admin/AdminRoutes.java b/src/main/java/com/tianpengtech/admin/AdminRoutes.java
index cb222e33b0fd1d5b1366b1768ffa10d7cb77ca3d..0bbc7d99409782ba9d4fdb8514f9237b109f6079 100644
--- a/src/main/java/com/tianpengtech/admin/AdminRoutes.java
+++ b/src/main/java/com/tianpengtech/admin/AdminRoutes.java
@@ -6,6 +6,9 @@ import com.tianpengtech.admin.authenticate.AuthenticateAdminController;
 import com.tianpengtech.admin.dictionary.DictionaryAdminController;
 import com.tianpengtech.admin.fair.FairAdminController;
 import com.tianpengtech.admin.fairadvertisement.FairAdvertisementAdminController;
+import com.tianpengtech.admin.fairauth.FairAuthAdminController;
+import com.tianpengtech.admin.fairbankno.FairBankNoAdminController;
+import com.tianpengtech.admin.fairwithdraw.FairWithdrawAdminController;
 import com.tianpengtech.admin.feedback.FeedBackAdminController;
 import com.tianpengtech.admin.opertion.OpertionAdminController;
 import com.tianpengtech.admin.permission.PermissionAdminController;
@@ -32,6 +35,10 @@ public class AdminRoutes extends Routes{
         add("/admin/task",TaskAdminController.class, "/admin/task");
         add("/admin/fair",FairAdminController.class, "/admin/fair");
         add("/admin/feedback",FeedBackAdminController.class, "/admin/feedback");
+        add("/admin/fairauth",FairAuthAdminController.class, "/admin/fairauth");
+        add("/admin/fairbankno",FairBankNoAdminController.class, "/admin/fairbankno");
         add("/admin/fairadvertisement",FairAdvertisementAdminController.class, "/admin/fairadvertisement");
+        add("/admin/fairwithdraw",FairWithdrawAdminController.class, "/admin/fairwithdraw");
+
 	}
 }
diff --git a/src/main/java/com/tianpengtech/admin/fairauth/FairAuthAdminController.java b/src/main/java/com/tianpengtech/admin/fairauth/FairAuthAdminController.java
new file mode 100644
index 0000000000000000000000000000000000000000..88e283b4ae0278fd430ee68ae380f65becea59ae
--- /dev/null
+++ b/src/main/java/com/tianpengtech/admin/fairauth/FairAuthAdminController.java
@@ -0,0 +1,103 @@
+package com.tianpengtech.admin.fairauth;
+import com.jfinal.aop.Before;
+import com.jfinal.kit.Kv;
+import com.jfinal.plugin.activerecord.Model;
+import com.tianpengtech.admin.AbstractAdminController;
+import com.tianpengtech.admin.IAdminOpt;
+import com.tianpengtech.admin.InitInterceptor;
+import com.tianpengtech.admin.authenticate.AuthenticateAdminServiceImpl;
+import com.tianpengtech.common.exception.ValidateException;
+import com.tianpengtech.common.model.authenticate.Authenticate;
+import com.tianpengtech.common.model.fair.Fair;
+import com.tianpengtech.common.model.fairauth.FairAuth;
+import com.tianpengtech.common.model.fairwithdraw.FairWithdraw;
+import com.tianpengtech.common.model.opertion.Opertion;
+import com.tianpengtech.common.util.JsonUtil;
+
+/**
+* 路由配置地址:add("/admin/fairauth", FairAuthAdminController.class, "/admin/fairauth");
+* 数据库映射地址:arp.addMapping(FairAuth.dao.tableName(),FairAuth.class);
+*/
+@Before(InitInterceptor.class)
+public class FairAuthAdminController extends AbstractAdminController{
+	private IAdminOpt opt = new FairAuthAdminServiceImpl();
+	@Override
+	protected void config() {
+		this.clazz=FairAuth.class;
+		this.service=new FairAuthAdminServiceImpl();
+	}
+
+	@Override
+	public void beforeAdd() {
+
+	}
+
+	@Override
+	public void beforeAdd(Model< ? > model) throws ValidateException {
+
+	}
+
+	@Override
+	public void beforeQueryById(Model<?> model, int id) {
+
+	}
+
+	@Override
+	public void beforeUpdate(Model< ? > model) throws ValidateException {
+
+	}
+
+	@Override
+	public void beforeDelete(Model< ? > model) {
+
+	}
+
+	
+	/**
+	 * 审核通过
+	 */
+	public void  pass(){
+		int id = getParaToInt(FairAuth.ID,0);
+		try {
+			opt.changeStatus(getModel(FairAuth.class), id, FairAuth.STATUS_SUCCESS, Kv.create());
+			renderJson(JsonUtil.printSuccess("操作成功"));
+		} catch (ValidateException e) {
+			renderJson(JsonUtil.printError(e.getMessage()));
+		}
+	}
+	
+	/**
+	 * 拒绝理由填写页面
+	 */
+	public void  toRefuse(){
+		int id = getParaToInt(FairAuth.ID,0);
+		setAttr("fairAuth",this.service.queryById(getModel(FairAuth.class), id));
+		renderTemplate("fairauth-reason.html");
+	}
+	
+	/**
+	 * 审核不通过
+	 */
+	public void  unpass(){
+		FairAuth fairauth = getModel(FairAuth.class);
+		String content = getPara(Opertion.CONTENT);
+		Kv kv = Kv.by(Opertion.CONTENT, content);
+		try {
+			opt.changeStatus(fairauth, fairauth.getInt(FairAuth.ID), FairAuth.STATUS_FAILURE, kv);
+			renderJson(JsonUtil.printSuccess("操作成功"));
+		} catch (ValidateException e) {
+			renderJson(JsonUtil.printError(e.getMessage()));
+		}
+	}
+	
+	@Override
+	public void parsePageRecord(Object results) {
+		FairAuth r = (FairAuth)results;
+		Fair fair= Fair.dao.findById(r.getInt(FairAuth.WH_ID));
+		r.set(FairAuth.TYPE, r.type());
+		r.set(FairAuth.STATUS, r.status());
+		r.set(FairAuth.WH_ID, fair.getStr(Fair.NICK_NAME));
+	}
+}
+
+	
\ No newline at end of file
diff --git a/src/main/java/com/tianpengtech/admin/fairauth/FairAuthAdminServiceImpl.java b/src/main/java/com/tianpengtech/admin/fairauth/FairAuthAdminServiceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..416d560ebce6533e02123f21e36c2dba9e89dd7a
--- /dev/null
+++ b/src/main/java/com/tianpengtech/admin/fairauth/FairAuthAdminServiceImpl.java
@@ -0,0 +1,153 @@
+package com.tianpengtech.admin.fairauth;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.lang.StringUtils;
+
+import com.jfinal.kit.Kv;
+import com.jfinal.plugin.activerecord.Db;
+import com.jfinal.plugin.activerecord.Model;
+import com.tianpengtech.common.exception.ValidateException;
+import com.tianpengtech.common.im.kit.PushKit;
+import com.tianpengtech.admin.AbstractAdmin;
+import com.tianpengtech.admin.IAdminOpt;
+import com.tianpengtech.admin.opertion.OperationDao;
+import com.tianpengtech.common.model.account.Account;
+import com.tianpengtech.common.model.authenticate.Authenticate;
+import com.tianpengtech.common.model.fair.Fair;
+import com.tianpengtech.common.model.fairauth.FairAuth;
+import com.tianpengtech.common.model.fairmessage.FairMessage;
+import com.tianpengtech.common.model.opertion.Opertion;
+import com.tianpengtech.common.search.EqualCondition;
+import com.tianpengtech.common.search.LikeCondition;
+import com.tianpengtech.common.search.QueryConstructor;
+import com.tianpengtech.common.util.XxxUtil;
+import com.tianpengtech.common.validator.Validator;
+import com.tianpengtech.common.validator.rules.numberic.NumbericMustBeGreaterThan;
+import com.tianpengtech.common.validator.rules.string.StringLengthBetween;
+
+public class FairAuthAdminServiceImpl extends AbstractAdmin implements IAdminOpt{
+
+	@Override
+	public void beforeAdd(Model<?> model) throws ValidateException {
+
+	}
+
+	@Override
+	public void beforeQueryById(Model<?> model, int id) {
+
+	}
+
+	@Override
+	public void beforeUpdate(Model<?> model) throws ValidateException {
+
+	}
+
+	@Override
+	public void beforeDelete(Model<?> model) {
+
+	}
+
+	@Override
+	public void builderSQLExpected(Model< ? > model,
+			QueryConstructor queryConstruct, Map< String, Object > params) {
+
+		queryConstruct.and(new EqualCondition(FairAuth.DELETETAG, FairAuth.DEL_NO));
+		String nickName = model.getStr(FairAuth.NICK_NAME);
+		if(StringUtils.isNotBlank(nickName)){
+			queryConstruct.and(new LikeCondition(FairAuth.NICK_NAME, "%"+nickName+"%"));
+		}
+	}
+
+	@Override
+	public String tableName() {
+		return FairAuth.dao.tableName();
+	}
+
+	@Override
+	public void changeStatus(Model<?> model, long id, int status, Kv params) throws ValidateException {
+		
+		String content = params.getStr(Opertion.CONTENT);
+		Validator validator = new Validator();
+		if(status==FairAuth.STATUS_FAILURE){
+			validator.addRule( new StringLengthBetween(content,"拒绝理由必须是1-40个字符之间",1,40));
+		}
+		validator.addRule( new NumbericMustBeGreaterThan(id,0,"id值必须要大于0")).excute();
+		
+		
+		model.set(FairAuth.ID, id);
+		model.set(FairAuth.STATUS, status);
+		model.update();
+		
+		FairAuth temp = FairAuth.dao.findById(id);
+		Account account = XxxUtil.readSessionInfo();
+		long userId = account.getLong(Account.ID);
+		if(status==FairAuth.STATUS_SUCCESS ){
+			String result = "【通过】你的"+temp.type()+"的认证请求";
+			new FairMessage().set(FairMessage.CONTENT, "管理员"+result)
+			.set(FairMessage.WH_ID, temp.getInt(FairAuth.WH_ID)).save();
+			result = "【通过】"+temp.getStr(FairAuth.NICK_NAME)+"的"+temp.type()+"的认证请求";
+			OperationDao.ME.recordLog(id, Opertion.OPT_FAIR_AUTH_LOG,userId,result);
+		}
+		if(status==FairAuth.STATUS_FAILURE){
+			
+			String result = "【拒绝】你的"+temp.type()+"的认证请求,原因是:"+content;
+			new FairMessage().set(FairMessage.CONTENT, "管理员"+result)
+			.set(FairMessage.WH_ID, temp.getInt(FairAuth.WH_ID)).save();
+			
+			result = "【拒绝】"+temp.getStr(FairAuth.NICK_NAME)+"的"+temp.type()+"的认证请求,原因是:"+content;
+			
+			OperationDao.ME.recordLog(id, Opertion.OPT_FAIR_AUTH_LOG,userId,result);
+		}
+		updateFair(temp,status);
+	}
+
+	private void updateFair(FairAuth fairAuth,int status){
+		long fairId = fairAuth.getInt(FairAuth.WH_ID);
+		Fair fair = Fair.dao.findById(fairId);
+		List<FairAuth> result = queryFairAuthList(fairId,Fair.STATUS_SUCCESS);
+		String channelInfo = (StringUtils.isEmpty(fair.getStr(Fair.CHANNEL))?"":fair.getStr(Fair.CHANNEL));
+		
+		StringBuffer sb = new StringBuffer();
+		//更新网红认证平台信息
+		if(fairAuth.getInt(FairAuth.TYPE)==FairAuth.TYPE_WEIBO){
+			sb.append(Fair.SINA);
+		}
+		if(fairAuth.getInt(FairAuth.TYPE)==FairAuth.TYPE_QQ){
+			sb.append(Fair.QQ);
+		}
+		if(fairAuth.getInt(FairAuth.TYPE)==FairAuth.TYPE_WEIXIN){
+			sb.append(Fair.WEIXIN);
+		}
+		
+		if(!result.isEmpty()&& status==Fair.STATUS_SUCCESS){
+			fair.set(Fair.STATUS,Fair.STATUS_SUCCESS);
+			
+			if(StringUtils.isEmpty(channelInfo)){
+				channelInfo = sb.toString();
+			}else if(!channelInfo.contains(sb.toString())){
+				channelInfo = channelInfo+","+sb.toString();
+			}
+			fair.set(Fair.CHANNEL, channelInfo);
+		}else{
+			fair.set(Fair.STATUS,Fair.STATUS_FAILURE);
+			if(channelInfo.contains(sb.toString())){
+				
+				if(channelInfo.contains(",")){
+					channelInfo = channelInfo.replace(","+sb.toString(), "");
+				}else{
+					channelInfo = channelInfo.replace(sb.toString(), "");
+				}
+				
+				fair.set(Fair.CHANNEL, channelInfo);
+			}
+		}
+		fair.update();
+	}
+	
+	private List<FairAuth> queryFairAuthList(long fairId,int status){
+		String sql="select * from "+FairAuth.dao.tableName()+" where "
+	+FairAuth.WH_ID+"=? and "+FairAuth.DELETETAG+" =? and "+FairAuth.STATUS+"=?";
+		return FairAuth.dao.find(sql, fairId,FairAuth.DEL_NO,status);
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/com/tianpengtech/admin/fairbankno/FairBankNoAdminController.java b/src/main/java/com/tianpengtech/admin/fairbankno/FairBankNoAdminController.java
new file mode 100644
index 0000000000000000000000000000000000000000..618e1568a4df74333c9756efc6770a43081fedd7
--- /dev/null
+++ b/src/main/java/com/tianpengtech/admin/fairbankno/FairBankNoAdminController.java
@@ -0,0 +1,53 @@
+package com.tianpengtech.admin.fairbankno;
+import com.jfinal.aop.Before;
+import com.jfinal.plugin.activerecord.Model;
+import com.tianpengtech.admin.AbstractAdminController;
+import com.tianpengtech.admin.InitInterceptor;
+import com.tianpengtech.common.exception.ValidateException;
+import com.tianpengtech.common.model.fairbankno.FairBankNo;
+
+/**
+* 路由配置地址:add("/admin/fairbankno", FairBankNoAdminController.class, "/admin/fairbankno");
+* 数据库映射地址:arp.addMapping(FairBankNo.dao.tableName(),FairBankNo.class);
+*/
+@Before(InitInterceptor.class)
+public class FairBankNoAdminController extends AbstractAdminController{
+
+	@Override
+	protected void config() {
+		this.clazz=FairBankNo.class;
+		this.service=new FairBankNoAdminServiceImpl();
+	}
+
+	@Override
+	public void beforeAdd() {
+
+	}
+
+	@Override
+	public void beforeAdd(Model< ? > model) throws ValidateException {
+
+	}
+
+	@Override
+	public void beforeQueryById(Model<?> model, int id) {
+
+	}
+
+	@Override
+	public void beforeUpdate(Model< ? > model) throws ValidateException {
+
+	}
+
+	@Override
+	public void beforeDelete(Model< ? > model) {
+
+	}
+
+	@Override
+	public void parsePageRecord(Object results) {
+		
+	}
+}
+
+	
\ No newline at end of file
diff --git a/src/main/java/com/tianpengtech/admin/fairbankno/FairBankNoAdminServiceImpl.java b/src/main/java/com/tianpengtech/admin/fairbankno/FairBankNoAdminServiceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..1d143c527bcc5a7f419621e802154bad62dd714a
--- /dev/null
+++ b/src/main/java/com/tianpengtech/admin/fairbankno/FairBankNoAdminServiceImpl.java
@@ -0,0 +1,53 @@
+package com.tianpengtech.admin.fairbankno;
+import java.util.Map;
+
+import org.apache.commons.lang.StringUtils;
+
+import com.jfinal.plugin.activerecord.Model;
+import com.tianpengtech.common.exception.ValidateException;
+import com.tianpengtech.admin.AbstractAdmin;
+import com.tianpengtech.common.model.fairauth.FairAuth;
+import com.tianpengtech.common.model.fairbankno.FairBankNo;
+import com.tianpengtech.common.search.EqualCondition;
+import com.tianpengtech.common.search.LikeCondition;
+import com.tianpengtech.common.search.QueryConstructor;
+
+public class FairBankNoAdminServiceImpl extends AbstractAdmin{
+
+	@Override
+	public void beforeAdd(Model<?> model) throws ValidateException {
+
+	}
+
+	@Override
+	public void beforeQueryById(Model<?> model, int id) {
+
+	}
+
+	@Override
+	public void beforeUpdate(Model<?> model) throws ValidateException {
+
+	}
+
+	@Override
+	public void beforeDelete(Model<?> model) {
+
+	}
+
+	@Override
+	public void builderSQLExpected(Model< ? > model,
+			QueryConstructor queryConstruct, Map< String, Object > params) {
+
+		queryConstruct.and(new EqualCondition(FairBankNo.DELETETAG, FairBankNo.DEL_NO));
+		String realName = model.getStr(FairBankNo.REAL_NAME);
+		if(StringUtils.isNotBlank(realName)){
+			queryConstruct.and(new LikeCondition(FairBankNo.REAL_NAME, "%"+realName+"%"));
+		}
+	}
+
+	@Override
+	public String tableName() {
+		return FairBankNo.dao.tableName();
+	}
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/tianpengtech/admin/fairwithdraw/FairWithdrawAdminController.java b/src/main/java/com/tianpengtech/admin/fairwithdraw/FairWithdrawAdminController.java
new file mode 100644
index 0000000000000000000000000000000000000000..613afb11eb16242dafdeac6fe7360f9024c842c4
--- /dev/null
+++ b/src/main/java/com/tianpengtech/admin/fairwithdraw/FairWithdrawAdminController.java
@@ -0,0 +1,103 @@
+package com.tianpengtech.admin.fairwithdraw;
+import com.jfinal.aop.Before;
+import com.jfinal.kit.Kv;
+import com.jfinal.plugin.activerecord.Model;
+import com.tianpengtech.admin.AbstractAdminController;
+import com.tianpengtech.admin.IAdminOpt;
+import com.tianpengtech.admin.InitInterceptor;
+import com.tianpengtech.common.exception.ValidateException;
+import com.tianpengtech.common.model.fair.Fair;
+import com.tianpengtech.common.model.fairbankno.FairBankNo;
+import com.tianpengtech.common.model.fairwithdraw.FairWithdraw;
+import com.tianpengtech.common.model.opertion.Opertion;
+import com.tianpengtech.common.util.JsonUtil;
+
+/**
+* 路由配置地址:add("/admin/fairwithdraw", FairWithdrawAdminController.class, "/admin/fairwithdraw");
+* 数据库映射地址:arp.addMapping(FairWithdraw.dao.tableName(),FairWithdraw.class);
+*/
+@Before(InitInterceptor.class)
+public class FairWithdrawAdminController extends AbstractAdminController{
+	private IAdminOpt opt = (IAdminOpt) new FairWithdrawAdminServiceImpl();
+	@Override
+	protected void config() {
+		this.clazz=FairWithdraw.class;
+		this.service=new FairWithdrawAdminServiceImpl();
+	}
+
+	@Override
+	public void beforeAdd() {
+
+	}
+
+	@Override
+	public void beforeAdd(Model< ? > model) throws ValidateException {
+
+	}
+
+	@Override
+	public void beforeQueryById(Model<?> model, int id) {
+
+	}
+
+	@Override
+	public void beforeUpdate(Model< ? > model) throws ValidateException {
+
+	}
+
+	@Override
+	public void beforeDelete(Model< ? > model) {
+
+	}
+
+	@Override
+	public void parsePageRecord(Object results) {
+		FairWithdraw fairWithdraw = (FairWithdraw)results;
+		long bankId = fairWithdraw.getInt(FairWithdraw.BANK_ID);
+		FairBankNo bankNo = FairBankNo.dao.findById(bankId);
+		Fair fair= Fair.dao.findById(fairWithdraw.getInt(FairWithdraw.WH_ID));
+		fairWithdraw.set(FairWithdraw.BANK_ID, bankNo.getStr(FairBankNo.BANK));
+		fairWithdraw.set(FairWithdraw.WH_ID, fair.getStr(Fair.NICK_NAME));
+		fairWithdraw.set(FairWithdraw.STATUS, fairWithdraw.status());
+	}
+	
+	/**
+	 * 审核不通过
+	 */
+	public void  unpass(){
+		FairWithdraw fairWithdraw = getModel(FairWithdraw.class);
+		String content = getPara(Opertion.CONTENT);
+		Kv kv = Kv.by(Opertion.CONTENT, content);
+		try {
+			opt.changeStatus(fairWithdraw, fairWithdraw.getInt(FairWithdraw.ID), FairWithdraw.STATUS_ERROR, kv);
+			renderJson(JsonUtil.printSuccess("操作成功"));
+		} catch (ValidateException e) {
+			renderJson(JsonUtil.printError(e.getMessage()));
+		}
+	}
+	
+	
+	/**
+	 * 审核通过
+	 */
+	public void  pass(){
+		int id = getParaToInt(FairWithdraw.ID,0);
+		try {
+			opt.changeStatus(getModel(FairWithdraw.class), id, FairWithdraw.STATUS_SUCCESS, Kv.create());
+			renderJson(JsonUtil.printSuccess("操作成功"));
+		} catch (ValidateException e) {
+			renderJson(JsonUtil.printError(e.getMessage()));
+		}
+	}
+	
+	/**
+	 * 拒绝理由填写页面
+	 */
+	public void  toRefuse(){
+		int id = getParaToInt(FairWithdraw.ID,0);
+		setAttr("fairWithdraw",this.service.queryById(getModel(FairWithdraw.class), id));
+		renderTemplate("fairwithdraw-reason.html");
+	}
+}
+
+	
\ No newline at end of file
diff --git a/src/main/java/com/tianpengtech/admin/fairwithdraw/FairWithdrawAdminServiceImpl.java b/src/main/java/com/tianpengtech/admin/fairwithdraw/FairWithdrawAdminServiceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..f99c3b200f4ae38dea7d3ce41b6e52afd07f8b6a
--- /dev/null
+++ b/src/main/java/com/tianpengtech/admin/fairwithdraw/FairWithdrawAdminServiceImpl.java
@@ -0,0 +1,94 @@
+package com.tianpengtech.admin.fairwithdraw;
+import java.util.Map;
+
+import com.jfinal.kit.Kv;
+import com.jfinal.plugin.activerecord.Model;
+import com.tianpengtech.common.exception.ValidateException;
+import com.tianpengtech.admin.AbstractAdmin;
+import com.tianpengtech.admin.IAdminOpt;
+import com.tianpengtech.admin.opertion.OperationDao;
+import com.tianpengtech.common.model.account.Account;
+import com.tianpengtech.common.model.authenticate.Authenticate;
+import com.tianpengtech.common.model.fair.Fair;
+import com.tianpengtech.common.model.fairauth.FairAuth;
+import com.tianpengtech.common.model.fairmessage.FairMessage;
+import com.tianpengtech.common.model.fairwithdraw.FairWithdraw;
+import com.tianpengtech.common.model.opertion.Opertion;
+import com.tianpengtech.common.search.EqualCondition;
+import com.tianpengtech.common.search.QueryConstructor;
+import com.tianpengtech.common.util.XxxUtil;
+import com.tianpengtech.common.validator.Validator;
+import com.tianpengtech.common.validator.rules.numberic.NumbericMustBeGreaterThan;
+import com.tianpengtech.common.validator.rules.string.StringLengthBetween;
+
+public class FairWithdrawAdminServiceImpl extends AbstractAdmin implements IAdminOpt{
+
+	@Override
+	public void beforeAdd(Model<?> model) throws ValidateException {
+
+	}
+
+	@Override
+	public void beforeQueryById(Model<?> model, int id) {
+
+	}
+
+	@Override
+	public void beforeUpdate(Model<?> model) throws ValidateException {
+
+	}
+
+	@Override
+	public void beforeDelete(Model<?> model) {
+
+	}
+
+	@Override
+	public void builderSQLExpected(Model< ? > model,
+			QueryConstructor queryConstruct, Map< String, Object > params) {
+
+		int status = model.getInt(FairWithdraw.STATUS);
+		if(status>-1){
+			queryConstruct.and(new EqualCondition(FairWithdraw.STATUS, status));
+		}
+	}
+
+	@Override
+	public String tableName() {
+		return FairWithdraw.dao.tableName();
+	}
+
+	@Override
+	public void changeStatus(Model<?> model, long id, int status, Kv params) throws ValidateException {
+		
+		String content = params.getStr(Opertion.CONTENT);
+		Validator validator = new Validator();
+		if(status==FairWithdraw.STATUS_ERROR){
+			validator.addRule( new StringLengthBetween(content,"拒绝理由必须是1-40个字符之间",1,40));
+		}
+		validator.addRule( new NumbericMustBeGreaterThan(id,0,"id值必须要大于0")).excute();
+		
+		
+		model.set(FairWithdraw.ID, id);
+		model.set(FairWithdraw.STATUS, status);
+		model.update();
+		FairWithdraw temp = FairWithdraw.dao.findById(id);
+		Fair fair = Fair.dao.findById(temp.getInt(FairWithdraw.WH_ID));
+		Account account = XxxUtil.readSessionInfo();
+		long userId = account.getLong(Account.ID);
+		if(status==FairWithdraw.STATUS_SUCCESS ){
+			String result = "【通过】你的提现申请请求";
+			new FairMessage().set(FairMessage.CONTENT, "管理员"+result)
+			.set(FairMessage.WH_ID, temp.getInt(FairAuth.WH_ID)).save();
+			result = "【通过】"+fair.getStr(Fair.NICK_NAME)+"提现的认证请求";
+			OperationDao.ME.recordLog(id, Opertion.OPT_FAIR_GET_CASH,userId,result);
+		}
+		if(status==FairWithdraw.STATUS_ERROR){
+			String result = "【拒绝】你的提现申请请求,原因是:"+content;
+			new FairMessage().set(FairMessage.CONTENT, "管理员"+result)
+			.set(FairMessage.WH_ID, temp.getInt(FairAuth.WH_ID)).save();
+			result = "【拒绝】"+fair.getStr(Fair.NICK_NAME)+"提现申请请求,原因是:"+content;
+			OperationDao.ME.recordLog(id, Opertion.OPT_FAIR_GET_CASH,userId,result);
+		}
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/com/tianpengtech/common/GlobalConfigConstant.java b/src/main/java/com/tianpengtech/common/GlobalConfigConstant.java
index e7f3c74e946118923f649628831b26de0b8263f0..e6c5ad83b9c4a64f644e5f7122b1fc00c86fa28e 100644
--- a/src/main/java/com/tianpengtech/common/GlobalConfigConstant.java
+++ b/src/main/java/com/tianpengtech/common/GlobalConfigConstant.java
@@ -30,6 +30,8 @@ public class GlobalConfigConstant {
 
 
     public static final String CACHENAME_ADMIN="ADMIN";
+    public static final String DOMAIN="http://www.ele-young.com/assets/front/img/";
+//    public static final String DOMAIN="http://192.168.1.102:8090/assets/front/img/";
 
 
 }
diff --git a/src/main/java/com/tianpengtech/common/MyConfig.java b/src/main/java/com/tianpengtech/common/MyConfig.java
index 46ee979ddedba6ddc1ce05ba82b30d9193bd7d98..89eb712ef2328832bf5692c85ef6d9b5c27b7ad0 100644
--- a/src/main/java/com/tianpengtech/common/MyConfig.java
+++ b/src/main/java/com/tianpengtech/common/MyConfig.java
@@ -21,7 +21,7 @@ import com.tianpengtech.common.model.dictionary.Dictionary;
 import com.tianpengtech.common.model.fair.Fair;
 import com.tianpengtech.common.model.fairadvertisement.FairAdvertisement;
 import com.tianpengtech.common.model.fairauth.FairAuth;
-import com.tianpengtech.common.model.fairbankno.FairBankno;
+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;
@@ -148,7 +148,7 @@ public class MyConfig extends JFinalConfig {
         arp.addMapping(Session.dao.tableName(),Session.class);
         arp.addMapping(FeedBack.dao.tableName(),FeedBack.class);
         arp.addMapping(FairExt.dao.tableName(),FairExt.class);
-        arp.addMapping(FairBankno.dao.tableName(),FairBankno.class);
+        arp.addMapping(FairBankNo.dao.tableName(),FairBankNo.class);
         arp.addMapping(FairAuth.dao.tableName(),FairAuth.class);
         arp.addMapping(FairWithdraw.dao.tableName(),FairWithdraw.class);
         arp.addMapping(FairReport.dao.tableName(),FairReport.class);
@@ -174,7 +174,7 @@ public class MyConfig extends JFinalConfig {
     }
 
     public static void main(String[] args) {
-        JFinal.start("src/main/webapp", 8090, "/");
+        JFinal.start("src/main/webapp", 8090, "/",5);
     }
 
     @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 8d49ad8a9ee49576db44f585d377573263655c20..2d7e09a9344ff0c715372b775a8b40f876efa28c 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,".fair", "FairPhoto", "fair_photo", "网红照片表");
+        Generator.excute(engine,".fairwithdraw", "FairWithdraw", "fair_wh_withdraw", "网红提现表");
 //        Generator.excute(engine,".wh", "Fair", "fair_wh", "网红表");
 //        Generator.excute(engine,".feedback", "FeedBack", "fair_feedback", "反馈表");
 
diff --git a/src/main/java/com/tianpengtech/common/model/authenticate/Authenticate.java b/src/main/java/com/tianpengtech/common/model/authenticate/Authenticate.java
index a60ba9b9de48307bf096961a03d4c7528fc18d89..c4eb48f5ae1f30a2e59d0d6b881c349bec58086d 100644
--- a/src/main/java/com/tianpengtech/common/model/authenticate/Authenticate.java
+++ b/src/main/java/com/tianpengtech/common/model/authenticate/Authenticate.java
@@ -30,6 +30,7 @@ public class Authenticate extends AbstractBaseModel<Authenticate> {
 	public static final String CREATE_TIME = "create_time"; // 创建时间
 	public static final String DELETETAG = "deletetag"; // 删除标识
 	public static final String STATUS = "status"; // 审核状态
+	public static final String LOGO = "logo"; // 公司LOGO
 
 	public static final int STATUS_SUCCESS = 2;
 	public static final int STATUS_FAILURE= 3;
diff --git a/src/main/java/com/tianpengtech/common/model/fair/Fair.java b/src/main/java/com/tianpengtech/common/model/fair/Fair.java
index 2aa3cba229606f4ab12f768d7fa98ba715f076f9..276b4af8d584d3070a771d4248b85ca941cec2d8 100644
--- a/src/main/java/com/tianpengtech/common/model/fair/Fair.java
+++ b/src/main/java/com/tianpengtech/common/model/fair/Fair.java
@@ -30,6 +30,10 @@ public class Fair extends AbstractBaseModel<Fair> {
 	public static final String FAIR_CACHE_REGION = "fair_region_";
 
 
+	public static final String QQ = "1005501"; 
+	public static final String WEIXIN = "1005502";
+	public static final String SINA = "1005503"; 
+	
 	public static final String ID = "id"; //
 	public static final String NICK_NAME = "nick_name"; // 昵称
 	public static final String AGE = "age"; // 年龄
@@ -51,6 +55,9 @@ public class Fair extends AbstractBaseModel<Fair> {
 	public static final String REMIND_MSG="remind_msg"; //是否消息提醒
 	public static final String TRAN_PWD="tran_pwd"; //交易密码
 	public static final String MONEY="money"; //可用余额
+	public static final String BIRTHDAY="birthday"; //生日
+	public static final String BG_PHOTO="bg_photo"; //手机背景图片
+	public static final String DESCRIPT="descript"; //描述信息
 
 	
 	public static final int STATUS_UNAPPROVER=-1;
@@ -220,9 +227,9 @@ public class Fair extends AbstractBaseModel<Fair> {
 	 * 获取荣耀信息
 	 * @return
 	 */
-	public List<FairExt> getExt(Integer type){
-		String sql=String.format("select ext.id,ext.name from %s ext INNER JOIN fair_wh_ext_join jo on ext.id=jo.ext_id where  jo.wh_id=? and %s=?",FairExt.dao.tableName(),FairExt.TYPE);
-		return FairExt.dao.findByCache(FairExt.CACHE_NAME,"static_"+type+"_"+get(ID),sql,get(ID),type);
+	public List<FairExt> getExt(Integer type,long wh_id){
+		String sql="select * from "+FairExt.dao.tableName()+" where "+FairExt.TYPE+" =? and "+FairExt.WH_ID+"=? order by id desc";
+		return FairExt.dao.find(sql,type,wh_id);
 	}
 
 	/**
diff --git a/src/main/java/com/tianpengtech/common/model/fairauth/FairAuth.java b/src/main/java/com/tianpengtech/common/model/fairauth/FairAuth.java
index 1c717f29708d4b6ad2c6c71c7ebcafdff23dbf29..121f17970b6b10afa8b3174a0e8dadb0247d35f5 100644
--- a/src/main/java/com/tianpengtech/common/model/fairauth/FairAuth.java
+++ b/src/main/java/com/tianpengtech/common/model/fairauth/FairAuth.java
@@ -1,12 +1,13 @@
 package com.tianpengtech.common.model.fairauth;
+
 import com.tianpengtech.common.model.AbstractBaseModel;
+
 /**
- *实体类名-网红认证表
- * fair_wh_auth
+ * 实体类名-网红认证表 fair_wh_auth
  *
- * @since Thu Jul 27 16:13:18 CST 2017
+ * @since Mon Sep 11 22:59:45 HKT 2017
  */
-public class FairAuth extends AbstractBaseModel< FairAuth > {
+public class FairAuth extends AbstractBaseModel<FairAuth> {
 
 	/**
 	 *
@@ -14,27 +15,51 @@ public class FairAuth extends AbstractBaseModel< FairAuth > {
 	private static final long serialVersionUID = 1L;
 	public static final FairAuth dao = new FairAuth();
 
-
-		public static final String ID ="id"; //
-		public static final String WH_ID ="wh_id"; //网红ID
-		public static final String USER_NAME ="user_name"; //账号
-		public static final String NICK_NAME ="nick_name"; //昵称
-		public static final String FANS ="fans"; //粉丝数量
-		public static final String SCREENSHOT ="screenshot"; //截图
-		public static final String TYPE ="type"; //类型
-		public static final String DELETETAG ="deletetag"; //删除标识
-		public static final String STATUS ="status"; //状态
-
+	public static final String ID = "id"; //
+	public static final String WH_ID = "wh_id"; // 网红ID
+	public static final String USER_NAME = "user_name"; // 账号
+	public static final String NICK_NAME = "nick_name"; // 昵称
+	public static final String FANS = "fans"; // 粉丝数量
+	public static final String SCREENSHOT = "screenshot"; // 截图
+	public static final String TYPE = "type"; // 类型
+	public static final String DELETETAG = "deletetag"; // 删除标识
+	public static final String STATUS = "status"; // 状态
+	
 	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 TYPE_WEIBO=1;	//微博
 	public static final int TYPE_WEIXIN=2;	//微信
 	public static final int TYPE_QQ=3;	//QQ
+	public static final int DEL_YES=1;	//QQ
+	public static final int DEL_NO=0;	//QQ
 
-
+	
+	public String type(){
+		String result="空";
+		if(getInt(TYPE)==TYPE_WEIBO){
+			result = "新浪微博";
+		}else if(getInt(TYPE)==TYPE_WEIXIN){
+			result = "微信";
+		}else if(getInt(TYPE)==TYPE_QQ){
+			result = "QQ";
+		}
+		return result;
+	}
+	
+	public String status(){
+		String result="空";
+		if(getInt(STATUS)==STATUS_APPROVING){
+			result = "等待审核";
+		}else if(getInt(STATUS)==STATUS_SUCCESS){
+			result = "审核通过";
+		}else if(getInt(STATUS)==STATUS_FAILURE){
+			result = "审核不通过";
+		}
+		return result;
+	}
+	
 	@Override
 	public String tableName() {
 		return "fair_wh_auth";
diff --git a/src/main/java/com/tianpengtech/common/model/fairbankno/FairBankNo.java b/src/main/java/com/tianpengtech/common/model/fairbankno/FairBankNo.java
new file mode 100644
index 0000000000000000000000000000000000000000..a41a6dda2bdbd4ee83ddab5121cfdae2763c43f4
--- /dev/null
+++ b/src/main/java/com/tianpengtech/common/model/fairbankno/FairBankNo.java
@@ -0,0 +1,36 @@
+package com.tianpengtech.common.model.fairbankno;
+
+import com.tianpengtech.common.model.AbstractBaseModel;
+
+/**
+ * 实体类名-网红绑定银行卡表 fair_wh_bankno
+ *
+ * @since Mon Sep 11 23:30:32 HKT 2017
+ */
+public class FairBankNo extends AbstractBaseModel<FairBankNo> {
+
+	/**
+	 *
+	 */
+	private static final long serialVersionUID = 1L;
+	public static final FairBankNo dao = new FairBankNo();
+	public static final String CACHE_NAME = "fair_bankno_cache";
+
+	public static final String ID = "id"; //
+	public static final String WH_ID = "wh_id"; // 网红ID
+	public static final String BANK = "bank"; // 银行名称
+	public static final String BANK_NO = "bank_no"; // 银行卡号
+	public static final String DELETETAG = "deletetag"; // 删除标识
+	public static final String CREATE_TIME = "create_time"; // 创建时间
+	public static final String REAL_NAME = "real_name"; // 真实姓名
+	public static final String ICON = "icon"; // 银行图标
+
+	
+	public static final int DEL_NO=0;
+	public static final int DEL_YES=1;
+	@Override
+	public String tableName() {
+		return "fair_wh_bankno";
+	}
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/tianpengtech/common/model/fairbankno/FairBankno.java b/src/main/java/com/tianpengtech/common/model/fairbankno/FairBankno.java
deleted file mode 100644
index c91da48cc83b74bcc9b2d21eff33cb4ddddeaa63..0000000000000000000000000000000000000000
--- a/src/main/java/com/tianpengtech/common/model/fairbankno/FairBankno.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.tianpengtech.common.model.fairbankno;
-import com.tianpengtech.common.model.AbstractBaseModel;
-/**
- *实体类名-网红银行卡表
- * fair_wh_bankno
- *
- * @since Wed Jul 26 14:33:52 CST 2017
- */
-public class FairBankno extends AbstractBaseModel< FairBankno > {
-
-	/**
-	 *
-	 */
-	private static final long serialVersionUID = 1L;
-	public static final FairBankno dao = new FairBankno();
-	public static final String CACHE_NAME = "fair_bankno_cache";
-
-
-		public static final String ID ="id"; //
-		public static final String WH_ID ="wh_id"; //网红ID
-		public static final String BANK ="bank"; //银行名称
-		public static final String BANK_NO ="bank_no"; //银行卡号
-		public static final String DELETETAG ="deletetag"; //删除标识
-		public static final String CREATE_TIME ="create_time"; //创建时间
-		public static final String REAL_NAME ="real_name"; //真实姓名
-
-
-	@Override
-	public String tableName() {
-		return "fair_wh_bankno";
-	}
-
-}
\ No newline at end of file
diff --git a/src/main/java/com/tianpengtech/common/model/fairext/FairExt.java b/src/main/java/com/tianpengtech/common/model/fairext/FairExt.java
index c663155760cab5df136b58f0a78c167e39c759a6..b3673aee041ca2edc446ab6e19acbf561da85b20 100644
--- a/src/main/java/com/tianpengtech/common/model/fairext/FairExt.java
+++ b/src/main/java/com/tianpengtech/common/model/fairext/FairExt.java
@@ -20,6 +20,8 @@ public class FairExt extends AbstractBaseModel< FairExt > {
 		public static final String NAME ="name"; //名称
 		public static final String TYPE ="type"; //类型(兴趣爱好,擅长领域)
 		public static final String ISSYSTEM ="isSystem"; //是否是系统类型
+		public static final String EXT ="ext"; //是否是系统类型
+		public static final String WH_ID ="wh_id"; //所属网红
 
 
 		public static final Integer TYPE_XQAH=1; //兴趣爱好
diff --git a/src/main/java/com/tianpengtech/common/model/fairwithdraw/FairWithdraw.java b/src/main/java/com/tianpengtech/common/model/fairwithdraw/FairWithdraw.java
index 168888b27d9f897f4ad322ee6696a78769c29451..d8a7616e0402825362ab2f639d3f838f1ad7be06 100644
--- a/src/main/java/com/tianpengtech/common/model/fairwithdraw/FairWithdraw.java
+++ b/src/main/java/com/tianpengtech/common/model/fairwithdraw/FairWithdraw.java
@@ -1,12 +1,13 @@
 package com.tianpengtech.common.model.fairwithdraw;
+
 import com.tianpengtech.common.model.AbstractBaseModel;
+
 /**
- *实体类名-网红提现表
- * fair_wh_withdraw
+ * 实体类名-网红提现表 fair_wh_withdraw
  *
- * @since Sat Aug 05 13:53:05 CST 2017
+ * @since Fri Sep 15 10:47:26 HKT 2017
  */
-public class FairWithdraw extends AbstractBaseModel< FairWithdraw > {
+public class FairWithdraw extends AbstractBaseModel<FairWithdraw> {
 
 	/**
 	 *
@@ -14,21 +15,33 @@ public class FairWithdraw extends AbstractBaseModel< FairWithdraw > {
 	private static final long serialVersionUID = 1L;
 	public static final FairWithdraw dao = new FairWithdraw();
 
+	public static final String ID = "id"; //
+	public static final String WH_ID = "wh_id"; // 网红id
+	public static final String MONEY = "money"; // 提现金额
+	public static final String CREATE_TIME = "create_time"; // 提交时间
+	public static final String HANDLE_TIME = "handle_time"; //
+	public static final String BANK_ID = "bank_id"; // 银行卡表ID
+	public static final String STATUS = "status"; // 状态
 
-		public static final String ID ="id"; //
-		public static final String WH_ID ="wh_id"; //网红id
-		public static final String MONEY ="money"; //提现金额
-		public static final String CREATE_TIME ="create_time"; //提交时间
-		public static final String HANDLE_TIME ="handle_time"; //
-		public static final String BANK_ID ="bank_id"; //银行卡表ID
-		public static final String STATUS ="status"; //状态
-
-	public static final int STATUS_APPROVING=1; //等待审核
-
+	public static final int STATUS_APPROVING = 1; // 等待审核
+	public static final int STATUS_SUCCESS = 2; // 已经处理
+	public static final int STATUS_ERROR = 3; // 处理失败
 
 	@Override
 	public String tableName() {
 		return "fair_wh_withdraw";
 	}
 
+	
+	public String status(){
+		String result="未知";
+		if(getInt(STATUS)==STATUS_APPROVING){
+			result = "等待处理";
+		}else if(getInt(STATUS)==STATUS_SUCCESS){
+			result = "已经处理";
+		}else if(getInt(STATUS)==STATUS_ERROR){
+			result = "处理失败";
+		}
+		return result;
+	}
 }
\ No newline at end of file
diff --git a/src/main/java/com/tianpengtech/common/model/opertion/Opertion.java b/src/main/java/com/tianpengtech/common/model/opertion/Opertion.java
index 6c8676bab1ec90697c3867a0e73f8748bf337313..100393d5ad81f6de640aab72ea7572f037844ad6 100644
--- a/src/main/java/com/tianpengtech/common/model/opertion/Opertion.java
+++ b/src/main/java/com/tianpengtech/common/model/opertion/Opertion.java
@@ -28,7 +28,8 @@ public class Opertion extends AbstractBaseModel<Opertion> {
 	public static final int OPT_TASK_LOG=2;//任务认证审核操作日志
 	public static final int OPT_USER_LOG=3;//用户管理操作日志
 	public static final int OPT_FEEDBACK_LOG=4;//用户反馈处理操作日志
-	
+	public static final int OPT_FAIR_AUTH_LOG=5;//网红认证审核操作日志
+	public static final int OPT_FAIR_GET_CASH=6;//网红提现操作日志
 	
 	
 	public String taskType(){
@@ -43,6 +44,10 @@ public class Opertion extends AbstractBaseModel<Opertion> {
 			result="用户管理操作日志";
 		}else if(getInt(OPT_TYPE)==OPT_FEEDBACK_LOG){
 			result="用户反馈操作日志";
+		}else if(getInt(OPT_TYPE)==OPT_FAIR_AUTH_LOG){
+			result="网红认证审核操作日志";
+		}else if(getInt(OPT_TYPE)==OPT_FAIR_GET_CASH){
+			result="网红提现操作日志";
 		}
 		return result;
 	}
diff --git a/src/main/java/com/tianpengtech/front/mobile/MobileRoutes.java b/src/main/java/com/tianpengtech/front/mobile/MobileRoutes.java
index 6170ab58329808c57dd1cf5fa23281cb7942025a..ff4e33b5bd76964871c62cf723e53b1bf7940a0f 100644
--- a/src/main/java/com/tianpengtech/front/mobile/MobileRoutes.java
+++ b/src/main/java/com/tianpengtech/front/mobile/MobileRoutes.java
@@ -22,8 +22,7 @@ public class MobileRoutes extends Routes {
     @Override
     public void config() {
 //        addInterceptor(new MobileRequestInterceptor()); //验证请求数据有效性
-//        addInterceptor(new TokenCheckInterceptor()); //验证登录用户token是否有效
-
+        addInterceptor(new TokenCheckInterceptor()); //验证登录用户token是否有效
         add("/api",MobileLoginController.class);
         add("/api/msg",MobileMessageController.class);
         add("/api/region", MobileRegionController.class);
diff --git a/src/main/java/com/tianpengtech/front/mobile/bankno/MobileBanknoController.java b/src/main/java/com/tianpengtech/front/mobile/bankno/MobileBanknoController.java
index 3a06d4d2c88637f0483bfcaa9e95417ada39a83d..c3e00031df22a5c629a3d7e084a5db40bdbd705c 100644
--- a/src/main/java/com/tianpengtech/front/mobile/bankno/MobileBanknoController.java
+++ b/src/main/java/com/tianpengtech/front/mobile/bankno/MobileBanknoController.java
@@ -1,3 +1,4 @@
+
 package com.tianpengtech.front.mobile.bankno;
 
 import com.jfinal.aop.Before;
@@ -10,6 +11,8 @@ import com.tianpengtech.front.web.common.controller.BaseController;
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.commons.lang3.StringUtils;
+
 /**
  * Created by ggd on 2017/7/26 0026.
  */
@@ -25,8 +28,14 @@ public class MobileBanknoController extends BaseController {
         param.put("bank",getPara("bank"));
         param.put("bank_no",getPara("bank_no"));
         param.put("real_name",getPara("real_name"));
-//        User user= UserUtil.getCurrentUser(getPara("token"),getHeader("source"));
-        param.put("id",46+"");
+        String icon =  getPara("icon");
+        if(StringUtils.isNotEmpty(icon)){
+        	icon = icon.substring(icon.lastIndexOf("/")+1);
+        }
+        param.put("icon",icon);
+        User user= UserUtil.getCurrentUser(getPara("token"),"ios");
+        
+        param.put("id",user.getLong(User.ID)+"");
         try {
             R r=service.save(param);
             renderJson(r);
@@ -39,8 +48,8 @@ public class MobileBanknoController extends BaseController {
      * 获取某个人的银行卡列表
      */
     public void banknoList(){
-//        User user= UserUtil.getCurrentUser(getPara("token"),getHeader("source"));
-        R r=service.findBankno(46);
+        User user= UserUtil.getCurrentUser(getPara("token"),"ios");
+        R r=service.findBankno(user.getLong(User.ID));
         renderJson(r);
     }
     
diff --git a/src/main/java/com/tianpengtech/front/mobile/bankno/MobileBanknoService.java b/src/main/java/com/tianpengtech/front/mobile/bankno/MobileBanknoService.java
index 7d85b4ead7be6088b9df8aabf1fae7f092746a1a..1bc30a2b1e6a31544a81561cf884542da09cfbb8 100644
--- a/src/main/java/com/tianpengtech/front/mobile/bankno/MobileBanknoService.java
+++ b/src/main/java/com/tianpengtech/front/mobile/bankno/MobileBanknoService.java
@@ -1,9 +1,9 @@
 package com.tianpengtech.front.mobile.bankno;
 
-import com.jfinal.plugin.activerecord.Page;
 import com.jfinal.plugin.activerecord.Record;
 import com.jfinal.plugin.ehcache.CacheKit;
-import com.tianpengtech.common.model.fairbankno.FairBankno;
+import com.tianpengtech.common.GlobalConfigConstant;
+import com.tianpengtech.common.model.fairbankno.FairBankNo;
 import com.tianpengtech.front.mobile.common.util.R;
 
 import java.util.ArrayList;
@@ -15,8 +15,9 @@ import java.util.Map;
  */
 public class MobileBanknoService {
     public static MobileBanknoService me = new MobileBanknoService();
-    private static FairBankno dao = FairBankno.dao;
-
+    private static FairBankNo dao = FairBankNo.dao;
+    private String domain=GlobalConfigConstant.DOMAIN;
+//    private String domain="http://192.168.1.54:8090/assets/front/img/";
     /**
      * 保存银行卡信息
      * @param param
@@ -28,18 +29,20 @@ public class MobileBanknoService {
             String bank=param.get("bank");
             String bank_no=param.get("bank_no");
             String real_name=param.get("real_name");
+            String icon=param.get("icon");
             if (isBankNoExists(bank_no,Long.parseLong(wh_id))){
                 return R.fail("此银行卡已添加过");
             }
-            FairBankno fb = new FairBankno();
-            fb.set(FairBankno.WH_ID,wh_id);
-            fb.set(FairBankno.BANK,bank);
-            fb.set(FairBankno.BANK_NO,bank_no);
-            fb.set(FairBankno.REAL_NAME,real_name);
+            FairBankNo fb = new FairBankNo();
+            fb.set(FairBankNo.WH_ID,wh_id);
+            fb.set(FairBankNo.BANK,bank);
+            fb.set(FairBankNo.BANK_NO,bank_no);
+            fb.set(FairBankNo.REAL_NAME,real_name);
+            fb.set(FairBankNo.ICON,icon);
             fb.save();
             R r=R.ok("成功");
             r.p("bankno",fb);
-            CacheKit.remove(FairBankno.CACHE_NAME,"bankno_"+wh_id);
+            CacheKit.remove(FairBankNo.CACHE_NAME,"bankno_"+wh_id);
             return r;
         }catch (Exception e){
             e.printStackTrace();
@@ -53,10 +56,13 @@ public class MobileBanknoService {
      * @return
      */
     public R findBankno(long id){
-        String sql = String.format("select %s,%s,%s,%s from %s where %s=? and %s=?",
-        		FairBankno.ID,FairBankno.BANK,FairBankno.REAL_NAME
-        		,FairBankno.BANK_NO,dao.tableName(),FairBankno.DELETETAG,FairBankno.WH_ID);
-        List<FairBankno> list=dao.find(sql,0,id);
+        String sql = String.format("select %s,%s,%s,%s,icon from %s where %s=? and %s=?",
+        		FairBankNo.ID,FairBankNo.BANK,FairBankNo.REAL_NAME
+        		,FairBankNo.BANK_NO,dao.tableName(),FairBankNo.DELETETAG,FairBankNo.WH_ID);
+        List<FairBankNo> list=dao.find(sql,0,id);
+        for (FairBankNo fairBankNo : list) {
+        	fairBankNo.set(FairBankNo.ICON, domain+fairBankNo.getStr(FairBankNo.ICON));
+		}
         R r = R.ok();
         r.p("banknos",list);
         return r;
@@ -69,8 +75,8 @@ public class MobileBanknoService {
      * @return
      */
     public boolean isBankNoExists(String bankNo,long uid){
-        String sql = String.format("select %s from %s where %s=? and %s=? and %s=?",FairBankno.ID,dao.tableName(),FairBankno.DELETETAG,FairBankno.WH_ID,FairBankno.BANK_NO);
-        FairBankno no=dao.findFirst(sql,0,uid,bankNo);
+        String sql = String.format("select %s from %s where %s=? and %s=? and %s=?",FairBankNo.ID,dao.tableName(),FairBankNo.DELETETAG,FairBankNo.WH_ID,FairBankNo.BANK_NO);
+        FairBankNo no=dao.findFirst(sql,0,uid,bankNo);
         if (no==null){
             return false;
         }else{
@@ -84,8 +90,8 @@ public class MobileBanknoService {
      * @return
      */
     public boolean isBankNoExists(String bankId){
-        String sql = String.format("select %s from %s where %s=? and %s=?",FairBankno.ID,dao.tableName(),FairBankno.DELETETAG,FairBankno.ID);
-        FairBankno no=dao.findFirst(sql,0,bankId);
+        String sql = String.format("select %s from %s where %s=? and %s=?",FairBankNo.ID,dao.tableName(),FairBankNo.DELETETAG,FairBankNo.ID);
+        FairBankNo no=dao.findFirst(sql,0,bankId);
         if (no==null){
             return false;
         }else{
@@ -97,11 +103,16 @@ public class MobileBanknoService {
     public R bankCategory(){
     	R r = R.ok();
     	List<Record>bankCategory = new ArrayList<Record>();
-    	String[] banks = {"中国工商银行","中国农业银行","中国建设银行","中国交通银行"};
-    	for (String each : banks) {
+    	String[] banks = {"中国建设银行","招商银行","中国银行","中国工商银行","中国农业银行","浦发银行","华夏银行"};
+    	String[] icons = {"jianshe.png","zhaoshang.png","zhongguo.png","gongshang.png"
+    			,"nongye.png","pufa.png","huaxia.png"};
+    	
+//    	String domain="http://www.ele-young.com/assets/front/img/";
+    	
+    	for (int i=0;i<banks.length;i++) {
     		Record record = new Record();
-        	record.set("icon","xxxx");
-        	record.set("name",each);
+        	record.set("icon",domain+icons[i]);
+        	record.set("name",banks[i]);
         	bankCategory.add(record);
 		}
     	r.p("list", bankCategory);
diff --git a/src/main/java/com/tianpengtech/front/mobile/common/util/U.java b/src/main/java/com/tianpengtech/front/mobile/common/util/U.java
index 4af4aa50f9abcb56084470e13184a671e27fd1e8..0e9c1baf980446c28349ba9523785b4ed53cfb9d 100644
--- a/src/main/java/com/tianpengtech/front/mobile/common/util/U.java
+++ b/src/main/java/com/tianpengtech/front/mobile/common/util/U.java
@@ -6,6 +6,9 @@ import com.tianpengtech.front.mobile.common.constant.Constant;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import org.apache.commons.lang.StringUtils;
+
+
 /**
  * Created by ggd on 2017/7/19 0019.
  */
@@ -56,4 +59,14 @@ public class U {
     }
 
 
+    public static boolean isValidPass(String password){
+    	
+    	boolean result=true;
+    	if(StringUtils.isBlank(password)){
+    		result =  false;
+    	}else if(StringUtils.length(password)<6 || StringUtils.length(password)>30 ){
+    		result =  false;
+    	}
+    	return result;
+    }
 }
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 fddd5fea0259ec98844add9668f9775e4dcbd5c8..f1da49c43aee576c77823a1b5cd87539aff68ebd 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
@@ -1,6 +1,8 @@
 package com.tianpengtech.front.mobile.common.util;
 
 
+import com.jfinal.plugin.activerecord.Db;
+import com.jfinal.plugin.activerecord.Record;
 import com.jfinal.plugin.ehcache.CacheKit;
 import com.tianpengtech.common.model.user.User;
 
@@ -20,7 +22,8 @@ public class UserUtil {
         if (user != null) {
             setCurrentUser( user, token, source);
         }else{
-            return new User();
+        	Record record = queryUserByToken(token);
+            return User.dao.findById(record.getInt("user"));
         }
     	user.set(User.ID, user.get(User.ID));
         return user;
@@ -33,7 +36,6 @@ public class UserUtil {
      * 描述:加密串分两层,外层使用系统公共密钥加密,内层使用用户私有密钥加密
      */
     public static void setCurrentUser(User user,String token,String source) {
-
         /**
          * token
          * 方式登陆
@@ -42,6 +44,28 @@ public class UserUtil {
         CacheKit.put(CACHE_NAME,source.toUpperCase()+"_USER_CLIENT_"+token,user);
     }
 
+    
+    private static Record queryUserByToken(String token){
+    	String sql="select * from fair_token where token=?";
+    	Record record= Db.findFirst(sql,token);
+    	return record;
+    }
+    
+    public static void updateUserToken(String token,long user){
+    	Record record= queryUserByToken(token);
+    	if(record==null){
+    		Record temp = new Record();
+    		temp.set("token", token);
+    		temp.set("user", user);
+    		Db.save("fair_token", temp);
+    	}else{
+    		record.set("token", token);
+    		record.set("user", user);
+    		Db.update("fair_token", record);
+    	}
+    }
+    
+    
     /**
      * 从缓存中删除token
      */
diff --git a/src/main/java/com/tianpengtech/front/mobile/login/MobileLoginController.java b/src/main/java/com/tianpengtech/front/mobile/login/MobileLoginController.java
index 5332fa011614db590593e6e586669c4c4d6215cb..38dcda67df4c668e4090a791d7fcf5a2cfdc1732 100644
--- a/src/main/java/com/tianpengtech/front/mobile/login/MobileLoginController.java
+++ b/src/main/java/com/tianpengtech/front/mobile/login/MobileLoginController.java
@@ -22,26 +22,36 @@ public class MobileLoginController extends BaseController {
     private static MobileLoginService service = new MobileLoginService();
 
     private static PassportService passportService = new PassportService();
+    
+    
+    @Clear(TokenCheckInterceptor.class)
+    @Before(Tx.class)
+    public void login(){
+    	String loginIp = IpKit.getRealIp(getRequest());
+        String mobile=getPara("mobile");
+        String password= getPara("password");
+        R r = service.login(mobile, password, loginIp, "ios");
+        renderJson(r);
+    }
+    
     /**
      * 登录
      */
     @Clear(TokenCheckInterceptor.class)
     @Before(Tx.class)
-    public void login(){
+    public void register(){
         String mobile=getPara("mobile");
-        String code= getPara("authCode");
-        if (!U.isMobile(mobile)){
-            renderJson(R.fail("手机号码格式不正确"));
-            return;
-        }
-        if (!U.isInteger(code)){
-            renderJson(R.fail("验证码格式不正确"));
+        String code= getPara("authCode","0");
+        String password = getPara("password");
+        String confirmPass = getPara("confirmPass");
+        if (!password.equals(confirmPass)){
+            renderJson(R.fail("两次密码输入不一致"));
             return;
         }
         String loginIp = IpKit.getRealIp(getRequest());
         R r = null;
         try {
-            r = service.login(mobile,Integer.parseInt(code),loginIp,"ios");
+            r = service.register(mobile,password,Integer.parseInt(code),loginIp,"ios");
         } catch (Exception e) {
             e.printStackTrace();
             renderJson(R.fail("注册失败"));
diff --git a/src/main/java/com/tianpengtech/front/mobile/login/MobileLoginService.java b/src/main/java/com/tianpengtech/front/mobile/login/MobileLoginService.java
index 108c82c694721a78260c077b297a9d7bc481eba3..d5814a6d14e7a0ba4fee24d500d8a83e1404ed35 100644
--- a/src/main/java/com/tianpengtech/front/mobile/login/MobileLoginService.java
+++ b/src/main/java/com/tianpengtech/front/mobile/login/MobileLoginService.java
@@ -1,7 +1,7 @@
 package com.tianpengtech.front.mobile.login;
 
-
 import com.jfinal.aop.Before;
+import com.jfinal.kit.HashKit;
 import com.jfinal.kit.Ret;
 import com.jfinal.plugin.activerecord.tx.Tx;
 import com.tianpengtech.admin.dictionary.DictionaryDao;
@@ -13,178 +13,178 @@ import com.tianpengtech.common.model.user.User;
 import com.tianpengtech.front.mobile.common.constant.Constant;
 import com.tianpengtech.front.mobile.common.util.R;
 import com.tianpengtech.front.mobile.common.util.TokenUtil;
+import com.tianpengtech.front.mobile.common.util.U;
 import com.tianpengtech.front.mobile.common.util.UserUtil;
 import com.tianpengtech.front.web.login.LoginService;
 import com.tianpengtech.front.web.passport.PassportService;
 
 import java.util.UUID;
 
-
 /**
  * Created by ggd on 2017/7/17 0017.
  */
 public class MobileLoginService {
 
-    public static final MobileLoginService me = new MobileLoginService();
-    private final LoginService loginService = LoginService.me;
-    private final PassportService passportService = PassportService.me;
-    private final User userDao = new User().dao();
-    private DictionaryDao dictionaryDao = new DictionaryDao();
-    //用户密码错误次数 缓存key
-    public static final String ERRORCOUNT_KEY = "error_count_";
-
-    //用户错误密码次数 缓存名称
-    public static final String ERRORCOUNT_CACHENAME = "errorcount";
-
-
-
-
-
-    /**
-     * 登录
-     */
-    public R login(String mobile, int code, String loginIp,String source) throws Exception {
-        try{
-//            try {
-//                if(!passportService.authCode(mobile,loginIp,code,true)){
-//                    return R.fail("验证码不正确");
-//                }
-//            }catch (Exception e){
-//                e.printStackTrace();
-//                return R.fail("验证码不正确");
-//            }
-            User user = loginService.findByMobile(mobile,User.USER_TYPE_FAIR);
-            if (user == null) {
-                Ret r=passportService.reg(mobile, Constant.DEFAULT_PASSWORD,User.USER_TYPE_FAIR);
-                if (r.isOk()){
-                    long id= (long) r.get("id");
-                    Fair fair = new Fair();
-                    fair.set(Fair.ID,id);
-                    fair.set(Fair.MOIBILE,mobile);
-                    fair.set(Fair.NICK_NAME,mobile);
-                    fair.set(Fair.STATUS,Fair.STATUS_UNAPPROVER);
-                    fair.save();
-                    user=loginService.findByMobile(mobile,User.USER_TYPE_FAIR);
-                    user.set(User.CODE,getCode());
-                    user.update();
-                }else{
-                    return R.fail("注册失败");
-                }
-            }
-            if (user.isStatusLockId()) {
-                return R.fail("账号已被锁定");
-            }
-            user.removeSensitiveInfo();  // 移除 password 与 salt 属性值
-//            String token = TokenUtil.getToken();
-            String token = "c1bcfb6a7fc5c51d2266ecd3e2420410";
-            System.out.println("token:"+token);
-            UserUtil.setCurrentUser(user,token,source);
-            loginService.createLoginLog(user.getLong(User.ID), loginIp,"mobile");
-            user.remove(User.DELETETAG).remove(User.USER_TYPE).remove(User.STATUS).remove(User.CREATE_TIME);
-            R r=R.ok("登陆成功");
-            r.p("user",user);
-            r.p("token",token);
-            return r;
-        }catch (Exception e){
-            throw e;
-        }
-
-    }
-
-    /**
-     * 退出登录
-     * @param token
-     * @return
-     */
-    public R logout(String token){
-        UserUtil.removeUser(token);
-        return R.ok("退出成功");
-    }
-
-
-    /**
-     * 邀请注册
-     * @return
-     */
-    @Before(Tx.class)
-    public R inviteReg(String code,String mobile,int authCode,String regIp) throws Exception{
-        try{
-//            try {
-//                if(!passportService.authCode(mobile,regIp,authCode,true)){
-//                    return R.fail("验证码不正确");
-//                }
-//            }catch (Exception e){
-//                e.printStackTrace();
-//                return R.fail("验证码不正确");
-//            }
-            User user = loginService.findByMobile(mobile,User.USER_TYPE_FAIR);
-            if (user == null) {
-                Ret r=passportService.reg(mobile, Constant.DEFAULT_PASSWORD,User.USER_TYPE_FAIR);
-                if (r.isOk()){
-                    long id= (long) r.get("id");
-                    Fair fair = new Fair();
-                    fair.set(Fair.ID,id);
-                    fair.save();
-                    user=loginService.findByMobile(mobile,User.USER_TYPE_FAIR);
-                    User ref=loginService.findByCode(code,User.USER_TYPE_FAIR);
-                    if (ref==null){
-                        return R.fail("邀请码不存在");
-                    }
-                    user.set(User.REF_ID,ref.get(User.ID));
-                    user.set(User.CODE,getCode());
-                    user.update();
-                    Dictionary dict = dictionaryDao.readDirecotryByCode(300100);
-                    String val=null;
-                    if (dict==null){
-                        val="5";
-                    }else{
-                        val = dict.get(Dictionary.NAME,5);
-                    }
-                    MoneyLog ml = new MoneyLog();
-                    ml.set(MoneyLog.WH_ID,ref.get(User.ID));
-                    ml.set(MoneyLog.OPERID,user.get(User.ID));
-                    ml.set(MoneyLog.STATE, MoneyLog.STATE_ADD);
-                    ml.set(MoneyLog.TYPE,MoneyLog.TYPE_RENWU);
-                    ml.set(MoneyLog.MONEY,val);
-                    ml.set(MoneyLog.DESCRIPTION,"邀请好友获得奖励");
-                    ml.save();
-                }else{
-                    return R.fail("注册失败");
-                }
-            }else{
-                return R.fail("账号已存在");
-            }
-            return R.ok();
-        }catch (Exception e){
-            throw e;
-        }
-    }
-
-
-    /**
-     * 生成邀请码
-     * @return
-     */
-    private String getCode(){
-        return generateShortUuid();
-    }
-
-    private  String[] chars = new String[] { "a", "b", "c", "d", "e", "f",
-            "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s",
-            "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5",
-            "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I",
-            "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V",
-            "W", "X", "Y", "Z" };
-
-
-    private  String generateShortUuid() {
-        StringBuffer shortBuffer = new StringBuffer();
-        String uuid = UUID.randomUUID().toString().replace("-", "");
-        for (int i = 0; i < 8; i++) {
-            String str = uuid.substring(i * 4, i * 4 + 4);
-            int x = Integer.parseInt(str, 16);
-            shortBuffer.append(chars[x % 0x3E]);
-        }
-        return shortBuffer.toString();
-    }
+	public static final MobileLoginService me = new MobileLoginService();
+	private final LoginService loginService = LoginService.me;
+	private final PassportService passportService = PassportService.me;
+	private final User userDao = new User().dao();
+	private DictionaryDao dictionaryDao = new DictionaryDao();
+	// 用户密码错误次数 缓存key
+	public static final String ERRORCOUNT_KEY = "error_count_";
+
+	// 用户错误密码次数 缓存名称
+	public static final String ERRORCOUNT_CACHENAME = "errorcount";
+
+	public R login(String mobile, String password, String loginIp, String source) {
+
+		if (!U.isMobile(mobile)) {
+			return R.fail("手机号码格式不正确");
+		}
+
+		if (!U.isValidPass(password)) {
+			return R.fail("密码只能是6-30个字符");
+		}
+		User user = loginService.findByMobile(mobile, User.USER_TYPE_FAIR);
+		if (user == null) {
+			return R.fail("当前用户不存在");
+		}
+		password = HashKit.sha256(user.getStr(User.SALT) + password);
+		if (!password.equals(user.getStr(User.PASSWORD))) {
+			return R.fail("用户名密码或密码不正确");
+		}
+		if (user.isStatusLockId()) {
+			return R.fail("当前用户账号已被锁定");
+		}
+		R r = R.ok("恭喜你!注册成功");
+		String token = TokenUtil.getToken();
+		UserUtil.setCurrentUser(user, token, source);
+		UserUtil.updateUserToken(token,user.getLong(User.ID));
+		loginService.createLoginLog(user.getLong(User.ID), loginIp, "mobile");
+		r.p("user", user);
+		r.p("token", token);
+		return r;
+	}
+
+	/**
+	 * 登录
+	 */
+	public R register(String mobile, String password, int code, String loginIp, String source) throws Exception {
+		try {
+			try {
+				if (!passportService.authCode(mobile, loginIp, code, true)) {
+					return R.fail("验证码不正确");
+				}
+			} catch (Exception e) {
+				e.printStackTrace();
+				return R.fail("验证码不正确");
+			}
+			Ret r = passportService.reg(mobile, password, getCode(), User.USER_TYPE_FAIR);
+			R result;
+			if (r.isOk()) {
+				result = login(mobile, password, loginIp, source);
+			} else {
+				result = R.fail(r.getStr("msg"));
+			}
+			return result;
+		} catch (Exception e) {
+			throw e;
+		}
+
+	}
+
+	/**
+	 * 退出登录
+	 * 
+	 * @param token
+	 * @return
+	 */
+	public R logout(String token) {
+		UserUtil.removeUser(token);
+		return R.ok("退出成功");
+	}
+
+	/**
+	 * 邀请注册
+	 * 
+	 * @return
+	 */
+	@Before(Tx.class)
+	public R inviteReg(String code, String mobile, int authCode, String regIp) throws Exception {
+		try {
+			// try {
+			// if(!passportService.authCode(mobile,regIp,authCode,true)){
+			// return R.fail("验证码不正确");
+			// }
+			// }catch (Exception e){
+			// e.printStackTrace();
+			// return R.fail("验证码不正确");
+			// }
+			User user = loginService.findByMobile(mobile, User.USER_TYPE_FAIR);
+			if (user == null) {
+				Ret r = passportService.reg(mobile, Constant.DEFAULT_PASSWORD, getCode(), User.USER_TYPE_FAIR);
+				if (r.isOk()) {
+					long id = (long) r.get("id");
+					Fair fair = new Fair();
+					fair.set(Fair.ID, id);
+					fair.save();
+					user = loginService.findByMobile(mobile, User.USER_TYPE_FAIR);
+					User ref = loginService.findByCode(code, User.USER_TYPE_FAIR);
+					if (ref == null) {
+						return R.fail("邀请码不存在");
+					}
+					user.set(User.REF_ID, ref.get(User.ID));
+					user.set(User.CODE, getCode());
+					user.update();
+					Dictionary dict = dictionaryDao.readDirecotryByCode(300100);
+					String val = null;
+					if (dict == null) {
+						val = "5";
+					} else {
+						val = dict.get(Dictionary.NAME, 5);
+					}
+					MoneyLog ml = new MoneyLog();
+					ml.set(MoneyLog.WH_ID, ref.get(User.ID));
+					ml.set(MoneyLog.OPERID, user.get(User.ID));
+					ml.set(MoneyLog.STATE, MoneyLog.STATE_ADD);
+					ml.set(MoneyLog.TYPE, MoneyLog.TYPE_RENWU);
+					ml.set(MoneyLog.MONEY, val);
+					ml.set(MoneyLog.DESCRIPTION, "邀请好友获得奖励");
+					ml.save();
+				} else {
+					return R.fail("注册失败");
+				}
+			} else {
+				return R.fail("账号已存在");
+			}
+			return R.ok();
+		} catch (Exception e) {
+			throw e;
+		}
+	}
+
+	/**
+	 * 生成邀请码
+	 * 
+	 * @return
+	 */
+	private String getCode() {
+		return generateShortUuid();
+	}
+
+	private String[] chars = new String[] { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o",
+			"p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
+			"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U",
+			"V", "W", "X", "Y", "Z" };
+
+	private String generateShortUuid() {
+		StringBuffer shortBuffer = new StringBuffer();
+		String uuid = UUID.randomUUID().toString().replace("-", "");
+		for (int i = 0; i < 8; i++) {
+			String str = uuid.substring(i * 4, i * 4 + 4);
+			int x = Integer.parseInt(str, 16);
+			shortBuffer.append(chars[x % 0x3E]);
+		}
+		return shortBuffer.toString();
+	}
 }
diff --git a/src/main/java/com/tianpengtech/front/mobile/message/MobileMessageController.java b/src/main/java/com/tianpengtech/front/mobile/message/MobileMessageController.java
index cae4561d1d31c84851f9b2bc3fed6899d024cb12..4450975042334e5b3cfbcabe0963666200e01e2a 100644
--- a/src/main/java/com/tianpengtech/front/mobile/message/MobileMessageController.java
+++ b/src/main/java/com/tianpengtech/front/mobile/message/MobileMessageController.java
@@ -18,8 +18,8 @@ public class MobileMessageController extends BaseController {
     public void index(){
         int pageNum = getParaToInt("pageNum",1);
         int pageSize = getParaToInt("pageSize",5);
-//        User user=UserUtil.getCurrentUser(getPara("token"),getHeader("source"));
-        R r=messageService.messageList(pageNum,pageSize,46);
+        User user=UserUtil.getCurrentUser(getPara("token"),"ios");
+        R r=messageService.messageList(pageNum,pageSize,user.getLong(User.ID));
         renderJson(r);
     }
 
@@ -32,8 +32,8 @@ public class MobileMessageController extends BaseController {
             renderJson(R.fail("数据格式不正确"));
             return;
         }
-//        User user=UserUtil.getCurrentUser(getPara("token"),getHeader("source"));
-        R r=messageService.getMessage(id,46);
+        User user=UserUtil.getCurrentUser(getPara("token"),"ios");
+        R r=messageService.getMessage(id,user.getLong(User.ID));
         renderJson(r);
     }
 
@@ -41,8 +41,8 @@ public class MobileMessageController extends BaseController {
      * 获取用户是否有未读消息
      */
     public void unRead(){
-//        User user=UserUtil.getCurrentUser(getPara("token"),getHeader("source"));
-        R r=messageService.isUnreadMsg(46);
+       User user=UserUtil.getCurrentUser(getPara("token"),"ios");
+        R r=messageService.isUnreadMsg(user.getLong(User.ID));
         renderJson(r);
     }
 
diff --git a/src/main/java/com/tianpengtech/front/mobile/message/MobileMessageService.java b/src/main/java/com/tianpengtech/front/mobile/message/MobileMessageService.java
index 115ef5a0dd6c784fc6423ffbcf390d25cd0815dd..a80044e8a597a6d0ceb03f74a3536d96c65b1904 100644
--- a/src/main/java/com/tianpengtech/front/mobile/message/MobileMessageService.java
+++ b/src/main/java/com/tianpengtech/front/mobile/message/MobileMessageService.java
@@ -52,9 +52,9 @@ public class MobileMessageService {
     }
 
     private String handleContent(String content){
-        int len = 30;
+        int len = 150;
         if (content.length()>len){
-            content=content.substring(0,30);
+            content=content.substring(0,len);
             content+="...";
             return content;
         }else{
diff --git a/src/main/java/com/tianpengtech/front/mobile/moneylog/MobileMoneyLogController.java b/src/main/java/com/tianpengtech/front/mobile/moneylog/MobileMoneyLogController.java
index a8900025aa5bb4a0fc52f37bd325246afd3e9a20..e932e98fdd521223d8be3b3eeab74f37d570b1be 100644
--- a/src/main/java/com/tianpengtech/front/mobile/moneylog/MobileMoneyLogController.java
+++ b/src/main/java/com/tianpengtech/front/mobile/moneylog/MobileMoneyLogController.java
@@ -16,9 +16,9 @@ public class MobileMoneyLogController extends BaseController {
     public void index(){
         int pageNum = getParaToInt("pageNum",1);
         int pageSize = getParaToInt("pageSize",10);
-//        User user= UserUtil.getCurrentUser(getPara("token"),getHeader("source"));
-//        long uid=user.getLong(User.ID);
-        R r=service.list(pageNum,pageSize,46);
+        User user= UserUtil.getCurrentUser(getPara("token"),"ios");
+        long uid=user.getLong(User.ID);
+        R r=service.list(pageNum,pageSize,uid);
         renderJson(r);
     }
 
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 756c5df25f1ccacd3fb2d61a57836ccfce5c40d7..6feedc5420565269420e7407fc2f6838dc42fb2a 100644
--- a/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportController.java
+++ b/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportController.java
@@ -1,9 +1,12 @@
 package com.tianpengtech.front.mobile.passport;
 
 import com.jfinal.aop.Before;
+import com.jfinal.kit.Ret;
 import com.jfinal.kit.StrKit;
 import com.jfinal.plugin.activerecord.tx.Tx;
 import com.jfinal.upload.UploadFile;
+import com.tianpengtech.common.model.fair.Fair;
+import com.tianpengtech.common.model.fairext.FairExt;
 import com.tianpengtech.common.model.user.User;
 import com.tianpengtech.common.util.QiNiuUtil;
 import com.tianpengtech.front.mobile.common.util.R;
@@ -15,6 +18,8 @@ import java.io.FileInputStream;
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.commons.lang3.StringUtils;
+
 /**
  * Created by ggd on 2017/7/25 0025.
  */
@@ -22,35 +27,102 @@ public class MobilePassportController extends BaseController{
 
     private static MobilePassportService ps = MobilePassportService.me;
 
-    /**
-     * 保存或更新个人信息
-     */
-    @Before({MobilePassportValidator.class,Tx.class})
-    public void saveOrUpdate() throws Exception {
-        Map<String,String> param  = new HashMap<>();
-        param.put("honners",getPara("honners"));
-        param.put("xqah",getPara("xqah"));
-        param.put("scly",getPara("scly"));
-        param.put("photo",getPara("photo"));
-        param.put("nick_name",getPara("nick_name"));
-        param.put("gender",getPara("gender"));
-        param.put("age",getPara("age"));
-        param.put("province",getPara("province"));
-        param.put("city",getPara("city"));
-        param.put("avatar",getPara("avatar"));
-        param.put("id",getPara("id"));
-//        User user= UserUtil.getCurrentUser(getPara("token"),getHeader("source"));
-//        param.put("uid",46user.getLong(User.ID)+"");
-        param.put("uid",46+"");
-        try {
-            R r=ps.saveOrUpdate(param);
-            renderJson(r);
-        }catch (Exception ex){
-            renderJson(R.fail("失败"));
-            throw ex;
+    
+    public void updateNickName(){
+    	User user= UserUtil.getCurrentUser(getPara("token"),"ios");
+    	String nickName = getPara(Fair.NICK_NAME);
+    	R r = ps.updateNickName(user.getLong(User.ID), nickName);
+    	renderJson(r);
+    }
+    
+    
+    public void updateDescript(){
+    	User user= UserUtil.getCurrentUser(getPara("token"),"ios");
+    	String descript = getPara(Fair.DESCRIPT);
+    	R r = ps.updateDescript(user.getLong(User.ID), descript);
+    	renderJson(r);
+    }
+    
+    
+    public void updateBgPhoto(){
+    	User user= UserUtil.getCurrentUser(getPara("token"),"ios");
+    	String bgPhoto = getPara(Fair.BG_PHOTO);
+    	R r = ps.updateBgPhoto(user.getLong(User.ID), bgPhoto);
+    	renderJson(r);
+    }
+    
+    
+    public void updateBirthday(){
+    	User user= UserUtil.getCurrentUser(getPara("token"),"ios");
+    	String birthday = getPara(Fair.BIRTHDAY);
+    	R r = ps.updateBirthday(user.getLong(User.ID), birthday);
+    	renderJson(r);
+    }
+    
+    
+    public void updateHonners(){
+    	String honners = getPara("honners");
+    	String icon = getPara("honnerIndex");
+        if(StringUtils.isNotEmpty(icon)){
+        	icon = icon.substring(icon.lastIndexOf("/")+1);
         }
+    	User user= UserUtil.getCurrentUser(getPara("token"),"ios");
+    	R r = ps.updateHonners(user.getLong(User.ID),honners,icon);
+    	renderJson(r);
     }
-
+    
+    
+    @Before({Tx.class})
+    public void updateXqah(){
+    	String xqah = getPara("xqah");
+    	User user= UserUtil.getCurrentUser(getPara("token"),"ios");
+    	R r = ps.updateXqah(user.getLong(User.ID),xqah);
+    	renderJson(r);
+    }
+    
+    
+    public void updateGender(){
+    	String gender = getPara(Fair.GENDER);
+    	User user= UserUtil.getCurrentUser(getPara("token"),"ios");
+    	R r = ps.updateGender(user.getLong(User.ID), gender);
+    	renderJson(r);
+    }
+    
+    
+    public void updateAge(){
+    	int age = getParaToInt(Fair.AGE);
+    	User user= UserUtil.getCurrentUser(getPara("token"),"ios");
+    	R r = ps.updateAge(user.getLong(User.ID), age);
+    	renderJson(r);
+    }
+    
+    
+    public void updateArea(){
+    	String province = getPara(Fair.PROVINCE);
+    	String city = getPara(Fair.CITY);
+    	User user= UserUtil.getCurrentUser(getPara("token"),"ios");
+    	R r = ps.updateArea(user.getLong(User.ID), province,city);
+    	renderJson(r);
+    }
+    
+    
+    public void updateAvatar(){
+    	String photo = getPara(Fair.PHOTO);
+    	User user= UserUtil.getCurrentUser(getPara("token"),"ios");
+    	R r = ps.updateAvatar(user.getLong(User.ID),photo);
+    	renderJson(r);
+    }
+    
+    @Before({Tx.class})
+    public void updateScly(){
+    	String scly = getPara("scly");
+    	User user= UserUtil.getCurrentUser(getPara("token"),"ios");
+    	R r = ps.updateScly(user.getLong(User.ID),scly);
+    	renderJson(r);
+    }
+    
+    
+    
     /**
      * 获取兴趣爱好列表
      */
@@ -58,6 +130,15 @@ public class MobilePassportController extends BaseController{
         R r=ps.getXQAH();
         renderJson(r);
     }
+    
+    
+    /**
+     * 获取兴趣爱好列表
+     */
+    public void getHonner(){
+        R r=ps.getHonner();
+        renderJson(r);
+    }
 
     /**
      * 获取擅长领域列表
@@ -71,12 +152,12 @@ public class MobilePassportController extends BaseController{
      * 获取网红详情
      */
     public void getFairInfo(){
-//        User user= UserUtil.getCurrentUser(getPara("token"),getHeader("source"));
-//        if (user==null){
-//            renderJson(R.fail("用户不存在"));
-//            return;
-//        }
-        R r=ps.getFairInfo("19");
+        User user= UserUtil.getCurrentUser(getPara("token"),"ios");
+        if (user==null){
+            renderJson(R.fail("用户不存在"));
+            return;
+        }
+        R r=ps.getFairInfo(user.getLong(User.ID)+"");
         renderJson(r);
     }
 
@@ -84,14 +165,14 @@ public class MobilePassportController extends BaseController{
      * 设置或修改交易密码
      */
     public void setTranPwd(){
-//        User user= UserUtil.getCurrentUser(getPara("token"),getHeader("source"));
+        User user= UserUtil.getCurrentUser(getPara("token"),"ios");
         String old_pwd=getPara("old_pwd");
         String new_pwd=getPara("new_pwd");
         if (StrKit.isBlank(old_pwd) && StrKit.isBlank(new_pwd)){
             renderJson(R.fail("密码不能为空"));
             return;
         }
-        long id = 46;
+        long id = user.getLong(User.ID);
         R r=ps.setTranPwd(id,old_pwd,new_pwd);
         renderJson(r);
     }
@@ -100,7 +181,7 @@ public class MobilePassportController extends BaseController{
      * 验证旧交易密码
      */
     public void checkTranPwd(){
-        User user= UserUtil.getCurrentUser(getPara("token"),getHeader("source"));
+        User user= UserUtil.getCurrentUser(getPara("token"),"ios");
         String old_pwd=getPara("old_pwd");
         if (StrKit.isBlank(old_pwd)){
             renderJson(R.fail("密码不能为空"));
@@ -122,7 +203,7 @@ public class MobilePassportController extends BaseController{
         param.put("fans",getPara("fans"));
         param.put("screenshot",getPara("screenshot"));
         param.put("type",getPara("type"));
-        User user= UserUtil.getCurrentUser(getPara("token"),getHeader("source"));
+        User user= UserUtil.getCurrentUser(getPara("token"),"ios");
         param.put("uid",user.getLong(User.ID)+"");
         R r=ps.saveAuth(param);
         renderJson(r);
@@ -132,8 +213,8 @@ public class MobilePassportController extends BaseController{
      * 查找认证信息
      */
     public void findAuth(){
-//        User user= UserUtil.getCurrentUser(getPara("token"),getHeader("source"));
-        R r=ps.findAuth(19);
+        User user= UserUtil.getCurrentUser(getPara("token"),"ios");
+        R r=ps.findAuth(user.getLong(User.ID));
         renderJson(r);
     }
 
@@ -142,8 +223,8 @@ public class MobilePassportController extends BaseController{
      * @return
      */
     public void getClickInfo(){
-        //User user= UserUtil.getCurrentUser(getPara("token"),getHeader("source"));
-        R r=ps.getClickInfo(46);
+        User user= UserUtil.getCurrentUser(getPara("token"),"ios");
+        R r=ps.getClickInfo(user.getLong(User.ID));
         renderJson(r);
     }
 
@@ -152,8 +233,8 @@ public class MobilePassportController extends BaseController{
      * @return
      */
     public void getCvsInfo(){
-       // User user= UserUtil.getCurrentUser(getPara("token"),getHeader("source"));
-        R r=ps.getCvsInfo(46);
+        User user= UserUtil.getCurrentUser(getPara("token"),"ios");
+        R r=ps.getCvsInfo(user.getLong(User.ID));
         renderJson(r);
     }
 
@@ -162,8 +243,8 @@ public class MobilePassportController extends BaseController{
      * @return
      */
     public void center(){
-//        User user= UserUtil.getCurrentUser(getPara("token"),getHeader("source"));
-        R r=ps.center(19);
+        User user= UserUtil.getCurrentUser(getPara("token"),"ios");
+        R r=ps.center(user.getLong(User.ID));
         renderJson(r);
     }
 
@@ -171,8 +252,8 @@ public class MobilePassportController extends BaseController{
      * 获取收益数据
      */
     public void getWallet(){
-        //User user= UserUtil.getCurrentUser(getPara("token"),getHeader("source"));
-        R r=ps.getWallet(46);
+        User user= UserUtil.getCurrentUser(getPara("token"),"ios");
+        R r=ps.getWallet(user.getLong(User.ID));
         renderJson(r);
     }
 
@@ -185,8 +266,8 @@ public class MobilePassportController extends BaseController{
             renderJson(R.fail("交易密码不能为空"));
             return;
         }
-//        User user= UserUtil.getCurrentUser(getPara("token"),getHeader("source"));
-        R r=ps.checkTranPwd(tranPwd,46);
+        User user= UserUtil.getCurrentUser(getPara("token"),"ios");
+        R r=ps.checkTranPwd(tranPwd,user.getLong(User.ID));
         renderJson(r);
     }
 
@@ -198,7 +279,7 @@ public class MobilePassportController extends BaseController{
         String money = getPara("money");
         String bankId = getPara("bankId");
         String wdToken = getPara("wdToken");
-//        User user= UserUtil.getCurrentUser(getPara("token"),getHeader("source"));
+        User user= UserUtil.getCurrentUser(getPara("token"),"ios");
         if (StrKit.isBlank(wdToken)){
             renderJson(R.fail("wdToken不能为空"));
             return;
@@ -215,7 +296,7 @@ public class MobilePassportController extends BaseController{
             renderJson(R.fail("提现金额格式不正确"));
             return;
         }
-        R r=ps.withdraw(money,46,wdToken,bankId);
+        R r=ps.withdraw(money,user.getLong(User.ID),wdToken,bankId);
         renderJson(r);
     }
 
@@ -224,8 +305,8 @@ public class MobilePassportController extends BaseController{
      */
     public void savePhoto(){
         String url = getPara("url");
-        User user= UserUtil.getCurrentUser(getPara("token"),getHeader("source"));
-        long uid = user.get(User.ID);
+        User user= UserUtil.getCurrentUser(getPara("token"),"ios");
+        long uid =user.getLong(User.ID);
         R r=ps.savePhoto(uid,url);
         renderJson(r);
     }
@@ -234,18 +315,20 @@ public class MobilePassportController extends BaseController{
      * 获取网红照片
      */
     public void getPhoto(){
-        User user= UserUtil.getCurrentUser(getPara("token"),getHeader("source"));
-        long uid = user.get(User.ID);
+        User user= UserUtil.getCurrentUser(getPara("token"),"ios");
+        long uid =user.getLong(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);
+        User user= UserUtil.getCurrentUser(getPara("token"),"ios");
+        long uid = user.getLong(User.ID);
         String id = getPara("id");
         R r=ps.delPhoto(uid,id);
         renderJson(r);
@@ -261,13 +344,13 @@ public class MobilePassportController extends BaseController{
     
     
     public void isSetTransPwd(){
-    	boolean result = ps.isSetTransPwd(46);
+    	User user= UserUtil.getCurrentUser(getPara("token"),"ios");
+    	boolean result = ps.isSetTransPwd(user.getLong(User.ID));
     	R r = R.ok("成功");
     	r.p("isSetTransPwd",result);
     	renderJson(r);
     }
     
-    
     public void uploadAvatar() throws Exception {
         UploadFile upfile=getFile();
         try {
@@ -280,6 +363,15 @@ public class MobilePassportController extends BaseController{
         }
     }
 
-
-
+    public void deleteHonner(){
+    	int id = getParaToInt("id");
+    	renderJson(ps.deleteHonner(id));
+    }
+    
+    
+    public void queryHonnersOfMine(){
+    	User user= UserUtil.getCurrentUser(getPara("token"),"ios");
+        long  uid = user.getLong(User.ID);
+        renderJson(ps.queryHonnersOfMine(uid));
+    }
 }
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 d6552efd81dce9325412311725f95935b673e33a..f5bcc03cfafc37020e1c95afbce1064cb2bb0cea 100644
--- a/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportService.java
+++ b/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportService.java
@@ -1,12 +1,14 @@
 package com.tianpengtech.front.mobile.passport;
 
-
+import com.jfinal.aop.Before;
 import com.jfinal.kit.HashKit;
 import com.jfinal.kit.Ret;
 import com.jfinal.kit.StrKit;
 import com.jfinal.plugin.activerecord.Db;
 import com.jfinal.plugin.activerecord.Record;
+import com.jfinal.plugin.activerecord.tx.Tx;
 import com.jfinal.plugin.ehcache.CacheKit;
+import com.tianpengtech.common.GlobalConfigConstant;
 import com.tianpengtech.common.model.fair.Fair;
 import com.tianpengtech.common.model.fairauth.FairAuth;
 import com.tianpengtech.common.model.fairext.FairExt;
@@ -25,566 +27,877 @@ import com.tianpengtech.front.web.fair.FairService;
 
 import java.util.*;
 
+import org.apache.commons.lang.StringUtils;
+
 /**
  * Created by ggd on 2017/7/24 0024.
  */
 public class MobilePassportService {
-    public static MobilePassportService me = new MobilePassportService();
-    private static FairExt fairExtDao = FairExt.dao;
-    private static FairService fairService = new FairService();
-    private static FairService fs = new FairService();
-    private static FairAuth authDao= FairAuth.dao;
-    private static final String TRAN_PWD_CACHE_KEY="tranPwd_";
-    private static MobileBanknoService mbs = MobileBanknoService.me;
-    /**
-     * 保存网红信息
-     * @param param
-     * @return
-     */
-    public R saveOrUpdate(Map<String,String> param) throws Exception{
-        try{
-            //获取荣誉信息
-            String honner= param.get("honners");
-            //获取兴趣爱好
-            String xqah=  param.get("xqah");
-            //获取擅长领域
-            String scly=  param.get("scly");
-
-            String photo =  param.get("photo");
-            String nickName =  param.get("nick_name");
-            String gender =  param.get("gender");
-            String age =  param.get("age");
-            String province =  param.get("province");
-            String city =  param.get("city");
-            Set<String> ext_set = new HashSet<>();
-            //保存荣誉信息
-            if (StrKit.notBlank(honner)){
-                String[] honners=honner.split(",");
-                for (String h: honners) {
-                    h=h.trim();
-                    Ret ret = isExtExist(h,FairExt.TYPE_HONNER);
-                    if (ret.isOk()){
-                        ext_set.add(ret.getInt(FairExt.ID)+"");
-                        continue;
-                    }
-                    FairExt ext=new FairExt();
-                    ext.set(FairExt.ISSYSTEM,FairExt.ISSYSTEM_NO);
-                    ext.set(FairExt.NAME,h);
-                    ext.set(FairExt.TYPE,FairExt.TYPE_HONNER);
-                    ext.save();
-                    ext_set.add(ext.getInt(FairExt.ID)+"");
-                }
-            }
-            //保存兴趣爱好
-            if (StrKit.notBlank(xqah)){
-                String[] xqahs=xqah.split(",");
-                for (String h: xqahs) {
-                    h=h.trim();
-                    if (U.isInteger(h)){
-                        ext_set.add(h);
-                        continue;
-                    }
-                    Ret ret = isExtExist(h,FairExt.TYPE_XQAH);
-                    if (ret.isOk()){
-                        ext_set.add(ret.getInt(FairExt.ID)+"");
-                        continue;
-                    }
-                    FairExt ext=new FairExt();
-                    ext.set(FairExt.ISSYSTEM,FairExt.ISSYSTEM_NO);
-                    ext.set(FairExt.NAME,h);
-                    ext.set(FairExt.TYPE,FairExt.TYPE_XQAH);
-                    ext.save();
-                    ext_set.add(ext.getInt(FairExt.ID)+"");
-                }
-            }
-            //保存擅长领域
-            if (StrKit.notBlank(scly)){
-                String[] sclys=scly.split(",");
-                for (String h: sclys) {
-                    h=h.trim();
-                    if (U.isInteger(h)){
-                        ext_set.add(h);
-                        continue;
-                    }
-                    Ret ret = isExtExist(h,FairExt.TYPE_SCLY);
-                    if (ret.isOk()){
-                        ext_set.add(ret.getInt(FairExt.ID)+"");
-                        continue;
-                    }
-                    FairExt ext=new FairExt();
-                    ext.set(FairExt.ISSYSTEM,FairExt.ISSYSTEM_NO);
-                    ext.set(FairExt.NAME,h);
-                    ext.set(FairExt.TYPE,FairExt.TYPE_SCLY);
-                    ext.save();
-                    ext_set.add(ext.getInt(FairExt.ID)+"");
-                }
-            }
-
-            Fair fair = new Fair();
-            if (StrKit.notBlank(photo)){
-                fair.set(Fair.PHOTO,photo);
-            }
-            if (StrKit.notBlank(nickName)){
-                fair.set(Fair.NICK_NAME,nickName);
-            }
-            if (StrKit.notBlank(gender)){
-                fair.set(Fair.GENDER,gender);
-            }
-            if (StrKit.notBlank(age)){
-                fair.set(Fair.AGE,age);
-            }
-            if (StrKit.notBlank(province)){
-                fair.set(Fair.PROVINCE,province);
-            }
-            if (StrKit.notBlank(city)){
-                fair.set(Fair.CITY,city);
-            }
-
-
-
-            String id = param.get("id");
-            if (StrKit.notBlank(id)){
-                fair.set(Fair.ID,id);
-                fair.update();
-            }else{
-                fair.set(Fair.ID,param.get("uid"));
-                fair.save();
-                id=fair.getLong(Fair.ID)+"";
-            }
-            if (ext_set.size()>0){
-                Db.update("delete from fair_wh_ext_join where wh_id=? ",id);
-            }
-            //保存关联属性
-            final String wh_id=id;
-            ext_set.forEach( ext ->{
-                Record record = new Record();
-                record.set("wh_id",wh_id);
-                record.set("ext_id",ext);
-                Db.save("fair_wh_ext_join",record);
-            });
-            CacheKit.remove(FairExt.CACHE_NAME,"static_"+FairExt.TYPE_HONNER+"_"+wh_id);
-            CacheKit.remove(FairExt.CACHE_NAME,"static_"+FairExt.TYPE_XQAH+"_"+wh_id);
-            CacheKit.remove(FairExt.CACHE_NAME,"static_"+FairExt.TYPE_SCLY+"_"+wh_id);
-            return R.ok("成功");
-        }catch (Exception e){
-            e.printStackTrace();
-            throw e;
-        }
-
-    }
-
-    /**
-     * 获取详情
-     * @param fairId
-     * @return
-     */
-    public R getFairInfo(String fairId){
-        Fair fair = fairService.findById(Integer.parseInt(fairId));
-        if (fair==null){
-            R r=R.ok("用户不存在");
-            r.p("fair","");
-            return r;
-        }
-        
-        Record province = RegionService.me.findById(fair.getStr(Fair.PROVINCE));
-        Record city = RegionService.me.findById(fair.getStr(Fair.CITY));
-        
-        fair.put("provinceStr",province.getStr("REGION_NAME"));
-        fair.put("cityStr",city.getStr("REGION_NAME"));
-        fair.remove(Fair.DELETETAG);
-        fair.remove(Fair.ID_CARD);
-        String tran=fair.get(Fair.TRAN_PWD);
-        fair.remove(Fair.TRAN_PWD);
-        fair.put(Fair.TRAN_PWD,tran==null?"0":"1"); //交易密码 0 未设置 1已设置
-        fair.put("xqah",fair.getExt(FairExt.TYPE_XQAH));
-        fair.put("scly",fair.getExt(FairExt.TYPE_SCLY));
-        fair.put("honner",fair.getExt(FairExt.TYPE_HONNER));
-        R r = R.ok("成功");
-        r.p("fair",fair);
-        return r;
-    }
-
-
-    /**
-     * 获取系统兴趣爱好
-     * @return
-     */
-    public R getXQAH(){
-        String sql = String.format("select %s,%s from %s where %s=? and %s=?",FairExt.ID,FairExt.NAME,fairExtDao.tableName(),FairExt.ISSYSTEM,FairExt.TYPE);
-        List<FairExt> list=fairExtDao.findByCache(FairExt.CACHE_NAME,"static_xqah",sql,FairExt.ISSYSTEM_YES,FairExt.TYPE_XQAH);
-        R r = R.ok("成功");
-        r.p("list",list);
-        return r;
-    }
-
-    /**
-     * 获取系统擅长领域
-     * @return
-     */
-    public R getSCLY(){
-        String sql = String.format("select %s,%s from %s where %s=? and %s=?",FairExt.ID,FairExt.NAME,fairExtDao.tableName(),FairExt.ISSYSTEM,FairExt.TYPE);
-        List<FairExt> list=fairExtDao.findByCache(FairExt.CACHE_NAME,"static_scly",sql,FairExt.ISSYSTEM_YES,FairExt.TYPE_SCLY);
-        R r = R.ok("成功");
-        r.p("list",list);
-        return r;
-    }
-
-    /**
-     * 判断自定义属性是否存在
-     * @param name
-     * @param type
-     * @return
-     */
-    private Ret isExtExist(String name, int type){
-        String sql=String.format("select id from %s where %s=? and %s=? and %s=?",fairExtDao.tableName(),FairExt.TYPE,FairExt.ISSYSTEM,FairExt.NAME);
-        FairExt ext=fairExtDao.findFirstByCache(FairExt.CACHE_NAME,"static_"+type+"_"+name,sql,type,FairExt.ISSYSTEM_NO,name);
-        if (ext==null){
-            return Ret.fail();
-        }else{
-            Ret r=Ret.ok();
-            r.put("id",ext.getInt(FairExt.ID));
-            return r;
-        }
-    }
-
-    /**
-     * 设置交易密码
-     * @return
-     */
-    public R setTranPwd(long uid,String old_pwd,String new_pwd){
-        Fair fair=fs.findById(Integer.parseInt(uid+""));
-        User user = User.dao.findById(uid);
-        //如果旧密码为空则是设置交易密码
-        String tranPwd=fair.get(Fair.TRAN_PWD);
-        if (StrKit.isBlank(tranPwd)){
-            String salt = user.get(User.SALT);
-            String hashedPass = HashKit.sha256(salt + new_pwd);
-            fair.set(Fair.TRAN_PWD,hashedPass);
-            fair.update();
-            CacheKit.remove(Fair.FAIR_CACHE_NAME,"fair_info_"+uid);
-            return R.ok();
-        }else{
-            if (StrKit.isBlank(old_pwd)){
-                return R.fail("旧密码不能为空");
-            }else{
-                String salt = user.get(User.SALT);
-                String hashedPass = HashKit.sha256(salt + old_pwd);
-                if (tranPwd.toUpperCase().equals(hashedPass.toUpperCase())){
-                    String hashedPass_new = HashKit.sha256(salt + new_pwd);
-                    fair.set(Fair.TRAN_PWD,hashedPass_new);
-                    fair.update();
-                    CacheKit.remove(Fair.FAIR_CACHE_NAME,"fair_info_"+uid);
-                    return R.ok();
-                }else{
-                    return R.fail("旧密码不正确");
-                }
-            }
-        }
-    }
-
-    /**
-     * 验证旧交易密码是否正确
-     * @param uid
-     * @param old_pwd
-     * @return
-     */
-    public R checkTranPwd(long uid,String old_pwd){
-        Fair fair=fs.findById(Integer.parseInt(uid+""));
-        User user = User.dao.findById(uid);
-        String tranPwd=fair.get(Fair.TRAN_PWD);
-        String salt = user.get(User.SALT);
-        String hashedPass = HashKit.sha256(salt + old_pwd);
-        if (tranPwd.toUpperCase().equals(hashedPass.toUpperCase())){
-            return R.ok("密码正确");
-        }else{
-            return R.fail("密码错误");
-        }
-    }
-
-    /**
-     * 保存认证信息
-     * @param param
-     * @return
-     */
-    public R saveAuth(Map<String,String> param){
-        String username=param.get("user_name");
-        String nickName=param.get("nick_name");
-        String fans=param.get("fans");
-        String screen=param.get("screenshot");
-        String type=param.get("type");
-        String uid=param.get("uid");
-        FairAuth fa = new FairAuth();
-        fa.set(FairAuth.USER_NAME,username);
-        fa.set(FairAuth.NICK_NAME,nickName);
-        fa.set(FairAuth.FANS,fans);
-        fa.set(FairAuth.SCREENSHOT,screen);
-        fa.set(FairAuth.TYPE,type);
-        fa.set(FairAuth.STATUS,FairAuth.STATUS_APPROVING);
-        fa.set(FairAuth.WH_ID,uid);
-        fa.save();
-        return R.ok();
-    }
-
-    /**
-     * 获取认证信息列表
-     * @param uid
-     * @return
-     */
-    public R findAuth(long uid){
-        String sql = String.format("select * from %s where %s=? and %s=?",authDao.tableName(),FairAuth.DELETETAG,FairAuth.WH_ID);
-        List<FairAuth> list=authDao.find(sql,0,uid);
-        list.forEach( fa ->{
-            fa.remove(FairAuth.DELETETAG);
-            fa.remove(FairAuth.WH_ID);
-        });
-        R r=R.ok();
-        r.p("auths",list);
-        return r;
-    }
-
-
-    /**
-     * 获取点击数详情
-     * @return
-     */
-    public R getClickInfo(long id){
-        List<TaskWh> order=TaskWh.dao.findByCache(TaskWh.CACHE_NAME_NO,"cache_taskwh_click_no","SELECT wh_id, sum(click_num) FROM "+TaskWh.dao.tableName()+" GROUP BY wh_id ORDER BY sum(click_num) desc");
-        int no=0;
-        for (int i = 0; i <order.size() ; i++) {
-            TaskWh tw=order.get(i);
-            if (tw.getInt(TaskWh.WH_ID).intValue()==id){
-                no=(i+1);
-                break;
-            }
-        }
-        R r = R.ok();
-        r.p("no",no);
-        //获取点击详情
-        List<TaskWh> taskwhs=TaskWh.dao.find("select task.`status`,task.`task_start_time`,task.`task_end_time`,task.id,task.task_title,tw.click_num from "+TaskWh.dao.tableName()+" tw LEFT JOIN "+ Task.dao.tableName()+" task  on tw.task_id=task.id where tw.deletetag=0 and tw.wh_id=?",id);
-        long sum=0;
-        for (TaskWh taskWh:taskwhs) {
-            sum+=(taskWh.getInt("click_num"));
-        }
-        r.p("list",taskwhs);
-        r.p("sum",sum);
-        return r;
-    }
-
-
-    /**
-     * 获取转化数详情
-     * @return
-     */
-    public R getCvsInfo(long id){
-        List<TaskWh> order=TaskWh.dao.findByCache(TaskWh.CACHE_NAME_NO,"cache_taskwh_click_no","SELECT wh_id, sum(cvs_num) FROM "+TaskWh.dao.tableName()+" GROUP BY wh_id ORDER BY sum(cvs_num) desc");
-        int no=0;
-        for (int i = 0; i <order.size() ; i++) {
-            TaskWh tw=order.get(i);
-            if (tw.getInt(TaskWh.WH_ID).intValue()==id){
-                no=(i+1);
-                break;
-            }
-        }
-        R r = R.ok();
-        r.p("no",no);
-        //获取转化详情
-        List<TaskWh> taskwhs=TaskWh.dao.find("select task.`status`,task.`task_start_time`,task.`task_end_time`,task.id,task.task_title,tw.cvs_num from "+TaskWh.dao.tableName()+" tw LEFT JOIN "+ Task.dao.tableName()+" task  on tw.task_id=task.id where tw.deletetag=0 and tw.wh_id=?",id);
-        long sum=0;
-        for (TaskWh taskWh:taskwhs) {
-            sum+=(taskWh.getInt("cvs_num"));
-        }
-        r.p("list",taskwhs);
-        r.p("sum",sum);
-        return r;
-    }
-
-    /**
-     * 个人中心
-     * @param id
-     * @return
-     */
-    public R center(long id){
-        Fair fair=Fair.dao.findFirst("select * from "+Fair.dao.tableName()+" where " +Fair.DELETETAG + "=? and "+Fair.ID+"=?",0,id);
-        if (fair==null){
-            return R.fail("用户不存在");
-        }
-        R r=R.ok();
-        r.p("status",fair.get(Fair.STATUS));
-        r.p("click",fair.getClick());
-        r.p("cvs",fair.getCvs());
-        return r;
-    }
-
-    /**
-     * 我的钱包
-     * @return
-     */
-    public R getWallet(long id){
-        //获取可用余额    昨日收益 总收益
-        Fair fair=Fair.dao.findFirst("select * from "+Fair.dao.tableName()+" where " +Fair.DELETETAG + "=? and "+Fair.ID+"=?",0,id);
-        if (fair==null){
-            return R.fail("用户不存在");
-        }
-        R r=R.ok();
-        r.p("money",fair.get(Fair.MONEY));
-        MoneyLog log=MoneyLog.dao.findFirst("select SUM(money) as money from "+MoneyLog.dao.tableName()+" where DATE_FORMAT(create_time, '%Y%m%d')=DATE_FORMAT(?, '%Y%m%d') and wh_id=?",getYesterDay(),id);
-        if (log==null){
-            r.p("yesterday",0);
-        }else{
-            r.p("yesterday",log.get("money"));
-        }
-        MoneyLog sumlog=MoneyLog.dao.findFirst("select SUM(money) as money from "+MoneyLog.dao.tableName()+" where wh_id=?",id);
-        if (log==null){
-            r.p("all",0);
-        }else{
-            r.p("all",sumlog.get("money"));
-        }
-        return r;
-    }
-
-    /**
-     * 获取昨天
-     * @return
-     */
-    private Date getYesterDay(){
-        Calendar cal=Calendar.getInstance();
-        cal.add(Calendar.DATE,-1);
-        Date time=cal.getTime();
-        return time;
-    }
-
-    
-    public boolean isSetTransPwd(int uid){
-    	Fair fair=fs.findById(Integer.parseInt(uid+""));
-    	String tran_pwd = fair.getStr(Fair.TRAN_PWD);
-    	return (tran_pwd==null)?false:true;
-    }
-    
-    
-    /**
-     * 验证交易密码
-     * @param tranPwd
-     * @param uid
-     * @return
-     */
-    public R checkTranPwd(String tranPwd,long uid){
-        Fair fair=fs.findById(Integer.parseInt(uid+""));
-        User user = User.dao.findById(uid);
-        String nowtranPwd=fair.get(Fair.TRAN_PWD); //数据库中的交易密码
-        String salt = user.get(User.SALT);
-        String hashedPass = HashKit.sha256(salt + tranPwd); //传入的交易密码加密
-        if (nowtranPwd.toUpperCase().equals(hashedPass.toUpperCase())){
-            R r=R.ok("密码验证成功");
-            String token = TokenUtil.getToken(); //在提交提现请求时 需携带此token
-            CacheKit.put(User.AUTH_CODE_CACHENAME,TRAN_PWD_CACHE_KEY+uid,token); //缓存时间5分钟
-            r.p("token", token);
-            return r;
-        }else{
-            return R.fail("交易密码不正确");
-        }
-    }
-
-    /**
-     * 提现请求
-     * @return
-     */
-    public R withdraw(String money,long uid,String token,String bankId){
-        if (!mbs.isBankNoExists(bankId)){
-            return R.fail("银行卡不存在");
-        }
-        Fair fair=fs.findById(Integer.parseInt(uid+""));
-        Double yue=fair.getDouble(Fair.MONEY); //余额
-        double tixian=Double.parseDouble(money); //提现金额
-        if (yue ==null || tixian>yue.doubleValue()){
-            return R.fail("提现金额超出可用余额");
-        }
-        String cacheToken=CacheKit.get(User.AUTH_CODE_CACHENAME,TRAN_PWD_CACHE_KEY+uid);
-        if (token.equals(cacheToken)){
-            CacheKit.remove(User.AUTH_CODE_CACHENAME,TRAN_PWD_CACHE_KEY+uid);
-            fair.set(Fair.MONEY,yue.doubleValue()-tixian);
-            if(fair.update()){
-                FairWithdraw fw = new FairWithdraw();
-                fw.set(FairWithdraw.BANK_ID,bankId);
-                fw.set(FairWithdraw.MONEY,tixian);
-                fw.set(FairWithdraw.WH_ID,uid);
-                if (fw.save()){
-                    MoneyLog ml = new MoneyLog();
-                    ml.set(MoneyLog.WH_ID,uid);
-                    ml.set(MoneyLog.OPERID,fw.get(FairWithdraw.ID));
-                    ml.set(MoneyLog.STATE, MoneyLog.STATE_REDUCE);
-                    ml.set(MoneyLog.TYPE,MoneyLog.TYPE_TIXIAN);
-                    ml.set(MoneyLog.MONEY,tixian);
-                    ml.set(MoneyLog.DESCRIPTION,"用户提现,金额:"+tixian);
-                    ml.save();
-                    return R.ok();
-                }else {
-                    return R.fail("提现失败");
-                }
-            }else{
-                return R.fail("提现失败");
-            }
-
-        }else {
-            return R.fail("token不正确");
-        }
-
-    }
-
-
-    /**
-     * 保存网红图片
-     * @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) {
-    	System.out.println(HashKit.sha256("zjweNjIjDf5vxOnUGeuffGDnSMa2z37S" + "123456"));
+	public static MobilePassportService me = new MobilePassportService();
+	private static FairExt fairExtDao = FairExt.dao;
+	private static FairService fairService = new FairService();
+	private static FairService fs = new FairService();
+	private static FairAuth authDao = FairAuth.dao;
+	private static final String TRAN_PWD_CACHE_KEY = "tranPwd_";
+	private static MobileBanknoService mbs = MobileBanknoService.me;
+
+	private static String domain = GlobalConfigConstant.DOMAIN;
+
+	public R updateNickName(long id, String nickName) {
+		R r = null;
+		if (StringUtils.isEmpty(nickName)) {
+			r = R.fail("用户昵称不能为空");
+		} else {
+			Fair fair = new Fair();
+			fair.set(Fair.ID, id);
+			fair.set(Fair.NICK_NAME, nickName);
+			fair.update();
+			r = R.ok("操作成功");
+		}
+		return r;
+	}
+
+	public R updateDescript(long id, String descript) {
+		R r = null;
+		if (StringUtils.length(descript) > 50) {
+			r = R.fail("个人信息说明不能超过50个字符");
+		} else {
+			Fair fair = new Fair();
+			fair.set(Fair.ID, id);
+			fair.set(Fair.DESCRIPT, descript);
+			fair.update();
+			r = R.ok("操作成功");
+		}
+		return r;
+	}
+
+	public R updateBgPhoto(long id, String bgPhoto) {
+		R r = null;
+		if (StringUtils.isEmpty(bgPhoto)) {
+			r = R.fail("设置图片不能为空");
+		} else {
+			Fair fair = new Fair();
+			fair.set(Fair.ID, id);
+			fair.set(Fair.BG_PHOTO, bgPhoto);
+			fair.update();
+			r = R.ok("操作成功");
+		}
+		return r;
+	}
+
+	public R updateBirthday(long id, String birthDay) {
+		R r = null;
+		if (StringUtils.isEmpty(birthDay)) {
+			r = R.fail("生日信息不能为空");
+		} else {
+			Fair fair = new Fair();
+			fair.set(Fair.ID, id);
+			fair.set(Fair.BIRTHDAY, birthDay);
+			fair.update();
+			r = R.ok("操作成功");
+		}
+		return r;
+	}
+
+	public R updateGender(long id, String gender) {
+		R r;
+		if (StringUtils.isEmpty(gender)) {
+			r = R.fail("性别不能为空");
+		} else {
+			Fair fair = new Fair();
+			fair.set(Fair.ID, id);
+			fair.set(Fair.GENDER, gender);
+			fair.update();
+			r = R.ok("操作成功");
+		}
+		return r;
+	}
+
+	public R updateAge(long id, int age) {
+		R r;
+		if (age <= 0 || age > 99) {
+			r = R.fail("年龄范围只能是0-99之间");
+		} else {
+			Fair fair = new Fair();
+			fair.set(Fair.ID, id);
+			fair.set(Fair.AGE, age);
+			fair.update();
+			r = R.ok("操作成功");
+		}
+		return r;
+	}
+
+	public R updateArea(long id, String province, String city) {
+
+		R r;
+		if (StringUtils.isEmpty(province)) {
+			r = R.fail("省份不能为空");
+		} else if (StringUtils.isEmpty(city)) {
+			r = R.fail("城市不能为空");
+		} else {
+			Fair fair = new Fair();
+			fair.set(Fair.ID, id);
+			fair.set(Fair.PROVINCE, province);
+			fair.set(Fair.CITY, city);
+			fair.update();
+			r = R.ok("操作成功");
+		}
+		return r;
+	}
+
+	public R updateAvatar(long id, String photo) {
+
+		R r;
+		if (StringUtils.isEmpty(photo)) {
+			r = R.fail("头像不能为空");
+		} else {
+			Fair fair = new Fair();
+			fair.set(Fair.ID, id);
+			fair.set(Fair.PHOTO, photo);
+			fair.update();
+			r = R.ok("操作成功");
+		}
+		return r;
+	}
+
+	public R updateHonners(long wh_id, String honner, String honnerIndex) {
+		R r;
+		Set<String> ext_set = new HashSet<>();
+		if (StringUtils.isEmpty(honner)) {
+			r = R.fail("荣耀信息不能为空");
+		} else {
+			String[] honners = honner.split(",");
+			for (String h : honners) {
+				h = h.trim();
+				Ret ret = isExtExist(h, FairExt.TYPE_HONNER);
+				if (ret.isOk()) {
+					ext_set.add(ret.getInt(FairExt.ID) + "");
+					continue;
+				}
+				FairExt ext = new FairExt();
+				ext.set(FairExt.ISSYSTEM, FairExt.ISSYSTEM_NO);
+				ext.set(FairExt.NAME, honnerIndex);
+				ext.set(FairExt.EXT, h);
+				ext.set(FairExt.WH_ID, wh_id);
+				ext.set(FairExt.TYPE, FairExt.TYPE_HONNER);
+				ext.save();
+				ext_set.add(ext.getInt(FairExt.ID) + "");
+			}
+			if (ext_set.size() > 0) {
+				Db.update("delete from fair_wh_ext_join where wh_id=? ", wh_id);
+			}
+			ext_set.forEach(ext -> {
+				Record record = new Record();
+				record.set("wh_id", wh_id);
+				record.set("ext_id", ext);
+				Db.save("fair_wh_ext_join", record);
+			});
+			CacheKit.remove(FairExt.CACHE_NAME, "static_" + FairExt.TYPE_HONNER + "_" + wh_id);
+			r = R.ok("操作成功");
+		}
+		return r;
+	}
+
+	public R updateXqah(long wh_id, String xqah) {
+		R r;
+		List<FairExt> records = new ArrayList<FairExt>();
+		if (StringUtils.isEmpty(xqah)) {
+			r = R.fail("兴趣爱好信息不能为空");
+		} else {
+			String[] xqahs = xqah.split(",");
+			for (String h : xqahs) {
+				FairExt ext = new FairExt();
+				ext.set(FairExt.ISSYSTEM, FairExt.ISSYSTEM_NO);
+				ext.set(FairExt.NAME, h);
+				ext.set(FairExt.TYPE, FairExt.TYPE_XQAH);
+				ext.set(FairExt.WH_ID,wh_id);
+				records.add(ext);
+			}
+			deleteExt(wh_id,FairExt.TYPE_XQAH);
+			Db.batchSave(records, records.size());
+			r = R.ok("操作成功");
+		}
+		return r;
+	}
+
+	public R updateScly(long wh_id, String scly) {
+		R r;
+		if (StringUtils.isEmpty(scly)) {
+			r = R.fail("擅长领域不能为空");
+		} else {
+			String[] sclys = scly.split(",");
+			List<FairExt> records = new ArrayList<FairExt>();
+			for (String h : sclys) {
+				FairExt ext = new FairExt();
+				ext.set(FairExt.ISSYSTEM, FairExt.ISSYSTEM_NO);
+				ext.set(FairExt.NAME, h);
+				ext.set(FairExt.TYPE, FairExt.TYPE_SCLY);
+				ext.set(FairExt.WH_ID, wh_id);
+				records.add(ext);
+			}
+			deleteExt(wh_id,FairExt.TYPE_SCLY);
+			Db.batchSave(records, records.size());
+			r = R.ok("操作成功");
+		}
+		return r;
+	}
+
+	/**
+	 * 保存网红信息
+	 * 
+	 * @param param
+	 * @return
+	 */
+	public R saveOrUpdate(Map<String, String> param) throws Exception {
+		try {
+			// 获取荣誉信息
+			String honner = param.get("honners");
+			// 获取兴趣爱好
+			String xqah = param.get("xqah");
+			// 获取擅长领域
+			String scly = param.get("scly");
+
+			String photo = param.get("photo");
+			String nickName = param.get("nick_name");
+			String gender = param.get("gender");
+			String age = param.get("age");
+			String province = param.get("province");
+			String city = param.get("city");
+			Set<String> ext_set = new HashSet<>();
+			// 保存荣誉信息
+			if (StrKit.notBlank(honner)) {
+				String[] honners = honner.split(",");
+				for (String h : honners) {
+					h = h.trim();
+					Ret ret = isExtExist(h, FairExt.TYPE_HONNER);
+					if (ret.isOk()) {
+						ext_set.add(ret.getInt(FairExt.ID) + "");
+						continue;
+					}
+					FairExt ext = new FairExt();
+					ext.set(FairExt.ISSYSTEM, FairExt.ISSYSTEM_NO);
+					ext.set(FairExt.NAME, h);
+					ext.set(FairExt.TYPE, FairExt.TYPE_HONNER);
+					ext.save();
+					ext_set.add(ext.getInt(FairExt.ID) + "");
+				}
+			}
+			// 保存兴趣爱好
+			if (StrKit.notBlank(xqah)) {
+				String[] xqahs = xqah.split(",");
+				for (String h : xqahs) {
+					h = h.trim();
+					if (U.isInteger(h)) {
+						ext_set.add(h);
+						continue;
+					}
+					Ret ret = isExtExist(h, FairExt.TYPE_XQAH);
+					if (ret.isOk()) {
+						ext_set.add(ret.getInt(FairExt.ID) + "");
+						continue;
+					}
+					FairExt ext = new FairExt();
+					ext.set(FairExt.ISSYSTEM, FairExt.ISSYSTEM_NO);
+					ext.set(FairExt.NAME, h);
+					ext.set(FairExt.TYPE, FairExt.TYPE_XQAH);
+					ext.save();
+					ext_set.add(ext.getInt(FairExt.ID) + "");
+				}
+			}
+			// 保存擅长领域
+			if (StrKit.notBlank(scly)) {
+				String[] sclys = scly.split(",");
+				for (String h : sclys) {
+					h = h.trim();
+					if (U.isInteger(h)) {
+						ext_set.add(h);
+						continue;
+					}
+					Ret ret = isExtExist(h, FairExt.TYPE_SCLY);
+					if (ret.isOk()) {
+						ext_set.add(ret.getInt(FairExt.ID) + "");
+						continue;
+					}
+					FairExt ext = new FairExt();
+					ext.set(FairExt.ISSYSTEM, FairExt.ISSYSTEM_NO);
+					ext.set(FairExt.NAME, h);
+					ext.set(FairExt.TYPE, FairExt.TYPE_SCLY);
+					ext.save();
+					ext_set.add(ext.getInt(FairExt.ID) + "");
+				}
+			}
+
+			Fair fair = new Fair();
+			if (StrKit.notBlank(photo)) {
+				fair.set(Fair.PHOTO, photo);
+			}
+			if (StrKit.notBlank(nickName)) {
+				fair.set(Fair.NICK_NAME, nickName);
+			}
+			if (StrKit.notBlank(gender)) {
+				fair.set(Fair.GENDER, gender);
+			}
+			if (StrKit.notBlank(age)) {
+				fair.set(Fair.AGE, age);
+			}
+			if (StrKit.notBlank(province)) {
+				fair.set(Fair.PROVINCE, province);
+			}
+			if (StrKit.notBlank(city)) {
+				fair.set(Fair.CITY, city);
+			}
+
+			String id = param.get("id");
+			if (StrKit.notBlank(id)) {
+				fair.set(Fair.ID, id);
+				fair.update();
+			} else {
+				fair.set(Fair.ID, param.get("uid"));
+				fair.save();
+				id = fair.getLong(Fair.ID) + "";
+			}
+			if (ext_set.size() > 0) {
+				Db.update("delete from fair_wh_ext_join where wh_id=? ", id);
+			}
+			// 保存关联属性
+			final String wh_id = id;
+			ext_set.forEach(ext -> {
+				Record record = new Record();
+				record.set("wh_id", wh_id);
+				record.set("ext_id", ext);
+				Db.save("fair_wh_ext_join", record);
+			});
+			CacheKit.remove(FairExt.CACHE_NAME, "static_" + FairExt.TYPE_HONNER + "_" + wh_id);
+			CacheKit.remove(FairExt.CACHE_NAME, "static_" + FairExt.TYPE_XQAH + "_" + wh_id);
+			CacheKit.remove(FairExt.CACHE_NAME, "static_" + FairExt.TYPE_SCLY + "_" + wh_id);
+			return R.ok("成功");
+		} catch (Exception e) {
+			e.printStackTrace();
+			throw e;
+		}
+
+	}
+
+	/**
+	 * 获取详情
+	 * 
+	 * @param fairId
+	 * @return
+	 */
+	public R getFairInfo(String fairId) {
+		Fair fair = fairService.findById(Integer.parseInt(fairId));
+		if (fair == null) {
+			R r = R.ok("用户不存在");
+			r.p("fair", "");
+			return r;
+		}
+
+		Record province = RegionService.me.findById(fair.getStr(Fair.PROVINCE));
+		Record city = RegionService.me.findById(fair.getStr(Fair.CITY));
+
+		String provinceStr = (province == null) ? "" : province.getStr("REGION_NAME");
+		String cityStr = (city == null) ? "" : city.getStr("REGION_NAME");
+		fair.put("provinceStr", provinceStr);
+		fair.put("cityStr", cityStr);
+		fair.remove(Fair.DELETETAG);
+		fair.remove(Fair.ID_CARD);
+		String tran = fair.get(Fair.TRAN_PWD);
+		fair.remove(Fair.TRAN_PWD);
+		fair.put(Fair.TRAN_PWD, tran == null ? "0" : "1"); // 交易密码 0 未设置 1已设置
+		fair.put("xqah", fair.getExt(FairExt.TYPE_XQAH,Integer.valueOf(fairId)));
+		fair.put("scly", fair.getExt(FairExt.TYPE_SCLY,Integer.valueOf(fairId)));
+		
+		List<FairExt> list = fair.getExt(FairExt.TYPE_HONNER,Integer.valueOf(fairId));
+		for (FairExt fairExt : list) {
+			fairExt.set(FairExt.NAME,domain+fairExt.getStr(FairExt.NAME));
+			String honnerStr=fairExt.getStr(FairExt.EXT);
+			if(StringUtils.length(honnerStr)>25){
+				honnerStr = honnerStr.substring(0,25)+"...";
+				fairExt.set(FairExt.EXT, honnerStr);
+			}else{
+				honnerStr = fairExt.getStr(FairExt.EXT);
+			}
+		}
+		fair.put("honner",list);
+		R r = R.ok("成功");
+		r.p("fair", fair);
+		return r;
+	}
+
+	/**
+	 * 获取系统兴趣爱好
+	 * 
+	 * @return
+	 */
+	public R getXQAH() {
+		List<Record> list = new ArrayList<Record>();
+		String[] items = { "唱歌", "代购", "电影", "动漫", "画画", "旅游", "设计", "社交", "书评", "跳舞", "游戏", "运动" };
+		String[] icons = { "changge.png", "daigou.png", "dianying.png", "donghua.png", "huahua.png", "lvyou.png",
+				"sheji.png", "shejiao.png", "shuping.png", "tiaowu.png", "youxi.png", "yundong.png" };
+		String[] iconsselected = { "changge_selected.png", "daigou_selected.png", "dianying_selected.png",
+				"donghua_selected.png", "huahua_selected.png", "lvyou_selected.png", "sheji_selected.png",
+				"shejiao_selected.png", "shuping_selected.png", "tiaowu_selected.png", "youxi_selected.png",
+				"yundong_selected.png" };
+		for (int i = 0; i < items.length; i++) {
+			Record record = new Record();
+			record.set(FairExt.NAME, items[i]);
+			record.set("id", i + 1);
+			record.set("icon", domain + icons[i]);
+			record.set("icon_selected", domain + iconsselected[i]);
+			list.add(record);
+		}
+		R r = R.ok("成功");
+		r.p("list", list);
+		return r;
+	}
+
+	public R getHonner() {
+		List<Record> list = new ArrayList<Record>();
+		String[] items = { "虎牙直播", "一直播", "斗鱼直播", "熊猫直播", "战旗直播", "龙珠直播", "哔哩哔哩", "花椒直播", "火猫直播", "映客直播", "咪咕直播", "kk直播" };
+		String[] icons = { "huya.png", "yi.png", "douyu.png", "xiongmao.png", "zhanqi.png", "longzhu.png",
+				"bilibili.png", "huajiao.png", "huomao.png", "yingke.png", "migu.png", "kk.png" };
+		String[] iconsSelected = { "huya_selected.png", "yi_selected.png", "douyu_selected.png", "xiongmao_selected.png", "zhanqi_selected.png", "longzhu_selected.png",
+				"bilibili_selected.png", "huajiao_selected.png", "huomao_selected.png", "yingke_selected.png", "migu_selected.png", "kk_selected.png" };
+		for (int i = 0; i < items.length; i++) {
+			Record record = new Record();
+			record.set(FairExt.NAME, items[i]);
+			record.set("id", i + 1);
+			record.set("icon", domain + icons[i]);
+			record.set("icon_selected", domain + iconsSelected[i]);
+			list.add(record);
+		}
+		R r = R.ok("成功");
+		r.p("list", list);
+		return r;
+	}
+
+	/**
+	 * 获取系统擅长领域
+	 * 
+	 * @return
+	 */
+	public R getSCLY() {
+		List<Record> list = new ArrayList<Record>();
+		String[] items = { "唱歌", "代购", "电影", "动漫", "画画", "旅游", "设计", "社交", "书评", "跳舞", "游戏", "运动" };
+		String[] icons = { "changge.png", "daigou.png", "dianying.png", "donghua.png", "huahua.png", "lvyou.png",
+				"sheji.png", "shejiao.png", "shuping.png", "tiaowu.png", "youxi.png", "yundong.png" };
+		String[] iconsselected = { "changge_selected.png", "daigou_selected.png", "dianying_selected.png",
+				"donghua_selected.png", "huahua_selected.png", "lvyou_selected.png", "sheji_selected.png",
+				"shejiao_selected.png", "shuping_selected.png", "tiaowu_selected.png", "youxi_selected.png",
+				"yundong_selected.png" };
+		for (int i = 0; i < items.length; i++) {
+			Record record = new Record();
+			record.set(FairExt.NAME, items[i]);
+			record.set("id", i + 1);
+			record.set("icon", domain + icons[i]);
+			record.set("icon_selected", domain + iconsselected[i]);
+			list.add(record);
+		}
+		R r = R.ok("成功");
+		r.p("list", list);
+		return r;
+	}
+
+	/**
+	 * 判断自定义属性是否存在
+	 * 
+	 * @param name
+	 * @param type
+	 * @return
+	 */
+	private Ret isExtExist(String name, int type) {
+		String sql = String.format("select id from %s where %s=? and %s=? and %s=?", fairExtDao.tableName(),
+				FairExt.TYPE, FairExt.ISSYSTEM, FairExt.NAME);
+		FairExt ext = fairExtDao.findFirstByCache(FairExt.CACHE_NAME, "static_" + type + "_" + name, sql, type,
+				FairExt.ISSYSTEM_NO, name);
+		if (ext == null) {
+			return Ret.fail();
+		} else {
+			Ret r = Ret.ok();
+			r.put("id", ext.getInt(FairExt.ID));
+			return r;
+		}
+	}
+
+	/**
+	 * 设置交易密码
+	 * 
+	 * @return
+	 */
+	public R setTranPwd(long uid, String old_pwd, String new_pwd) {
+		Fair fair = fs.findById(Integer.parseInt(uid + ""));
+		User user = User.dao.findById(uid);
+		// 如果旧密码为空则是设置交易密码
+		String tranPwd = fair.get(Fair.TRAN_PWD);
+		if (StrKit.isBlank(tranPwd)) {
+			String salt = user.get(User.SALT);
+			String hashedPass = HashKit.sha256(salt + new_pwd);
+			fair.set(Fair.TRAN_PWD, hashedPass);
+			fair.update();
+			CacheKit.remove(Fair.FAIR_CACHE_NAME, "fair_info_" + uid);
+			return R.ok();
+		} else {
+			if (StrKit.isBlank(old_pwd)) {
+				return R.fail("旧密码不能为空");
+			} else {
+				String salt = user.get(User.SALT);
+				String hashedPass = HashKit.sha256(salt + old_pwd);
+				if (tranPwd.toUpperCase().equals(hashedPass.toUpperCase())) {
+					String hashedPass_new = HashKit.sha256(salt + new_pwd);
+					fair.set(Fair.TRAN_PWD, hashedPass_new);
+					fair.update();
+					CacheKit.remove(Fair.FAIR_CACHE_NAME, "fair_info_" + uid);
+					return R.ok();
+				} else {
+					return R.fail("旧密码不正确");
+				}
+			}
+		}
+	}
+
+	/**
+	 * 验证旧交易密码是否正确
+	 * 
+	 * @param uid
+	 * @param old_pwd
+	 * @return
+	 */
+	public R checkTranPwd(long uid, String old_pwd) {
+		Fair fair = fs.findById(Integer.parseInt(uid + ""));
+		User user = User.dao.findById(uid);
+		String tranPwd = fair.get(Fair.TRAN_PWD);
+		String salt = user.get(User.SALT);
+		String hashedPass = HashKit.sha256(salt + old_pwd);
+		if (tranPwd.toUpperCase().equals(hashedPass.toUpperCase())) {
+			return R.ok("密码正确");
+		} else {
+			return R.fail("密码错误");
+		}
+	}
+
+	/**
+	 * 保存认证信息
+	 * 
+	 * @param param
+	 * @return
+	 */
+	public R saveAuth(Map<String, String> param) {
+		String username = param.get("user_name");
+		String nickName = param.get("nick_name");
+		String fans = param.get("fans");
+		String screen = param.get("screenshot");
+		String type = param.get("type");
+		String uid = param.get("uid");
+		FairAuth fa = new FairAuth();
+		fa.set(FairAuth.USER_NAME, username);
+		fa.set(FairAuth.NICK_NAME, nickName);
+		fa.set(FairAuth.FANS, fans);
+		fa.set(FairAuth.SCREENSHOT, screen);
+		fa.set(FairAuth.TYPE, type);
+		fa.set(FairAuth.STATUS, FairAuth.STATUS_APPROVING);
+		fa.set(FairAuth.WH_ID, uid);
+		fa.save();
+		return R.ok();
+	}
+
+	/**
+	 * 获取认证信息列表
+	 * 
+	 * @param uid
+	 * @return
+	 */
+	public R findAuth(long uid) {
+		String sql = String.format("select * from %s where %s=? and %s=?", authDao.tableName(), FairAuth.DELETETAG,
+				FairAuth.WH_ID);
+		List<FairAuth> list = authDao.find(sql, 0, uid);
+		Fair fair = Fair.dao.findById(uid);
+		list.forEach(fa -> {
+			fa.set(FairAuth.WH_ID, fair.getStr(Fair.PHOTO));
+		});
+		R r = R.ok();
+		r.p("auths", list);
+		return r;
+	}
+
+	/**
+	 * 获取点击数详情
+	 * 
+	 * @return
+	 */
+	public R getClickInfo(long id) {
+		List<TaskWh> order = TaskWh.dao.findByCache(TaskWh.CACHE_NAME_NO, "cache_taskwh_click_no",
+				"SELECT wh_id, sum(click_num) FROM " + TaskWh.dao.tableName()
+						+ " GROUP BY wh_id ORDER BY sum(click_num) desc");
+		int no = 0;
+		for (int i = 0; i < order.size(); i++) {
+			TaskWh tw = order.get(i);
+			if (tw.getInt(TaskWh.WH_ID).intValue() == id) {
+				no = (i + 1);
+				break;
+			}
+		}
+		R r = R.ok();
+		r.p("no", no);
+		// 获取点击详情
+		List<TaskWh> taskwhs = TaskWh.dao
+				.find("select task.`status`,task.`task_start_time`,task.`task_end_time`,task.id,task.task_title,tw.click_num from "
+						+ TaskWh.dao.tableName() + " tw LEFT JOIN " + Task.dao.tableName()
+						+ " task  on tw.task_id=task.id where tw.deletetag=0 and tw.wh_id=?", id);
+		long sum = 0;
+		for (TaskWh taskWh : taskwhs) {
+			sum += (taskWh.getInt("click_num"));
+		}
+		r.p("list", taskwhs);
+		r.p("sum", sum);
+		return r;
+	}
+
+	/**
+	 * 获取转化数详情
+	 * 
+	 * @return
+	 */
+	public R getCvsInfo(long id) {
+		List<TaskWh> order = TaskWh.dao.findByCache(TaskWh.CACHE_NAME_NO, "cache_taskwh_click_no",
+				"SELECT wh_id, sum(cvs_num) FROM " + TaskWh.dao.tableName()
+						+ " GROUP BY wh_id ORDER BY sum(cvs_num) desc");
+		int no = 0;
+		for (int i = 0; i < order.size(); i++) {
+			TaskWh tw = order.get(i);
+			if (tw.getInt(TaskWh.WH_ID).intValue() == id) {
+				no = (i + 1);
+				break;
+			}
+		}
+		R r = R.ok();
+		r.p("no", no);
+		// 获取转化详情
+		List<TaskWh> taskwhs = TaskWh.dao
+				.find("select task.`status`,task.`task_start_time`,task.`task_end_time`,task.id,task.task_title,tw.cvs_num from "
+						+ TaskWh.dao.tableName() + " tw LEFT JOIN " + Task.dao.tableName()
+						+ " task  on tw.task_id=task.id where tw.deletetag=0 and tw.wh_id=?", id);
+		long sum = 0;
+		for (TaskWh taskWh : taskwhs) {
+			sum += (taskWh.getInt("cvs_num"));
+		}
+		r.p("list", taskwhs);
+		r.p("sum", sum);
+		return r;
+	}
+
+	/**
+	 * 个人中心
+	 * 
+	 * @param id
+	 * @return
+	 */
+	public R center(long id) {
+		Fair fair = Fair.dao.findFirst(
+				"select * from " + Fair.dao.tableName() + " where " + Fair.DELETETAG + "=? and " + Fair.ID + "=?", 0,
+				id);
+		if (fair == null) {
+			return R.fail("用户不存在");
+		}
+		R r = R.ok();
+		r.p("status", fair.get(Fair.STATUS));
+		r.p("click", fair.getClick());
+		r.p("cvs", fair.getCvs());
+		return r;
+	}
+
+	/**
+	 * 我的钱包
+	 * 
+	 * @return
+	 */
+	public R getWallet(long id) {
+		// 获取可用余额 昨日收益 总收益
+		Fair fair = Fair.dao.findFirst(
+				"select * from " + Fair.dao.tableName() + " where " + Fair.DELETETAG + "=? and " + Fair.ID + "=?", 0,
+				id);
+		if (fair == null) {
+			return R.fail("用户不存在");
+		}
+		R r = R.ok();
+		r.p("money", fair.get(Fair.MONEY));
+		MoneyLog log = MoneyLog.dao.findFirst(
+				"select SUM(money) as money from " + MoneyLog.dao.tableName()
+						+ " where DATE_FORMAT(create_time, '%Y%m%d')=DATE_FORMAT(?, '%Y%m%d') and wh_id=?",
+				getYesterDay(), id);
+		if (log == null) {
+			r.p("yesterday", 0);
+		} else {
+			r.p("yesterday", log.get("money"));
+		}
+		MoneyLog sumlog = MoneyLog.dao
+				.findFirst("select SUM(money) as money from " + MoneyLog.dao.tableName() + " where wh_id=?", id);
+		if (log == null) {
+			r.p("all", 0);
+		} else {
+			r.p("all", sumlog.get("money"));
+		}
+		return r;
+	}
+
+	/**
+	 * 获取昨天
+	 * 
+	 * @return
+	 */
+	private Date getYesterDay() {
+		Calendar cal = Calendar.getInstance();
+		cal.add(Calendar.DATE, -1);
+		Date time = cal.getTime();
+		return time;
+	}
+
+	public boolean isSetTransPwd(long uid) {
+		Fair fair = fs.findById(Integer.parseInt(uid + ""));
+		String tran_pwd = fair.getStr(Fair.TRAN_PWD);
+		return (tran_pwd == null) ? false : true;
+	}
+
+	/**
+	 * 验证交易密码
+	 * 
+	 * @param tranPwd
+	 * @param uid
+	 * @return
+	 */
+	public R checkTranPwd(String tranPwd, long uid) {
+		Fair fair = fs.findById(Integer.parseInt(uid + ""));
+		User user = User.dao.findById(uid);
+		String nowtranPwd = fair.get(Fair.TRAN_PWD); // 数据库中的交易密码
+		String salt = user.get(User.SALT);
+		String hashedPass = HashKit.sha256(salt + tranPwd); // 传入的交易密码加密
+		if (nowtranPwd.toUpperCase().equals(hashedPass.toUpperCase())) {
+			R r = R.ok("密码验证成功");
+			String token = TokenUtil.getToken(); // 在提交提现请求时 需携带此token
+			CacheKit.put(User.AUTH_CODE_CACHENAME, TRAN_PWD_CACHE_KEY + uid, token); // 缓存时间5分钟
+			r.p("token", token);
+			return r;
+		} else {
+			return R.fail("交易密码不正确");
+		}
+	}
+
+	/**
+	 * 提现请求
+	 * 
+	 * @return
+	 */
+	public R withdraw(String money, long uid, String token, String bankId) {
+		if (!mbs.isBankNoExists(bankId)) {
+			return R.fail("银行卡不存在");
+		}
+		Fair fair = fs.findById(Integer.parseInt(uid + ""));
+		Double yue = fair.getDouble(Fair.MONEY); // 余额
+		double tixian = Double.parseDouble(money); // 提现金额
+		if (yue == null || tixian > yue.doubleValue()) {
+			return R.fail("提现金额超出可用余额");
+		}
+		String cacheToken = CacheKit.get(User.AUTH_CODE_CACHENAME, TRAN_PWD_CACHE_KEY + uid);
+		if (token.equals(cacheToken)) {
+			CacheKit.remove(User.AUTH_CODE_CACHENAME, TRAN_PWD_CACHE_KEY + uid);
+			fair.set(Fair.MONEY, yue.doubleValue() - tixian);
+			if (fair.update()) {
+				FairWithdraw fw = new FairWithdraw();
+				fw.set(FairWithdraw.BANK_ID, bankId);
+				fw.set(FairWithdraw.MONEY, tixian);
+				fw.set(FairWithdraw.WH_ID, uid);
+				if (fw.save()) {
+					MoneyLog ml = new MoneyLog();
+					ml.set(MoneyLog.WH_ID, uid);
+					ml.set(MoneyLog.OPERID, fw.get(FairWithdraw.ID));
+					ml.set(MoneyLog.STATE, MoneyLog.STATE_REDUCE);
+					ml.set(MoneyLog.TYPE, MoneyLog.TYPE_TIXIAN);
+					ml.set(MoneyLog.MONEY, tixian);
+					ml.set(MoneyLog.DESCRIPTION, "用户提现,金额:" + tixian);
+					ml.save();
+					return R.ok();
+				} else {
+					return R.fail("提现失败");
+				}
+			} else {
+				return R.fail("提现失败");
+			}
+
+		} else {
+			return R.fail("token不正确");
+		}
+
+	}
+
+	/**
+	 * 删除照片
+	 * 
+	 * @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("删除失败");
+			}
+		}
+	}
+
+	/**
+	 * 保存网红图片
+	 * 
+	 * @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;
+	}
+
+	public R deleteHonner(int id) {
+		boolean result = FairExt.dao.deleteById(id);
+		return (result) ? R.ok("操作成功") : R.fail("操作失败");
+	}
+
+	public R queryHonnersOfMine(long uid) {
+		R r = R.ok("成功");
+		List<FairExt> list = Fair.dao.getExt(FairExt.TYPE_HONNER,uid);
+		for (FairExt fairExt : list) {
+			fairExt.set("name", domain+fairExt.getStr(FairExt.NAME));
+		}
+ 		r.p("honners",list);
+		return r;
+	}
+	
+	private void deleteExt(long wh_id,int type){
+		String sql="delete from "+FairExt.dao.tableName()+" where "+FairExt.TYPE+"=? and "+FairExt.WH_ID+"=?";
+		Db.update(sql,type,wh_id);
 	}
 }
diff --git a/src/main/java/com/tianpengtech/front/mobile/publisher/MobilePublishService.java b/src/main/java/com/tianpengtech/front/mobile/publisher/MobilePublishService.java
index ffe8b724de1548a02e827bc676a3235c9a94aa1e..9faa1ba967983d36e4cdb44b8c10ffae0b3a1a08 100644
--- a/src/main/java/com/tianpengtech/front/mobile/publisher/MobilePublishService.java
+++ b/src/main/java/com/tianpengtech/front/mobile/publisher/MobilePublishService.java
@@ -30,14 +30,14 @@ public class MobilePublishService {
      * @return
      */
     public R getPublish(String id){
-        String sql = String.format("select id,company_name,user_id,status,company_info from %s where %s=? and %s=? and %s=?",authDao.tableName(),Authenticate.DELETETAG,Authenticate.STATUS,Authenticate.USER_ID);
+        String sql = String.format("select logo,id,company_name,user_id,status from %s where %s=? and %s=? and %s=?",authDao.tableName(),Authenticate.DELETETAG,Authenticate.STATUS,Authenticate.ID);
         Authenticate auth=authDao.findFirst(sql,Authenticate.DELETE_STATUS_NO,Authenticate.STATUS_SUCCESS,id);
         if (auth==null){
             return R.fail("用户不存在");
         }
         R r=R.ok();
         r.p("auth",auth);
-        String taskSql=String.format("select sum(wh.click_num) as click,SUM(wh.cvs_num) as cvs from %s wh left join %s task on task.id=wh.task_id where task.%s=?", TaskWh.dao.tableName(),taskDao.tableName(),Task.CREATE_USER);
+        String taskSql=String.format("select sum(wh.click_num) as click,SUM(wh.cvs_num) as cvs from %s wh left join %s task on task.id=wh.task_id where task.%s=?", TaskWh.dao.tableName(),taskDao.tableName(),Task.ID);
         Task task=taskDao.findFirst(taskSql,id);
         if (task==null){
             r.p("click",0);
@@ -52,7 +52,7 @@ public class MobilePublishService {
         }
         DecimalFormat df=(DecimalFormat) DecimalFormat.getInstance();
         df.applyPattern("##.##%");
-        r.p("cvs",df.format(d));
+        r.p("cvs",cvs);
         return r;
     }
 
diff --git a/src/main/java/com/tianpengtech/front/mobile/task/MobileTaskController.java b/src/main/java/com/tianpengtech/front/mobile/task/MobileTaskController.java
index c023d497e067479390df60d8576726f6a8de1cf0..84cc2a4a97bf3483ee33ccb8e8d19bb750aec9fc 100644
--- a/src/main/java/com/tianpengtech/front/mobile/task/MobileTaskController.java
+++ b/src/main/java/com/tianpengtech/front/mobile/task/MobileTaskController.java
@@ -1,12 +1,10 @@
 package com.tianpengtech.front.mobile.task;
 
-import com.tianpengtech.common.GlobalConfigConstant;
 import com.tianpengtech.common.model.user.User;
 import com.tianpengtech.front.mobile.common.util.R;
 import com.tianpengtech.front.mobile.common.util.U;
 import com.tianpengtech.front.mobile.common.util.UserUtil;
 import com.tianpengtech.front.web.common.controller.BaseController;
-import com.tianpengtech.front.web.login.LoginService;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -22,8 +20,8 @@ public class MobileTaskController extends BaseController {
     public void index(){
         int pageNum = getParaToInt("pageNum",1);
         int pageSize = getParaToInt("pageSize",5);
-//        User user= UserUtil.getCurrentUser(getPara("token"),getHeader("source"));
-        R r=service.taskIndex(pageNum,pageSize,46);
+        User user= UserUtil.getCurrentUser(getPara("token"),"ios");
+        R r=service.taskIndex(pageNum,pageSize,user.getLong(User.ID));
         renderJson(r);
     }
 
@@ -36,8 +34,8 @@ public class MobileTaskController extends BaseController {
         Map<String, Object> params = new HashMap<>();
         params.put("taskName", getPara("taskName"));
         params.put("taskStatus", getPara("status"));
-        User user= UserUtil.getCurrentUser(getPara("token"),getHeader("source"));
-        params.put("user", user.get(User.ID));
+        User user= UserUtil.getCurrentUser(getPara("token"),"ios");
+        params.put("user", user.getLong(User.ID));
         R r=service.findTask(pageNum,pageSize,params);
         renderJson(r);
     }
@@ -51,7 +49,7 @@ public class MobileTaskController extends BaseController {
             renderJson(R.fail("id格式不正确"));
             return;
         }
-        User user= UserUtil.getCurrentUser(getPara("token"),getHeader("source"));
+        User user= UserUtil.getCurrentUser(getPara("token"),"ios");
         R r=service.getTask(Long.parseLong(id),user.getLong(User.ID));
         renderJson(r);
     }
@@ -65,14 +63,14 @@ public class MobileTaskController extends BaseController {
             renderJson(R.fail("id格式不正确"));
             return;
         }
-        User user= UserUtil.getCurrentUser(getPara("token"),getHeader("source"));
+        User user= UserUtil.getCurrentUser(getPara("token"),"ios");
         R r=service.acceptTask(id,user.getLong(User.ID));
         renderJson(r);
     }
     
     public void canAcceptTaskNum(){
-//    	User user= UserUtil.getCurrentUser(getPara("token"),getHeader("source"));
-    	R r = service.canAcceptTaskNum(46);
+    	User user= UserUtil.getCurrentUser(getPara("token"),"ios");
+    	R r = service.canAcceptTaskNum(user.getLong(User.ID));
     	renderJson(r);
     }
 }
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 ee7d8f9d1fcd3356c6215866476c8337b6e5e573..a7ba3bedeb7ffc3ff73f258fc2e45771dc3dde56 100644
--- a/src/main/java/com/tianpengtech/front/mobile/task/MobileTaskService.java
+++ b/src/main/java/com/tianpengtech/front/mobile/task/MobileTaskService.java
@@ -3,14 +3,13 @@ package com.tianpengtech.front.mobile.task;
 import com.jfinal.kit.Ret;
 import com.jfinal.kit.StrKit;
 import com.jfinal.plugin.activerecord.Page;
-import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ;
+import com.tianpengtech.common.model.authenticate.Authenticate;
 import com.tianpengtech.common.model.fair.Fair;
 import com.tianpengtech.common.model.task.Task;
 import com.tianpengtech.common.model.task.TaskWh;
-import com.tianpengtech.common.search.EqualCondition;
-import com.tianpengtech.common.search.QueryConstructor;
 import com.tianpengtech.common.util.DateUtils;
 import com.tianpengtech.front.mobile.common.util.R;
+import com.tianpengtech.front.web.passport.AuthenticateSerivce;
 import com.tianpengtech.front.web.task.TaskService;
 
 import java.util.ArrayList;
@@ -18,11 +17,16 @@ import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.commons.lang.StringUtils;
+
+
 /**
  * Created by ggd on 2017/7/28 0028.
  */
 public class MobileTaskService {
-    public static MobileTaskService me = new MobileTaskService();
+    private static final String defaultAvatar = "http://www.ele-young.com/assets/front/img/x.jpg";
+//    private static final String defaultAvatar = "http://192.168.1.54:8090/assets/front/img/x.jpg";
+	public static MobileTaskService me = new MobileTaskService();
     public static TaskService taskService = new TaskService();
     private static Task taskDao = Task.dao;
     private static Fair fairDao = Fair.dao;
@@ -38,7 +42,7 @@ public class MobileTaskService {
      * @return
      */
     public R taskIndex(int pageNum, int length,long uid){
-        String s=String.format("select %s,%s,%s,%s,%s,%s,%s ",Task.ID,Task.TASK_TITLE,Task.TASK_START_TIME,Task.TASK_END_TIME,Task.TASK_DESCRIPTION,Task.TASK_PRICE,Task.WH_NUMBER);
+        String s=String.format("select 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);
         String sql=String.format(" from %s task where (task.%s=? and task.%s>=?) and task.%s=? and task.%s=? "
         		+ "and task.%s not in(select %s from %s tw where tw.%s=?)",
                 taskDao.tableName(),Task.STATUS,Task.TASK_START_TIME,Task.DELETETAG,
@@ -48,6 +52,14 @@ public class MobileTaskService {
         Page<Task> page=taskDao.paginate(pageNum,length,s,sql,new Object[]{Task.STATUS_SUCCESS,startDate,Task.DELETE_STATUS_NO,Task.EXT_TYPE_RL,uid});
         page.getList().forEach( t ->{
             t.put("rece",t.getRece());
+            t.put("statusStr",t.status());
+            Authenticate auth = AuthenticateSerivce.ME.findAuthenticateByUserId(t.getInt(Task.CREATE_USER));
+            String companyName =(auth==null)?"未知":auth.getStr(Authenticate.COMPANY_NAME); 
+            String logo =(auth==null)?"":auth.getStr(Authenticate.LOGO); 
+           t.put("company",companyName);
+           t.put("companyLogo",logo);
+            t.put("total",0);
+            t.put("haveAccept",0);
             t.put("dateString",t.getDateString());
         });
         R r = R.ok();
@@ -82,7 +94,7 @@ public class MobileTaskService {
      */
     public R findTask(int pageNum, int length,Map<String,Object> params){
         List<Object> param=new ArrayList<>();
-        String s = "select 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 ";
+        String s = "select 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 ";
         StringBuffer sql= new StringBuffer(" from " + taskDao.tableName() + " task left join " + TaskWh.dao.tableName() + " wh on task." + Task.ID + "=wh." + TaskWh.TASK_ID +" left join "+ Fair.dao.tableName()+" fair on fair."+Fair.ID+"=wh."+TaskWh.WH_ID);
         sql.append(" where task." + Task.DELETETAG+"=? and wh."+TaskWh.WH_ID+"=? and task."+Task.STATUS+"!="+Task.STATUS_WAIT );
         param.add(Task.DELETE_STATUS_NO);
@@ -102,7 +114,8 @@ public class MobileTaskService {
                 if(taskStatus.toString().equals(PARAM_TASK_STATUS_AFTER)){
                     sql.append("task." + Task.STATUS+"=? and task."+Task.TASK_START_TIME+"<?)");
                     param.add(Task.STATUS_SUCCESS);
-                    param.add(new Date());
+                    String dateTime = DateUtils.formateData(new Date(), DateUtils.YYMMdd_FORMAT)+" 00:00:00";
+                    param.add(dateTime);
                 }else if(taskStatus.toString().equals(PARAM_TASK_STATUS_END)){
                     sql.append("task." + Task.STATUS+"=?)");
                     param.add(Task.STATUS_COMPLETED);
@@ -113,39 +126,64 @@ public class MobileTaskService {
         Page<Task> page=taskDao.paginate(pageNum,length,s,sql.toString(),param.toArray());
         List<Task> tasks = page.getList();
         for (Task t:tasks) {
+        	t.put("statusStr",t.status());
             t.put("dateString",t.getDateString());
+            t.put("statusStr",t.status());
+            Authenticate auth = AuthenticateSerivce.ME.findAuthenticateByUserId(t.getInt(Task.CREATE_USER));
+            String companyName =(auth==null)?"未知":auth.getStr(Authenticate.COMPANY_NAME); 
+            String logo =(auth==null|| StringUtils.isBlank(auth.getStr(Authenticate.LOGO)) )?defaultAvatar:auth.getStr(Authenticate.LOGO); t.put("company",companyName);
+            t.put("companyLogo",logo);
+            t.put("total",0);
+            t.put("haveAccept",0);
         }
         R r = R.ok();
         r.p("count",page.getTotalRow());
         r.p("pageNum",page.getPageNumber());
+        r.p("totalPage",page.getTotalPage());
         r.p("list",page.getList());
         return r;
     }
 
     public R getTask(long id,long uid) {
-        StringBuffer sql = new StringBuffer("select 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 " +
+        StringBuffer sql = new StringBuffer("select 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 " +
                 taskDao.tableName() + " task left join " + TaskWh.dao.tableName() + " wh on task." + Task.ID + "=wh." + TaskWh.TASK_ID + " where wh." + TaskWh.TASK_ID + "=? and wh." + TaskWh.WH_ID + "=?");
         Task task = taskDao.findFirst(sql.toString(), id, uid);
         if(task==null){
-            sql = new StringBuffer("select 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 " +
+            sql = new StringBuffer("select 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 " +
                     taskDao.tableName() + " task left join " + TaskWh.dao.tableName() + " wh on task." + Task.ID + "=wh." + TaskWh.TASK_ID + " where task." + Task.ID + "=?");
             task = taskDao.findFirst(sql.toString(), id);
+            task.put("sumClick",0);
+            task.put("sumCvs",0);
         }else{
             task.put("sumClick", task.getClick());
             task.put("sumCvs", task.getCvs());
         }
         task.put("dateString", task.getDateString());
+        Authenticate auth = AuthenticateSerivce.ME.findAuthenticateByUserId(task.getInt(Task.CREATE_USER));
+        String companyName =(auth==null)?"未知":auth.getStr(Authenticate.COMPANY_NAME);
+        long companyId = (auth==null)?0:auth.getLong(Authenticate.ID);
+        String logo =(auth==null|| StringUtils.isBlank(auth.getStr(Authenticate.LOGO)) )?defaultAvatar:auth.getStr(Authenticate.LOGO); 
+        task.put("company",companyName);
+        task.put("companyId",companyId);
+        task.put("companyLogo",logo);
+        String url =(task.getStr(Task.WEB_URL)==null)?"":task.getStr(Task.WEB_URL);
+        task.put("task_url",url);
         R r = R.ok();
         r.p("task", task);
-        if (task.getInt("status")!=Task.STATUS_SUCCESS) {
-            String fairs = String.format("select wh.photo,wh.nick_name,wh.id as id,task.task_price,wt.cvs_num,wt.click_num from %s wt left join %s wh on wt.%s=wh.%s left join %s task on wt.%s=task.%s where wt.%s=? order by wt.%s desc", TaskWh.dao.tableName(), Fair.dao.tableName(), TaskWh.WH_ID, Fair.ID, Task.dao.tableName(), TaskWh.TASK_ID, Task.ID, TaskWh.TASK_ID, TaskWh.CVS_NUM);
-            List<Fair> fairses = fairDao.find(fairs, id);
+        task.put("acceptNum",0);
+//        if (task.getInt("status")!=Task.STATUS_SUCCESS) {
+            String fairs = String.format("select wh.descript as descript, wh.photo,wh.nick_name,wh.id as id,task.task_price,wt.cvs_num,wt.click_num from %s wt left join %s wh on wt.%s=wh.%s left join %s task on wt.%s=task.%s where wt.%s=? order by wt.%s desc", TaskWh.dao.tableName(), Fair.dao.tableName(), TaskWh.WH_ID, Fair.ID, Task.dao.tableName(), TaskWh.TASK_ID, Task.ID, TaskWh.TASK_ID, TaskWh.CVS_NUM);
+            List<Fair> fairses = fairDao.find(fairs,id);
             for (int i = 0; i < fairses.size(); i++) {
                 Fair f = fairses.get(i);
                 f.put("no", i + 1);
+                String photo = ((f.getStr(Fair.PHOTO).equals("/upload/avatar/x.jpg"))?defaultAvatar:f.getStr(Fair.PHOTO));
+                f.set(Fair.PHOTO,photo);
             }
             r.p("fairs", fairses);
-        }
+            int num = (fairses.isEmpty())?0:fairses.size();
+            task.put("acceptNum", num);
+//        }
         return r;
     }
 
@@ -156,12 +194,20 @@ public class MobileTaskService {
      * @return
      */
     public R acceptTask(String taskId,long uid){
-        Ret ret=taskService.saveTaskWait(new String[]{uid+""},taskId);
-        if (ret.isOk()){
-            return R.ok();
-        }else{
-            return R.fail(ret.getStr("msg"));
-        }
+    	Ret ret= new Ret();
+    	R r;
+    	boolean result = TaskService.isExistFairTask(uid+"", taskId);
+    	if(result){
+    		r= R.fail("你已经接受了当前任务,请勿重复操作!!");
+    	}else{
+    		ret = taskService.saveTaskWait(new String[]{uid+""},taskId);
+    		if (ret.isOk()){
+                r= R.ok();
+            }else{
+                r= R.fail(ret.getStr("msg"));
+            }
+    	}
+        return r;
     }
     
 }
diff --git a/src/main/java/com/tianpengtech/front/web/passport/AuthenticateSerivce.java b/src/main/java/com/tianpengtech/front/web/passport/AuthenticateSerivce.java
new file mode 100644
index 0000000000000000000000000000000000000000..d1c1936bc9388672777ed490775349006a771866
--- /dev/null
+++ b/src/main/java/com/tianpengtech/front/web/passport/AuthenticateSerivce.java
@@ -0,0 +1,13 @@
+package com.tianpengtech.front.web.passport;
+
+import com.tianpengtech.common.model.authenticate.Authenticate;
+
+public class AuthenticateSerivce {
+
+	public static final AuthenticateSerivce ME = new AuthenticateSerivce();
+	
+	public Authenticate findAuthenticateByUserId(long uid){
+		return Authenticate.dao.findFirstByCache(Authenticate.class.getSimpleName(), uid, "select * from fair_user_authenticate where user_id=?",uid);
+	}
+	
+}
diff --git a/src/main/java/com/tianpengtech/front/web/passport/PassportService.java b/src/main/java/com/tianpengtech/front/web/passport/PassportService.java
index a6a244916e726f5a7c25ed4ceeaffa6c4d620a28..1583834b65f5ce64187b2c006ec5283a177c5ccd 100644
--- a/src/main/java/com/tianpengtech/front/web/passport/PassportService.java
+++ b/src/main/java/com/tianpengtech/front/web/passport/PassportService.java
@@ -55,7 +55,7 @@ public class PassportService {
     /**
      * 账户注册,hashedPass = sha256(32字符salt + pass)
      */
-    public Ret reg(String mobile, String password,Integer user_type) {
+    public Ret reg(String mobile, String password,String code,Integer user_type) {
         if (user_type==User.USER_TYPE_PROV){
             if (StrKit.isBlank(mobile) || StrKit.isBlank(password)) {
                 return Ret.fail("msg", "手机号码或密码不能为空");
@@ -75,25 +75,35 @@ public class PassportService {
         // 密码加盐 hash
         String salt = HashKit.generateSaltForSha256();
         user.set(User.SALT,salt);
-        if (user_type==User.USER_TYPE_PROV){
-            password = HashKit.sha256(salt + password);
-            user.set(User.PASSWORD,password);
-        }
+        password = HashKit.sha256(salt + password);
+        user.set(User.PASSWORD,password);
         user.set(User.STATUS, User.USER_STATUS_NORMAL);
-        user.set(User.PHOTO,User.DEFAULT_PHOTO);
+        user.set(User.CODE,code);
+        
+        Ret r=null;
         if (user_type==User.USER_TYPE_FAIR){
             user.set(User.USER_TYPE,User.USER_TYPE_FAIR);
+            if (user.save()) {
+            	Fair fair = new Fair();//同步网红手机号
+    			fair.set(Fair.ID, user.getLong(User.ID));
+    			fair.set(Fair.MOIBILE, mobile);
+    			fair.set(Fair.NICK_NAME, mobile);
+    			fair.set(Fair.STATUS, Fair.STATUS_UNAPPROVER);
+    			fair.save();
+                r = Ret.ok("id",user.get(User.ID));
+            } else {
+                r = Ret.fail("msg", "注册失败,account 保存失败,请告知管理员");
+            }
         }
-        if (user.save()) {
-        	
-        	Fair fair = new Fair();//同步网红手机号
-        	fair.set(Fair.ID, user.get(User.ID));
-        	fair.set(Fair.MOIBILE,mobile);
-        	fair.update();
-            return Ret.ok("id",user.get(User.ID));
-        } else {
-            return Ret.fail("msg", "注册失败,account 保存失败,请告知管理员");
+        
+        if (user_type==User.USER_TYPE_PROV){
+            user.set(User.USER_TYPE,User.USER_TYPE_PROV);
+            user.set(User.PHOTO,User.DEFAULT_PHOTO);
+            user.save();
+            r = Ret.ok("id",user.get(User.ID));
         }
+        return r;
+        
     }
 
     /**
diff --git a/src/main/java/com/tianpengtech/front/web/passport/PassportWebController.java b/src/main/java/com/tianpengtech/front/web/passport/PassportWebController.java
index f5add1cf6b5a475fb7a1ca4214f25b4e5c1b7077..92d86a5e9841b20a8116988d9d2b62712dc285c1 100644
--- a/src/main/java/com/tianpengtech/front/web/passport/PassportWebController.java
+++ b/src/main/java/com/tianpengtech/front/web/passport/PassportWebController.java
@@ -45,7 +45,7 @@ public class PassportWebController extends BaseController {
     @Clear(PassportInterceptor.class)
     @Before(PassportValidator.class)
     public void save() {
-        Ret ret = srv.reg(getPara("mobile"), getPara("password"),User.USER_TYPE_PROV);
+        Ret ret = srv.reg(getPara("mobile"),getPara("password"),"",User.USER_TYPE_PROV);
         ret.remove("id");
         renderJson(ret);
     }
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 01eeda1ae2845a5fbda3b9c05e2f362e7169b556..c9af59b881d43b9bfe5ed8752cd64a7a3c958d27 100644
--- a/src/main/java/com/tianpengtech/front/web/task/TaskService.java
+++ b/src/main/java/com/tianpengtech/front/web/task/TaskService.java
@@ -127,18 +127,18 @@ public class TaskService {
             if (isExistFairTask(id,taskId)){
                 continue;
             }
-//            Record record = new Record();
-//            record.set(Task.WL_FAIR_ID,id).set(Task.WL_TASK_ID,taskId);
-//            Db.save(Task.TASK_WHITELIST,record);
+            Record record = new Record();
+            record.set(Task.WL_FAIR_ID,id).set(Task.WL_TASK_ID,taskId);
+            Db.save(Task.TASK_WHITELIST,record);
             TaskWh tw= new TaskWh();
             tw.set(TaskWh.WH_ID,id);
             tw.set(TaskWh.TASK_ID,taskId);
             tw.set(TaskWh.CODE,getTaskCode());
             tw.save();
         }
-        Task task=taskDao.findById(taskId);
-        task.set(Task.STATUS,Task.STATUS_APPROVING);
-        task.update();
+//        Task task=taskDao.findById(taskId);
+//        task.set(Task.STATUS,Task.STATUS_APPROVING);
+//        task.update();
         return Ret.ok();
     }
 
@@ -147,7 +147,7 @@ public class TaskService {
      * @param id
      * @return
      */
-    private boolean isExistFairTask(String id,String taskID){
+    public static boolean isExistFairTask(String id,String taskID){
         String key="isExist_"+id+"_"+taskID;
         Boolean f=CacheKit.get(TaskWh.TASKWH_CACHE_NAME,key);
         if (f!=null){
diff --git a/src/main/resources/a_little_config.txt b/src/main/resources/a_little_config.txt
index 591775ff27c885fb464f667311457df9cd15287e..bfdbd6ffe7b1c7d14b172f65817f5907523ebed8 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=E:/project/fair/src/main/webapp/WEB-INF/view
+codeBaseTemplatePath=/Users/tianpengtech/git/fair/src/main/webapp/WEB-INF/view
 
 ##设置输出的文件夹,这里放置在项目中的/WEB-INF/view/admin/
 pageOutPutBasePath=/Users/tianpengtech/git/fair/src/main/webapp/WEB-INF/view/admin
@@ -18,7 +18,7 @@ pageOutPutBasePath=/Users/tianpengtech/git/fair/src/main/webapp/WEB-INF/view/adm
 adminCodeOutPutBasePath=/Users/tianpengtech/git/fair/src/main/java/com/tianpengtech/admin
 
 ##设置后台管理代码输出的文件夹,这里放置在项目中的com.tianpengtech.common.model下
-modelCodeOutPutBasePath=E:/project/fair/src/main/java/com/tianpengtech/common/model
+modelCodeOutPutBasePath=/Users/tianpengtech/git/fair/src/main/java/com/tianpengtech/common/model
 
 #验证码在缓存有效期内超过少次就不允许 发送
 authcode.error.count=5
diff --git a/src/main/resources/ehcache.xml b/src/main/resources/ehcache.xml
index e28a1b3446c5b001023c4cdefddcfad378feeefe..58a5a52f64e1d5696f77dea0c5869c4b19623996 100644
--- a/src/main/resources/ehcache.xml
+++ b/src/main/resources/ehcache.xml
@@ -47,7 +47,7 @@
            maxElementsInMemory="10000"
            maxElementsOnDisk="100000"
            eternal="false"
-           timeToIdleSeconds="604800"
+           timeToIdleSeconds="2592000000"
            timeToLiveSeconds="0"
            overflowToDisk="true"
            diskPersistent="true"
diff --git a/src/main/webapp/WEB-INF/view/admin/authenticate/authenticate-detail.html b/src/main/webapp/WEB-INF/view/admin/authenticate/authenticate-detail.html
index ce60a62af902a6d3183b6559c03e83af04d727c3..06aa931e576b123230d357560ddc3f6d0f78059b 100644
--- a/src/main/webapp/WEB-INF/view/admin/authenticate/authenticate-detail.html
+++ b/src/main/webapp/WEB-INF/view/admin/authenticate/authenticate-detail.html
@@ -17,6 +17,10 @@
 		<label class="form-label col-xs-4 col-sm-3">法人手机号:</label>
 		<div class="formControls col-xs-8 col-sm-9">#(authenticate.company_charge_phone??'')</div>
 	</div>
+	<div class="row cl">
+		<label class="form-label col-xs-4 col-sm-3">公司LOGO:</label>
+		<div class="formControls col-xs-8 col-sm-9"><img width="100" src="#(authenticate.logo??'')"></div>
+	</div>
 	<div class="row cl">
 		<label class="form-label col-xs-4 col-sm-3">营业执照:</label>
 		<div class="formControls col-xs-8 col-sm-9"><img width="300" src="#(authenticate.company_license??'')"></div>
diff --git a/src/main/webapp/WEB-INF/view/admin/common/__side-bar.html b/src/main/webapp/WEB-INF/view/admin/common/__side-bar.html
index 9685c356ba7ca60702fb78cee53e85cfea55f702..eca58e4fa4fcbe6681674ca2be342926b6434ad4 100644
--- a/src/main/webapp/WEB-INF/view/admin/common/__side-bar.html
+++ b/src/main/webapp/WEB-INF/view/admin/common/__side-bar.html
@@ -28,9 +28,14 @@
 			</dt>
 			<dd>
 				<ul>
-					
 					<li><a _href="#(contextPath)/admin/fair" data-title="网红管理"
 						href="javascript:void(0)">网红管理</a></li>
+					<li><a _href="#(contextPath)/admin/fairauth" data-title="网红认证"
+						href="javascript:void(0)">网红认证</a></li>
+					<li><a _href="#(contextPath)/admin/fairbankno" data-title="网红银行卡列表"
+						href="javascript:void(0)">网红银行卡列表</a></li>
+					<li><a _href="#(contextPath)/admin/fairwithdraw" data-title="网红提现列表"
+						href="javascript:void(0)">网红提现列表</a></li>
 				</ul>
 			</dd>
 		</dl>
diff --git a/src/main/webapp/WEB-INF/view/admin/fairauth/add-fairauth.html b/src/main/webapp/WEB-INF/view/admin/fairauth/add-fairauth.html
new file mode 100644
index 0000000000000000000000000000000000000000..dcf6f52023d0fb22d1811e6a0467f73a239c6c85
--- /dev/null
+++ b/src/main/webapp/WEB-INF/view/admin/fairauth/add-fairauth.html
@@ -0,0 +1,75 @@
+#@layout()
+<script>
+    $("#fairauth-add").validate({
+        rules:{
+                "fairauth.wh_id":{
+                    required:true
+                },
+                "fairauth.user_name":{
+                    required:true
+                },
+                "fairauth.nick_name":{
+                    required:true
+                },
+                "fairauth.fans":{
+                    required:true
+                },
+                "fairauth.screenshot":{
+                    required:true
+                },
+                "fairauth.type":{
+                    required:true
+                },
+                "fairauth.deletetag":{
+                    required:true
+                },
+                "fairauth.status":{
+                    required:true
+                }
+        },
+        messages:{
+
+                "fairauth.wh_id":{
+                required:"请输入网红ID..."
+                },
+                "fairauth.user_name":{
+                required:"请输入账号..."
+                },
+                "fairauth.nick_name":{
+                required:"请输入昵称..."
+                },
+                "fairauth.fans":{
+                required:"请输入粉丝数量..."
+                },
+                "fairauth.screenshot":{
+                required:"请输入截图..."
+                },
+                "fairauth.type":{
+                required:"请输入类型..."
+                },
+                "fairauth.deletetag":{
+                required:"请输入删除标识..."
+                },
+                "fairauth.status":{
+                required:"请输入状态..."
+                }
+        },
+        onkeyup:false,
+        focusCleanup:true,
+        success:"valid",
+        submitHandler:function(form){
+        var config = {
+        "url":"/admin/fairauth/doAdd",
+        data:$("#fairauth-add").serialize(),
+        "method":"POST"
+        };
+        var backendTool = new BackendTool(config);
+        backendTool.ajaxRequest();
+        }
+    });
+</script>
+#define main()
+     <form class="form form-horizontal" id="fairauth-add">
+        #include("fairauth-form.html")
+     </form>
+#end
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/view/admin/fairauth/edit-fairauth.html b/src/main/webapp/WEB-INF/view/admin/fairauth/edit-fairauth.html
new file mode 100644
index 0000000000000000000000000000000000000000..a887b529eb3b2bd8102b652d009fecc43a1e7fa6
--- /dev/null
+++ b/src/main/webapp/WEB-INF/view/admin/fairauth/edit-fairauth.html
@@ -0,0 +1,75 @@
+#@layout()
+<script>
+    $("#fairauth-edit").validate({
+        rules:{
+                "fairauth.wh_id":{
+                    required:true
+                },
+                "fairauth.user_name":{
+                    required:true
+                },
+                "fairauth.nick_name":{
+                    required:true
+                },
+                "fairauth.fans":{
+                    required:true
+                },
+                "fairauth.screenshot":{
+                    required:true
+                },
+                "fairauth.type":{
+                    required:true
+                },
+                "fairauth.deletetag":{
+                    required:true
+                },
+                "fairauth.status":{
+                    required:true
+                }
+        },
+        messages:{
+
+                "fairauth.wh_id":{
+                required:"请输入网红ID..."
+                },
+                "fairauth.user_name":{
+                required:"请输入账号..."
+                },
+                "fairauth.nick_name":{
+                required:"请输入昵称..."
+                },
+                "fairauth.fans":{
+                required:"请输入粉丝数量..."
+                },
+                "fairauth.screenshot":{
+                required:"请输入截图..."
+                },
+                "fairauth.type":{
+                required:"请输入类型..."
+                },
+                "fairauth.deletetag":{
+                required:"请输入删除标识..."
+                },
+                "fairauth.status":{
+                required:"请输入状态..."
+                }
+        },
+        onkeyup:false,
+        focusCleanup:true,
+        success:"valid",
+        submitHandler:function(form){
+        var config = {
+        "url":"/admin/fairauth/updateById",
+        data:$("#fairauth-edit").serialize(),
+        "method":"POST"
+        };
+        var backendTool = new BackendTool(config);
+        backendTool.ajaxRequest();
+        }
+    });
+</script>
+#define main()
+    <form class="form form-horizontal" id="fairauth-edit">
+    #include("fairauth-form.html")
+    </form>
+#end
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/view/admin/fairauth/fairauth-detail.html b/src/main/webapp/WEB-INF/view/admin/fairauth/fairauth-detail.html
new file mode 100644
index 0000000000000000000000000000000000000000..528ca3bbbcc7c0c4f3e0ceeb105844bc1eeb0a89
--- /dev/null
+++ b/src/main/webapp/WEB-INF/view/admin/fairauth/fairauth-detail.html
@@ -0,0 +1,26 @@
+#@layout() #define main()
+<form class="form form-horizontal">
+	<div class="row cl">
+		<label class="form-label col-xs-4 col-sm-3">昵称:</label>
+		<div class="formControls col-xs-8 col-sm-9">#(fairAuth.nick_name??'')</div>
+	</div>
+	<div class="row cl">
+		<label class="form-label col-xs-4 col-sm-3">粉丝数量:</label>
+		<div class="formControls col-xs-8 col-sm-9">#(fairAuth.fans??'')</div>
+	</div>
+	<div class="row cl">
+		<label class="form-label col-xs-4 col-sm-3">截图:</label>
+		<div class="formControls col-xs-8 col-sm-9">
+			<img src="#(fairAuth.screenshot??'')" width="100">
+		</div>
+	</div>
+	<div class="row cl">
+		<label class="form-label col-xs-4 col-sm-3">类型:</label>
+		<div class="formControls col-xs-8 col-sm-9">#(fairAuth.type()??'')</div>
+	</div>
+	<div class="row cl">
+		<label class="form-label col-xs-4 col-sm-3">状态:</label>
+		<div class="formControls col-xs-8 col-sm-9">#(fairAuth.status()??'')</div>
+	</div>
+</form>
+#end
diff --git a/src/main/webapp/WEB-INF/view/admin/fairauth/fairauth-form.html b/src/main/webapp/WEB-INF/view/admin/fairauth/fairauth-form.html
new file mode 100644
index 0000000000000000000000000000000000000000..60c185f5efeaa30f8496b92263a814710dd90cd6
--- /dev/null
+++ b/src/main/webapp/WEB-INF/view/admin/fairauth/fairauth-form.html
@@ -0,0 +1,62 @@
+    <div class="row cl">
+        <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>网红ID:</label>
+        <div class="formControls col-xs-8 col-sm-9">
+            <input type="text" class="input-text" value="#(fairauth.wh_id??'')"
+                   maxlength="50" placeholder="请输入网红ID..." id="wh_id" name="fairauth.wh_id">
+        </div>
+    </div>
+    <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">
+            <input type="text" class="input-text" value="#(fairauth.user_name??'')"
+                   maxlength="50" placeholder="请输入账号..." id="user_name" name="fairauth.user_name">
+        </div>
+    </div>
+    <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">
+            <input type="text" class="input-text" value="#(fairauth.nick_name??'')"
+                   maxlength="50" placeholder="请输入昵称..." id="nick_name" name="fairauth.nick_name">
+        </div>
+    </div>
+    <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">
+            <input type="text" class="input-text" value="#(fairauth.fans??'')"
+                   maxlength="50" placeholder="请输入粉丝数量..." id="fans" name="fairauth.fans">
+        </div>
+    </div>
+    <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">
+            <input type="text" class="input-text" value="#(fairauth.screenshot??'')"
+                   maxlength="50" placeholder="请输入截图..." id="screenshot" name="fairauth.screenshot">
+        </div>
+    </div>
+    <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">
+            <input type="text" class="input-text" value="#(fairauth.type??'')"
+                   maxlength="50" placeholder="请输入类型..." id="type" name="fairauth.type">
+        </div>
+    </div>
+    <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">
+            <input type="text" class="input-text" value="#(fairauth.deletetag??'')"
+                   maxlength="50" placeholder="请输入删除标识..." id="deletetag" name="fairauth.deletetag">
+        </div>
+    </div>
+    <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">
+            <input type="text" class="input-text" value="#(fairauth.status??'')"
+                   maxlength="50" placeholder="请输入状态..." id="status" name="fairauth.status">
+        </div>
+    </div>
+<div class="row cl">
+    <div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-3">
+        <input type="hidden" value="#(fairauth.id??'')" id="id" name="fairauth.id">
+        <input class="btn btn-primary radius" type="submit" value="  提交  ">
+    </div>
+</div>
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/view/admin/fairauth/fairauth-list.html b/src/main/webapp/WEB-INF/view/admin/fairauth/fairauth-list.html
new file mode 100644
index 0000000000000000000000000000000000000000..365b242cd2bac2a7a249438945c6cd23f4bb253b
--- /dev/null
+++ b/src/main/webapp/WEB-INF/view/admin/fairauth/fairauth-list.html
@@ -0,0 +1,143 @@
+#@layout()
+
+#define js()
+    <script>
+    $(function(){
+        var _table;
+        _table =$("#fairauth-list").DataTable( {
+            aLengthMenu:[10,20,50],
+            "processing": true,
+            "serverSide": true,
+            "bLengthChange": false,
+            "bSort":false,
+            searching: false,//屏蔽datatales的查询框
+            "pagingType":   "full_numbers",
+            "ajax":{
+                "url": "/admin/fairauth/listAll",
+                "type": "post",
+                "data": function (params) {
+                        params["fairAuth.nick_name"]=$("#nick_name").val();
+                }
+            },
+            "columns": [
+                    { "data": "id" },
+                    { "data": "wh_id" },
+                    { "data": "nick_name" },
+                    { "data": "fans" },
+                    { "data": "type" },
+                    { "data": "status" },
+                { "data": function(data){
+                    var opt="<a href='javascript:;' onclick='pass("+data.id+")'>通过</a>"+"|";
+                    opt+="<a href='javascript:;' onclick='refuse("+data.id+")'>不通过|</a>";
+                    opt+="<a href='javascript:;' onclick='log("+data.id+")'>查看日志|</a>";
+                    opt+="<a href='javascript:;' onclick='showdetail("+data.id+")'>查看详情</a>";
+                    return opt;
+                }
+                }
+            ]
+        } );
+        $("#searchBtn").click(function(){
+            _table.ajax.reload();
+        });
+});
+    /*编辑*/
+    function edit(id){
+        var title="编辑";
+        var url="#(contextPath)/admin/fairauth/queryById?id="+id;
+        var w="";
+        var h=510;
+        layer_show(title,url,w,h);
+    }
+    /*添加*/
+    function add(){
+        var title="添加";
+        var url="#(contextPath)/admin/fairauth/add/";
+        var w="";
+        var h=510;
+        layer_show(title,url,w,h);
+    }
+
+    /*删除*/
+    function del(id){
+        var config = {
+        "url":"#(contextPath)/admin/fairauth/deleteById?id="+id,
+        data:{}
+        };
+        var backendTool = new BackendTool(config);
+        backendTool.ajaxRequest();
+    }
+    
+    
+    /*审核通过*/
+    function pass(id){
+        var config = {
+        "url":"#(contextPath)/admin/fairauth/pass?id="+id,
+        data:{}
+        };
+        var backendTool = new BackendTool(config);
+        backendTool.ajaxRequest();
+    }
+    
+    
+    /*拒绝对话框*/
+    function refuse(id){
+        var title="操作日志";
+        var url="#(contextPath)/admin/fairauth/toRefuse?id="+id;
+        var w="";
+        var h=510;
+        layer_show(title,url,w,h);
+    }
+    
+    /*查看详情*/
+    function showdetail(id){
+        var title="查看详情";
+        var url="/admin/fairauth/showDetail?id="+id;
+        var w="";
+        var h=510;
+        layer_show(title,url,w,h);
+    }
+    
+    /*操作日志*/
+    function log(id){
+        var title="操作日志";
+        var url="#(contextPath)/admin/opertion/queryLog?id="+id+"&taskType=5";
+        var w="";
+        var h=510;
+        layer_show(title,url,w,h);
+    }
+    </script>
+#end
+
+#define main()
+    #@breadcrumb(["网红管理","网红认证"])
+   <div class="page-container">
+       <div class="text-c">
+           <input type="text" name="fairauth.nick_name" id="nick_name" placeholder="请输入网红昵称..." style="width:350px" class="input-text">
+           <button name="" id="searchBtn" class="btn btn-success" type="submit"><i class="Hui-iconfont">&#xe665;</i>检索</button>
+       </div>
+       #--
+       <div class="cl pd-5 bg-1 bk-gray mt-20">
+		    <span class="l">
+		        <a href="javascript:;" onclick="add()" class="btn btn-primary radius">添加</a>
+		    </span>
+           <span class="r"></div>
+      --#
+       <div class="mt-20">
+           <table class="table table-border table-bordered table-bg table-hover table-sort" id="fairauth-list">
+               <thead>
+               <tr class="text-c">
+                     <th>ID</th>
+                     <th>网红昵称</th>
+                     <th>认证帐号昵称</th>
+                     <th>粉丝数量</th>
+                     <th>类型</th>
+                     <th>状态</th>
+                   <th>操作</th>
+               </tr>
+               </thead>
+               <tbody>
+               </tbody>
+           </table>
+       </div>
+   </div>
+#end
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/view/admin/fairauth/fairauth-reason.html b/src/main/webapp/WEB-INF/view/admin/fairauth/fairauth-reason.html
new file mode 100644
index 0000000000000000000000000000000000000000..bae24cb4823ef5a11aeea47ad2ca3594e9a237a6
--- /dev/null
+++ b/src/main/webapp/WEB-INF/view/admin/fairauth/fairauth-reason.html
@@ -0,0 +1,44 @@
+#@layout()
+<script>
+    $("#fairauth-reason").validate({
+        rules:{
+                "content":{
+                    required:true
+                }
+        
+        },
+        messages:{
+                "content":{
+                	required:"请输入拒绝理由..."
+                }
+        },
+        onkeyup:false,
+        focusCleanup:true,
+        success:"valid",
+        submitHandler:function(form){
+        var config = {
+        "url":"#(contextPath)/admin/fairauth/unpass",
+        data:$("#fairauth-reason").serialize(),
+        "method":"POST"
+        };
+        var backendTool = new BackendTool(config);
+        backendTool.ajaxRequest();
+        }
+    });
+</script>
+#define main()
+    <form class="form form-horizontal" id="fairauth-reason">
+   		<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个字符..."></textarea>
+	        </div>
+	    </div>
+	    <div class="row cl">
+		    <div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-3">
+			        <input type="hidden" value="#(fairAuth.id??'')" id="id" name="fairAuth.id">
+			        <input class="btn btn-primary radius" type="submit" value="  提交  ">
+			    </div>
+			</div>
+    </form>
+#end
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/view/admin/fairbankno/add-fairbankno.html b/src/main/webapp/WEB-INF/view/admin/fairbankno/add-fairbankno.html
new file mode 100644
index 0000000000000000000000000000000000000000..29ad96a1579c2f19a3a87dd98a69bc9e3f156ae0
--- /dev/null
+++ b/src/main/webapp/WEB-INF/view/admin/fairbankno/add-fairbankno.html
@@ -0,0 +1,63 @@
+#@layout()
+<script>
+    $("#fairbankno-add").validate({
+        rules:{
+                "fairbankno.wh_id":{
+                    required:true
+                },
+                "fairbankno.bank":{
+                    required:true
+                },
+                "fairbankno.bank_no":{
+                    required:true
+                },
+                "fairbankno.deletetag":{
+                    required:true
+                },
+                "fairbankno.create_time":{
+                    required:true
+                },
+                "fairbankno.real_name":{
+                    required:true
+                }
+        },
+        messages:{
+
+                "fairbankno.wh_id":{
+                required:"请输入网红ID..."
+                },
+                "fairbankno.bank":{
+                required:"请输入银行名称..."
+                },
+                "fairbankno.bank_no":{
+                required:"请输入银行卡号..."
+                },
+                "fairbankno.deletetag":{
+                required:"请输入删除标识..."
+                },
+                "fairbankno.create_time":{
+                required:"请输入创建时间..."
+                },
+                "fairbankno.real_name":{
+                required:"请输入真实姓名..."
+                }
+        },
+        onkeyup:false,
+        focusCleanup:true,
+        success:"valid",
+        submitHandler:function(form){
+        var config = {
+        "url":"/admin/fairbankno/doAdd",
+        data:$("#fairbankno-add").serialize(),
+        "method":"POST"
+        };
+        var backendTool = new BackendTool(config);
+        backendTool.ajaxRequest();
+        }
+    });
+</script>
+#define main()
+     <form class="form form-horizontal" id="fairbankno-add">
+        #include("fairbankno-form.html")
+     </form>
+#end
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/view/admin/fairbankno/edit-fairbankno.html b/src/main/webapp/WEB-INF/view/admin/fairbankno/edit-fairbankno.html
new file mode 100644
index 0000000000000000000000000000000000000000..813a4fbe4554a0006f4eff746b05bc048c34ca39
--- /dev/null
+++ b/src/main/webapp/WEB-INF/view/admin/fairbankno/edit-fairbankno.html
@@ -0,0 +1,63 @@
+#@layout()
+<script>
+    $("#fairbankno-edit").validate({
+        rules:{
+                "fairbankno.wh_id":{
+                    required:true
+                },
+                "fairbankno.bank":{
+                    required:true
+                },
+                "fairbankno.bank_no":{
+                    required:true
+                },
+                "fairbankno.deletetag":{
+                    required:true
+                },
+                "fairbankno.create_time":{
+                    required:true
+                },
+                "fairbankno.real_name":{
+                    required:true
+                }
+        },
+        messages:{
+
+                "fairbankno.wh_id":{
+                required:"请输入网红ID..."
+                },
+                "fairbankno.bank":{
+                required:"请输入银行名称..."
+                },
+                "fairbankno.bank_no":{
+                required:"请输入银行卡号..."
+                },
+                "fairbankno.deletetag":{
+                required:"请输入删除标识..."
+                },
+                "fairbankno.create_time":{
+                required:"请输入创建时间..."
+                },
+                "fairbankno.real_name":{
+                required:"请输入真实姓名..."
+                }
+        },
+        onkeyup:false,
+        focusCleanup:true,
+        success:"valid",
+        submitHandler:function(form){
+        var config = {
+        "url":"/admin/fairbankno/updateById",
+        data:$("#fairbankno-edit").serialize(),
+        "method":"POST"
+        };
+        var backendTool = new BackendTool(config);
+        backendTool.ajaxRequest();
+        }
+    });
+</script>
+#define main()
+    <form class="form form-horizontal" id="fairbankno-edit">
+    #include("fairbankno-form.html")
+    </form>
+#end
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/view/admin/fairbankno/fairbankno-detail.html b/src/main/webapp/WEB-INF/view/admin/fairbankno/fairbankno-detail.html
new file mode 100644
index 0000000000000000000000000000000000000000..04ac3c27248f319ce9925439a3f0a838db4e450f
--- /dev/null
+++ b/src/main/webapp/WEB-INF/view/admin/fairbankno/fairbankno-detail.html
@@ -0,0 +1,20 @@
+#@layout() #define main()
+<form class="form form-horizontal">
+	<div class="row cl">
+		<label class="form-label col-xs-4 col-sm-3">真实姓名:</label>
+		<div class="formControls col-xs-8 col-sm-9">#(fairBankNo.real_name??'')</div>
+	</div>
+	<div class="row cl">
+		<label class="form-label col-xs-4 col-sm-3">银行名称:</label>
+		<div class="formControls col-xs-8 col-sm-9">#(fairBankNo.bank??'')</div>
+	</div>
+	<div class="row cl">
+		<label class="form-label col-xs-4 col-sm-3">银行卡号:</label>
+		<div class="formControls col-xs-8 col-sm-9">#(fairBankNo.bank_no??'')</div>
+	</div>
+	<div class="row cl">
+		<label class="form-label col-xs-4 col-sm-3">创建时间:</label>
+		<div class="formControls col-xs-8 col-sm-9">#(fairBankNo.create_time??'')</div>
+	</div>
+</form>
+#end
diff --git a/src/main/webapp/WEB-INF/view/admin/fairbankno/fairbankno-form.html b/src/main/webapp/WEB-INF/view/admin/fairbankno/fairbankno-form.html
new file mode 100644
index 0000000000000000000000000000000000000000..8e9cc5ed37fda44bafb6e47bdce54cc4b40f0603
--- /dev/null
+++ b/src/main/webapp/WEB-INF/view/admin/fairbankno/fairbankno-form.html
@@ -0,0 +1,48 @@
+    <div class="row cl">
+        <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>网红ID:</label>
+        <div class="formControls col-xs-8 col-sm-9">
+            <input type="text" class="input-text" value="#(fairbankno.wh_id??'')"
+                   maxlength="50" placeholder="请输入网红ID..." id="wh_id" name="fairbankno.wh_id">
+        </div>
+    </div>
+    <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">
+            <input type="text" class="input-text" value="#(fairbankno.bank??'')"
+                   maxlength="50" placeholder="请输入银行名称..." id="bank" name="fairbankno.bank">
+        </div>
+    </div>
+    <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">
+            <input type="text" class="input-text" value="#(fairbankno.bank_no??'')"
+                   maxlength="50" placeholder="请输入银行卡号..." id="bank_no" name="fairbankno.bank_no">
+        </div>
+    </div>
+    <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">
+            <input type="text" class="input-text" value="#(fairbankno.deletetag??'')"
+                   maxlength="50" placeholder="请输入删除标识..." id="deletetag" name="fairbankno.deletetag">
+        </div>
+    </div>
+    <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">
+            <input type="text" class="input-text" value="#(fairbankno.create_time??'')"
+                   maxlength="50" placeholder="请输入创建时间..." id="create_time" name="fairbankno.create_time">
+        </div>
+    </div>
+    <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">
+            <input type="text" class="input-text" value="#(fairbankno.real_name??'')"
+                   maxlength="50" placeholder="请输入真实姓名..." id="real_name" name="fairbankno.real_name">
+        </div>
+    </div>
+<div class="row cl">
+    <div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-3">
+        <input type="hidden" value="#(fairbankno.id??'')" id="id" name="fairbankno.id">
+        <input class="btn btn-primary radius" type="submit" value="  提交  ">
+    </div>
+</div>
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/view/admin/fairbankno/fairbankno-list.html b/src/main/webapp/WEB-INF/view/admin/fairbankno/fairbankno-list.html
new file mode 100644
index 0000000000000000000000000000000000000000..322271c032ef465db620a190f632fa91ac9cf907
--- /dev/null
+++ b/src/main/webapp/WEB-INF/view/admin/fairbankno/fairbankno-list.html
@@ -0,0 +1,112 @@
+#@layout()
+
+#define js()
+    <script>
+    $(function(){
+        var _table;
+        _table =$("#fairbankno-list").DataTable( {
+            aLengthMenu:[10,20,50],
+            "processing": true,
+            "serverSide": true,
+            "bLengthChange": false,
+            "bSort":false,
+            searching: false,//屏蔽datatales的查询框
+            "pagingType":   "full_numbers",
+            "ajax":{
+                "url": "/admin/fairbankno/listAll",
+                "type": "post",
+                "data": function (params) {
+                        params["fairBankNo.real_name"]=$("#real_name").val();
+                }
+            },
+            "columns": [
+                    { "data": "id" },
+                    { "data": "bank" },
+                    { "data": "bank_no" },
+                    { "data": "real_name" },
+                    { "data": "create_time" },
+                { "data": function(data){
+                    //var opt="<a href='javascript:;' onclick='edit("+data.id+")'>编辑</a>"+"|";
+                     var opt="<a href='javascript:;' onclick='showdetail("+data.id+")'>查看详情</a>";
+                     //opt+="<a href='javascript:;' onclick='del("+data.id+")'>删除</a>";
+                    return opt;
+                }
+                }
+            ]
+        } );
+        $("#searchBtn").click(function(){
+            _table.ajax.reload();
+        });
+});
+    /*编辑*/
+    function edit(id){
+        var title="编辑";
+        var url="#(contextPath)/admin/fairbankno/queryById?id="+id;
+        var w="";
+        var h=510;
+        layer_show(title,url,w,h);
+    }
+    /*添加*/
+    function add(){
+        var title="添加";
+        var url="#(contextPath)/admin/fairbankno/add/";
+        var w="";
+        var h=510;
+        layer_show(title,url,w,h);
+    }
+
+    /*删除*/
+    function del(id){
+        var config = {
+        "url":"#(contextPath)/admin/fairbankno/deleteById?id="+id,
+        data:{}
+        };
+        var backendTool = new BackendTool(config);
+        backendTool.ajaxRequest();
+    }
+    
+    /*查看详情*/
+    function showdetail(id){
+        var title="查看详情";
+        var url="/admin/fairbankno/showDetail?id="+id;
+        var w="";
+        var h=510;
+        layer_show(title,url,w,h);
+    }
+    </script>
+#end
+
+#define main()
+    #@breadcrumb(["网红管理","银行卡管理"])
+   <div class="page-container">
+       <div class="text-c">
+           <input type="text" name="fairBankNo.real_name" id="real_name" placeholder="请输入真实姓名..." style="width:350px" class="input-text">
+           <button name="" id="searchBtn" class="btn btn-success" type="submit"><i class="Hui-iconfont">&#xe665;</i>检索</button>
+       </div>
+       
+       #--
+       <div class="cl pd-5 bg-1 bk-gray mt-20">
+		    <span class="l">
+		        <a href="javascript:;" onclick="add()" class="btn btn-primary radius">添加</a>
+		    </span>
+           <span class="r">
+      </div>
+      --#
+       <div class="mt-20">
+           <table class="table table-border table-bordered table-bg table-hover table-sort" id="fairbankno-list">
+               <thead>
+               <tr class="text-c">
+                     <th></th>
+                     <th>银行名称</th>
+                     <th>银行卡号</th>
+                     <th>真实姓名</th>
+                     <th>创建时间</th>
+                   <th>操作</th>
+               </tr>
+               </thead>
+               <tbody>
+               </tbody>
+           </table>
+       </div>
+   </div>
+#end
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/view/admin/fairwithdraw/add-fairwithdraw.html b/src/main/webapp/WEB-INF/view/admin/fairwithdraw/add-fairwithdraw.html
new file mode 100644
index 0000000000000000000000000000000000000000..0a13b138d2b7a09ecdfde4e89fc7c27738c8d9da
--- /dev/null
+++ b/src/main/webapp/WEB-INF/view/admin/fairwithdraw/add-fairwithdraw.html
@@ -0,0 +1,63 @@
+#@layout()
+<script>
+    $("#fairwithdraw-add").validate({
+        rules:{
+                "fairwithdraw.wh_id":{
+                    required:true
+                },
+                "fairwithdraw.money":{
+                    required:true
+                },
+                "fairwithdraw.create_time":{
+                    required:true
+                },
+                "fairwithdraw.handle_time":{
+                    required:true
+                },
+                "fairwithdraw.bank_id":{
+                    required:true
+                },
+                "fairwithdraw.status":{
+                    required:true
+                }
+        },
+        messages:{
+
+                "fairwithdraw.wh_id":{
+                required:"请输入网红id..."
+                },
+                "fairwithdraw.money":{
+                required:"请输入提现金额..."
+                },
+                "fairwithdraw.create_time":{
+                required:"请输入提交时间..."
+                },
+                "fairwithdraw.handle_time":{
+                required:"请输入..."
+                },
+                "fairwithdraw.bank_id":{
+                required:"请输入银行卡表ID..."
+                },
+                "fairwithdraw.status":{
+                required:"请输入状态..."
+                }
+        },
+        onkeyup:false,
+        focusCleanup:true,
+        success:"valid",
+        submitHandler:function(form){
+        var config = {
+        "url":"/admin/fairwithdraw/doAdd",
+        data:$("#fairwithdraw-add").serialize(),
+        "method":"POST"
+        };
+        var backendTool = new BackendTool(config);
+        backendTool.ajaxRequest();
+        }
+    });
+</script>
+#define main()
+     <form class="form form-horizontal" id="fairwithdraw-add">
+        #include("fairwithdraw-form.html")
+     </form>
+#end
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/view/admin/fairwithdraw/edit-fairwithdraw.html b/src/main/webapp/WEB-INF/view/admin/fairwithdraw/edit-fairwithdraw.html
new file mode 100644
index 0000000000000000000000000000000000000000..200c78cbf6c1087a567ff79763384762b2fd96ac
--- /dev/null
+++ b/src/main/webapp/WEB-INF/view/admin/fairwithdraw/edit-fairwithdraw.html
@@ -0,0 +1,63 @@
+#@layout()
+<script>
+    $("#fairwithdraw-edit").validate({
+        rules:{
+                "fairwithdraw.wh_id":{
+                    required:true
+                },
+                "fairwithdraw.money":{
+                    required:true
+                },
+                "fairwithdraw.create_time":{
+                    required:true
+                },
+                "fairwithdraw.handle_time":{
+                    required:true
+                },
+                "fairwithdraw.bank_id":{
+                    required:true
+                },
+                "fairwithdraw.status":{
+                    required:true
+                }
+        },
+        messages:{
+
+                "fairwithdraw.wh_id":{
+                required:"请输入网红id..."
+                },
+                "fairwithdraw.money":{
+                required:"请输入提现金额..."
+                },
+                "fairwithdraw.create_time":{
+                required:"请输入提交时间..."
+                },
+                "fairwithdraw.handle_time":{
+                required:"请输入..."
+                },
+                "fairwithdraw.bank_id":{
+                required:"请输入银行卡表ID..."
+                },
+                "fairwithdraw.status":{
+                required:"请输入状态..."
+                }
+        },
+        onkeyup:false,
+        focusCleanup:true,
+        success:"valid",
+        submitHandler:function(form){
+        var config = {
+        "url":"/admin/fairwithdraw/updateById",
+        data:$("#fairwithdraw-edit").serialize(),
+        "method":"POST"
+        };
+        var backendTool = new BackendTool(config);
+        backendTool.ajaxRequest();
+        }
+    });
+</script>
+#define main()
+    <form class="form form-horizontal" id="fairwithdraw-edit">
+    #include("fairwithdraw-form.html")
+    </form>
+#end
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/view/admin/fairwithdraw/fairwithdraw-detail.html b/src/main/webapp/WEB-INF/view/admin/fairwithdraw/fairwithdraw-detail.html
new file mode 100644
index 0000000000000000000000000000000000000000..ba63a3738879bf3b230b3e803fb69bb807e79336
--- /dev/null
+++ b/src/main/webapp/WEB-INF/view/admin/fairwithdraw/fairwithdraw-detail.html
@@ -0,0 +1,29 @@
+#@layout()
+#define main()
+    <form class="form form-horizontal">
+		    	<div class="row cl">
+		    	<label class="form-label col-xs-4 col-sm-3">网红id:</label>
+		        <div class="formControls col-xs-8 col-sm-9">#(fairwithdraw.wh_id??'')</div>
+		        </div>
+		    	<div class="row cl">
+		    	<label class="form-label col-xs-4 col-sm-3">提现金额:</label>
+		        <div class="formControls col-xs-8 col-sm-9">#(fairwithdraw.money??'')</div>
+		        </div>
+		    	<div class="row cl">
+		    	<label class="form-label col-xs-4 col-sm-3">提交时间:</label>
+		        <div class="formControls col-xs-8 col-sm-9">#(fairwithdraw.create_time??'')</div>
+		        </div>
+		    	<div class="row cl">
+		    	<label class="form-label col-xs-4 col-sm-3">:</label>
+		        <div class="formControls col-xs-8 col-sm-9">#(fairwithdraw.handle_time??'')</div>
+		        </div>
+		    	<div class="row cl">
+		    	<label class="form-label col-xs-4 col-sm-3">银行卡表ID:</label>
+		        <div class="formControls col-xs-8 col-sm-9">#(fairwithdraw.bank_id??'')</div>
+		        </div>
+		    	<div class="row cl">
+		    	<label class="form-label col-xs-4 col-sm-3">状态:</label>
+		        <div class="formControls col-xs-8 col-sm-9">#(fairwithdraw.status??'')</div>
+		        </div>
+    </form>
+#end
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/view/admin/fairwithdraw/fairwithdraw-form.html b/src/main/webapp/WEB-INF/view/admin/fairwithdraw/fairwithdraw-form.html
new file mode 100644
index 0000000000000000000000000000000000000000..4e9d7e4fb192191fa9a8bf6c326321b032f9a2d2
--- /dev/null
+++ b/src/main/webapp/WEB-INF/view/admin/fairwithdraw/fairwithdraw-form.html
@@ -0,0 +1,48 @@
+    <div class="row cl">
+        <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>网红id:</label>
+        <div class="formControls col-xs-8 col-sm-9">
+            <input type="text" class="input-text" value="#(fairwithdraw.wh_id??'')"
+                   maxlength="50" placeholder="请输入网红id..." id="wh_id" name="fairwithdraw.wh_id">
+        </div>
+    </div>
+    <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">
+            <input type="text" class="input-text" value="#(fairwithdraw.money??'')"
+                   maxlength="50" placeholder="请输入提现金额..." id="money" name="fairwithdraw.money">
+        </div>
+    </div>
+    <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">
+            <input type="text" class="input-text" value="#(fairwithdraw.create_time??'')"
+                   maxlength="50" placeholder="请输入提交时间..." id="create_time" name="fairwithdraw.create_time">
+        </div>
+    </div>
+    <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">
+            <input type="text" class="input-text" value="#(fairwithdraw.handle_time??'')"
+                   maxlength="50" placeholder="请输入..." id="handle_time" name="fairwithdraw.handle_time">
+        </div>
+    </div>
+    <div class="row cl">
+        <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>银行卡表ID:</label>
+        <div class="formControls col-xs-8 col-sm-9">
+            <input type="text" class="input-text" value="#(fairwithdraw.bank_id??'')"
+                   maxlength="50" placeholder="请输入银行卡表ID..." id="bank_id" name="fairwithdraw.bank_id">
+        </div>
+    </div>
+    <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">
+            <input type="text" class="input-text" value="#(fairwithdraw.status??'')"
+                   maxlength="50" placeholder="请输入状态..." id="status" name="fairwithdraw.status">
+        </div>
+    </div>
+<div class="row cl">
+    <div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-3">
+        <input type="hidden" value="#(fairwithdraw.id??'')" id="id" name="fairwithdraw.id">
+        <input class="btn btn-primary radius" type="submit" value="  提交  ">
+    </div>
+</div>
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/view/admin/fairwithdraw/fairwithdraw-list.html b/src/main/webapp/WEB-INF/view/admin/fairwithdraw/fairwithdraw-list.html
new file mode 100644
index 0000000000000000000000000000000000000000..a86397c8137d23265be0826dcd302d63479c8478
--- /dev/null
+++ b/src/main/webapp/WEB-INF/view/admin/fairwithdraw/fairwithdraw-list.html
@@ -0,0 +1,151 @@
+#@layout()
+
+#define js()
+    <script>
+    $(function(){
+        var _table;
+        _table =$("#fairwithdraw-list").DataTable( {
+            aLengthMenu:[10,20,50],
+            "processing": true,
+            "serverSide": true,
+            "bLengthChange": false,
+            "bSort":false,
+            searching: false,//屏蔽datatales的查询框
+            "pagingType":   "full_numbers",
+            "ajax":{
+                "url": "/admin/fairwithdraw/listAll",
+                "type": "post",
+                "data": function (params) {
+                        params["fairWithdraw.status"]=$("#status").val();
+                }
+            },
+            "columns": [
+                    { "data": "id" },
+                    { "data": "wh_id" },
+                    { "data": "bank_id" },
+                    { "data": "money" },
+                    { "data": "create_time" },
+                    { "data": "status" },
+                { "data": function(data){
+                    var opt="<a href='javascript:;' onclick='pass("+data.id+")'>处理成功</a>"+"|";
+                     opt+="<a href='javascript:;' onclick='refuse("+data.id+")'>处理失败|</a>";
+                     opt+="<a href='javascript:;' onclick='log("+data.id+")'>查看日志</a>";
+                    return opt;
+                }
+                }
+            ]
+        } );
+        $("#searchBtn").click(function(){
+            _table.ajax.reload();
+        });
+});
+    /*编辑*/
+    function edit(id){
+        var title="编辑";
+        var url="#(contextPath)/admin/fairwithdraw/queryById?id="+id;
+        var w="";
+        var h=510;
+        layer_show(title,url,w,h);
+    }
+    /*添加*/
+    function add(){
+        var title="添加";
+        var url="#(contextPath)/admin/fairwithdraw/add/";
+        var w="";
+        var h=510;
+        layer_show(title,url,w,h);
+    }
+
+    /*删除*/
+    function del(id){
+        var config = {
+        "url":"#(contextPath)/admin/fairwithdraw/deleteById?id="+id,
+        data:{}
+        };
+        var backendTool = new BackendTool(config);
+        backendTool.ajaxRequest();
+    }
+    
+    /*查看详情*/
+    function showdetail(id){
+        var title="查看详情";
+        var url="#(contextPath)/admin/fairwithdraw/showDetail?id="+id;
+        var w="";
+        var h=510;
+        layer_show(title,url,w,h);
+    }
+    
+    
+    /*审核通过*/
+    function pass(id){
+        var config = {
+        "url":"#(contextPath)/admin/fairwithdraw/pass?id="+id,
+        data:{}
+        };
+        var backendTool = new BackendTool(config);
+        backendTool.ajaxRequest();
+    }
+    
+    
+    /*拒绝对话框*/
+    function refuse(id){
+        var title="操作日志";
+        var url="#(contextPath)/admin/fairwithdraw/toRefuse?id="+id;
+        var w="";
+        var h=510;
+        layer_show(title,url,w,h);
+    }
+    
+    /*操作日志*/
+    function log(id){
+        var title="操作日志";
+        var url="#(contextPath)/admin/opertion/queryLog?id="+id+"&taskType=6";
+        var w="";
+        var h=510;
+        layer_show(title,url,w,h);
+    }
+    
+    </script>
+#end
+
+#define main()
+    #@breadcrumb(["网红管理","网红提现管理列表"])
+   <div class="page-container">
+       <div class="text-c">
+       		提现申请状态:
+           <span class="select-box inline">
+				<select name="fairWithDraw.status" class="select" id="status">
+					<option value="-1">==请选择==</option>
+					<option value="1">等待处理</option>
+					<option value="2">处理成功</option>
+					<option value="3">处理失败</option>
+				</select>
+			</span>
+           <button name="" id="searchBtn" class="btn btn-success" type="submit"><i class="Hui-iconfont">&#xe665;</i>检索</button>
+       </div>
+       #--
+       <div class="cl pd-5 bg-1 bk-gray mt-20">
+		    <span class="l">
+		        <a href="javascript:;" onclick="add()" class="btn btn-primary radius">添加</a>
+		    </span>
+           <span class="r"></div>
+           --#
+       <div class="mt-20">
+           <table class="table table-border table-bordered table-bg table-hover table-sort" id="fairwithdraw-list">
+               <thead>
+               <tr class="text-c">
+                     <th>ID</th>
+                     <th>网红id</th>
+                     <th>所属银行</th>
+                     <th>提现金额(单位:元)</th>
+                     <th>提交时间</th>
+                     <th>状态</th>
+                   	 <th>操作</th>
+               </tr>
+               </thead>
+               <tbody>
+               </tbody>
+           </table>
+       </div>
+   </div>
+#end
\ 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
new file mode 100644
index 0000000000000000000000000000000000000000..7358b4ff9b0ba757ab8438e5174843fc476c516c
--- /dev/null
+++ b/src/main/webapp/WEB-INF/view/admin/fairwithdraw/fairwithdraw-reason.html
@@ -0,0 +1,44 @@
+#@layout()
+<script>
+    $("#fairwithdraw-reason").validate({
+        rules:{
+                "content":{
+                    required:true
+                }
+        
+        },
+        messages:{
+                "content":{
+                	required:"请输入拒绝理由..."
+                }
+        },
+        onkeyup:false,
+        focusCleanup:true,
+        success:"valid",
+        submitHandler:function(form){
+        var config = {
+        "url":"#(contextPath)/admin/fairwithdraw/unpass",
+        data:$("#fairwithdraw-reason").serialize(),
+        "method":"POST"
+        };
+        var backendTool = new BackendTool(config);
+        backendTool.ajaxRequest();
+        }
+    });
+</script>
+#define main()
+    <form class="form form-horizontal" id="fairwithdraw-reason">
+   		<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个字符..."></textarea>
+	        </div>
+	    </div>
+	    <div class="row cl">
+		    <div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-3">
+			        <input type="hidden" value="#(fairWithdraw.id??'')" id="id" name="fairWithdraw.id">
+			        <input class="btn btn-primary radius" type="submit" value="  提交  ">
+			    </div>
+			</div>
+    </form>
+#end
\ No newline at end of file
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 621b740a4862ead74bd1dc86331b5e2685918f44..ea3b2ad94517aa893bb63a8fa0141cb6f49159c3 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
@@ -89,9 +89,9 @@
     <div class="g-fair-task-info">
         <div class="u-title">任务信息</div>
         <ul class="m-list" id="data" >
-
+	
         </ul>
-        <div class="m-choice-page" id="m_choice_page"></div>
+        <div class="m-choice-page" id="m_choice_page" style="margin-top:15px;text-align:center"></div>
     </div>
 </div>
 #end
diff --git a/src/main/webapp/WEB-INF/view/web/passport/_form.html b/src/main/webapp/WEB-INF/view/web/passport/_form.html
index df42f5f05916f07599f3cddad1fc6205f123260c..431fd807a4a223099d094b56d24a171870c66b34 100644
--- a/src/main/webapp/WEB-INF/view/web/passport/_form.html
+++ b/src/main/webapp/WEB-INF/view/web/passport/_form.html
@@ -1,4 +1,7 @@
 <div class="c-article">
+
+		<input type="hidden" name="authenticate.logo"
+			id="logo_val" value="#(auth.logo??'')" /> 
 		<input type="hidden" name="authenticate.company_license"
 			id="license_val" value="#(auth.company_license??'')" /> 
 			
@@ -58,6 +61,26 @@
 			</div>
 			<div class="u-title" style="margin-top: 30px;">认证信息</div>
 			<div class="m-panel">
+				<div class="m-row">
+					<div class="u-row-title">公司LOGO:</div>
+					<div class="u-row-box">
+						<div class="u-row-box-upload u-row-box-upload-left">
+							<div class="u-row-cell-upload" style="align-items: initial;">
+								<input type="file" style="display: none" />
+								<div style="text-align:center" id="logo">
+									选择图片(限1M以内)
+								</div>
+								<p id="process"></p>
+								<div id="logo_container" style="margin-left:20px;"class="u-row-cell-upload-btn">
+									#if(auth)
+										<div class="u-row-cell-upload-btn-border" style="background: url('#(auth.logo)') center/contain no-repeat"></div>
+									#end
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+				
 				<div class="m-row">
 					<div class="u-row-title">营业执照:</div>
 					<div class="u-row-box">
diff --git a/src/main/webapp/assets/front/img/bilibili.png b/src/main/webapp/assets/front/img/bilibili.png
new file mode 100644
index 0000000000000000000000000000000000000000..abd229702a7fd78a2e8e76b304a3b1124915d1e3
Binary files /dev/null and b/src/main/webapp/assets/front/img/bilibili.png differ
diff --git a/src/main/webapp/assets/front/img/bilibili_selected.png b/src/main/webapp/assets/front/img/bilibili_selected.png
new file mode 100644
index 0000000000000000000000000000000000000000..4e5cd6d754e6faef79f8e547b8cee044ee88ae97
Binary files /dev/null and b/src/main/webapp/assets/front/img/bilibili_selected.png differ
diff --git a/src/main/webapp/assets/front/img/changge.png b/src/main/webapp/assets/front/img/changge.png
new file mode 100644
index 0000000000000000000000000000000000000000..4132d96a4780960d1136cd5b4f60fdde933f36f3
Binary files /dev/null and b/src/main/webapp/assets/front/img/changge.png differ
diff --git a/src/main/webapp/assets/front/img/changge_selected.png b/src/main/webapp/assets/front/img/changge_selected.png
new file mode 100644
index 0000000000000000000000000000000000000000..1eab338e47fa50ecd9b64775c87fd90a83351d73
Binary files /dev/null and b/src/main/webapp/assets/front/img/changge_selected.png differ
diff --git a/src/main/webapp/assets/front/img/daigou.png b/src/main/webapp/assets/front/img/daigou.png
new file mode 100644
index 0000000000000000000000000000000000000000..0c0a7ba327ade7cff8a0e41494fdacaabd509030
Binary files /dev/null and b/src/main/webapp/assets/front/img/daigou.png differ
diff --git a/src/main/webapp/assets/front/img/daigou_selected.png b/src/main/webapp/assets/front/img/daigou_selected.png
new file mode 100644
index 0000000000000000000000000000000000000000..9e6193ef180c70ff07268c40a3a18de2d6d1242d
Binary files /dev/null and b/src/main/webapp/assets/front/img/daigou_selected.png differ
diff --git a/src/main/webapp/assets/front/img/dianying.png b/src/main/webapp/assets/front/img/dianying.png
new file mode 100644
index 0000000000000000000000000000000000000000..43c27d7375b6805260f540c89dcd128d42c0d557
Binary files /dev/null and b/src/main/webapp/assets/front/img/dianying.png differ
diff --git a/src/main/webapp/assets/front/img/dianying_selected.png b/src/main/webapp/assets/front/img/dianying_selected.png
new file mode 100644
index 0000000000000000000000000000000000000000..c3e8db843dbb4ac0410e1cc0357ec8666e5a4051
Binary files /dev/null and b/src/main/webapp/assets/front/img/dianying_selected.png differ
diff --git a/src/main/webapp/assets/front/img/donghua.png b/src/main/webapp/assets/front/img/donghua.png
new file mode 100644
index 0000000000000000000000000000000000000000..afc0400e071ccd0e098fbba56e4fbb86aae69984
Binary files /dev/null and b/src/main/webapp/assets/front/img/donghua.png differ
diff --git a/src/main/webapp/assets/front/img/donghua_selected.png b/src/main/webapp/assets/front/img/donghua_selected.png
new file mode 100644
index 0000000000000000000000000000000000000000..998c81e4da588f0b32c523bac8078b68540b9f24
Binary files /dev/null and b/src/main/webapp/assets/front/img/donghua_selected.png differ
diff --git a/src/main/webapp/assets/front/img/douyu.png b/src/main/webapp/assets/front/img/douyu.png
new file mode 100644
index 0000000000000000000000000000000000000000..e85fafa0673c9ede1008d5ff38813ebe19350310
Binary files /dev/null and b/src/main/webapp/assets/front/img/douyu.png differ
diff --git a/src/main/webapp/assets/front/img/douyu_selected.png b/src/main/webapp/assets/front/img/douyu_selected.png
new file mode 100644
index 0000000000000000000000000000000000000000..e094a0bfe2aab53a4b04b479c8b164c21e4ea222
Binary files /dev/null and b/src/main/webapp/assets/front/img/douyu_selected.png differ
diff --git a/src/main/webapp/assets/front/img/gongshang.png b/src/main/webapp/assets/front/img/gongshang.png
new file mode 100644
index 0000000000000000000000000000000000000000..4a6fc26dfd49ebb50e3336b4d843d1ce40ec37cf
Binary files /dev/null and b/src/main/webapp/assets/front/img/gongshang.png differ
diff --git a/src/main/webapp/assets/front/img/huahua.png b/src/main/webapp/assets/front/img/huahua.png
new file mode 100644
index 0000000000000000000000000000000000000000..17bc27342e7fb3a7d66bffe303591f29e9243f03
Binary files /dev/null and b/src/main/webapp/assets/front/img/huahua.png differ
diff --git a/src/main/webapp/assets/front/img/huahua_selected.png b/src/main/webapp/assets/front/img/huahua_selected.png
new file mode 100644
index 0000000000000000000000000000000000000000..1205c45ae2da904d4ca435b121e8cdb6e99e5412
Binary files /dev/null and b/src/main/webapp/assets/front/img/huahua_selected.png differ
diff --git a/src/main/webapp/assets/front/img/huajiao.png b/src/main/webapp/assets/front/img/huajiao.png
new file mode 100644
index 0000000000000000000000000000000000000000..6985c115f34b934483d40ae42a6df099ed1544f2
Binary files /dev/null and b/src/main/webapp/assets/front/img/huajiao.png differ
diff --git a/src/main/webapp/assets/front/img/huajiao_selected.png b/src/main/webapp/assets/front/img/huajiao_selected.png
new file mode 100644
index 0000000000000000000000000000000000000000..b445de77ce4cde2490d5fd3f001aadc51ff2161e
Binary files /dev/null and b/src/main/webapp/assets/front/img/huajiao_selected.png differ
diff --git a/src/main/webapp/assets/front/img/huaxia.png b/src/main/webapp/assets/front/img/huaxia.png
new file mode 100644
index 0000000000000000000000000000000000000000..6f8f60286e324e236b02b787a0b20ea757717fcb
Binary files /dev/null and b/src/main/webapp/assets/front/img/huaxia.png differ
diff --git a/src/main/webapp/assets/front/img/huomao.png b/src/main/webapp/assets/front/img/huomao.png
new file mode 100644
index 0000000000000000000000000000000000000000..16e41f312759961ee13b475aef6ff298f05e7370
Binary files /dev/null and b/src/main/webapp/assets/front/img/huomao.png differ
diff --git a/src/main/webapp/assets/front/img/huomao_selected.png b/src/main/webapp/assets/front/img/huomao_selected.png
new file mode 100644
index 0000000000000000000000000000000000000000..43eccc170fc93468d931d47e95cc70bade1b5a74
Binary files /dev/null and b/src/main/webapp/assets/front/img/huomao_selected.png differ
diff --git a/src/main/webapp/assets/front/img/huya.png b/src/main/webapp/assets/front/img/huya.png
new file mode 100644
index 0000000000000000000000000000000000000000..8be9aa818790532b0a4ec2843cd036a8a467f156
Binary files /dev/null and b/src/main/webapp/assets/front/img/huya.png differ
diff --git a/src/main/webapp/assets/front/img/huya_selected.png b/src/main/webapp/assets/front/img/huya_selected.png
new file mode 100644
index 0000000000000000000000000000000000000000..8f07dc62579567ba95cc4e008ee3de2789cb819a
Binary files /dev/null and b/src/main/webapp/assets/front/img/huya_selected.png differ
diff --git a/src/main/webapp/assets/front/img/jianshe.png b/src/main/webapp/assets/front/img/jianshe.png
new file mode 100644
index 0000000000000000000000000000000000000000..718107b20e7c522af8c1db7f2e2fc295f02c3b0d
Binary files /dev/null and b/src/main/webapp/assets/front/img/jianshe.png differ
diff --git a/src/main/webapp/assets/front/img/kk.png b/src/main/webapp/assets/front/img/kk.png
new file mode 100644
index 0000000000000000000000000000000000000000..4fcd4f1ae899d1d8002b48a356c60511e5487121
Binary files /dev/null and b/src/main/webapp/assets/front/img/kk.png differ
diff --git a/src/main/webapp/assets/front/img/kk_selected.png b/src/main/webapp/assets/front/img/kk_selected.png
new file mode 100644
index 0000000000000000000000000000000000000000..0c1be97ab7c4b1d63e7fedb37a81b417fd86b2bd
Binary files /dev/null and b/src/main/webapp/assets/front/img/kk_selected.png differ
diff --git a/src/main/webapp/assets/front/img/longzhu.png b/src/main/webapp/assets/front/img/longzhu.png
new file mode 100644
index 0000000000000000000000000000000000000000..ba6ed36fd47da26d42d7cbe9d66cecb6a756f25d
Binary files /dev/null and b/src/main/webapp/assets/front/img/longzhu.png differ
diff --git a/src/main/webapp/assets/front/img/longzhu_selected.png b/src/main/webapp/assets/front/img/longzhu_selected.png
new file mode 100644
index 0000000000000000000000000000000000000000..98fa8243544c5def0a6940be635fcf4eb6dc80d4
Binary files /dev/null and b/src/main/webapp/assets/front/img/longzhu_selected.png differ
diff --git a/src/main/webapp/assets/front/img/lvyou.png b/src/main/webapp/assets/front/img/lvyou.png
new file mode 100644
index 0000000000000000000000000000000000000000..aa1026ec306c48adf5297a2d92213f989d2fc29f
Binary files /dev/null and b/src/main/webapp/assets/front/img/lvyou.png differ
diff --git a/src/main/webapp/assets/front/img/lvyou_selected.png b/src/main/webapp/assets/front/img/lvyou_selected.png
new file mode 100644
index 0000000000000000000000000000000000000000..1aec99e432bd7cfda2d153a38c8ff6483ce0dc3e
Binary files /dev/null and b/src/main/webapp/assets/front/img/lvyou_selected.png differ
diff --git a/src/main/webapp/assets/front/img/migu.png b/src/main/webapp/assets/front/img/migu.png
new file mode 100644
index 0000000000000000000000000000000000000000..2d6c1d41b83c50e0566966024be61cc58b754b17
Binary files /dev/null and b/src/main/webapp/assets/front/img/migu.png differ
diff --git a/src/main/webapp/assets/front/img/migu_selected.png b/src/main/webapp/assets/front/img/migu_selected.png
new file mode 100644
index 0000000000000000000000000000000000000000..114693e6100d512c66920e729dbf135c686c22de
Binary files /dev/null and b/src/main/webapp/assets/front/img/migu_selected.png differ
diff --git a/src/main/webapp/assets/front/img/nongye.png b/src/main/webapp/assets/front/img/nongye.png
new file mode 100644
index 0000000000000000000000000000000000000000..17b998ed0e2912e1aac9e4c567743efcfb6c3f80
Binary files /dev/null and b/src/main/webapp/assets/front/img/nongye.png differ
diff --git a/src/main/webapp/assets/front/img/pufa.png b/src/main/webapp/assets/front/img/pufa.png
new file mode 100644
index 0000000000000000000000000000000000000000..ddf7ee7f3396a1f1f70d486c21c003ce8f2d898b
Binary files /dev/null and b/src/main/webapp/assets/front/img/pufa.png differ
diff --git a/src/main/webapp/assets/front/img/sheji.png b/src/main/webapp/assets/front/img/sheji.png
new file mode 100644
index 0000000000000000000000000000000000000000..24e247b6c0a7409409614cf17ab3a2653762f443
Binary files /dev/null and b/src/main/webapp/assets/front/img/sheji.png differ
diff --git a/src/main/webapp/assets/front/img/sheji_selected.png b/src/main/webapp/assets/front/img/sheji_selected.png
new file mode 100644
index 0000000000000000000000000000000000000000..48d0b723a8a543a0817caaecc0503b1c7b354840
Binary files /dev/null and b/src/main/webapp/assets/front/img/sheji_selected.png differ
diff --git a/src/main/webapp/assets/front/img/shejiao.png b/src/main/webapp/assets/front/img/shejiao.png
new file mode 100644
index 0000000000000000000000000000000000000000..de65285e7cb60c1e6ef9736c218678d939a45426
Binary files /dev/null and b/src/main/webapp/assets/front/img/shejiao.png differ
diff --git a/src/main/webapp/assets/front/img/shejiao_selected.png b/src/main/webapp/assets/front/img/shejiao_selected.png
new file mode 100644
index 0000000000000000000000000000000000000000..6605c20b28f740c4dbf305e671b9aa5aa382fc8c
Binary files /dev/null and b/src/main/webapp/assets/front/img/shejiao_selected.png differ
diff --git a/src/main/webapp/assets/front/img/shuping.png b/src/main/webapp/assets/front/img/shuping.png
new file mode 100644
index 0000000000000000000000000000000000000000..09129dcb7b2e7a18c741eb2891ce2ccc6fcacab6
Binary files /dev/null and b/src/main/webapp/assets/front/img/shuping.png differ
diff --git a/src/main/webapp/assets/front/img/shuping_selected.png b/src/main/webapp/assets/front/img/shuping_selected.png
new file mode 100644
index 0000000000000000000000000000000000000000..e4a94adc5d07772597bfc3411c83f14139e93b3b
Binary files /dev/null and b/src/main/webapp/assets/front/img/shuping_selected.png differ
diff --git a/src/main/webapp/assets/front/img/tiaowu.png b/src/main/webapp/assets/front/img/tiaowu.png
new file mode 100644
index 0000000000000000000000000000000000000000..eb94c6566e77c06778763d0aad807faf2115f9eb
Binary files /dev/null and b/src/main/webapp/assets/front/img/tiaowu.png differ
diff --git a/src/main/webapp/assets/front/img/tiaowu_selected.png b/src/main/webapp/assets/front/img/tiaowu_selected.png
new file mode 100644
index 0000000000000000000000000000000000000000..c8672114b403d50afbfbf9a0d99f87ef17897583
Binary files /dev/null and b/src/main/webapp/assets/front/img/tiaowu_selected.png differ
diff --git a/src/main/webapp/assets/front/img/x.jpg b/src/main/webapp/assets/front/img/x.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..439e11f4cfb03f943a789e4d15e47cd70c7f3d97
Binary files /dev/null and b/src/main/webapp/assets/front/img/x.jpg differ
diff --git a/src/main/webapp/assets/front/img/xiongmao.png b/src/main/webapp/assets/front/img/xiongmao.png
new file mode 100644
index 0000000000000000000000000000000000000000..92e0a633470d22546b9a8e748138fde4bafd89d2
Binary files /dev/null and b/src/main/webapp/assets/front/img/xiongmao.png differ
diff --git a/src/main/webapp/assets/front/img/xiongmao_selected.png b/src/main/webapp/assets/front/img/xiongmao_selected.png
new file mode 100644
index 0000000000000000000000000000000000000000..315b493f25700bc0c5db244d23e877f11738e665
Binary files /dev/null and b/src/main/webapp/assets/front/img/xiongmao_selected.png differ
diff --git a/src/main/webapp/assets/front/img/yi.png b/src/main/webapp/assets/front/img/yi.png
new file mode 100644
index 0000000000000000000000000000000000000000..bc92e21ffd82d56b77ebedde80a4a916e72ef8df
Binary files /dev/null and b/src/main/webapp/assets/front/img/yi.png differ
diff --git a/src/main/webapp/assets/front/img/yi_selected.png b/src/main/webapp/assets/front/img/yi_selected.png
new file mode 100644
index 0000000000000000000000000000000000000000..2edb9d3f45d9a2d2edc4acfc7429bc26d80e5f02
Binary files /dev/null and b/src/main/webapp/assets/front/img/yi_selected.png differ
diff --git a/src/main/webapp/assets/front/img/yingke.png b/src/main/webapp/assets/front/img/yingke.png
new file mode 100644
index 0000000000000000000000000000000000000000..4006db435d52ee06bae2eb0ca1c1c45000c044fd
Binary files /dev/null and b/src/main/webapp/assets/front/img/yingke.png differ
diff --git a/src/main/webapp/assets/front/img/yingke_selected.png b/src/main/webapp/assets/front/img/yingke_selected.png
new file mode 100644
index 0000000000000000000000000000000000000000..db5e97f985fa5e2ca9f06690a8c644514de86875
Binary files /dev/null and b/src/main/webapp/assets/front/img/yingke_selected.png differ
diff --git a/src/main/webapp/assets/front/img/youxi.png b/src/main/webapp/assets/front/img/youxi.png
new file mode 100644
index 0000000000000000000000000000000000000000..b3540c7a39cd4da9596e71a3903c1126ef3c99ed
Binary files /dev/null and b/src/main/webapp/assets/front/img/youxi.png differ
diff --git a/src/main/webapp/assets/front/img/youxi_selected.png b/src/main/webapp/assets/front/img/youxi_selected.png
new file mode 100644
index 0000000000000000000000000000000000000000..60bbc55cafe7e53c695b925d2bead07eec425e9e
Binary files /dev/null and b/src/main/webapp/assets/front/img/youxi_selected.png differ
diff --git a/src/main/webapp/assets/front/img/yundong.png b/src/main/webapp/assets/front/img/yundong.png
new file mode 100644
index 0000000000000000000000000000000000000000..4d8315a43966617869b10553608bbda5253a3300
Binary files /dev/null and b/src/main/webapp/assets/front/img/yundong.png differ
diff --git a/src/main/webapp/assets/front/img/yundong_selected.png b/src/main/webapp/assets/front/img/yundong_selected.png
new file mode 100644
index 0000000000000000000000000000000000000000..64c980f23e8d0dc1885de035d8a311c08f6ecc25
Binary files /dev/null and b/src/main/webapp/assets/front/img/yundong_selected.png differ
diff --git a/src/main/webapp/assets/front/img/zhanqi.png b/src/main/webapp/assets/front/img/zhanqi.png
new file mode 100644
index 0000000000000000000000000000000000000000..195612c07851a25e830831896dfb8012fa754b8b
Binary files /dev/null and b/src/main/webapp/assets/front/img/zhanqi.png differ
diff --git a/src/main/webapp/assets/front/img/zhanqi_selected.png b/src/main/webapp/assets/front/img/zhanqi_selected.png
new file mode 100644
index 0000000000000000000000000000000000000000..f0ad14ed357afccacb416a241ffd6e7b40a52514
Binary files /dev/null and b/src/main/webapp/assets/front/img/zhanqi_selected.png differ
diff --git a/src/main/webapp/assets/front/img/zhaoshang.png b/src/main/webapp/assets/front/img/zhaoshang.png
new file mode 100644
index 0000000000000000000000000000000000000000..a2450f36375e8a728f4e49ceb60bde61a46106a0
Binary files /dev/null and b/src/main/webapp/assets/front/img/zhaoshang.png differ
diff --git a/src/main/webapp/assets/front/img/zhongguo.png b/src/main/webapp/assets/front/img/zhongguo.png
new file mode 100644
index 0000000000000000000000000000000000000000..c8b61e0b0d869ca763cc47d312aef602a9da11e7
Binary files /dev/null and b/src/main/webapp/assets/front/img/zhongguo.png differ
diff --git a/src/main/webapp/assets/front/web/script/auth_form.js b/src/main/webapp/assets/front/web/script/auth_form.js
index 16f2e6178e5e67eb13e0f0961193e9b881d55275..4135ba6bd46d71584c838fa0e1c7975dad324617 100644
--- a/src/main/webapp/assets/front/web/script/auth_form.js
+++ b/src/main/webapp/assets/front/web/script/auth_form.js
@@ -61,6 +61,7 @@ function initUploader(uploadBtn){
 
 
 const init = ()=>{
+	initUploader("logo");
 	initUploader("license");
 	initUploader("idcardFront");
 	initUploader("idcardTails");
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 ea7527cc95dd500fb0fffecbd53b606465fa11f3..944b23f09f726169cb6ad4537b34abee2a59807f 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
@@ -92,7 +92,7 @@ const load = number => {
                 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>"
+                _html="<li style='margin:15px;color:red'>暂时相关记录信息</li>"
                 $("#m_choice_page").hide();
             }
             $("#data").html(_html);