Browse Source

Accept Merge Request #216 v1.0.38 : (master -> test)

Merge Request: v1.0.38
Created By: @Antiloveg
Accepted By: @Antiloveg
URL: https://coding.net/t/aft/p/AFT/git/merge/216
Antiloveg 8 years ago
parent
commit
8ba28d6723
64 changed files with 2796 additions and 454 deletions
  1. 13 0
      generatorConfig.xml
  2. 11 0
      schema/20170725-lectureUser.sql
  3. 105 0
      src/main/java/com/goafanti/LectureUser/bo/LectureUserListBo.java
  4. 40 0
      src/main/java/com/goafanti/LectureUser/controller/UserLectureUserApiController.java
  5. 25 0
      src/main/java/com/goafanti/LectureUser/service/LectureUserService.java
  6. 111 0
      src/main/java/com/goafanti/LectureUser/service/impl/LectureUserServiceImpl.java
  7. 4 2
      src/main/java/com/goafanti/achievement/service/AchievementService.java
  8. 19 0
      src/main/java/com/goafanti/achievement/service/impl/AchievementServiceImpl.java
  9. 1 1
      src/main/java/com/goafanti/activityUser/controller/UserActivityUserApiController.java
  10. 5 0
      src/main/java/com/goafanti/activityUser/service/ActivityUserService.java
  11. 11 0
      src/main/java/com/goafanti/activityUser/service/impl/ActivityUserServiceImpl.java
  12. 77 0
      src/main/java/com/goafanti/admin/controller/AdminLectureUserApiController.java
  13. 3 0
      src/main/java/com/goafanti/admin/controller/AdminNewsApiController.java
  14. 6 0
      src/main/java/com/goafanti/common/constant/AFTConstants.java
  15. 36 13
      src/main/java/com/goafanti/common/controller/WebpageController.java
  16. 4 0
      src/main/java/com/goafanti/common/dao/AchievementMapper.java
  17. 4 0
      src/main/java/com/goafanti/common/dao/ActivityUserMapper.java
  18. 96 0
      src/main/java/com/goafanti/common/dao/CountryCodeMapper.java
  19. 24 0
      src/main/java/com/goafanti/common/dao/LectureUserMapper.java
  20. 2 0
      src/main/java/com/goafanti/common/dao/NewsMapper.java
  21. 4 1
      src/main/java/com/goafanti/common/dao/OrganizationIdentityMapper.java
  22. 4 0
      src/main/java/com/goafanti/common/dao/UserIdentityMapper.java
  23. 1 0
      src/main/java/com/goafanti/common/enums/NewsCacheKey.java
  24. 48 4
      src/main/java/com/goafanti/common/mapper/AchievementMapper.xml
  25. 10 2
      src/main/java/com/goafanti/common/mapper/ActivityUserMapper.xml
  26. 271 0
      src/main/java/com/goafanti/common/mapper/CountryCodeMapper.xml
  27. 21 7
      src/main/java/com/goafanti/common/mapper/LectureMapper.xml
  28. 206 0
      src/main/java/com/goafanti/common/mapper/LectureUserMapper.xml
  29. 14 2
      src/main/java/com/goafanti/common/mapper/NewsMapperExt.xml
  30. 23 1
      src/main/java/com/goafanti/common/mapper/OrganizationIdentityMapper.xml
  31. 23 2
      src/main/java/com/goafanti/common/mapper/UserIdentityMapper.xml
  32. 9 0
      src/main/java/com/goafanti/common/model/ActivityUserKey.java
  33. 135 0
      src/main/java/com/goafanti/common/model/CountryCode.java
  34. 572 0
      src/main/java/com/goafanti/common/model/CountryCodeExample.java
  35. 18 8
      src/main/java/com/goafanti/common/model/Lecture.java
  36. 31 0
      src/main/java/com/goafanti/common/model/LectureUser.java
  37. 38 0
      src/main/java/com/goafanti/common/model/LectureUserKey.java
  38. 1 0
      src/main/java/com/goafanti/core/cache/serializer/FastJsonRedisSerializer.java
  39. 11 0
      src/main/java/com/goafanti/lecture/bo/InputLecture.java
  40. 15 2
      src/main/java/com/goafanti/news/bo/NewsSummary.java
  41. 14 0
      src/main/java/com/goafanti/news/service/NewsService.java
  42. 123 0
      src/main/java/com/goafanti/portal/bo/InternationalListBo.java
  43. 1 1
      src/main/java/com/goafanti/portal/controller/PortalActivityController.java
  44. 1 1
      src/main/java/com/goafanti/portal/controller/PortalLectureController.java
  45. 3 0
      src/main/java/com/goafanti/user/service/OrganizationIdentityService.java
  46. 5 0
      src/main/java/com/goafanti/user/service/UserIdentityService.java
  47. 17 1
      src/main/java/com/goafanti/user/service/impl/OrganizationIdentityServiceImpl.java
  48. 19 0
      src/main/java/com/goafanti/user/service/impl/UserIdentityServiceImpl.java
  49. 2 2
      src/main/resources/props/config_dev.properties
  50. 79 2
      src/main/resources/props/config_local.properties
  51. 2 2
      src/main/resources/props/config_test.properties
  52. 1 1
      src/main/webapp/WEB-INF/views/common.html
  53. 0 1
      src/main/webapp/WEB-INF/views/portal/activity/details.html
  54. 4 2
      src/main/webapp/WEB-INF/views/portal/detail/achievementDetail.html
  55. 1 1
      src/main/webapp/WEB-INF/views/portal/entrepreneurship/entrepreneurshipIndex.html
  56. 1 1
      src/main/webapp/WEB-INF/views/portal/evaluation/index.html
  57. 7 5
      src/main/webapp/WEB-INF/views/portal/highTech/authentication.html
  58. 165 145
      src/main/webapp/WEB-INF/views/portal/index.html
  59. 1 1
      src/main/webapp/WEB-INF/views/portal/ipr/apply.html
  60. 255 212
      src/main/webapp/WEB-INF/views/portal/ipr/iso.html
  61. 39 28
      src/main/webapp/WEB-INF/views/portal/ipr/patentOperation.html
  62. 1 1
      src/main/webapp/WEB-INF/views/portal/scienceTechnology/bigShot.html
  63. 2 1
      src/main/webapp/WEB-INF/views/portal/scienceTechnology/lecture.html
  64. 1 1
      src/main/webapp/WEB-INF/views/portal/websiteBuild/websiteBuildIndex.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>

+ 11 - 0
schema/20170725-lectureUser.sql

@@ -0,0 +1,11 @@
+CREATE TABLE `lecture_user` (
+  `lid` BIGINT NOT NULL COMMENT '讲堂ID',
+  `uid` VARCHAR(36) NOT NULL COMMENT '报名人ID',
+  `create_time` DATETIME NULL COMMENT '创建时间(首次咨询时间)',
+  `last_update_time` DATETIME NULL COMMENT '最近一次咨询时间',
+  PRIMARY KEY (`lid`, `uid`))
+ENGINE = InnoDB DEFAULT CHARSET=utf8mb4
+COMMENT = '科技讲堂报名';
+
+alter table `lecture` 
+add column `lecturer` varchar(45) NULL comment '讲师';

+ 105 - 0
src/main/java/com/goafanti/LectureUser/bo/LectureUserListBo.java

@@ -0,0 +1,105 @@
+package com.goafanti.LectureUser.bo;
+
+import java.util.Date;
+
+import org.apache.commons.lang3.time.DateFormatUtils;
+
+import com.goafanti.common.constant.AFTConstants;
+import com.goafanti.common.model.LectureUser;
+
+public class LectureUserListBo extends LectureUser {
+	private String	lectureName;
+
+	private Integer	number;
+
+	private String	mobile;
+
+	private String	username;
+
+	private String	unitName;
+
+	private Date	lectureTime;
+
+	private Date	endTime;
+
+	public String getLectureName() {
+		return lectureName;
+	}
+
+	public void setLectureName(String lectureName) {
+		this.lectureName = lectureName;
+	}
+
+	public Integer getNumber() {
+		return number;
+	}
+
+	public void setNumber(Integer number) {
+		this.number = number;
+	}
+
+	public String getMobile() {
+		return mobile;
+	}
+
+	public void setMobile(String mobile) {
+		this.mobile = mobile;
+	}
+
+	public String getUsername() {
+		return username;
+	}
+
+	public void setUsername(String username) {
+		this.username = username;
+	}
+
+	public String getUnitName() {
+		return unitName;
+	}
+
+	public void setUnitName(String unitName) {
+		this.unitName = unitName;
+	}
+
+	public Date getLectureTime() {
+		return lectureTime;
+	}
+
+	public void setLectureTime(Date lectureTime) {
+		this.lectureTime = lectureTime;
+	}
+
+	public Date getEndTime() {
+		return endTime;
+	}
+
+	public void setEndTime(Date endTime) {
+		this.endTime = endTime;
+	}
+
+	public String getLectureTimeFormattedDate() {
+		if (this.lectureTime == null) {
+			return null;
+		} else {
+			return DateFormatUtils.format(this.lectureTime, AFTConstants.YYYYMMDDHHMMSS);
+		}
+	}
+
+	public void setLectureTimeFormattedDate(String lectureTimeFormattedDate) {
+
+	}
+
+	public String getEndTimeFormattedDate() {
+		if (this.endTime == null) {
+			return null;
+		} else {
+			return DateFormatUtils.format(this.endTime, AFTConstants.YYYYMMDDHHMMSS);
+		}
+	}
+
+	public void setEndTimeFormattedDate(String endTimeFormattedDate) {
+
+	}
+
+}

+ 40 - 0
src/main/java/com/goafanti/LectureUser/controller/UserLectureUserApiController.java

