Browse Source

Merge branch 'master' of https://git.coding.net/aft/AFT.git

Antiloveg 8 years ago
parent
commit
165ee5b0d4
24 changed files with 1586 additions and 223 deletions
  1. 13 0
      generatorConfig.xml
  2. 4 2
      src/main/java/com/goafanti/achievement/service/AchievementService.java
  3. 19 0
      src/main/java/com/goafanti/achievement/service/impl/AchievementServiceImpl.java
  4. 6 0
      src/main/java/com/goafanti/common/constant/AFTConstants.java
  5. 16 0
      src/main/java/com/goafanti/common/controller/WebpageController.java
  6. 4 0
      src/main/java/com/goafanti/common/dao/AchievementMapper.java
  7. 96 0
      src/main/java/com/goafanti/common/dao/CountryCodeMapper.java
  8. 4 1
      src/main/java/com/goafanti/common/dao/OrganizationIdentityMapper.java
  9. 4 0
      src/main/java/com/goafanti/common/dao/UserIdentityMapper.java
  10. 48 4
      src/main/java/com/goafanti/common/mapper/AchievementMapper.xml
  11. 271 0
      src/main/java/com/goafanti/common/mapper/CountryCodeMapper.xml
  12. 23 1
      src/main/java/com/goafanti/common/mapper/OrganizationIdentityMapper.xml
  13. 23 2
      src/main/java/com/goafanti/common/mapper/UserIdentityMapper.xml
  14. 135 0
      src/main/java/com/goafanti/common/model/CountryCode.java
  15. 572 0
      src/main/java/com/goafanti/common/model/CountryCodeExample.java
  16. 1 0
      src/main/java/com/goafanti/core/cache/serializer/FastJsonRedisSerializer.java
  17. 123 0
      src/main/java/com/goafanti/portal/bo/InternationalListBo.java
  18. 3 0
      src/main/java/com/goafanti/user/service/OrganizationIdentityService.java
  19. 5 0
      src/main/java/com/goafanti/user/service/UserIdentityService.java
  20. 17 1
      src/main/java/com/goafanti/user/service/impl/OrganizationIdentityServiceImpl.java
  21. 19 0
      src/main/java/com/goafanti/user/service/impl/UserIdentityServiceImpl.java
  22. 77 0
      src/main/resources/props/config_local.properties
  23. 71 9
      src/main/webapp/WEB-INF/views/portal/index.html
  24. 32 203
      src/main/webapp/WEB-INF/views/portal/international/internationalIndex.html

+ 13 - 0
generatorConfig.xml

@@ -0,0 +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="E:/mysql-connector-java-5.1.40.jar" />
+  <context id="context1">	
+    <jdbcConnection connectionURL="jdbc:mysql://localhost:3306/aft" 
+    	driverClass="com.mysql.jdbc.Driver" password="123456" userId="root" />
+    <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="country_code"/>
+  </context>
+</generatorConfiguration>

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

@@ -15,6 +15,7 @@ import com.goafanti.portal.bo.AchievementDetailBo;
 import com.goafanti.portal.bo.AchievementPortalDetailBo;
 import com.goafanti.portal.bo.AchievementPortalSimilarListBo;
 import com.goafanti.portal.bo.AchievementSearchListBo;
