Browse Source

Merge remote-tracking branch 'origin/test'

anderx 8 years ago
parent
commit
8762fb7c4d
66 changed files with 2250 additions and 465 deletions
  1. 2 2
      GeneratorConfig.xml
  2. 11 0
      src/main/java/com/goafanti/achievement/bo/InputAchievement.java
  3. 1 1
      src/main/java/com/goafanti/achievement/service/AchievementService.java
  4. 8 5
      src/main/java/com/goafanti/achievement/service/impl/AchievementServiceImpl.java
  5. 1 0
      src/main/java/com/goafanti/admin/bo/BusinessProjectBo.java
  6. 1 0
      src/main/java/com/goafanti/admin/bo/ProjectSizeBo.java
  7. 8 3
      src/main/java/com/goafanti/admin/controller/AdminAchievementApiController.java
  8. 4 4
      src/main/java/com/goafanti/admin/controller/AdminUserCertifyApiController.java
  9. 1 0
      src/main/java/com/goafanti/admin/service/AdminService.java
  10. 6 0
      src/main/java/com/goafanti/admin/service/impl/AdminServiceImpl.java
  11. 10 18
      src/main/java/com/goafanti/common/constant/AFTConstants.java
  12. 25 25
      src/main/java/com/goafanti/common/controller/PortalController.java
  13. 6 5
      src/main/java/com/goafanti/common/controller/WebpageController.java
  14. 2 0
      src/main/java/com/goafanti/common/dao/AdminMapper.java
  15. 6 0
      src/main/java/com/goafanti/common/dao/NewsMapper.java
  16. 11 11
      src/main/java/com/goafanti/common/dao/UserIdentityMapper.java
  17. 3 3
      src/main/java/com/goafanti/common/dao/UserMapper.java
  18. 6 4
      src/main/java/com/goafanti/common/enums/IdentityProcess.java
  19. 88 81
      src/main/java/com/goafanti/common/error/SystemExceptionResolver.java
  20. 14 15
      src/main/java/com/goafanti/common/mapper/AchievementMapper.xml
  21. 19 4
      src/main/java/com/goafanti/common/mapper/AdminMapper.xml
  22. 2 2
      src/main/java/com/goafanti/common/mapper/BusinessProjectMapper.xml
  23. 5 5
      src/main/java/com/goafanti/common/mapper/DemandMapper.xml
  24. 39 4
      src/main/java/com/goafanti/common/mapper/NewsMapper.xml
  25. 9 0
      src/main/java/com/goafanti/common/mapper/NewsMapperExt.xml
  26. 1 1
      src/main/java/com/goafanti/common/mapper/ProjectSizeMapper.xml
  27. 3 3
      src/main/java/com/goafanti/common/mapper/StarMapper.xml
  28. 40 23
      src/main/java/com/goafanti/common/mapper/UserIdentityMapper.xml
  29. 2 2
      src/main/java/com/goafanti/common/mapper/UserInterestMapper.xml
  30. 7 7
      src/main/java/com/goafanti/common/mapper/UserMapper.xml
  31. 192 5
      src/main/java/com/goafanti/common/mapper/UserMapperExt.xml
  32. 13 0
      src/main/java/com/goafanti/common/model/Admin.java
  33. 10 0
      src/main/java/com/goafanti/common/model/MemberOrder.java
  34. 1 1
      src/main/java/com/goafanti/common/model/User.java
  35. 137 114
      src/main/java/com/goafanti/common/model/UserIdentity.java
  36. 86 16
      src/main/java/com/goafanti/common/model/UserIdentityExample.java
  37. 335 0
      src/main/java/com/goafanti/common/utils/DateUtils.java
  38. 12 1
      src/main/java/com/goafanti/core/shiro/token/ShiroToken.java
  39. 2 1
      src/main/java/com/goafanti/core/shiro/token/TokenManager.java
  40. 7 0
      src/main/java/com/goafanti/customer/bo/CustomerOrganizationDetailBo.java
  41. 7 0
      src/main/java/com/goafanti/customer/bo/CustomerPersonalDetailBo.java
  42. 206 0
      src/main/java/com/goafanti/customer/bo/StatisticBo.java
  43. 1 0
      src/main/java/com/goafanti/customer/bo/UserDetailBo.java
  44. 147 1
      src/main/java/com/goafanti/customer/controller/CustomerApiController.java
  45. 28 1
      src/main/java/com/goafanti/customer/service/CustomerService.java
  46. 87 40
      src/main/java/com/goafanti/customer/service/impl/CustomerServiceImpl.java
  47. 12 0
      src/main/java/com/goafanti/demand/bo/InputDemand.java
  48. 1 1
      src/main/java/com/goafanti/memberGrade/controller/MemberGradeFrontController.java
  49. 10 1
      src/main/java/com/goafanti/news/service/NewsService.java
  50. 1 0
      src/main/java/com/goafanti/permission/bo/PermissionBo.java
  51. 1 0
      src/main/java/com/goafanti/permission/controller/NewPermissionApiController.java
  52. 10 0
      src/main/java/com/goafanti/portal/bo/AchievementSearchListBo.java
  53. 12 0
      src/main/java/com/goafanti/portal/bo/DemandSearchListBo.java
  54. 3 3
      src/main/java/com/goafanti/portal/bo/UserSubscriberListBo.java
  55. 6 6
      src/main/java/com/goafanti/user/controller/UserApiController.java
  56. 2 0
      src/main/java/com/goafanti/user/controller/UserRegisterController.java
  57. 0 2
      src/main/java/com/goafanti/user/service/UserService.java
  58. 0 2
      src/main/java/com/goafanti/user/service/impl/UserIdentityServiceImpl.java
  59. 0 5
      src/main/java/com/goafanti/user/service/impl/UserServiceImpl.java
  60. 519 0
      src/main/resources/spring-context-4.0.xsd
  61. 9 3
      src/main/webapp/WEB-INF/views/common.html
  62. 4 4
      src/main/webapp/WEB-INF/views/portal/financial/index.html
  63. 2 0
      src/main/webapp/WEB-INF/views/portal/technologyTrading/achievementOrder.html
  64. 2 1
      src/main/webapp/WEB-INF/views/portal/technologyTrading/assessMent.html
  65. 28 13
      src/main/webapp/WEB-INF/views/portal/technologyTrading/demandOrder.html
  66. 16 16
      src/main/webapp/WEB-INF/views/portal/technologyTrading/index.html

+ 2 - 2
GeneratorConfig.xml

@@ -1,13 +1,13 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
 <generatorConfiguration>
-  <classPathEntry location="C:/Users/Administrator/.dbeaver-drivers/maven/maven-central/mysql/mysql-connector-java-5.1.44.jar" />
+  <classPathEntry location="E:/mysql-connector-java-5.1.40.jar" />
   <context id="context1">	
     <jdbcConnection connectionURL="jdbc:mysql://192.168.1.213:3306/aft" 
     	driverClass="com.mysql.jdbc.Driver" password="123456" userId="dev" />
     <javaModelGenerator targetPackage="com.goafanti.common.model" targetProject="AFT" />
     <sqlMapGenerator targetPackage="com.goafanti.common.mapper" targetProject="AFT" />
     <javaClientGenerator targetPackage="com.goafanti.common.dao" targetProject="AFT" type="XMLMAPPER" />
-    <table schema="aft" tableName="business_varieties"/>
+    <table schema="aft" tableName="user_identity"/>
   </context>
 </generatorConfiguration>

+ 11 - 0
src/main/java/com/goafanti/achievement/bo/InputAchievement.java

