Selaa lähdekoodia

Accept Merge Request #214 v1.0.37 : (master -> test)

Merge Request: v1.0.37
Created By: @Antiloveg
Accepted By: @Antiloveg
URL: https://coding.net/t/aft/p/AFT/git/merge/214
Antiloveg 8 vuotta sitten
vanhempi
commit
6e6acd0c47
42 muutettua tiedostoa jossa 1149 lisäystä ja 264 poistoa
  1. 1 1
      schema/201707012-lecture.sql
  2. 5 0
      schema/data/permission.sql
  3. 2 0
      src/main/java/com/goafanti/achievement/service/AchievementService.java
  4. 5 0
      src/main/java/com/goafanti/achievement/service/impl/AchievementServiceImpl.java
  5. 127 0
      src/main/java/com/goafanti/activityUser/bo/ActivityUserListBo.java
  6. 12 0
      src/main/java/com/goafanti/activityUser/service/ActivityUserService.java
  7. 74 2
      src/main/java/com/goafanti/activityUser/service/impl/ActivityUserServiceImpl.java
  8. 39 9
      src/main/java/com/goafanti/admin/controller/AdminActivityApiController.java
  9. 75 0
      src/main/java/com/goafanti/admin/controller/AdminActivityUserApiController.java
  10. 64 0
      src/main/java/com/goafanti/admin/controller/AdminAuditApiController.java
  11. 29 6
      src/main/java/com/goafanti/admin/controller/AdminLectureApiController.java
  12. 21 0
      src/main/java/com/goafanti/admin/controller/AdminNewsApiController.java
  13. 19 0
      src/main/java/com/goafanti/admin/controller/AdminStarApiController.java
  14. 51 50
      src/main/java/com/goafanti/common/constant/ErrorConstants.java
  15. 4 0
      src/main/java/com/goafanti/common/dao/ActivityUserMapper.java
  16. 49 0
      src/main/java/com/goafanti/common/enums/ActivityCacheKey.java
  17. 51 0
      src/main/java/com/goafanti/common/enums/LectureCacheKey.java
  18. 50 0
      src/main/java/com/goafanti/common/enums/NewsCacheKey.java
  19. 49 0
      src/main/java/com/goafanti/common/enums/StarCacheKey.java
  20. 1 1
      src/main/java/com/goafanti/common/mapper/AchievementMapper.xml
  21. 126 0
      src/main/java/com/goafanti/common/mapper/ActivityUserMapper.xml
  22. 32 28
      src/main/java/com/goafanti/common/mapper/DemandMapper.xml
  23. 28 0
      src/main/java/com/goafanti/common/model/ActivityUser.java
  24. 15 0
      src/main/java/com/goafanti/common/model/Lecture.java
  25. 2 0
      src/main/java/com/goafanti/demand/service/DemandService.java
  26. 47 31
      src/main/java/com/goafanti/demand/service/impl/DemandServiceImpl.java
  27. 2 0
      src/main/java/com/goafanti/lecture/service/LectureService.java
  28. 5 0
      src/main/java/com/goafanti/lecture/service/impl/LectureServiceImpl.java
  29. 2 2
      src/main/resources/props/config_dev.properties
  30. 2 2
      src/main/resources/props/config_local.properties
  31. 2 2
      src/main/resources/props/config_test.properties
  32. 25 7
      src/main/webapp/WEB-INF/views/portal/activity/activityIndex.html
  33. 5 4
      src/main/webapp/WEB-INF/views/portal/activity/details.html
  34. 6 6
      src/main/webapp/WEB-INF/views/portal/entrepreneurship/entrepreneurshipIndex.html
  35. 2 2
      src/main/webapp/WEB-INF/views/portal/financial/financialIndex.html
  36. 5 5
      src/main/webapp/WEB-INF/views/portal/highTech/authentication.html
  37. 4 2
      src/main/webapp/WEB-INF/views/portal/ipr/apply.html
  38. 66 63
      src/main/webapp/WEB-INF/views/portal/ipr/iso.html
  39. 28 26
      src/main/webapp/WEB-INF/views/portal/ipr/patentOperation.html
  40. 9 7
      src/main/webapp/WEB-INF/views/portal/news/newsIndex.html
  41. 3 3
      src/main/webapp/WEB-INF/views/portal/scienceTechnology/lecture.html
  42. 5 5
      src/main/webapp/WEB-INF/views/portal/service/serviceIndex.html

+ 1 - 1
schema/201707012-lecture.sql

@@ -1,6 +1,6 @@
 CREATE TABLE `lecture` (
   `id` VARCHAR(36) CHARACTER SET 'utf8mb4' NOT NULL,
-  `uid` VARCHAR(36) CHARACTER SET 'utf8mb4' NOT NULL COMMENT '开展讲座人ID',
+  `uid` VARCHAR(36) CHARACTER SET 'utf8mb4'  NULL COMMENT '开展讲座人ID',
   `lecture_time` DATETIME NOT NULL COMMENT '讲座开展时间',
   `create_time` DATETIME NULL COMMENT '记录创建时间',
   `last_update_time` DATETIME NULL COMMENT '记录最后更新时间',

+ 5 - 0
schema/data/permission.sql

@@ -510,3 +510,8 @@ insert into `permission`(`id`, `url`, `name`)
 values
 (UUID(), 'api/admin/cognizanceRecord/search', '高企信息管理--高企信息查询'),
 (UUID(), 'api/admin/cognizanceRecord/import', '高企信息管理--高企信息批量导入');
+
+insert into `permission`(`id`, `url`, `name`) 
+values
+(UUID(), 'api/admin/audit/modifyAchievementTechBroker', '科技成果技术经纪人流转(审核员)'),
+(UUID(), 'api/admin/audit/modifyDemandTechBroker', '科技需求技术经纪人流转(审核员)');

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

@@ -66,5 +66,7 @@ public interface AchievementService {
 
 	List<AchievementPortalSimilarListBo> findByFieldA(Integer fieldA, String id, Integer type);
 
+	int updateByPrimaryKeySelective(Achievement a);
+
 
 }

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

@@ -590,4 +590,9 @@ public class AchievementServiceImpl extends BaseMybatisDao<AchievementMapper> im
 		return null;
 	}
 
+	@Override
+	public int updateByPrimaryKeySelective(Achievement a) {
+		return achievementMapper.updateByPrimaryKey(a);
+	}
+
 }

+ 127 - 0
src/main/java/com/goafanti/activityUser/bo/ActivityUserListBo.java

@@ -0,0 +1,127 @@
+package com.goafanti.activityUser.bo;
+
+import java.util.Date;
+
+import org.apache.commons.lang3.time.DateFormatUtils;
+
+import com.goafanti.common.constant.AFTConstants;
+import com.goafanti.common.model.ActivityUser;
+
+public class ActivityUserListBo extends ActivityUser {
+	private String	activityName;
+
+	private Integer	number;
+
+	private String	mobile;
+
+	private String	username;
+
+	private String	unitName;
+
+	private Date	startTime;
+
+	private Date	endTime;
+
+	private Date	enrollDeadline;
+
+	public String getActivityName() {
+		return activityName;
+	}
+
+	public void setActivityName(String activityName) {
+		this.activityName = activityName;
+	}
+
+	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 getStartTime() {
+		return startTime;
+	}
+
+	public void setStartTime(Date startTime) {
+		this.startTime = startTime;
+	}
+
+	public Date getEndTime() {
+		return endTime;
+	}
+
+	public void setEndTime(Date endTime) {
+		this.endTime = endTime;
+	}
+
+	public Date getEnrollDeadline() {
+		return enrollDeadline;
+	}
+
+	public void setEnrollDeadline(Date enrollDeadline) {
+		this.enrollDeadline = enrollDeadline;
+	}
+
+	public String getStartTimeFormattedDate() {
+		if (this.startTime == null) {
+			return null;
+		} else {
+			return DateFormatUtils.format(this.startTime, AFTConstants.YYYYMMDDHHMMSS);
+		}
+	}
+
+	public void setCreateTimeFormattedDate(String startTimeFormattedDate) {
+
+	}
+
+	public String getEndTimeFormattedDate() {
+		if (this.endTime == null) {
+			return null;
+		} else {
+			return DateFormatUtils.format(this.endTime, AFTConstants.YYYYMMDDHHMMSS);
+		}
+	}
+
+	public void setEndTimeFormattedDate(String endTimeFormattedDate) {
+
+	}
+	
+	public String getEnrollDeadlineFormattedDate() {
+		if (this.enrollDeadline == null) {
+			return null;
+		} else {
+			return DateFormatUtils.format(this.enrollDeadline, AFTConstants.YYYYMMDDHHMMSS);
+		}
+	}
+
+	public void setEnrollDeadlineFormattedDate(String enrollDeadlineFormattedDate) {
+
+	}
+
+}

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

@@ -1,6 +1,10 @@
 package com.goafanti.activityUser.service;
 
+import java.util.List;
+
+import com.goafanti.activityUser.bo.ActivityUserListBo;
 import com.goafanti.common.model.ActivityUser;