@@ -0,0 +1,40 @@
+package com.goafanti.LectureUser.controller;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.goafanti.LectureUser.service.LectureUserService;
+import com.goafanti.common.bo.Result;
+import com.goafanti.common.constant.ErrorConstants;
+import com.goafanti.common.controller.BaseApiController;
+import com.goafanti.common.model.LectureUser;
+import com.goafanti.common.model.LectureUserKey;
+import com.goafanti.core.shiro.token.TokenManager;
+@RestController
+@RequestMapping(value = "/api/user/lectureUser")
+public class UserLectureUserApiController extends BaseApiController{
+	@Resource
+	private LectureUserService lectureUserService;
+	
+	/**
+	 * 报名
+	 */
+	@RequestMapping(value = "/signUp", method = RequestMethod.POST)
+	public Result signUp(Long lid){
+		Result res = new Result();
+		if (null == lid) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "科技讲堂ID"));
+			return res;
+		}
+		LectureUser au = lectureUserService.selectByPrimaryKey(new LectureUserKey(lid, TokenManager.getUserId()));
+		if (null == au){
+			lectureUserService.save(lid);
+		} else {
+			lectureUserService.update(au);
+		}
+		return res;
+	}
+}

+ 25 - 0
src/main/java/com/goafanti/LectureUser/service/LectureUserService.java

@@ -0,0 +1,25 @@
+package com.goafanti.LectureUser.service;
+
+import java.util.List;
+
+import com.goafanti.LectureUser.bo.LectureUserListBo;
+import com.goafanti.common.model.LectureUser;
+import com.goafanti.common.model.LectureUserKey;
+import com.goafanti.core.mybatis.page.Pagination;
+
+public interface LectureUserService {
+	void save(Long lid);
+
+	int update(LectureUser au);
+
+	int batchDeleteByPrimaryKey(List<String> asList);
+
+	LectureUser selectByPrimaryKey(LectureUserKey lectureUserKey);
+
+	Pagination<LectureUserListBo> listLectureUser(String lectureName, String mobile, String username, Integer number,
+			Integer pSize, Integer pNo);
+
+	Pagination<LectureUserListBo> listLectureOrg(String lectureName, String mobile, String unitName, Integer number,
+			Integer pSize, Integer pNo);
+
+}

+ 111 - 0
src/main/java/com/goafanti/LectureUser/service/impl/LectureUserServiceImpl.java

@@ -0,0 +1,111 @@
+package com.goafanti.LectureUser.service.impl;
+
+import java.util.Calendar;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.goafanti.LectureUser.bo.LectureUserListBo;
+import com.goafanti.LectureUser.service.LectureUserService;
+import com.goafanti.common.dao.LectureUserMapper;
+import com.goafanti.common.model.LectureUser;
+import com.goafanti.common.model.LectureUserKey;
+import com.goafanti.common.utils.StringUtils;
+import com.goafanti.core.mybatis.BaseMybatisDao;
+import com.goafanti.core.mybatis.page.Pagination;
+import com.goafanti.core.shiro.token.TokenManager;
+
+@Service
+public class LectureUserServiceImpl extends BaseMybatisDao<LectureUserMapper> implements LectureUserService {
+	@Autowired
+	private LectureUserMapper lectureUserMapper;
+
+	@Override
+	public void save(Long lid) {
+		LectureUser lu = new LectureUser();
+		lu.setLid(lid);
+		lu.setUid(TokenManager.getUserId());
+		Calendar now = Calendar.getInstance();
+		now.set(Calendar.MILLISECOND, 0);
+		lu.setCreateTime(now.getTime());
+		lu.setLastUpdateTime(lu.getCreateTime());
+		lectureUserMapper.insert(lu);
+	}
+
+	@Override
+	public int update(LectureUser lu) {
+		Calendar now = Calendar.getInstance();
+		now.set(Calendar.MILLISECOND, 0);
+		lu.setLastUpdateTime(now.getTime());
+		return lectureUserMapper.updateByPrimaryKeySelective(lu);
+	}
+
+	@Override
+	public int batchDeleteByPrimaryKey(List<String> id) {
+		return lectureUserMapper.batchDeleteByPrimaryKey(id);
+	}
+
+	@Override
+	public LectureUser selectByPrimaryKey(LectureUserKey key) {
+		return lectureUserMapper.selectByPrimaryKey(key);
+	}
+
+	@SuppressWarnings("unchecked")
+	@Override
+	public Pagination<LectureUserListBo> listLectureUser(String lectureName, String mobile, String username,
+			Integer number, Integer pSize, Integer pNo) {
+		if (pNo == null || pNo < 0) {
+			pNo = 1;
+		}
+
+		if (pSize == null || pSize < 0 || pSize > 10) {
+			pSize = 10;
+		}
+		return (Pagination<LectureUserListBo>) findPage("findLectureUserListByPage", "findLectureUserCount",
+				disposeLectureList(lectureName, mobile, number, username, null), pNo, pSize);
+	}
+
+	@SuppressWarnings("unchecked")
+	@Override
+	public Pagination<LectureUserListBo> listLectureOrg(String lectureName, String mobile, String unitName,
+			Integer number, Integer pSize, Integer pNo) {
+		if (pNo == null || pNo < 0) {
+			pNo = 1;
+		}
+
+		if (pSize == null || pSize < 0 || pSize > 10) {
+			pSize = 10;
+		}
+		return (Pagination<LectureUserListBo>) findPage("findLectureOrgListByPage", "findLectureOrgCount",
+				disposeLectureList(lectureName, mobile, number, null, unitName), pNo, pSize);
+	}
+
+	private Map<String, Object> disposeLectureList(String lectureName, String mobile, Integer number, String username,
+			String unitName) {
+		Map<String, Object> params = new HashMap<>();
+
+		if (StringUtils.isNotBlank(mobile)) {
+			params.put("mobile", mobile);
+		}
+
+		if (null != number) {
+			params.put("number", number);
+		}
+
+		if (StringUtils.isNotBlank(lectureName)) {
+			params.put("lectureName", lectureName);
+		}
+
+		if (StringUtils.isNotBlank(username)) {
+			params.put("username", username);
+		}
+
+		if (StringUtils.isNotBlank(unitName)) {
+			params.put("unitName", unitName);
+		}
+		return params;
+	}
+}

+ 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, "清除国际化技术列表");
+	}
 }

+ 1 - 1
src/main/java/com/goafanti/activityUser/controller/UserActivityUserApiController.java

@@ -29,7 +29,7 @@ public class UserActivityUserApiController extends BaseApiController {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "活动ID"));
 			return res;
 		}
-		ActivityUser au = activityUserService.selectByUid(TokenManager.getUserId());
+		ActivityUser au = activityUserService.selectByAidAndUid(aid, TokenManager.getUserId());
 		if (null == au){
 			activityUserService.save(aid);
 		} else {

+ 5 - 0
src/main/java/com/goafanti/activityUser/service/ActivityUserService.java

@@ -4,6 +4,7 @@ import java.util.List;
 
 import com.goafanti.activityUser.bo.ActivityUserListBo;
 import com.goafanti.common.model.ActivityUser;
+import com.goafanti.common.model.ActivityUserKey;
 import com.goafanti.core.mybatis.page.Pagination;
 
 public interface ActivityUserService {
@@ -22,4 +23,8 @@ public interface ActivityUserService {
 
 	int batchDeleteByPrimaryKey(List<String> asList);
 
+	ActivityUser selectByPrimaryKey(ActivityUserKey key);
+
+	ActivityUser selectByAidAndUid(Long aid, String userId);
+
 }

+ 11 - 0
src/main/java/com/goafanti/activityUser/service/impl/ActivityUserServiceImpl.java

@@ -12,6 +12,7 @@ import com.goafanti.activityUser.bo.ActivityUserListBo;
 import com.goafanti.activityUser.service.ActivityUserService;
 import com.goafanti.common.dao.ActivityUserMapper;
 import com.goafanti.common.model.ActivityUser;
+import com.goafanti.common.model.ActivityUserKey;
 import com.goafanti.common.utils.StringUtils;
 import com.goafanti.core.mybatis.BaseMybatisDao;
 import com.goafanti.core.mybatis.page.Pagination;
@@ -111,4 +112,14 @@ public class ActivityUserServiceImpl extends BaseMybatisDao<ActivityUserMapper>
 		return activityUserMapper.batchDeleteByPrimaryKey(id);
 	}
 
+	@Override
+	public ActivityUser selectByPrimaryKey(ActivityUserKey key) {
+		return activityUserMapper.selectByPrimaryKey(key);
+	}
+
+	@Override
+	public ActivityUser selectByAidAndUid(Long aid, String uid) {
+		return activityUserMapper.selectByAidAndUid(aid, uid);
+	}
+
 }

+ 77 - 0
src/main/java/com/goafanti/admin/controller/AdminLectureUserApiController.java