@@ -171,6 +171,17 @@ public class InputAchievement {
 	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
 	private Integer    boutique;
 	
+	@Max(value = 1, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	private Integer internationalFlag;
+	public Integer getInternationalFlag() {
+		return internationalFlag;
+	}
+
+	public void setInternationalFlag(Integer internationalFlag) {
+		this.internationalFlag = internationalFlag;
+	}
+
 	public String getId() {
 		return id;
 	}

+ 1 - 1
src/main/java/com/goafanti/achievement/service/AchievementService.java

@@ -41,7 +41,7 @@ public interface AchievementService {
 
 	Pagination<AchievementListBo> listOrgOwnerAchievement(String unitName, String ownerName, String ownerId, Integer auditStatus, Integer serialNumber,
 			String name, String keyword, Integer category, Integer status, String releaseDateStartDate,
-			String releaseDateEndDate, Integer releaseStatus, Integer pNo, Integer pSize,Integer boutique,Integer hot);
+			String releaseDateEndDate, Integer releaseStatus,String internationalFlag, Integer pNo, Integer pSize,Integer boutique,Integer hot);
 
 	AchievementUserOwnerDetailBo selectUserOwnerDetail(String id);
 

+ 8 - 5
src/main/java/com/goafanti/achievement/service/impl/AchievementServiceImpl.java

@@ -96,7 +96,7 @@ public class AchievementServiceImpl extends BaseMybatisDao<AchievementMapper> im
 			Integer boutique, Integer hot) {
 		Map<String, Object> params = disposeParams(username, ownerName, ownerId, auditStatus, serialNumber, name, keyword, category, status,
 				releaseDateStartDate, releaseDateEndDate, releaseStatus, UserType.ORGANIZATION.getCode(),
-				boutique, hot);
+				boutique,null, hot);
 		if (pNo == null || pNo < 0) {
 			pNo = 1;
 		}
@@ -117,11 +117,11 @@ public class AchievementServiceImpl extends BaseMybatisDao<AchievementMapper> im
 	@Override
 	public Pagination<AchievementListBo> listOrgOwnerAchievement(String unitName, String ownerName, String ownerId,
 			Integer auditStatus, Integer serialNumber, String name, String keyword, Integer category, Integer status,
-			String releaseDateStartDate, String releaseDateEndDate, Integer releaseStatus, Integer pNo, Integer pSize,
+			String releaseDateStartDate, String releaseDateEndDate, Integer releaseStatus, String internationalFlag,Integer pNo, Integer pSize,
 			Integer boutique, Integer hot) {
 		Map<String, Object> params = disposeParams(unitName, ownerName, ownerId, auditStatus, serialNumber, name, keyword, category, status,
 				releaseDateStartDate, releaseDateEndDate, releaseStatus, UserType.ORGANIZATION.getCode(),
-				boutique, hot);
+				boutique,internationalFlag, hot);
 		if (pNo == null || pNo < 0) {
 			pNo = 1;
 		}
@@ -212,14 +212,14 @@ public class AchievementServiceImpl extends BaseMybatisDao<AchievementMapper> im
 		}
 		return (Pagination<AchievementListBo>) findPage("findAchievementListByPage", "findAchievementCount",
 				disposeParams(null, null, TokenManager.getUserId(), auditStatus, serialNumber, name, keyword, category,
-						status, releaseDateStartDate, releaseDateEndDate, releaseStatus, null, null, null),
+						status, releaseDateStartDate, releaseDateEndDate, releaseStatus, null, null,null, null),
 				pNo, pSize);
 	}
 
 	private Map<String, Object> disposeParams(String username, String ownerName, String ownerId, Integer auditStatus,
 			Integer serialNumber, String name, String keyword, Integer category, Integer status,
 			String releaseDateStartDate, String releaseDateEndDate, Integer releaseStatus, Integer type,
-			Integer boutique, Integer hot) {
+			Integer boutique,String internationalFlag, Integer hot) {
 		Map<String, Object> params = new HashMap<>();
 
 		Date rStart = null;
@@ -296,6 +296,9 @@ public class AchievementServiceImpl extends BaseMybatisDao<AchievementMapper> im
 		if (null != hot) {
 			params.put("hot", hot);
 		}
+		if (null != internationalFlag) {
+			params.put("internationalFlag", internationalFlag);
+		}
 		if (!TokenManager.hasRole(AFTConstants.SUPERADMIN) && !TokenManager.hasRole(AFTConstants.AUDITORADMIN)) {
 			params.put("techBrokerId", TokenManager.getAdminId());
 		}

+ 1 - 0
src/main/java/com/goafanti/admin/bo/BusinessProjectBo.java

@@ -1,5 +1,6 @@
 package com.goafanti.admin.bo;
 
+
 import java.math.BigDecimal;
 import java.util.Date;
 

+ 1 - 0
src/main/java/com/goafanti/admin/bo/ProjectSizeBo.java

@@ -1,5 +1,6 @@
 package com.goafanti.admin.bo;
 
+
 import java.math.BigDecimal;
 import java.util.Date;
 

+ 8 - 3
src/main/java/com/goafanti/admin/controller/AdminAchievementApiController.java

@@ -84,7 +84,7 @@ public class AdminAchievementApiController extends CertifyApiController {
     @RequestMapping(value = "/orgList", method = RequestMethod.GET)
     private Result orgList(String unitName, String ownerName, String ownerId, Integer auditStatus, Integer serialNumber, String name,
             String keyword, Integer category, Integer status, String releaseDateStartDate, String releaseDateEndDate,
-            Integer releaseStatus, String pageNo, String pageSize,Integer boutique,Integer hot) {
+            Integer releaseStatus,String internationalFlag, String pageNo, String pageSize,Integer boutique,Integer hot) {
         Result res = new Result();
         Integer pNo = 1;
         Integer pSize = 10;
@@ -94,8 +94,13 @@ public class AdminAchievementApiController extends CertifyApiController {
         if (StringUtils.isNumeric(pageNo)) {
             pNo = Integer.parseInt(pageNo);
         }
-        res.setData(achievementService.listOrgOwnerAchievement(unitName, ownerName, ownerId, auditStatus, serialNumber, name,
-                keyword, category, status, releaseDateStartDate, releaseDateEndDate, releaseStatus, pNo, pSize,boutique,hot));
+        
+        Object o = achievementService.listOrgOwnerAchievement(unitName, ownerName, ownerId, auditStatus, serialNumber, name,
+                keyword, category, status, releaseDateStartDate, releaseDateEndDate, releaseStatus,internationalFlag, pNo, pSize,boutique,hot);
+        
+        res.setData(o);
+        
+        
         return res;
     }
     /**

+ 4 - 4
src/main/java/com/goafanti/admin/controller/AdminUserCertifyApiController.java

@@ -153,10 +153,10 @@ public class AdminUserCertifyApiController extends CertifyApiController {
 				|| IdentityAuditStatus.UNPAID.getCode().equals(ui.getAuditStatus())) {
 			ui.setProcess(IdentityProcess.COMMITTED.getCode());
 		} else if (IdentityAuditStatus.PAID.getCode().equals(ui.getAuditStatus())) {
-			ui.setProcess(IdentityProcess.FILLIN.getCode());
+			ui.setProcess(IdentityProcess.FAIL.getCode());
 		} else if (IdentityAuditStatus.NOTPASSED.getCode().equals(ui.getAuditStatus())
 				|| IdentityAuditStatus.PASSED.getCode().equals(ui.getAuditStatus())) {
-			ui.setProcess(IdentityProcess.RESULTS.getCode());
+			ui.setProcess(IdentityProcess.SUCCESS.getCode());
 		}
 		res.setData(userIdentityService.updateUserDetailByAuditAdmin(ui, aid, mid, userIdentity.getLevel()));
 		return res;
@@ -234,10 +234,10 @@ public class AdminUserCertifyApiController extends CertifyApiController {
 				|| IdentityAuditStatus.UNPAID.getCode().equals(oi.getAuditStatus())) {
 			oi.setProcess(IdentityProcess.COMMITTED.getCode());
 		} else if (IdentityAuditStatus.PAID.getCode().equals(oi.getAuditStatus())) {
-			oi.setProcess(IdentityProcess.FILLIN.getCode());
+			oi.setProcess(IdentityProcess.FAIL.getCode());
 		} else if (IdentityAuditStatus.NOTPASSED.getCode().equals(oi.getAuditStatus())
 				|| IdentityAuditStatus.PASSED.getCode().equals(oi.getAuditStatus())){
-			oi.setProcess(IdentityProcess.RESULTS.getCode());
+			oi.setProcess(IdentityProcess.SUCCESS.getCode());
 		}
 		res.setData(organizationIdentityService.updateOrgDetailByAuditAdmin(oi, aid, mid, orgIdentity.getLevel()));
 		return res;

+ 1 - 0
src/main/java/com/goafanti/admin/service/AdminService.java

@@ -62,4 +62,5 @@ public interface AdminService {
 
 	Map<String, String> listAdminSelect();
 
+	List<Admin> listAdminByName(String name);
 }

+ 6 - 0
src/main/java/com/goafanti/admin/service/impl/AdminServiceImpl.java

@@ -249,4 +249,10 @@ public class AdminServiceImpl extends BaseMybatisDao<AdminMapper> implements Adm
 		return map;
 	}
 
+	@Override
+	public List<Admin> listAdminByName(String name) {
+		
+		return adminMapper.listAdminByName(name);
+	}
+
 }

+ 10 - 18
src/main/java/com/goafanti/common/constant/AFTConstants.java

@@ -59,31 +59,21 @@ public class AFTConstants {
 
 	public static final Integer	INTERNATIONAL_ORG_CACHE_KEY			= 672;
 
-	public static final String	YES									= "1";
+	public static final Integer	YES									= 1;
 	
-	public static final String CUSTOMER_CREATE						= "创建客户";
-	
-	public static final String CUSTOMER_DELETE						= "删除客户";
-	
-	public static final String CUSTOMER_TRANSFER					= "转交客户";
-	
-	public static final String CUSTOMER_MODIFY						= "修改客户资料";
-	
-	public static final String CUSTOMER_RECEIVE                     = "领取客户";
-	
-	public static final String CUSTOMER_TO_PUBLIC					= "转为公共客户";
-	
-	public static final String CUSTOMER_FOLLOW						= "跟进客户";
-	
-	public static final String CUSTOMER_VIEW_ALL					= "customer_view_all";
+	public static final Integer  NO									= 0;
 	
 	public static final String USER_TYPE_PERSONAL					= "0";
 	
 	public static final String USER_TYPE_ORGANIZATION				= "1";
 	
-	public static final Integer SHARE_TYPE_PRIVATE					= 0;
+	public static final Integer USER_SOURCE_REGISTER				= 0;
+	
+	public static final Integer USER_SOURCE_CREATE					= 1;
 	
-	public static final Integer SHARE_TYPE_PUBLIC					= 1;
+	public static final Integer USER_SHARE_PRIVATE					= 0;
+	
+	public static final Integer USER_SHARE_PUBLIC					= 1;
 	
 	public static final Integer USER_STATUS_NORMAL					= 0;
 	
@@ -97,6 +87,8 @@ public class AFTConstants {
 	
 	public static final String USER_RECEIVE							= "领取";
 	
+	public static final String USER_TRANSFER_TO_OTHER				= "转交客户给制定人";
+	
 	/**组织类型-公司*/
 	public static final String ORGANIZATION_TYPE_COMPANY			= "0";
 	/**组织类型-部门*/

+ 25 - 25
src/main/java/com/goafanti/common/controller/PortalController.java

@@ -808,33 +808,33 @@ public class PortalController extends BaseController {
 		;
 
 		// 判断登录没登录. 登录了.查找用户喜欢的. 没登录就随机查四个.
-		boolean isLogin = TokenManager.isLogin();
-		List<DemandListBo> demandlist = demandService.selectDemandList(0);// 查询所有专利
-		List<DemandListBo> redemandlist = new ArrayList<DemandListBo>();
-
-		if (demandlist.size() >= 5) {
-			int idx = new Random().nextInt(demandlist.size() - 4);
-			redemandlist.add(demandlist.get(idx));
-			redemandlist.add(demandlist.get(idx + 1));
-			redemandlist.add(demandlist.get(idx + 2));
-			redemandlist.add(demandlist.get(idx + 3));
-		} else {
-			redemandlist.addAll(demandlist);
-		}
+				boolean isLogin = TokenManager.isLogin();
+				List<DemandListBo> demandlist = demandService.selectDemandList(0);// 查询所有专利
+				List<DemandListBo> redemandlist = new ArrayList<DemandListBo>();
+
+				if (demandlist.size() >= 5) {
+					int idx = new Random().nextInt(demandlist.size() - 4);
+					redemandlist.add(demandlist.get(idx));
+					redemandlist.add(demandlist.get(idx + 1));
+					redemandlist.add(demandlist.get(idx + 2));
+					redemandlist.add(demandlist.get(idx + 3));
+				} else {
+					redemandlist.addAll(demandlist);
+				}
 
-		if (isLogin) {
-			List<DemandListBo> customerlikelist = demandService.selectCsutomerLike();// 猜你喜欢专利
-			int size;
-			if (customerlikelist.size() < redemandlist.size()) {
-				size = customerlikelist.size();
-			} else {
-				size = redemandlist.size();
-			}
+				if (isLogin) {
+					List<DemandListBo> customerlikelist = demandService.selectCsutomerLike();// 猜你喜欢专利
+					int size;
+					if (customerlikelist.size() < redemandlist.size()) {
+						size = customerlikelist.size();
+					} else {
+						size = redemandlist.size();
+					}
 
-			for (int i = 0; i < size; i++) {
-				redemandlist.set(i, customerlikelist.get(i));
-			}
-		}
+					for (int i = 0; i < size; i++) {
+						redemandlist.set(i, customerlikelist.get(i));
+					}
+				}
 
 		for (int i = 0; i < redemandlist.size(); i++) {
 			Integer demandType = redemandlist.get(i).getDemandType();

+ 6 - 5
src/main/java/com/goafanti/common/controller/WebpageController.java

@@ -16,7 +16,6 @@ import com.goafanti.achievement.bo.AchievementPartnerListBo;
 import com.goafanti.achievement.service.AchievementService;
 import com.goafanti.banners.enums.BannersType;
 import com.goafanti.banners.service.BannersService;
-import com.goafanti.common.constant.AFTConstants;
 import com.goafanti.common.enums.AchievementMaturity;
 import com.goafanti.common.enums.MarketingPage;
 import com.goafanti.common.enums.UserType;
@@ -26,7 +25,6 @@ import com.goafanti.dataGlossory.service.DistrictGlossoryService;
 import com.goafanti.demand.service.DemandService;
 import com.goafanti.marketing.bo.MarketingManagementBo;
 import com.goafanti.marketing.service.MarketingManagementService;
-import com.goafanti.portal.bo.InternationalListBo;
 import com.goafanti.user.bo.UserPartnerDetailBo;
 import com.goafanti.user.service.OrganizationIdentityService;
 import com.goafanti.user.service.UserIdentityService;
@@ -205,7 +203,7 @@ public class WebpageController extends BaseController {
 		List<UserPartnerDetailBo> userPartner = userService.findUserPartner();
 		List<UserPartnerDetailBo> reuserPartner = new ArrayList<UserPartnerDetailBo>();
 		if (userPartner != null && userPartner.size() >= 6) {
-			int index = (int) new Random().nextInt(userPartner.size() - 5);
+			int index = new Random().nextInt(userPartner.size() - 5);
 			reuserPartner.add(userPartner.get(index));
 			reuserPartner.add(userPartner.get(index + 1));
 			reuserPartner.add(userPartner.get(index + 2));
@@ -538,6 +536,10 @@ public class WebpageController extends BaseController {
 	public ModelAndView portalTechnologyTradingIndex(HttpServletRequest request, ModelAndView modelview) {
 		modelview.setViewName("/portal/technologyTrading/index");
 		handleBanners(modelview, BannersType.JI_SHU_JIAO_YI);
+		List<NewsPortalList> newsPortalList=newsService.portalNewsPolicy();		
+		modelview.addObject("newsPortalList", newsPortalList);
+		List<NewsPortalList> portalNewsQuestion=newsService.portalNewsQuestion();		
+		modelview.addObject("portalNewsQuestion", portalNewsQuestion);
 		return modelview;
 	}
 
@@ -604,7 +606,7 @@ public class WebpageController extends BaseController {
 	@RequestMapping(value="/portal/technologyTrading/assessMent")
 	public ModelAndView assessMent(HttpServletRequest request, ModelAndView modelview){
 		modelview.setViewName("/portal/technologyTrading/assessMent");
-		modelview.addObject("zcfg", newsService.findIndexNewsList(0, NewsType.JTDT.getCode(), 4));
+		modelview.addObject("zcfg", newsService.findIndexNewsList(0, NewsType.KJZX.getCode(), 4));
 		return modelview;
 	}
 	
@@ -637,5 +639,4 @@ public class WebpageController extends BaseController {
 			modelview.addObject("banners", banners);
 		}
 	}
-
 }

+ 2 - 0
src/main/java/com/goafanti/common/dao/AdminMapper.java

@@ -57,5 +57,7 @@ public interface AdminMapper {
 	List<Admin> listAdminSelectBySuperAdmin();
 
 	List<Admin> listAdminSelectByAreaAdmin(@Param("provinceList")List<Integer> provinceList, @Param("cityList")List<Integer> cityList);
+	
+	List<Admin> listAdminByName(@Param("name")String name);
 
 }

+ 6 - 0
src/main/java/com/goafanti/common/dao/NewsMapper.java

@@ -31,4 +31,10 @@ public interface NewsMapper {
 	List<NewsSummary> findIndexNewsList(Map<String, Object> params);
 	
 	List<NewsSummary> findJmrhNewsList(Map<String, Object> params);
+	
+	List<NewsPortalList> portalNewsPolicy();
+	
+	List<NewsPortalList> portalNewsQuestion();
+	
+	List<NewsSummary> findIndexNewsLists(Map<String, Object> params);
 }

+ 11 - 11
src/main/java/com/goafanti/common/dao/UserIdentityMapper.java

@@ -12,67 +12,67 @@ import org.apache.ibatis.annotations.Param;
 public interface UserIdentityMapper {
     /**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table user_identity
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	long countByExample(UserIdentityExample example);
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table user_identity
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	int deleteByExample(UserIdentityExample example);
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table user_identity
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	int deleteByPrimaryKey(String id);
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table user_identity
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	int insert(UserIdentity record);
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table user_identity
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	int insertSelective(UserIdentity record);
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table user_identity
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	List<UserIdentity> selectByExample(UserIdentityExample example);
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table user_identity
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	UserIdentity selectByPrimaryKey(String id);
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table user_identity
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	int updateByExampleSelective(@Param("record") UserIdentity record, @Param("example") UserIdentityExample example);
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table user_identity
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	int updateByExample(@Param("record") UserIdentity record, @Param("example") UserIdentityExample example);
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table user_identity
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	int updateByPrimaryKeySelective(UserIdentity record);
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table user_identity
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	int updateByPrimaryKey(UserIdentity record);
 

+ 3 - 3
src/main/java/com/goafanti/common/dao/UserMapper.java

@@ -142,7 +142,7 @@ public interface UserMapper {
 	User findUserAccountDetail(@Param("uid")String uid);
 
 	/**
-	 * 查看客户联系人列�?
+	 * 查看客户联系人列�?
 	 * @param uid
 	 * @return
 	 */
@@ -156,14 +156,14 @@ public interface UserMapper {
 	FollowBusinessBo findFollowById(String followId);
 
 	/**
-	 * 查询单次拜访推进的客户业�?
+	 * 查询单次拜访推进的客户业�?
 	 * @param followId
 	 * @return
 	 */
 	List<UserBusiness> findBusinessByFollowId(String followId);
 
 	/**
-	 * 查询客户�?有联系人
+	 * 查询客户�?有联系人
 	 * @param uid
 	 * @return
 	 */

+ 6 - 4
src/main/java/com/goafanti/common/enums/IdentityProcess.java

@@ -7,10 +7,12 @@ import org.apache.commons.lang3.StringUtils;
 
 public enum IdentityProcess {
 	
-	UNCOMMITTED(0, "填写认证信息"),
-	COMMITTED(3, "审核信息"),
-	FILLIN(4, "填写银行卡金额"),
-	RESULTS(5, "认证结果"),
+	UNCOMMITTED(0, "未提交审核"),
+	COMMITTED(1, "提交审核"),
+	UNPAY(2, "审核未打款"),
+	PAY(3, "审核已打款"),
+	FAIL(4, "审核未通过"),
+	SUCCESS(5, "审核通过"),
 	OTHER(6, "其他");
 
 	private IdentityProcess(Integer code, String desc) {

+ 88 - 81
src/main/java/com/goafanti/common/error/SystemExceptionResolver.java

@@ -1,81 +1,88 @@
-package com.goafanti.common.error;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.core.io.support.ResourcePropertySource;
-import org.springframework.web.servlet.ModelAndView;
-import org.springframework.web.servlet.handler.SimpleMappingExceptionResolver;
-
-import com.goafanti.common.bo.Error;
-import com.goafanti.common.bo.Result;
-import com.goafanti.common.utils.LoggerUtils;
-import com.goafanti.common.utils.StringUtils;
-import com.goafanti.core.shiro.filter.ShiroFilterUtils;
-
-public class SystemExceptionResolver extends SimpleMappingExceptionResolver {
-	@Resource(name = "errorResource")
-	private ResourcePropertySource	errorResource;
-
-	@Autowired
-	private ShiroFilterUtils		shiroFilterUtils;
-
-	@Override
-	protected ModelAndView doResolveException(HttpServletRequest request, HttpServletResponse response, Object handler,
-			Exception ex) {
-		// Expose ModelAndView for chosen error view.
-		String viewName = determineViewName(ex, request);
-
-		ex = handleErrorMessage(ex);
-
-		if (viewName != null) {
-			if (!shiroFilterUtils.isAjax(request)) {// JSP
-				// Apply HTTP status code for error views, if specified.
-				// Only apply it if we're processing a top-level request.
-				Integer statusCode = determineStatusCode(request, viewName);
-				if (statusCode != null) {
-					applyStatusCodeIfPossible(request, response, statusCode);
-				}
-				return getModelAndView(viewName, ex, request);
-			} else {// JSON
-				Result res = new Result();
-				res.getError().add(new Error(viewName, ex.getMessage()));
-				shiroFilterUtils.out(response, res);
-				return null;
-			}
-		} else {
-			return null;
-		}
-	}
-
-	private Exception handleErrorMessage(Exception ex) {
-		Error error = null;
-		if (ex instanceof BusinessException) {
-			BusinessException bex = (BusinessException) ex;
-			error = new Error(bex.getCode(), bex.getField(), (String) errorResource.getProperty(bex.getCode()));
-		} else if (ex instanceof IllegalArgumentException) {
-			Object message = errorResource.getProperty(ex.getMessage());
-			if (message == null) {
-				message = errorResource.getProperty(ex.getClass().getName());
-			}
-			error = new Error((String) message);
-		} else {
-			error = new Error((String) errorResource.getProperty(ex.getClass().getName()));
-			LoggerUtils.fmtError(getClass(), ex, "系统异常。");
-		}
-		if (StringUtils.isEmpty(error.getMessage())) {
-			error.setMessage("系统异常,请联系管理员。");
-		}
-		return new BusinessException(error, ex.getCause());
-	}
-
-	/**
-	 * @param errorResource
-	 *            the errorResource to set
-	 */
-	public void setErrorResource(ResourcePropertySource errorResource) {
-		this.errorResource = errorResource;
-	}
-}
+package com.goafanti.common.error;
+
+import java.text.MessageFormat;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.io.support.ResourcePropertySource;
+import org.springframework.web.servlet.ModelAndView;
+import org.springframework.web.servlet.handler.SimpleMappingExceptionResolver;
+
+import com.goafanti.common.bo.Error;
+import com.goafanti.common.bo.Result;
+import com.goafanti.common.utils.LoggerUtils;
+import com.goafanti.common.utils.StringUtils;
+import com.goafanti.core.shiro.filter.ShiroFilterUtils;
+
+public class SystemExceptionResolver extends SimpleMappingExceptionResolver {
+	@Resource(name = "errorResource")
+	private ResourcePropertySource	errorResource;
+
+	@Autowired
+	private ShiroFilterUtils		shiroFilterUtils;
+
+	@Override
+	protected ModelAndView doResolveException(HttpServletRequest request, HttpServletResponse response, Object handler,
+			Exception ex) {
+		// Expose ModelAndView for chosen error view.
+		String viewName = determineViewName(ex, request);
+
+		ex = handleErrorMessage(ex);
+
+		if (viewName != null) {
+			if (!shiroFilterUtils.isAjax(request)) {// JSP
+				// Apply HTTP status code for error views, if specified.
+				// Only apply it if we're processing a top-level request.
+				Integer statusCode = determineStatusCode(request, viewName);
+				if (statusCode != null) {
+					applyStatusCodeIfPossible(request, response, statusCode);
+				}
+				return getModelAndView(viewName, ex, request);
+			} else {// JSON
+				Result res = new Result();
+				res.getError().add(new Error(viewName,ex.getMessage())); 
+				shiroFilterUtils.out(response, res);
+				return null;
+			}
+		} else {
+			return null;
+		}
+	}
+
+	private Exception handleErrorMessage(Exception ex) {
+		Error error = null;
+		if (ex instanceof BusinessException) {
+			BusinessException bex = (BusinessException) ex;
+			String message = (String)errorResource.getProperty(bex.getCode());
+			if(StringUtils.isEmpty(message)){
+				error = new Error(bex.getCode(),bex.getMessage());
+			}else{
+				error = new Error(bex.getCode(), MessageFormat.format(message, bex.getField()));
+			}
+		} else if (ex instanceof IllegalArgumentException) {
+			Object message = errorResource.getProperty(ex.getMessage());
+			if (message == null) {
+				message = errorResource.getProperty(ex.getClass().getName());
+			}
+			error = new Error((String) message);
+		} else {
+			error = new Error((String) errorResource.getProperty(ex.getClass().getName()));
+			LoggerUtils.fmtError(getClass(), ex, "系统异常。");
+		}
+		if (StringUtils.isEmpty(error.getMessage())) {
+			error.setMessage("系统异常,请联系管理员。");
+		}
+		return new BusinessException(error, ex.getCause());
+	}
+
+	/**
+	 * @param errorResource
+	 *            the errorResource to set
+	 */
+	public void setErrorResource(ResourcePropertySource errorResource) {
+		this.errorResource = errorResource;
+	}
+}

+ 14 - 15
src/main/java/com/goafanti/common/mapper/AchievementMapper.xml

@@ -865,7 +865,7 @@
 	</if>
   	where a.deleted_sign = 0 and a.owner_type = 1
   	<if test="techBrokerId != null">
-		a.tech_broker_id = #{techBrokerId,jdbcType=VARCHAR}
+		and a.tech_broker_id = #{techBrokerId,jdbcType=VARCHAR}
 	</if>
   	<if test="ownerName != null">
   		and  a.owner_name like CONCAT('%',#{ownerName,jdbcType=VARCHAR},'%') 	
@@ -903,9 +903,7 @@
 	<if test="releaseStatus != null">
 	   and  a.release_status = #{releaseStatus,jdbcType=INTEGER}
 	</if>
-	<if test="techBrokerId != null">
-	   and a.tech_broker_id = #{techBrokerId,jdbcType=VARCHAR}
-	</if>
+	
 	<if test="boutique != null">
 		and a.boutique = #{boutique,jdbcType=INTEGER}
 	</if>
@@ -938,7 +936,7 @@
 	</if>
   	where a.deleted_sign = 0 and a.owner_type = 1
   	<if test="techBrokerId != null">
-		a.tech_broker_id = #{techBrokerId,jdbcType=VARCHAR}
+		and a.tech_broker_id = #{techBrokerId,jdbcType=VARCHAR}
 	</if>
   	<if test="ownerName != null">
   		and  a.owner_name like CONCAT('%',#{ownerName,jdbcType=VARCHAR},'%')
@@ -976,9 +974,7 @@
 	<if test="releaseStatus != null">
 	   and  a.release_status = #{releaseStatus,jdbcType=INTEGER}
 	</if>
-	<if test="techBrokerId != null">
-	   and a.tech_broker_id = #{techBrokerId,jdbcType=VARCHAR}
-	</if>
+	
 	<if test="hot != null and hot == 0"><!-- 不在首页 -->
 		and a.id not in(select mm.product_id from marketing_management mm where mm.effective = 1)
 	</if>
@@ -1039,6 +1035,7 @@
 	<if test="releaseStatus != null">
 	   and  release_status = #{releaseStatus,jdbcType=INTEGER}
 	</if>
+	
 	order by serial_number desc
 	<if test="page_sql!=null">
 			${page_sql}
@@ -1080,6 +1077,7 @@
 	<if test="releaseStatus != null">
 	   and  release_status = #{releaseStatus,jdbcType=INTEGER}
 	</if>
+	
   </select>
   
   <select id="selectUserOwnerDetail" parameterType="java.lang.String" resultType="com.goafanti.achievement.bo.AchievementUserOwnerDetailBo">
@@ -1094,7 +1092,7 @@
 		    a.owner_mobile as ownerMobile, a.owner_email as ownerEmail, a.owner_postal_address as ownerPostalAddress, 
 		    a.cooperation_mode as cooperationMode, a.transfer_mode as transferMode, a.bargaining_mode as bargainingMode, 
 		    a.transfer_price as transferPrice, a.technical_scene as technicalScene, a.breakthrough, 
-		    a.patent_case as patentCase, a.awards, a.team_des as teamDes, 
+		    a.patent_case as patentCase, a.awards, a.team_des as teamDes,  a.international_flag as internationalFlag,
 		    a.parameter, a.tech_plan_url as techPlanUrl, a.business_plan_url as businessPlanUrl, 
 		    a.contacts, a.manager_id as managerId, a.salesman_id as salesmanId, 
 		    a.create_time as createTime, a.release_status as releaseStatus, 
@@ -1121,9 +1119,9 @@
 		    a.cooperation_mode as cooperationMode, a.transfer_mode as transferMode, a.bargaining_mode as bargainingMode, 
 		    a.transfer_price as transferPrice, a.technical_scene as technicalScene, a.breakthrough, 
 		    a.patent_case as patentCase, a.awards, a.team_des as teamDes, 
-		    a.parameter, a.tech_plan_url as techPlanUrl, a.business_plan_url as businessPlanUrl, 
-		    a.contacts, a.manager_id as managerId, a.salesman_id as salesmanId, 
-		    a.create_time as createTime, a.release_status as releaseStatus,
+		    a.parameter, a.tech_plan_url as techPlanUrl, a.business_plan_url as businessPlanUrl, 
+		    a.contacts, a.manager_id as managerId, a.salesman_id as salesmanId,  a.international_flag as internationalFlag,
+		    a.create_time as createTime, a.release_status as releaseStatus,
 		    a.release_date as releaseDate, a.audit_status as auditStatus, a.tech_broker_id as techBrokerId,
 		    oi.unit_name as iOwnerName, oi.postal_address as iOwnerPostalAddress, u.email as iOwnerEmail,
 		    oi.org_code as iOwnerIdNumber, u.mobile as iOwnerMobile,a.boutique,ifnull(mm.effective,0) hot,mm.cover_img as coverImg
@@ -1141,7 +1139,7 @@
     	 name, keyword, category,
     	 owner_name, owner_type, owner_id_number,
     	 owner_mobile, owner_email, owner_postal_address,
-    	 cooperation_mode, introduction, tech_broker_id
+    	 cooperation_mode, introduction, tech_broker_id,international_flag
     	 )
     values 
     <foreach item="item" index="index" collection="list" separator=",">
@@ -1151,7 +1149,8 @@
       	#{item.name,jdbcType=VARCHAR}, #{item.keyword,jdbcType=VARCHAR}, #{item.category,jdbcType=INTEGER},
       	#{item.ownerName,jdbcType=VARCHAR}, #{item.ownerType,jdbcType=VARCHAR}, #{item.ownerIdNumber,jdbcType=VARCHAR},
       	#{item.ownerMobile,jdbcType=VARCHAR}, #{item.ownerEmail,jdbcType=VARCHAR}, #{item.ownerPostalAddress,jdbcType=VARCHAR},
-      	#{item.cooperationMode,jdbcType=INTEGER}, #{item.introduction,jdbcType=LONGVARCHAR},#{item.techBrokerId,jdbcType=VARCHAR}
+      	#{item.cooperationMode,jdbcType=INTEGER}, #{item.introduction,jdbcType=LONGVARCHAR},#{item.techBrokerId,jdbcType=VARCHAR},
+      	#{item.internationalFlag,jdbcType=INTEGER}
       )
     </foreach>
   </insert>
@@ -1167,7 +1166,7 @@
   		a.field_b as fieldB,
   		a.transfer_price as transferPrice,
   		a.maturity,
-  		a.introduction,
+  		a.introduction,a.boutique,
   		a.transfer_mode as transferMode,
   		a.technical_picture_url as technicalPictureUrl,
   		b.name as fieldAs

+ 19 - 4
src/main/java/com/goafanti/common/mapper/AdminMapper.xml

@@ -13,10 +13,11 @@
     <result column="position" property="position" jdbcType="VARCHAR" />
     <result column="superior_id" property="superiorId" jdbcType="VARCHAR" />
     <result column="city" property="city" jdbcType="INTEGER" />
+    <result column="department_id" property="departmentId" jdbcType="VARCHAR"/>
   </resultMap>
   <sql id="Base_Column_List" >
     id, mobile, name, password, email, create_time, number, province, position, superior_id,
-    city
+    city,department_id
   </sql>
   <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >
     select 
@@ -31,11 +32,11 @@
   <insert id="insert" parameterType="com.goafanti.common.model.Admin" >
     insert into admin (id, mobile, name, 
       password, email, create_time, 
-      number, province, position, superior_id, city)
+      number, province, position, superior_id, city,department_id)
     values (#{id,jdbcType=VARCHAR}, #{mobile,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, 
       #{password,jdbcType=VARCHAR}, #{email,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, 
       #{number,jdbcType=INTEGER}, #{province,jdbcType=INTEGER}, #{position,jdbcType=VARCHAR},
-      #{superiorId,jdbcType=VARCHAR}, #{city,jdbcType=INTEGER}
+      #{superiorId,jdbcType=VARCHAR}, #{city,jdbcType=INTEGER},#{departmentId,jdbcType=VARCHAR}
       )
   </insert>
   <insert id="insertSelective" parameterType="com.goafanti.common.model.Admin" >
@@ -74,6 +75,9 @@
       <if test="city != null" >
         city,
       </if>
+      <if test="departmentId != null">
+      	department_id,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides="," >
       <if test="id != null" >
@@ -109,6 +113,9 @@
       <if test="city != null" >
         #{city,jdbcType=INTEGER},
       </if>
+     <if test="departmentId != null">
+     	#{departmentId,jdbcType=VARCHAR},
+     </if>
     </trim>
   </insert>
   <update id="updateByPrimaryKeySelective" parameterType="com.goafanti.common.model.Admin" >
@@ -144,6 +151,9 @@
        <if test="city != null" >
         city = #{city,jdbcType=INTEGER},
       </if>
+      <if test="departmentId != null">
+     	department_id = #{departmentId,jdbcType=VARCHAR},
+      </if>
     </set>
     where id = #{id,jdbcType=VARCHAR}
   </update>
@@ -158,7 +168,8 @@
       province = #{province,jdbcType=INTEGER},
       position = #{position,jdbcType=VARCHAR},
       superior_id = #{superiorId,jdbcType=VARCHAR},
-      city = #{city,jdbcType=INTEGER}
+      city = #{city,jdbcType=INTEGER},
+      department_id = #{departmentId,jdbcType=VARCHAR}
     where id = #{id,jdbcType=VARCHAR}
   </update>
   
@@ -422,4 +433,8 @@
 			</foreach>
 	</if>
   </select>
+  
+  <select id="listAdminByName" parameterType="java.lang.String" resultMap="BaseResultMap">
+	select id,name from admin where name like concat('%',#{name},'%')  
+  </select>
 </mapper>

+ 2 - 2
src/main/java/com/goafanti/common/mapper/BusinessProjectMapper.xml

@@ -538,8 +538,8 @@
       client_size = #{clientSize,jdbcType=VARCHAR}
     where id = #{id,jdbcType=VARCHAR}
   </update>
-  
-  	<select id="findProjectListByPage" resultType="com.goafanti.admin.bo.BusinessProjectBo">
+
+  	<select id="findProjectListByPage" resultType="com.goafanti.admin.bo.BusinessProjectBo">
  		select b.id, b.create_id as createId, b.create_time as createTime, b.update_time as updateTime,  b.delete_sign deleteSign, b.bname,
  		  b.cid,  b.price,  b.offset,  b.activity_price as activityPrice,  b.activity_flag as activityFlag,  b.member_price as memberPrice, 
  		  b.introduce,  b.status,  b.country,  b.province,  b.city,  b.district, 

+ 5 - 5
src/main/java/com/goafanti/common/mapper/DemandMapper.xml

@@ -863,14 +863,14 @@
   		d.picture_url as pictureUrl, d.text_file_url as textFileUrl, d.video_url as videoUrl,
   		d.budget_cost as budgetCost, d.fixed_cycle as fixedCycle, d.people_number as peopleNumber,
   		d.fixed_scheme as fixedScheme, d.cost_escrow as costEscrow, d.employer_id as employerId,
-  		info.postal_address as address, u.email as mailbox,  u.mobile as mobile, d.audit_status as auditStatus,
+  		u.postal_address as address, u.email as mailbox,  u.mobile as mobile, d.audit_status as auditStatus,
   		d.employer_address as employerAddress, d.employer_contacts_mobile as employerContactsMobile,
   		d.employer_contacts_mailbox as employerContactsMailbox, d.employer_name as employerName,
   		d.tech_broker_id as techBrokerId,  u.mobile as contactsName,
   		d.boutique,ifnull(mm.effective,0) as hot,mm.cover_img as coverImg
   	from demand d 
   	left join user_identity ui on ui.uid = d.employer_id
-  	left join user_info info on info.uid = d.employer_id
+  	<!-- left join user_info info on info.uid = d.employer_id -->
   	left join user u on u.id = d.employer_id
   	left join marketing_management mm on d.id = mm.product_id
   	where d.data_category = 0 and d.id = #{id,jdbcType=VARCHAR}
@@ -889,7 +889,7 @@
   		d.budget_cost as budgetCost, d.fixed_cycle as fixedCycle, d.people_number as peopleNumber,
   		d.fixed_scheme as fixedScheme, d.cost_escrow as costEscrow, d.employer_id as employerId,
   		oi.postal_address as address, u.email as mailbox,  d.contacts, d.audit_status as auditStatus,
-  		d.tech_broker_id as techBrokerId,d.remark
+  		d.tech_broker_id as techBrokerId,d.remark,
   		d.employer_address as employerAddress, d.employer_contacts_mobile as employerContactsMobile,
   		d.employer_contacts_mailbox as employerContactsMailbox, d.employer_name as employerName,
   		d.boutique,ifnull(mm.effective,0) as hot,mm.cover_img as coverImg
@@ -1026,7 +1026,7 @@
 	  		d.id, d.name, d.keyword,d.data_category as dataCategory,d.picture_url as pictureUrl,
 	  		d.serial_number as serialNumber, d.data_category as dataCategory, d.industry_category_a as industryCategoryA,
 	  		d.industry_category_b as industryCategoryB, d.demand_type as demandType, d.budget_cost as budgetCost,
-	  		d.problem_des as problemDes, d.release_date as releaseDate, d.employer_name as employerName,
+	  		d.problem_des as problemDes, d.release_date as releaseDate, d.employer_name as employerName,d.boutique,
 	  	 u.lvl as level
   		from demand d
   		left join user u on u.id = d.employer_id
@@ -1392,7 +1392,7 @@
 		LEFT JOIN field_glossory fgg on fgg.id = d.industry_category_b 
 		LEFT JOIN demand_interest interest on interest.demand_id = d.id 
 		where
-		interest.uid = #{_parameter,jdbcType=INTEGER}
+		interest.uid = #{uid,jdbcType=INTEGER}
 		limit 0,4
 	</select>
 	

+ 39 - 4
src/main/java/com/goafanti/common/mapper/NewsMapper.xml

@@ -240,12 +240,13 @@
 			a.source,
 			a.content
 		from news a
-		where 1 =1
+		where
+		a.type != 1 and a.type != 2
 		<if test="provinceId != null">
 			and a.province_id = #{provinceId,jdbcType=INTEGER}
 		</if>
 
-		<if test="type != null and type != 0" >
+		<if test="type != null and type != 0 " >
 			and a.type = #{type,jdbcType=INTEGER}
 		</if>
 		<!-- 
@@ -266,11 +267,12 @@
 		select 
 			count(0)
 		from news a
-		where 1 =1
+		where 
+		a.type != 1 and a.type != 2
 		<if test="provinceId != null">
 			and a.province_id = #{provinceId,jdbcType=INTEGER}
 		</if>
-		<if test="type != null and type != 0" >
+		<if test="type != null and type != 0 and type != 1 and type != 2" >
 			and a.type = #{type,jdbcType=INTEGER}
 		</if>
 		<!-- 	
@@ -282,4 +284,37 @@
 			and a.title like concat('%',#{keyword},'%')
 		</if>
 	</select>
+	<select id="portalNewsPolicy" resultType="com.goafanti.news.bo.NewsPortalList">
+		select
+			a.id,
+			DATE_FORMAT(a.create_time,'%Y-%d-%m') as createTime,
+			a.title,
+			a.title_img as titleImg,
+			a.type,
+			a.hot,
+			a.summary,
+			a.source,
+			a.content
+		from news a
+		where
+		a.type =5 or a.type =4
+		order by create_time desc
+	</select>
+	<select id="portalNewsQuestion" resultType="com.goafanti.news.bo.NewsPortalList">
+		select
+			a.id,
+			DATE_FORMAT(a.create_time,'%Y-%d-%m') as createTime,
+			a.title,
+			a.title_img as titleImg,
+			a.type,
+			a.hot,
+			a.summary,
+			a.source,
+			a.content
+		from news a
+		where
+		a.type =2
+		order by create_time desc
+	</select>
+	
 </mapper>

+ 9 - 0
src/main/java/com/goafanti/common/mapper/NewsMapperExt.xml

@@ -166,4 +166,13 @@
 			create_time desc
 		limit 3;
   </select>
+  <select id="findIndexNewsLists" resultMap="SummaryResultMap">
+		select
+		<include refid="Summary_Column_List" />
+		from news
+		where 
+		type = 1
+		order by create_time desc
+		limit #{pageNo,jdbcType=INTEGER}, #{pageSize,jdbcType=INTEGER}
+  </select>
 </mapper>

+ 1 - 1
src/main/java/com/goafanti/common/mapper/ProjectSizeMapper.xml

@@ -421,5 +421,5 @@
    p.activity_flag as activityFlag, p.member_price as memberPrice, p.status
     from project_size p
    where p.pname=#{pname,jdbcType=VARCHAR}
-  </select>
+  </select>
 </mapper>

+ 3 - 3
src/main/java/com/goafanti/common/mapper/StarMapper.xml

@@ -118,13 +118,13 @@
   		uc.professional_title as professionalTitle,
   		uc.work_unit as workUnit,
   		adc.achievement_count as achievementNum,
-  		info.person_portrait_url as personPortraitUrl
+  		u.head_portrait_url as personPortraitUrl
   	from star s
   	left join user u on u.id = s.uid
   	left join user_identity ui on ui.uid = s.uid
   	left join user_career uc on uc.uid = s.uid
   	left join achievement_demand_count adc on adc.uid = s.uid 
-  	left join user_info info on info.uid = s.uid
+  	<!-- left join user_info info on info.uid = s.uid -->
   	left join user_interest interest on interest.to_uid = s.uid and interest.from_uid = #{uid,jdbcType=VARCHAR}
   	where s.star = 1 and ui.celebrity = 1
   	order by adc.achievement_count desc
@@ -154,7 +154,7 @@
   		uc.professional_title as professionalTitle,
   		uc.work_unit as workUnit,
   		adc.achievement_count as achievementNum,
-  		info.person_portrait_url as personPortraitUrl,
+  		u.head_portrait_url as personPortraitUrl,
   		interest.id as interestId
   	from star s
   	left join user u on u.id = s.uid

+ 40 - 23
src/main/java/com/goafanti/common/mapper/UserIdentityMapper.xml

@@ -5,7 +5,7 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Thu Nov 30 17:32:28 CST 2017.
+      This element was generated on Wed Dec 06 15:49:08 CST 2017.
     -->
     <id column="id" jdbcType="VARCHAR" property="id" />
     <result column="uid" jdbcType="VARCHAR" property="uid" />
@@ -45,12 +45,13 @@
     <result column="major_category" jdbcType="VARCHAR" property="majorCategory" />
     <result column="qualification" jdbcType="VARCHAR" property="qualification" />
     <result column="investment" jdbcType="INTEGER" property="investment" />
+    <result column="graduate_school" jdbcType="VARCHAR" property="graduateSchool" />
   </resultMap>
   <sql id="Example_Where_Clause">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Thu Nov 30 17:32:28 CST 2017.
+      This element was generated on Wed Dec 06 15:49:08 CST 2017.
     -->
     <where>
       <foreach collection="oredCriteria" item="criteria" separator="or">
@@ -84,7 +85,7 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Thu Nov 30 17:32:28 CST 2017.
+      This element was generated on Wed Dec 06 15:49:08 CST 2017.
     -->
     <where>
       <foreach collection="example.oredCriteria" item="criteria" separator="or">
@@ -118,20 +119,20 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Thu Nov 30 17:32:28 CST 2017.
+      This element was generated on Wed Dec 06 15:49:08 CST 2017.
     -->
     id, uid, username, sex, date_of_birth_year, date_of_birth_month, id_number, positive_id_url, 
     opposite_id_url, province, city, area, contact_mobile, bank_name, bank_account, bank_card_number, 
     amount_money, audit_status, process, wrong_count, payment_date, expert, celebrity, 
     international, fixed_tel, qq, postal_address, postcode, review_instructions, industry, 
     contacts, email, professional_title, work_unit, education, major_category, qualification, 
-    investment
+    investment, graduate_school
   </sql>
   <select id="selectByExample" parameterType="com.goafanti.common.model.UserIdentityExample" resultMap="BaseResultMap">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Thu Nov 30 17:32:28 CST 2017.
+      This element was generated on Wed Dec 06 15:49:08 CST 2017.
     -->
     select
     <if test="distinct">
@@ -150,7 +151,7 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Thu Nov 30 17:32:28 CST 2017.
+      This element was generated on Wed Dec 06 15:49:08 CST 2017.
     -->
     select 
     <include refid="Base_Column_List" />
@@ -161,7 +162,7 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Thu Nov 30 17:32:28 CST 2017.
+      This element was generated on Wed Dec 06 15:49:08 CST 2017.
     -->
     delete from user_identity
     where id = #{id,jdbcType=VARCHAR}
@@ -170,7 +171,7 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Thu Nov 30 17:32:28 CST 2017.
+      This element was generated on Wed Dec 06 15:49:08 CST 2017.
     -->
     delete from user_identity
     <if test="_parameter != null">
@@ -181,7 +182,7 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Thu Nov 30 17:32:28 CST 2017.
+      This element was generated on Wed Dec 06 15:49:08 CST 2017.
     -->
     insert into user_identity (id, uid, username, 
       sex, date_of_birth_year, date_of_birth_month, 
@@ -195,7 +196,8 @@
       postcode, review_instructions, industry, 
       contacts, email, professional_title, 
       work_unit, education, major_category, 
-      qualification, investment)
+      qualification, investment, graduate_school
+      )
     values (#{id,jdbcType=VARCHAR}, #{uid,jdbcType=VARCHAR}, #{username,jdbcType=VARCHAR}, 
       #{sex,jdbcType=VARCHAR}, #{dateOfBirthYear,jdbcType=VARCHAR}, #{dateOfBirthMonth,jdbcType=VARCHAR}, 
       #{idNumber,jdbcType=VARCHAR}, #{positiveIdUrl,jdbcType=VARCHAR}, #{oppositeIdUrl,jdbcType=VARCHAR}, 
@@ -208,13 +210,14 @@
       #{postcode,jdbcType=VARCHAR}, #{reviewInstructions,jdbcType=VARCHAR}, #{industry,jdbcType=INTEGER}, 
       #{contacts,jdbcType=VARCHAR}, #{email,jdbcType=VARCHAR}, #{professionalTitle,jdbcType=VARCHAR}, 
       #{workUnit,jdbcType=VARCHAR}, #{education,jdbcType=VARCHAR}, #{majorCategory,jdbcType=VARCHAR}, 
-      #{qualification,jdbcType=VARCHAR}, #{investment,jdbcType=INTEGER})
+      #{qualification,jdbcType=VARCHAR}, #{investment,jdbcType=INTEGER}, #{graduateSchool,jdbcType=VARCHAR}
+      )
   </insert>
   <insert id="insertSelective" parameterType="com.goafanti.common.model.UserIdentity">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Thu Nov 30 17:32:28 CST 2017.
+      This element was generated on Wed Dec 06 15:49:08 CST 2017.
     -->
     insert into user_identity
     <trim prefix="(" suffix=")" suffixOverrides=",">
@@ -332,6 +335,9 @@
       <if test="investment != null">
         investment,
       </if>
+      <if test="graduateSchool != null">
+        graduate_school,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="id != null">
@@ -448,13 +454,16 @@
       <if test="investment != null">
         #{investment,jdbcType=INTEGER},
       </if>
+      <if test="graduateSchool != null">
+        #{graduateSchool,jdbcType=VARCHAR},
+      </if>
     </trim>
   </insert>
   <select id="countByExample" parameterType="com.goafanti.common.model.UserIdentityExample" resultType="java.lang.Long">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Thu Nov 30 17:32:28 CST 2017.
+      This element was generated on Wed Dec 06 15:49:08 CST 2017.
     -->
     select count(*) from user_identity
     <if test="_parameter != null">
@@ -465,7 +474,7 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Thu Nov 30 17:32:28 CST 2017.
+      This element was generated on Wed Dec 06 15:49:08 CST 2017.
     -->
     update user_identity
     <set>
@@ -583,6 +592,9 @@
       <if test="record.investment != null">
         investment = #{record.investment,jdbcType=INTEGER},
       </if>
+      <if test="record.graduateSchool != null">
+        graduate_school = #{record.graduateSchool,jdbcType=VARCHAR},
+      </if>
     </set>
     <if test="_parameter != null">
       <include refid="Update_By_Example_Where_Clause" />
@@ -592,7 +604,7 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Thu Nov 30 17:32:28 CST 2017.
+      This element was generated on Wed Dec 06 15:49:08 CST 2017.
     -->
     update user_identity
     set id = #{record.id,jdbcType=VARCHAR},
@@ -632,7 +644,8 @@
       education = #{record.education,jdbcType=VARCHAR},
       major_category = #{record.majorCategory,jdbcType=VARCHAR},
       qualification = #{record.qualification,jdbcType=VARCHAR},
-      investment = #{record.investment,jdbcType=INTEGER}
+      investment = #{record.investment,jdbcType=INTEGER},
+      graduate_school = #{record.graduateSchool,jdbcType=VARCHAR}
     <if test="_parameter != null">
       <include refid="Update_By_Example_Where_Clause" />
     </if>
@@ -641,7 +654,7 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Thu Nov 30 17:32:28 CST 2017.
+      This element was generated on Wed Dec 06 15:49:08 CST 2017.
     -->
     update user_identity
     <set>
@@ -756,6 +769,9 @@
       <if test="investment != null">
         investment = #{investment,jdbcType=INTEGER},
       </if>
+      <if test="graduateSchool != null">
+        graduate_school = #{graduateSchool,jdbcType=VARCHAR},
+      </if>
     </set>
     where id = #{id,jdbcType=VARCHAR}
   </update>
@@ -763,7 +779,7 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Thu Nov 30 17:32:28 CST 2017.
+      This element was generated on Wed Dec 06 15:49:08 CST 2017.
     -->
     update user_identity
     set uid = #{uid,jdbcType=VARCHAR},
@@ -802,7 +818,8 @@
       education = #{education,jdbcType=VARCHAR},
       major_category = #{majorCategory,jdbcType=VARCHAR},
       qualification = #{qualification,jdbcType=VARCHAR},
-      investment = #{investment,jdbcType=INTEGER}
+      investment = #{investment,jdbcType=INTEGER},
+      graduate_school = #{graduateSchool,jdbcType=VARCHAR}
     where id = #{id,jdbcType=VARCHAR}
   </update>
  
@@ -899,11 +916,11 @@
 			u.id as uid, ui.username, u.number,
 			ui.id as identityId, ui.province,
 			u.head_portrait_url as personPortraitUrl,
-			adc.achievement_count as achievementNum,
+			u.introduction as achievementNum,
 			adc.demand_count as demandNum,
 			uc.engaged_field as engagedField,
 			uc.work_unit as workUnit,
-			uc.position,
+			ui.professional_title as position,
 			ui.international
 		FROM
 			<![CDATA[ user ]]> u
@@ -983,7 +1000,7 @@
 			a.id,
 			b.username as ownerName,
 			c.ability_label as abilityLabel,
-			a.head_portrait_url personPortraitUrl,
+			a.head_portrait_url as personPortraitUrl,
 			e.education
 		from user a 
 		left join user_identity b 

+ 2 - 2
src/main/java/com/goafanti/common/mapper/UserInterestMapper.xml

@@ -99,7 +99,7 @@
 			ui.create_time AS createTime,
 			uii.province AS userProvince,
 			oi.licence_province AS orgProvince,
-			uinfo.person_portrait_url AS personPortraitUrl,
+			u.head_portrait_url AS personPortraitUrl,
 			oinfo.logo_url AS logoUrl,
 			adc.achievement_count AS achievementNum,
 			adc.demand_count AS demandNum
@@ -108,7 +108,7 @@
 	LEFT JOIN user_identity uii ON uii.uid = ui.to_uid
 	LEFT JOIN organization_identity oi ON oi.uid = ui.to_uid
 	LEFT JOIN `user` u ON u.id = ui.to_uid
-	LEFT JOIN user_info uinfo ON uinfo.uid = ui.to_uid
+	<!-- LEFT JOIN user_info uinfo ON uinfo.uid = ui.to_uid -->
 	LEFT JOIN organization_info oinfo ON oinfo.uid = ui.to_uid
 	LEFT JOIN achievement_demand_count adc ON adc.uid = ui.to_uid
 	WHERE

+ 7 - 7
src/main/java/com/goafanti/common/mapper/UserMapper.xml

@@ -642,17 +642,16 @@
     select
   <include refid="Base_Column_List" />
     from user
-    where mobile = #{0} and type=#{1}
+    where mobile = #{0} and type=#{1} and source = 0
   </select>
   
   <select id="selectUserPageHomeBoByUserId" parameterType="java.lang.String" resultMap="UserPageHomeBo">
    select 
    		u.lvl,mg.grade_name , u.nickname, u.email,
    		u.number, u.type, u.person_portrait_url, 
-   		o.logo_url , u.id as uid, adc.achievement_count as achievementNum,
+   		u.company_logo_url as logo_url, u.id as uid, adc.achievement_count as achievementNum,
    		adc.demand_count as demandNum
    from user u 
-   LEFT JOIN organization_info o on u.id = o.uid 
    LEFT JOIN achievement_demand_count adc on adc.uid = u.id
    LEFT JOIN  member_grade mg ON mg.member_rank=u.lvl
    where u.id = #{uid,jdbcType = VARCHAR}
@@ -1203,13 +1202,13 @@
   
  	<select id="findUserPartnerDetail" parameterType="java.lang.String" resultType="com.goafanti.user.bo.UserPartnerDetailBo">
 		select
-		u.id,i.username,c.work_unit as work_unit,c.position,c.achievement,
+		u.id,i.username,i.work_unit as workUnit,i.professional_title as position,u.introduction as achievement,
 		u.head_portrait_url as personPortraitUrl,
 		i.province,
 		u.introduction as personalProfile,
-		ua.ability_label as abilityLabel,c.qualification,
-		e.graduate_school,e.major_category,c.work_unit as workUnit,
-		c.engaged_field as engagedField
+		ua.ability_label as abilityLabel,i.qualification,
+		i.graduate_school,i.major_category,i.work_unit as workUnit,
+		ic.name as engagedField
 		from `user` u
 		left join user_identity i on u.id=i.uid
 		left join
@@ -1217,6 +1216,7 @@
 		<!-- left join user_info info on u.id=info.uid -->
 		left join user_ability ua on u.id=ua.uid
 		left join user_edu e on u.id=e.uid
+		left join industry_category ic on i.industry=ic.id
 		WHERE
 		u.type = 0
 		<if test="_parameter!= null">

+ 192 - 5
src/main/java/com/goafanti/common/mapper/UserMapperExt.xml

@@ -8,6 +8,7 @@
 			a.status, 
 			date_format(a.create_time,'%Y-%m-%d %H:%i:%s') as createTime,
 			a.business_audit as businessAudit,
+			a.current_member_status as currentMemberStatus,
 			a.identify_name as name,
 			a.lvl,a.is_member as isMember,
 			a.society_tag as societyTag,
@@ -28,7 +29,7 @@
 			type,
 			status,
 			create_time,
-			businessAudit,
+			business_audit,
 			current_member_status,
 			identify_name,
 			lvl,
@@ -361,6 +362,7 @@
 			a.company_logo_url as companyLogoUrl,
 			a.introduction,
 		    a.identify_name as identifyName,
+		    a.business_audit as businessAudit,
 			b.industry,
 			b.location_province as locationProvince,
 			b.location_city as locationCity,
@@ -383,14 +385,16 @@
 			b.id,
 			b.contacts,
 			b.contact_mobile as contactMobile,
-			b.investment
+			b.investment,
+			b.audit_status as auditStatus
 		from 
 		(select 
 			id,
 			identify_name,
 			society_tag,
 			company_logo_url,
-			introduction
+			introduction,
+			business_audit
 		from 
 			user
 		where 
@@ -405,6 +409,7 @@
 			a.society_tag as societyTag,
 			a.head_portrait_url as headPortraitUrl,
 			a.introduction,
+			a.business_audit as businessAudit,
 			b.id,
 			b.industry,
 			b.sex,
@@ -431,7 +436,9 @@
 			b.education,
 			b.major_category as majorCategory,
 			b.qualification,
-			b.investment
+			b.investment,
+			b.audit_status as auditStatus,
+			b.graduate_school as graduateSchool
 		from
 			(
 				select
@@ -439,7 +446,8 @@
 					identify_name,
 					society_tag,
 					head_portrait_url,
-					introduction
+					introduction,
+					business_audit
 				from
 					user
 				where
@@ -554,6 +562,185 @@
 		where a.id = #{followId,jdbcType=VARCHAR}
 	</select>
 
+	<select id="customerStatisticsList" resultType="com.goafanti.customer.bo.StatisticBo">
+		select a.*,b.name as adminName,c.name as departmentName from (
+			select 
+			aid,
+			sum(case when customer_status = 0 then 1 else 0 end) as newNo, <!-- 新客户 -->
+			sum(case when customer_status = 1 then 1 else 0 end) as intentionNo, <!-- 意向客户 -->
+			sum(case when customer_status = 2 then 1 else 0 end) as pointNo,  <!-- 重点客户 -->
+			sum(case when customer_status = 3 then 1 else 0 end) as interviewNo, <!-- 面谈客户 -->
+			sum(case when customer_status = 4 then 1 else 0 end) as signNo, <!-- 签单客户 -->
+			sum(case when customer_status = 5 then 1 else 0 end) as refuseNo, <!-- 拒绝客户 -->
+			sum(case when customer_status = 6 then 1 else 0 end) as stopNo <!-- 停止跟进 -->
+			from user_business where 1=1
+				<if test="sDate != null">
+				 	and create_time &gt; #{sDate,jdbcType=DATE}
+				</if>
+				<if test="eDate != null">
+				 	and create_time &lt; #{eDate,jdbcType=DATE}
+				</if>
+				<if test="businessGlossoryId != null">
+					and business_glossory_id = #{businessGlossoryId,jdbcType=VARCHAR}
+				</if>
+			group by aid
+			)a 
+		left join admin b on a.aid = b.id 
+		left join department_management c on b.department_id = c.id
+		<if test="departmentId !=null">
+			where b.department_id = #{departmentId,jdbcType=VARCHAR}
+		</if>
+		<if test="page_sql != null">
+    		${page_sql}
+   		 </if>
+	</select>
+
+	<select id="customerStatisticsCount" resultType="java.lang.Integer">
+		select count(0) from (
+			select 
+			aid
+			from user_business where 1=1
+			<if test="sDate != null">
+				 and create_time &gt; #{sDate,jdbcType=DATE}
+			</if>
+			<if test="eDate != null">
+				and create_time &lt; #{eDate,jdbcType=DATE}
+			</if>
+			<if test="businessGlossoryId != null">
+				and business_glossory_id = #{businessGlossoryId,jdbcType=VARCHAR}
+			</if>
+			group by aid
+		)a
+		left join admin b on a.aid = b.id 
+		left join department_management c on b.department_id = c.id
+		<if test="departmentId !=null">
+			where b.department_id = #{departmentId,jdbcType=VARCHAR}
+		</if>
+	</select>
+	
+	<select id="businessStatisticList" resultType="com.goafanti.customer.bo.StatisticBo">
+		select a.*,b.name as adminName,c.name as departmentName from (
+			select
+			aid,
+			sum(case when follow_situation = 0 then 1 else 0 end) as sendMaterialNo, <!-- 已发项目介绍资料 -->
+			sum(case when follow_situation = 1 then 1 else 0 end) as interviewNo, <!-- 已约面谈 -->
+			sum(case when follow_situation = 2 then 1 else 0 end) as sendProspectusNo, <!-- 已发合同计划书 -->
+			sum(case when follow_situation = 3 then 1 else 0 end) as quoteNo, <!-- 已报价 -->
+			sum(case when follow_situation = 4 then 1 else 0 end) as sendContractNo, <!-- 已发合同 -->
+			sum(case when follow_situation = 5 then 1 else 0 end) as signContractNo, <!-- 已签合同 -->
+			sum(case when follow_situation = 6 then 1 else 0 end) as onVisaNo, <!-- 面谈中 -->
+			sum(case when follow_situation = 7 then 1 else 0 end) as visaNo <!-- 已面签 -->
+			from user_business where 1=1
+			<if test="sDate != null">
+				 and create_time &gt; #{sDate,jdbcType=DATE}
+			</if>
+			<if test="eDate != null">
+				and create_time &lt; #{eDate,jdbcType=DATE}
+			</if>
+			<if test="businessGlossoryId != null">
+				and business_glossory_id = #{businessGlossoryId,jdbcType=VARCHAR}
+			</if>
+			group by aid
+			)a
+			left join admin b on a.aid = b.id 
+			left join department_management c on b.department_id = c.id
+		<if test="departmentId !=null">
+			where b.department_id = #{departmentId,jdbcType=VARCHAR}
+		</if>
+		<if test="page_sql != null">
+    		${page_sql}
+   		 </if>
+	</select>
+	
+	<select id="businessStatisticCount" resultType="java.lang.Integer">
+		select count(0) from (
+			select
+			aid
+			from user_business where 1=1
+			<if test="sDate != null">
+				 and create_time &gt; #{sDate,jdbcType=DATE}
+			</if>
+			<if test="eDate != null">
+				and create_time &lt; #{eDate,jdbcType=DATE}
+			</if>
+			<if test="businessGlossoryId != null">
+				and business_glossory_id = #{businessGlossoryId,jdbcType=VARCHAR}
+			</if>
+			group by aid
+			)a
+			left join admin b on a.aid = b.id 
+			left join department_management c on b.department_id = c.id
+		<if test="departmentId !=null">
+			where b.department_id = #{departmentId,jdbcType=VARCHAR}
+		</if>
+	</select>
+	
+	<select id="followStatisticList" resultType="com.goafanti.customer.bo.StatisticBo">
+		select x.*,b.name as adminName,c.name as departmentName,y.*  from (
+		select
+			count(0) as followNo,
+			aid,
+			sum(case when contact_type = 0 then 1 else 0 end) as visitNo, <!-- 外出 -->
+			sum(case when contact_type = 1 then 1 else 0 end) as telNo, <!-- 电话 -->
+			sum(case when contact_type = 2 then 1 else 0 end) as qqNo, <!-- QQ -->
+			sum(case when contact_type = 3 then 1 else 0 end) as wxNo, <!-- 微信 -->
+			sum(case when contact_type = 4 then 1 else 0 end) as emailNo, <!-- 邮件 -->
+			sum(case when contact_type = 5 then 1 else 0 end) as letterNo <!-- 书信 -->
+			from user_follow where 1=1 
+			<if test="sDate != null">
+				and create_time &gt; #{sDate,jdbcType=DATE}
+			</if>
+			<if test="eDate != null">
+				and create_time &lt; #{eDate,jdbcType=DATE}
+			</if>
+			group by aid
+		)x
+		left join admin b on x.aid = b.id 
+		left join department_management c on b.department_id = c.id
+		left join 
+		(
+				select
+					count( 0 ) as customerNo,
+					aid
+				from
+					(
+						select
+							aid,
+							uid
+						from
+							user_follow
+						
+						group by
+							aid,
+							uid
+					) a
+				group by
+					aid
+		)y on x.aid = y.aid
+		<if test="departmentId !=null">
+			where b.department_id = #{departmentId,jdbcType=VARCHAR}
+		</if>
+	</select>
+	
+	<select id="followStatisticCount" resultType="java.lang.Integer">
+		select count(0) from (
+		select
+			aid
+			from user_follow where 1=1 
+			<if test="sDate != null">
+				and create_time &gt; #{sDate,jdbcType=DATE}
+			</if>
+			<if test="sDate != null">
+				and create_time &lt; #{eDate,jdbcType=DATE}
+			</if>
+			group by aid
+		)x
+		left join admin b on x.aid = b.id 
+		<if test="departmentId !=null">
+			where b.department_id = #{departmentId,jdbcType=VARCHAR}
+		</if>
+	</select>
+	
 	<select id="findBusinessByFollowId" parameterType="java.lang.String" resultType="com.goafanti.common.model.UserBusiness">
 		select
 		a.id,

+ 13 - 0
src/main/java/com/goafanti/common/model/Admin.java

@@ -61,6 +61,11 @@ public class Admin extends BaseModel implements AftUser {
 	 */
 	private Integer				city;
 	
+	/**
+	 * 部门管理
+	 */
+	private String 				departmentId;
+	
 	public String getSuperiorId() {
 		return superiorId;
 	}
@@ -152,6 +157,14 @@ public class Admin extends BaseModel implements AftUser {
 		this.city = city;
 	}
 
+	public String getDepartmentId() {
+		return departmentId;
+	}
+
+	public void setDepartmentId(String departmentId) {
+		this.departmentId = departmentId;
+	}
+
 	// 创建时间
 	public String getCreateTimeFormattedDate() {
 		if (this.createTime == null) {

+ 10 - 0
src/main/java/com/goafanti/common/model/MemberOrder.java

@@ -464,4 +464,14 @@ public class MemberOrder {
     public void setPayState(Integer payState) {
         this.payState = payState;
     }
+    
+    private String gradeName;
+
+	public String getGradeName() {
+		return gradeName;
+	}
+
+	public void setGradeName(String gradeName) {
+		this.gradeName = gradeName;
+	}
 }

+ 1 - 1
src/main/java/com/goafanti/common/model/User.java

@@ -2,7 +2,7 @@ package com.goafanti.common.model;
 
 import java.util.Date;
 
-public class User implements AftUser{
+public class  User extends BaseModel implements AftUser{
     /**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user.id
 	 * @mbg.generated  Thu Nov 30 16:41:39 CST 2017

+ 137 - 114
src/main/java/com/goafanti/common/model/UserIdentity.java

@@ -7,199 +7,204 @@ public class UserIdentity {
 
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.id
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	private String id;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.uid
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	private String uid;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.username
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	private String username;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.sex
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	private String sex;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.date_of_birth_year
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	private String dateOfBirthYear;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.date_of_birth_month
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	private String dateOfBirthMonth;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.id_number
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	private String idNumber;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.positive_id_url
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	private String positiveIdUrl;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.opposite_id_url
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	private String oppositeIdUrl;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.province
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	private Integer province;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.city
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	private Integer city;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.area
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	private Integer area;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.contact_mobile
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	private String contactMobile;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.bank_name
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	private String bankName;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.bank_account
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	private String bankAccount;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.bank_card_number
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	private String bankCardNumber;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.amount_money
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	private BigDecimal amountMoney;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.audit_status
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	private Integer auditStatus;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.process
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	private Integer process;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.wrong_count
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	private Integer wrongCount;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.payment_date
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	private Date paymentDate;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.expert
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	private Integer expert;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.celebrity
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	private Integer celebrity;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.international
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	private Integer international;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.fixed_tel
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	private String fixedTel;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.qq
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	private String qq;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.postal_address
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	private String postalAddress;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.postcode
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	private String postcode;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.review_instructions
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	private String reviewInstructions;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.industry
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	private Integer industry;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.contacts
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	private String contacts;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.email
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	private String email;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.professional_title
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	private String professionalTitle;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.work_unit
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	private String workUnit;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.education
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	private String education;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.major_category
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	private String majorCategory;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.qualification
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	private String qualification;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.investment
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	private Integer investment;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column user_identity.graduate_school
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
+	 */
+	private String graduateSchool;
 
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.id
 	 * @return  the value of user_identity.id
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public String getId() {
 		return id;
@@ -208,7 +213,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.id
 	 * @param id  the value for user_identity.id
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setId(String id) {
 		this.id = id;
@@ -217,7 +222,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.uid
 	 * @return  the value of user_identity.uid
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public String getUid() {
 		return uid;
@@ -226,7 +231,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.uid
 	 * @param uid  the value for user_identity.uid
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setUid(String uid) {
 		this.uid = uid;
@@ -235,7 +240,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.username
 	 * @return  the value of user_identity.username
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public String getUsername() {
 		return username;
@@ -244,7 +249,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.username
 	 * @param username  the value for user_identity.username
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setUsername(String username) {
 		this.username = username;
@@ -253,7 +258,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.sex
 	 * @return  the value of user_identity.sex
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public String getSex() {
 		return sex;
@@ -262,7 +267,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.sex
 	 * @param sex  the value for user_identity.sex
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setSex(String sex) {
 		this.sex = sex;
@@ -271,7 +276,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.date_of_birth_year
 	 * @return  the value of user_identity.date_of_birth_year
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public String getDateOfBirthYear() {
 		return dateOfBirthYear;
@@ -280,7 +285,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.date_of_birth_year
 	 * @param dateOfBirthYear  the value for user_identity.date_of_birth_year
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setDateOfBirthYear(String dateOfBirthYear) {
 		this.dateOfBirthYear = dateOfBirthYear;
@@ -289,7 +294,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.date_of_birth_month
 	 * @return  the value of user_identity.date_of_birth_month
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public String getDateOfBirthMonth() {
 		return dateOfBirthMonth;
@@ -298,7 +303,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.date_of_birth_month
 	 * @param dateOfBirthMonth  the value for user_identity.date_of_birth_month
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setDateOfBirthMonth(String dateOfBirthMonth) {
 		this.dateOfBirthMonth = dateOfBirthMonth;
@@ -307,7 +312,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.id_number
 	 * @return  the value of user_identity.id_number
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public String getIdNumber() {
 		return idNumber;
@@ -316,7 +321,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.id_number
 	 * @param idNumber  the value for user_identity.id_number
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setIdNumber(String idNumber) {
 		this.idNumber = idNumber;
@@ -325,7 +330,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.positive_id_url
 	 * @return  the value of user_identity.positive_id_url
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public String getPositiveIdUrl() {
 		return positiveIdUrl;
@@ -334,7 +339,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.positive_id_url
 	 * @param positiveIdUrl  the value for user_identity.positive_id_url
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setPositiveIdUrl(String positiveIdUrl) {
 		this.positiveIdUrl = positiveIdUrl;
@@ -343,7 +348,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.opposite_id_url
 	 * @return  the value of user_identity.opposite_id_url
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public String getOppositeIdUrl() {
 		return oppositeIdUrl;
@@ -352,7 +357,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.opposite_id_url
 	 * @param oppositeIdUrl  the value for user_identity.opposite_id_url
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setOppositeIdUrl(String oppositeIdUrl) {
 		this.oppositeIdUrl = oppositeIdUrl;
@@ -361,7 +366,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.province
 	 * @return  the value of user_identity.province
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public Integer getProvince() {
 		return province;
@@ -370,7 +375,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.province
 	 * @param province  the value for user_identity.province
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setProvince(Integer province) {
 		this.province = province;
@@ -379,7 +384,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.city
 	 * @return  the value of user_identity.city
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public Integer getCity() {
 		return city;
@@ -388,7 +393,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.city
 	 * @param city  the value for user_identity.city
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setCity(Integer city) {
 		this.city = city;
@@ -397,7 +402,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.area
 	 * @return  the value of user_identity.area
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public Integer getArea() {
 		return area;
@@ -406,7 +411,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.area
 	 * @param area  the value for user_identity.area
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setArea(Integer area) {
 		this.area = area;
@@ -415,7 +420,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.contact_mobile
 	 * @return  the value of user_identity.contact_mobile
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public String getContactMobile() {
 		return contactMobile;
@@ -424,7 +429,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.contact_mobile
 	 * @param contactMobile  the value for user_identity.contact_mobile
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setContactMobile(String contactMobile) {
 		this.contactMobile = contactMobile;
@@ -433,7 +438,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.bank_name
 	 * @return  the value of user_identity.bank_name
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public String getBankName() {
 		return bankName;
@@ -442,7 +447,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.bank_name
 	 * @param bankName  the value for user_identity.bank_name
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setBankName(String bankName) {
 		this.bankName = bankName;
@@ -451,7 +456,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.bank_account
 	 * @return  the value of user_identity.bank_account
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public String getBankAccount() {
 		return bankAccount;
@@ -460,7 +465,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.bank_account
 	 * @param bankAccount  the value for user_identity.bank_account
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setBankAccount(String bankAccount) {
 		this.bankAccount = bankAccount;
@@ -469,7 +474,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.bank_card_number
 	 * @return  the value of user_identity.bank_card_number
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public String getBankCardNumber() {
 		return bankCardNumber;
@@ -478,7 +483,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.bank_card_number
 	 * @param bankCardNumber  the value for user_identity.bank_card_number
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setBankCardNumber(String bankCardNumber) {
 		this.bankCardNumber = bankCardNumber;
@@ -487,7 +492,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.amount_money
 	 * @return  the value of user_identity.amount_money
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public BigDecimal getAmountMoney() {
 		return amountMoney;
@@ -496,7 +501,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.amount_money
 	 * @param amountMoney  the value for user_identity.amount_money
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setAmountMoney(BigDecimal amountMoney) {
 		this.amountMoney = amountMoney;
@@ -505,7 +510,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.audit_status
 	 * @return  the value of user_identity.audit_status
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public Integer getAuditStatus() {
 		return auditStatus;
@@ -514,7 +519,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.audit_status
 	 * @param auditStatus  the value for user_identity.audit_status
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setAuditStatus(Integer auditStatus) {
 		this.auditStatus = auditStatus;
@@ -523,7 +528,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.process
 	 * @return  the value of user_identity.process
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public Integer getProcess() {
 		return process;
@@ -532,7 +537,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.process
 	 * @param process  the value for user_identity.process
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setProcess(Integer process) {
 		this.process = process;
@@ -541,7 +546,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.wrong_count
 	 * @return  the value of user_identity.wrong_count
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public Integer getWrongCount() {
 		return wrongCount;
@@ -550,7 +555,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.wrong_count
 	 * @param wrongCount  the value for user_identity.wrong_count
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setWrongCount(Integer wrongCount) {
 		this.wrongCount = wrongCount;
@@ -559,7 +564,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.payment_date
 	 * @return  the value of user_identity.payment_date
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public Date getPaymentDate() {
 		return paymentDate;
@@ -568,7 +573,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.payment_date
 	 * @param paymentDate  the value for user_identity.payment_date
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setPaymentDate(Date paymentDate) {
 		this.paymentDate = paymentDate;
@@ -577,7 +582,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.expert
 	 * @return  the value of user_identity.expert
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public Integer getExpert() {
 		return expert;
@@ -586,7 +591,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.expert
 	 * @param expert  the value for user_identity.expert
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setExpert(Integer expert) {
 		this.expert = expert;
@@ -595,7 +600,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.celebrity
 	 * @return  the value of user_identity.celebrity
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public Integer getCelebrity() {
 		return celebrity;
@@ -604,7 +609,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.celebrity
 	 * @param celebrity  the value for user_identity.celebrity
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setCelebrity(Integer celebrity) {
 		this.celebrity = celebrity;
@@ -613,7 +618,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.international
 	 * @return  the value of user_identity.international
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public Integer getInternational() {
 		return international;
@@ -622,7 +627,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.international
 	 * @param international  the value for user_identity.international
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setInternational(Integer international) {
 		this.international = international;
@@ -631,7 +636,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.fixed_tel
 	 * @return  the value of user_identity.fixed_tel
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public String getFixedTel() {
 		return fixedTel;
@@ -640,7 +645,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.fixed_tel
 	 * @param fixedTel  the value for user_identity.fixed_tel
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setFixedTel(String fixedTel) {
 		this.fixedTel = fixedTel;
@@ -649,7 +654,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.qq
 	 * @return  the value of user_identity.qq
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public String getQq() {
 		return qq;
@@ -658,7 +663,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.qq
 	 * @param qq  the value for user_identity.qq
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setQq(String qq) {
 		this.qq = qq;
@@ -667,7 +672,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.postal_address
 	 * @return  the value of user_identity.postal_address
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public String getPostalAddress() {
 		return postalAddress;
@@ -676,7 +681,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.postal_address
 	 * @param postalAddress  the value for user_identity.postal_address
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setPostalAddress(String postalAddress) {
 		this.postalAddress = postalAddress;
@@ -685,7 +690,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.postcode
 	 * @return  the value of user_identity.postcode
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public String getPostcode() {
 		return postcode;
@@ -694,7 +699,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.postcode
 	 * @param postcode  the value for user_identity.postcode
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setPostcode(String postcode) {
 		this.postcode = postcode;
@@ -703,7 +708,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.review_instructions
 	 * @return  the value of user_identity.review_instructions
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public String getReviewInstructions() {
 		return reviewInstructions;
@@ -712,7 +717,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.review_instructions
 	 * @param reviewInstructions  the value for user_identity.review_instructions
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setReviewInstructions(String reviewInstructions) {
 		this.reviewInstructions = reviewInstructions;
@@ -721,7 +726,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.industry
 	 * @return  the value of user_identity.industry
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public Integer getIndustry() {
 		return industry;
@@ -730,7 +735,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.industry
 	 * @param industry  the value for user_identity.industry
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setIndustry(Integer industry) {
 		this.industry = industry;
@@ -739,7 +744,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.contacts
 	 * @return  the value of user_identity.contacts
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public String getContacts() {
 		return contacts;
@@ -748,7 +753,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.contacts
 	 * @param contacts  the value for user_identity.contacts
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setContacts(String contacts) {
 		this.contacts = contacts;
@@ -757,7 +762,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.email
 	 * @return  the value of user_identity.email
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public String getEmail() {
 		return email;
@@ -766,7 +771,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.email
 	 * @param email  the value for user_identity.email
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setEmail(String email) {
 		this.email = email;
@@ -775,7 +780,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.professional_title
 	 * @return  the value of user_identity.professional_title
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public String getProfessionalTitle() {
 		return professionalTitle;
@@ -784,7 +789,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.professional_title
 	 * @param professionalTitle  the value for user_identity.professional_title
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setProfessionalTitle(String professionalTitle) {
 		this.professionalTitle = professionalTitle;
@@ -793,7 +798,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.work_unit
 	 * @return  the value of user_identity.work_unit
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public String getWorkUnit() {
 		return workUnit;
@@ -802,7 +807,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.work_unit
 	 * @param workUnit  the value for user_identity.work_unit
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setWorkUnit(String workUnit) {
 		this.workUnit = workUnit;
@@ -811,7 +816,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.education
 	 * @return  the value of user_identity.education
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public String getEducation() {
 		return education;
@@ -820,7 +825,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.education
 	 * @param education  the value for user_identity.education
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setEducation(String education) {
 		this.education = education;
@@ -829,7 +834,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.major_category
 	 * @return  the value of user_identity.major_category
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public String getMajorCategory() {
 		return majorCategory;
@@ -838,7 +843,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.major_category
 	 * @param majorCategory  the value for user_identity.major_category
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setMajorCategory(String majorCategory) {
 		this.majorCategory = majorCategory;
@@ -847,7 +852,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.qualification
 	 * @return  the value of user_identity.qualification
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public String getQualification() {
 		return qualification;
@@ -856,7 +861,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.qualification
 	 * @param qualification  the value for user_identity.qualification
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setQualification(String qualification) {
 		this.qualification = qualification;
@@ -865,7 +870,7 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.investment
 	 * @return  the value of user_identity.investment
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public Integer getInvestment() {
 		return investment;
@@ -874,9 +879,27 @@ public class UserIdentity {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.investment
 	 * @param investment  the value for user_identity.investment
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setInvestment(Integer investment) {
 		this.investment = investment;
 	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method returns the value of the database column user_identity.graduate_school
+	 * @return  the value of user_identity.graduate_school
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
+	 */
+	public String getGraduateSchool() {
+		return graduateSchool;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method sets the value of the database column user_identity.graduate_school
+	 * @param graduateSchool  the value for user_identity.graduate_school
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
+	 */
+	public void setGraduateSchool(String graduateSchool) {
+		this.graduateSchool = graduateSchool;
+	}
 }

+ 86 - 16
src/main/java/com/goafanti/common/model/UserIdentityExample.java

@@ -8,23 +8,23 @@ import java.util.List;
 public class UserIdentityExample {
     /**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database table user_identity
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	protected String orderByClause;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database table user_identity
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	protected boolean distinct;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database table user_identity
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	protected List<Criteria> oredCriteria;
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table user_identity
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public UserIdentityExample() {
 		oredCriteria = new ArrayList<Criteria>();
@@ -32,7 +32,7 @@ public class UserIdentityExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table user_identity
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setOrderByClause(String orderByClause) {
 		this.orderByClause = orderByClause;
@@ -40,7 +40,7 @@ public class UserIdentityExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table user_identity
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public String getOrderByClause() {
 		return orderByClause;
@@ -48,7 +48,7 @@ public class UserIdentityExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table user_identity
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void setDistinct(boolean distinct) {
 		this.distinct = distinct;
@@ -56,7 +56,7 @@ public class UserIdentityExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table user_identity
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public boolean isDistinct() {
 		return distinct;
@@ -64,7 +64,7 @@ public class UserIdentityExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table user_identity
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public List<Criteria> getOredCriteria() {
 		return oredCriteria;
@@ -72,7 +72,7 @@ public class UserIdentityExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table user_identity
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void or(Criteria criteria) {
 		oredCriteria.add(criteria);
@@ -80,7 +80,7 @@ public class UserIdentityExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table user_identity
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public Criteria or() {
 		Criteria criteria = createCriteriaInternal();
@@ -90,7 +90,7 @@ public class UserIdentityExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table user_identity
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public Criteria createCriteria() {
 		Criteria criteria = createCriteriaInternal();
@@ -102,7 +102,7 @@ public class UserIdentityExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table user_identity
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	protected Criteria createCriteriaInternal() {
 		Criteria criteria = new Criteria();
@@ -111,7 +111,7 @@ public class UserIdentityExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table user_identity
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public void clear() {
 		oredCriteria.clear();
@@ -121,7 +121,7 @@ public class UserIdentityExample {
 
 	/**
 	 * This class was generated by MyBatis Generator. This class corresponds to the database table user_identity
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	protected abstract static class GeneratedCriteria {
 		protected List<Criterion> criteria;
@@ -2693,11 +2693,81 @@ public class UserIdentityExample {
 			addCriterion("investment not between", value1, value2, "investment");
 			return (Criteria) this;
 		}
+
+		public Criteria andGraduateSchoolIsNull() {
+			addCriterion("graduate_school is null");
+			return (Criteria) this;
+		}
+
+		public Criteria andGraduateSchoolIsNotNull() {
+			addCriterion("graduate_school is not null");
+			return (Criteria) this;
+		}
+
+		public Criteria andGraduateSchoolEqualTo(String value) {
+			addCriterion("graduate_school =", value, "graduateSchool");
+			return (Criteria) this;
+		}
+
+		public Criteria andGraduateSchoolNotEqualTo(String value) {
+			addCriterion("graduate_school <>", value, "graduateSchool");
+			return (Criteria) this;
+		}
+
+		public Criteria andGraduateSchoolGreaterThan(String value) {
+			addCriterion("graduate_school >", value, "graduateSchool");
+			return (Criteria) this;
+		}
+
+		public Criteria andGraduateSchoolGreaterThanOrEqualTo(String value) {
+			addCriterion("graduate_school >=", value, "graduateSchool");
+			return (Criteria) this;
+		}
+
+		public Criteria andGraduateSchoolLessThan(String value) {
+			addCriterion("graduate_school <", value, "graduateSchool");
+			return (Criteria) this;
+		}
+
+		public Criteria andGraduateSchoolLessThanOrEqualTo(String value) {
+			addCriterion("graduate_school <=", value, "graduateSchool");
+			return (Criteria) this;
+		}
+
+		public Criteria andGraduateSchoolLike(String value) {
+			addCriterion("graduate_school like", value, "graduateSchool");
+			return (Criteria) this;
+		}
+
+		public Criteria andGraduateSchoolNotLike(String value) {
+			addCriterion("graduate_school not like", value, "graduateSchool");
+			return (Criteria) this;
+		}
+
+		public Criteria andGraduateSchoolIn(List<String> values) {
+			addCriterion("graduate_school in", values, "graduateSchool");
+			return (Criteria) this;
+		}
+
+		public Criteria andGraduateSchoolNotIn(List<String> values) {
+			addCriterion("graduate_school not in", values, "graduateSchool");
+			return (Criteria) this;
+		}
+
+		public Criteria andGraduateSchoolBetween(String value1, String value2) {
+			addCriterion("graduate_school between", value1, value2, "graduateSchool");
+			return (Criteria) this;
+		}
+
+		public Criteria andGraduateSchoolNotBetween(String value1, String value2) {
+			addCriterion("graduate_school not between", value1, value2, "graduateSchool");
+			return (Criteria) this;
+		}
 	}
 
 	/**
 	 * This class was generated by MyBatis Generator. This class corresponds to the database table user_identity
-	 * @mbg.generated  Thu Nov 30 17:32:28 CST 2017
+	 * @mbg.generated  Wed Dec 06 15:49:08 CST 2017
 	 */
 	public static class Criterion {
 		private String condition;

+ 335 - 0
src/main/java/com/goafanti/common/utils/DateUtils.java

@@ -4,7 +4,17 @@ import java.util.Calendar;
 import java.util.Date;
 
 public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
+	
+	public static final String YEAR_SPAN =  "yearSpan";
+	
+	public static final String QUARTER_SPAN = "quarterSpan";
+	
+	public static final String MONTH_SPAN = "monthSpan";
 
+	public static final String WEEK_SPAN = "weekSpan";
+	
+	public static final String DAY_SPAN = "daySpan";
+	
 	/**
 	 * Determines how two dates compare up to no more than the specified most
 	 * significant field.
@@ -71,5 +81,330 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
 	public static long truncatedMinuteDiffTo(final Date date1, final Date date2) {
 		return truncatedDiffTo(date1, date2, Calendar.MINUTE) / 60000;
 	}
+	
+    /**
+     * 得到某年某周的第一天
+     *
+     * @param year
+     * @param week
+     * @return
+     */
+    public static Date getFirstDayOfWeek(int year, int week) {
+        week = week - 1;
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(Calendar.YEAR, year);
+        calendar.set(Calendar.MONTH, Calendar.JANUARY);
+        calendar.set(Calendar.DATE, 1);
 
+        Calendar cal = (Calendar) calendar.clone();
+        cal.add(Calendar.DATE, week * 7);
+
+        return getFirstDayOfWeek(cal.getTime());
+    }
+
+    /**
+     * 得到某年某周的最后一天
+     *
+     * @param year
+     * @param week
+     * @return
+     */
+    public static Date getLastDayOfWeek(int year, int week) {
+        week = week - 1;
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(Calendar.YEAR, year);
+        calendar.set(Calendar.MONTH, Calendar.JANUARY);
+        calendar.set(Calendar.DATE, 1);
+        Calendar cal = (Calendar) calendar.clone();
+        cal.add(Calendar.DATE, week * 7);
+
+        return getLastDayOfWeek(cal.getTime());
+    }
+
+    /**
+     * 取得当前日期所在周的第一天
+     *
+     * @param date
+     * @return
+     */
+    public static Date getFirstDayOfWeek(Date date) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setFirstDayOfWeek(Calendar.SUNDAY);
+        calendar.setTime(date);
+        calendar.set(Calendar.DAY_OF_WEEK,
+                      calendar.getFirstDayOfWeek()); // Sunday
+        return calendar.getTime();
+    }
+
+    /**
+     * 取得当前日期所在周的最后一天
+     *
+     * @param date
+     * @return
+     */
+    public static Date getLastDayOfWeek(Date date) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setFirstDayOfWeek(Calendar.SUNDAY);
+        calendar.setTime(date);
+        calendar.set(Calendar.DAY_OF_WEEK,
+                     calendar.getFirstDayOfWeek() + 6); // Saturday
+        return calendar.getTime();
+    }
+
+    /**
+     * 取得当前日期所在周的前一周最后一天
+     *
+     * @param date
+     * @return
+     */
+    public static Date getLastDayOfLastWeek(Date date) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        return getLastDayOfWeek(calendar.get(Calendar.YEAR),
+                                calendar.get(Calendar.WEEK_OF_YEAR) - 1);
+    }
+
+    /**
+     * 返回指定日期的月的第一天
+     *
+     * @param year
+     * @param month
+     * @return
+     */
+    public static Date getFirstDayOfMonth(Date date) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        calendar.set(calendar.get(Calendar.YEAR),
+                     calendar.get(Calendar.MONTH), 1);
+        return calendar.getTime();
+    }
+
+    /**
+     * 返回指定年月的月的第一天
+     *
+     * @param year
+     * @param month
+     * @return
+     */
+    public static Date getFirstDayOfMonth(Integer year, Integer month) {
+        Calendar calendar = Calendar.getInstance();
+        if (year == null) {
+            year = calendar.get(Calendar.YEAR);
+        }
+        if (month == null) {
+            month = calendar.get(Calendar.MONTH);
+        }
+        calendar.set(year, month, 1);
+        return calendar.getTime();
+    }
+
+    /**
+     * 返回指定日期的月的最后一天
+     *
+     * @param year
+     * @param month
+     * @return
+     */
+    public static Date getLastDayOfMonth(Date date) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        calendar.set(calendar.get(Calendar.YEAR),
+                     calendar.get(Calendar.MONTH), 1);
+        calendar.roll(Calendar.DATE, -1);
+        return calendar.getTime();
+    }
+
+    /**
+     * 返回指定年月的月的最后一天
+     *
+     * @param year
+     * @param month
+     * @return
+     */
+    public static Date getLastDayOfMonth(Integer year, Integer month) {
+        Calendar calendar = Calendar.getInstance();
+        if (year == null) {
+            year = calendar.get(Calendar.YEAR);
+        }
+        if (month == null) {
+            month = calendar.get(Calendar.MONTH);
+        }
+        calendar.set(year, month, 1);
+        calendar.roll(Calendar.DATE, -1);
+        return calendar.getTime();
+    }
+
+    /**
+     * 返回指定日期的上个月的最后一天
+     *
+     * @param year
+     * @param month
+     * @return
+     */
+    public static Date getLastDayOfLastMonth(Date date) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        calendar.set(calendar.get(Calendar.YEAR),
+                     calendar.get(Calendar.MONTH) - 1, 1);
+        calendar.roll(Calendar.DATE, -1);
+        return calendar.getTime();
+    }
+
+    /**
+     * 返回指定日期的季的第一天
+     *
+     * @param year
+     * @param quarter
+     * @return
+     */
+    public static Date getFirstDayOfQuarter(Date date) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        return getFirstDayOfQuarter(calendar.get(Calendar.YEAR),
+                                    getQuarterOfYear(date));
+    }
+
+    /**
+     * 返回指定年季的季的第一天
+     *
+     * @param year
+     * @param quarter
+     * @return
+     */
+    public static Date getFirstDayOfQuarter(Integer year, Integer quarter) {
+        Calendar calendar = Calendar.getInstance();
+        Integer month = new Integer(0);
+        if (quarter == 1) {
+            month = 1 - 1;
+        } else if (quarter == 2) {
+            month = 4 - 1;
+        } else if (quarter == 3) {
+            month = 7 - 1;
+        } else if (quarter == 4) {
+            month = 10 - 1;
+        } else {
+            month = calendar.get(Calendar.MONTH);
+        }
+        return getFirstDayOfMonth(year, month);
+    }
+
+    /**
+     * 返回指定日期的季的最后一天
+     *
+     * @param year
+     * @param quarter
+     * @return
+     */
+    public static Date getLastDayOfQuarter(Date date) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        return getLastDayOfQuarter(calendar.get(Calendar.YEAR),
+                                   getQuarterOfYear(date));
+    }
+
+    /**
+     * 返回指定年季的季的最后一天
+     *
+     * @param year
+     * @param quarter
+     * @return
+     */
+    public static Date getLastDayOfQuarter(Integer year, Integer quarter) {
+        Calendar calendar = Calendar.getInstance();
+        Integer month = new Integer(0);
+        if (quarter == 1) {
+            month = 3 - 1;
+        } else if (quarter == 2) {
+            month = 6 - 1;
+        } else if (quarter == 3) {
+            month = 9 - 1;
+        } else if (quarter == 4) {
+            month = 12 - 1;
+        } else {
+            month = calendar.get(Calendar.MONTH);
+        }
+        return getLastDayOfMonth(year, month);
+    }
+
+    /**
+     * 返回指定日期的上一季的最后一天
+     *
+     * @param year
+     * @param quarter
+     * @return
+     */
+    public static Date getLastDayOfLastQuarter(Date date) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        return getLastDayOfLastQuarter(calendar.get(Calendar.YEAR),
+                                       getQuarterOfYear(date));
+    }
+
+    /**
+     * 返回指定年季的上一季的最后一天
+     *
+     * @param year
+     * @param quarter
+     * @return
+     */
+    public static Date getLastDayOfLastQuarter(Integer year, Integer quarter) {
+        Calendar calendar = Calendar.getInstance();
+        Integer month = new Integer(0);
+        if (quarter == 1) {
+            month = 12 - 1;
+        } else if (quarter == 2) {
+            month = 3 - 1;
+        } else if (quarter == 3) {
+            month = 6 - 1;
+        } else if (quarter == 4) {
+            month = 9 - 1;
+        } else {
+            month = calendar.get(Calendar.MONTH);
+        }
+        return getLastDayOfMonth(year, month);
+    }
+
+    /**
+     * 返回指定日期的季度
+     *
+     * @param date
+     * @return
+     */
+    public static int getQuarterOfYear(Date date) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        return calendar.get(Calendar.MONTH) / 3 + 1;
+    }
+ 
+    /**
+     * 返回昨天日期
+     * @return date
+     */
+    public static Date getYesterday(){
+    	  Calendar calendar = Calendar.getInstance();
+    	  calendar.add(Calendar.DATE, -1);
+    	  return calendar.getTime();
+    }
+    
+    /** 
+     *  返回前一年最后一天
+     * @param date
+     * @return
+     */
+	public static Date getLastDayOfLastYear(Date date) {
+		Calendar calendar = Calendar.getInstance();
+		return getLastDayOfYear(calendar.get(Calendar.YEAR) - 1);
+	}
+	
+	/**
+	 * 返回指定年的最后一天
+	 * @param year
+	 * @return
+	 */
+	public static Date getLastDayOfYear(int year){
+		Calendar calendar = Calendar.getInstance();
+		calendar.set(Calendar.YEAR, year - 1);
+		calendar.roll(Calendar.DAY_OF_YEAR, -1);
+		return calendar.getTime();
+	}
 }

+ 12 - 1
src/main/java/com/goafanti/core/shiro/token/ShiroToken.java

@@ -8,10 +8,11 @@ public class ShiroToken extends UsernamePasswordToken implements Serializable {
 
 	private static final long serialVersionUID = 4364371216579943671L;
 
-	public ShiroToken(String username, String pwd, Integer type) {
+	public ShiroToken(String username, String pwd, Integer type,Integer source) {
 		super(username, pwd);
 		this.pwd = pwd;
 		this.type = type;
+		this.source = source;
 	}
 
 	public ShiroToken(String username, String pwd) {
@@ -26,6 +27,8 @@ public class ShiroToken extends UsernamePasswordToken implements Serializable {
 
 	private String	id;
 
+	private Integer source;
+	
 	public String getPwd() {
 		return pwd;
 	}
@@ -42,6 +45,14 @@ public class ShiroToken extends UsernamePasswordToken implements Serializable {
 		this.type = type;
 	}
 
+	public Integer getSource() {
+		return source;
+	}
+
+	public void setSource(Integer source) {
+		this.source = source;
+	}
+
 	@Override
 	public Object getPrincipal() {
 		return id;

+ 2 - 1
src/main/java/com/goafanti/core/shiro/token/TokenManager.java

@@ -5,6 +5,7 @@ import java.util.UUID;
 import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.session.Session;
 
+import com.goafanti.common.constant.AFTConstants;
 import com.goafanti.common.model.Admin;
 import com.goafanti.common.model.AftUser;
 import com.goafanti.common.model.User;
@@ -165,7 +166,7 @@ public class TokenManager {
 	 * @return
 	 */
 	public static User login(User user, Boolean rememberMe) {
-		ShiroToken token = new ShiroToken(user.getMobile(), user.getPassword(), user.getType());
+		ShiroToken token = new ShiroToken(user.getMobile(), user.getPassword(), user.getType(),AFTConstants.USER_SOURCE_REGISTER);
 		token.setRememberMe(null == rememberMe ? false : rememberMe);
 		SecurityUtils.getSubject().login(token);
 		setVal2Session(CSRF_TOKEN, UUID.randomUUID().toString().replace("-", ""));

+ 7 - 0
src/main/java/com/goafanti/customer/bo/CustomerOrganizationDetailBo.java

@@ -7,6 +7,7 @@ public class CustomerOrganizationDetailBo extends OrganizationIdentity{
 	private String societyTag;
 	private String companyLogoUrl;
 	private String introduction;
+	private Integer businessAudit;
 	public String getIdentifyName() {
 		return identifyName;
 	}
@@ -31,4 +32,10 @@ public class CustomerOrganizationDetailBo extends OrganizationIdentity{
 	public void setIntroduction(String introduction) {
 		this.introduction = introduction;
 	}
+	public Integer getBusinessAudit() {
+		return businessAudit;
+	}
+	public void setBusinessAudit(Integer businessAudit) {
+		this.businessAudit = businessAudit;
+	}
 }

+ 7 - 0
src/main/java/com/goafanti/customer/bo/CustomerPersonalDetailBo.java

@@ -7,6 +7,7 @@ public class CustomerPersonalDetailBo extends UserIdentity{
 	private String societyTag;
 	private String headPortraitUrl;
 	private String introduction;
+	private Integer businessAudit;
 	public String getIdentifyName() {
 		return identifyName;
 	}
@@ -31,4 +32,10 @@ public class CustomerPersonalDetailBo extends UserIdentity{
 	public void setIntroduction(String introduction) {
 		this.introduction = introduction;
 	}
+	public Integer getBusinessAudit() {
+		return businessAudit;
+	}
+	public void setBusinessAudit(Integer businessAudit) {
+		this.businessAudit = businessAudit;
+	}
 }

+ 206 - 0
src/main/java/com/goafanti/customer/bo/StatisticBo.java

@@ -0,0 +1,206 @@
+package com.goafanti.customer.bo;
+
+public class StatisticBo {
+	/** 营销员ID **/
+	private String aid;
+	/** 营销员姓名 **/
+	private String adminName;
+	/** 部门名称 **/
+	private String departmentName;
+	/** 拜访次数 **/
+	private String followNo;
+	/** 客户数量 **/
+	private String customerNo;
+	/** 电话数量 **/
+	private String telNo;
+	/** QQ数量 **/
+	private String qqNo;
+	/** 拜访量 **/
+	private String visitNo;
+	/** 邮件量 **/
+	private String emailNo;
+	/** 书信量 **/
+	private String letterNo;
+	/** 微信 **/
+	private String wxNo;
+	/** 新客户 **/
+	private String newNo;
+	/** 意向客户 **/
+	private String intentionNo;
+	/** 重点客户 **/
+	private String pointNo;
+	/** 面谈客户 **/
+	private String interviewNo;
+	/** 签订客户 **/
+	private String signNo;
+	/** 拒绝客户 **/
+	private String refuseNo;
+	/** 停止跟进 **/
+	private String stopNo;
+	
+	/** 发送资料 **/
+	private String sendMaterialNo;
+	/** 发送计划书 **/
+	private String sendProspectusNo;
+	/** 已经报价 **/
+	private String quoteNo;
+	/** 已发合同 **/
+	private String sendContractNo;
+	/** 已签合同 **/
+	private String signContractNo;
+	/** 面谈中 **/
+	private String onVisaNo;
+	/** 已面签 **/
+	private String visaNo;
+	
+	public String getAid() {
+		return aid;
+	}
+	public void setAid(String aid) {
+		this.aid = aid;
+	}
+	public String getAdminName() {
+		return adminName;
+	}
+	public void setAdminName(String adminName) {
+		this.adminName = adminName;
+	}
+	public String getDepartmentName() {
+		return departmentName;
+	}
+	public void setDepartmentName(String departmentName) {
+		this.departmentName = departmentName;
+	}
+	public String getFollowNo() {
+		return followNo;
+	}
+	public void setFollowNo(String followNo) {
+		this.followNo = followNo;
+	}
+	public String getCustomerNo() {
+		return customerNo;
+	}
+	public void setCustomerNo(String customerNo) {
+		this.customerNo = customerNo;
+	}
+	public String getTelNo() {
+		return telNo;
+	}
+	public void setTelNo(String telNo) {
+		this.telNo = telNo;
+	}
+	public String getQqNo() {
+		return qqNo;
+	}
+	public void setQqNo(String qqNo) {
+		this.qqNo = qqNo;
+	}
+	public String getVisitNo() {
+		return visitNo;
+	}
+	public void setVisitNo(String visitNo) {
+		this.visitNo = visitNo;
+	}
+	public String getEmailNo() {
+		return emailNo;
+	}
+	public void setEmailNo(String emailNo) {
+		this.emailNo = emailNo;
+	}
+	public String getLetterNo() {
+		return letterNo;
+	}
+	public void setLetterNo(String letterNo) {
+		this.letterNo = letterNo;
+	}
+	public String getWxNo() {
+		return wxNo;
+	}
+	public void setWxNo(String wxNo) {
+		this.wxNo = wxNo;
+	}
+	public String getNewNo() {
+		return newNo;
+	}
+	public void setNewNo(String newNo) {
+		this.newNo = newNo;
+	}
+	public String getIntentionNo() {
+		return intentionNo;
+	}
+	public void setIntentionNo(String intentionNo) {
+		this.intentionNo = intentionNo;
+	}
+	public String getPointNo() {
+		return pointNo;
+	}
+	public void setPointNo(String pointNo) {
+		this.pointNo = pointNo;
+	}
+	public String getInterviewNo() {
+		return interviewNo;
+	}
+	public void setInterviewNo(String interviewNo) {
+		this.interviewNo = interviewNo;
+	}
+	public String getSignNo() {
+		return signNo;
+	}
+	public void setSignNo(String signNo) {
+		this.signNo = signNo;
+	}
+	public String getRefuseNo() {
+		return refuseNo;
+	}
+	public void setRefuseNo(String refuseNo) {
+		this.refuseNo = refuseNo;
+	}
+	public String getStopNo() {
+		return stopNo;
+	}
+	public void setStopNo(String stopNo) {
+		this.stopNo = stopNo;
+	}
+	public String getSendMaterialNo() {
+		return sendMaterialNo;
+	}
+	public void setSendMaterialNo(String sendMaterialNo) {
+		this.sendMaterialNo = sendMaterialNo;
+	}
+	public String getSendProspectusNo() {
+		return sendProspectusNo;
+	}
+	public void setSendProspectusNo(String sendProspectusNo) {
+		this.sendProspectusNo = sendProspectusNo;
+	}
+	public String getQuoteNo() {
+		return quoteNo;
+	}
+	public void setQuoteNo(String quoteNo) {
+		this.quoteNo = quoteNo;
+	}
+	public String getSendContractNo() {
+		return sendContractNo;
+	}
+	public void setSendContractNo(String sendContractNo) {
+		this.sendContractNo = sendContractNo;
+	}
+	public String getSignContractNo() {
+		return signContractNo;
+	}
+	public void setSignContractNo(String signContractNo) {
+		this.signContractNo = signContractNo;
+	}
+	public String getOnVisaNo() {
+		return onVisaNo;
+	}
+	public void setOnVisaNo(String onVisaNo) {
+		this.onVisaNo = onVisaNo;
+	}
+	public String getVisaNo() {
+		return visaNo;
+	}
+	public void setVisaNo(String visaNo) {
+		this.visaNo = visaNo;
+	}
+}

+ 1 - 0
src/main/java/com/goafanti/customer/bo/UserDetailBo.java

@@ -3,6 +3,7 @@ package com.goafanti.customer.bo;
 import com.goafanti.common.model.User;
 
 public class UserDetailBo extends User{
+	private static final long serialVersionUID = -1468630204351166937L;
 	private String createTimes;
 
 	public String getCreateTimes() {

+ 147 - 1
src/main/java/com/goafanti/customer/controller/CustomerApiController.java

@@ -2,6 +2,7 @@ package com.goafanti.customer.controller;
 
 import java.io.IOException;
 import java.lang.reflect.InvocationTargetException;
+import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
@@ -21,6 +22,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
+import com.goafanti.admin.service.AdminService;
 import com.goafanti.admin.service.AftFileService;
 import com.goafanti.common.bo.Error;
 import com.goafanti.common.bo.Result;
@@ -33,6 +35,7 @@ import com.goafanti.common.model.OrganizationContactBook;
 import com.goafanti.common.model.User;
 import com.goafanti.common.model.UserBusiness;
 import com.goafanti.common.utils.BeanUtilsExt;
+import com.goafanti.common.utils.DateUtils;
 import com.goafanti.common.utils.ExcelUtils;
 import com.goafanti.common.utils.StringUtils;
 import com.goafanti.core.shiro.token.TokenManager;
@@ -56,7 +59,8 @@ public class CustomerApiController extends BaseApiController{
 	private AftFileService aftFileService;
 	@Value(value = "${upload.private.path}")
 	private String	uploadPrivatePath	= null;
-	
+	@Resource
+	private AdminService adminService;
 	/** 私有个人客户列表 **/
 	@RequestMapping(value = "/listPrivatePersonalCustomer" , method = RequestMethod.POST)
 	public Result listPrivatePersonalCustomer(CustomerListIn cli,Integer pageNo, Integer pageSize){
@@ -461,4 +465,146 @@ public class CustomerApiController extends BaseApiController{
 		customerService.updateByOperatorType(uid, AFTConstants.USER_TRANSFER_TO_PUBLIC);
 		return res;
 	}
+	
+	/** 图片上传 **/
+	@RequestMapping(value = "/uploadCustomerImg", method = RequestMethod.POST)
+	public Result uploadCustomerImg(HttpServletRequest req,String sign){
+		Result res = new Result();
+		res.setData(handleFile(res, "/customer_sys_file/", false, req, sign));
+		return res;
+	}
+	
+	/**
+	 * 
+	 * @param startDate 开始日期
+	 * @param endDate 结束日期
+	 * @param timeSpan 时间差
+	 * @param depId 部门编号
+	 * @param pageNo 页码
+	 * @param pageSize 页数
+	 * @return
+	 * @throws ParseException
+	 */
+	@RequestMapping(value = "/customerStatistics",method = RequestMethod.GET)
+	public Result customerStatistics(String startDate,String endDate,String timeSpan,String depId,String businessGlossoryId,Integer pageNo, Integer pageSize) throws ParseException{
+		Result res = new Result();
+		Date sDate = null;
+		Date eDate = null;
+		DateFormat format = new SimpleDateFormat(AFTConstants.YYYYMMDD);
+		if(StringUtils.isNotBlank(startDate)) sDate = format.parse(startDate);
+		if(StringUtils.isNotBlank(endDate)) eDate = format.parse(endDate);
+		if(StringUtils.isBlank(startDate)&&StringUtils.isBlank(endDate)){
+			Date date = new Date();
+			if(timeSpan.equals(DateUtils.DAY_SPAN)){
+				sDate = DateUtils.getYesterday();
+			}else if(timeSpan.equals(DateUtils.WEEK_SPAN)){
+				sDate = DateUtils.getLastDayOfLastWeek(date);
+			}else if(timeSpan.equals(DateUtils.MONTH_SPAN)){
+				sDate = DateUtils.getLastDayOfLastMonth(date);
+			}else if(timeSpan.equals(DateUtils.QUARTER_SPAN)){
+				sDate = DateUtils.getLastDayOfLastQuarter(date);
+			}else if(timeSpan.equals(DateUtils.YEAR_SPAN)){
+				sDate = DateUtils.getLastDayOfLastYear(date);
+			}		
+		}
+		res.setData(customerService.customerStatistics(sDate,eDate,depId,businessGlossoryId,pageNo,pageSize));
+		return res;
+	}
+	
+	/**
+	 * 
+	 * @param startDate 开始日期
+	 * @param endDate 结束日期
+	 * @param timeSpan 时间差
+	 * @param depId 部门编号
+	 * @param businessGlossoryId 业务编号
+	 * @param pageNo 页码
+	 * @param pageSiz 页数
+	 * @return
+	 * @throws ParseException 
+	 */
+	@RequestMapping(value = "/businessStatistic", method = RequestMethod.GET)
+	public Result businessStatistic(String startDate,String endDate,String timeSpan,String depId,String businessGlossoryId,Integer pageNo, Integer pageSize) throws ParseException{
+		Result res = new Result();
+		Date sDate = null;
+		Date eDate = null;
+		DateFormat format = new SimpleDateFormat(AFTConstants.YYYYMMDD);
+		if(StringUtils.isNotBlank(startDate)) sDate = format.parse(startDate);
+		if(StringUtils.isNotBlank(endDate)) eDate = format.parse(endDate);
+		if(StringUtils.isBlank(startDate)&&StringUtils.isBlank(endDate)){
+			Date date = new Date();
+			if(timeSpan.equals(DateUtils.DAY_SPAN)){
+				sDate = DateUtils.getYesterday();
+			}else if(timeSpan.equals(DateUtils.WEEK_SPAN)){
+				sDate = DateUtils.getLastDayOfLastWeek(date);
+			}else if(timeSpan.equals(DateUtils.MONTH_SPAN)){
+				sDate = DateUtils.getLastDayOfLastMonth(date);
+			}else if(timeSpan.equals(DateUtils.QUARTER_SPAN)){
+				sDate = DateUtils.getLastDayOfLastQuarter(date);
+			}else if(timeSpan.equals(DateUtils.YEAR_SPAN)){
+				sDate = DateUtils.getLastDayOfLastYear(date);
+			}		
+		}
+		res.setData(customerService.businessStatistic(sDate,eDate,depId,businessGlossoryId,pageNo,pageSize));
+		return res;
+	}
+	
+	/**
+	 * 
+	 * @param startDate 开始日期
+	 * @param endDate 结束日期
+	 * @param timeSpan 时间差
+	 * @param depId 部门编号
+	 * @param businessGlossoryId 业务编号
+	 * @param pageNo 页码
+	 * @param pageSiz 页数
+	 * @return
+	 * @throws ParseException
+	 */
+
+	@RequestMapping(value = "/followStatistic",method = RequestMethod.GET)
+	public Result followStatistic(String startDate,String endDate,String timeSpan,String depId,Integer pageNo, Integer pageSize) throws ParseException{
+		Result res = new Result();
+		Date sDate = null;
+		Date eDate = null;
+		DateFormat format = new SimpleDateFormat(AFTConstants.YYYYMMDD);
+		if(StringUtils.isNotBlank(startDate)) sDate = format.parse(startDate);
+		if(StringUtils.isNotBlank(endDate)) eDate = format.parse(endDate);
+		if(StringUtils.isBlank(startDate)&&StringUtils.isBlank(endDate)){
+			Date date = new Date();
+			if(timeSpan.equals(DateUtils.DAY_SPAN)){
+				sDate = DateUtils.getYesterday();
+			}else if(timeSpan.equals(DateUtils.WEEK_SPAN)){
+				sDate = DateUtils.getLastDayOfLastWeek(date);
+			}else if(timeSpan.equals(DateUtils.MONTH_SPAN)){
+				sDate = DateUtils.getLastDayOfLastMonth(date);
+			}else if(timeSpan.equals(DateUtils.QUARTER_SPAN)){
+				sDate = DateUtils.getLastDayOfLastQuarter(date);
+			}else if(timeSpan.equals(DateUtils.YEAR_SPAN)){
+				sDate = DateUtils.getLastDayOfLastYear(date);
+			}		
+		}
+		res.setData(customerService.followStatistic(sDate, eDate, depId, pageNo, pageSize));
+		return res;
+	}
+	
+	/** 管理员列表 **/
+	@RequestMapping(value = "/listAdminByName",method = RequestMethod.GET)
+	public Result listAdminByName(String adminName){
+		Result res = new Result();
+		if(StringUtils.isNotBlank(adminName))res.setData(adminService.listAdminByName(adminName));
+		return res;
+	}
+	
+	/** 转交客户到制定人 **/
+	@RequestMapping(value = "/transferToOther", method = RequestMethod.GET)
+	public Result transferToOther(String uid,String aid){
+		Result res = new Result();
+		if(StringUtils.isBlank(uid) || StringUtils.isBlank(aid)){
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "客户编号或管理员编号"));
+			return res;
+		}
+		customerService.updateByOperatorType(uid, AFTConstants.USER_TRANSFER_TO_OTHER, aid);
+		return res;
+	}
 }

+ 28 - 1
src/main/java/com/goafanti/customer/service/CustomerService.java

@@ -1,5 +1,6 @@
 package com.goafanti.customer.service;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Set;
 
@@ -16,6 +17,7 @@ import com.goafanti.customer.bo.CustomerPersonalDetailBo;
 import com.goafanti.customer.bo.CustomerSimpleBo;
 import com.goafanti.customer.bo.FollowBusinessBo;
 import com.goafanti.customer.bo.FollowListBo;
+import com.goafanti.customer.bo.StatisticBo;
 
 public interface CustomerService {
 	/**
@@ -223,5 +225,30 @@ public interface CustomerService {
 	 * @param operatorType
 	 * @return
 	 */
-	int updateByOperatorType(String uid,String operatorType);
+	int updateByOperatorType(String uid,String operatorType,Object... params);
+	
+	/**
+	 * 客户统计
+	 * @param sDate
+	 * @param eDate
+	 * @param depId
+	 * @return
+	 */
+	Pagination<StatisticBo> customerStatistics(Date sDate, Date eDate, String depId, String businessGlossoryId, Integer pageNo, Integer pageSize);
+	
+	/**
+	 * 业务进度统计
+	 * @param sDate
+	 * @param eDate
+	 * @return
+	 */
+	Pagination<StatisticBo> businessStatistic(Date sDate, Date eDate, String depId, String businessGlossoryId,Integer pageNo, Integer pageSize);
+	
+	/**
+	 * 拜访统计
+	 * @param sDate
+	 * @param eDate
+	 * @return
+	 */
+	Pagination<StatisticBo> followStatistic(Date sDate, Date eDate, String depId, Integer pageNo, Integer pageSize);
 }

+ 87 - 40
src/main/java/com/goafanti/customer/service/impl/CustomerServiceImpl.java

@@ -29,6 +29,11 @@ import com.goafanti.common.dao.UserFollowBusinessMapper;
 import com.goafanti.common.dao.UserFollowMapper;
 import com.goafanti.common.dao.UserIdentityMapper;
 import com.goafanti.common.dao.UserMapper;
+import com.goafanti.common.enums.DeleteStatus;
+import com.goafanti.common.enums.IdentityProcess;
+import com.goafanti.common.enums.MemberStatus;
+import com.goafanti.common.enums.UserLevel;
+import com.goafanti.common.enums.UserType;
 import com.goafanti.common.error.BusinessException;
 import com.goafanti.common.model.OrganizationContactBook;
 import com.goafanti.common.model.OrganizationIdentity;
@@ -51,6 +56,7 @@ import com.goafanti.customer.bo.CustomerPersonalDetailBo;
 import com.goafanti.customer.bo.CustomerSimpleBo;
 import com.goafanti.customer.bo.FollowBusinessBo;
 import com.goafanti.customer.bo.FollowListBo;
+import com.goafanti.customer.bo.StatisticBo;
 import com.goafanti.customer.service.CustomerService;
 
 @Service
@@ -77,7 +83,7 @@ public class CustomerServiceImpl  extends BaseMybatisDao<UserMapper> implements
 	public Pagination<CustomerListOut> listPrivatePersonalCustomer(CustomerListIn cli, Integer pageNo,Integer pageSize) {
 		cli.setType(AFTConstants.USER_TYPE_PERSONAL);
 		cli.setAid(TokenManager.getAdminId());
-		cli.setShareType(String.valueOf(AFTConstants.SHARE_TYPE_PRIVATE));
+		cli.setShareType(String.valueOf(AFTConstants.USER_SHARE_PRIVATE));
 		Map<String,Object> params = disposeParams(cli);
 		@SuppressWarnings("unchecked")
 		Pagination<CustomerListOut> list = (Pagination<CustomerListOut>) findPage("selectPersonalCustomerList","selectPersonalCustomerCount",params,pageNo,pageSize);
@@ -88,7 +94,7 @@ public class CustomerServiceImpl  extends BaseMybatisDao<UserMapper> implements
 	public Pagination<CustomerListOut> listPublicPersonalCustomer(CustomerListIn cli, Integer pageNo,Integer pageSize) {
 		cli.setType(AFTConstants.USER_TYPE_PERSONAL);
 		cli.setAid(TokenManager.getAdminId());
-		cli.setShareType(String.valueOf(AFTConstants.SHARE_TYPE_PUBLIC));
+		cli.setShareType(String.valueOf(AFTConstants.USER_SHARE_PUBLIC));
 		Map<String,Object> params = disposeParams(cli);
 		@SuppressWarnings("unchecked")
 		Pagination<CustomerListOut> list = (Pagination<CustomerListOut>) findPage("selectPersonalCustomerList","selectPersonalCustomerCount",params,pageNo,pageSize);
@@ -108,7 +114,7 @@ public class CustomerServiceImpl  extends BaseMybatisDao<UserMapper> implements
 	public Pagination<CustomerListOut> listPrivateOrganizationCustomer(CustomerListIn cli, Integer pageNo,Integer pageSize) {
 		cli.setType(AFTConstants.USER_TYPE_ORGANIZATION);
 		cli.setAid(TokenManager.getAdminId());
-		cli.setShareType(String.valueOf(AFTConstants.SHARE_TYPE_PRIVATE));
+		cli.setShareType(String.valueOf(AFTConstants.USER_SHARE_PRIVATE));
 		Map<String,Object> params = disposeParams(cli);
 		@SuppressWarnings("unchecked")
 		Pagination<CustomerListOut> list = (Pagination<CustomerListOut>) findPage("selectOrganizationCustomerList","selectOrganizationCustomerCount",params,pageNo,pageSize);
@@ -119,7 +125,7 @@ public class CustomerServiceImpl  extends BaseMybatisDao<UserMapper> implements
 	public Pagination<CustomerListOut> listPublicOrganizationCustomer(CustomerListIn cli, Integer pageNo,Integer pageSize) {
 		cli.setType(AFTConstants.USER_TYPE_ORGANIZATION);
 		cli.setAid(TokenManager.getAdminId());
-		cli.setShareType(String.valueOf(AFTConstants.SHARE_TYPE_PUBLIC));
+		cli.setShareType(String.valueOf(AFTConstants.USER_SHARE_PUBLIC));
 		Map<String,Object> params = disposeParams(cli);
 		@SuppressWarnings("unchecked")
 		Pagination<CustomerListOut> list = (Pagination<CustomerListOut>) findPage("selectOrganizationCustomerList","selectOrganizationCustomerCount",params,pageNo,pageSize);
@@ -186,23 +192,23 @@ public class CustomerServiceImpl  extends BaseMybatisDao<UserMapper> implements
 		String identifyId = UUID.randomUUID().toString();
 		user.setId(uid);
 		user.setIdentifyName(name);
-		user.setSource(1);
+		user.setSource(AFTConstants.USER_SOURCE_CREATE);
 		user.setNickname(name);
-		user.setStatus(0);
-		user.setShareType(0);
+		user.setStatus(AFTConstants.USER_STATUS_NORMAL);
+		user.setShareType(AFTConstants.NO);
 		user.setAid(TokenManager.getAdminId());
 		user.setType(type);
-		user.setCurrentMemberStatus(0);
-		user.setLvl(1);
+		user.setCurrentMemberStatus(MemberStatus.NORMAL.getCode());
+		user.setLvl(UserLevel.CERTIFIED.getCode());
 		user.setSocietyTag(societyTag);
 		user.setCreateTime(now);
 		user.setUpdateTime(now);
 		user.setMobile(contactMobile);
 		user.setPassword(AFTConstants.INITIALPASSWORD);
-		user.setIsMember(0);
-		user.setBusinessAudit(0);
+		user.setIsMember(AFTConstants.NO);
+		user.setBusinessAudit(AFTConstants.NO);
 		passwordUtil.encryptPassword(user);
-		if(type == 0){
+		if(type == UserType.PERSONAL.getCode()){
 			if(userMapper.checkUser("", "", contactMobile, type).size()>0) throw new BusinessException(new Error(ErrorConstants.CUSTOMER_ALREADY_EXIST, name,""));
 			UserIdentity ui = new UserIdentity();
 			ui.setId(identifyId);
@@ -210,12 +216,12 @@ public class CustomerServiceImpl  extends BaseMybatisDao<UserMapper> implements
 			ui.setContacts(contacts);
 			ui.setContactMobile(contactMobile);
 			ui.setUsername(name);
-			ui.setExpert(0);
-			ui.setCelebrity(0);
-			ui.setInternational(0);
-			ui.setAuditStatus(5);//认证个人
+			ui.setExpert(AFTConstants.NO);
+			ui.setCelebrity(AFTConstants.NO);
+			ui.setInternational(AFTConstants.NO);
+			ui.setAuditStatus(IdentityProcess.SUCCESS.getCode());//认证个人
 			userIdentityMapper.insert(ui);
-		}else if(type == 1){
+		}else if(type == UserType.ORGANIZATION.getCode()){
 			if(userMapper.judgeCustomerByName(name)>0) throw new BusinessException(new Error(ErrorConstants.CUSTOMER_ALREADY_EXIST, name,""));
 			// 创建企业认证信息
 			OrganizationIdentity oi = new OrganizationIdentity();
@@ -224,10 +230,10 @@ public class CustomerServiceImpl  extends BaseMybatisDao<UserMapper> implements
 			oi.setUid(uid);
 			oi.setContacts(contacts);
 			oi.setContactMobile(contactMobile);
-			oi.setHighTechZone(0);
-			oi.setInternational(0);
-			oi.setListed(0);
-			oi.setAuditStatus(5); //实名企业
+			oi.setHighTechZone(AFTConstants.NO);
+			oi.setInternational(AFTConstants.NO);
+			oi.setListed(AFTConstants.NO);
+			oi.setAuditStatus(IdentityProcess.SUCCESS.getCode()); //实名企业
 			organizationIdentityMapper.insert(oi);
 		}
 		userMapper.insert(user);	
@@ -265,6 +271,7 @@ public class CustomerServiceImpl  extends BaseMybatisDao<UserMapper> implements
 			user.setCompanyLogoUrl(bo.getCompanyLogoUrl());
 			user.setIntroduction(bo.getIntroduction());
 			user.setUpdateTime(new Date());
+			user.setBusinessAudit(bo.getBusinessAudit());
 		} catch (IllegalAccessException |InvocationTargetException e) {
 			e.printStackTrace();
 		} 
@@ -284,6 +291,7 @@ public class CustomerServiceImpl  extends BaseMybatisDao<UserMapper> implements
 			user.setHeadPortraitUrl(bo.getHeadPortraitUrl());
 			user.setIntroduction(bo.getIntroduction());
 			user.setUpdateTime(new Date());
+			user.setBusinessAudit(bo.getBusinessAudit());
 		} catch (InvocationTargetException | IllegalAccessException e) {
 			e.printStackTrace();
 		}
@@ -329,7 +337,7 @@ public class CustomerServiceImpl  extends BaseMybatisDao<UserMapper> implements
 		userFollow.setId(followId);
 		userFollow.setAid(TokenManager.getAdminId());
 		userFollow.setContactType(Integer.parseInt(fbb.getContactType()));
-		userFollow.setEffective(0);
+		userFollow.setEffective(DeleteStatus.UNDELETE.getCode());
 		try {
 			userFollow.setCreateTime(format.parse(fbb.getFollowTime()));
 		} catch (ParseException e) {
@@ -509,7 +517,7 @@ public class CustomerServiceImpl  extends BaseMybatisDao<UserMapper> implements
 	public int deleteFollow(String followId) {
 		UserFollow uf = new UserFollow();
 		uf.setId(followId);
-		uf.setEffective(1);
+		uf.setEffective(DeleteStatus.DELETED.getCode());
 		return userFollowMapper.updateByPrimaryKeySelective(uf);
 	}
 
@@ -588,20 +596,20 @@ public class CustomerServiceImpl  extends BaseMybatisDao<UserMapper> implements
 		User user = new User();
 		user.setId(uid);
 		user.setIdentifyName(bo.getIdentifyName());
-		user.setSource(1);
+		user.setSource(AFTConstants.USER_SOURCE_CREATE);
 		user.setNickname(bo.getIdentifyName());
-		user.setStatus(0);
-		user.setShareType(0);
+		user.setStatus(AFTConstants.USER_STATUS_NORMAL);
+		user.setShareType(AFTConstants.USER_SHARE_PRIVATE);
 		user.setAid(TokenManager.getAdminId());
 		user.setType(Integer.parseInt(bo.getCustomerType()));
-		user.setCurrentMemberStatus(0);
-		user.setLvl(1);
+		user.setCurrentMemberStatus(MemberStatus.NORMAL.getCode());
+		user.setLvl(UserLevel.CERTIFIED.getCode());
 		user.setCreateTime(now);
 		user.setUpdateTime(now);
 		user.setMobile(bo.getMobile());
 		user.setPassword(AFTConstants.INITIALPASSWORD);
-		user.setIsMember(0);
-		user.setBusinessAudit(0);
+		user.setIsMember(AFTConstants.NO);
+		user.setBusinessAudit(AFTConstants.NO);
 		passwordUtil.encryptPassword(user);
 		userMapper.insert(user);	
 	}
@@ -616,10 +624,10 @@ public class CustomerServiceImpl  extends BaseMybatisDao<UserMapper> implements
 			ui.setContacts(bo.getContacts());
 			ui.setContactMobile(bo.getMobile());
 			ui.setUsername(bo.getIdentifyName());
-			ui.setExpert(0);
-			ui.setCelebrity(0);
-			ui.setInternational(0);
-			ui.setAuditStatus(0);
+			ui.setExpert(AFTConstants.NO);
+			ui.setCelebrity(AFTConstants.NO);
+			ui.setInternational(AFTConstants.NO);
+			ui.setAuditStatus(5);
 			userIdentityMapper.insert(ui);
 		}else if(type.equals(AFTConstants.USER_TYPE_ORGANIZATION)){
 			// 创建企业认证信息
@@ -629,9 +637,9 @@ public class CustomerServiceImpl  extends BaseMybatisDao<UserMapper> implements
 			oi.setUid(uid);
 			oi.setContacts(bo.getContacts());
 			oi.setContactMobile(bo.getMobile());
-			oi.setHighTechZone(0);
-			oi.setInternational(0);
-			oi.setListed(0);
+			oi.setHighTechZone(AFTConstants.NO);
+			oi.setInternational(AFTConstants.NO);
+			oi.setListed(AFTConstants.NO);
 			oi.setAuditStatus(5); //实名企业
 			organizationIdentityMapper.insert(oi);
 		}
@@ -663,17 +671,56 @@ public class CustomerServiceImpl  extends BaseMybatisDao<UserMapper> implements
 	}
 
 	@Override
-	public int updateByOperatorType(String uid, String operatorType) {
+	public int updateByOperatorType(String uid, String operatorType,Object... params) {
 		User user = new User();
 		user.setId(uid);
 		if(operatorType.equals(AFTConstants.USER_TRANSFER_TO_PUBLIC)){
-			user.setShareType(AFTConstants.SHARE_TYPE_PUBLIC);
+			user.setShareType(AFTConstants.USER_SHARE_PUBLIC);
 		}else if(operatorType.equals(AFTConstants.USER_RECEIVE)){
 			user.setAid(TokenManager.getAdminId());
-			user.setShareType(AFTConstants.SHARE_TYPE_PRIVATE);
+			user.setShareType(AFTConstants.USER_SHARE_PRIVATE);
 		}else if(operatorType.equals(AFTConstants.USER_DELETE)){
 			user.setStatus(AFTConstants.USER_STATUS_CANCEL);
+		}else if(operatorType.equals(AFTConstants.USER_TRANSFER_TO_OTHER)){
+			user.setAid(String.valueOf(params[0]));
 		}
 		return userMapper.updateByPrimaryKeySelective(user);
 	}
+
+	@SuppressWarnings("unchecked")
+	@Override
+	public Pagination<StatisticBo> customerStatistics(Date sDate, Date eDate, String depId, String businessGlossoryId, Integer pageNo, Integer pageSize) {
+		Map<String,Object> params = new HashMap<String,Object>();
+		if(null != sDate) params.put("sDate", sDate);
+		if(null != eDate) params.put("eDate", eDate);
+		if(StringUtils.isNotBlank(depId)) params.put("departmentId", depId);
+		if(StringUtils.isNotBlank(businessGlossoryId)) params.put("businessGlossoryId", businessGlossoryId);
+		Pagination<StatisticBo> page = (Pagination<StatisticBo>)findPage("customerStatisticsList", "customerStatisticsCount", params, pageNo, pageSize);
+		return page;
+	}
+
+	@SuppressWarnings("unchecked")
+	@Override
+	public Pagination<StatisticBo> businessStatistic(Date sDate, Date eDate,String depId, String businessGlossoryId,Integer pageNo, Integer pageSize) {
+		Map<String,Object> params = new HashMap<String,Object>();
+		if(null != sDate) params.put("sDate", sDate);
+		if(null != eDate) params.put("eDate", eDate);
+		if(StringUtils.isNotBlank(depId)) params.put("departmentId", depId);
+		if(StringUtils.isNotBlank(businessGlossoryId)) params.put("businessGlossoryId", businessGlossoryId);
+		Pagination<StatisticBo> page = (Pagination<StatisticBo>)findPage("businessStatisticList", "businessStatisticCount", params, pageNo, pageSize);
+		return page;
+	}
+
+	@SuppressWarnings("unchecked")
+	@Override
+	public Pagination<StatisticBo> followStatistic(Date sDate, Date eDate, String depId, Integer pageNo, Integer pageSize) {
+		Map<String,Object> params = new HashMap<String,Object>();
+		if(null != sDate) params.put("sDate", sDate);
+		if(null != eDate) params.put("eDate", eDate);
+		if(StringUtils.isNotBlank(depId)) params.put("departmentId", depId);
+		Pagination<StatisticBo> page = (Pagination<StatisticBo>)findPage("followStatisticList", "followStatisticCount", params, pageNo, pageSize);
+		return page;
+	}
+
+	
 }

+ 12 - 0
src/main/java/com/goafanti/demand/bo/InputDemand.java

@@ -133,6 +133,18 @@ public class InputDemand {
 	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
 	private Integer boutique;
 	
+	@Max(value = 500, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	private Integer remark;
+	
+	public Integer getRemark() {
+		return remark;
+	}
+
+	public void setRemark(Integer remark) {
+		this.remark = remark;
+	}
+
 	public String getId() {
 		return id;
 	}

+ 1 - 1
src/main/java/com/goafanti/memberGrade/controller/MemberGradeFrontController.java

@@ -112,7 +112,7 @@ public class MemberGradeFrontController extends BaseApiController {
 		Assert.isTrue(u != null && u.getLvl() > UserLevel.CERTIFIED.getCode(), "必须是登录实名用户");
 		Assert.hasText(uid, "找不到专家");
 		JSONObject business = memberGradeService.selectMemberBusiness(u.getLvl());
-		Assert.isTrue(AFTConstants.YES.equals(business.get(BusinessType.CHA_KAN_LIAN_XI.getKey())), "该会员不能查看专家联系方式");
+		Assert.isTrue(String.valueOf(AFTConstants.YES).equals(business.get(BusinessType.CHA_KAN_LIAN_XI.getKey())), "该会员不能查看专家联系方式");
 		UserIdentity ui = userIdentityService.selectUserIdentityByUserId(uid);
 		if (ui != null && StringUtils.isNotBlank(ui.getContactMobile())) {
 			return res().data(ui.getContactMobile());

+ 10 - 1
src/main/java/com/goafanti/news/service/NewsService.java

@@ -42,7 +42,7 @@ public class NewsService extends BaseMybatisDao<NewsMapper> {
 		params.put("type", type);
 		params.put("pageSize", pageSize);
 		params.put("pageNo", pageNo);
-		return newsMapper.findIndexNewsList(params);
+		return newsMapper.findIndexNewsLists(params);
 	}
 
 	@CacheEvict(value = "IndexNewsListCache", allEntries = true)
@@ -187,4 +187,13 @@ public class NewsService extends BaseMybatisDao<NewsMapper> {
 		return newsMapper.findJmrhNewsList(params);
 	}
 
+	public List<NewsPortalList> portalNewsPolicy(){
+		
+		return newsMapper.portalNewsPolicy();
+	}
+	public List<NewsPortalList> portalNewsQuestion(){
+		
+		return newsMapper.portalNewsQuestion();
+	}
+	
 }

+ 1 - 0
src/main/java/com/goafanti/permission/bo/PermissionBo.java

@@ -153,4 +153,5 @@ public class PermissionBo {
 		this.name = name;
 	}
 	
+	
 }

+ 1 - 0
src/main/java/com/goafanti/permission/controller/NewPermissionApiController.java

@@ -133,4 +133,5 @@ public class NewPermissionApiController extends BaseApiController {
 		res.setData(permissionService.updateById(record));
 		return res;
 	}
+	
 }

+ 10 - 0
src/main/java/com/goafanti/portal/bo/AchievementSearchListBo.java

@@ -107,6 +107,8 @@ public class AchievementSearchListBo {
 	
 	/** 是否国际*/
 	private Integer internationalFlag;
+	/** 是否精品*/
+	private Integer boutique;
 	
 	public Integer getLevel() {
 		return level;
@@ -296,5 +298,13 @@ public class AchievementSearchListBo {
 	public void setInternationalFlag(Integer internationalFlag) {
 		this.internationalFlag = internationalFlag;
 	}
+
+	public Integer getBoutique() {
+		return boutique;
+	}
+
+	public void setBoutique(Integer boutique) {
+		this.boutique = boutique;
+	}
 	
 }

+ 12 - 0
src/main/java/com/goafanti/portal/bo/DemandSearchListBo.java

@@ -76,6 +76,10 @@ public class DemandSearchListBo {
 	 * 用户等级
 	 */
 	private String		pictureUrl;
+	/**
+	 * 是否精品
+	 */
+	private Integer 	boutique;
 	
 	public String getEmployerName() {
 		return employerName;
@@ -205,5 +209,13 @@ public class DemandSearchListBo {
 		this.pictureUrl = pictureUrl;
 	}
 
+	public Integer getBoutique() {
+		return boutique;
+	}
+
+	public void setBoutique(Integer boutique) {
+		this.boutique = boutique;
+	}
+
 	
 }

+ 3 - 3
src/main/java/com/goafanti/portal/bo/UserSubscriberListBo.java

@@ -9,7 +9,7 @@ public class UserSubscriberListBo {
 
 	private String	personPortraitUrl;
 
-	private Integer	achievementNum;
+	private String	achievementNum;
 
 	private Integer	demandNum;
 
@@ -87,11 +87,11 @@ public class UserSubscriberListBo {
 		this.personPortraitUrl = personPortraitUrl;
 	}
 
-	public Integer getAchievementNum() {
+	public String getAchievementNum() {
 		return achievementNum;
 	}
 
-	public void setAchievementNum(Integer achievementNum) {
+	public void setAchievementNum(String achievementNum) {
 		this.achievementNum = achievementNum;
 	}
 

+ 6 - 6
src/main/java/com/goafanti/user/controller/UserApiController.java

@@ -682,7 +682,7 @@ public class UserApiController extends BaseApiController {
 			}
 			if (MAX_WRONG_COUNT.equals(u.getWrongCount())) {
 				u.setAuditStatus(IdentityAuditStatus.NOTPASSED.getCode());// 4
-				u.setProcess(IdentityProcess.RESULTS.getCode());// 5
+				u.setProcess(IdentityProcess.SUCCESS.getCode());// 5
 				userIdentityService.updateByPrimaryKeySelective(u);
 				res.getError().add(buildError(ErrorConstants.OVER_MAX_WRONG_COUNT));// 输入错误金额次数过多
 				return res;
@@ -693,7 +693,7 @@ public class UserApiController extends BaseApiController {
 
 				if (0 == t) {
 					u.setAuditStatus(IdentityAuditStatus.NOTPASSED.getCode());// 4
-					u.setProcess(IdentityProcess.RESULTS.getCode());// 5
+					u.setProcess(IdentityProcess.SUCCESS.getCode());// 5
 					res.getError().add(buildError(ErrorConstants.OVER_MAX_WRONG_COUNT));// 输入错误金额次数过多
 				} else {
 					res.getError().add(buildError(ErrorConstants.WRONG_MONEY, "", t));
@@ -702,7 +702,7 @@ public class UserApiController extends BaseApiController {
 				return res;
 			}
 			userIdentity.setAuditStatus(IdentityAuditStatus.PASSED.getCode());
-			userIdentity.setProcess(IdentityProcess.RESULTS.getCode());
+			userIdentity.setProcess(IdentityProcess.SUCCESS.getCode());
 		}
 		return dealUserProcess(res, userIdentity, TokenManager.getUserId());
 	}
@@ -760,7 +760,7 @@ public class UserApiController extends BaseApiController {
 			}
 			if (MAX_WRONG_COUNT.equals(o.getWrongCount())) {
 				o.setAuditStatus(IdentityAuditStatus.NOTPASSED.getCode());// 4
-				o.setProcess(IdentityProcess.RESULTS.getCode());// 5
+				o.setProcess(IdentityProcess.SUCCESS.getCode());// 5
 				organizationIdentityService.updateByPrimaryKeySelective(o);
 				res.getError().add(buildError(ErrorConstants.OVER_MAX_WRONG_COUNT));// 输入错误金额次数过多
 				return res;
@@ -770,7 +770,7 @@ public class UserApiController extends BaseApiController {
 				o.setWrongCount(o.getWrongCount() + 1);
 				if (0 == t) {
 					o.setAuditStatus(IdentityAuditStatus.NOTPASSED.getCode());// 4
-					o.setProcess(IdentityProcess.RESULTS.getCode());// 5
+					o.setProcess(IdentityProcess.SUCCESS.getCode());// 5
 					res.getError().add(buildError(ErrorConstants.OVER_MAX_WRONG_COUNT));// 输入错误金额次数过多
 				} else {
 					res.getError().add(buildError(ErrorConstants.WRONG_MONEY, "", t));
@@ -779,7 +779,7 @@ public class UserApiController extends BaseApiController {
 				return res;
 			}
 			orgIdentity.setAuditStatus(IdentityAuditStatus.PASSED.getCode());
-			orgIdentity.setProcess(IdentityProcess.RESULTS.getCode());
+			orgIdentity.setProcess(IdentityProcess.SUCCESS.getCode());
 		}
 		return dealOrgProcess(res, orgIdentity, TokenManager.getUserId());
 	}

+ 2 - 0
src/main/java/com/goafanti/user/controller/UserRegisterController.java

@@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
 
 import com.goafanti.admin.service.AdminService;
 import com.goafanti.common.bo.Result;
+import com.goafanti.common.constant.AFTConstants;
 import com.goafanti.common.constant.ErrorConstants;
 import com.goafanti.common.controller.BaseController;
 import com.goafanti.common.enums.UserFields;
@@ -90,6 +91,7 @@ public class UserRegisterController extends BaseController {
 			us.setCreateTime(now.getTime());
 			us.setPassword(passwordUtil.getEncryptPwd(us));
 			us.setLvl(0);
+			us.setSource(AFTConstants.USER_SOURCE_REGISTER);
 			/*
 			List<Admin> admins = adminService.selectAllAdmin();
 			if (!admins.isEmpty()) {

+ 0 - 2
src/main/java/com/goafanti/user/service/UserService.java

@@ -1,6 +1,5 @@
 package com.goafanti.user.service;
 
-import java.text.ParseException;
 import java.util.List;
 import java.util.Map;
 
@@ -11,7 +10,6 @@ import com.goafanti.user.bo.OrgUnitNames;
 import com.goafanti.user.bo.StarAndExpertListBo;
 import com.goafanti.user.bo.StarListBo;
 import com.goafanti.user.bo.UserDownLoadBo;
-import com.goafanti.user.bo.UserListBo;
 import com.goafanti.user.bo.UserNames;
 import com.goafanti.user.bo.UserPageHomeBo;
 import com.goafanti.user.bo.UserPartnerDetailBo;

+ 0 - 2
src/main/java/com/goafanti/user/service/impl/UserIdentityServiceImpl.java

@@ -13,7 +13,6 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cache.annotation.CacheEvict;
-import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
 
 import com.goafanti.common.bo.Result;
@@ -34,7 +33,6 @@ import com.goafanti.common.utils.LoggerUtils;
 import com.goafanti.core.mybatis.BaseMybatisDao;
 import com.goafanti.core.mybatis.page.Pagination;
 import com.goafanti.core.shiro.token.TokenManager;
-import com.goafanti.portal.bo.InternationalListBo;
 import com.goafanti.portal.bo.UserSubscriberListBo;
 import com.goafanti.user.bo.AuditorUserIdentityDetailBo;
 import com.goafanti.user.bo.UserIdentityBo;

+ 0 - 5
src/main/java/com/goafanti/user/service/impl/UserServiceImpl.java

@@ -1,7 +1,6 @@
 package com.goafanti.user.service.impl;
 
 import java.text.ParseException;
-import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -13,7 +12,6 @@ import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
 
 import com.goafanti.common.constant.AFTConstants;
-import com.goafanti.common.dao.AdminLocationMapper;
 import com.goafanti.common.dao.CopyrightInfoMapper;
 import com.goafanti.common.dao.OrgIntellectualPropertyMapper;
 import com.goafanti.common.dao.OrganizationIdentityMapper;
@@ -35,7 +33,6 @@ import com.goafanti.user.bo.OrgUnitNames;
 import com.goafanti.user.bo.StarAndExpertListBo;
 import com.goafanti.user.bo.StarListBo;
 import com.goafanti.user.bo.UserDownLoadBo;
-import com.goafanti.user.bo.UserListBo;
 import com.goafanti.user.bo.UserNames;
 import com.goafanti.user.bo.UserPageHomeBo;
 import com.goafanti.user.bo.UserPartnerDetailBo;
@@ -50,8 +47,6 @@ public class UserServiceImpl extends BaseMybatisDao<UserMapper> implements UserS
 	@Autowired
 	private UserIdentityMapper				userIdentityMapper;
 	@Autowired
-	private AdminLocationMapper				adminLocationMapper;
-	@Autowired
 	private PatentInfoMapper				patentInfoMapper;
 	@Autowired
 	private CopyrightInfoMapper				copyrightInfoMapper;

+ 519 - 0
src/main/resources/spring-context-4.0.xsd

@@ -0,0 +1,519 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.springframework.org/schema/context"
+		xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+		xmlns:beans="http://www.springframework.org/schema/beans"
+		xmlns:tool="http://www.springframework.org/schema/tool"
+		targetNamespace="http://www.springframework.org/schema/context"
+		elementFormDefault="qualified"
+		attributeFormDefault="unqualified">
+
+	<xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans-4.0.xsd"/>
+	<xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-4.0.xsd"/>
+
+	<xsd:annotation>
+		<xsd:documentation><![CDATA[
+	Defines the configuration elements for the Spring Framework's application
+	context support. Effects the activation of various configuration styles
+	for the containing Spring ApplicationContext.
+		]]></xsd:documentation>
+	</xsd:annotation>
+
+	<xsd:complexType name="propertyPlaceholder">
+		<xsd:attribute name="location" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	The location of the properties file to resolve placeholders against, as a Spring
+	resource location: a URL, a "classpath:" pseudo URL, or a relative file path.
+	Multiple locations may be specified, separated by commas. If neither location nor
+	properties-ref is specified, placeholders will be resolved against system properties.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="properties-ref" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation source="java:java.util.Properties"><![CDATA[
+	The bean name of a Properties object that will be used for property substitution.
+	If neither location nor properties-ref is specified, placeholders will be resolved
+	against system properties.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="file-encoding" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	Specifies the encoding to use for parsing properties files. Default is none,
+	using the java.util.Properties default encoding. Only applies to classic
+	properties files, not to XML files.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="order" type="xsd:token">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	Specifies the order for this placeholder configurer. If more than one is present
+	in a context, the order can be important since the first one to be match a
+	placeholder will win.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="ignore-resource-not-found" type="xsd:boolean" default="false">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	Specifies if failure to find the property resource location should be ignored.
+	Default is "false", meaning that if there is no file in the location specified
+	an exception will be raised at runtime.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="ignore-unresolvable" type="xsd:boolean" default="false">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	Specifies if failure to find the property value to replace a key should be ignored.
+	Default is "false", meaning that this placeholder configurer will raise an exception
+	if it cannot resolve a key. Set to "true" to allow the configurer to pass on the key
+	to any others in the context that have not yet visited the key in question.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="local-override" type="xsd:boolean" default="false">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	Specifies whether local properties override properties from files.
+	Default is "false": Properties from files override local defaults.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+	</xsd:complexType>
+
+	<xsd:element name="property-placeholder">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Activates replacement of ${...} placeholders by registering a
+	PropertySourcesPlaceholderConfigurer within the application context. Properties will
+	be resolved against the specified properties file or Properties object -- so called
+	"local properties", if any, and against the Spring Environment's current set of
+	PropertySources.
+
+	Note that as of Spring 3.1 the system-properties-mode attribute has been removed in
+	favor of the more flexible PropertySources mechanism. However, Spring 3.1-based
+	applications may continue to use the 3.0 (and older) versions of the spring-context
+	schema in order to preserve system-properties-mode behavior. In this case, the
+	traditional PropertyPlaceholderConfigurer component will be registered instead of the
+	new PropertySourcesPlaceholderConfigurer.
+
+	See ConfigurableEnvironment javadoc for more information on using.
+			]]></xsd:documentation>
+			<xsd:appinfo>
+				<tool:annotation>
+					<tool:exports type="org.springframework.context.support.PropertySourcesPlaceholderConfigurer"/>
+				</tool:annotation>
+			</xsd:appinfo>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="propertyPlaceholder">
+					<xsd:attribute name="system-properties-mode" default="ENVIRONMENT">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	Controls how to resolve placeholders against system properties. As of Spring 3.1, this
+	attribute value defaults to "ENVIRONMENT", indicating that resolution of placeholders
+	against system properties is handled via PropertySourcesPlaceholderConfigurer and its
+	delegation to the current Spring Environment object.
+
+	For maximum backward compatibility, this attribute is preserved going forward with the
+	3.1 version of the context schema, and any values other than the default "ENVIRONMENT"
+	will cause a traditional PropertyPlaceholderConfigurer to be registered instead of the
+	newer PropertySourcesPlaceholderConfigurer variant. In this case, the Spring Environment
+	and its property sources are not interrogated when resolving placeholders. Users are
+	encouraged to consider this attribute deprecated, and to take advantage of
+	Environment/PropertySource mechanisms. See ConfigurableEnvironment javadoc for examples.
+
+	"ENVIRONMENT" indicates placeholders should be resolved against the current Environment and against any local properties;
+	"NEVER" indicates placeholders should be resolved only against local properties and never against system properties;
+	"FALLBACK" indicates placeholders should be resolved against any local properties and then against system properties;
+	"OVERRIDE" indicates placeholders should be resolved first against system properties and then against any local properties;
+							]]></xsd:documentation>
+						</xsd:annotation>
+						<xsd:simpleType>
+							<xsd:restriction base="xsd:string">
+								<xsd:enumeration value="ENVIRONMENT"/>
+								<xsd:enumeration value="NEVER"/>
+								<xsd:enumeration value="FALLBACK"/>
+								<xsd:enumeration value="OVERRIDE"/>
+							</xsd:restriction>
+						</xsd:simpleType>
+					</xsd:attribute>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="property-override">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Activates pushing of override values into bean properties, based on configuration
+	lines of the following format: beanName.property=value
+			]]></xsd:documentation>
+			<xsd:appinfo>
+				<tool:annotation>
+					<tool:exports type="org.springframework.beans.factory.config.PropertyOverrideConfigurer"/>
+				</tool:annotation>
+			</xsd:appinfo>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="propertyPlaceholder"/>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="annotation-config">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Activates various annotations to be detected in bean classes: Spring's @Required and
+	@Autowired, as well as JSR 250's @PostConstruct, @PreDestroy and @Resource (if available),
+	JAX-WS's @WebServiceRef (if available), EJB3's @EJB (if available), and JPA's
+	@PersistenceContext and @PersistenceUnit (if available). Alternatively, you may
+	choose to activate the individual BeanPostProcessors for those annotations.
+
+	Note: This tag does not activate processing of Spring's @Transactional or EJB3's
+	@TransactionAttribute annotation. Consider the use of the <tx:annotation-driven>
+	tag for that purpose.
+
+	See javadoc for org.springframework.context.annotation.AnnotationConfigApplicationContext
+	for information on code-based alternatives to bootstrapping annotation-driven support.
+	from XML.
+			]]></xsd:documentation>
+		</xsd:annotation>
+	</xsd:element>
+
+	<xsd:element name="component-scan">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Scans the classpath for annotated components that will be auto-registered as
+	Spring beans. By default, the Spring-provided @Component, @Repository,
+	@Service, and @Controller stereotypes will be detected.
+
+	Note: This tag implies the effects of the 'annotation-config' tag, activating @Required,
+	@Autowired, @PostConstruct, @PreDestroy, @Resource, @PersistenceContext and @PersistenceUnit
+	annotations in the component classes, which is usually desired for autodetected components
+	(without external configuration). Turn off the 'annotation-config' attribute to deactivate
+	this default behavior, for example in order to use custom BeanPostProcessor definitions
+	for handling those annotations.
+
+	Note: You may use placeholders in package paths, but only resolved against system
+	properties (analogous to resource paths). A component scan results in new bean definition
+	being registered; Spring's PropertyPlaceholderConfigurer will apply to those bean
+	definitions just like to regular bean definitions, but it won't apply to the component
+	scan settings themselves.
+
+	See javadoc for org.springframework.context.annotation.ComponentScan for information
+	on code-based alternatives to bootstrapping component-scanning.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:element name="include-filter" type="filterType"
+					minOccurs="0" maxOccurs="unbounded">
+					<xsd:annotation>
+						<xsd:documentation><![CDATA[
+	Controls which eligible types to include for component scanning.
+							]]></xsd:documentation>
+					</xsd:annotation>
+				</xsd:element>
+				<xsd:element name="exclude-filter" type="filterType"
+					minOccurs="0" maxOccurs="unbounded">
+					<xsd:annotation>
+						<xsd:documentation><![CDATA[
+	Controls which eligible types to exclude for component scanning.
+						]]></xsd:documentation>
+					</xsd:annotation>
+				</xsd:element>
+			</xsd:sequence>
+			<xsd:attribute name="base-package" type="xsd:string"
+				use="required">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The comma/semicolon/space/tab/linefeed-separated list of packages to scan for annotated components.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="resource-pattern" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	Controls the class files eligible for component detection. Defaults to "**/*.class", the recommended value.
+	Consider use of the include-filter and exclude-filter elements for a more fine-grained approach.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="use-default-filters" type="xsd:boolean"
+				default="true">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	Indicates whether automatic detection of classes annotated with @Component, @Repository, @Service,
+	or @Controller should be enabled. Default is "true".
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="annotation-config" type="xsd:boolean"
+				default="true">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	Indicates whether the implicit annotation post-processors should be enabled. Default is "true".
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="name-generator" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The fully-qualified class name of the BeanNameGenerator to be used for naming detected components.
+					]]></xsd:documentation>
+					<xsd:appinfo>
+						<tool:annotation>
+							<tool:expected-type type="java.lang.Class"/>
+							<tool:assignable-to type="org.springframework.beans.factory.support.BeanNameGenerator"/>
+						</tool:annotation>
+					</xsd:appinfo>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="scope-resolver" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The fully-qualified class name of the ScopeMetadataResolver to be used for resolving the scope of
+	detected components.
+					]]></xsd:documentation>
+					<xsd:appinfo>
+						<tool:annotation>
+							<tool:expected-type type="java.lang.Class"/>
+							<tool:assignable-to type="org.springframework.context.annotation.ScopeMetadataResolver"/>
+						</tool:annotation>
+					</xsd:appinfo>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="scoped-proxy">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	Indicates whether proxies should be generated for detected components, which may be necessary
+	when using scopes in a proxy-style fashion. Default is to generate no such proxies.
+					]]></xsd:documentation>
+				</xsd:annotation>
+				<xsd:simpleType>
+					<xsd:restriction base="xsd:string">
+						<xsd:enumeration value="no"/>
+						<xsd:enumeration value="interfaces"/>
+						<xsd:enumeration value="targetClass"/>
+					</xsd:restriction>
+				</xsd:simpleType>
+			</xsd:attribute>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="load-time-weaver">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Activates a Spring LoadTimeWeaver for this application context, available as
+	a bean with the name "loadTimeWeaver". Any bean that implements the
+	LoadTimeWeaverAware interface will then receive the LoadTimeWeaver reference
+	automatically; for example, Spring's JPA bootstrap support.
+
+	The default weaver is determined automatically: see DefaultContextLoadTimeWeaver's
+	javadoc for details.
+
+	The activation of AspectJ load-time weaving is specified via a simple flag
+	(the 'aspectj-weaving' attribute), with the AspectJ class transformer
+	registered through Spring's LoadTimeWeaver. AspectJ weaving will be activated
+	by default if a "META-INF/aop.xml" resource is present in the classpath.
+
+	This also activates the current application context for applying dependency
+	injection to non-managed classes that are instantiated outside of the Spring
+	bean factory (typically classes annotated with the @Configurable annotation).
+	This will only happen if the AnnotationBeanConfigurerAspect is on the classpath
+	(i.e. spring-aspects.jar), effectively activating "spring-configured" by default.
+
+	See javadoc for org.springframework.context.annotation.EnableLoadTimeWeaving
+	for information on code-based alternatives to bootstrapping load-time weaving support.
+			]]></xsd:documentation>
+			<xsd:appinfo>
+				<tool:annotation>
+					<tool:exports type="org.springframework.instrument.classloading.LoadTimeWeaver"/>
+				</tool:annotation>
+			</xsd:appinfo>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:attribute name="weaver-class" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The fully-qualified classname of the LoadTimeWeaver that is to be activated.
+					]]></xsd:documentation>
+					<xsd:appinfo>
+						<tool:annotation>
+							<tool:expected-type type="java.lang.Class"/>
+							<tool:assignable-to type="org.springframework.instrument.classloading.LoadTimeWeaver"/>
+						</tool:annotation>
+					</xsd:appinfo>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="aspectj-weaving" default="autodetect">
+				<xsd:simpleType>
+					<xsd:restriction base="xsd:string">
+						<xsd:enumeration value="on">
+							<xsd:annotation>
+								<xsd:documentation><![CDATA[
+	Switches Spring-based AspectJ load-time weaving on.
+								]]></xsd:documentation>
+							</xsd:annotation>
+						</xsd:enumeration>
+						<xsd:enumeration value="off">
+							<xsd:annotation>
+								<xsd:documentation><![CDATA[
+	Switches Spring-based AspectJ load-time weaving off.
+								]]></xsd:documentation>
+							</xsd:annotation>
+						</xsd:enumeration>
+						<xsd:enumeration value="autodetect">
+							<xsd:annotation>
+								<xsd:documentation><![CDATA[
+	Switches AspectJ load-time weaving on if a "META-INF/aop.xml" resource
+	is present in the classpath. If there is no such resource, then AspectJ
+	load-time weaving will be switched off.
+								]]></xsd:documentation>
+							</xsd:annotation>
+						</xsd:enumeration>
+					</xsd:restriction>
+				</xsd:simpleType>
+			</xsd:attribute>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="spring-configured">
+		<xsd:annotation>
+			<xsd:documentation source="java:org.springframework.beans.factory.aspectj.AnnotationBeanConfigurerAspect"><![CDATA[
+	Signals the current application context to apply dependency injection
+	to non-managed classes that are instantiated outside of the Spring bean
+	factory (typically classes annotated with the @Configurable annotation).
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:simpleType>
+			<xsd:restriction base="xsd:string"/>
+		</xsd:simpleType>
+	</xsd:element>
+
+	<xsd:element name="mbean-export">
+		<xsd:annotation>
+			<xsd:documentation source="java:org.springframework.jmx.export.annotation.AnnotationMBeanExporter"><![CDATA[
+	Activates default exporting of MBeans by detecting standard MBeans in the Spring
+	context as well as @ManagedResource annotations on Spring-defined beans.
+
+	The resulting MBeanExporter bean is defined under the name "mbeanExporter".
+	Alternatively, consider defining a custom AnnotationMBeanExporter bean explicitly.
+			]]></xsd:documentation>
+			<xsd:appinfo>
+				<tool:annotation>
+					<tool:exports type="org.springframework.jmx.export.annotation.AnnotationMBeanExporter"/>
+				</tool:annotation>
+			</xsd:appinfo>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:attribute name="default-domain" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The default domain to use when generating JMX ObjectNames.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="server" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The bean name of the MBeanServer to which MBeans should be exported.
+	Default is to use the platform's default MBeanServer (autodetecting
+	WebLogic, WebSphere and the JVM's platform MBeanServer).
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="registration">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The registration behavior, indicating how to deal with existing MBeans
+	of the same name: fail with an exception, ignore and keep the existing
+	MBean, or replace the existing one with the new MBean.
+
+	Default is to fail with an exception.
+					]]></xsd:documentation>
+				</xsd:annotation>
+				<xsd:simpleType>
+					<xsd:restriction base="xsd:NMTOKEN">
+						<xsd:enumeration value="failOnExisting"/>
+						<xsd:enumeration value="ignoreExisting"/>
+						<xsd:enumeration value="replaceExisting"/>
+					</xsd:restriction>
+				</xsd:simpleType>
+			</xsd:attribute>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="mbean-server">
+		<xsd:annotation>
+			<xsd:documentation source="java:org.springframework.jmx.support.MBeanServerFactoryBean"><![CDATA[
+	Exposes a default MBeanServer for the current platform.
+	Autodetects WebLogic, WebSphere and the JVM's platform MBeanServer.
+
+	The default bean name for the exposed MBeanServer is "mbeanServer".
+	This may be customized through specifying the "id" attribute.
+			]]></xsd:documentation>
+			<xsd:appinfo>
+				<tool:annotation>
+					<tool:exports type="javax.management.MBeanServer"/>
+				</tool:annotation>
+			</xsd:appinfo>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="beans:identifiedType">
+					<xsd:attribute name="agent-id" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	The agent id of the target MBeanServer, if any.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:complexType name="filterType">
+		<xsd:attribute name="type" use="required">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+    Controls the type of filtering to apply to the expression.
+
+    "annotation" indicates an annotation to be present at the type level in target components;
+    "assignable" indicates a class (or interface) that the target components are assignable to (extend/implement);
+    "aspectj" indicates an AspectJ type pattern expression to be matched by the target components;
+    "regex" indicates a regex pattern to be matched by the target components' class names;
+    "custom" indicates a custom implementation of the org.springframework.core.type.TypeFilter interface.
+
+    Note: This attribute will not be inherited by child bean definitions.
+    Hence, it needs to be specified per concrete bean definition.
+                ]]></xsd:documentation>
+			</xsd:annotation>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:enumeration value="annotation"/>
+					<xsd:enumeration value="assignable"/>
+					<xsd:enumeration value="aspectj"/>
+					<xsd:enumeration value="regex"/>
+					<xsd:enumeration value="custom"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:attribute>
+		<xsd:attribute name="expression" type="xsd:string" use="required">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+    Indicates the filter expression, the type of which is indicated by "type".
+                ]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+	</xsd:complexType>
+
+</xsd:schema>

+ 9 - 3
src/main/webapp/WEB-INF/views/common.html

@@ -71,6 +71,12 @@
 								th:href="${basePath + '/portal/financial/investmentInstitution.html'}">投资机构</a>
 							</li>
 						</ol></li>
+					<li><a th:href="${basePath + '/portal/aboutUs.html'}">关于公司</a>
+						<ol class="subnavigation">
+							<li><a
+								th:href="${basePath + '/portal/contactUs.html'}">联系我们</a>
+							</li>
+					</ol></li>						
 					<!-- <li><a href="#">科技活动</a></li> <li><a href="#">平台共建</a></li> 	-->
 				</ul>
 			</div>
@@ -79,14 +85,14 @@
 					th:src="${portalHost+'/img/index_resiter.png'}" alt="" />
 				</a> 
 				<a href="javascript:;" class="head_login">登录</a> 
-				<a th:href="${basePath + '/portal/aboutUs.html'}">关于我们</a>
+				<a th:href="${basePath + '/portal/aboutUs.html'}">关于公司</a>
 				<div></div>
 			</div>
 			<div class="nav_right" th:if="${isLogin}">
 				<a th:href="${basePath + (isAdmin? '/admin/index.html':'/user/account/index.html')}"
 					th:text="${#strings.isEmpty(userName)?'个人中心':userName}">个人中心</a> 
 				<a th:href="${basePath + '/user/logout'}">退出</a> 
-				<a th:href="${basePath + '/portal/aboutUs.html'}">关于我们</a>
+				<a th:href="${basePath + '/portal/aboutUs.html'}">关于公司</a>
 				<div></div>
 			</div>
 		</div>
@@ -125,7 +131,7 @@
 			<div class="bottom">
 				<div class="bottom_text">
 					<div class="text_top">
-						<a th:href="${basePath + '/portal/aboutUs.html'}">关于我们</a>
+						<a th:href="${basePath + '/portal/aboutUs.html'}">关于公司</a>
 						<a th:href="${basePath + '/portal/contactUs.html'}">联系我们</a>
 						<p>Copyright &copy 2016-2017 科德 版权所有 湘ICP备15019731号 -2
 							技术支持:湖南阿凡提科技有限公司</p>

+ 4 - 4
src/main/webapp/WEB-INF/views/portal/financial/index.html

@@ -125,21 +125,21 @@
 		<div id="info">
 			<div class="info">
 				<div>
-					<img th:src="${avatarUploadHost + '/default/inverDatails.jpg'}" alt="" />
+					<img th:src="${portalHost + '/img/inverDatails1.jpg'}" alt="" />
 					<h3>高新创投</h3>
 					<p>湖南高新创业投资集团有限公司(简称:高新创投)成立于2007年9月,系省委、省政府批准设立的全省唯一的省级国有创投机构,
 					是为创新财政投入方式、推进战略新兴产业和高新技术产业发展而打造的政府性投融资平台。</p>
 					<div><a th:href="${basePath + '/portal/financial/investmentDetail.html?organizationId=bc1c9b64-a285-47ca-b783-db7dfdde4b93'}">MORE+</a></div>
 				</div>
 				<div>
-					<img th:src="${avatarUploadHost + '/default/inverDatails.jpg'}" alt="" />
+					<img th:src="${portalHost + '/img/inverDatails2.jpg'}" alt="" />
 					<h3>北极光</h3>
 					<p>北极光创投基金成立于2004年,资本来源于公益金、基金会、养老基金、联合基金,以及美国、欧洲和亚洲的个体投资人。
 					基金将集中投资于与TMT领域(通讯、新媒体、高科技)相关的、具有中国战略的企业。</p>
 					<div><a th:href="${basePath + '/portal/financial/investmentDetail.html?organizationId=3443f6eb-c077-453e-b542-9215f97b61ea'}">MORE+</a></div>
 				</div>
 				<div>
-					<img th:src="${avatarUploadHost + '/default/inverDatails.jpg'}" alt="" />
+					<img th:src="${portalHost + '/img/inverDatails3.jpg'}" alt="" />
 					<h3>华兴资本</h3>
 					<p>华兴资本于2004年在北京成立,是中国领先的专注于为快速成长的中国创业型企业家提供顶级财务顾问服务的投资银行。
 					公司关注的行业包括:高科技、媒体、电信、医疗和消费品等行业。</p>
@@ -228,7 +228,7 @@
 				<div class="part">所属行业</div>
 				<div class="place_city">
 					<ul>
-						<li class="thon" value="464">教育休闲</li>
+						<li class="thon" value="null">全部行业</li>
 						<li value="463">包装印刷</li>
 						<li value="462">电气自动化</li>
 						<li value="460">航天航空</li>

+ 2 - 0
src/main/webapp/WEB-INF/views/portal/technologyTrading/achievementOrder.html

@@ -93,6 +93,8 @@
 									交易方式:<span
 										th:text="${reachievementlist.transferModeS}?${reachievementlist.transferModeS}:暂无"></span>
 								</p>
+								<p class="likeId" th:text="${reachievementlist.id}"></p>
+								<p class="likeType" th:text="${reachievementlist.ownerType}"></p>
 								<a href="#">了解详情</a>
 							</div></li>
 					</ul>

+ 2 - 1
src/main/webapp/WEB-INF/views/portal/technologyTrading/assessMent.html

@@ -136,8 +136,9 @@
   				</div>
   			</div>
   		</div>
+  		<input type="hidden" th:isLogin="${!isLogin}" id="isLogin" />
   		<div class="process_btn">
-  			<a href="javascript:;" onclick="_MEIQIA('showPanel')">立即评估</a>
+  			<a>立即评估</a>
   			<a href="javascript:;" onclick="_MEIQIA('showPanel')">在线咨询</a>
   		</div>
   	</div>

+ 28 - 13
src/main/webapp/WEB-INF/views/portal/technologyTrading/demandOrder.html

@@ -74,27 +74,42 @@
 				<div class="line">猜你喜欢</div>
 				<div class="main_introduce">
 					<ul>
-						<li th:each="reachievementlist:${reachievementlist}"><img
-							th:src="${portalHost+'/img/detail_img4.jpg'}" alt="" />
+						<li th:each="redemandlist:${redemandlist}"> 
+							<div th:if="${redemandlist.pictureUrl} == null " >
+								<img th:src="${avatarUploadHost+ '/default/xuqiuimg_null.png'}" alt=""/>
+							</div>
+							<div th:if="${redemandlist.pictureUrl} != null" >
+								<img th:src="${avatarUploadHost+redemandlist.pictureUrl}" alt=""/>
+							</div>
+						 
 							<div class="list_text">
 								<p>
-									行业:<span
-										th:text="${redemandlist.industryCategoryAS}?${redemandlist.industryCategoryAS}:暂无行业分类"></span>
+									行业:<span th:text="${redemandlist.industryCategoryAS}?${redemandlist.industryCategoryAS}:暂无行业分类"></span>
 								</p>
-								<p>
-									名称:<span
-										th:text="${redemandlist.name}?${redemandlist.name}:暂无名称"></span>
+								<p >
+									名称:<span th:text="${redemandlist.name}?${redemandlist.name}:暂无名称"></span>
 								</p>
 								<p>
-									类型:<span
-										th:text="${redemandlist.demandTypeS}?${redemandlist.demandTypeS}:暂无分类"></span>
+									类型:<span th:text="${redemandlist.demandTypeS}?${redemandlist.demandTypeS}:暂无分类"></span>
 								</p>
-								<p>
-									预算:<span
-										th:text="${redemandlist.fixedbudget}?${redemandlist.fixedbudget}:价格面议"></span>
+								<p class="money">
+									预算:<span th:text="${redemandlist.fixedbudget}?${redemandlist.fixedbudget}:价格面议"></span>
 								</p>
+								<p th:text="${redemandlist.id}" class="demandId"></p>
+								<p th:text="${redemandlist.dataCategory}" class="demandTyp"></p>
 								<a href="#">了解详情</a>
-							</div></li>
+							</div>
+							<!-- <div class="star">
+								<p>精品:</p>
+								<ol>
+									<li></li>
+									<li></li>
+									<li></li>
+									<li></li>
+									<li></li>
+								</ol>
+							</div> -->
+							</li>
 					</ul>
 				</div>
 			</div>

+ 16 - 16
src/main/webapp/WEB-INF/views/portal/technologyTrading/index.html

@@ -68,20 +68,20 @@
 				<div>
 					<div class="clear_line"></div>
 					<div class="technolo_text">
-						<div val="116936328830402560">
-							<h5>长沙市科技局进行技术交易合同认定登记上门服务</h5>
+						<div th:val="${newsPortalList[0].id}">
+							<h5 th:text="${newsPortalList[0].title}">长沙市科技局进行技术交易合同认定登记上门服务</h5>
 							<a href="#">了解更多</a>
 						</div>
-						<div val="116935341277331456 ">
-							<h5>长沙市科技局印发《长沙市技术交易奖励暂行办法》</h5>
+						<div th:val="${newsPortalList[1].id}">
+							<h5 th:text="${newsPortalList[1].title}">长沙市科技局印发《长沙市技术交易奖励暂行办法》</h5>
 							<a href="#">了解更多</a>
 						</div>
-						<div val="116933097148530688">
-							<h5>常德市网上技术交易专项补助暂行办法</h5>
+						<div th:val="${newsPortalList[2].id}">
+							<h5 th:text="${newsPortalList[2].title}">常德市网上技术交易专项补助暂行办法</h5>
 							<a href="#">了解更多</a>
 						</div>
-						<div val="104164708885872640">
-							<h5>国家税务总局关于进一步做好企业研发费用加计扣除政策落实工作的通知 </h5>
+						<div th:val="${newsPortalList[3].id}">
+							<h5 th:text="${newsPortalList[3].title}">国家税务总局关于进一步做好企业研发费用加计扣除政策落实工作的通知 </h5>
 							<a href="#">了解更多</a>
 						</div>
 					</div>
@@ -94,21 +94,21 @@
 				<div>
 					<div class="clear_line"></div>
 					<div class="technolo_text">
-						<div val="120088780303908864">
+						<div th:val="${portalNewsQuestion[0].id}">
 							<a href="#">查看答案</a>
-							<h5>技淘网平台交易违规处罚</h5>
+							<h5 th:text="${portalNewsQuestion[0].title}">技淘网平台交易违规处罚</h5>
 						</div>
-						<div val="120088955617427456">
+						<div th:val="${portalNewsQuestion[1].id}">
 							<a href="#">查看答案</a>
-							<h5>技术需求发布规范</h5>
+							<h5 th:text="${portalNewsQuestion[1].title}">技术需求发布规范</h5>
 						</div>
-						<div val="120089164124667904">
+						<div th:val="${portalNewsQuestion[2].id}">
 							<a href="#">查看答案</a>
-							<h5>争议纠纷发起流程及规则</h5>
+							<h5 th:text="${portalNewsQuestion[2].title}">争议纠纷发起流程及规则</h5>
 						</div>
-						<div val="120089403078361088">
+						<div th:val="${portalNewsQuestion[3].id}">
 							<a href="#">查看答案</a>
-							<h5>交易安全保障</h5>
+							<h5 th:text="${portalNewsQuestion[3].title}">交易安全保障</h5>
 						</div>
 					</div>
 					<img th:src="${portalHost + '/img/technology_question.png'}" alt="" />