+import com.goafanti.core.mybatis.page.Pagination;
 
 public interface ActivityUserService {
 
@@ -10,4 +14,12 @@ public interface ActivityUserService {
 
 	int update(ActivityUser au);
 
+	Pagination<ActivityUserListBo> listActivityUser(String activityName, String mobile, String username, Integer number,
+			Integer pageSize, Integer pageNo);
+
+	Pagination<ActivityUserListBo> listActivityOrg(String activityName, String mobile, String unitName, Integer number,
+			Integer pSize, Integer pNo);
+
+	int batchDeleteByPrimaryKey(List<String> asList);
+
 }

+ 74 - 2
src/main/java/com/goafanti/activityUser/service/impl/ActivityUserServiceImpl.java

@@ -1,19 +1,28 @@
 package com.goafanti.activityUser.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.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.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 ActivityUserServiceImpl implements ActivityUserService {
-	
+public class ActivityUserServiceImpl extends BaseMybatisDao<ActivityUserMapper> implements ActivityUserService {
+
 	@Autowired
 	private ActivityUserMapper activityUserMapper;
+
 	@Override
 	public ActivityUser selectByUid(String uid) {
 		return activityUserMapper.selectByUid(uid);
@@ -39,4 +48,67 @@ public class ActivityUserServiceImpl implements ActivityUserService {
 		return activityUserMapper.updateByPrimaryKey(au);
 	}
 
+	@SuppressWarnings("unchecked")
+	@Override
+	public Pagination<ActivityUserListBo> listActivityUser(String activityName, 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<ActivityUserListBo>) findPage("findActivityUserListByPage", "findActivityUserCount",
+				disposeActivityList(activityName, mobile, number, username, null), pNo, pSize);
+	}
+
+	@SuppressWarnings("unchecked")
+	@Override
+	public Pagination<ActivityUserListBo> listActivityOrg(String activityName, 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<ActivityUserListBo>) findPage("findActivityOrgListByPage", "findActivityOrgCount",
+				disposeActivityList(activityName, mobile, number, null, unitName), pNo, pSize);
+	}
+
+	private Map<String, Object> disposeActivityList(String activityName, 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(activityName)) {
+			params.put("activityName", activityName);
+		}
+
+		if (StringUtils.isNotBlank(username)) {
+			params.put("username", username);
+		}
+		
+		if (StringUtils.isNotBlank(unitName)){
+			params.put("unitName", unitName);
+		}
+		return params;
+	}
+
+	@Override
+	public int batchDeleteByPrimaryKey(List<String> id) {
+		return activityUserMapper.batchDeleteByPrimaryKey(id);
+	}
+
 }

+ 39 - 9
src/main/java/com/goafanti/admin/controller/AdminActivityApiController.java

@@ -20,6 +20,7 @@ import com.goafanti.activity.service.ActivityService;
 import com.goafanti.common.bo.Result;
 import com.goafanti.common.constant.ErrorConstants;
 import com.goafanti.common.controller.BaseApiController;
+import com.goafanti.common.enums.ActivityCacheKey;
 import com.goafanti.common.enums.ActivityFields;
 import com.goafanti.common.enums.AttachmentType;
 import com.goafanti.common.model.Activity;
@@ -33,9 +34,18 @@ import com.goafanti.core.mybatis.JDBCIdGenerator;
 @RequestMapping(value = "/api/admin/activity")
 public class AdminActivityApiController extends BaseApiController {
 	@Resource
-	private ActivityService activityService;
+	private ActivityService	activityService;
 	@Autowired
-	JDBCIdGenerator	idGenerator;
+	JDBCIdGenerator			idGenerator;
+	
+	/**
+	 * 活动报名列表
+	 */
+	@RequestMapping(value = "/signUpList", method = RequestMethod.GET)
+	public Result signUpList(){
+		Result res = new Result();
+		return res;
+	}
 
 	/**
 	 * 活动列表
@@ -91,27 +101,27 @@ public class AdminActivityApiController extends BaseApiController {
 					ActivityFields.getFieldDesc(bindingResult.getFieldError().getField())));
 			return res;
 		}
-		
+
 		if (StringUtils.isBlank(ia.getId())) {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "活动ID"));
 			return res;
 		}
-		
+
 		res = disposeInputActivity(res, ia, startTimeFormattedDate);
 		if (!res.getError().isEmpty()) {
 			return res;
 		}
-		
+
 		activityService.update((Activity) res.getData(), startTimeFormattedDate, endTimeFormattedDate,
 				enrollDeadlineFormattedDate, Long.parseLong(ia.getId()));
 		return res;
 	}
-	
+
 	/**
 	 * 详情
 	 */
 	@RequestMapping(value = "/detail", method = RequestMethod.GET)
-	public Result detail(Long id){
+	public Result detail(Long id) {
 		Result res = new Result();
 		if (null == id) {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "活动Id"));
@@ -120,7 +130,7 @@ public class AdminActivityApiController extends BaseApiController {
 		res.setData(activityService.findActivityDetail(id));
 		return res;
 	}
-	
+
 	/**
 	 * 删除
 	 */
@@ -134,7 +144,7 @@ public class AdminActivityApiController extends BaseApiController {
 		}
 		return res;
 	}
-	
+
 	/**
 	 * 活动图片上传
 	 */
@@ -153,6 +163,26 @@ public class AdminActivityApiController extends BaseApiController {
 		return res;
 	}
 
+	/**
+	 * 清除缓存
+	 */
+	@RequestMapping(value = "/cleanCache", method = RequestMethod.POST)
+	public Result cleanCache(String cacheKey) {
+		Result res = new Result();
+		if (StringUtils.isBlank(cacheKey)) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "缓存标记"));
+			return res;
+		}
+		if (ActivityCacheKey.ACTIVITY_PORTAL_LIST_CACHE_KEY.getCode().equals(cacheKey)) {
+			activityService.cleanActivityPortalList(); // 清除门户端科技活动列表缓存
+		} else {
+			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "缓存标记"));
+		}
+		return res;
+	}
+	
+	
+
 	private Result disposeInputActivity(Result res, InputActivity ia, String startTimeFormattedDate) {
 		if (StringUtils.isBlank(ia.getName())) {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "标题"));

+ 75 - 0
src/main/java/com/goafanti/admin/controller/AdminActivityUserApiController.java