@@ -0,0 +1,77 @@
+package com.goafanti.admin.controller;
+
+import java.util.Arrays;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.goafanti.LectureUser.service.LectureUserService;
+import com.goafanti.common.bo.Result;
+import com.goafanti.common.constant.ErrorConstants;
+import com.goafanti.common.controller.BaseApiController;
+import com.goafanti.common.utils.StringUtils;
+
+@RestController
+@RequestMapping(value = "/api/admin/lectureUser")
+public class AdminLectureUserApiController extends BaseApiController{
+	@Resource
+	private LectureUserService lectureUserService;
+
+	/**
+	 * 科技讲堂个人用户报名列表
+	 */
+	@RequestMapping(value = "/userList", method = RequestMethod.GET)
+	public Result activityUserList(String lectureName, String mobile, String username, Integer number, String pageSize,
+			String pageNo) {
+		Result res = new Result();
+		res.setData(lectureUserService.listLectureUser(lectureName, mobile, username, number, getPSize(pageSize),
+				getPNo(pageNo)));
+		return res;
+	}
+
+	/**
+	 * 科技讲堂组织用户报名列表
+	 */
+	@RequestMapping(value = "/orgList", method = RequestMethod.GET)
+	public Result activityOrgList(String lectureName, String mobile, String unitName, Integer number, String pageSize,
+			String pageNo) {
+		Result res = new Result();
+		res.setData(lectureUserService.listLectureOrg(lectureName, mobile, unitName, number, getPSize(pageSize),
+				getPNo(pageNo)));
+		return res;
+	}
+
+	/**
+	 * 批量删除活动报名记录
+	 */
+	@RequestMapping(value = "/delete", method = RequestMethod.POST)
+	public Result delete(@RequestParam(name = "ids[]", required = false) String[] ids) {
+		Result res = new Result();
+		if (ids == null || ids.length < 1) {
+			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", ""));
+		} else {
+			res.setData(lectureUserService.batchDeleteByPrimaryKey(Arrays.asList(ids)));
+		}
+		return res;
+	}
+
+	private Integer getPNo(String pageNo) {
+		Integer pNo = 1;
+		if (StringUtils.isNumeric(pageNo)) {
+			pNo = Integer.parseInt(pageNo);
+		}
+		return pNo;
+	}
+
+	private Integer getPSize(String pageSize) {
+		Integer pSize = 10;
+		if (StringUtils.isNumeric(pageSize)) {
+			pSize = Integer.parseInt(pageSize);
+		}
+		return pSize;
+	}
+}

+ 3 - 0
src/main/java/com/goafanti/admin/controller/AdminNewsApiController.java

@@ -168,11 +168,14 @@ public class AdminNewsApiController extends BaseApiController {
 			newsService.cleanList(); // 清除策源地页面新闻列表缓存
 		} else if (NewsCacheKey.NEWS_PORTAL_LIST_CACHE_KEY.getCode().equals(cacheKey)) {
 			newsService.cleanPortalList(); // 清除新闻列表页列表缓存
+		} else if (NewsCacheKey.NEWS_INDEX_LIST_CACHE_KEY.getCode().equals(cacheKey)){
+			newsService.cleanIndexNewsList(); //清除首页新闻缓存
 		} else {
 			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "缓存标记"));
 		}
 		return res;
 	}
+	
 
 	private Result disposeInputNews(Result res, InputNews news, String createTimeFormattedDate) {
 		if (StringUtils.isBlank(news.getTitle())) {

+ 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;
 }

+ 36 - 13
src/main/java/com/goafanti/common/controller/WebpageController.java

@@ -13,9 +13,15 @@ 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;
 
 @Controller
 public class WebpageController extends BaseController {
@@ -29,6 +35,30 @@ public class WebpageController extends BaseController {
 	@Resource
 	private BannersService		bannersService;
 
+	@Resource
+	private UserIdentityService 	userIdentityService;
+	
+	@Resource
+	private OrganizationIdentityService organizationIdentityService;
+	
+	@Resource
+	private NewsService			newsService;
+
+	/**
+	 * 首页
+	 */
+	@RequestMapping(value = "/portal/index", method = RequestMethod.GET)
+	public ModelAndView portalIndex(HttpServletRequest request, ModelAndView modelview) {
+		modelview.setViewName("/portal/index");
+		List<Banners> banners = bannersService.findPortalBanners(BannersType.SHOU_YE.getKey());
+		if (!banners.isEmpty()) {
+			modelview.addObject("banner", banners.get(0));
+		}
+		modelview.addObject("zfwl", newsService.findIndexNewsList(0, NewsType.ZFWL.getCode(), 2));
+		modelview.addObject("jtdt", newsService.findIndexNewsList(0, NewsType.JTDT.getCode(), 4));
+		return modelview;
+	}
+
 	@RequestMapping(value = "/user/account/index", method = RequestMethod.GET)
 	public ModelAndView index(HttpServletRequest request, ModelAndView modelview) {
 		modelview.setViewName("/user/account/index");
@@ -275,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;
 	}
 
@@ -299,19 +335,6 @@ public class WebpageController extends BaseController {
 	}
 
 	/**
-	 * 首页
-	 */
-	@RequestMapping(value = "/portal/index", method = RequestMethod.GET)
-	public ModelAndView portalIndex(HttpServletRequest request, ModelAndView modelview) {
-		modelview.setViewName("/portal/index");
-		List<Banners> banners = bannersService.findPortalBanners(BannersType.SHOU_YE.getKey());
-		if (!banners.isEmpty()) {
-			modelview.addObject("banner", banners.get(0));
-		}
-		return modelview;
-	}
-
-	/**
 	 * 金融圈
 	 */
 	@RequestMapping(value = "/portal/financial/financialIndex", method = RequestMethod.GET)

+ 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();
 }

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

@@ -2,6 +2,8 @@ package com.goafanti.common.dao;
 
 import java.util.List;
 
+import org.apache.ibatis.annotations.Param;
+
 import com.goafanti.common.model.ActivityUser;
 import com.goafanti.common.model.ActivityUserKey;
 
@@ -21,4 +23,6 @@ public interface ActivityUserMapper {
 	ActivityUser selectByUid(String uid);
 
 	int batchDeleteByPrimaryKey(List<String> id);
+
+	ActivityUser selectByAidAndUid(@Param("aid")Long aid, @Param("uid")String uid);
 }

+ 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);
+}

+ 24 - 0
src/main/java/com/goafanti/common/dao/LectureUserMapper.java

@@ -0,0 +1,24 @@
+package com.goafanti.common.dao;
+
+import java.util.List;
+
+import com.goafanti.common.model.LectureUser;
+import com.goafanti.common.model.LectureUserKey;
+
+public interface LectureUserMapper {
+    int deleteByPrimaryKey(LectureUserKey key);
+
+    int insert(LectureUser record);
+
+    int insertSelective(LectureUser record);
+
+    LectureUser selectByPrimaryKey(LectureUserKey key);
+
+    int updateByPrimaryKeySelective(LectureUser record);
+
+    int updateByPrimaryKey(LectureUser record);
+
+	LectureUser selectByUid(String uid);
+
+	int batchDeleteByPrimaryKey(List<String> id);
+}

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

@@ -28,4 +28,6 @@ public interface NewsMapper {
 
 	List<NewsPortalList> findPortalList(Map<String, Object> params);
 
+	List<NewsSummary> findIndexNewsList(Map<String, Object> params);
+
 }

+ 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();
 }

+ 1 - 0
src/main/java/com/goafanti/common/enums/NewsCacheKey.java