+import com.goafanti.portal.bo.InternationalListBo;
 
 public interface AchievementService {
 
@@ -67,6 +68,7 @@ public interface AchievementService {
 	List<AchievementPortalSimilarListBo> findByFieldA(Integer fieldA, String id, Integer type);
 
 	int updateByPrimaryKeySelective(Achievement a);
-
-
+	
+	/** 查询国际化技术 **/
+	List<InternationalListBo> selectInternationalAchievement(Integer internationalAchievementKey);
 }

+ 19 - 0
src/main/java/com/goafanti/achievement/service/impl/AchievementServiceImpl.java

@@ -11,8 +11,12 @@ import java.util.Map;
 import java.util.UUID;
 
 import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+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.achievement.bo.AchievementImportBo;
@@ -49,6 +53,7 @@ import com.goafanti.common.model.Notice;
 import com.goafanti.common.model.OrganizationIdentity;
 import com.goafanti.common.model.UserIdentity;
 import com.goafanti.common.utils.DateUtils;
+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;
@@ -57,6 +62,7 @@ import com.goafanti.portal.bo.AchievementDetailBo;
 import com.goafanti.portal.bo.AchievementPortalDetailBo;
 import com.goafanti.portal.bo.AchievementPortalSimilarListBo;
 import com.goafanti.portal.bo.AchievementSearchListBo;
+import com.goafanti.portal.bo.InternationalListBo;
 
 @Service
 public class AchievementServiceImpl extends BaseMybatisDao<AchievementMapper> implements AchievementService {
@@ -80,6 +86,8 @@ public class AchievementServiceImpl extends BaseMybatisDao<AchievementMapper> im
 	@Autowired
 	private OrganizationIdentityMapper		organizationIdentityMapper;
 
+	private static final Logger logger = LoggerFactory.getLogger(AchievementServiceImpl.class);
+	
 	@SuppressWarnings("unchecked")
 	@Override
 	public Pagination<AchievementListBo> listUserOwnerAchievement(String username, String ownerName, String ownerId,
@@ -595,4 +603,15 @@ public class AchievementServiceImpl extends BaseMybatisDao<AchievementMapper> im
 		return achievementMapper.updateByPrimaryKey(a);
 	}
 
+
+	@Override
+	@Cacheable(value = "internationalAchievementList", key = "'internationalAchievementList:'+#internationalAchievementCacheKey")
+	public List<InternationalListBo> selectInternationalAchievement(Integer internationalAchievementCacheKey) {
+		return achievementMapper.selectInternationalAchievement();
+	}
+	
+	@CacheEvict(value = "internationalAchievementList", allEntries = true)
+	public void cleanInternationalAchievement() {
+		LoggerUtils.debug(logger, "清除国际化技术列表");
+	}
 }

+ 6 - 0
src/main/java/com/goafanti/common/constant/AFTConstants.java

@@ -52,4 +52,10 @@ public class AFTConstants {
 	public static final Integer	LECTURE_DYNAMIC_LIST_CACHE_KEY	= 668;
 
 	public static final Integer	LECTURE_LIST_CACHE_KEY			= 669;
+	
+	public static final Integer INTERNATIONAL_ACHIEVEMENT_CACHE_KEY = 670;
+	
+	public static final Integer INTERNATIONAL_USER_CACHE_KEY    = 671;
+	
+	public static final Integer INTERNATIONAL_ORG_CACHE_KEY    = 672;
 }

+ 16 - 0
src/main/java/com/goafanti/common/controller/WebpageController.java

@@ -13,9 +13,13 @@ import org.springframework.web.servlet.ModelAndView;
 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.model.Banners;
 import com.goafanti.core.shiro.token.TokenManager;
 import com.goafanti.demand.service.DemandService;
+import com.goafanti.portal.bo.InternationalListBo;
+import com.goafanti.user.service.OrganizationIdentityService;
+import com.goafanti.user.service.UserIdentityService;
 import com.goafanti.news.enums.NewsType;
 import com.goafanti.news.service.NewsService;
 
@@ -32,6 +36,12 @@ public class WebpageController extends BaseController {
 	private BannersService		bannersService;
 
 	@Resource
+	private UserIdentityService 	userIdentityService;
+	
+	@Resource
+	private OrganizationIdentityService organizationIdentityService;
+	
+	@Resource
 	private NewsService			newsService;
 
 	/**
@@ -295,6 +305,12 @@ public class WebpageController extends BaseController {
 	public ModelAndView portalInternationalInternationalIndex(HttpServletRequest request, ModelAndView modelview) {
 		modelview.setViewName("/portal/international/internationalIndex");
 		handleBanners(modelview, BannersType.GUO_JI_YE_WU);
+		List<InternationalListBo> listA = achievementService.selectInternationalAchievement(AFTConstants.INTERNATIONAL_ACHIEVEMENT_CACHE_KEY);
+		List<InternationalListBo> listB = userIdentityService.selectInternationalUser(AFTConstants.INTERNATIONAL_USER_CACHE_KEY);
+		List<InternationalListBo> listC = organizationIdentityService.selectInternationalOrganization(AFTConstants.INTERNATIONAL_ORG_CACHE_KEY);
+		modelview.addObject("achievementInternationalList", listA);
+		modelview.addObject("userInternationalList", listB);
+		modelview.addObject("orgInternationalList", listC);
 		return modelview;
 	}
 

+ 4 - 0
src/main/java/com/goafanti/common/dao/AchievementMapper.java

@@ -10,6 +10,7 @@ import com.goafanti.common.model.Achievement;
 import com.goafanti.portal.bo.AchievementDetailBo;
 import com.goafanti.portal.bo.AchievementPortalDetailBo;
 import com.goafanti.portal.bo.AchievementPortalSimilarListBo;
+import com.goafanti.portal.bo.InternationalListBo;
 
 public interface AchievementMapper {
 	int deleteByPrimaryKey(String id);
@@ -49,4 +50,7 @@ public interface AchievementMapper {
 			@Param("id") String id);
 
 	int updateOwnerId(String id);
+	
+	/** 查询国际化技术 **/
+	List<InternationalListBo> selectInternationalAchievement();
 }

+ 96 - 0
src/main/java/com/goafanti/common/dao/CountryCodeMapper.java

@@ -0,0 +1,96 @@
+package com.goafanti.common.dao;
+
+import com.goafanti.common.model.CountryCode;
+import com.goafanti.common.model.CountryCodeExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface CountryCodeMapper {
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table country_code
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    long countByExample(CountryCodeExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table country_code
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    int deleteByExample(CountryCodeExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table country_code
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    int deleteByPrimaryKey(String countryNameEn);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table country_code
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    int insert(CountryCode record);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table country_code
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    int insertSelective(CountryCode record);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table country_code
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    List<CountryCode> selectByExample(CountryCodeExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table country_code
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    CountryCode selectByPrimaryKey(String countryNameEn);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table country_code
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    int updateByExampleSelective(@Param("record") CountryCode record, @Param("example") CountryCodeExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table country_code
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    int updateByExample(@Param("record") CountryCode record, @Param("example") CountryCodeExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table country_code
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    int updateByPrimaryKeySelective(CountryCode record);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table country_code
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    int updateByPrimaryKey(CountryCode record);
+}

+ 4 - 1
src/main/java/com/goafanti/common/dao/OrganizationIdentityMapper.java

@@ -5,6 +5,7 @@ import java.util.List;
 import org.apache.ibatis.annotations.Param;
 
 import com.goafanti.common.model.OrganizationIdentity;
+import com.goafanti.portal.bo.InternationalListBo;
 import com.goafanti.user.bo.AuditorOrgIdentityDetailBo;
 import com.goafanti.user.bo.OrgBasicInfoBo;
 import com.goafanti.user.bo.OrgIdentityBo;
@@ -44,5 +45,7 @@ public interface OrganizationIdentityMapper {
 	List<OrgUnitNames> selectAchievementOrgOwner(@Param("aid")String aid, @Param("name")String name);
 
 	OrganizationIndentityUserBo selectOrgIdentityUserBoByUserId(@Param("uid")String uid, @Param("year")Integer year);
-
+	
+	/** 查询国际伙伴 **/
+	List<InternationalListBo> selectInternationalOrganization();
 }

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

@@ -5,6 +5,7 @@ import java.util.List;
 import org.apache.ibatis.annotations.Param;
 
 import com.goafanti.common.model.UserIdentity;
+import com.goafanti.portal.bo.InternationalListBo;
 import com.goafanti.user.bo.AuditorUserIdentityDetailBo;
 import com.goafanti.user.bo.UserIdentityBo;
 import com.goafanti.user.bo.UserNames;
@@ -35,4 +36,7 @@ public interface UserIdentityMapper {
 	List<UserNames> selectManagerAchievementUserOwner(@Param("aid")String aid, @Param("name")String name);
 
 	List<UserNames> selectAchievementUserOwner(@Param("aid")String aid, @Param("name")String name);
+	
+	/** 查询国际专家 **/
+	List<InternationalListBo> selectInternationalUser();
 }

+ 48 - 4
src/main/java/com/goafanti/common/mapper/AchievementMapper.xml

@@ -54,6 +54,8 @@
     <result column="deleted_sign" jdbcType="INTEGER" property="deletedSign" />
     <result column="audit_status" jdbcType="INTEGER" property="auditStatus" />
     <result column="tech_broker_id" jdbcType="VARCHAR" property="techBrokerId" />
+    <result column="country_name_zh" jdbcType="VARCHAR" property="countryNameZh" />
+    <result column="international_flag" jdbcType="INTEGER" property="internationalFlag" />
   </resultMap>
   <sql id="Base_Column_List">
     id, serial_number, data_category, name, keyword, category, summary, introduction, 
@@ -63,7 +65,8 @@
     bargaining_mode, transfer_price, technical_scene, breakthrough, patent_case, awards, 
     team_des, parameter, tech_plan_url, business_plan_url, org_id, org_name, org_address, 
     org_email, org_contacts, org_contacts_mobile, contacts, manager_id, salesman_id, 
-    status, create_time, release_status, release_date, deleted_sign, audit_status, tech_broker_id
+    status, create_time, release_status, release_date, deleted_sign, audit_status, tech_broker_id,
+    country_name_zh,international_flag
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
     select 
@@ -92,7 +95,8 @@
       org_contacts, org_contacts_mobile, contacts, 
       manager_id, salesman_id, status, 
       create_time, release_status, release_date, 
-      deleted_sign, audit_status, tech_broker_id)
+      deleted_sign, audit_status, tech_broker_id,
+      country_name_zh,international_flag)
     values (#{id,jdbcType=VARCHAR}, #{serialNumber,jdbcType=INTEGER}, #{dataCategory,jdbcType=INTEGER}, 
       #{name,jdbcType=VARCHAR}, #{keyword,jdbcType=VARCHAR}, #{category,jdbcType=INTEGER}, 
       #{summary,jdbcType=VARCHAR}, #{introduction,jdbcType=VARCHAR}, #{technicalPictureUrl,jdbcType=VARCHAR}, 
@@ -109,7 +113,8 @@
       #{orgContacts,jdbcType=VARCHAR}, #{orgContactsMobile,jdbcType=VARCHAR}, #{contacts,jdbcType=INTEGER}, 
       #{managerId,jdbcType=VARCHAR}, #{salesmanId,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}, 
       #{createTime,jdbcType=TIMESTAMP}, #{releaseStatus,jdbcType=INTEGER}, #{releaseDate,jdbcType=TIMESTAMP}, 
-      #{deletedSign,jdbcType=INTEGER}, #{auditStatus,jdbcType=INTEGER}, #{techBrokerId,jdbcType=VARCHAR})
+      #{deletedSign,jdbcType=INTEGER}, #{auditStatus,jdbcType=INTEGER}, #{techBrokerId,jdbcType=VARCHAR},
+      #{countryNameZh,jdbcType=VARCHAR}, #{internationalFlag,jdbcType=INTEGER})
   </insert>
   <insert id="insertSelective" parameterType="com.goafanti.common.model.Achievement">
     insert into achievement
@@ -270,6 +275,12 @@
       <if test="techBrokerId != null">
         tech_broker_id,
       </if>
+      <if test="countryNameZh != null">
+      	country_name_zh,
+      </if>
+      <if test="internationalFlag != null">
+      	international_flag,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="id != null">
@@ -428,6 +439,12 @@
       <if test="techBrokerId != null">
         #{techBrokerId,jdbcType=VARCHAR},
       </if>
+      <if test="countryNameZh != null">
+      	#{countryNameZh,jdbcType=VARCHAR},
+      </if>
+       <if test="internationalFlag != null">
+      	#{internationalFlag,jdbcType=INTEGER},
+      </if>
     </trim>
   </insert>
   <update id="updateByPrimaryKeySelective" parameterType="com.goafanti.common.model.Achievement">
@@ -586,6 +603,12 @@
       <if test="techBrokerId != null">
         tech_broker_id = #{techBrokerId,jdbcType=VARCHAR},
       </if>
+      <if test="countryNameZh != null">
+      	country_name_zh = #{countryNameZh,jdbcType=VARCHAR},
+      </if>
+       <if test="internationalFlag != null">
+      	international_flag = #{internationalFlag,jdbcType=INTEGER},
+      </if>
     </set>
     where id = #{id,jdbcType=VARCHAR}
   </update>
@@ -641,7 +664,9 @@
       release_date = #{releaseDate,jdbcType=TIMESTAMP},
       deleted_sign = #{deletedSign,jdbcType=INTEGER},
       audit_status = #{auditStatus,jdbcType=INTEGER},
-      tech_broker_id = #{techBrokerId,jdbcType=VARCHAR}
+      tech_broker_id = #{techBrokerId,jdbcType=VARCHAR},
+      country_name_zh = #{countryNameZh,jdbcType=VARCHAR},
+      international_flag = #{internationalFlag,jdbcType=INTEGER}
     where id = #{id,jdbcType=VARCHAR}
   </update>
   
@@ -1325,4 +1350,23 @@
   		set owner_id = null 
   	where id = #{id,jdbcType=VARCHAR}
   </update>
+  
+  <select id="selectInternationalAchievement" resultType="com.goafanti.portal.bo.InternationalListBo">
+  	select 
+  		a.id as id,
+  		a.name as techName,
+  		a.introduction,
+  		a.owner_name as ownerName,
+  		a.owner_type as ownerType,
+  		a.technical_picture_url as technicalPictureUrl,
+  		a.country_name_zh as countryNameZh
+  	from 
+  		achievement a 
+	where 
+		a.deleted_sign = 0 and a.data_category = 1 
+	<!-- and a.release_status = 1 and nternational_flag = 1 -->
+	order by 
+		a.release_date desc
+	limit 0,5
+  </select>
 </mapper>

+ 271 - 0
src/main/java/com/goafanti/common/mapper/CountryCodeMapper.xml

@@ -0,0 +1,271 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.goafanti.common.dao.CountryCodeMapper">
+  <resultMap id="BaseResultMap" type="com.goafanti.common.model.CountryCode">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Jul 21 08:55:01 CST 2017.
+    -->
+    <id column="country_name_en" jdbcType="VARCHAR" property="countryNameEn" />
+    <result column="country_name_zh" jdbcType="VARCHAR" property="countryNameZh" />
+    <result column="region_code" jdbcType="CHAR" property="regionCode" />
+    <result column="tel_code" jdbcType="INTEGER" property="telCode" />
+  </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 Fri Jul 21 08:55:01 CST 2017.
+    -->
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Jul 21 08:55:01 CST 2017.
+    -->
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Jul 21 08:55:01 CST 2017.
+    -->
+    country_name_en, country_name_zh, region_code, tel_code
+  </sql>
+  <select id="selectByExample" parameterType="com.goafanti.common.model.CountryCodeExample" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Jul 21 08:55:01 CST 2017.
+    -->
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from country_code
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Jul 21 08:55:01 CST 2017.
+    -->
+    select 
+    <include refid="Base_Column_List" />
+    from country_code
+    where country_name_en = #{countryNameEn,jdbcType=VARCHAR}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Jul 21 08:55:01 CST 2017.
+    -->
+    delete from country_code
+    where country_name_en = #{countryNameEn,jdbcType=VARCHAR}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.goafanti.common.model.CountryCodeExample">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Jul 21 08:55:01 CST 2017.
+    -->
+    delete from country_code
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.goafanti.common.model.CountryCode">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Jul 21 08:55:01 CST 2017.
+    -->
+    insert into country_code (country_name_en, country_name_zh, region_code, 
+      tel_code)
+    values (#{countryNameEn,jdbcType=VARCHAR}, #{countryNameZh,jdbcType=VARCHAR}, #{regionCode,jdbcType=CHAR}, 
+      #{telCode,jdbcType=INTEGER})
+  </insert>
+  <insert id="insertSelective" parameterType="com.goafanti.common.model.CountryCode">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Jul 21 08:55:01 CST 2017.
+    -->
+    insert into country_code
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="countryNameEn != null">
+        country_name_en,
+      </if>
+      <if test="countryNameZh != null">
+        country_name_zh,
+      </if>
+      <if test="regionCode != null">
+        region_code,
+      </if>
+      <if test="telCode != null">
+        tel_code,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="countryNameEn != null">
+        #{countryNameEn,jdbcType=VARCHAR},
+      </if>
+      <if test="countryNameZh != null">
+        #{countryNameZh,jdbcType=VARCHAR},
+      </if>
+      <if test="regionCode != null">
+        #{regionCode,jdbcType=CHAR},
+      </if>
+      <if test="telCode != null">
+        #{telCode,jdbcType=INTEGER},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.goafanti.common.model.CountryCodeExample" resultType="java.lang.Long">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Jul 21 08:55:01 CST 2017.
+    -->
+    select count(*) from country_code
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Jul 21 08:55:01 CST 2017.
+    -->
+    update country_code
+    <set>
+      <if test="record.countryNameEn != null">
+        country_name_en = #{record.countryNameEn,jdbcType=VARCHAR},
+      </if>
+      <if test="record.countryNameZh != null">
+        country_name_zh = #{record.countryNameZh,jdbcType=VARCHAR},
+      </if>
+      <if test="record.regionCode != null">
+        region_code = #{record.regionCode,jdbcType=CHAR},
+      </if>
+      <if test="record.telCode != null">
+        tel_code = #{record.telCode,jdbcType=INTEGER},
+      </if>
+    </set>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Jul 21 08:55:01 CST 2017.
+    -->
+    update country_code
+    set country_name_en = #{record.countryNameEn,jdbcType=VARCHAR},
+      country_name_zh = #{record.countryNameZh,jdbcType=VARCHAR},
+      region_code = #{record.regionCode,jdbcType=CHAR},
+      tel_code = #{record.telCode,jdbcType=INTEGER}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.goafanti.common.model.CountryCode">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Jul 21 08:55:01 CST 2017.
+    -->
+    update country_code
+    <set>
+      <if test="countryNameZh != null">
+        country_name_zh = #{countryNameZh,jdbcType=VARCHAR},
+      </if>
+      <if test="regionCode != null">
+        region_code = #{regionCode,jdbcType=CHAR},
+      </if>
+      <if test="telCode != null">
+        tel_code = #{telCode,jdbcType=INTEGER},
+      </if>
+    </set>
+    where country_name_en = #{countryNameEn,jdbcType=VARCHAR}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.goafanti.common.model.CountryCode">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Jul 21 08:55:01 CST 2017.
+    -->
+    update country_code
+    set country_name_zh = #{countryNameZh,jdbcType=VARCHAR},
+      region_code = #{regionCode,jdbcType=CHAR},
+      tel_code = #{telCode,jdbcType=INTEGER}
+    where country_name_en = #{countryNameEn,jdbcType=VARCHAR}
+  </update>
+</mapper>

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

@@ -1175,5 +1175,27 @@
 				AND oi.unit_name like CONCAT('%', #{name,jdbcType=VARCHAR}, '%')
 			</if>
   </select>
-
+  
+  <select id="selectInternationalOrganization" resultType="com.goafanti.portal.bo.InternationalListBo">
+	select
+		a.id,
+		b.unit_name as unitName,
+		c.logo_url as logoUrl,
+		c.country_name_zh as countryNameZh,
+		ifnull(d.achievement_count,0) as achievementCount
+	from
+		<![CDATA[ user ]]> a 
+		left join organization_identity b on
+			b.uid = a.id 
+		left join organization_info c on
+			c.uid = a.id 
+		left join achievement_demand_count d on
+			d.uid = a.id
+	where
+		a.type = 1
+		<!-- and b.audit_status = 1 and b.international_flag = 1 -->
+	order by 
+		b.registration_time desc
+	limit 0 ,4 
+  </select>
 </mapper>

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

@@ -409,7 +409,7 @@
 			<if test="aid != null">
 				and u.aid = #{aid,jdbcType=VARCHAR}
 			</if>
-			
+		
  </select>
 	
  <select id="findSearchSubscriberListByPage" parameterType="String" resultType="com.goafanti.portal.bo.UserSubscriberListBo">
@@ -489,5 +489,26 @@
 				AND ui.username like CONCAT('%', #{name,jdbcType=VARCHAR}, '%')
 			</if>
 	 </select>
-  
+  	 <select id="selectInternationalUser" resultType="com.goafanti.portal.bo.InternationalListBo">
+		select 
+			a.id,
+			b.username as ownerName,
+			c.ability_label as abilityLabel,
+			d.person_portrait_url personPortraitUrl,
+			e.education
+		from user a 
+		left join user_identity b 
+			on a.id = b.uid
+		left join user_ability c 
+			on a.id = c.uid
+		left join user_info d 
+			on a.id = d.uid
+		left join user_edu e 
+			on a.id = e.uid
+		where 1=1
+		<!-- and b.international_flag and b.audit_status = 5 and b.expert = 1 -->
+		order by 
+			a.create_time desc 
+		limit 0,6	 
+	 </select>
 </mapper>

+ 135 - 0
src/main/java/com/goafanti/common/model/CountryCode.java

@@ -0,0 +1,135 @@
+package com.goafanti.common.model;
+
+public class CountryCode {
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column country_code.country_name_en
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    private String countryNameEn;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column country_code.country_name_zh
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    private String countryNameZh;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column country_code.region_code
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    private String regionCode;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column country_code.tel_code
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    private Integer telCode;
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column country_code.country_name_en
+     *
+     * @return the value of country_code.country_name_en
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    public String getCountryNameEn() {
+        return countryNameEn;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column country_code.country_name_en
+     *
+     * @param countryNameEn the value for country_code.country_name_en
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    public void setCountryNameEn(String countryNameEn) {
+        this.countryNameEn = countryNameEn;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column country_code.country_name_zh
+     *
+     * @return the value of country_code.country_name_zh
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    public String getCountryNameZh() {
+        return countryNameZh;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column country_code.country_name_zh
+     *
+     * @param countryNameZh the value for country_code.country_name_zh
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    public void setCountryNameZh(String countryNameZh) {
+        this.countryNameZh = countryNameZh;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column country_code.region_code
+     *
+     * @return the value of country_code.region_code
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    public String getRegionCode() {
+        return regionCode;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column country_code.region_code
+     *
+     * @param regionCode the value for country_code.region_code
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    public void setRegionCode(String regionCode) {
+        this.regionCode = regionCode;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column country_code.tel_code
+     *
+     * @return the value of country_code.tel_code
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    public Integer getTelCode() {
+        return telCode;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column country_code.tel_code
+     *
+     * @param telCode the value for country_code.tel_code
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    public void setTelCode(Integer telCode) {
+        this.telCode = telCode;
+    }
+}

+ 572 - 0
src/main/java/com/goafanti/common/model/CountryCodeExample.java

@@ -0,0 +1,572 @@
+package com.goafanti.common.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class CountryCodeExample {
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database table country_code
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    protected String orderByClause;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database table country_code
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    protected boolean distinct;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database table country_code
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    protected List<Criteria> oredCriteria;
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table country_code
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    public CountryCodeExample() {
+        oredCriteria = new ArrayList<Criteria>();
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table country_code
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table country_code
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table country_code
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table country_code
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table country_code
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table country_code
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table country_code
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    public Criteria or() {
+        Criteria criteria = createCriteriaInternal();
+        oredCriteria.add(criteria);
+        return criteria;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table country_code
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    public Criteria createCriteria() {
+        Criteria criteria = createCriteriaInternal();
+        if (oredCriteria.size() == 0) {
+            oredCriteria.add(criteria);
+        }
+        return criteria;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table country_code
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    protected Criteria createCriteriaInternal() {
+        Criteria criteria = new Criteria();
+        return criteria;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table country_code
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    public void clear() {
+        oredCriteria.clear();
+        orderByClause = null;
+        distinct = false;
+    }
+
+    /**
+     * This class was generated by MyBatis Generator.
+     * This class corresponds to the database table country_code
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    protected abstract static class GeneratedCriteria {
+        protected List<Criterion> criteria;
+
+        protected GeneratedCriteria() {
+            super();
+            criteria = new ArrayList<Criterion>();
+        }
+
+        public boolean isValid() {
+            return criteria.size() > 0;
+        }
+
+        public List<Criterion> getAllCriteria() {
+            return criteria;
+        }
+
+        public List<Criterion> getCriteria() {
+            return criteria;
+        }
+
+        protected void addCriterion(String condition) {
+            if (condition == null) {
+                throw new RuntimeException("Value for condition cannot be null");
+            }
+            criteria.add(new Criterion(condition));
+        }
+
+        protected void addCriterion(String condition, Object value, String property) {
+            if (value == null) {
+                throw new RuntimeException("Value for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value));
+        }
+
+        protected void addCriterion(String condition, Object value1, Object value2, String property) {
+            if (value1 == null || value2 == null) {
+                throw new RuntimeException("Between values for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value1, value2));
+        }
+
+        public Criteria andCountryNameEnIsNull() {
+            addCriterion("country_name_en is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCountryNameEnIsNotNull() {
+            addCriterion("country_name_en is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCountryNameEnEqualTo(String value) {
+            addCriterion("country_name_en =", value, "countryNameEn");
+            return (Criteria) this;
+        }
+
+        public Criteria andCountryNameEnNotEqualTo(String value) {
+            addCriterion("country_name_en <>", value, "countryNameEn");
+            return (Criteria) this;
+        }
+
+        public Criteria andCountryNameEnGreaterThan(String value) {
+            addCriterion("country_name_en >", value, "countryNameEn");
+            return (Criteria) this;
+        }
+
+        public Criteria andCountryNameEnGreaterThanOrEqualTo(String value) {
+            addCriterion("country_name_en >=", value, "countryNameEn");
+            return (Criteria) this;
+        }
+
+        public Criteria andCountryNameEnLessThan(String value) {
+            addCriterion("country_name_en <", value, "countryNameEn");
+            return (Criteria) this;
+        }
+
+        public Criteria andCountryNameEnLessThanOrEqualTo(String value) {
+            addCriterion("country_name_en <=", value, "countryNameEn");
+            return (Criteria) this;
+        }
+
+        public Criteria andCountryNameEnLike(String value) {
+            addCriterion("country_name_en like", value, "countryNameEn");
+            return (Criteria) this;
+        }
+
+        public Criteria andCountryNameEnNotLike(String value) {
+            addCriterion("country_name_en not like", value, "countryNameEn");
+            return (Criteria) this;
+        }
+
+        public Criteria andCountryNameEnIn(List<String> values) {
+            addCriterion("country_name_en in", values, "countryNameEn");
+            return (Criteria) this;
+        }
+
+        public Criteria andCountryNameEnNotIn(List<String> values) {
+            addCriterion("country_name_en not in", values, "countryNameEn");
+            return (Criteria) this;
+        }
+
+        public Criteria andCountryNameEnBetween(String value1, String value2) {
+            addCriterion("country_name_en between", value1, value2, "countryNameEn");
+            return (Criteria) this;
+        }
+
+        public Criteria andCountryNameEnNotBetween(String value1, String value2) {
+            addCriterion("country_name_en not between", value1, value2, "countryNameEn");
+            return (Criteria) this;
+        }
+
+        public Criteria andCountryNameZhIsNull() {
+            addCriterion("country_name_zh is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCountryNameZhIsNotNull() {
+            addCriterion("country_name_zh is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCountryNameZhEqualTo(String value) {
+            addCriterion("country_name_zh =", value, "countryNameZh");
+            return (Criteria) this;
+        }
+
+        public Criteria andCountryNameZhNotEqualTo(String value) {
+            addCriterion("country_name_zh <>", value, "countryNameZh");
+            return (Criteria) this;
+        }
+
+        public Criteria andCountryNameZhGreaterThan(String value) {
+            addCriterion("country_name_zh >", value, "countryNameZh");
+            return (Criteria) this;
+        }
+
+        public Criteria andCountryNameZhGreaterThanOrEqualTo(String value) {
+            addCriterion("country_name_zh >=", value, "countryNameZh");
+            return (Criteria) this;
+        }
+
+        public Criteria andCountryNameZhLessThan(String value) {
+            addCriterion("country_name_zh <", value, "countryNameZh");
+            return (Criteria) this;
+        }
+
+        public Criteria andCountryNameZhLessThanOrEqualTo(String value) {
+            addCriterion("country_name_zh <=", value, "countryNameZh");
+            return (Criteria) this;
+        }
+
+        public Criteria andCountryNameZhLike(String value) {
+            addCriterion("country_name_zh like", value, "countryNameZh");
+            return (Criteria) this;
+        }
+
+        public Criteria andCountryNameZhNotLike(String value) {
+            addCriterion("country_name_zh not like", value, "countryNameZh");
+            return (Criteria) this;
+        }
+
+        public Criteria andCountryNameZhIn(List<String> values) {
+            addCriterion("country_name_zh in", values, "countryNameZh");
+            return (Criteria) this;
+        }
+
+        public Criteria andCountryNameZhNotIn(List<String> values) {
+            addCriterion("country_name_zh not in", values, "countryNameZh");
+            return (Criteria) this;
+        }
+
+        public Criteria andCountryNameZhBetween(String value1, String value2) {
+            addCriterion("country_name_zh between", value1, value2, "countryNameZh");
+            return (Criteria) this;
+        }
+
+        public Criteria andCountryNameZhNotBetween(String value1, String value2) {
+            addCriterion("country_name_zh not between", value1, value2, "countryNameZh");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegionCodeIsNull() {
+            addCriterion("region_code is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegionCodeIsNotNull() {
+            addCriterion("region_code is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegionCodeEqualTo(String value) {
+            addCriterion("region_code =", value, "regionCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegionCodeNotEqualTo(String value) {
+            addCriterion("region_code <>", value, "regionCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegionCodeGreaterThan(String value) {
+            addCriterion("region_code >", value, "regionCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegionCodeGreaterThanOrEqualTo(String value) {
+            addCriterion("region_code >=", value, "regionCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegionCodeLessThan(String value) {
+            addCriterion("region_code <", value, "regionCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegionCodeLessThanOrEqualTo(String value) {
+            addCriterion("region_code <=", value, "regionCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegionCodeLike(String value) {
+            addCriterion("region_code like", value, "regionCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegionCodeNotLike(String value) {
+            addCriterion("region_code not like", value, "regionCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegionCodeIn(List<String> values) {
+            addCriterion("region_code in", values, "regionCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegionCodeNotIn(List<String> values) {
+            addCriterion("region_code not in", values, "regionCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegionCodeBetween(String value1, String value2) {
+            addCriterion("region_code between", value1, value2, "regionCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegionCodeNotBetween(String value1, String value2) {
+            addCriterion("region_code not between", value1, value2, "regionCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andTelCodeIsNull() {
+            addCriterion("tel_code is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTelCodeIsNotNull() {
+            addCriterion("tel_code is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTelCodeEqualTo(Integer value) {
+            addCriterion("tel_code =", value, "telCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andTelCodeNotEqualTo(Integer value) {
+            addCriterion("tel_code <>", value, "telCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andTelCodeGreaterThan(Integer value) {
+            addCriterion("tel_code >", value, "telCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andTelCodeGreaterThanOrEqualTo(Integer value) {
+            addCriterion("tel_code >=", value, "telCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andTelCodeLessThan(Integer value) {
+            addCriterion("tel_code <", value, "telCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andTelCodeLessThanOrEqualTo(Integer value) {
+            addCriterion("tel_code <=", value, "telCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andTelCodeIn(List<Integer> values) {
+            addCriterion("tel_code in", values, "telCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andTelCodeNotIn(List<Integer> values) {
+            addCriterion("tel_code not in", values, "telCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andTelCodeBetween(Integer value1, Integer value2) {
+            addCriterion("tel_code between", value1, value2, "telCode");
+            return (Criteria) this;
+        }
+
+        public Criteria andTelCodeNotBetween(Integer value1, Integer value2) {
+            addCriterion("tel_code not between", value1, value2, "telCode");
+            return (Criteria) this;
+        }
+    }
+
+    /**
+     * This class was generated by MyBatis Generator.
+     * This class corresponds to the database table country_code
+     *
+     * @mbg.generated do_not_delete_during_merge Fri Jul 21 08:55:01 CST 2017
+     */
+    public static class Criteria extends GeneratedCriteria {
+
+        protected Criteria() {
+            super();
+        }
+    }
+
+    /**
+     * This class was generated by MyBatis Generator.
+     * This class corresponds to the database table country_code
+     *
+     * @mbg.generated Fri Jul 21 08:55:01 CST 2017
+     */
+    public static class Criterion {
+        private String condition;
+
+        private Object value;
+
+        private Object secondValue;
+
+        private boolean noValue;
+
+        private boolean singleValue;
+
+        private boolean betweenValue;
+
+        private boolean listValue;
+
+        private String typeHandler;
+
+        public String getCondition() {
+            return condition;
+        }
+
+        public Object getValue() {
+            return value;
+        }
+
+        public Object getSecondValue() {
+            return secondValue;
+        }
+
+        public boolean isNoValue() {
+            return noValue;
+        }
+
+        public boolean isSingleValue() {
+            return singleValue;
+        }
+
+        public boolean isBetweenValue() {
+            return betweenValue;
+        }
+
+        public boolean isListValue() {
+            return listValue;
+        }
+
+        public String getTypeHandler() {
+            return typeHandler;
+        }
+
+        protected Criterion(String condition) {
+            super();
+            this.condition = condition;
+            this.typeHandler = null;
+            this.noValue = true;
+        }
+
+        protected Criterion(String condition, Object value, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.typeHandler = typeHandler;
+            if (value instanceof List<?>) {
+                this.listValue = true;
+            } else {
+                this.singleValue = true;
+            }
+        }
+
+        protected Criterion(String condition, Object value) {
+            this(condition, value, null);
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.secondValue = secondValue;
+            this.typeHandler = typeHandler;
+            this.betweenValue = true;
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue) {
+            this(condition, value, secondValue, null);
+        }
+    }
+}

+ 1 - 0
src/main/java/com/goafanti/core/cache/serializer/FastJsonRedisSerializer.java

@@ -22,6 +22,7 @@ public class FastJsonRedisSerializer implements RedisSerializer<Object> {
 		pc.addAccept("com.goafanti.lecture.bo.BigShotLectureListBo");
 		pc.addAccept("com.goafanti.news.bo.NewsPortalList");
 		pc.addAccept("com.goafanti.common.model.Activity");
+		pc.addAccept("com.goafanti.portal.bo.InternationalListBo");
 	}
 
 	@Override

+ 123 - 0
src/main/java/com/goafanti/portal/bo/InternationalListBo.java

@@ -0,0 +1,123 @@
+package com.goafanti.portal.bo;
+
+public class InternationalListBo {
+	private String			id;
+	
+	private String			techName;
+
+	private String			ownerName;
+	
+	private Integer			ownerType;
+	
+	private String			technicalPictureUrl;
+	
+	private String 			countryNameZh;
+
+	private String 			abilityLabel;
+	
+	private String			personPortraitUrl;
+	
+	private String			education;			
+	
+	private String 			unitName;
+	
+	private String			logoUrl;
+	
+	private String			achievementCount;
+	
+	public String getId() {
+		return id;
+	}
+
+	public void setId(String id) {
+		this.id = id;
+	}
+
+	public String getTechName() {
+		return techName;
+	}
+
+	public void setTechName(String techName) {
+		this.techName = techName;
+	}
+
+	public String getOwnerName() {
+		return ownerName;
+	}
+
+	public void setOwnerName(String ownerName) {
+		this.ownerName = ownerName;
+	}
+
+	public Integer getOwnerType() {
+		return ownerType;
+	}
+
+	public void setOwnerType(Integer ownerType) {
+		this.ownerType = ownerType;
+	}
+
+	public String getTechnicalPictureUrl() {
+		return technicalPictureUrl;
+	}
+
+	public void setTechnicalPictureUrl(String technicalPictureUrl) {
+		this.technicalPictureUrl = technicalPictureUrl;
+	}
+
+	public String getCountryNameZh() {
+		return countryNameZh;
+	}
+
+	public void setCountryNameZh(String countryNameZh) {
+		this.countryNameZh = countryNameZh;
+	}
+
+	public String getAbilityLabel() {
+		return abilityLabel;
+	}
+
+	public void setAbilityLabel(String abilityLabel) {
+		this.abilityLabel = abilityLabel;
+	}
+
+	public String getPersonPortraitUrl() {
+		return personPortraitUrl;
+	}
+
+	public void setPersonPortraitUrl(String personPortraitUrl) {
+		this.personPortraitUrl = personPortraitUrl;
+	}
+
+	public String getEducation() {
+		return education;
+	}
+
+	public void setEducation(String education) {
+		this.education = education;
+	}
+
+	public String getUnitName() {
+		return unitName;
+	}
+
+	public void setUnitName(String unitName) {
+		this.unitName = unitName;
+	}
+
+	public String getLogoUrl() {
+		return logoUrl;
+	}
+
+	public void setLogoUrl(String logoUrl) {
+		this.logoUrl = logoUrl;
+	}
+
+	public String getAchievementCount() {
+		return achievementCount;
+	}
+
+	public void setAchievementCount(String achievementCount) {
+		this.achievementCount = achievementCount;
+	}
+}

+ 3 - 0
src/main/java/com/goafanti/user/service/OrganizationIdentityService.java

@@ -7,6 +7,7 @@ import com.goafanti.common.bo.Result;
 import com.goafanti.common.model.OrgHumanResource;
 import com.goafanti.common.model.OrganizationIdentity;
 import com.goafanti.core.mybatis.page.Pagination;
+import com.goafanti.portal.bo.InternationalListBo;
 import com.goafanti.portal.bo.OrgSubscriberListBo;
 import com.goafanti.user.bo.AuditorOrgIdentityDetailBo;
 import com.goafanti.user.bo.OrgBasicInfoBo;
@@ -55,4 +56,6 @@ public interface OrganizationIdentityService {
 	
 	OrganizationIndentityUserBo selectOrgIdentityUserBoByUserId(String userId);
 
+	/** 查询国际伙伴 **/
+	List<InternationalListBo> selectInternationalOrganization(Integer internationalOrgCacheKey);
 }

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

@@ -1,8 +1,11 @@
 package com.goafanti.user.service;
 
+import java.util.List;
+
 import com.goafanti.common.bo.Result;
 import com.goafanti.common.model.UserIdentity;
 import com.goafanti.core.mybatis.page.Pagination;
+import com.goafanti.portal.bo.InternationalListBo;
 import com.goafanti.portal.bo.UserSubscriberListBo;
 import com.goafanti.user.bo.AuditorUserIdentityDetailBo;
 import com.goafanti.user.bo.UserIdentityBo;
@@ -35,4 +38,6 @@ public interface UserIdentityService {
 
 	UserIdentityDetailAdminBo selectUserIdentityByUserIdAdmin(String uid);
 
+	/** 查询国际专家 **/
+	List<InternationalListBo> selectInternationalUser(Integer internationalUserCacheKey);
 }

+ 17 - 1
src/main/java/com/goafanti/user/service/impl/OrganizationIdentityServiceImpl.java

@@ -9,8 +9,12 @@ import java.util.TreeMap;
 import java.util.UUID;
 
 import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+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;
@@ -32,9 +36,11 @@ import com.goafanti.common.model.OrgHumanResource;
 import com.goafanti.common.model.OrgRatepay;
 import com.goafanti.common.model.OrganizationIdentity;
 import com.goafanti.common.model.User;
+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.OrgSubscriberListBo;
 import com.goafanti.user.bo.AuditorOrgIdentityDetailBo;
 import com.goafanti.user.bo.OrgBasicInfoBo;
@@ -61,6 +67,7 @@ public class OrganizationIdentityServiceImpl extends BaseMybatisDao<Organization
 	@Autowired
 	private UserRoleMapper				userRoleMapper;
 
+	private static final Logger logger = LoggerFactory.getLogger(OrganizationIdentityServiceImpl.class);
 	@Override
 	public OrganizationIdentity insert(OrganizationIdentity organizationIdentity) {
 		organizationIdentityMapper.insert(organizationIdentity);
@@ -388,6 +395,15 @@ public class OrganizationIdentityServiceImpl extends BaseMybatisDao<Organization
 			organizationIdentityMapper.updateByPrimaryKeySelective(oi);
 		}
 	}
-	
 
+	@Override
+	@Cacheable(value = "internationalOrgList", key = "'internationalOrgList:'+#internationalOrgCacheKey")
+	public List<InternationalListBo> selectInternationalOrganization(Integer internationalOrgCacheKey) {
+		return organizationIdentityMapper.selectInternationalOrganization();
+	}
+	
+	@CacheEvict(value = "internationalOrgList" ,allEntries = true)
+	public void cleanInternationalOrg(){
+		LoggerUtils.debug(logger, "清除国际伙伴列表");
+	} 
 }

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

@@ -8,8 +8,12 @@ import java.util.Map;
 import java.util.UUID;
 
 import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+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;
@@ -26,9 +30,11 @@ import com.goafanti.common.enums.UserLevel;
 import com.goafanti.common.model.Notice;
 import com.goafanti.common.model.User;
 import com.goafanti.common.model.UserIdentity;
+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;
@@ -46,6 +52,8 @@ public class UserIdentityServiceImpl extends BaseMybatisDao<UserIdentityMapper>
 	@Autowired
 	private NoticeMapper		noticeMapper;
 
+	private static final Logger logger = LoggerFactory.getLogger(UserIdentityServiceImpl.class);
+			
 	@Override
 	public UserIdentity selectUserIdentityByUserId(String uid) {
 		return userIdentityMapper.selectUserIdentityByUserId(uid);
@@ -273,4 +281,15 @@ public class UserIdentityServiceImpl extends BaseMybatisDao<UserIdentityMapper>
 		return bo;
 	}
 
+	@Override
+	@Cacheable(value = "internationalUserList", key = "'internationalUserList:'+#internationalUserCacheKey")
+	public List<InternationalListBo> selectInternationalUser(Integer internationalUserCacheKey) {
+		return userIdentityMapper.selectInternationalUser();
+	}
+	
+	@CacheEvict(value = "internationalUserList", allEntries = true)
+	public void cleanInternationalUser(){
+		LoggerUtils.debug(logger, "清除国际专家列表");
+	}
+
 }

+ 77 - 0
src/main/resources/props/config_local.properties

@@ -1,3 +1,80 @@
+#Driver
+jdbc.driverClassName=com.mysql.jdbc.Driver
+#\u6570\u636e\u5e93\u94fe\u63a5\uff0c
+jdbc.url=jdbc:mysql://127.0.0.1:3306/aft?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
+#\u5e10\u53f7
+jdbc.username=root
+#\u5bc6\u7801
+jdbc.password=123456
+#\u68c0\u6d4b\u6570\u636e\u5e93\u94fe\u63a5\u662f\u5426\u6709\u6548\uff0c\u5fc5\u987b\u914d\u7f6e
+jdbc.validationQuery=SELECT 'x'
+#\u521d\u59cb\u8fde\u63a5\u6570
+jdbc.initialSize=3
+#\u6700\u5927\u8fde\u63a5\u6c60\u6570\u91cf
+jdbc.maxActive=20
+#\u53bb\u6389\uff0c\u914d\u7f6e\u6587\u4ef6\u5bf9\u5e94\u53bb\u6389
+#jdbc.maxIdle=20
+#\u914d\u7f6e0,\u5f53\u7ebf\u7a0b\u6c60\u6570\u91cf\u4e0d\u8db3\uff0c\u81ea\u52a8\u8865\u5145\u3002
+jdbc.minIdle=0
+#\u83b7\u53d6\u94fe\u63a5\u8d85\u65f6\u65f6\u95f4\u4e3a1\u5206\u949f\uff0c\u5355\u4f4d\u4e3a\u6beb\u79d2\u3002
+jdbc.maxWait=120000
+#\u83b7\u53d6\u94fe\u63a5\u7684\u65f6\u5019\uff0c\u4e0d\u6821\u9a8c\u662f\u5426\u53ef\u7528\uff0c\u5f00\u542f\u4f1a\u6709\u635f\u6027\u80fd\u3002
+jdbc.testOnBorrow=false
+#\u5f52\u8fd8\u94fe\u63a5\u5230\u8fde\u63a5\u6c60\u7684\u65f6\u5019\u6821\u9a8c\u94fe\u63a5\u662f\u5426\u53ef\u7528\u3002
+jdbc.testOnReturn=false
+#\u6b64\u9879\u914d\u7f6e\u4e3atrue\u5373\u53ef\uff0c\u4e0d\u5f71\u54cd\u6027\u80fd\uff0c\u5e76\u4e14\u4fdd\u8bc1\u5b89\u5168\u6027\u3002\u610f\u4e49\u4e3a\uff1a\u7533\u8bf7\u8fde\u63a5\u7684\u65f6\u5019\u68c0\u6d4b\uff0c\u5982\u679c\u7a7a\u95f2\u65f6\u95f4\u5927\u4e8etimeBetweenEvictionRunsMillis\uff0c\u6267\u884cvalidationQuery\u68c0\u6d4b\u8fde\u63a5\u662f\u5426\u6709\u6548\u3002
+jdbc.testWhileIdle=true
+#1.Destroy\u7ebf\u7a0b\u4f1a\u68c0\u6d4b\u8fde\u63a5\u7684\u95f4\u9694\u65f6\u95f4
+#2.testWhileIdle\u7684\u5224\u65ad\u4f9d\u636e
+jdbc.timeBetweenEvictionRunsMillis=60000
+#\u4e00\u4e2a\u94fe\u63a5\u751f\u5b58\u7684\u65f6\u95f4\uff08\u4e4b\u524d\u7684\u503c\uff1a25200000\uff0c\u8fd9\u4e2a\u65f6\u95f4\u6709\u70b9BT\uff0c\u8fd9\u4e2a\u7ed3\u679c\u4e0d\u77e5\u9053\u662f\u600e\u4e48\u6765\u7684\uff0c\u6362\u7b97\u540e\u7684\u7ed3\u679c\u662f\uff1a25200000/1000/60/60 = 7\u4e2a\u5c0f\u65f6\uff09
+jdbc.minEvictableIdleTimeMillis=300000
+#\u94fe\u63a5\u4f7f\u7528\u8d85\u8fc7\u65f6\u95f4\u9650\u5236\u662f\u5426\u56de\u6536
+jdbc.removeAbandoned=true
+#\u8d85\u8fc7\u65f6\u95f4\u9650\u5236\u65f6\u95f4\uff08\u5355\u4f4d\u79d2\uff09\uff0c\u76ee\u524d\u4e3a5\u5206\u949f\uff0c\u5982\u679c\u6709\u4e1a\u52a1\u5904\u7406\u65f6\u95f4\u8d85\u8fc75\u5206\u949f\uff0c\u53ef\u4ee5\u9002\u5f53\u8c03\u6574\u3002
+jdbc.removeAbandonedTimeout=300
+#\u94fe\u63a5\u56de\u6536\u7684\u65f6\u5019\u63a7\u5236\u53f0\u6253\u5370\u4fe1\u606f\uff0c\u6d4b\u8bd5\u73af\u5883\u53ef\u4ee5\u52a0\u4e0atrue\uff0c\u7ebf\u4e0a\u73af\u5883false\u3002\u4f1a\u5f71\u54cd\u6027\u80fd\u3002
+jdbc.logAbandoned=true
+#\u7edf\u8ba1\u76d1\u63a7
+jdbc.filters=stat
+
+logging.level.com.goafanti=DEBUG
+
+jedis.host=127.0.0.1
+jedis.port=6379
+jedis.timeout=5000
+jedis.password=aft123456
+
+pwd.hash_algorithm_name=md5
+pwd.hash_iterations=2
+
+session.timeout=12000000
+session.validate.timespan=18000000
+
+app.name=AFT
+
+static.host=//afts.hnzhiming.com/1.0.37
+
+upload.path=/Users/xiaolong/Sites/upload
+upload.private.path=/Users/xiaolong/Sites/doc
+
+accessKey=LTAIqTgQLLwz252Z
+accessSecret=ICGuiUnqzaar7urw4zecVcJrJ1MHg9
+
+avatar.host=//afts.hnzhiming.com
+
+aesSecretKey=aft1234567890123
+
+template.cacheable=false
+
+mobileCodeTemplate=SMS_37845022
+
+portal.host=//afts.hnzhiming.com/portal/1.0.5
+
+patentTemplate=SMS_72005286
+
+avatar.upload.host=//afts.hnzhiming.com/upload
+=======
 #Driver
 jdbc.driverClassName=com.mysql.jdbc.Driver
 #\u6570\u636e\u5e93\u94fe\u63a5\uff0c

+ 71 - 9
src/main/webapp/WEB-INF/views/portal/index.html

@@ -55,20 +55,82 @@
 		<div class="container">
 			<div class="top_nav">
 				<ul>
-					<li><a th:href="${basePath + '/portal/technologyTrading/index.html'}">技术交易</a></li>
-					<li><a th:href="${basePath + '/portal/scienceTechnology/bigShot.html'}">大咖说</a></li>
-					<li><a th:href="${basePath + '/portal/activity/activityIndex.html'}">活动圈</a></li>
-					<li><a th:href="${basePath + '/portal/websiteBuild/websiteBuildIndex.html'}">建设兵团</a></li>
+					<li>
+					<a th:href="${basePath + '/portal/technologyTrading/index.html'}">技术交易</a>
+					<ol class="next_nav">
+                    		<li><a href="${basePath + '/portal/search/demand.html'}">需求谷</a></li>
+                    		<li><a href="${basePath + '/portal/search/achievement.html'}">技术海</a></li>
+                    		<li><a href="${basePath + '/portal/search/subscriberOrg.html'}">伙伴</a></li>
+                    		<li><a href="${basePath + '/portal/search/subscriberUser.html'}">行家</a></li>
+                    </ol>
+					</li>
+					<li>
+						<a th:href="${basePath + '/portal/scienceTechnology/bigShot.html'}">大咖说</a>
+						<ol class="next_nav">
+	                    		<li><a href="${basePath + '/portal/scienceTechnology/star.html'}">科技明星</a></li>
+                    			<li><a href="${basePath + '/portal/scienceTechnology/lecture.html'}">科技讲堂</a></li>                   		
+                    	</ol>
+					</li>
+					<li>
+					<a th:href="${basePath + '/portal/activity/activityIndex.html'}">活动圈</a>
+					<ol class="next_nav">
+                    		<li><a href="${basePath + '/portal/activity/activityList.html?type=0'}">在线直播</a></li>
+                    		<li><a href="${basePath + '/portal/activity/activityList.html?type=1'}">线下现场</a></li>                   		
+                    	</ol>
+					</li>
+					<li>
+					<a th:href="${basePath + '/portal/websiteBuild/websiteBuildIndex.html'}">建设兵团</a>
+						<ol class="next_nav">
+                    		<li><a href="${basePath + '/portal/websiteBuild/websiteBuildIndex.html#customized'}">平台定制</a></li>
+                    		<li><a href="${basePath + '/portal/websiteBuild/websiteBuildIndex.html#operates'}">平台运营</a></li>
+                    		<li><a href="${basePath + '/portal/websiteBuild/websiteBuildIndex.html#event_planning'}">活动筹划</a></li>                  		
+                    	</ol>
+					</li>
 				</ul>
 			</div>
 			<div style="clear: both"></div>
 			<div class="bottom_nav">
 				<ul>
-					<li><a th:href="${basePath + '/portal/international/internationalIndex.html'}">国际业务</a></li>
-					<li><a th:href="${basePath + '/portal/service/serviceIndex.html'}">服务汇</a></li>
-					<li><a th:href="${basePath + '/portal/news/newsIndex.html'}">策源地</a></li>
-					<li><a th:href="${basePath + '/portal/entrepreneurship/entrepreneurshipIndex.html'}">创业圈</a></li>
-					<li><a th:href="${basePath + '/portal/financial/financialIndex.html'}">金融圈</a></li>
+					<li>
+						<a th:href="${basePath + '/portal/international/internationalIndex.html'}">国际业务</a>
+						<ol class="next_nav">
+                    		<li><a href="${basePath + '/portal/international/internationalIndex.html#internationalTechnology'}">国际技术</a></li>
+                    		<li><a href="${basePath + '/portal/international/internationalIndex.html#internationalPartner'}">国际伙伴</a></li>
+                    		<li><a href="${basePath + '/portal/international/internationalIndex.html#internationalExpert'}">国际专家</a></li>                   		
+                    	</ol>
+					</li>
+					<li>
+						<a th:href="${basePath + '/portal/service/serviceIndex.html'}">服务汇</a>
+						<ol class="next_nav">
+                    		<li><a href="${basePath + '/portal/highTech/authentication.html'}">高企认定</a></li>
+                    		<li><a href="${basePath + '/portal/ipr/service.html'}">知识产权</a></li>
+                    		<li><a href="${basePath + '/portal/evaluation/index.html'}">技术评估</a></li>
+                    		
+                    	</ol>
+					</li>
+					<li>
+						<a th:href="${basePath + '/portal/news/newsIndex.html'}">策源地</a>
+						<ol class="next_nav">
+                    		<li><a href="${basePath + '/portal/news/newsDetails.html?type=1'}">新闻快讯</a></li>
+                    		<li><a href="${basePath + '/portal/news/newsDetails.html?type=3'}">技淘新闻</a></li>
+                    		<li><a href="${basePath + '/portal/news/newsDetails.html?type=4'}">科技政策</a></li>
+                    		<li><a href="${basePath + '/portal/news/newsDetails.html?type=2'}">政府往来</a></li>
+                    	</ol>
+					</li>
+					<li>
+						<a th:href="${basePath + '/portal/entrepreneurship/entrepreneurshipIndex.html'}">创业圈</a>
+						<ol class="next_nav">
+                    		<li><a href="${basePath + '/portal/entrepreneurship/entrepreneurshipIndex.html'}">项目圈</a></li>
+                    		<li><a href="${basePath + '/portal/entrepreneurship/entrepreneurshipIndex.html#chuangke'}">创客圈</a></li>
+                    		<li><a href="${basePath + '/portal/entrepreneurship/entrepreneurshipIndex.html#jieyi'}">结义园</a></li>                   		
+                    	</ol>
+					</li>
+					<li>
+						<a th:href="${basePath + '/portal/financial/financialIndex.html'}">金融圈</a>
+						<ol class="next_nav">
+                    		<li><a href="${basePath + '/portal/financial/financialIndex.html'}">金融街</a></li>                   		
+                    	</ol>
+					</li>
 				</ul>
 			</div>
 		</div>

File diff suppressed because it is too large
+ 32 - 203
src/main/webapp/WEB-INF/views/portal/international/internationalIndex.html