@@ -0,0 +1,75 @@
+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.activityUser.service.ActivityUserService;
+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/activityUser")
+public class AdminActivityUserApiController extends BaseApiController {
+	@Resource
+	private ActivityUserService activityUserService;
+
+	/**
+	 * 活动圈个人用户报名列表
+	 */
+	@RequestMapping(value = "/userList", method = RequestMethod.GET)
+	public Result activityUserList(String activityName, String mobile, String username, Integer number, String pageSize,
+			String pageNo) {
+		Result res = new Result();
+		res.setData(activityUserService.listActivityUser(activityName, mobile, username, number, getPSize(pageSize), getPNo(pageNo)));
+		return res;
+	}
+
+	/**
+	 * 活动圈组织用户报名列表
+	 */
+	@RequestMapping(value = "/orgList", method = RequestMethod.GET)
+	public Result activityOrgList(String activityName, String mobile, String unitName, Integer number, String pageSize,
+			String pageNo) {
+		Result res = new Result();
+		res.setData(activityUserService.listActivityOrg(activityName, 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(activityUserService.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;
+	}
+}

+ 64 - 0
src/main/java/com/goafanti/admin/controller/AdminAuditApiController.java

@@ -27,6 +27,70 @@ public class AdminAuditApiController extends CertifyApiController {
 	private DemandService		demandService;
 	@Resource
 	private AchievementService	achievementService;
+	
+	/**
+	 * 科技成果技术经纪人流转
+	 */
+	@RequestMapping(value = "/modifyAchievementTechBroker", method = RequestMethod.POST)
+	public Result modifyAchievementTechBroker(String id, String techBrokerId){
+		Result res =new Result();
+		if (StringUtils.isBlank(id)){
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "科技成果ID"));
+			return res;
+		}
+		
+		if(StringUtils.isBlank(techBrokerId)){
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "技术经纪人ID"));
+			return res;
+		}
+		
+		Achievement a = achievementService.selectByPrimaryKey(id);
+		if (null == a){
+			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "科技成果ID"));
+			return res;
+		}
+		
+		if (!AchievementAuditStatus.AUDITED.getCode().equals(a.getAuditStatus())){
+			res.getError().add(buildError("", "当前状态无法更改技术经纪人!"));
+			return res;
+		}
+		
+		
+		a.setTechBrokerId(techBrokerId);
+		res.setData(achievementService.updateByPrimaryKeySelective(a));
+		return res;
+	}
+	
+	/**
+	 * 科技需求技术经纪人流转
+	 */
+	@RequestMapping(value = "/modifyDemandTechBroker", method = RequestMethod.POST)
+	public Result modifyDemandTechBroker(String id, String techBrokerId){
+		Result res =new Result();
+		if (StringUtils.isBlank(id)){
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "科技需求ID"));
+			return res;
+		}
+		
+		if(StringUtils.isBlank(techBrokerId)){
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "技术经纪人ID"));
+			return res;
+		}
+		
+		Demand d = demandService.selectByPrimaryKey(id);
+		if (null == d){
+			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "科技需求ID"));
+			return res;
+		}
+		
+		if (!DemandAuditStatus.AUDITED.getCode().equals(d.getAuditStatus())){
+			res.getError().add(buildError("", "当前状态无法更改技术经纪人!"));
+			return res;
+		}
+		d.setTechBrokerId(techBrokerId);
+		res.setData(demandService.updateByPrimaryKeySelective(d));
+		return res;
+	}
 
 	/**
 	 * 获取技术经纪人下拉

+ 29 - 6
src/main/java/com/goafanti/admin/controller/AdminLectureApiController.java

@@ -19,6 +19,7 @@ import com.goafanti.common.constant.AFTConstants;
 import com.goafanti.common.constant.ErrorConstants;
 import com.goafanti.common.controller.BaseApiController;
 import com.goafanti.common.enums.AttachmentType;
+import com.goafanti.common.enums.LectureCacheKey;
 import com.goafanti.common.enums.LectureDynamicType;
 import com.goafanti.common.enums.LectureFields;
 import com.goafanti.common.enums.LectureHotType;
@@ -59,7 +60,7 @@ public class AdminLectureApiController extends BaseApiController {
 	@RequestMapping(value = "/dynamic", method = RequestMethod.GET)
 	public Result dynamic() {
 		Result res = new Result();
-		res.setData(lectureService.listDynamic(AFTConstants.LECTURE_DYNAMIC_LIST_CACHE_KEY));
+		res.setData(lectureService.listAdminDynamic());
 		return res;
 	}
 
@@ -132,9 +133,9 @@ public class AdminLectureApiController extends BaseApiController {
 		Lecture l = new Lecture();
 		BeanUtils.copyProperties(il, l);
 		lectureService.update(l, lectureTimeFormattedDate, endTimeFormattedDate);
-		lectureService.clearBigShotLectureList(AFTConstants.BIG_SHOT_LECTURE_CACHE_KEY); //大咖说页面缓存
-		lectureService.clearLectureDynamicList(AFTConstants.LECTURE_DYNAMIC_LIST_CACHE_KEY); //科技明星页面缓存
-		lectureService.clearLectureList(AFTConstants.LECTURE_LIST_CACHE_KEY); //科技讲堂页面缓存
+		lectureService.clearBigShotLectureList(AFTConstants.BIG_SHOT_LECTURE_CACHE_KEY); // 大咖说页面缓存
+		lectureService.clearLectureDynamicList(AFTConstants.LECTURE_DYNAMIC_LIST_CACHE_KEY); // 科技明星页面缓存
+		lectureService.clearLectureList(AFTConstants.LECTURE_LIST_CACHE_KEY); // 科技讲堂页面缓存
 		return res;
 	}
 
@@ -190,13 +191,35 @@ public class AdminLectureApiController extends BaseApiController {
 		}
 		return res;
 	}
+	
+	/**
+	 * 清除缓存
+	 */
+	@RequestMapping(value = "/cleanCache", method = RequestMethod.POST)
+	public Result cleanCache(String cacheKey) {
+		Result res = new Result();
+		if (StringUtils.isBlank(cacheKey)){
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "缓存标记"));
+			return res;
+		}
+		if (LectureCacheKey.BIG_SHOT_LECTURE_CACHE_KEY.getCode().equals(cacheKey)){
+			lectureService.clearBigShotLectureList(AFTConstants.BIG_SHOT_LECTURE_CACHE_KEY); // 清除大咖说页面缓存
+		} else if (LectureCacheKey.LECTURE_DYNAMIC_LIST_CACHE_KEY.getCode().equals(cacheKey)){
+			lectureService.clearLectureDynamicList(AFTConstants.LECTURE_DYNAMIC_LIST_CACHE_KEY); // 清除科技明星页面缓存
+		} else if (LectureCacheKey.LECTURE_LIST_CACHE_KEY.getCode().equals(cacheKey)){
+			lectureService.clearLectureList(AFTConstants.LECTURE_LIST_CACHE_KEY); // 清除科技讲堂页面缓存
+		} else {
+			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "缓存标记"));
+		}
+		return res;
+	}
 
 	private Result disposeLecture(Result res, InputLecture il, String lectureTimeFormattedDate,
 			String endTimeFormattedDate) {
-		if (StringUtils.isBlank(il.getUid())) {
+		/*if (StringUtils.isBlank(il.getUid())) {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "讲堂开展人ID"));
 			return res;
-		}
+		}*/
 
 		if (StringUtils.isBlank(il.getName())) {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "讲堂名称"));

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

@@ -21,6 +21,7 @@ import com.goafanti.common.constant.AFTConstants;
 import com.goafanti.common.constant.ErrorConstants;
 import com.goafanti.common.controller.BaseApiController;
 import com.goafanti.common.enums.AttachmentType;
+import com.goafanti.common.enums.NewsCacheKey;
 import com.goafanti.common.model.News;
 import com.goafanti.common.utils.DateUtils;
 import com.goafanti.common.utils.StringUtils;
@@ -153,6 +154,26 @@ public class AdminNewsApiController extends BaseApiController {
 		return res;
 	}
 
+	/**
+	 * 清除缓存
+	 */
+	@RequestMapping(value = "/cleanCache", method = RequestMethod.POST)
+	public Result cleanCache(String cacheKey) {
+		Result res = new Result();
+		if (StringUtils.isBlank(cacheKey)) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "缓存标记"));
+			return res;
+		}
+		if (NewsCacheKey.NEWS_LIST_CACHE_KEY.getCode().equals(cacheKey)) {
+			newsService.cleanList(); // 清除策源地页面新闻列表缓存
+		} else if (NewsCacheKey.NEWS_PORTAL_LIST_CACHE_KEY.getCode().equals(cacheKey)) {
+			newsService.cleanPortalList(); // 清除新闻列表页列表缓存
+		} else {
+			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "缓存标记"));
+		}
+		return res;
+	}
+
 	private Result disposeInputNews(Result res, InputNews news, String createTimeFormattedDate) {
 		if (StringUtils.isBlank(news.getTitle())) {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "新闻标题"));

+ 19 - 0
src/main/java/com/goafanti/admin/controller/AdminStarApiController.java

@@ -14,6 +14,7 @@ import com.goafanti.common.bo.Result;
 import com.goafanti.common.constant.AFTConstants;
 import com.goafanti.common.constant.ErrorConstants;
 import com.goafanti.common.controller.BaseApiController;
+import com.goafanti.common.enums.StarCacheKey;
 import com.goafanti.common.enums.StarType;
 import com.goafanti.common.model.Star;
 import com.goafanti.common.utils.StringUtils;
@@ -123,4 +124,22 @@ public class AdminStarApiController extends BaseApiController {
 		return res;
 	}
 	
+	/**
+	 * 清除缓存
+	 */
+	@RequestMapping(value = "/cleanCache", method = RequestMethod.POST)
+	public Result cleanCache(String cacheKey) {
+		Result res = new Result();
+		if (StringUtils.isBlank(cacheKey)) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "缓存标记"));
+			return res;
+		}
+		if (StarCacheKey.BIG_SHOT_STAR_CACHE_KEY.getCode().equals(cacheKey)) {
+			starService.clearBigShotStarList(AFTConstants.BIG_SHOT_STAR_CACHE_KEY); // 清除大咖说科技明星列表缓存
+		} else {
+			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "缓存标记"));
+		}
+		return res;
+	}
+	
 }

+ 51 - 50
src/main/java/com/goafanti/common/constant/ErrorConstants.java