@@ -6,6 +6,7 @@ import java.util.Map;
 public enum NewsCacheKey {
 	NEWS_LIST_CACHE_KEY("news_list_cache_key", "策源地新闻列表缓存"),
 	NEWS_PORTAL_LIST_CACHE_KEY("news_portal_list_cache_key", "新闻列表页面缓存"),
+	NEWS_INDEX_LIST_CACHE_KEY("news_index_list_cache_key", "首页新闻列表缓存"),
 	
 	OTHER("", "未知参数");
 	

+ 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>

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

@@ -173,7 +173,7 @@
   		and a.name like CONCAT('%',#{activityName,jdbcType=VARCHAR},'%')
   	</if>
   	<if test="unitName != null">
-  		and ui.unit_name like CONCAT('%',#{unitName,jdbcType=VARCHAR},'%')
+  		and oi.unit_name like CONCAT('%',#{unitName,jdbcType=VARCHAR},'%')
   	</if>
   	order by au.last_update_time desc
   	<if test="page_sql!=null">
@@ -199,7 +199,7 @@
   		and a.name like CONCAT('%',#{activityName,jdbcType=VARCHAR},'%')
   	</if>
   	<if test="unitName != null">
-  		and ui.unit_name like CONCAT('%',#{unitName,jdbcType=VARCHAR},'%')
+  		and oi.unit_name like CONCAT('%',#{unitName,jdbcType=VARCHAR},'%')
   	</if>
   </select>
   
@@ -212,4 +212,12 @@
 			#{item}
 	</foreach>
   </delete>
+  
+    <select id="selectByAidAndUid" resultMap="BaseResultMap" >
+    select 
+    <include refid="Base_Column_List" />
+    from activity_user
+    where aid = #{aid,jdbcType=BIGINT}
+      and uid = #{uid,jdbcType=VARCHAR}
+  </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>

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

@@ -14,10 +14,11 @@
     <result column="hot" property="hot" jdbcType="INTEGER" />
     <result column="dynamic" property="dynamic" jdbcType="INTEGER" />
     <result column="end_time" property="endTime" jdbcType="TIMESTAMP" />
+    <result column="lecturer" property="lecturer" jdbcType="VARCHAR" />
   </resultMap>
   <sql id="Base_Column_List" >
     id, uid, lecture_time, create_time, last_update_time, name, summary, deleted_sign, lecture_url,
-    hot, dynamic, end_time
+    hot, dynamic, end_time, lecturer
   </sql>
   <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >
     select 
@@ -36,7 +37,7 @@
     values (#{id,jdbcType=VARCHAR}, #{uid,jdbcType=VARCHAR}, #{lectureTime,jdbcType=TIMESTAMP}, 
       #{createTime,jdbcType=TIMESTAMP}, #{lastUpdateTime,jdbcType=TIMESTAMP}, #{name,jdbcType=VARCHAR}, 
       #{summary,jdbcType=VARCHAR}, #{deletedSign,jdbcType=INTEGER}, #{lectureUrl,jdbcType=VARCHAR},
-      #{hot,jdbcType=INTEGER}, #{dynamic,jdbcType=INTEGER}, #{endTime,jdbcType=TIMESTAMP})
+      #{hot,jdbcType=INTEGER}, #{dynamic,jdbcType=INTEGER}, #{endTime,jdbcType=TIMESTAMP}, #{lecturer,jdbcType=VARCHAR})
   </insert>
   <insert id="insertSelective" parameterType="com.goafanti.common.model.Lecture" >
     insert into lecture
@@ -77,6 +78,9 @@
       <if test="endTime != null" >
         end_time,
       </if>
+      <if test="lecturer != null" >
+        lecturer,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides="," >
       <if test="id != null" >
@@ -112,9 +116,12 @@
       <if test="dynamic != null" >
         #{dynamic,jdbcType=INTEGER},
       </if>
-       <if test="endTime != null" >
+      <if test="endTime != null" >
         #{endTime,jdbcType=TIMESTAMP},
       </if>
+      <if test="lecturer != null" >
+        #{lecturer,jdbcType=VARCHAR},
+      </if>
     </trim>
   </insert>
   <update id="updateByPrimaryKeySelective" parameterType="com.goafanti.common.model.Lecture" >
@@ -153,6 +160,9 @@
       <if test="endTime != null" >
         end_time = #{endTime,jdbcType=TIMESTAMP},
       </if>
+       <if test="lecturer != null" >
+        lecturer = #{lecturer,jdbcType=VARCHAR},
+      </if>
     </set>
     where id = #{id,jdbcType=VARCHAR}
   </update>
@@ -168,7 +178,8 @@
       lecture_url = #{lectureUrl,jdbcType=VARCHAR},
       hot = #{hot,jdbcType=INTEGER},
       dynamic = #{dynamic,jdbcType=INTEGER},
-      end_time = #{endTime,jdbcType=TIMESTAMP}
+      end_time = #{endTime,jdbcType=TIMESTAMP},
+      lecturer = #{lecturer,jdbcType=VARCHAR}
     where id = #{id,jdbcType=VARCHAR}
   </update>
   
@@ -192,7 +203,8 @@
 	  		ui.username,
 	  		l.hot,
 	  		l.dynamic,
-	  		l.end_time as endTime
+	  		l.end_time as endTime,
+	  		l.lecturer
 	  	from lecture l
 	  	left join  user_identity ui on ui.uid = l.uid
 	  	where 
@@ -269,7 +281,8 @@
 	  		ui.username,
 	  		l.hot,
 	  		l.dynamic,
-	  		l.end_time as endTime
+	  		l.end_time as endTime,
+	  		l.lecturer
 	  	from lecture l
 	  	left join  user_identity ui on ui.uid = l.uid
 	  	where 
@@ -288,7 +301,8 @@
 	  		ui.username,
 	  		l.hot,
 	  		l.dynamic,
-	  		l.end_time as endTime
+	  		l.end_time as endTime,
+	  		l.lecturer
 	  	from lecture l
 	  	left join  user_identity ui on ui.uid = l.uid
 	  	where 

+ 206 - 0
src/main/java/com/goafanti/common/mapper/LectureUserMapper.xml

@@ -0,0 +1,206 @@
+<?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.LectureUserMapper" >
+  <resultMap id="BaseResultMap" type="com.goafanti.common.model.LectureUser" >
+    <id column="lid" property="lid" jdbcType="BIGINT" />
+    <id column="uid" property="uid" jdbcType="VARCHAR" />
+    <result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
+    <result column="last_update_time" property="lastUpdateTime" jdbcType="TIMESTAMP" />
+  </resultMap>
+  <sql id="Base_Column_List" >
+    lid, uid, create_time, last_update_time
+  </sql>
+  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="com.goafanti.common.model.LectureUserKey" >
+    select 
+    <include refid="Base_Column_List" />
+    from lecture_user
+    where lid = #{lid,jdbcType=BIGINT}
+      and uid = #{uid,jdbcType=VARCHAR}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="com.goafanti.common.model.LectureUserKey" >
+    delete from lecture_user
+    where lid = #{lid,jdbcType=BIGINT}
+      and uid = #{uid,jdbcType=VARCHAR}
+  </delete>
+  <insert id="insert" parameterType="com.goafanti.common.model.LectureUser" >
+    insert into lecture_user (lid, uid, create_time, 
+      last_update_time)
+    values (#{lid,jdbcType=BIGINT}, #{uid,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, 
+      #{lastUpdateTime,jdbcType=TIMESTAMP})
+  </insert>
+  <insert id="insertSelective" parameterType="com.goafanti.common.model.LectureUser" >
+    insert into lecture_user
+    <trim prefix="(" suffix=")" suffixOverrides="," >
+      <if test="lid != null" >
+        lid,
+      </if>
+      <if test="uid != null" >
+        uid,
+      </if>
+      <if test="createTime != null" >
+        create_time,
+      </if>
+      <if test="lastUpdateTime != null" >
+        last_update_time,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides="," >
+      <if test="lid != null" >
+        #{lid,jdbcType=BIGINT},
+      </if>
+      <if test="uid != null" >
+        #{uid,jdbcType=VARCHAR},
+      </if>
+      <if test="createTime != null" >
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="lastUpdateTime != null" >
+        #{lastUpdateTime,jdbcType=TIMESTAMP},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.goafanti.common.model.LectureUser" >
+    update lecture_user
+    <set >
+      <if test="createTime != null" >
+        create_time = #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="lastUpdateTime != null" >
+        last_update_time = #{lastUpdateTime,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    where lid = #{lid,jdbcType=BIGINT}
+      and uid = #{uid,jdbcType=VARCHAR}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.goafanti.common.model.LectureUser" >
+    update lecture_user
+    set create_time = #{createTime,jdbcType=TIMESTAMP},
+      last_update_time = #{lastUpdateTime,jdbcType=TIMESTAMP}
+    where lid = #{lid,jdbcType=BIGINT}
+      and uid = #{uid,jdbcType=VARCHAR}
+  </update>
+  
+   <delete id="batchDeleteByPrimaryKey" parameterType="java.util.List">
+  	delete
+  		from lecture_user
+  	where id in
+  	<foreach item="item" index="index" collection="list" open="("
+			separator="," close=")">
+			#{item}
+	</foreach>
+  </delete>
+  
+  <select id="findLectureUserListByPage" parameterType="String" resultType="com.goafanti.LectureUser.bo.LectureUserListBo">
+  	select
+  		lu.lid,
+  		lu.uid,
+  		lu.create_time as createTime,
+  		lu.last_update_time as lastUpdateTime,
+  		l.name as lectureName,
+  		u.number,
+  		u.mobile,
+  		ui.username,
+  		l.lecture_time as lectureTime,
+  		l.end_time as endTime
+  	from lecture_user lu
+  	left join user u on u.id = lu.uid
+  	left join user_identity ui on ui.uid = lu.uid
+  	left join lecture l on l.id = lu.lid
+  	where u.type = 0 
+  	<if test="mobile != null">
+  		and u.mobile = #{mobile,jdbcType=VARCHAR}
+  	</if>
+  	<if test="number != null">
+  		and u.number = #{number,jdbcType=INTEGER}
+  	</if>
+  	<if test="lectureName != null">
+  		and l.name like CONCAT('%',#{lectureName,jdbcType=VARCHAR},'%')
+  	</if>
+  	<if test="username != null">
+  		and ui.username like CONCAT('%',#{username,jdbcType=VARCHAR},'%')
+  	</if>
+  	order by lu.last_update_time desc
+  	<if test="page_sql!=null">
+		${page_sql}
+	</if>
+  </select>
+  
+  <select id="findLectureUserCount" parameterType="String" resultType="java.lang.Integer">
+  	select
+  		count(1)
+  	from lecture_user lu
+  	left join user u on u.id = lu.uid
+  	left join user_identity ui on ui.uid = lu.uid
+  	left join lecture l on l.id = lu.lid
+  	where u.type = 0  
+  	<if test="mobile != null">
+  		and u.mobile = #{mobile,jdbcType=VARCHAR}
+  	</if>
+  	<if test="number != null">
+  		and u.number = #{number,jdbcType=INTEGER}
+  	</if>
+  	<if test="lectureName != null">
+  		and l.name like CONCAT('%',#{lectureName,jdbcType=VARCHAR},'%')
+  	</if>
+  	<if test="username != null">
+  		and ui.username like CONCAT('%',#{username,jdbcType=VARCHAR},'%')
+  	</if>
+  </select>
+  
+  <select id="findLectureOrgListByPage" parameterType="String" resultType="com.goafanti.LectureUser.bo.LectureUserListBo">
+  	select
+  		lu.lid,
+  		lu.uid,
+  		lu.create_time as createTime,
+  		lu.last_update_time as lastUpdateTime,
+  		l.name as lectureName,
+  		u.number,
+  		u.mobile,
+  		oi.unit_name as unitName,
+  		l.lecture_time as lectureTime,
+  		l.end_time as endTime
+  	from lecture_user lu
+  	left join user u on u.id = lu.uid
+  	left join organization_identity oi on oi.uid = lu.uid
+  	left join lecture l on l.id = lu.lid
+  	where u.type = 1 
+  	<if test="mobile != null">
+  		and u.mobile = #{mobile,jdbcType=VARCHAR}
+  	</if>
+  	<if test="number != null">
+  		and u.number = #{number,jdbcType=INTEGER}
+  	</if>
+  	<if test="lectureName != null">
+  		and l.name like CONCAT('%',#{lectureName,jdbcType=VARCHAR},'%')
+  	</if>
+  	<if test="unitName != null">
+  		and oi.unit_name like CONCAT('%',#{unitName,jdbcType=VARCHAR},'%')
+  	</if>
+  	order by lu.last_update_time desc
+  	<if test="page_sql!=null">
+		${page_sql}
+	</if>
+  </select>
+  
+  <select id="findLectureOrgCount" parameterType="String" resultType="java.lang.Integer">
+  	select
+  		count(1)
+  	from lecture_user lu
+  	left join user u on u.id = lu.uid
+  	left join organization_identity oi on oi.uid = lu.uid
+  	left join lecture l on l.id = lu.lid
+  	where u.type = 1 
+  	<if test="mobile != null">
+  		and u.mobile = #{mobile,jdbcType=VARCHAR}
+  	</if>
+  	<if test="number != null">
+  		and u.number = #{number,jdbcType=INTEGER}
+  	</if>
+  	<if test="activityName != null">
+  		and l.name like CONCAT('%',#{lectureName,jdbcType=VARCHAR},'%')
+  	</if>
+  	<if test="unitName != null">
+  		and oi.unit_name like CONCAT('%',#{unitName,jdbcType=VARCHAR},'%')
+  	</if>
+  </select>
+</mapper>

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

@@ -9,15 +9,15 @@
 		<result column="type" jdbcType="INTEGER" property="type" />
 		<result column="hot" jdbcType="INTEGER" property="hot" />
 		<result column="summary" jdbcType="VARCHAR" property="summary" />
+		<result column="source" jdbcType="VARCHAR" property="source" />
 	</resultMap>
 	<sql id="Summary_Column_List">
-		id, create_time, title, title_img, type, hot, summary
+		id, create_time, title, title_img, type, hot, summary, source
 	</sql>
 	<select id="findList" resultMap="SummaryResultMap">
 		select
 		<include refid="Summary_Column_List" />
 		from news
-		where hot = 0 
 		<if test=" type != null">
 			and type = #{type,jdbcType=INTEGER}
 		</if>
@@ -25,6 +25,18 @@
 		limit #{pageNo,jdbcType=INTEGER}, #{pageSize,jdbcType=INTEGER}
 	</select>
 	
+	<select id="findIndexNewsList" resultMap="SummaryResultMap">
+		select
+		<include refid="Summary_Column_List" />
+		from news
+		where hot = 1 
+		<if test=" type != null">
+			and type = #{type,jdbcType=INTEGER}
+		</if>
+		order by create_time desc
+		limit #{pageNo,jdbcType=INTEGER}, #{pageSize,jdbcType=INTEGER}
+	</select>
+	
 	<select id="findNewsListByPage" parameterType="String" resultMap="BaseResultMap">
   	select
   		id,

+ 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>

+ 9 - 0
src/main/java/com/goafanti/common/model/ActivityUserKey.java

@@ -10,6 +10,15 @@ public class ActivityUserKey {
     * 用户ID
     */
     private String uid;
+    
+    public ActivityUserKey(){
+    	
+    }
+    
+    public ActivityUserKey(Long aid, String uid){
+    	this.aid = aid;
+    	this.uid = uid;
+    }
 
     public Long getAid() {
         return aid;

+ 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);
+        }
+    }
+}

+ 18 - 8
src/main/java/com/goafanti/common/model/Lecture.java

@@ -66,6 +66,8 @@ public class Lecture {
 	 */
 	private Date	endTime;
 
+	private String	lecturer;
+
 	public String getId() {
 		return id;
 	}
@@ -165,6 +167,14 @@ public class Lecture {
 		this.endTime = endTime;
 	}
 
+	public String getLecturer() {
+		return lecturer;
+	}
+
+	public void setLecturer(String lecturer) {
+		this.lecturer = lecturer;
+	}
+
 	public String getLectureTimeFormattedDate() {
 		if (this.lectureTime == null) {
 			return null;
@@ -188,18 +198,18 @@ public class Lecture {
 	public void setEndTimeFormattedDate(String endTimeFormattedDate) {
 
 	}
-	
-	public Integer getLectureStatus(){
-		if (this.lectureTime == null){
+
+	public Integer getLectureStatus() {
+		if (this.lectureTime == null) {
 			return ActivityStatus.ENROLL.getCode();
-		} 
-		if (new Date().getTime() > this.lectureTime.getTime()){
+		}
+		if (new Date().getTime() > this.lectureTime.getTime()) {
 			return ActivityStatus.CLOSED.getCode();
 		}
 		return ActivityStatus.ENROLL.getCode();
 	}
-	
-	public void setLectureStatus(Integer lectureStatus){
-		
+
+	public void setLectureStatus(Integer lectureStatus) {
+
 	}
 }

+ 31 - 0
src/main/java/com/goafanti/common/model/LectureUser.java

@@ -0,0 +1,31 @@
+package com.goafanti.common.model;
+
+import java.util.Date;
+
+public class LectureUser extends LectureUserKey {
+    /**
+    * 创建时间(首次咨询时间)
+    */
+    private Date createTime;
+
+    /**
+    * 最近一次咨询时间
+    */
+    private Date lastUpdateTime;
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getLastUpdateTime() {
+        return lastUpdateTime;
+    }
+
+    public void setLastUpdateTime(Date lastUpdateTime) {
+        this.lastUpdateTime = lastUpdateTime;
+    }
+}

+ 38 - 0
src/main/java/com/goafanti/common/model/LectureUserKey.java

@@ -0,0 +1,38 @@
+package com.goafanti.common.model;
+
+public class LectureUserKey {
+	/**
+	 * 讲堂ID
+	 */
+	private Long	lid;
+
+	/**
+	 * 报名人ID
+	 */
+	private String	uid;
+
+	public LectureUserKey() {
+
+	}
+
+	public LectureUserKey(Long lid, String uid) {
+		this.lid = lid;
+		this.uid = uid;
+	}
+
+	public Long getLid() {
+		return lid;
+	}
+
+	public void setLid(Long lid) {
+		this.lid = lid;
+	}
+
+	public String getUid() {
+		return uid;
+	}
+
+	public void setUid(String uid) {
+		this.uid = uid;
+	}
+}

+ 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

+ 11 - 0
src/main/java/com/goafanti/lecture/bo/InputLecture.java

@@ -30,6 +30,9 @@ public class InputLecture {
 	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
 	private Integer	dynamic;
 
+	@Size(min = 0, max = 45, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String	lecturer;
+
 	public String getId() {
 		return id;
 	}
@@ -86,4 +89,12 @@ public class InputLecture {
 		this.dynamic = dynamic;
 	}
 
+	public String getLecturer() {
+		return lecturer;
+	}
+
+	public void setLecturer(String lecturer) {
+		this.lecturer = lecturer;
+	}
+
 }

+ 15 - 2
src/main/java/com/goafanti/news/bo/NewsSummary.java

@@ -44,6 +44,11 @@ public class NewsSummary {
 	 */
 	private String	summary;
 	
+	/**
+	 * 来源
+	 */
+	private String	source;
+
 	@JsonFormat(shape = Shape.STRING)
 	public Long getId() {
 		return id;
@@ -52,7 +57,7 @@ public class NewsSummary {
 	public void setId(Long id) {
 		this.id = id;
 	}
-	
+
 	public Date getCreateTime() {
 		return createTime;
 	}
@@ -100,7 +105,15 @@ public class NewsSummary {
 	public void setSummary(String summary) {
 		this.summary = summary;
 	}
-	
+
+	public String getSource() {
+		return source;
+	}
+
+	public void setSource(String source) {
+		this.source = source;
+	}
+
 	public String getCreateTimeFormattedDate() {
 		if (this.createTime == null) {
 			return null;

+ 14 - 0
src/main/java/com/goafanti/news/service/NewsService.java

@@ -32,6 +32,20 @@ public class NewsService extends BaseMybatisDao<NewsMapper> {
 	NewsMapper					newsMapper;
 
 	private static final Logger	logger	= LoggerFactory.getLogger(NewsService.class);
+	
+	@Cacheable(value = "IndexNewsListCache", key = "'NewsList:Page:'+#pageNo+'Type:'+#type+'Size:'+#pageSize")
+	public List<NewsSummary> findIndexNewsList(Integer pageNo, Integer type, Integer pageSize) {
+		Map<String, Object> params = new HashMap<String, Object>();
+		params.put("type", type);
+		params.put("pageSize", pageSize);
+		params.put("pageNo", pageNo);
+		return newsMapper.findIndexNewsList(params);
+	}
+
+	@CacheEvict(value = "IndexNewsListCache", allEntries = true)
+	public void cleanIndexNewsList() {
+		LoggerUtils.debug(logger, "清除首页新闻列表缓存");
+	}
 
 	@Cacheable(value = "NewsCache", key = "'News:'+#id")
 	public News selectById(Long id) {

+ 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;
+	}
+}

+ 1 - 1
src/main/java/com/goafanti/portal/controller/PortalActivityController.java

@@ -117,6 +117,6 @@ public class PortalActivityController extends BaseController {
 			Integer ps = Integer.parseInt(pageSize);
 			return ps > 50 ? 50 : (ps < 5 ? 5 : ps);
 		}
-		return 10;
+		return 5;
 	}
 }

+ 1 - 1
src/main/java/com/goafanti/portal/controller/PortalLectureController.java

@@ -77,7 +77,7 @@ public class PortalLectureController extends BaseController {
 			Integer ps = Integer.parseInt(pageSize);
 			return ps > 50 ? 50 : (ps < 5 ? 5 : ps);
 		}
-		return 10;
+		return 5;
 	}
 
 }

+ 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, "清除国际专家列表");
+	}
+
 }

+ 2 - 2
src/main/resources/props/config_dev.properties

@@ -51,7 +51,7 @@ session.validate.timespan=18000000
 
 app.name=AFT
 
-static.host=//afts.hnzhiming.com/1.0.37
+static.host=//afts.hnzhiming.com/1.0.38
 
 upload.path=/data/wwwroot/aft/upload
 upload.private.path=/data/upload
@@ -67,7 +67,7 @@ template.cacheable=false
 
 mobileCodeTemplate=SMS_37845022
 
-portal.host=//afts.hnzhiming.com/portal/1.0.5
+portal.host=//afts.hnzhiming.com/portal/1.0.6
 
 patentTemplate=SMS_72005286
 

+ 79 - 2
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
@@ -53,7 +130,7 @@ session.validate.timespan=18000000
 
 app.name=AFT
 
-static.host=//afts.hnzhiming.com/1.0.37
+static.host=//afts.hnzhiming.com/1.0.38
 
 upload.path=/Users/xiaolong/Sites/upload
 upload.private.path=/Users/xiaolong/Sites/doc
@@ -69,7 +146,7 @@ template.cacheable=false
 
 mobileCodeTemplate=SMS_37845022
 
-portal.host=//afts.hnzhiming.com/portal/1.0.5
+portal.host=//afts.hnzhiming.com/portal/1.0.6
 
 patentTemplate=SMS_72005286
 

+ 2 - 2
src/main/resources/props/config_test.properties

@@ -53,7 +53,7 @@ session.validate.timespan=18000000
 
 app.name=AFT
 
-static.host=//aftts.hnzhiming.com/1.0.37
+static.host=//aftts.hnzhiming.com/1.0.38
 
 upload.path=/data/aft/public/upload
 upload.private.path=/data/aft/private/upload
@@ -69,7 +69,7 @@ template.cacheable=true
 
 mobileCodeTemplate=SMS_37845022
 
-portal.host=//aftts.hnzhiming.com/portal/1.0.5
+portal.host=//aftts.hnzhiming.com/portal/1.0.6
 
 patentTemplate=SMS_72005286
 

File diff suppressed because it is too large
+ 1 - 1
src/main/webapp/WEB-INF/views/common.html


+ 0 - 1
src/main/webapp/WEB-INF/views/portal/activity/details.html

@@ -1,6 +1,5 @@
 <!DOCTYPE html>
 <html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
-
 <head th:replace="common::header(~{::title},~{::link})">
 	<title>活动详情</title>
 	<link th:href="${portalHost + '/vendors.css'}" rel="stylesheet">

+ 4 - 2
src/main/webapp/WEB-INF/views/portal/detail/achievementDetail.html

@@ -14,8 +14,10 @@
 			<div class="container">
 				<div class="lt">欢迎进入科技认知计算交易平台!</div>
 				<div class="rt">
-					<a href="/user/login.html" class="login">登录</a> <a
-						href="/user/signIn.html">注册</a> <a href="#">导航</a> <a href="#">关于我们</a>
+					<a href="/user/login.html" class="login">登录</a> 
+					<a href="/user/signIn.html">注册</a> 
+					<a href="#">导航</a> 
+					<a href="#">关于我们</a>
 					<a href="#">联系我们</a>
 				</div>
 			</div>

File diff suppressed because it is too large
+ 1 - 1
src/main/webapp/WEB-INF/views/portal/entrepreneurship/entrepreneurshipIndex.html


+ 1 - 1
src/main/webapp/WEB-INF/views/portal/evaluation/index.html

@@ -88,7 +88,7 @@
 			</div>
 		</div>
 		<div class="container benifit_content">
-			<div class="section-title">评估的好处</div>
+			<div class="section-title">评估的重要性</div>
 			<div class="section-subtitle">EVALUATION OF THE BENEFITS</div>
 			<div class="section-content">
 				<p><span>1</span>摸清家底,维护企业资产的完整。以财务报告为目的的品牌评估成为企业资产管理的重要环节。</p>

File diff suppressed because it is too large
+ 7 - 5
src/main/webapp/WEB-INF/views/portal/highTech/authentication.html


File diff suppressed because it is too large
+ 165 - 145
src/main/webapp/WEB-INF/views/portal/index.html


+ 1 - 1
src/main/webapp/WEB-INF/views/portal/ipr/apply.html

@@ -80,7 +80,7 @@
 				<li><img th:src="${portalHost + '/img/ipr_img_4.png'}" />
 					<div class="apply_modal">
 						<h1>软件著作权</h1>
-						<a href="#">我要申请</a>
+						<a th:href="${basePath + '/user/account/services.html#contract'}">我要申请</a>
 					</div></li>
 			</ul>
 		</div>

+ 255 - 212
src/main/webapp/WEB-INF/views/portal/ipr/iso.html

@@ -1,222 +1,265 @@
 <!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<html xmlns="http://www.w3.org/1999/xhtml"
+	xmlns:th="http://www.thymeleaf.org"
+	xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
 
 <head th:replace="common::header(~{::title},~{::link})">
-  <title>知识产权贯标</title>
-  <link th:href="${portalHost + '/vendors.css'}" rel="stylesheet">
-  <link th:href="${portalHost + '/ipr/iso.css'}" rel="stylesheet">
+<title>知识产权贯标</title>
+<link th:href="${portalHost + '/vendors.css'}" rel="stylesheet">
+<link th:href="${portalHost + '/ipr/iso.css'}" rel="stylesheet">
 </head>
 
 <body>
-  <header>
-    <div class="container">
-      <div class="lt">欢迎进入科技认知计算交易平台!</div>
-      <div class="rt">
-        <a href="/user/login.html" class="login">登录</a>
-        <a href="/user/signIn.html">注册</a>
-        <a href="#">导航</a>
-        <a href="#">关于我们</a>
-        <a href="#">联系我们</a>
-      </div>
-    </div>
-  </header>
-  <div class="header_nav_detail">
-    <div class="container ">
-      <div class="row clearfix">
-        <div class="col-md-3 logo">
-          <div th:replace="common::sublogo"></div>
-        </div>
-        <div class="col-md-9">
-          <div th:replace="common::subMenu('service', 'ipr')"></div>
-        </div>
-      </div>
-    </div>
-    <div class="secondary_navigation"></div>
-  </div>
+	<header>
+		<div th:replace="common::{topNav}">
+			<div class="container">
+				<div class="lt">欢迎进入科技认知计算交易平台!</div>
+				<div class="rt">
+					<a href="/user/login.html" class="login">登录</a> <a
+						href="/user/signIn.html">注册</a> <a href="#">导航</a> <a href="#">关于我们</a>
+					<a href="#">联系我们</a>
+				</div>
+			</div>
+		</div>
+	</header>
+	<div class="header_nav_detail">
+		<div class="container ">
+			<div class="row clearfix">
+				<div class="col-md-3 logo">
+					<div th:replace="common::sublogo"></div>
+				</div>
+				<div class="col-md-9">
+					<div th:replace="common::subMenu('service', 'ipr')"></div>
+				</div>
+			</div>
+		</div>
+		<div class="secondary_navigation"></div>
+	</div>
 
-  <div th:replace="common::banners"></div>
-  <div class="banner-item" th:if="${banners==null}">
-    <img th:src="${portalHost + '/img/ipr_service_iso_banner.jpg'}" alt="First slide">
-  </div>
-  <div id="content_head" class="container">
-    <ul class="nav_content">
-      <li><a th:href="${basePath + '/portal/ipr/service.html'}">知识产权服务</a></li>
-      <li><a th:href="${basePath + '/portal/ipr/apply.html'}">知识产权申请</a></li>
-      <li><a th:href="${basePath + '/portal/ipr/patentOperation.html'}">专利运营与布局</a></li>
-      <li class="active"><a th:href="${basePath + '/portal/ipr/iso.html'}">知识产权贯标</a></li>
-    </ul>
-  </div>
-  <div class="iso_introduce">
-    <div class="container">
-      <div class="title">
-        <h1>什么是知识产权贯标</h1>
-        <p>WHAT IS INTELLECTUAL PROPERTY ENFORCEMENT?</p> <span></span> </div>
-      <div class="iso_introduce_content">
-        <h2>知识产权对于企业来说:</h2>
-        <p>就是贯彻《企业知识产权管理规范》国家标准。企业知识产权管理规范的国家标准由国家知识产权局制订,经由国家质量监督检验检疫总局、国家标准化管理委员会批准颁布,于2013年3月1日起实施,标准号是GB/T29490-2013。</p>
-        <p>通常所说的贯标是指贯彻ISO9000质量管理体系标准、ISO14000环境管理体系标准和OHSAS18000职业健康安全管理体系规范,是运用过程方法和系统方法,持续改进工作的一种活动。</p>
-        <p>企业知识产权管理标准化示范创建工作(贯彻《企业知识产权管理规范》),也是贯标的一个类别,被称为知识产权贯标。</p>
-      </div>
-    </div>
-  </div>
-  <div class="iso_advantage">
-    <div class="container">
-      <div class="title">
-        <h1>知识产权贯标好处</h1>
-        <p>THE BENEFITS OF INTELLECTUAL PROPERTY RIGHTS</p> <span></span> </div>
-      <div class="iso_advantage_nav">
-        <ul id="isoAdvantageTab">
-          <li class="active"><a href="#advantageTab1" data-toggle="tab"><span>资金资助</span></a></li>
-          <li><a href="#advantageTab2" data-toggle="tab"><span>项目支持</span></a></li>
-          <li><a href="#advantageTab3" data-toggle="tab"><span>评优优先</span></a></li>
-          <li><a href="#advantageTab4" data-toggle="tab"><span>管理升级</span></a></li>
-          <li><a href="#advantageTab5" data-toggle="tab"><span>形象提升</span></a></li>
-          <li><a href="#advantageTab6" data-toggle="tab"><span>风险防范</span></a></li>
-        </ul>
-      </div>
-      <div id="isoAdvantageTabContent" class="content_list tab-content iso_advantage_content">
-        <div id="advantageTab1" class="tab-pane in active">
-          <div class="content_info ">
-            <div class="zc_info_txt">
-              <!-- <h2>“企业知识产权管理规范”</h2> -->
-              <p>根据当地政府政策,最高可获得30万的政府资金资助</p>
-            </div>
-          </div> <span class="sp1 tab1_span">                            <span class="sp2"></span> </span>
-        </div>
-        <div id="advantageTab2" class="tab-pane">
-          <div class="content_info ">
-            <div class="zc_info_txt">
-              <!-- <h2>贯标有助于提升企业</h2> -->
-              <p>优先推荐申报各类政府项目支持</p>
-            </div>
-          </div> <span class="sp1 tab2_span">                            <span class="sp2"></span> </span>
-        </div>
-        <div id="advantageTab3" class="tab-pane">
-          <div class="content_info ">
-            <div class="zc_info_txt">
-              <!-- <h2>推动企业产生具备高附加值的</h2> -->
-              <p>优先推荐企业申报“国家级知识产权优势企业”</p>
-            </div>
-          </div> <span class="sp1 tab3_span">                            <span class="sp2"></span> </span>
-        </div>
-        <div id="advantageTab4" class="tab-pane">
-          <div class="content_info ">
-            <div class="zc_info_txt">
-              <!-- <h2>提升企业无形资产价值</h2> -->
-              <p>提高企业知识产权管理水平,提升核心竞争力</p>
-            </div>
-          </div> <span class="sp1 tab4_span">                            <span class="sp2"></span> </span>
-        </div>
-        <div id="advantageTab5" class="tab-pane">
-          <div class="content_info ">
-            <div class="zc_info_txt">
-              <!-- <h2>巩固企业市场地位</h2> -->
-              <p>通过国家验收,获得证书,大大提升企业形象</p>
-            </div>
-          </div> <span class="sp1 tab5_span">                            <span class="sp2"></span> </span>
-        </div>
-        <div id="advantageTab6" class="tab-pane">
-          <div class="content_info ">
-            <div class="zc_info_txt">
-              <!-- <h2>贯标验收合格后</h2> -->
-              <p>强化企业知识产权风险防范意识,优化管理机制,降低运营风险</p>
-            </div>
-          </div> <span class="sp1 tab6_span">                            <span class="sp2"></span> </span>
-        </div>
-      </div>
-    </div>
-  </div>
-  <div class="iso_process">
-    <div class="container">
-      <div class="title">
-        <h1>知识产权贯标流程</h1>
-        <p>INTELLECTUAL PROPERTY IMPLEMENTATION PROCESS</p> <span></span> </div>
-      <div class="iso_process_nav">
-        <ul id="isoProcessTab">
-          <li class="active"><a href="#processTab1" data-toggle="tab"><span>01</span></a></li>
-          <li><a href="#processTab2" data-toggle="tab"><span>02</span></a></li>
-          <li><a href="#processTab3" data-toggle="tab"><span>03</span></a></li>
-          <li><a href="#processTab4" data-toggle="tab"><span>04</span></a></li>
-          <li><a href="#processTab5" data-toggle="tab"><span>05</span></a></li>
-          <li><a href="#processTab6" data-toggle="tab"><span>06</span></a></li>
-          <li><a href="#processTab7" data-toggle="tab"><span>07</span></a></li>
-          <li><a href="#processTab8" data-toggle="tab"><span>08</span></a></li>
-        </ul>
-      </div>
-      <div id="isoProcessTabTabContent" class="content_list tab-content iso_process_content">
-        <div id="processTab1" class="tab-pane in active">
-          <div class="content_info ">
-            <div class="zc_info_txt">
-              <h2>贯标启动:</h2>
-              <p>成立企业贯标工作小组,制定企业贯标工作计划,召开企业贯标启动大会,对主要参与部门、人员进行贯标相关培训。</p>
-            </div>
-          </div> <span class="sp1 tab1_span">                            <span class="sp2"></span> </span>
-        </div>
-        <div id="processTab2" class="tab-pane">
-          <div class="content_info ">
-            <div class="zc_info_txt">
-              <h2>调查诊断:</h2>
-              <p>调查企业基本信息、组织架构、相关制度,诊断企业知识产权管理现状。</p>
-            </div>
-          </div> <span class="sp1 tab2_span">                            <span class="sp2"></span> </span>
-        </div>
-        <div id="processTab3" class="tab-pane">
-          <div class="content_info ">
-            <div class="zc_info_txt">
-              <h2>体系构建:</h2>
-              <p>制定企业知识产权方针、目标,策划企业知识产权职能架构,构建企业知识产权管理体系。</p>
-            </div>
-          </div> <span class="sp1 tab3_span">                            <span class="sp2"></span> </span>
-        </div>
-        <div id="processTab4" class="tab-pane">
-          <div class="content_info ">
-            <div class="zc_info_txt">
-              <h2>手册编写:</h2>
-              <p>编写企业知识产权管理手册,编制企业知识产权管理制度、控制程序、记录表单。</p>
-            </div>
-          </div> <span class="sp1 tab4_span">                            <span class="sp2"></span> </span>
-        </div>
-        <div id="processTab5" class="tab-pane">
-          <div class="content_info ">
-            <div class="zc_info_txt">
-              <h2>发文宣贯:</h2>
-              <p>颁布企业知识产权管理手册、制度、程序、表单,开展企业知识产权宣贯培训,指导各个部门、人员正确理解和执行。</p>
-            </div>
-          </div> <span class="sp1 tab5_span">                            <span class="sp2"></span> </span>
-        </div>
-        <div id="processTab6" class="tab-pane">
-          <div class="content_info ">
-            <div class="zc_info_txt">
-              <h2>实施运行:</h2>
-              <p>运行企业知识产权管理体系,填写体系运行记录,定期进行体系运行监测。</p>
-            </div>
-          </div> <span class="sp1 tab6_span">                            <span class="sp2"></span> </span>
-        </div>
-        <div id="processTab7" class="tab-pane">
-          <div class="content_info ">
-            <div class="zc_info_txt">
-              <h2>内部审核:</h2>
-              <p>企业对其自身的知识产权管理体系进行审核,并对审核中的不合格项采取纠正和改进措施。</p>
-            </div>
-          </div> <span class="sp1 tab7_span">                            <span class="sp2"></span> </span>
-        </div>
-        <div id="processTab8" class="tab-pane">
-          <div class="content_info ">
-            <div class="zc_info_txt">
-              <h2>管理评审:</h2>
-              <p>企业最高管理者就企业知识产权管理体系的现状、适宜性、充分性和有效性以及方针和目标的贯彻落实情况进行评审。</p>
-            </div>
-          </div> <span class="sp1 tab8_span">                            <span class="sp2"></span> </span>
-        </div>
-      </div> <a href="#" class="iso_btn customer-service">我要服务</a> </div>
-  </div>
-  <footer>
-    <div th:replace="common::copyright"></div>
-  </footer>
-  <div th:replace="common::footer(~{::script})">
-    <script type="text/javascript" th:src="${portalHost + '/vendors.js'}"></script>
-    <script type="text/javascript" th:src="${portalHost + '/ipr/iso.js'}"></script>
-  </div>
+	<div th:replace="common::banners"></div>
+	<div class="banner-item" th:if="${banners==null}">
+		<img th:src="${portalHost + '/img/ipr_service_iso_banner.jpg'}"
+			alt="First slide">
+	</div>
+	<div id="content_head" class="container">
+		<ul class="nav_content">
+			<li><a th:href="${basePath + '/portal/ipr/service.html'}">知识产权服务</a></li>
+			<li><a th:href="${basePath + '/portal/ipr/apply.html'}">知识产权申请</a></li>
+			<li><a
+				th:href="${basePath + '/portal/ipr/patentOperation.html'}">专利运营与布局</a></li>
+			<li class="active"><a
+				th:href="${basePath + '/portal/ipr/iso.html'}">知识产权贯标</a></li>
+		</ul>
+	</div>
+	<div class="iso_introduce">
+		<div class="container">
+			<div class="title">
+				<h1>什么是知识产权贯标</h1>
+				<p>WHAT IS INTELLECTUAL PROPERTY ENFORCEMENT?</p>
+				<span></span>
+			</div>
+			<div class="iso_introduce_content">
+				<h2>知识产权对于企业来说:</h2>
+				<p>就是贯彻《企业知识产权管理规范》国家标准。企业知识产权管理规范的国家标准由国家知识产权局制订,经由国家质量监督检验检疫总局、国家标准化管理委员会批准颁布,于2013年3月1日起实施,标准号是GB/T29490-2013。</p>
+				<p>通常所说的贯标是指贯彻ISO9000质量管理体系标准、ISO14000环境管理体系标准和OHSAS18000职业健康安全管理体系规范,是运用过程方法和系统方法,持续改进工作的一种活动。</p>
+				<p>企业知识产权管理标准化示范创建工作(贯彻《企业知识产权管理规范》),也是贯标的一个类别,被称为知识产权贯标。</p>
+			</div>
+		</div>
+	</div>
+	<div class="iso_advantage">
+		<div class="container">
+			<div class="title">
+				<h1>知识产权贯标好处</h1>
+				<p>THE BENEFITS OF INTELLECTUAL PROPERTY RIGHTS</p>
+				<span></span>
+			</div>
+			<div class="iso_advantage_nav">
+				<ul id="isoAdvantageTab">
+					<li class="active"><a href="#advantageTab1" data-toggle="tab"><span>资金资助</span></a></li>
+					<li><a href="#advantageTab2" data-toggle="tab"><span>项目支持</span></a></li>
+					<li><a href="#advantageTab3" data-toggle="tab"><span>评优优先</span></a></li>
+					<li><a href="#advantageTab4" data-toggle="tab"><span>管理升级</span></a></li>
+					<li><a href="#advantageTab5" data-toggle="tab"><span>形象提升</span></a></li>
+					<li><a href="#advantageTab6" data-toggle="tab"><span>风险防范</span></a></li>
+				</ul>
+			</div>
+			<div id="isoAdvantageTabContent"
+				class="content_list tab-content iso_advantage_content">
+				<div id="advantageTab1" class="tab-pane in active">
+					<div class="content_info ">
+						<div class="zc_info_txt">
+							<!-- <h2>“企业知识产权管理规范”</h2> -->
+							<p>根据当地政府政策,最高可获得30万的政府资金资助</p>
+						</div>
+					</div>
+					<span class="sp1 tab1_span"> <span class="sp2"></span>
+					</span>
+				</div>
+				<div id="advantageTab2" class="tab-pane">
+					<div class="content_info ">
+						<div class="zc_info_txt">
+							<!-- <h2>贯标有助于提升企业</h2> -->
+							<p>优先推荐申报各类政府项目支持</p>
+						</div>
+					</div>
+					<span class="sp1 tab2_span"> <span class="sp2"></span>
+					</span>
+				</div>
+				<div id="advantageTab3" class="tab-pane">
+					<div class="content_info ">
+						<div class="zc_info_txt">
+							<!-- <h2>推动企业产生具备高附加值的</h2> -->
+							<p>优先推荐企业申报“国家级知识产权优势企业”</p>
+						</div>
+					</div>
+					<span class="sp1 tab3_span"> <span class="sp2"></span>
+					</span>
+				</div>
+				<div id="advantageTab4" class="tab-pane">
+					<div class="content_info ">
+						<div class="zc_info_txt">
+							<!-- <h2>提升企业无形资产价值</h2> -->
+							<p>提高企业知识产权管理水平,提升核心竞争力</p>
+						</div>
+					</div>
+					<span class="sp1 tab4_span"> <span class="sp2"></span>
+					</span>
+				</div>
+				<div id="advantageTab5" class="tab-pane">
+					<div class="content_info ">
+						<div class="zc_info_txt">
+							<!-- <h2>巩固企业市场地位</h2> -->
+							<p>通过国家验收,获得证书,大大提升企业形象</p>
+						</div>
+					</div>
+					<span class="sp1 tab5_span"> <span class="sp2"></span>
+					</span>
+				</div>
+				<div id="advantageTab6" class="tab-pane">
+					<div class="content_info ">
+						<div class="zc_info_txt">
+							<!-- <h2>贯标验收合格后</h2> -->
+							<p>强化企业知识产权风险防范意识,优化管理机制,降低运营风险</p>
+						</div>
+					</div>
+					<span class="sp1 tab6_span"> <span class="sp2"></span>
+					</span>
+				</div>
+			</div>
+		</div>
+	</div>
+	<div class="iso_process">
+		<div class="container">
+			<div class="title">
+				<h1>知识产权贯标流程</h1>
+				<p>INTELLECTUAL PROPERTY IMPLEMENTATION PROCESS</p>
+				<span></span>
+			</div>
+			<div class="iso_process_nav">
+				<ul id="isoProcessTab">
+					<li class="active"><a href="#processTab1" data-toggle="tab"><span>01</span></a></li>
+					<li><a href="#processTab2" data-toggle="tab"><span>02</span></a></li>
+					<li><a href="#processTab3" data-toggle="tab"><span>03</span></a></li>
+					<li><a href="#processTab4" data-toggle="tab"><span>04</span></a></li>
+					<li><a href="#processTab5" data-toggle="tab"><span>05</span></a></li>
+					<li><a href="#processTab6" data-toggle="tab"><span>06</span></a></li>
+					<li><a href="#processTab7" data-toggle="tab"><span>07</span></a></li>
+					<li><a href="#processTab8" data-toggle="tab"><span>08</span></a></li>
+				</ul>
+			</div>
+			<div id="isoProcessTabTabContent"
+				class="content_list tab-content iso_process_content">
+				<div id="processTab1" class="tab-pane in active">
+					<div class="content_info ">
+						<div class="zc_info_txt">
+							<h2>贯标启动:</h2>
+							<p>成立企业贯标工作小组,制定企业贯标工作计划,召开企业贯标启动大会,对主要参与部门、人员进行贯标相关培训。</p>
+						</div>
+					</div>
+					<span class="sp1 tab1_span"> <span class="sp2"></span>
+					</span>
+				</div>
+				<div id="processTab2" class="tab-pane">
+					<div class="content_info ">
+						<div class="zc_info_txt">
+							<h2>调查诊断:</h2>
+							<p>调查企业基本信息、组织架构、相关制度,诊断企业知识产权管理现状。</p>
+						</div>
+					</div>
+					<span class="sp1 tab2_span"> <span class="sp2"></span>
+					</span>
+				</div>
+				<div id="processTab3" class="tab-pane">
+					<div class="content_info ">
+						<div class="zc_info_txt">
+							<h2>体系构建:</h2>
+							<p>制定企业知识产权方针、目标,策划企业知识产权职能架构,构建企业知识产权管理体系。</p>
+						</div>
+					</div>
+					<span class="sp1 tab3_span"> <span class="sp2"></span>
+					</span>
+				</div>
+				<div id="processTab4" class="tab-pane">
+					<div class="content_info ">
+						<div class="zc_info_txt">
+							<h2>手册编写:</h2>
+							<p>编写企业知识产权管理手册,编制企业知识产权管理制度、控制程序、记录表单。</p>
+						</div>
+					</div>
+					<span class="sp1 tab4_span"> <span class="sp2"></span>
+					</span>
+				</div>
+				<div id="processTab5" class="tab-pane">
+					<div class="content_info ">
+						<div class="zc_info_txt">
+							<h2>发文宣贯:</h2>
+							<p>颁布企业知识产权管理手册、制度、程序、表单,开展企业知识产权宣贯培训,指导各个部门、人员正确理解和执行。</p>
+						</div>
+					</div>
+					<span class="sp1 tab5_span"> <span class="sp2"></span>
+					</span>
+				</div>
+				<div id="processTab6" class="tab-pane">
+					<div class="content_info ">
+						<div class="zc_info_txt">
+							<h2>实施运行:</h2>
+							<p>运行企业知识产权管理体系,填写体系运行记录,定期进行体系运行监测。</p>
+						</div>
+					</div>
+					<span class="sp1 tab6_span"> <span class="sp2"></span>
+					</span>
+				</div>
+				<div id="processTab7" class="tab-pane">
+					<div class="content_info ">
+						<div class="zc_info_txt">
+							<h2>内部审核:</h2>
+							<p>企业对其自身的知识产权管理体系进行审核,并对审核中的不合格项采取纠正和改进措施。</p>
+						</div>
+					</div>
+					<span class="sp1 tab7_span"> <span class="sp2"></span>
+					</span>
+				</div>
+				<div id="processTab8" class="tab-pane">
+					<div class="content_info ">
+						<div class="zc_info_txt">
+							<h2>管理评审:</h2>
+							<p>企业最高管理者就企业知识产权管理体系的现状、适宜性、充分性和有效性以及方针和目标的贯彻落实情况进行评审。</p>
+						</div>
+					</div>
+					<span class="sp1 tab8_span"> <span class="sp2"></span>
+					</span>
+				</div>
+			</div>
+			<a href="#" class="iso_btn customer-service">我要服务</a>
+		</div>
+	</div>
+	<footer>
+		<div th:replace="common::copyright"></div>
+	</footer>
+	<div th:replace="common::footer(~{::script})">
+		<script type="text/javascript" th:src="${portalHost + '/vendors.js'}"></script>
+		<script type="text/javascript" th:src="${portalHost + '/ipr/iso.js'}"></script>
+	</div>
 </body>
 
 </html>

File diff suppressed because it is too large
+ 39 - 28
src/main/webapp/WEB-INF/views/portal/ipr/patentOperation.html


+ 1 - 1
src/main/webapp/WEB-INF/views/portal/scienceTechnology/bigShot.html

@@ -113,7 +113,7 @@
 					<div class="lecture_content_info">
 						<h5 th:text="${lecture.name}" th:title="${lecture.name}"></h5>
 						<p class="mt20" th:text="${lecture.lectureTimeFormattedDate}" th:title="${lecture.lectureTimeFormattedDate}"></p>
-						<a href="#" class="customer-service">报名中</a>
+						<a href="#" class="customer-service" th:text="${lecture.lectureStatus} == 0 ? '报名中' : '已结束'">报名中</a>
 					</div>
 				</li>
 			</ul>

+ 2 - 1
src/main/webapp/WEB-INF/views/portal/scienceTechnology/lecture.html

@@ -55,7 +55,8 @@
 						<h4 th:text="${lecture.name}" th:title="${lecture.name}"></h4>
 						<p th:text="${lecture.summary}" th:title="${lecture.summary}"></p>
 						<p th:text="${lecture.lectureTimeFormattedDate}" th:title="${lecture.lectureTimeFormattedDate}">2017-07-02 09:30:00</p>
-						<span th:class="${lecture.lectureStatus} == 0 ? 'customer-service' : ''" th:text="${lecture.lectureStatus} == 0 ? '报名中' : '已结束'"></span>
+						<span th:class="${lecture.lectureStatus} == 0 ? 'customer-service apply' : ''" th:text="${lecture.lectureStatus} == 0 ? '报名中' : '已结束'"></span>
+						<input type="hidden" class="lid" th:value="${lecture.id}">
 					</div>
 				</li>
 			</ul>

File diff suppressed because it is too large
+ 1 - 1
src/main/webapp/WEB-INF/views/portal/websiteBuild/websiteBuildIndex.html