@@ -2,103 +2,104 @@ package com.goafanti.common.constant;
 
 public class ErrorConstants {
 
-	public static final String	NON_LOGIN						= "NON_LOGIN";
+	public static final String	NON_LOGIN							= "NON_LOGIN";
 
-	public static final String	VCODE_ERROR						= "VCODE_ERROR";
+	public static final String	VCODE_ERROR							= "VCODE_ERROR";
 
-	public static final String	NO_AUTH_ERROR					= "NO_AUTH_ERROR";
+	public static final String	NO_AUTH_ERROR						= "NO_AUTH_ERROR";
 
-	public static final String	PARAM_ERROR						= "PARAM_ERROR";
+	public static final String	PARAM_ERROR							= "PARAM_ERROR";
 
-	public static final String	PARAM_INTEGER_ERROR				= "PARAM_INTEGER_ERROR";
+	public static final String	PARAM_INTEGER_ERROR					= "PARAM_INTEGER_ERROR";
 
-	public static final String	PARAM_EMPTY_ERROR				= "PARAM_EMPTY_ERROR";
+	public static final String	PARAM_EMPTY_ERROR					= "PARAM_EMPTY_ERROR";
 
-	public static final String	PARAM_SIZE_ERROR				= "PARAM_SIZE_ERROR";
+	public static final String	PARAM_SIZE_ERROR					= "PARAM_SIZE_ERROR";
 
-	public static final String	PARAM_PATTERN_ERROR				= "PARAM_PATTERN_ERROR";
+	public static final String	PARAM_PATTERN_ERROR					= "PARAM_PATTERN_ERROR";
 
-	public static final String	EMAIL_SIZE_ERROR				= "EMAIL_SIZE_ERROR";
+	public static final String	EMAIL_SIZE_ERROR					= "EMAIL_SIZE_ERROR";
 
-	public static final String	EMAIL_PATTERN_ERROR				= "EMAIL_PATTERN_ERROR";
+	public static final String	EMAIL_PATTERN_ERROR					= "EMAIL_PATTERN_ERROR";
 
-	public static final String	DUNPLICATE_KAY_ERROR			= "DUNPLICATE_KAY_ERROR";
+	public static final String	DUNPLICATE_KAY_ERROR				= "DUNPLICATE_KAY_ERROR";
 
-	public static final String	DATA_EMPTY_ERROR				= "DATA_EMPTY_ERROR";
+	public static final String	DATA_EMPTY_ERROR					= "DATA_EMPTY_ERROR";
 
-	public static final String	PWD_NOT_MATCH_ERROR				= "PWD_NOT_MATCH_ERROR";
+	public static final String	PWD_NOT_MATCH_ERROR					= "PWD_NOT_MATCH_ERROR";
 
-	public static final String	PWD_SAME_ERROR					= "PWD_SAME_ERROR";
+	public static final String	PWD_SAME_ERROR						= "PWD_SAME_ERROR";
 
-	public static final String	USER_ALREADY_EXIST				= "USER_ALREADY_EXIST";
+	public static final String	USER_ALREADY_EXIST					= "USER_ALREADY_EXIST";
 
-	public static final String	MOBILE_PATTERN_ERROR			= "MOBILE_PATTERN_ERROR";
+	public static final String	MOBILE_PATTERN_ERROR				= "MOBILE_PATTERN_ERROR";
 
-	public static final String	MOBILE_SIZE_ERROR				= "MOBILE_SIZE_ERROR";
+	public static final String	MOBILE_SIZE_ERROR					= "MOBILE_SIZE_ERROR";
 
-	public static final String	MOBILE_SAME_ERROR				= "MOBILE_SAME_ERROR";
+	public static final String	MOBILE_SAME_ERROR					= "MOBILE_SAME_ERROR";
 
-	public static final String	MOBILE_EMPTY_ERROR				= "MOBILE_EMPTY_ERROR";
+	public static final String	MOBILE_EMPTY_ERROR					= "MOBILE_EMPTY_ERROR";
 
-	public static final String	IDNUMBER_SIZE_ERROR				= "IDNUMBER_SIZE_ERROR";
+	public static final String	IDNUMBER_SIZE_ERROR					= "IDNUMBER_SIZE_ERROR";
 
-	public static final String	IDNUMBER_PATTERN_ERROR			= "IDNUMBER_PATTERN_ERROR";
+	public static final String	IDNUMBER_PATTERN_ERROR				= "IDNUMBER_PATTERN_ERROR";
 
-	public static final String	MCODE_ERROR						= "MCODE_ERROR";
+	public static final String	MCODE_ERROR							= "MCODE_ERROR";
 
-	public static final String	MCODE_OVERTIME_ERROR			= "MCODE_OVERTIME_ERROR";
+	public static final String	MCODE_OVERTIME_ERROR				= "MCODE_OVERTIME_ERROR";
 
-	public static final String	NON_REGISTER					= "NON_REGISTER";
+	public static final String	NON_REGISTER						= "NON_REGISTER";
 
-	public static final String	RESET_CODE_ERROR				= "RESET_CODE_ERROR";
+	public static final String	RESET_CODE_ERROR					= "RESET_CODE_ERROR";
 
-	public static final String	RESET_CODE_OVERTIME				= "RESET_CODE_OVERTIME";
+	public static final String	RESET_CODE_OVERTIME					= "RESET_CODE_OVERTIME";
 
-	public static final String	FILE_NON_EXISTENT				= "FILE_NON_EXISTENT";
+	public static final String	FILE_NON_EXISTENT					= "FILE_NON_EXISTENT";
 
-	public static final String	INSUFFICIENT_AUTHORITY_ERROR	= "INSUFFICIENT_AUTHORITY_ERROR";
+	public static final String	INSUFFICIENT_AUTHORITY_ERROR		= "INSUFFICIENT_AUTHORITY_ERROR";
 
-	public static final String	NON_CERTIFIED					= "NON_CERTIFIED";
+	public static final String	NON_CERTIFIED						= "NON_CERTIFIED";
 
-	public static final String	DUPLICATE_DATA_ERROR			= "DUPLICATE_DATA_ERROR";
+	public static final String	DUPLICATE_DATA_ERROR				= "DUPLICATE_DATA_ERROR";
 
-	public static final String	FILE_PATTERN_ERROR				= "FILE_PATTERN_ERROR";
+	public static final String	FILE_PATTERN_ERROR					= "FILE_PATTERN_ERROR";
 
-	public static final String	RECORD_CALLBACK					= "RECORD_CALLBACK";
+	public static final String	RECORD_CALLBACK						= "RECORD_CALLBACK";
 
-	public static final String	RECORD_SETTLEMENT				= "RECORD_SETTLEMENT";
+	public static final String	RECORD_SETTLEMENT					= "RECORD_SETTLEMENT";
 
-	public static final String	STATUS_ERROR					= "STATUS_ERROR";
+	public static final String	STATUS_ERROR						= "STATUS_ERROR";
 
-	public static final String	CONTRACT_PATENT_CREATED			= "CONTRACT_PATENT_CREATED";
+	public static final String	CONTRACT_PATENT_CREATED				= "CONTRACT_PATENT_CREATED";
 
-	public static final String	CONTRACT_COPYRIGHT_CREATED		= "CONTRACT_COPYRIGHT_CREATED";
+	public static final String	CONTRACT_COPYRIGHT_CREATED			= "CONTRACT_COPYRIGHT_CREATED";
 
-	public static final String	CONTRACT_TECHPROJECT_CREATED	= "CONTRACT_TECHPROJECT_CREATED";
+	public static final String	CONTRACT_TECHPROJECT_CREATED		= "CONTRACT_TECHPROJECT_CREATED";
 
-	public static final String	CONTRACT_COGNIZANCE_CREATED		= "CONTRACT_COGNIZANCE_CREATED";
+	public static final String	CONTRACT_COGNIZANCE_CREATED			= "CONTRACT_COGNIZANCE_CREATED";
 
-	public static final String	RECORD_REJECT					= "RECORD_REJECT";
+	public static final String	RECORD_REJECT						= "RECORD_REJECT";
 
-	public static final String	EVALUATE_ID						= "EVALUATE_ID";
+	public static final String	EVALUATE_ID							= "EVALUATE_ID";
 
-	public static final String	EVALUATE_STEP					= "EVALUATE_STEP";
+	public static final String	EVALUATE_STEP						= "EVALUATE_STEP";
 
-	public static final String	EVALUATE_PARAM					= "EVALUATE_PARAM";
+	public static final String	EVALUATE_PARAM						= "EVALUATE_PARAM";
 
-	public static final String	CONTRACT_YEAR_SECTION			= "CONTRACT_YEAR_SECTION";
+	public static final String	CONTRACT_YEAR_SECTION				= "CONTRACT_YEAR_SECTION";
 
-	public static final String	VCODE_EMPTY_ERROR				= "VCODE_EMPTY_ERROR";
+	public static final String	VCODE_EMPTY_ERROR					= "VCODE_EMPTY_ERROR";
 
-	public static final String	MCODE_FREQUENCY_ERROR			= "MCODE_FREQUENCY_ERROR";
+	public static final String	MCODE_FREQUENCY_ERROR				= "MCODE_FREQUENCY_ERROR";
 
-	public static final String	MCODE_EMPTY_ERROR				= "MCODE_EMPTY_ERROR";
+	public static final String	MCODE_EMPTY_ERROR					= "MCODE_EMPTY_ERROR";
 
-	public static final String	IDENTITY_PAY_OVER_TIME			= "IDENTITY_PAY_OVER_TIME";
+	public static final String	IDENTITY_PAY_OVER_TIME				= "IDENTITY_PAY_OVER_TIME";
 
-	public static final String	OVER_MAX_WRONG_COUNT			= "OVER_MAX_WRONG_COUNT";
+	public static final String	OVER_MAX_WRONG_COUNT				= "OVER_MAX_WRONG_COUNT";
 
-	public static final String	WRONG_MONEY						= "WRONG_MONEY";
+	public static final String	WRONG_MONEY							= "WRONG_MONEY";
+
+	public static final String	M_CODE_ERROR						= "M_CODE_ERROR";
 
-	public static final String	M_CODE_ERROR					= "M_CODE_ERROR";
 }

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

@@ -1,5 +1,7 @@
 package com.goafanti.common.dao;
 
+import java.util.List;
+
 import com.goafanti.common.model.ActivityUser;
 import com.goafanti.common.model.ActivityUserKey;
 
@@ -17,4 +19,6 @@ public interface ActivityUserMapper {
     int updateByPrimaryKey(ActivityUser record);
 
 	ActivityUser selectByUid(String uid);
+
+	int batchDeleteByPrimaryKey(List<String> id);
 }

+ 49 - 0
src/main/java/com/goafanti/common/enums/ActivityCacheKey.java

@@ -0,0 +1,49 @@
+package com.goafanti.common.enums;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public enum ActivityCacheKey {
+	ACTIVITY_PORTAL_LIST_CACHE_KEY("activity_portal_list_cache_key", "门户端科技活动列表缓存"),
+	
+	OTHER("", "未知参数");
+	
+	private String	code;
+	private String	desc;
+	
+	private static Map<String, ActivityCacheKey> status = new HashMap<String, ActivityCacheKey>();
+	
+	private ActivityCacheKey(String code, String desc) {
+		this.code = code;
+		this.desc = desc;
+	}
+	
+	static {
+		for (ActivityCacheKey value : ActivityCacheKey.values()) {
+			status.put(value.getCode(), value);
+		}
+	}
+	
+	public static ActivityCacheKey getField(String code) {
+		if (containsType(code)) {
+			return status.get(code);
+		}
+		return OTHER;
+	}
+	
+	public static String getFieldDesc(String code) {
+		return getField(code).getDesc();
+	}
+
+	public static boolean containsType(String code) {
+		return status.containsKey(code);
+	}
+	
+	public String getCode() {
+		return code;
+	}
+
+	public String getDesc() {
+		return desc;
+	}
+}

+ 51 - 0
src/main/java/com/goafanti/common/enums/LectureCacheKey.java

@@ -0,0 +1,51 @@
+package com.goafanti.common.enums;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public enum LectureCacheKey {
+	BIG_SHOT_LECTURE_CACHE_KEY("big_shot_lecture_cache_key", "大咖说页面缓存"),
+	LECTURE_DYNAMIC_LIST_CACHE_KEY("lecture_dynamic_list_cache_key", "科技明星页面缓存"),
+	LECTURE_LIST_CACHE_KEY("lecture_list_cache_key", "科技讲堂页面缓存"),
+	
+	OTHER("", "未知参数");
+	
+	private String	code;
+	private String	desc;
+	
+	private static Map<String, LectureCacheKey> status = new HashMap<String, LectureCacheKey>();
+	
+	private LectureCacheKey(String code, String desc) {
+		this.code = code;
+		this.desc = desc;
+	}
+	
+	static {
+		for (LectureCacheKey value : LectureCacheKey.values()) {
+			status.put(value.getCode(), value);
+		}
+	}
+	
+	public static LectureCacheKey getField(String code) {
+		if (containsType(code)) {
+			return status.get(code);
+		}
+		return OTHER;
+	}
+	
+	public static String getFieldDesc(String code) {
+		return getField(code).getDesc();
+	}
+
+	public static boolean containsType(String code) {
+		return status.containsKey(code);
+	}
+	
+	public String getCode() {
+		return code;
+	}
+
+	public String getDesc() {
+		return desc;
+	}
+}

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

@@ -0,0 +1,50 @@
+package com.goafanti.common.enums;
+
+import java.util.HashMap;
+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", "新闻列表页面缓存"),
+	
+	OTHER("", "未知参数");
+	
+	private String	code;
+	private String	desc;
+	
+	private static Map<String, NewsCacheKey> status = new HashMap<String, NewsCacheKey>();
+	
+	private NewsCacheKey(String code, String desc) {
+		this.code = code;
+		this.desc = desc;
+	}
+	
+	static {
+		for (NewsCacheKey value : NewsCacheKey.values()) {
+			status.put(value.getCode(), value);
+		}
+	}
+	
+	public static NewsCacheKey getField(String code) {
+		if (containsType(code)) {
+			return status.get(code);
+		}
+		return OTHER;
+	}
+	
+	public static String getFieldDesc(String code) {
+		return getField(code).getDesc();
+	}
+
+	public static boolean containsType(String code) {
+		return status.containsKey(code);
+	}
+	
+	public String getCode() {
+		return code;
+	}
+
+	public String getDesc() {
+		return desc;
+	}
+}

+ 49 - 0
src/main/java/com/goafanti/common/enums/StarCacheKey.java

@@ -0,0 +1,49 @@
+package com.goafanti.common.enums;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public enum StarCacheKey {
+	BIG_SHOT_STAR_CACHE_KEY("big_shot_star_cache_key", "大咖说科技明星列表缓存"),
+	
+	OTHER("", "未知参数");
+	
+	private String	code;
+	private String	desc;
+	
+	private static Map<String, StarCacheKey> status = new HashMap<String, StarCacheKey>();
+	
+	private StarCacheKey(String code, String desc) {
+		this.code = code;
+		this.desc = desc;
+	}
+	
+	static {
+		for (StarCacheKey value : StarCacheKey.values()) {
+			status.put(value.getCode(), value);
+		}
+	}
+	
+	public static StarCacheKey getField(String code) {
+		if (containsType(code)) {
+			return status.get(code);
+		}
+		return OTHER;
+	}
+	
+	public static String getFieldDesc(String code) {
+		return getField(code).getDesc();
+	}
+
+	public static boolean containsType(String code) {
+		return status.containsKey(code);
+	}
+	
+	public String getCode() {
+		return code;
+	}
+
+	public String getDesc() {
+		return desc;
+	}
+}

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

@@ -1060,7 +1060,7 @@
   	and a.audit_status = 3
   	order by a.release_date desc
   	<if test="page_sql!=null">
-			${page_sql}
+		${page_sql}
 	</if>
   </select>
   

+ 126 - 0
src/main/java/com/goafanti/common/mapper/ActivityUserMapper.xml

@@ -86,4 +86,130 @@
     from activity_user
     where  uid = #{uid,jdbcType=VARCHAR}
   </select>
+  
+  <select id="findActivityUserListByPage" parameterType="String" resultType="com.goafanti.activityUser.bo.ActivityUserListBo">
+  	select
+  		au.aid,
+  		au.uid,
+  		au.create_time as createTime,
+  		au.last_update_time as lastUpdateTime,
+  		a.name as activityName,
+  		u.number,
+  		u.mobile,
+  		ui.username,
+  		a.start_time as startTime,
+  		a.end_time as endTime,
+  		a.enroll_deadline as enrollDeadline
+  	from activity_user au
+  	left join user u on u.id = au.uid
+  	left join user_identity ui on ui.uid = au.uid
+  	left join activity a on a.id = au.aid
+  	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="activityName != null">
+  		and a.name like CONCAT('%',#{activityName,jdbcType=VARCHAR},'%')
+  	</if>
+  	<if test="username != null">
+  		and ui.username like CONCAT('%',#{username,jdbcType=VARCHAR},'%')
+  	</if>
+  	order by au.last_update_time desc
+  	<if test="page_sql!=null">
+		${page_sql}
+	</if>
+  </select>
+  
+  <select id="findActivityUserCount" parameterType="String" resultType="java.lang.Integer">
+  	select
+  		count(1)
+  	from activity_user au
+  	left join user u on u.id = au.uid
+  	left join user_identity ui on ui.uid = au.uid
+  	left join activity a on a.id = au.aid
+  	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="activityName != null">
+  		and a.name like CONCAT('%',#{activityName,jdbcType=VARCHAR},'%')
+  	</if>
+  	<if test="username != null">
+  		and ui.username like CONCAT('%',#{username,jdbcType=VARCHAR},'%')
+  	</if>
+  </select>
+  
+  <select id="findActivityOrgListByPage" parameterType="String" resultType="com.goafanti.activityUser.bo.ActivityUserListBo">
+  	select
+  		au.aid,
+  		au.uid,
+  		au.create_time as createTime,
+  		au.last_update_time as lastUpdateTime,
+  		a.name as activityName,
+  		u.number,
+  		u.mobile,
+  		oi.unit_name as unitName,
+  		a.start_time as startTime,
+  		a.end_time as endTime,
+  		a.enroll_deadline as enrollDeadline
+  	from activity_user au
+  	left join user u on u.id = au.uid
+  	left join organization_identity oi on oi.uid = au.uid
+  	left join activity a on a.id = au.aid
+  	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 a.name like CONCAT('%',#{activityName,jdbcType=VARCHAR},'%')
+  	</if>
+  	<if test="unitName != null">
+  		and ui.unit_name like CONCAT('%',#{unitName,jdbcType=VARCHAR},'%')
+  	</if>
+  	order by au.last_update_time desc
+  	<if test="page_sql!=null">
+		${page_sql}
+	</if>
+  </select>
+  
+  <select id="findActivityOrgCount" parameterType="String" resultType="java.lang.Integer">
+  	select
+  		count(1)
+  	from activity_user au
+  	left join user u on u.id = au.uid
+  	left join organization_identity oi on oi.uid = au.uid
+  	left join activity a on a.id = au.aid
+  	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 a.name like CONCAT('%',#{activityName,jdbcType=VARCHAR},'%')
+  	</if>
+  	<if test="unitName != null">
+  		and ui.unit_name like CONCAT('%',#{unitName,jdbcType=VARCHAR},'%')
+  	</if>
+  </select>
+  
+  <delete id="batchDeleteByPrimaryKey" parameterType="java.util.List">
+  	delete
+  		from activity_user
+  	where id in
+  	<foreach item="item" index="index" collection="list" open="("
+			separator="," close=")">
+			#{item}
+	</foreach>
+  </delete>
 </mapper>

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

@@ -481,18 +481,19 @@
 	from  demand d 
 	LEFT JOIN user_identity ui on d.employer_id = ui.uid
 	LEFT JOIN admin a on a.id = d.tech_broker_id
-	<if test="mid != null">
+	<if test="adminId != null">
 		LEFT JOIN user u on d.employer_id = u.id
 	</if>
 	where d.deleted_sign = 0 and d.data_category = 0 
-	<if test="mid != null">
-		and u.mid = #{mid,jdbcType=VARCHAR}
+	<if test="adminId != null">
+		and (u.mid = #{adminId,jdbcType=VARCHAR}
 	</if>
-	<if test="principal != null">
-		and  d.principal_id = #{principal,jdbcType=VARCHAR}
+	<if test="adminId != null">
+		or  d.principal_id = #{adminId,jdbcType=VARCHAR}
 	</if>
-	<if test="techBroker != null">
-		and  d.tech_broker_id = #{techBroker,jdbcType=VARCHAR}
+	<if test="adminId != null">
+		or  d.tech_broker_id = #{adminId,jdbcType=VARCHAR}
+		)
 	</if>
 	<if test="province != null">
 		and  ui.province = #{province,jdbcType=INTEGER}
@@ -551,18 +552,19 @@
 	from  demand d 
 	LEFT JOIN user_identity ui on d.employer_id = ui.uid
 	LEFT JOIN admin a on a.id = d.tech_broker_id
-	<if test="mid != null">
+	<if test="adminId != null">
 		LEFT JOIN user u on d.employer_id = u.id
 	</if>
 	where d.deleted_sign = 0 and d.data_category = 0 
-	<if test="mid != null">
-		and u.mid = #{mid,jdbcType=VARCHAR}
+	<if test="adminId != null">
+		and (u.mid = #{adminId,jdbcType=VARCHAR}
 	</if>
-	<if test="principal != null">
-		and  d.principal_id = #{principal,jdbcType=VARCHAR}
+	<if test="adminId != null">
+		or  d.principal_id = #{adminId,jdbcType=VARCHAR}
 	</if>
-	<if test="techBroker != null">
-		and  d.tech_broker_id = #{techBroker,jdbcType=VARCHAR}
+	<if test="adminId != null">
+		or  d.tech_broker_id = #{adminId,jdbcType=VARCHAR}
+		)
 	</if>
 	<if test="serialNumber != null">
 		and  d.serial_number = #{serialNumber,jdbcType=INTEGER}
@@ -623,18 +625,19 @@
 	from  demand d 
 	LEFT JOIN organization_identity oi on d.employer_id = oi.uid
 	LEFT JOIN admin a on a.id = d.tech_broker_id
-	<if test="mid != null">
+	<if test="adminId != null">
 		LEFT JOIN user u on d.employer_id = u.id
 	</if>
 	where d.deleted_sign = 0 and d.data_category = 1 
-	<if test="mid != null">
-		and u.mid = #{mid,jdbcType=VARCHAR}
+	<if test="adminId != null">
+		and (u.mid = #{adminId,jdbcType=VARCHAR}
 	</if>
-	<if test="principal != null">
-		and  d.principal_id = #{principal,jdbcType=VARCHAR}
+	<if test="adminId != null">
+		or  d.principal_id = #{adminId,jdbcType=VARCHAR}
 	</if>
-	<if test="techBroker != null">
-		and  d.tech_broker_id = #{techBroker,jdbcType=VARCHAR}
+	<if test="adminId != null">
+		or  d.tech_broker_id = #{adminId,jdbcType=VARCHAR}
+		)
 	</if>
 	<if test="province != null">
 		and  oi.licence_province = #{province,jdbcType=INTEGER}
@@ -693,18 +696,19 @@
 	from  demand d 
 	LEFT JOIN organization_identity oi on d.employer_id = oi.uid
 	LEFT JOIN admin a on a.id = d.tech_broker_id
-	<if test="mid != null">
+	<if test="adminId != null">
 		LEFT JOIN user u on d.employer_id = u.id
 	</if>
 	where d.deleted_sign = 0 and d.data_category = 1
-	<if test="mid != null">
-		and u.mid = #{mid,jdbcType=VARCHAR}
+	<if test="adminId != null">
+		and (u.mid = #{adminId,jdbcType=VARCHAR}
 	</if>
-	<if test="principal != null">
-		and  d.principal_id = #{principal,jdbcType=VARCHAR}
+	<if test="adminId != null">
+		or  d.principal_id = #{adminId,jdbcType=VARCHAR}
 	</if>
-	<if test="techBroker != null">
-		and  d.tech_broker_id = #{techBroker,jdbcType=VARCHAR}
+	<if test="adminId != null">
+		or  d.tech_broker_id = #{adminId,jdbcType=VARCHAR}
+		)
 	</if>
 	<if test="serialNumber != null">
 		and  d.serial_number = #{serialNumber,jdbcType=INTEGER}

+ 28 - 0
src/main/java/com/goafanti/common/model/ActivityUser.java

@@ -2,6 +2,10 @@ package com.goafanti.common.model;
 
 import java.util.Date;
 
+import org.apache.commons.lang3.time.DateFormatUtils;
+
+import com.goafanti.common.constant.AFTConstants;
+
 public class ActivityUser extends ActivityUserKey {
     /**
     * 报名时间
@@ -28,4 +32,28 @@ public class ActivityUser extends ActivityUserKey {
     public void setLastUpdateTime(Date lastUpdateTime) {
         this.lastUpdateTime = lastUpdateTime;
     }
+    
+    public String getCreateTimeFormattedDate() {
+		if (this.createTime == null) {
+			return null;
+		} else {
+			return DateFormatUtils.format(this.createTime, AFTConstants.YYYYMMDDHHMMSS);
+		}
+	}
+    
+    public void setCreateTimeFormattedDate(String createTimeFormattedDate) {
+
+	}
+    
+    public String getLastUpdateTimeFormattedDate() {
+		if (this.lastUpdateTime == null) {
+			return null;
+		} else {
+			return DateFormatUtils.format(this.lastUpdateTime, AFTConstants.YYYYMMDDHHMMSS);
+		}
+	}
+    
+    public void setLastUpdateTimeFormattedDate(String lastUpdateTimeFormattedDate) {
+
+	}
 }

+ 15 - 0
src/main/java/com/goafanti/common/model/Lecture.java

@@ -6,6 +6,7 @@ import org.apache.commons.lang3.time.DateFormatUtils;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.goafanti.common.constant.AFTConstants;
+import com.goafanti.common.enums.ActivityStatus;
 
 public class Lecture {
 	private String	id;
@@ -187,4 +188,18 @@ public class Lecture {
 	public void setEndTimeFormattedDate(String endTimeFormattedDate) {
 
 	}
+	
+	public Integer getLectureStatus(){
+		if (this.lectureTime == null){
+			return ActivityStatus.ENROLL.getCode();
+		} 
+		if (new Date().getTime() > this.lectureTime.getTime()){
+			return ActivityStatus.CLOSED.getCode();
+		}
+		return ActivityStatus.ENROLL.getCode();
+	}
+	
+	public void setLectureStatus(Integer lectureStatus){
+		
+	}
 }

+ 2 - 0
src/main/java/com/goafanti/demand/service/DemandService.java

@@ -70,6 +70,8 @@ public interface DemandService {
 
 	List<DemandPortalSimilarListBo> findByIndustryCategoryA(Integer industryCategoryA, String id);
 
+	int updateByPrimaryKeySelective(Demand d);
+
 
 
 }

+ 47 - 31
src/main/java/com/goafanti/demand/service/impl/DemandServiceImpl.java

@@ -85,10 +85,11 @@ public class DemandServiceImpl extends BaseMybatisDao<DemandMapper> implements D
 
 	@SuppressWarnings("unchecked")
 	@Override
-	public Pagination<DemandManageListBo> selectUserDemandManageList(String employerName, Integer auditStatus, Integer province,
-			Integer serialNumber, String name, String keyword, Integer infoSources, Integer demandType,
-			String validityPeriodStartDate, String validityPeriodEndDate, String username, Integer status,
-			Integer releaseStatus, String releaseDateStartDate, String releaseDateEndDate, Integer pNo, Integer pSize) {
+	public Pagination<DemandManageListBo> selectUserDemandManageList(String employerName, Integer auditStatus,
+			Integer province, Integer serialNumber, String name, String keyword, Integer infoSources,
+			Integer demandType, String validityPeriodStartDate, String validityPeriodEndDate, String username,
+			Integer status, Integer releaseStatus, String releaseDateStartDate, String releaseDateEndDate, Integer pNo,
+			Integer pSize) {
 
 		Map<String, Object> params = disposeParams(auditStatus, province, serialNumber, name, keyword, infoSources,
 				demandType, validityPeriodStartDate, validityPeriodEndDate, username, status, releaseStatus,
@@ -102,23 +103,27 @@ public class DemandServiceImpl extends BaseMybatisDao<DemandMapper> implements D
 			pSize = 10;
 		}
 
-		if (TokenManager.hasRole(AFTConstants.SALESMANAGERADMIN) || TokenManager.hasRole(AFTConstants.SALESMANADMIN)) {
-			params.put("principal", TokenManager.getAdminId());
-		}
+		/*
+		 * if (TokenManager.hasRole(AFTConstants.SALESMANAGERADMIN) ||
+		 * TokenManager.hasRole(AFTConstants.SALESMANADMIN)) {
+		 * params.put("principal", TokenManager.getAdminId()); }
+		 * 
+		 * if (TokenManager.hasRole(AFTConstants.MANAGERADMIN)) {
+		 * params.put("mid", TokenManager.getAdminId()); }
+		 * 
+		 * if (TokenManager.hasRole(AFTConstants.TECHBROKER)) {
+		 * params.put("techBroker", TokenManager.getAdminId()); }
+		 */
 
-		if (TokenManager.hasRole(AFTConstants.MANAGERADMIN)) {
-			params.put("mid", TokenManager.getAdminId());
-		}
-
-		if (TokenManager.hasRole(AFTConstants.TECHBROKER)) {
-			params.put("techBroker", TokenManager.getAdminId());
+		if (!TokenManager.hasRole(AFTConstants.SUPERADMIN) && !TokenManager.hasRole(AFTConstants.AUDITORADMIN)) {
+			params.put("adminId", TokenManager.getAdminId());
 		}
 		
-		if (StringUtils.isNotBlank(employerName)){
+		if (StringUtils.isNotBlank(employerName)) {
 			params.put("employerName", employerName);
 		}
-		
-		if (StringUtils.isNotBlank(username)){
+
+		if (StringUtils.isNotBlank(username)) {
 			params.put("username", username);
 		}
 
@@ -129,10 +134,11 @@ public class DemandServiceImpl extends BaseMybatisDao<DemandMapper> implements D
 
 	@SuppressWarnings("unchecked")
 	@Override
-	public Pagination<DemandManageListBo> selectOrgDemandManageList(String employerName, Integer auditStatus, Integer province,
-			Integer serialNumber, String name, String keyword, Integer infoSources, Integer demandType,
-			String validityPeriodStartDate, String validityPeriodEndDate, String username, Integer status,
-			Integer releaseStatus, String releaseDateStartDate, String releaseDateEndDate, Integer pNo, Integer pSize) {
+	public Pagination<DemandManageListBo> selectOrgDemandManageList(String employerName, Integer auditStatus,
+			Integer province, Integer serialNumber, String name, String keyword, Integer infoSources,
+			Integer demandType, String validityPeriodStartDate, String validityPeriodEndDate, String username,
+			Integer status, Integer releaseStatus, String releaseDateStartDate, String releaseDateEndDate, Integer pNo,
+			Integer pSize) {
 		Map<String, Object> params = disposeParams(auditStatus, province, serialNumber, name, keyword, infoSources,
 				demandType, validityPeriodStartDate, validityPeriodEndDate, username, status, releaseStatus,
 				releaseDateStartDate, releaseDateEndDate);
@@ -145,7 +151,7 @@ public class DemandServiceImpl extends BaseMybatisDao<DemandMapper> implements D
 			pSize = 10;
 		}
 
-		if (TokenManager.hasRole(AFTConstants.SALESMANAGERADMIN) || TokenManager.hasRole(AFTConstants.SALESMANADMIN)) {
+		/*if (TokenManager.hasRole(AFTConstants.SALESMANAGERADMIN) || TokenManager.hasRole(AFTConstants.SALESMANADMIN)) {
 			params.put("principal", TokenManager.getAdminId());
 		}
 
@@ -155,13 +161,17 @@ public class DemandServiceImpl extends BaseMybatisDao<DemandMapper> implements D
 
 		if (TokenManager.hasRole(AFTConstants.TECHBROKER)) {
 			params.put("techBroker", TokenManager.getAdminId());
-		}
+		}*/
 		
-		if (StringUtils.isNotBlank(employerName)){
+		if (!TokenManager.hasRole(AFTConstants.SUPERADMIN) && !TokenManager.hasRole(AFTConstants.AUDITORADMIN)) {
+			params.put("adminId", TokenManager.getAdminId());
+		}
+
+		if (StringUtils.isNotBlank(employerName)) {
 			params.put("employerName", employerName);
 		}
-		
-		if (StringUtils.isNotBlank(username)){
+
+		if (StringUtils.isNotBlank(username)) {
 			params.put("unitName", username);
 		}
 
@@ -314,12 +324,12 @@ public class DemandServiceImpl extends BaseMybatisDao<DemandMapper> implements D
 			d.setReleaseDate(now.getTime());
 			d.setReleaseStatus(DemandReleaseStatus.RELEASED.getCode());
 			d.setTechBrokerId(techBroderId);
-			
-			if (StringUtils.isNotBlank(d.getKeyword())){
+
+			if (StringUtils.isNotBlank(d.getKeyword())) {
 				String[] keywords = d.getKeyword().trim().split(",|,");
 				disposeDemandKeyword(keywords, d, false);
 			}
-			
+
 			String employerId = d.getEmployerId();
 			if (StringUtils.isNotBlank(employerId)) {
 				if (UserType.PERSONAL.getCode().equals(d.getDataCategory())) {
@@ -553,9 +563,10 @@ public class DemandServiceImpl extends BaseMybatisDao<DemandMapper> implements D
 			params.put("keyword", keyword);
 		}
 
-		/*if (!StringUtils.isBlank(username)) {
-			params.put("username", username);
-		}*/
+		/*
+		 * if (!StringUtils.isBlank(username)) { params.put("username",
+		 * username); }
+		 */
 
 		if (null != infoSources) {
 			params.put("infoSources", infoSources);
@@ -706,4 +717,9 @@ public class DemandServiceImpl extends BaseMybatisDao<DemandMapper> implements D
 		return demandMapper.findByIndustryCategoryA(industryCategoryA, id);
 	}
 
+	@Override
+	public int updateByPrimaryKeySelective(Demand d) {
+		return demandMapper.updateByPrimaryKeySelective(d);
+	}
+
 }

+ 2 - 0
src/main/java/com/goafanti/lecture/service/LectureService.java

@@ -38,4 +38,6 @@ public interface LectureService {
 
 	void clearLectureList(Integer lectureListCacheKey);
 
+	List<LectureListBo> listAdminDynamic();
+
 }

+ 5 - 0
src/main/java/com/goafanti/lecture/service/impl/LectureServiceImpl.java

@@ -166,6 +166,11 @@ public class LectureServiceImpl extends BaseMybatisDao<LectureMapper> implements
 		
 	}
 
+	@Override
+	public List<LectureListBo> listAdminDynamic() {
+		return lectureMapper.listDynamic();
+	}
+
 	
 
 	

+ 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.36
+static.host=//afts.hnzhiming.com/1.0.37
 
 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.4
+portal.host=//afts.hnzhiming.com/portal/1.0.5
 
 patentTemplate=SMS_72005286
 

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

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

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 25 - 7
src/main/webapp/WEB-INF/views/portal/activity/activityIndex.html


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 5 - 4
src/main/webapp/WEB-INF/views/portal/activity/details.html


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 6 - 6
src/main/webapp/WEB-INF/views/portal/entrepreneurship/entrepreneurshipIndex.html


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 2 - 2
src/main/webapp/WEB-INF/views/portal/financial/financialIndex.html


+ 5 - 5
src/main/webapp/WEB-INF/views/portal/highTech/authentication.html

@@ -58,7 +58,7 @@
 			class="glyphicon glyphicon-chevron-right"></span></a>
 	</div>
 
-	<div class="container">
+	<div class="container evaluate">
 		<a href="/portal/highTech/evaluate/evaluate.html">免费诊断</a>
 	</div>
 	<div class="container">
@@ -124,10 +124,10 @@
 			</div>
 			<div class="advantage_nav">
 				<ul id="myTab">
-					<li><a href="#tab1" data-toggle="tab">专业服务十六年</a></li>
-					<li><a href="#tab2" data-toggle="tab">遍布全国26家分子公司</a></li>
-					<li><a href="#tab3" data-toggle="tab">20000+企业服务</a></li>
-					<li><a href="#tab4" data-toggle="tab">1000+高校院所服务</a></li>
+					<li><a href="#" data-toggle="tab">专业服务十六年</a></li>
+					<li><a href="#" data-toggle="tab">遍布全国26家分子公司</a></li>
+					<li><a href="#" data-toggle="tab">20000+企业服务</a></li>
+					<li><a href="#" data-toggle="tab">1000+高校院所服务</a></li>
 				</ul>
 			</div>
 			<div id="myTabContent" class="content_list tab-content">

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

@@ -13,8 +13,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>

+ 66 - 63
src/main/webapp/WEB-INF/views/portal/ipr/iso.html

@@ -1,62 +1,64 @@
 <!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="#" class="login">登录</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 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>
 
-	<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 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">
@@ -206,14 +208,15 @@
             </div>
           </div> <span class="sp1 tab8_span">                            <span class="sp2"></span> </span>
         </div>
-      </div> <a href="#" class="iso_btn">我要服务</a> </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>
-	<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>
+
+</html>

+ 28 - 26
src/main/webapp/WEB-INF/views/portal/ipr/patentOperation.html

@@ -1,21 +1,23 @@
 <!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/patentOperation.css'}"
-	rel="stylesheet">
+	<title>专利运营与布局</title>
+	<link th:href="${portalHost + '/vendors.css'}" rel="stylesheet">
+	<link th:href="${portalHost + '/ipr/patentOperation.css'}" rel="stylesheet">
 </head>
+
 <body>
 	<header>
 		<div class="container">
 			<div class="lt">欢迎进入科技认知计算交易平台!</div>
-			<!--<div class="rt">
-					<a href="#" class="login">登录</a>
-					<a href="#">注册</a>
-				</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">
@@ -42,22 +44,18 @@
 		<!-- 轮播(Carousel)项目 -->
 		<div class="carousel-inner">
 			<div class="item active">
-				<img th:src="${portalHost + '/img/ipr_service_banner_1.jpg'}"
-					alt="First slide">
+				<img th:src="${portalHost + '/img/ipr_service_banner_1.jpg'}" alt="First slide">
 			</div>
 			<div class="item">
-				<img th:src="${portalHost + '/img/ipr_service_banner_2.jpg'}"
-					alt="Second slide">
+				<img th:src="${portalHost + '/img/ipr_service_banner_2.jpg'}" alt="Second slide">
 			</div>
 			<div class="item">
-				<img th:src="${portalHost + '/img/ipr_service_banner_3.jpg'}"
-					alt="Third slide">
+				<img th:src="${portalHost + '/img/ipr_service_banner_3.jpg'}" alt="Third slide">
 			</div>
 		</div>
 		<!-- 轮播(Carousel)导航 -->
 		<a class="carousel-control left" href="#myCarousel" data-slide="prev"><span
-			class="glyphicon glyphicon-chevron-left"></span></a> <a
-			class="carousel-control right" href="#myCarousel" data-slide="next"><span
+			class="glyphicon glyphicon-chevron-left"></span></a> <a class="carousel-control right" href="#myCarousel" data-slide="next"><span
 			class="glyphicon glyphicon-chevron-right"></span></a>
 	</div>
 	<div id="content_head" class="container">
@@ -78,16 +76,20 @@
 			<div class="content_nav">
 				<ul id="myTab">
 					<li class="active"><a href="#tab1" data-toggle="tab"> <span>专利技术分析</span>
-					</a> <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALBAMAAACEzBAKAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAPUExURXy4/0dwTObx/6zS//D3/3zk8F4AAAACdFJOU38A3jSoAQAAAD5JREFUCNc9yIEJACAMA8GIC7Qz6ADiCJL9ZzJRsZDyHDIzih60Om7EbOVE7Ws4YpIiCEgRDCYYTDggAt/92AlDDjfH3KJAAAAAAElFTkSuQmCC" />
+					</a> <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALBAMAAACEzBAKAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAPUExURXy4/0dwTObx/6zS//D3/3zk8F4AAAACdFJOU38A3jSoAQAAAD5JREFUCNc9yIEJACAMA8GIC7Qz6ADiCJL9ZzJRsZDyHDIzih60Om7EbOVE7Ws4YpIiCEgRDCYYTDggAt/92AlDDjfH3KJAAAAAAElFTkSuQmCC"
+						/>
 					</li>
 					<li><a href="#tab2" data-toggle="tab"> <span>竞争对手专利分析</span>
-					</a> <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALBAMAAACEzBAKAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAPUExURXy4/0dwTObx/6zS//D3/3zk8F4AAAACdFJOU38A3jSoAQAAAD5JREFUCNc9yIEJACAMA8GIC7Qz6ADiCJL9ZzJRsZDyHDIzih60Om7EbOVE7Ws4YpIiCEgRDCYYTDggAt/92AlDDjfH3KJAAAAAAElFTkSuQmCC" />
+					</a> <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALBAMAAACEzBAKAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAPUExURXy4/0dwTObx/6zS//D3/3zk8F4AAAACdFJOU38A3jSoAQAAAD5JREFUCNc9yIEJACAMA8GIC7Qz6ADiCJL9ZzJRsZDyHDIzih60Om7EbOVE7Ws4YpIiCEgRDCYYTDggAt/92AlDDjfH3KJAAAAAAElFTkSuQmCC"
+						/>
 					</li>
 					<li><a href="#tab3" data-toggle="tab"> <span>行业专利信息分析专利挖掘与布局</span>
-					</a> <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALBAMAAACEzBAKAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAPUExURXy4/0dwTObx/6zS//D3/3zk8F4AAAACdFJOU38A3jSoAQAAAD5JREFUCNc9yIEJACAMA8GIC7Qz6ADiCJL9ZzJRsZDyHDIzih60Om7EbOVE7Ws4YpIiCEgRDCYYTDggAt/92AlDDjfH3KJAAAAAAElFTkSuQmCC" />
+					</a> <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALBAMAAACEzBAKAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAPUExURXy4/0dwTObx/6zS//D3/3zk8F4AAAACdFJOU38A3jSoAQAAAD5JREFUCNc9yIEJACAMA8GIC7Qz6ADiCJL9ZzJRsZDyHDIzih60Om7EbOVE7Ws4YpIiCEgRDCYYTDggAt/92AlDDjfH3KJAAAAAAElFTkSuQmCC"
+						/>
 					</li>
 					<li><a href="#tab4" data-toggle="tab"> <span>专利预警服务</span>
-					</a> <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALBAMAAACEzBAKAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAPUExURXy4/0dwTObx/6zS//D3/3zk8F4AAAACdFJOU38A3jSoAQAAAD5JREFUCNc9yIEJACAMA8GIC7Qz6ADiCJL9ZzJRsZDyHDIzih60Om7EbOVE7Ws4YpIiCEgRDCYYTDggAt/92AlDDjfH3KJAAAAAAElFTkSuQmCC" />
+					</a> <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALBAMAAACEzBAKAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAPUExURXy4/0dwTObx/6zS//D3/3zk8F4AAAACdFJOU38A3jSoAQAAAD5JREFUCNc9yIEJACAMA8GIC7Qz6ADiCJL9ZzJRsZDyHDIzih60Om7EbOVE7Ws4YpIiCEgRDCYYTDggAt/92AlDDjfH3KJAAAAAAElFTkSuQmCC"
+						/>
 					</li>
 					<!-- <li><a href="#tab5" data-toggle="tab"> <span>专利维权确权服务</span>
 					</a> <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALBAMAAACEzBAKAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAPUExURXy4/0dwTObx/6zS//D3/3zk8F4AAAACdFJOU38A3jSoAQAAAD5JREFUCNc9yIEJACAMA8GIC7Qz6ADiCJL9ZzJRsZDyHDIzih60Om7EbOVE7Ws4YpIiCEgRDCYYTDggAt/92AlDDjfH3KJAAAAAAElFTkSuQmCC" />
@@ -200,8 +202,8 @@
 	</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/patentOperation.js'}"></script>
+		<script type="text/javascript" th:src="${portalHost + '/ipr/patentOperation.js'}"></script>
 	</div>
 </body>
-</html>
+
+</html>

+ 9 - 7
src/main/webapp/WEB-INF/views/portal/news/newsIndex.html

@@ -85,11 +85,13 @@
 		<div class="government_contacts_list">
 			<ul>
 				<li th:each="it: ${zfwl}">
-					<img th:src="${staticDomain + '/upload' + it.titleImg}">
-					<div class="government_contacts_txt">
-						<h4 th:text="${it.title}" th:title="${it.title}"></h4>
-						<span class="date" th:text="${#calendars.format(it.createTime,'yyyy-MM-dd')}"></span>
-					</div>
+					<a th:href="${'/portal/news/newsDetail.html?newsId=' + it.id}" target="_blank">
+						<img th:src="${staticDomain + '/upload' + it.titleImg}">
+						<div class="government_contacts_txt">
+							<h4 th:text="${it.title}" th:title="${it.title}"></h4>
+							<span class="date" th:text="${#calendars.format(it.createTime,'yyyy-MM-dd')}"></span>
+						</div>
+					</a>
 				</li>
 			</ul>
 		</div>
@@ -113,7 +115,7 @@
 				<div class="national_policy_list">
 					<ul>
 						<li th:each="it : ${gjzc}">
-							<a href="#">
+							<a th:href="${'/portal/news/newsDetail.html?newsId=' + it.id}" target="_blank">
 								<p th:text="${it.title}" th:title="${it.title}"></p> 
 								<span th:text="${#calendars.format(it.createTime,'MM/dd')}"></span>
 							</a>
@@ -129,7 +131,7 @@
 				<div class="national_policy_list">
 					<ul>
 						<li th:each="it : ${dfzc}">
-							<a href="#">
+							<a th:href="${'/portal/news/newsDetail.html?newsId=' + it.id}" target="_blank">
 								<p th:text="${it.title}" th:title="${it.title}"></p>
 								<span th:text="${#calendars.format(it.createTime,'MM/dd')}"></span>
 							</a>

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

@@ -52,10 +52,10 @@
 					<img  th:if="${lecture.lectureUrl} != null" th:src="${avatarUploadHost + lecture.lectureUrl}">
 					</div>
 					<div class="lecture_content_info">
-						<h4 th:text="${lecture.name}" th:title="${lecture.name}">张泽院士的讲堂</h4>
-						<p th:text="${lecture.summary}" th:title="${lecture.summary}">关于从事准晶结构及其向晶体雷声变的中间过程和准晶中的缺陷的研究</p>
+						<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 class="customer-service">报名中</span>
+						<span th:class="${lecture.lectureStatus} == 0 ? 'customer-service' : ''" th:text="${lecture.lectureStatus} == 0 ? '报名中' : '已结束'"></span>
 					</div>
 				</li>
 			</ul>

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 5 - 5
src/main/webapp/WEB-INF/views/portal/service/serviceIndex.html