Explorar el Código

Accept Merge Request #187 v1.0.34 : (master -> test)

Merge Request: v1.0.34
Created By: @Antiloveg
Accepted By: @Antiloveg
URL: https://coding.net/t/aft/p/AFT/git/merge/187
Antiloveg hace 8 años
padre
commit
cb90c4006c
Se han modificado 88 ficheros con 2351 adiciones y 1929 borrados
  1. 2 0
      schema/20170626-activities-news-billings.sql
  2. 2 0
      schema/20170707-alter-usrEdu.sql
  3. 6 1
      schema/data/permission.sql
  4. 9 14
      src/main/java/com/goafanti/achievement/controller/AchievementApiController.java
  5. 26 8
      src/main/java/com/goafanti/admin/controller/AdminApiController.java
  6. 15 12
      src/main/java/com/goafanti/admin/controller/AdminSummaryApiController.java
  7. 6 1
      src/main/java/com/goafanti/cognizance/controller/CognizanceApiController.java
  8. 1 1
      src/main/java/com/goafanti/cognizance/service/OrgCognizanceService.java
  9. 30 16
      src/main/java/com/goafanti/cognizance/service/impl/OrgCognizanceServiceImpl.java
  10. 7 0
      src/main/java/com/goafanti/common/constant/ErrorConstants.java
  11. 2 0
      src/main/java/com/goafanti/common/controller/BaseController.java
  12. 15 10
      src/main/java/com/goafanti/common/controller/PortalController.java
  13. 8 7
      src/main/java/com/goafanti/common/controller/PublicController.java
  14. 9 24
      src/main/java/com/goafanti/common/controller/WebpageController.java
  15. 4 2
      src/main/java/com/goafanti/common/dao/CopyrightInfoMapper.java
  16. 25 0
      src/main/java/com/goafanti/common/dao/NewsMapper.java
  17. 11 0
      src/main/java/com/goafanti/common/dao/OrgCognizanceMapper.java
  18. 4 2
      src/main/java/com/goafanti/common/dao/PatentInfoMapper.java
  19. 4 2
      src/main/java/com/goafanti/common/dao/TechProjectMapper.java
  20. 8 4
      src/main/java/com/goafanti/common/mapper/AchievementMapper.xml
  21. 1 1
      src/main/java/com/goafanti/common/mapper/AdminMapper.xml
  22. 4 2
      src/main/java/com/goafanti/common/mapper/ContractMapper.xml
  23. 31 5
      src/main/java/com/goafanti/common/mapper/CopyrightInfoMapper.xml
  24. 198 0
      src/main/java/com/goafanti/common/mapper/NewsMapper.xml
  25. 27 0
      src/main/java/com/goafanti/common/mapper/NewsMapperExt.xml
  26. 143 16
      src/main/java/com/goafanti/common/mapper/OrgCognizanceMapper.xml
  27. 34 9
      src/main/java/com/goafanti/common/mapper/OrgIntellectualPropertyMapper.xml
  28. 4 1
      src/main/java/com/goafanti/common/mapper/OrgRatepayMapper.xml
  29. 61 117
      src/main/java/com/goafanti/common/mapper/OrganizationIdentityMapper.xml
  30. 34 8
      src/main/java/com/goafanti/common/mapper/PatentInfoMapper.xml
  31. 33 6
      src/main/java/com/goafanti/common/mapper/TechProjectMapper.xml
  32. 31 8
      src/main/java/com/goafanti/common/mapper/UserIdentityMapper.xml
  33. 1 1
      src/main/java/com/goafanti/common/mapper/UserMapper.xml
  34. 161 0
      src/main/java/com/goafanti/common/model/News.java
  35. 1 2
      src/main/java/com/goafanti/common/utils/FileUtils.java
  36. 3 3
      src/main/java/com/goafanti/common/utils/MobileMessageUtils.java
  37. 0 71
      src/main/java/com/goafanti/common/utils/SerializeUtil.java
  38. 1 1
      src/main/java/com/goafanti/contract/bo/InputContract.java
  39. 1 1
      src/main/java/com/goafanti/contract/bo/InputSaveContract.java
  40. 1 1
      src/main/java/com/goafanti/contract/controller/ContractApiController.java
  41. 2 0
      src/main/java/com/goafanti/core/cache/serializer/FastJsonRedisSerializer.java
  42. 8 6
      src/main/java/com/goafanti/core/mybatis/page/SimplePage.java
  43. 97 0
      src/main/java/com/goafanti/news/bo/NewsSummary.java
  44. 50 0
      src/main/java/com/goafanti/news/controller/NewsController.java
  45. 43 0
      src/main/java/com/goafanti/news/enums/NewsType.java
  46. 61 0
      src/main/java/com/goafanti/news/service/NewsService.java
  47. 30 0
      src/main/java/com/goafanti/portal/bo/UserSubscriberListBo.java
  48. 1 1
      src/main/java/com/goafanti/user/bo/InputUserEdu.java
  49. 23 0
      src/main/java/com/goafanti/user/bo/OrgIdentityDetailBo.java
  50. 56 30
      src/main/java/com/goafanti/user/controller/UserApiController.java
  51. 16 13
      src/main/java/com/goafanti/user/service/impl/OrganizationIdentityServiceImpl.java
  52. 14 2
      src/main/java/com/goafanti/user/service/impl/UserServiceImpl.java
  53. 2 2
      src/main/resources/props/config_dev.properties
  54. 2 2
      src/main/resources/props/config_local.properties
  55. 2 2
      src/main/resources/props/config_test.properties
  56. 11 1
      src/main/resources/props/error.properties
  57. 220 170
      src/main/webapp/WEB-INF/views/common.html
  58. 180 173
      src/main/webapp/WEB-INF/views/portal/activity/activityIndex.html
  59. 1 1
      src/main/webapp/WEB-INF/views/portal/activity/details.html
  60. 1 1
      src/main/webapp/WEB-INF/views/portal/detail/achievementDetail.html
  61. 1 1
      src/main/webapp/WEB-INF/views/portal/detail/demandDetail.html
  62. 12 8
      src/main/webapp/WEB-INF/views/portal/entrepreneurship/entrepreneurshipIndex.html
  63. 1 1
      src/main/webapp/WEB-INF/views/portal/evaluation/index.html
  64. 4 4
      src/main/webapp/WEB-INF/views/portal/financial/financialIndex.html
  65. 1 1
      src/main/webapp/WEB-INF/views/portal/highTech/authentication.html
  66. 1 1
      src/main/webapp/WEB-INF/views/portal/highTech/evaluate/basicInfo.html
  67. 1 1
      src/main/webapp/WEB-INF/views/portal/highTech/evaluate/evaluate.html
  68. 1 1
      src/main/webapp/WEB-INF/views/portal/highTech/evaluate/financeInfo.html
  69. 1 1
      src/main/webapp/WEB-INF/views/portal/highTech/evaluate/iprInfo.html
  70. 1 1
      src/main/webapp/WEB-INF/views/portal/highTech/evaluate/rdManage.html
  71. 1 1
      src/main/webapp/WEB-INF/views/portal/index.html
  72. 192 312
      src/main/webapp/WEB-INF/views/portal/international/internationalIndex.html
  73. 24 18
      src/main/webapp/WEB-INF/views/portal/ipr/apply.html
  74. 34 31
      src/main/webapp/WEB-INF/views/portal/ipr/iso.html
  75. 18 12
      src/main/webapp/WEB-INF/views/portal/ipr/patentOperation.html
  76. 18 14
      src/main/webapp/WEB-INF/views/portal/ipr/service.html
  77. 0 183
      src/main/webapp/WEB-INF/views/portal/news.html
  78. 1 1
      src/main/webapp/WEB-INF/views/portal/news/newsDetails.html
  79. 29 77
      src/main/webapp/WEB-INF/views/portal/news/newsIndex.html
  80. 0 161
      src/main/webapp/WEB-INF/views/portal/patent.html
  81. 16 17
      src/main/webapp/WEB-INF/views/portal/scienceTechnology/bigShot.html
  82. 1 1
      src/main/webapp/WEB-INF/views/portal/scienceTechnology/lecture.html
  83. 164 295
      src/main/webapp/WEB-INF/views/portal/scienceTechnology/star.html
  84. 2 2
      src/main/webapp/WEB-INF/views/portal/search/subscriber.html
  85. 16 0
      src/main/webapp/WEB-INF/views/portal/search/subscriberUser.html
  86. 3 6
      src/main/webapp/WEB-INF/views/portal/service/serviceIndex.html
  87. 20 13
      src/main/webapp/WEB-INF/views/portal/technologyTrading/index.html
  88. 4 4
      src/main/webapp/WEB-INF/views/portal/websiteBuild/websiteBuildIndex.html

+ 2 - 0
schema/20170626-activities-news-billings.sql

@@ -10,9 +10,11 @@ CREATE TABLE `news` (
   `hot` int(1) NOT NULL DEFAULT '0' COMMENT '是否放在首页',
   `source` varchar(45) DEFAULT NULL COMMENT '来源',
   `source_url` varchar(255) DEFAULT NULL COMMENT '来源url',
+  `summary` varchar(144) DEFAULT NULL COMMENT '简介',
   PRIMARY KEY (`id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='新闻资讯';
 
+
 CREATE TABLE `activity` (
   `id` bigint(18) NOT NULL,
   `start_time` datetime DEFAULT NULL COMMENT '开始时间',

+ 2 - 0
schema/20170707-alter-usrEdu.sql

@@ -0,0 +1,2 @@
+ALTER TABLE `user_edu` MODIFY COLUMN `major_category` VARCHAR (16) NULL COMMENT '专业类别';
+

+ 6 - 1
schema/data/permission.sql

@@ -504,4 +504,9 @@ values
 
 insert into `permission`(`id`, `url`, `name`) 
 values
-(UUID(), 'api/admin/deleteHumanResource', '企业人员情况--删除团体人力资源');
+(UUID(), 'api/admin/deleteHumanResource', '企业人员情况--删除团体人力资源');
+
+insert into `permission`(`id`, `url`, `name`) 
+values
+(UUID(), 'api/admin/cognizanceRecord/search', '高企信息管理--高企信息查询'),
+(UUID(), 'api/admin/cognizanceRecord/import', '高企信息管理--高企信息批量导入');

+ 9 - 14
src/main/java/com/goafanti/achievement/controller/AchievementApiController.java

@@ -218,7 +218,7 @@ public class AchievementApiController extends CertifyApiController {
 	public Result download(HttpServletResponse response, String id, String sign) {
 		Result res = new Result();
 
-		if (StringUtils.isEmpty(id)) {
+		if (StringUtils.isBlank(id)) {
 			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "科技成果ID"));
 			return res;
 		}
@@ -229,20 +229,15 @@ public class AchievementApiController extends CertifyApiController {
 			return res;
 		}
 
-		if (TokenManager.getUserId().equals(a.getOwnerId())) {
-			AttachmentType attachmentType = AttachmentType.getField(sign);
-			if (attachmentType == AttachmentType.ACHIEVEMENT_MATURITY_TEXT_FILE) {
-				downloadUnPrivateFile(response, a.getMaturityTextFileDownloadFileName(), a.getMaturityTextFileUrl());
-			} else if (attachmentType == AttachmentType.ACHIEVEMENT_TECH_PLAN) {
-				downloadUnPrivateFile(response, a.getTechPlanDownloadFileName(), a.getTechPlanUrl());
-			} else if (attachmentType == AttachmentType.ACHIEVEMENT_BUSINESS_PLAN) {
-				downloadUnPrivateFile(response, a.getBusinessPlanDownloadFileName(), a.getBusinessPlanUrl());
-			} else {
-				res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "附件标示"));
-			}
+		AttachmentType attachmentType = AttachmentType.getField(sign);
+		if (attachmentType == AttachmentType.ACHIEVEMENT_MATURITY_TEXT_FILE) {
+			downloadUnPrivateFile(response, a.getMaturityTextFileDownloadFileName(), a.getMaturityTextFileUrl());
+		} else if (attachmentType == AttachmentType.ACHIEVEMENT_TECH_PLAN) {
+			downloadUnPrivateFile(response, a.getTechPlanDownloadFileName(), a.getTechPlanUrl());
+		} else if (attachmentType == AttachmentType.ACHIEVEMENT_BUSINESS_PLAN) {
+			downloadUnPrivateFile(response, a.getBusinessPlanDownloadFileName(), a.getBusinessPlanUrl());
 		} else {
-			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "科技成果ID"));
-			return res;
+			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "附件标示"));
 		}
 
 		return res;

+ 26 - 8
src/main/java/com/goafanti/admin/controller/AdminApiController.java

@@ -203,13 +203,19 @@ public class AdminApiController extends CertifyApiController {
 	 * 统计专利、软著及科技项目申报业务情况
 	 */
 	@RequestMapping(value = "/getBusinessCount", method = RequestMethod.GET)
-	public Result countBusiness(String uid) {
+	public Result countBusiness(String uid, Integer year) {
 		Result res = new Result();
 		if (StringUtils.isBlank(uid)) {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户ID"));
 			return res;
 		}
-		res.setData(orgCognizanceService.countBusiness(uid));
+
+		if (null == year) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到年份", "年份"));
+			return res;
+		}
+
+		res.setData(orgCognizanceService.countBusiness(uid, year));
 		return res;
 	}
 
@@ -219,6 +225,7 @@ public class AdminApiController extends CertifyApiController {
 	@RequestMapping(value = "/confirmProportion", method = RequestMethod.POST)
 	public Result confirmProportion(String id, String uid, String sign, Integer status) {
 		Result res = new Result();
+
 		if (StringUtils.isBlank(uid)) {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户ID"));
 			return res;
@@ -239,7 +246,8 @@ public class AdminApiController extends CertifyApiController {
 			return res;
 		}
 
-		if (StringUtils.isBlank(id)) {
+		OrgCognizanceProportion oo = orgCognizanceProportionService.selectByUid(uid);
+		if (null == oo && StringUtils.isBlank(id)) {
 			OrgCognizanceProportion cp = new OrgCognizanceProportion();
 			cp.setId(UUID.randomUUID().toString());
 			cp.setUid(uid);
@@ -247,6 +255,11 @@ public class AdminApiController extends CertifyApiController {
 			return res;
 		}
 
+		if (StringUtils.isBlank(id)) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "比重ID"));
+			return res;
+		}
+
 		OrgCognizanceProportion ocp = orgCognizanceProportionService.selectByPrimaryKey(id);
 		if (null == ocp) {
 			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "比重ID"));
@@ -1032,6 +1045,11 @@ public class AdminApiController extends CertifyApiController {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户"));
 			return res;
 		}
+		
+		if (null == orgIntellectualProperty.getCatagory()){
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到类别", "类别"));
+			return res;
+		}
 		if (!checkCertify(res, orgIntellectualProperty.getUid()).getError().isEmpty()) {
 			return res;
 		}
@@ -1064,7 +1082,7 @@ public class AdminApiController extends CertifyApiController {
 				res.getError().add(buildError("", "当前知识产权编号已录入,无法重复提交!"));
 				return res;
 			}
-			oip.setEvaluationCategory(orgIntellectualProperty.getCatagory() <= 2 ? 1 : 0);
+			oip.setEvaluationCategory((oip.getCatagory() >= 2 && oip.getCatagory() <= 4) ? 1 : 0);
 			res.setData(orgIntellectualPropertyService.updateByPrimaryKeySelective(oip));
 		}
 		return res;
@@ -2301,8 +2319,8 @@ public class AdminApiController extends CertifyApiController {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户"));
 			return res;
 		}
-		
-		if (StringUtils.isBlank(orgTechCenter.getCenterName())){
+
+		if (StringUtils.isBlank(orgTechCenter.getCenterName())) {
 			res.getError().add(buildError(ErrorConstants.DATA_EMPTY_ERROR, "", "研发部门名称"));
 			return res;
 		}
@@ -2676,10 +2694,10 @@ public class AdminApiController extends CertifyApiController {
 			return res;
 		}
 
-		if (year - oc.getYear() != 0) {
+		/*if (year - oc.getYear() != 0) {
 			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "高企ID及年份"));
 			return res;
-		}
+		}*/
 
 		res.setData(handleCognizanceDetail(uid, cid, year));
 		return res;

+ 15 - 12
src/main/java/com/goafanti/admin/controller/AdminSummaryApiController.java

@@ -14,40 +14,43 @@ import com.goafanti.common.bo.Result;
 import com.goafanti.common.constant.ErrorConstants;
 import com.goafanti.common.controller.CertifyApiController;
 import com.goafanti.common.utils.StringUtils;
+
 @RestController
 @RequestMapping(value = "/api/admin/summary")
-public class AdminSummaryApiController extends CertifyApiController{
-	
-	private static final Integer year = Calendar.getInstance().get(Calendar.YEAR)-1;
+public class AdminSummaryApiController extends CertifyApiController {
+
+	private static final Integer			year	= Calendar.getInstance().get(Calendar.YEAR) - 1;
 	@Resource
 	private OrgIntellectualPropertyService	orgIntellectualPropertyService;
 	@Resource
 	private OrgActivityService				orgActivityService;
-	
+
 	/**
 	 * 高企信息汇总导出--获得知识产权数量
+	 * 
 	 * @param uid
 	 * @return
 	 */
 	@RequestMapping(value = "/intellectualProperty", method = RequestMethod.GET)
-	public Result intellectualProperty(String uid){
+	public Result intellectualProperty(String uid) {
 		Result res = new Result();
 		if (StringUtils.isBlank(uid)) {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户ID"));
 			return res;
 		}
-		
-		res.setData(orgIntellectualPropertyService.selectIntellectualPropertyCount(year, uid));;
+
+		res.setData(orgIntellectualPropertyService.selectIntellectualPropertyCount(year, uid));
 		return res;
 	}
-	
+
 	/**
 	 * 高企信息汇总导出--知识产权列表
+	 * 
 	 * @param uid
 	 * @return
 	 */
 	@RequestMapping(value = "/intellectualPropertyList", method = RequestMethod.GET)
-	public Result intellectualPropertyList(String uid){
+	public Result intellectualPropertyList(String uid) {
 		Result res = new Result();
 		if (StringUtils.isBlank(uid)) {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户ID"));
@@ -56,14 +59,15 @@ public class AdminSummaryApiController extends CertifyApiController{
 		res.setData(orgIntellectualPropertyService.selectIntellectualPropertyList(year, uid));
 		return res;
 	}
-	
+
 	/**
 	 * 高企信息汇总导出--企业研发活动列表
+	 * 
 	 * @param uid
 	 * @return
 	 */
 	@RequestMapping(value = "/activity", method = RequestMethod.GET)
-	public Result activity(String uid){
+	public Result activity(String uid) {
 		Result res = new Result();
 		if (StringUtils.isBlank(uid)) {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户ID"));
@@ -72,6 +76,5 @@ public class AdminSummaryApiController extends CertifyApiController{
 		res.setData(orgActivityService.selectAcivityList(year, uid));
 		return res;
 	}
-	
 
 }

+ 6 - 1
src/main/java/com/goafanti/cognizance/controller/CognizanceApiController.java

@@ -1642,6 +1642,11 @@ public class CognizanceApiController extends CertifyApiController {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "知识产权编号", "知识产权编号"));
 			return res;
 		}
+		
+		if (null == orgIntellectualProperty.getCatagory()){
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到类别", "类别"));
+			return res;
+		}
 
 		OrgIntellectualProperty p = orgIntellectualPropertyService.findByUidAndIntellectualPropertyNumber(
 				TokenManager.getUserId(), orgIntellectualProperty.getIntellectualPropertyNumber());
@@ -1672,7 +1677,7 @@ public class CognizanceApiController extends CertifyApiController {
 				res.getError().add(buildError("", "当前知识产权编号已录入,无法重复提交!"));
 				return res;
 			}
-			oip.setEvaluationCategory(oip.getCatagory() <= 2 ? 1 : 0);
+			oip.setEvaluationCategory((oip.getCatagory() >= 2 && oip.getCatagory() <= 4) ? 1 : 0);
 			res.setData(orgIntellectualPropertyService.updateByPrimaryKeySelective(oip));
 		}
 		return res;

+ 1 - 1
src/main/java/com/goafanti/cognizance/service/OrgCognizanceService.java

@@ -52,7 +52,7 @@ public interface OrgCognizanceService {
 
 	Integer selectLatelyRecordYear(String uid);
 
-	BusinessCountBo countBusiness(String uid);
+	BusinessCountBo countBusiness(String uid, Integer year);
 
 	OrgCognizance saveCognizance(OrgCognizance oc, String salesman);
 

+ 30 - 16
src/main/java/com/goafanti/cognizance/service/impl/OrgCognizanceServiceImpl.java

@@ -45,6 +45,7 @@ import com.goafanti.common.model.Notice;
 import com.goafanti.common.model.OrgCognizance;
 import com.goafanti.common.model.OrgCognizanceLog;
 import com.goafanti.common.model.OrgCognizanceProportion;
+import com.goafanti.common.model.OrgHumanResource;
 import com.goafanti.common.model.OrganizationIdentity;
 import com.goafanti.common.model.User;
 import com.goafanti.core.mybatis.BaseMybatisDao;
@@ -166,15 +167,27 @@ public class OrgCognizanceServiceImpl extends BaseMybatisDao<OrgCognizanceMapper
 			cog.setGrossProfit3(
 					null == manageCost.getGrossProfit3() ? new BigDecimal(0) : manageCost.getGrossProfit3());
 		}
-
-		CognizanceCatagoryBo catagory = orgCognizanceMapper.selectCognizanceCatagoryBoByUidAndYear(year, uid);
-		if (null != catagory) {
-			cog.setFirstCatagory(null == catagory.getFirstCatagory() ? 0 : catagory.getFirstCatagory());
-			cog.setSecondCatagory(null == catagory.getSecondCatagory() ? 0 : catagory.getSecondCatagory());
-			cog.setFirmTotal(null == catagory.getFirmTotal() ? 0 : catagory.getFirmTotal());
-			cog.setTechTotal(null == catagory.getTechTotal() ? 0 : catagory.getTechTotal());
-			cog.setTotalRevenue(null == catagory.getTotalRevenue() ? new BigDecimal(0) : catagory.getTotalRevenue());
+		Integer firstCatagory = orgCognizanceMapper.findFirstCatagory(year, uid);
+		Integer secondCatagory = orgCognizanceMapper.findSecondCatagory(year, uid);
+		OrgHumanResource ohr = orgCognizanceMapper.findFirmAndTechTotal(year, uid);
+		BigDecimal totalRevenue = orgCognizanceMapper.findTotalRevenue(year, uid);
+		/*
+		 * CognizanceCatagoryBo catagory =
+		 * orgCognizanceMapper.selectCognizanceCatagoryBoByUidAndYear(year,
+		 * uid); if (null != catagory) {
+		 */
+		cog.setFirstCatagory(null == firstCatagory ? 0 : firstCatagory);
+		cog.setSecondCatagory(null == secondCatagory ? 0 : secondCatagory);
+		if (null != ohr) {
+			cog.setFirmTotal(null == ohr.getFirmTotal() ? 0 : ohr.getFirmTotal());
+			cog.setTechTotal(null == ohr.getTechTotal() ? 0 : ohr.getTechTotal());
+		} else {
+			cog.setFirmTotal(0);
+			cog.setTechTotal(0);
 		}
+		cog.setTotalRevenue(null == totalRevenue ? new BigDecimal(0) : totalRevenue);
+		// }
+
 		BigDecimal revenue = orgCognizanceMapper.selectLastYearRevenueByUidAndYear(year, uid); // 上年度销售收入
 		cog.setLastYearRevenue(null == revenue ? new BigDecimal(0) : revenue);
 		return cog;
@@ -234,7 +247,8 @@ public class OrgCognizanceServiceImpl extends BaseMybatisDao<OrgCognizanceMapper
 				cog.setAcceptDate(recordTime);
 			} else if (OrgCognizanceStatus.getStatus(cog.getState()) == OrgCognizanceStatus.ISSUING) {
 				cog.setIssuingDate(recordTime);
-				o.setCertificateNumber(StringUtils.isBlank(cog.getCertificateNumber()) ? "" : cog.getCertificateNumber());
+				o.setCertificateNumber(
+						StringUtils.isBlank(cog.getCertificateNumber()) ? "" : cog.getCertificateNumber());
 				o.setIssuingDate(recordTime);
 				o.setCogContacts(null == cog.getContacts() ? null : cog.getContacts());
 				organizationIdentityMapper.updateByPrimaryKeySelective(o);
@@ -348,15 +362,15 @@ public class OrgCognizanceServiceImpl extends BaseMybatisDao<OrgCognizanceMapper
 	}
 
 	@Override
-	public BusinessCountBo countBusiness(String uid) {
+	public BusinessCountBo countBusiness(String uid, Integer year) {
 		BusinessCountBo bcb = new BusinessCountBo();
 		bcb.setUid(uid);
-		bcb.setCopyrightDone(copyrightInfoMapper.countCopyrightDone(uid));
-		bcb.setCopyrightUndone(copyrightInfoMapper.countCopyrightUnDone(uid));
-		bcb.setPatentDone(patentInfoMapper.countPatentDone(uid));
-		bcb.setPatentUndone(patentInfoMapper.countPatentUndone(uid));
-		bcb.setTechProjectDone(techProjectMapper.countTechProjectDone(uid));
-		bcb.setTechProjectUndone(techProjectMapper.countTechProjectUndone(uid));
+		bcb.setCopyrightDone(copyrightInfoMapper.countCopyrightDone(uid, year));
+		bcb.setCopyrightUndone(copyrightInfoMapper.countCopyrightUnDone(uid, year));
+		bcb.setPatentDone(patentInfoMapper.countPatentDone(uid, year));
+		bcb.setPatentUndone(patentInfoMapper.countPatentUndone(uid, year));
+		bcb.setTechProjectDone(techProjectMapper.countTechProjectDone(uid, year));
+		bcb.setTechProjectUndone(techProjectMapper.countTechProjectUndone(uid, year));
 		return bcb;
 	}
 

+ 7 - 0
src/main/java/com/goafanti/common/constant/ErrorConstants.java

@@ -94,4 +94,11 @@ public class ErrorConstants {
 
 	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	OVER_MAX_WRONG_COUNT			= "OVER_MAX_WRONG_COUNT";
+
+	public static final String	WRONG_MONEY						= "WRONG_MONEY";
+
+	public static final String	M_CODE_ERROR					= "M_CODE_ERROR";
 }

+ 2 - 0
src/main/java/com/goafanti/common/controller/BaseController.java

@@ -117,11 +117,13 @@ public class BaseController {
 		if (TokenManager.isLogin() && TokenManager.getToken() instanceof User) {
 			model.addAttribute("userData", TokenManager.getUserToken());
 			model.addAttribute("userName", TokenManager.getUserToken().getNickname());
+			model.addAttribute("isAdmin", false);
 		}
 
 		if (TokenManager.isLogin() && TokenManager.getToken() instanceof Admin) {
 			model.addAttribute("adminData", TokenManager.getAdminToken());
 			model.addAttribute("userName", TokenManager.getAdminToken().getName());
+			model.addAttribute("isAdmin", true);
 		}
 	}
 }

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

@@ -172,14 +172,16 @@ public class PortalController extends BaseController {
 						if (null != bo.getMaturity()) {
 							bo.setMaturityS(bo.getMaturity() * MULTIPLE + "%");
 						}
-						if (null != bo.getTransferPrice()) {
-							bo.setTransferPriceS(bo.getTransferPrice() + UNIT);
-						} else {
-							bo.setTransferPriceS(PRICE_NEGOTIABLE);
-						}
+
 						if (null == bo.getBargainingMode()
 								|| AchievementBargainingMode.NEGOTIABLE.getCode().equals(bo.getBargainingMode())) {
 							bo.setTransferPriceS(PRICE_NEGOTIABLE);
+						} else {
+							if (null != bo.getTransferPrice()) {
+								bo.setTransferPriceS(bo.getTransferPrice() + UNIT);
+							} else {
+								bo.setTransferPriceS(PRICE_NEGOTIABLE);
+							}
 						}
 					}
 				}
@@ -231,15 +233,18 @@ public class PortalController extends BaseController {
 			String province = achievement.getProvince();
 			String city = achievement.getCity();
 			location += (StringUtils.isBlank(province) ? "" : province) + (StringUtils.isBlank(city) ? "" : city);
-			if (null != achievement.getTransferPrice()) {
-				achievement.setTransferPriceS(achievement.getTransferPrice() + UNIT);
-			} else {
-				achievement.setTransferPriceS(PRICE_NEGOTIABLE);
-			}
+
 			if (null == achievement.getBargainingMode()
 					|| AchievementBargainingMode.NEGOTIABLE.equals(achievement.getBargainingMode())) {
 				achievement.setTransferPriceS(PRICE_NEGOTIABLE);
+			} else {
+				if (null != achievement.getTransferPrice()) {
+					achievement.setTransferPriceS(achievement.getTransferPrice() + UNIT);
+				} else {
+					achievement.setTransferPriceS(PRICE_NEGOTIABLE);
+				}
 			}
+
 			achievement.setLocation(location);
 
 		}

+ 8 - 7
src/main/java/com/goafanti/common/controller/PublicController.java

@@ -168,7 +168,7 @@ public class PublicController extends BaseController {
 		String paramString = "{\"code\":\"" + mobileVerifyCode + "\",\"product\":\"阿凡提信息科技\"}";
 		String ret = MobileMessageUtils.sendMessage(mobileCodeTemplate, paramString, mobile, accessKey, accessSecret);
 		if (StringUtils.isNotBlank(ret)) {
-			res.getError().add(buildError(ErrorConstants.MCODE_ERROR, "", "获取手机验证码异常!"));
+			res.getError().add(buildError(ErrorConstants.M_CODE_ERROR));
 		}
 		return res;
 	}
@@ -184,7 +184,7 @@ public class PublicController extends BaseController {
 	public Result downLoadPicture(HttpServletResponse response, String path, HttpServletRequest request) {
 		Result res = new Result();
 		if (StringUtils.isBlank(path)) {
-			res.getError().add(buildError(ErrorConstants.FILE_NON_EXISTENT, "下载文件不存在!"));
+			res.getError().add(buildError(ErrorConstants.FILE_NON_EXISTENT));
 			return res;
 		}
 		String filename = Long.toString(System.nanoTime()) + ".jpg";
@@ -209,19 +209,20 @@ public class PublicController extends BaseController {
 			}
 		} catch (IOException e) {
 			LoggerUtils.fmtError(getClass(), e, "IO错误:%s", e.getMessage());
-			res.getError().add(buildError(ErrorConstants.FILE_NON_EXISTENT, "下载文件不存在!"));
 		} finally {
 			try {
-				in.close();
+				if (null != in) {
+					in.close();
+				}
 			} catch (IOException e) {
 				LoggerUtils.fmtError(getClass(), e, "IO错误:%s", e.getMessage());
-				res.getError().add(buildError(ErrorConstants.FILE_NON_EXISTENT, "下载文件不存在!"));
 			}
 			try {
-				out.close();
+				if (null != out) {
+					out.close();
+				}
 			} catch (IOException e) {
 				LoggerUtils.fmtError(getClass(), e, "IO错误:%s", e.getMessage());
-				res.getError().add(buildError(ErrorConstants.FILE_NON_EXISTENT, "下载文件不存在!"));
 			}
 		}
 		return res;

+ 9 - 24
src/main/java/com/goafanti/common/controller/WebpageController.java

@@ -176,9 +176,15 @@ public class WebpageController extends BaseController {
 		return modelview;
 	}
 
-	@RequestMapping(value = "/portal/search/subscriber", method = RequestMethod.GET)
-	public ModelAndView portalSearchSubscriber(HttpServletRequest request, ModelAndView modelview) {
-		modelview.setViewName("/portal/search/subscriber");
+	@RequestMapping(value = "/portal/search/subscriberUser", method = RequestMethod.GET)
+	public ModelAndView portalSearchSubscriberUser(HttpServletRequest request, ModelAndView modelview) {
+		modelview.setViewName("/portal/search/subscriberUser");
+		return modelview;
+	}
+	
+	@RequestMapping(value = "/portal/search/subscriberOrg", method = RequestMethod.GET)
+	public ModelAndView portalSearchSubscriberOrg(HttpServletRequest request, ModelAndView modelview) {
+		modelview.setViewName("/portal/search/subscriberOrg");
 		return modelview;
 	}
 	
@@ -390,18 +396,6 @@ public class WebpageController extends BaseController {
 	}
 	
 	/**
-	 * 策源地
-	 * @param request
-	 * @param modelview
-	 * @return
-	 */
-	@RequestMapping(value = "/portal/news/newsIndex", method = RequestMethod.GET)
-	public ModelAndView portalNewsNewsIndex(HttpServletRequest request, ModelAndView modelview) {
-		modelview.setViewName("/portal/news/newsIndex");
-		return modelview;
-	}
-	
-	/**
 	 * 服务汇
 	 */
 	@RequestMapping(value = "/portal/service/serviceIndex", method = RequestMethod.GET)
@@ -411,15 +405,6 @@ public class WebpageController extends BaseController {
 	}
 	
 	/**
-	 * 新闻详情
-	 */
-	@RequestMapping(value = "/portal/news/newsDetails", method = RequestMethod.GET)
-	public ModelAndView portalNewsNewsDetails(HttpServletRequest request, ModelAndView modelview) {
-		modelview.setViewName("/portal/news/newsDetails");
-		return modelview;
-	}
-	
-	/**
 	 * 技术交易 
 	 */
 	@RequestMapping(value = "/portal/technologyTrading/index", method = RequestMethod.GET)

+ 4 - 2
src/main/java/com/goafanti/common/dao/CopyrightInfoMapper.java

@@ -3,6 +3,8 @@ package com.goafanti.common.dao;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.ibatis.annotations.Param;
+
 import com.goafanti.common.model.CopyrightInfo;
 import com.goafanti.copyright.bo.CopyrightContractListBo;
 import com.goafanti.copyright.bo.CopyrightInfoDetail;
@@ -31,7 +33,7 @@ public interface CopyrightInfoMapper {
 
 	List<CopyrightInfo> selectByPrimaryKeys(List<String> asList);
 
-	Integer countCopyrightDone(String uid);
+	Integer countCopyrightDone(@Param("uid")String uid, @Param("year")Integer year);
 
 	List<CopyrightContractListBo> listContractCopyrightByContractId(String contractId);
 
@@ -41,5 +43,5 @@ public interface CopyrightInfoMapper {
 
 	Integer findCopyrightInfoNumByUid(String uid);
 
-	Integer countCopyrightUnDone(String uid);
+	Integer countCopyrightUnDone(@Param("uid")String uid, @Param("year")Integer year);
 }

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

@@ -0,0 +1,25 @@
+package com.goafanti.common.dao;
+
+import java.util.List;
+import java.util.Map;
+
+import com.goafanti.common.model.News;
+import com.goafanti.news.bo.NewsSummary;
+
+public interface NewsMapper {
+	int deleteByPrimaryKey(Long id);
+
+	int insert(News record);
+
+	int insertSelective(News record);
+
+	News selectByPrimaryKey(Long id);
+
+	int updateByPrimaryKeySelective(News record);
+
+	int updateByPrimaryKeyWithBLOBs(News record);
+
+	int updateByPrimaryKey(News record);
+
+	List<NewsSummary> findList(Map<String, Object> params);
+}

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

@@ -3,12 +3,15 @@ package com.goafanti.common.dao;
 import java.math.BigDecimal;
 import java.util.List;
 
+import org.apache.ibatis.annotations.Param;
+
 import com.goafanti.cognizance.bo.CognizanceCatagoryBo;
 import com.goafanti.cognizance.bo.CognizanceContractBo;
 import com.goafanti.cognizance.bo.CognizanceManageCostBo;
 import com.goafanti.cognizance.bo.CognizanceOrgInfoBo;
 import com.goafanti.cognizance.bo.CognizanceResearchCostBo;
 import com.goafanti.common.model.OrgCognizance;
+import com.goafanti.common.model.OrgHumanResource;
 
 public interface OrgCognizanceMapper {
     int deleteByPrimaryKey(String id);
@@ -43,4 +46,12 @@ public interface OrgCognizanceMapper {
 
 	int batchDeleteByContractId(List<String> id);
 
+	Integer findFirstCatagory(@Param("year")Integer year, @Param("uid")String uid);
+
+	Integer findSecondCatagory(@Param("year")Integer year, @Param("uid")String uid);
+
+	OrgHumanResource findFirmAndTechTotal(@Param("year")Integer year, @Param("uid")String uid);
+
+	BigDecimal findTotalRevenue(@Param("year")Integer year, @Param("uid")String uid);
+
 }

+ 4 - 2
src/main/java/com/goafanti/common/dao/PatentInfoMapper.java

@@ -3,6 +3,8 @@ package com.goafanti.common.dao;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.ibatis.annotations.Param;
+
 import com.goafanti.common.model.PatentInfo;
 import com.goafanti.patent.bo.PatentAnnualFeeTaskBo;
 import com.goafanti.patent.bo.PatentContractListBo;
@@ -37,9 +39,9 @@ public interface PatentInfoMapper {
 
 	List<PatentInfo> selectByPrimaryKeys(List<String> id);
 
-	Integer countPatentDone(String uid);
+	Integer countPatentDone(@Param("uid")String uid, @Param("year")Integer year);
 
-	Integer countPatentUndone(String uid);
+	Integer countPatentUndone(@Param("uid")String uid, @Param("year")Integer year);
 
 	List<PatentExpireBo> selectExpireRecord();
 

+ 4 - 2
src/main/java/com/goafanti/common/dao/TechProjectMapper.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.TechProject;
 import com.goafanti.techproject.bo.TechProjectContractListBo;
 import com.goafanti.techproject.bo.TechProjectDetailBo;
@@ -24,9 +26,9 @@ public interface TechProjectMapper {
 
 	int batchDeleteByPrimaryKey(List<String> id);
 
-	Integer countTechProjectDone(String uid);
+	Integer countTechProjectDone(@Param("uid")String uid, @Param("year")Integer year);
 
-	Integer countTechProjectUndone(String uid);
+	Integer countTechProjectUndone(@Param("uid")String uid, @Param("year")Integer year);
 
 	List<OrgUnitNames> selectWebsiteUnitNames(String principal);
 

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

@@ -1164,7 +1164,8 @@
 		a.transfer_mode as transferMode,
 		interest.id as interestId,
 		u.lvl as level,
-		a.owner_name as ownerName
+		a.owner_name as ownerName,
+		a.bargaining_mode as bargainingMode
 	FROM
 		achievement a
 	LEFT JOIN <![CDATA[ user ]]> u on u.id = a.owner_id
@@ -1197,7 +1198,8 @@
 		a.transfer_mode as transferMode,
 		interest.id as interestId,
 		u.lvl as level,
-		a.owner_name as ownerName
+		a.owner_name as ownerName,
+		a.bargaining_mode as bargainingMode
 	FROM
 		achievement a
 	LEFT JOIN <![CDATA[ user ]]> u on u.id = a.owner_id
@@ -1218,7 +1220,8 @@
 		a.maturity,
 		ui.province,
 		ui.city,
-		a.transfer_price as transferPrice
+		a.transfer_price as transferPrice,
+		a.bargaining_mode as bargainingMode
 	FROM
 		achievement a
 	LEFT JOIN user_identity ui ON ui.uid = a.owner_id
@@ -1239,7 +1242,8 @@
 		a.maturity,
 		oi.licence_province as province,
 		oi.licence_city as city,
-		a.transfer_price as transferPrice
+		a.transfer_price as transferPrice,
+		a.bargaining_mode as bargainingMode
 	FROM
 		achievement a
 	LEFT JOIN organization_identity oi ON oi.uid = a.owner_id

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

@@ -292,7 +292,7 @@
    <select id="selectTechnician" resultMap="BaseResultMap">
    select a.id, a.name, a.position from admin a 
 		INNER JOIN user_role  ur on a.id = ur.uid
-	where ur.rid not in('1','2','3','4','5','6')
+	where ur.rid not in('1','2','3','4')
 	group by a.id
    </select>
    

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

@@ -530,12 +530,14 @@
     select 
     	<include refid="Base_Column_List" />
     from contract 
-    where year =  
-	   	(select
+    where cognizance_year =  
+	   	(
+	   	select
 	   		Max(cognizance_year)
 	   	from contract
 	   	where uid = #{uid,jdbcType=VARCHAR}
 	   	and deleted_sign = 0
 	   	)
+	and uid = #{uid,jdbcType=VARCHAR}
   </select>
 </mapper>

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

@@ -435,16 +435,42 @@
 		</foreach>
   </select>
   
-  <select id="countCopyrightDone" parameterType="java.lang.String" resultType="java.lang.Integer">
-   select count(1) from copyright_info 
+  <select id="countCopyrightDone"  resultType="java.lang.Integer">
+   select 
+   		count(1) 
+   from copyright_info 
    where uid = #{uid,jdbcType=VARCHAR}
    and delete_sign = 0 and status in (8,9) 
+   and authorized_date >= 
+						(
+							select  
+								str_to_date(CONCAT(#{year,jdbcType=INTEGER}-3,'-01-01'), '%Y-%m-%d %H')
+						)
+   and authorized_date  <![CDATA[ < ]]> 
+						(
+							select  
+								str_to_date(CONCAT(#{year,jdbcType=INTEGER},'-01-01'), '%Y-%m-%d %H')
+						)
+   
   </select>
   
-  <select id="countCopyrightUndone" parameterType="java.lang.String" resultType="java.lang.Integer">
-   select count(1) from copyright_info 
+  <select id="countCopyrightUndone"  resultType="java.lang.Integer">
+   select 
+   		count(1) 
+   from copyright_info 
    where uid = #{uid,jdbcType=VARCHAR}
-   and delete_sign = 0 and status <![CDATA[ < ]]> 8 
+   and delete_sign = 0 
+   and status <![CDATA[ < ]]> 8 
+   and authorized_date >= 
+						(
+							select  
+								str_to_date(CONCAT(#{year,jdbcType=INTEGER}-3,'-01-01'), '%Y-%m-%d %H')
+						)
+   and authorized_date  <![CDATA[ < ]]> 
+						(
+							select  
+								str_to_date(CONCAT(#{year,jdbcType=INTEGER},'-01-01'), '%Y-%m-%d %H')
+						)
   </select>
   
   <select id="listContractCopyrightByContractId" parameterType="java.lang.String" resultType="com.goafanti.copyright.bo.CopyrightContractListBo">

+ 198 - 0
src/main/java/com/goafanti/common/mapper/NewsMapper.xml

@@ -0,0 +1,198 @@
+<?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.NewsMapper">
+  <resultMap id="BaseResultMap" type="com.goafanti.common.model.News">
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+    <result column="edit_time" jdbcType="TIMESTAMP" property="editTime" />
+    <result column="title" jdbcType="VARCHAR" property="title" />
+    <result column="title_img" jdbcType="VARCHAR" property="titleImg" />
+    <result column="author" jdbcType="VARCHAR" property="author" />
+    <result column="type" jdbcType="INTEGER" property="type" />
+    <result column="hot" jdbcType="INTEGER" property="hot" />
+    <result column="source" jdbcType="VARCHAR" property="source" />
+    <result column="source_url" jdbcType="VARCHAR" property="sourceUrl" />
+    <result column="summary" jdbcType="VARCHAR" property="summary" />
+  </resultMap>
+  <resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.goafanti.common.model.News">
+    <result column="content" jdbcType="LONGVARCHAR" property="content" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    id, create_time, edit_time, title, title_img, author, type, hot, source, source_url, 
+    summary
+  </sql>
+  <sql id="Blob_Column_List">
+    content
+  </sql>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="ResultMapWithBLOBs">
+    select 
+    <include refid="Base_Column_List" />
+    ,
+    <include refid="Blob_Column_List" />
+    from news
+    where id = #{id,jdbcType=BIGINT}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+    delete from news
+    where id = #{id,jdbcType=BIGINT}
+  </delete>
+  <insert id="insert" parameterType="com.goafanti.common.model.News">
+    insert into news (id, create_time, edit_time, 
+      title, title_img, author, 
+      type, hot, source, 
+      source_url, summary, content
+      )
+    values (#{id,jdbcType=BIGINT}, #{createTime,jdbcType=TIMESTAMP}, #{editTime,jdbcType=TIMESTAMP}, 
+      #{title,jdbcType=VARCHAR}, #{titleImg,jdbcType=VARCHAR}, #{author,jdbcType=VARCHAR}, 
+      #{type,jdbcType=INTEGER}, #{hot,jdbcType=INTEGER}, #{source,jdbcType=VARCHAR}, 
+      #{sourceUrl,jdbcType=VARCHAR}, #{summary,jdbcType=VARCHAR}, #{content,jdbcType=LONGVARCHAR}
+      )
+  </insert>
+  <insert id="insertSelective" parameterType="com.goafanti.common.model.News">
+    insert into news
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="createTime != null">
+        create_time,
+      </if>
+      <if test="editTime != null">
+        edit_time,
+      </if>
+      <if test="title != null">
+        title,
+      </if>
+      <if test="titleImg != null">
+        title_img,
+      </if>
+      <if test="author != null">
+        author,
+      </if>
+      <if test="type != null">
+        type,
+      </if>
+      <if test="hot != null">
+        hot,
+      </if>
+      <if test="source != null">
+        source,
+      </if>
+      <if test="sourceUrl != null">
+        source_url,
+      </if>
+      <if test="summary != null">
+        summary,
+      </if>
+      <if test="content != null">
+        content,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=BIGINT},
+      </if>
+      <if test="createTime != null">
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="editTime != null">
+        #{editTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="title != null">
+        #{title,jdbcType=VARCHAR},
+      </if>
+      <if test="titleImg != null">
+        #{titleImg,jdbcType=VARCHAR},
+      </if>
+      <if test="author != null">
+        #{author,jdbcType=VARCHAR},
+      </if>
+      <if test="type != null">
+        #{type,jdbcType=INTEGER},
+      </if>
+      <if test="hot != null">
+        #{hot,jdbcType=INTEGER},
+      </if>
+      <if test="source != null">
+        #{source,jdbcType=VARCHAR},
+      </if>
+      <if test="sourceUrl != null">
+        #{sourceUrl,jdbcType=VARCHAR},
+      </if>
+      <if test="summary != null">
+        #{summary,jdbcType=VARCHAR},
+      </if>
+      <if test="content != null">
+        #{content,jdbcType=LONGVARCHAR},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.goafanti.common.model.News">
+    update news
+    <set>
+      <if test="createTime != null">
+        create_time = #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="editTime != null">
+        edit_time = #{editTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="title != null">
+        title = #{title,jdbcType=VARCHAR},
+      </if>
+      <if test="titleImg != null">
+        title_img = #{titleImg,jdbcType=VARCHAR},
+      </if>
+      <if test="author != null">
+        author = #{author,jdbcType=VARCHAR},
+      </if>
+      <if test="type != null">
+        type = #{type,jdbcType=INTEGER},
+      </if>
+      <if test="hot != null">
+        hot = #{hot,jdbcType=INTEGER},
+      </if>
+      <if test="source != null">
+        source = #{source,jdbcType=VARCHAR},
+      </if>
+      <if test="sourceUrl != null">
+        source_url = #{sourceUrl,jdbcType=VARCHAR},
+      </if>
+      <if test="summary != null">
+        summary = #{summary,jdbcType=VARCHAR},
+      </if>
+      <if test="content != null">
+        content = #{content,jdbcType=LONGVARCHAR},
+      </if>
+    </set>
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <update id="updateByPrimaryKeyWithBLOBs" parameterType="com.goafanti.common.model.News">
+    update news
+    set create_time = #{createTime,jdbcType=TIMESTAMP},
+      edit_time = #{editTime,jdbcType=TIMESTAMP},
+      title = #{title,jdbcType=VARCHAR},
+      title_img = #{titleImg,jdbcType=VARCHAR},
+      author = #{author,jdbcType=VARCHAR},
+      type = #{type,jdbcType=INTEGER},
+      hot = #{hot,jdbcType=INTEGER},
+      source = #{source,jdbcType=VARCHAR},
+      source_url = #{sourceUrl,jdbcType=VARCHAR},
+      summary = #{summary,jdbcType=VARCHAR},
+      content = #{content,jdbcType=LONGVARCHAR}
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.goafanti.common.model.News">
+    update news
+    set create_time = #{createTime,jdbcType=TIMESTAMP},
+      edit_time = #{editTime,jdbcType=TIMESTAMP},
+      title = #{title,jdbcType=VARCHAR},
+      title_img = #{titleImg,jdbcType=VARCHAR},
+      author = #{author,jdbcType=VARCHAR},
+      type = #{type,jdbcType=INTEGER},
+      hot = #{hot,jdbcType=INTEGER},
+      source = #{source,jdbcType=VARCHAR},
+      source_url = #{sourceUrl,jdbcType=VARCHAR},
+      summary = #{summary,jdbcType=VARCHAR}
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+</mapper>

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

@@ -0,0 +1,27 @@
+<?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.NewsMapper">
+	<resultMap id="SummaryResultMap" type="com.goafanti.news.bo.NewsSummary">
+		<id column="id" jdbcType="BIGINT" property="id" />
+		<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+		<result column="title" jdbcType="VARCHAR" property="title" />
+		<result column="title_img" jdbcType="VARCHAR" property="titleImg" />
+		<result column="type" jdbcType="INTEGER" property="type" />
+		<result column="hot" jdbcType="INTEGER" property="hot" />
+		<result column="summary" jdbcType="VARCHAR" property="summary" />
+	</resultMap>
+	<sql id="Summary_Column_List">
+		id, create_time, title, title_img, type, hot, summary
+	</sql>
+	<select id="findList" resultMap="SummaryResultMap">
+		select
+		<include refid="Summary_Column_List" />
+		from news
+		where 1=1 
+		<if test=" type != null">
+			and type = #{type,jdbcType=INTEGER}
+		</if>
+		order by id desc
+		limit #{pageNo,jdbcType=INTEGER}, #{pageSize,jdbcType=INTEGER}
+	</select>
+</mapper>

+ 143 - 16
src/main/java/com/goafanti/common/mapper/OrgCognizanceMapper.xml

@@ -433,34 +433,91 @@
   </select>
 	
   <select id="selectCognizanceCatagoryBoByUidAndYear"  resultType="com.goafanti.cognizance.bo.CognizanceCatagoryBo">
-		 select u.id as uid, a.firstCatagory, b.secondCatagory, c.firmTotal, c.techTotal, d.totalRevenue FROM
-				(select id from user where id = #{1}) u 
+		 select 
+		 	u.id as uid, 
+		 	a.firstCatagory, b.secondCatagory, 
+		 	c.firmTotal, 
+		 	c.techTotal, 
+		 	d.totalRevenue FROM
+			(
+				select id from user where id = #{1}
+			) u 
 	  LEFT JOIN
-				(select uid, count(1) as firstCatagory from org_intellectual_property 
-				where uid = #{1} and evaluation_category= 0 and deleted_sign = 0 GROUP BY uid
+				(
+					select 
+						uid, 
+						count(1) as firstCatagory 
+					from org_intellectual_property 
+					where uid = #{1} 
+					and evaluation_category= 0 
+					and deleted_sign = 0 
+					and authorization_date >= 
+						(
+							select  
+								str_to_date(CONCAT(#{0}-3,'-01-01'), '%Y-%m-%d %H')
+						)
+					and authorization_date  <![CDATA[ < ]]> 
+						(
+							select  
+								str_to_date(CONCAT(#{0},'-01-01'), '%Y-%m-%d %H')
+						)
+					and deleted_sign = 0
+					GROUP BY uid
 				) a on a.uid = u.id
       LEFT JOIN
 				(
-				select uid, count(1) as secondCatagory from org_intellectual_property 
-				where uid = #{1} and evaluation_category = 1 and deleted_sign = 0 GROUP BY uid
+					select 
+						uid, 
+						count(1) as secondCatagory 
+					from org_intellectual_property 
+					where uid = #{1}
+					and evaluation_category = 1 
+					and deleted_sign = 0 
+					and authorization_date >= 
+						(
+							select  
+								str_to_date(CONCAT(#{0}-3,'-01-01'), '%Y-%m-%d %H')
+						)
+					and authorization_date  <![CDATA[ < ]]> 
+						(
+							select  
+								str_to_date(CONCAT(#{0},'-01-01'), '%Y-%m-%d %H')
+						)
+					GROUP BY uid
 				) b on b.uid = u.id
       LEFT JOIN
        			(
-				select uid, firm_total as firmTotal, tech_total as techTotal from org_human_resource where uid = #{1} and year = 
-				#{0}-1   and deleted_sign = 0
+					select 
+						uid, 
+						firm_total as firmTotal, 
+						tech_total as techTotal 
+					from org_human_resource 
+					where 
+						uid = #{1} 
+						and year = #{0}-1   
+						and deleted_sign = 0
 				) c on c.uid = u.id
 	  LEFT JOIN
 				(
-				SELECT uid,(operating_income + non_operating_income - non_taxable_income) as totalRevenue
-				from org_ratepay where uid = #{1} 
-				and year = #{0}-1  and deleted_sign = 0
+					SELECT 
+						uid,
+						(operating_income + non_operating_income - non_taxable_income) as totalRevenue
+					from org_ratepay 
+					where 
+						uid = #{1} 
+						and year = #{0}-1  
+						and deleted_sign = 0
 				) d on d.uid = u.id
   </select>
 	
   <select id="selectLastYearRevenueByUidAndYear"  resultType="java.math.BigDecimal">
-		SELECT sum(last_year_revenue) as lastYearRevenue
-			from org_tech_product where uid = #{1}
-			and year = #{0} and deleted_sign = 0
+		SELECT 
+			sum(last_year_revenue) as lastYearRevenue
+		from org_tech_product 
+		where 
+			uid = #{1}
+			and year = #{0}-1 
+			and deleted_sign = 0
   </select>
 	
   <select id="selectCognizanceByUidAndYear" resultMap="BaseResultMap"  >
@@ -479,8 +536,15 @@
   </update>
   
   <select id="findCultivationListByPage" parameterType="java.lang.String" resultType="com.goafanti.cognizance.bo.CultivationListBo">
-  	select u.id as uid,  i.licence_province as province, i.unit_name as unitName, i.cog_contacts as cogContacts,
-		i.certificate_number as certificateNumber, i.issuing_date as issuingDate, a.name as consultant, i.tech_principal,
+  	select 
+  		u.id as uid,  
+  		i.licence_province as province, 
+  		i.unit_name as unitName, 
+  		i.cog_contacts as cogContacts,
+		i.certificate_number as certificateNumber, 
+		i.issuing_date as issuingDate, 
+		a.name as consultant, 
+		i.tech_principal,
 		CONCAT(i.first_contacts,'  ', i.first_mobile) as firstContacts,
 	    CONCAT(i.second_contacts,'  ', i.second_mobile) as secondContacts,
 	    CONCAT(i.third_contacts,'  ', i.third_mobile) as thirdContacts
@@ -546,4 +610,67 @@
 		#{item}
 	</foreach>
   </update>
+  
+  <select id="findFirstCatagory" resultType="java.lang.Integer">
+  		select 
+			count(1) as firstCatagory 
+			from org_intellectual_property 
+					where uid = #{uid,jdbcType=VARCHAR}
+					and evaluation_category= 0 
+					and deleted_sign = 0 
+					and authorization_date >= 
+						(
+							select  
+								str_to_date(CONCAT(#{year,jdbcType=INTEGER}-3,'-01-01'), '%Y-%m-%d %H')
+						)
+					and authorization_date  <![CDATA[ < ]]> 
+						(
+							select  
+								str_to_date(CONCAT(#{year,jdbcType=INTEGER},'-01-01'), '%Y-%m-%d %H')
+						)
+					and deleted_sign = 0
+					GROUP BY uid
+  </select>
+  
+  <select id="findSecondCatagory" resultType="java.lang.Integer">
+  	select 
+						count(1) as secondCatagory 
+					from org_intellectual_property 
+					where uid = #{uid,jdbcType=VARCHAR}
+					and evaluation_category = 1 
+					and deleted_sign = 0 
+					and authorization_date >= 
+						(
+							select  
+								str_to_date(CONCAT(#{year,jdbcType=INTEGER}-3,'-01-01'), '%Y-%m-%d %H')
+						)
+					and authorization_date  <![CDATA[ < ]]> 
+						(
+							select  
+								str_to_date(CONCAT(#{year,jdbcType=INTEGER},'-01-01'), '%Y-%m-%d %H')
+						)
+					GROUP BY uid
+  </select>
+  
+  <select id="findFirmAndTechTotal" resultType="com.goafanti.common.model.OrgHumanResource">
+		select 
+			uid, 
+						firm_total as firmTotal, 
+						tech_total as techTotal 
+					from org_human_resource 
+					where 
+						uid = #{uid,jdbcType=VARCHAR} 
+						and year = #{year,jdbcType=INTEGER}-1   
+						and deleted_sign = 0
+  </select>
+  
+  <select id="findTotalRevenue" resultType="java.math.BigDecimal">
+  SELECT 
+						(operating_income + non_operating_income - non_taxable_income) as totalRevenue
+					from org_ratepay 
+					where 
+						uid = #{uid,jdbcType=VARCHAR} 
+						and year = #{year,jdbcType=INTEGER}-1  
+						and deleted_sign = 0
+  </select>
 </mapper>

+ 34 - 9
src/main/java/com/goafanti/common/mapper/OrgIntellectualPropertyMapper.xml

@@ -282,19 +282,44 @@
   </select>
   
    <select id="selectIntellectualPropertyCount" resultType="com.goafanti.cognizance.bo.AnnualReportPropertyRightBo">
-  	select u.id as uid, a.utilityPatent, b.exteriorPatent, c.softwareWorks, d.defensePatent, e.newPlantCariety, f.nationalCrop,
-		g.nationalDrug, h.chineseMedicine, i.circuitDesign, j.inventionPatent from 
+  	select 
+  		u.id as uid, 
+  		a.utilityPatent, 
+  		b.exteriorPatent, 
+  		c.softwareWorks, 
+  		d.defensePatent, 
+  		e.newPlantCariety, 
+  		f.nationalCrop,
+		g.nationalDrug, 
+		h.chineseMedicine, 
+		i.circuitDesign, 
+		j.inventionPatent from 
 		(
-		select id from user where id = #{1}
-		) u LEFT JOIN
+			select 
+				id 
+			from user 
+			where id = #{1}
+		) 
+		u LEFT JOIN
 		
 		(
-			select uid, count(1) as utilityPatent 
+			select 
+				uid, 
+				count(1) as utilityPatent 
 			from org_intellectual_property 
-			where uid = #{1} and catagory = 2 and authorization_date 
-				 >= (select  str_to_date(CONCAT(#{0}-2,'-01-01'), '%Y-%m-%d %H') )
-						and authorization_date  <![CDATA[ < ]]> (select  str_to_date(CONCAT(#{0}+1,'-01-01'), '%Y-%m-%d %H'))
-			and deleted_sign = 0
+			where uid = #{1} 
+			and catagory = 2 
+			and authorization_date >= 
+				(
+					select  
+						str_to_date(CONCAT(#{0}-2,'-01-01'), '%Y-%m-%d %H')
+				)
+			and authorization_date  <![CDATA[ < ]]> 
+				(
+					select  
+						str_to_date(CONCAT(#{0}+1,'-01-01'), '%Y-%m-%d %H')
+				)
+					and deleted_sign = 0
 		) a on a.uid = u.id  
 		LEFT JOIN
 		(

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

@@ -238,6 +238,9 @@
     select 
     <include refid="Base_Column_List" />
     from org_ratepay
-    where uid = #{0} and year = #{1} and deleted_sign = 0
+    where 
+    	uid = #{0} 
+    and year = #{1} 
+    and deleted_sign = 0
   </select>
 </mapper>

+ 61 - 117
src/main/java/com/goafanti/common/mapper/OrganizationIdentityMapper.xml

@@ -867,128 +867,71 @@
 		update
 		organization_identity
 		set uid = #{uid,jdbcType=VARCHAR},
-		contacts =
-		#{contacts,jdbcType=VARCHAR},
-		contact_mobile =
-		#{contactMobile,jdbcType=VARCHAR},
-		fixed_tel =
-		#{fixedTel,jdbcType=VARCHAR},
+		contacts = #{contacts,jdbcType=VARCHAR},
+		contact_mobile = #{contactMobile,jdbcType=VARCHAR},
+		fixed_tel = #{fixedTel,jdbcType=VARCHAR},
 		qq = #{qq,jdbcType=VARCHAR},
 		postal_address = #{postalAddress,jdbcType=VARCHAR},
-		postcode =
-		#{postcode,jdbcType=VARCHAR},
-		aft_username =
-		#{aftUsername,jdbcType=VARCHAR},
-		unit_name =
-		#{unitName,jdbcType=VARCHAR},
-		registered_capital =
-		#{registeredCapital,jdbcType=DECIMAL},
-		licence_number =
-		#{licenceNumber,jdbcType=VARCHAR},
-		licence_province =
-		#{licenceProvince,jdbcType=INTEGER},
-		licence_city =
-		#{licenceCity,jdbcType=INTEGER},
-		licence_area =
-		#{licenceArea,jdbcType=INTEGER},
-		licence_scanning_url =
-		#{licenceScanningUrl,jdbcType=VARCHAR},
-		org_code =
-		#{orgCode,jdbcType=VARCHAR},
-		org_code_url =
-		#{orgCodeUrl,jdbcType=VARCHAR},
-		bank_account =
-		#{bankAccount,jdbcType=VARCHAR},
+		postcode = #{postcode,jdbcType=VARCHAR},
+		aft_username = #{aftUsername,jdbcType=VARCHAR},
+		unit_name = #{unitName,jdbcType=VARCHAR},
+		registered_capital = #{registeredCapital,jdbcType=DECIMAL},
+		licence_number = #{licenceNumber,jdbcType=VARCHAR},
+		licence_province = #{licenceProvince,jdbcType=INTEGER},
+		licence_city = #{licenceCity,jdbcType=INTEGER},
+		licence_area = #{licenceArea,jdbcType=INTEGER},
+		licence_scanning_url = #{licenceScanningUrl,jdbcType=VARCHAR},
+		org_code = #{orgCode,jdbcType=VARCHAR},
+		org_code_url = #{orgCodeUrl,jdbcType=VARCHAR},
+		bank_account = #{bankAccount,jdbcType=VARCHAR},
 		banks = #{banks,jdbcType=VARCHAR},
 		bank_branch = #{bankBranch,jdbcType=VARCHAR},
-		bank_card_number =
-		#{bankCardNumber,jdbcType=VARCHAR},
-		validation_amount =
-		#{validationAmount,jdbcType=DECIMAL},
-		identity_type =
-		#{identityType,jdbcType=INTEGER},
-		location_province =
-		#{locationProvince,jdbcType=INTEGER},
-		location_city =
-		#{locationCity,jdbcType=INTEGER},
-		location_area =
-		#{locationArea,jdbcType=INTEGER},
-		legal_person =
-		#{legalPerson,jdbcType=VARCHAR},
-		legal_person_id_card =
-		#{legalPersonIdCard,jdbcType=VARCHAR},
-		last_year_tax_report_url =
-		#{lastYearTaxReportUrl,jdbcType=VARCHAR},
-		audit_status =
-		#{auditStatus,jdbcType=INTEGER},
+		bank_card_number = #{bankCardNumber,jdbcType=VARCHAR},
+		validation_amount = #{validationAmount,jdbcType=DECIMAL},
+		identity_type = #{identityType,jdbcType=INTEGER},
+		location_province = #{locationProvince,jdbcType=INTEGER},
+		location_city = #{locationCity,jdbcType=INTEGER},
+		location_area = #{locationArea,jdbcType=INTEGER},
+		legal_person = #{legalPerson,jdbcType=VARCHAR},
+		legal_person_id_card = #{legalPersonIdCard,jdbcType=VARCHAR},
+		last_year_tax_report_url = #{lastYearTaxReportUrl,jdbcType=VARCHAR},
+		audit_status = #{auditStatus,jdbcType=INTEGER},
 		process = #{process,jdbcType=INTEGER},
 		wrong_count = #{wrongCount,jdbcType=INTEGER},
-		payment_date =
-		#{paymentDate,jdbcType=TIMESTAMP},
-		first_contacts =
-		#{firstContacts,jdbcType=VARCHAR},
-		first_mobile =
-		#{firstMobile,jdbcType=VARCHAR},
-		second_contacts =
-		#{secondContacts,jdbcType=VARCHAR},
-		second_mobile =
-		#{secondMobile,jdbcType=VARCHAR},
-		third_contacts =
-		#{thirdContacts,jdbcType=VARCHAR},
-		third_mobile =
-		#{thirdMobile,jdbcType=VARCHAR},
+		payment_date = #{paymentDate,jdbcType=TIMESTAMP},
+		first_contacts = #{firstContacts,jdbcType=VARCHAR},
+		first_mobile = #{firstMobile,jdbcType=VARCHAR},
+		second_contacts = #{secondContacts,jdbcType=VARCHAR},
+		second_mobile = #{secondMobile,jdbcType=VARCHAR},
+		third_contacts = #{thirdContacts,jdbcType=VARCHAR},
+		third_mobile = #{thirdMobile,jdbcType=VARCHAR},
 		listed = #{listed,jdbcType=INTEGER},
 		listed_date = #{listedDate,jdbcType=TIMESTAMP},
-		listed_type =
-		#{listedType,jdbcType=INTEGER},
-		stock_code =
-		#{stockCode,jdbcType=VARCHAR},
-		certificate_number =
-		#{certificateNumber,jdbcType=VARCHAR},
-		issuing_date =
-		#{issuingDate,jdbcType=TIMESTAMP},
-		cog_contacts =
-		#{cogContacts,jdbcType=INTEGER},
-		techPrincipal =
-		#{techPrincipal,jdbcType=VARCHAR},
-		contacts_fixed_tel =
-		#{contactsFixedTel,jdbcType=VARCHAR},
-		contacts_fax =
-		#{contactsFax,jdbcType=VARCHAR},
-		legal_person_tel =
-		#{legalPersonTel,jdbcType=VARCHAR},
-		legal_person_fax =
-		#{legalPersonFax,jdbcType=VARCHAR},
-		legal_person_email =
-		#{legalPersonEmail,jdbcType=VARCHAR},
-		registration_time =
-		#{registrationTime,jdbcType=TIMESTAMP},
-		ratepay_code =
-		#{ratepayCode,jdbcType=VARCHAR},
-		industry =
-		#{industry,jdbcType=INTEGER},
-		enterprise_scale =
-		#{enterpriseScale,jdbcType=INTEGER},
-		register_type =
-		#{registerType,jdbcType=VARCHAR},
-		foreign_investment =
-		#{foreignInvestment,jdbcType=VARCHAR},
-		field =
-		#{field,jdbcType=VARCHAR},
-		tax_authority =
-		#{taxAuthority,jdbcType=INTEGER},
-		ratepay_method =
-		#{ratepayMethod,jdbcType=INTEGER},
-		high_tech_zone =
-		#{highTechZone,jdbcType=INTEGER},
-		risk_investment =
-		#{riskInvestment,jdbcType=INTEGER},
-		business_scope =
-		#{businessScope,jdbcType=VARCHAR},
-		high_tech_name =
-		#{highTechName,jdbcType=VARCHAR},
-		patent_prory_statement_url =
-		#{patentProryStatementUrl,jdbcType=VARCHAR}
+		listed_type = #{listedType,jdbcType=INTEGER},
+		stock_code = #{stockCode,jdbcType=VARCHAR},
+		certificate_number = #{certificateNumber,jdbcType=VARCHAR},
+		issuing_date = #{issuingDate,jdbcType=TIMESTAMP},
+		cog_contacts = #{cogContacts,jdbcType=INTEGER},
+		tech_principal = #{techPrincipal,jdbcType=VARCHAR},
+		contacts_fixed_tel = #{contactsFixedTel,jdbcType=VARCHAR},
+		contacts_fax = #{contactsFax,jdbcType=VARCHAR},
+		legal_person_tel = #{legalPersonTel,jdbcType=VARCHAR},
+		legal_person_fax = #{legalPersonFax,jdbcType=VARCHAR},
+		legal_person_email = #{legalPersonEmail,jdbcType=VARCHAR},
+		registration_time = #{registrationTime,jdbcType=TIMESTAMP},
+		ratepay_code = #{ratepayCode,jdbcType=VARCHAR},
+		industry = #{industry,jdbcType=INTEGER},
+		enterprise_scale = #{enterpriseScale,jdbcType=INTEGER},
+		register_type = #{registerType,jdbcType=VARCHAR},
+		foreign_investment = #{foreignInvestment,jdbcType=VARCHAR},
+		field = #{field,jdbcType=VARCHAR},
+		tax_authority = #{taxAuthority,jdbcType=INTEGER},
+		ratepay_method = #{ratepayMethod,jdbcType=INTEGER},
+		high_tech_zone = #{highTechZone,jdbcType=INTEGER},
+		risk_investment = #{riskInvestment,jdbcType=INTEGER},
+		business_scope = #{businessScope,jdbcType=VARCHAR},
+		high_tech_name = #{highTechName,jdbcType=VARCHAR},
+		patent_prory_statement_url = #{patentProryStatementUrl,jdbcType=VARCHAR}
 		where id = #{id,jdbcType=VARCHAR}
 	</update>
 
@@ -1096,8 +1039,9 @@
 	
 	
 	<select id="selectAuditorOrgIdentityDetailByUserId" parameterType="java.lang.String" resultType="com.goafanti.user.bo.AuditorOrgIdentityDetailBo">
-		select  u.aid, u.mid,
-			oi.id, oi.uid,  oi.aft_username as aftUsername,  oi.unit_name as unitName,  oi.identity_type as identityType,
+		select  
+			 u.aid, u.mid,
+			 oi.id, oi.uid,  oi.aft_username as aftUsername,  oi.unit_name as unitName,  oi.identity_type as identityType,
 			 oi.first_contacts as firstContacts,  oi.first_mobile as firstMobile,  oi.second_contacts as secondContacts,
 			 oi.second_mobile as secondMobile,  oi.third_contacts as thirdContacts,  oi.third_mobile as thirdMobile,
 			 oi.legal_person as legalPerson,  oi.legal_person_id_card as legalPersonIdCard,  oi.registration_time as registrationTime,
@@ -1106,7 +1050,7 @@
 			 oi.org_code_url as orgCodeUrl,  oi.banks, bank_branch as bankBranch,  oi.bank_card_number as bankCardNumber,
 			 oi.location_province as locationProvince,  oi.location_city as locationCity,  oi.location_area as locationArea,
 			 oi.validation_amount as validationAmount,  oi.payment_date as paymentDate,  oi.audit_status as auditStatus,
-			 oi.last_year_tax_report_url as lastYearTaxReportUrl
+			 oi.last_year_tax_report_url as lastYearTaxReportUrl, oi.field, oi.registered_capital as registeredCapital
 		from user u 
 		LEFT JOIN organization_identity oi on oi.uid = u.id
 		where uid = #{uid,jdbcType=VARCHAR}

+ 34 - 8
src/main/java/com/goafanti/common/mapper/PatentInfoMapper.xml

@@ -983,16 +983,42 @@
 		</foreach>
 	</select>
 	
-  <select id="countPatentDone" parameterType="java.lang.String" resultType="java.lang.Integer">
-	   select count(1) from patent_info 
-	   where uid = #{uid,jdbcType=VARCHAR}
-	   and deleted_sign = 0 and patent_state in (12,13) 
+  <select id="countPatentDone"  resultType="java.lang.Integer">
+	 select 
+	  	 count(1) from patent_info 
+	 where uid = #{uid,jdbcType=VARCHAR}
+	 and deleted_sign = 0 
+	 and patent_state in (12,13) 
+	 and authorized_date >= 
+						(
+							select  
+								str_to_date(CONCAT(#{year,jdbcType=INTEGER}-3,'-01-01'), '%Y-%m-%d %H')
+						)
+     and authorized_date  <![CDATA[ < ]]> 
+						(
+							select  
+								str_to_date(CONCAT(#{year,jdbcType=INTEGER},'-01-01'), '%Y-%m-%d %H')
+						)
+	 
   </select>
   
-  <select id="countPatentUndone" parameterType="java.lang.String" resultType="java.lang.Integer">
-	   select count(1) from patent_info 
-	   where uid = #{uid,jdbcType=VARCHAR}
-	   and deleted_sign = 0 and patent_state <![CDATA[ < ]]> 12 
+  <select id="countPatentUndone"  resultType="java.lang.Integer">
+    select 
+    	count(1) 
+    from patent_info 
+	where uid = #{uid,jdbcType=VARCHAR}
+	and deleted_sign = 0 
+	and patent_state <![CDATA[ < ]]> 12
+	and authorized_date >= 
+						(
+							select  
+								str_to_date(CONCAT(#{year,jdbcType=INTEGER}-3,'-01-01'), '%Y-%m-%d %H')
+						)
+    and authorized_date  <![CDATA[ < ]]> 
+						(
+							select  
+								str_to_date(CONCAT(#{year,jdbcType=INTEGER},'-01-01'), '%Y-%m-%d %H')
+						)
   </select>
   
   <select id="selectExpireRecord"  resultType="com.goafanti.patent.bo.PatentExpireBo">	

+ 33 - 6
src/main/java/com/goafanti/common/mapper/TechProjectMapper.xml

@@ -461,16 +461,43 @@
 	</foreach>
   </update>
   
-  <select id="countTechProjectDone" parameterType="java.lang.String" resultType="java.lang.Integer">
-	   select count(1) from tech_project 
+  <select id="countTechProjectDone"  resultType="java.lang.Integer">
+	   select 
+	   		count(1) 
+	   from tech_project 
 	   where uid = #{uid,jdbcType=VARCHAR}
-	   and deleted_sign = 0 and state in (6,8) 
+	   and 
+	   deleted_sign = 0 
+	   and state in (6,8) 
+	   and approved_date >= 
+						(
+							select  
+								str_to_date(CONCAT(#{year,jdbcType=INTEGER}-3,'-01-01'), '%Y-%m-%d %H')
+						)
+   	   and approved_date  <![CDATA[ < ]]> 
+						(
+							select  
+								str_to_date(CONCAT(#{year,jdbcType=INTEGER},'-01-01'), '%Y-%m-%d %H')
+						)
   </select>
   
-  <select id="countTechProjectUndone" parameterType="java.lang.String" resultType="java.lang.Integer">
-	   select count(1) from tech_project 
+  <select id="countTechProjectUndone"  resultType="java.lang.Integer">
+	   select 
+	   		count(1) 
+	   from tech_project 
 	   where uid = #{uid,jdbcType=VARCHAR}
-	   and deleted_sign = 0 and state in (1,2,3,4,5,7)
+	   and deleted_sign = 0 
+	   and state in (1,2,3,4,5,7)
+	   and approved_date >= 
+						(
+							select  
+								str_to_date(CONCAT(#{year,jdbcType=INTEGER}-3,'-01-01'), '%Y-%m-%d %H')
+						)
+   	   and approved_date  <![CDATA[ < ]]> 
+						(
+							select  
+								str_to_date(CONCAT(#{year,jdbcType=INTEGER},'-01-01'), '%Y-%m-%d %H')
+						) 
   </select>
   
   <select id="selectWebsiteUnitNames" parameterType="java.lang.String" resultType="com.goafanti.user.bo.OrgUnitNames">

+ 31 - 8
src/main/java/com/goafanti/common/mapper/UserIdentityMapper.xml

@@ -311,7 +311,7 @@
       wrong_count = #{wrongCount,jdbcType=INTEGER},
       payment_date = #{paymentDate,jdbcType=TIMESTAMP},
       expert = #{expert,jdbcType=INTEGER},
-      celebrity = #{celebrity,jdbcType=INTEGER},
+      celebrity = #{celebrity,jdbcType=INTEGER}
     where id = #{id,jdbcType=VARCHAR}
   </update>
   
@@ -324,7 +324,8 @@
   
    
   <select id="selectUserIdentityBoByUserId" parameterType="java.lang.String" resultType="com.goafanti.user.bo.UserIdentityBo">
-  	select t.id, t.uid, t.username, t.sex, t.date_of_birth_year as dateOfBirthYear,
+  	select 
+  		   t.id, t.uid, t.username, t.sex, t.date_of_birth_year as dateOfBirthYear,
   		   t.date_of_birth_month as dateOfBirthMonth, t.id_number as idNumber, t.audit_status as auditStatus,
 		   u.mobile, u.number from user u left JOIN user_identity t
 	on t.uid = u.id where t.uid=#{uid,jdbcType=VARCHAR}
@@ -332,11 +333,30 @@
   
   <select id="selectAuditorUserIdentityByUserId" parameterType="java.lang.String" resultType="com.goafanti.user.bo.AuditorUserIdentityDetailBo">
   	select 
-  		u.aid, u.mid, ui.id, ui.uid, ui.username, ui.sex, ui.date_of_birth_year as dateOfBirthYear,
-  		ui.date_of_birth_month as dateOfBirthMonth, ui.id_number as idNumber, ui.positive_id_url as positiveIdUrl,
-  		ui.opposite_id_url as oppositeIdUrl, ui.aft_username as aftUsername, ui.province, ui.city, ui.area, ui.contact_mobile as contactMobile,
-  		ui.bank_name as bankName, ui.bank_account as bankAccount, ui.bank_card_number as bankCardNumber, ui.amount_money as amountMoney,
-  		ui.audit_status as auditStatus, ui.payment_date as paymentDate, ui.expert, ui.celebrity
+  		u.aid, 
+  		u.mid, 
+  		ui.id, 
+  		ui.uid, 
+  		ui.username, 
+  		ui.sex, 
+  		ui.date_of_birth_year as dateOfBirthYear,
+  		ui.date_of_birth_month as dateOfBirthMonth, 
+  		ui.id_number as idNumber, 
+  		ui.positive_id_url as positiveIdUrl,
+  		ui.opposite_id_url as oppositeIdUrl, 
+  		ui.aft_username as aftUsername, 
+  		ui.province, 
+  		ui.city, 
+  		ui.area, 
+  		ui.contact_mobile as contactMobile,
+  		ui.bank_name as bankName, 
+  		ui.bank_account as bankAccount, 
+  		ui.bank_card_number as bankCardNumber, 
+  		ui.amount_money as amountMoney,
+  		ui.audit_status as auditStatus, 
+  		ui.payment_date as paymentDate, 
+  		ui.expert, 
+  		ui.celebrity
   	from user u 
   	LEFT JOIN user_identity ui on u.id = ui.uid
   	where u.id = #{uid,jdbcType=VARCHAR}
@@ -398,7 +418,10 @@
 			ui.id as identityId, ui.province,
 			info.person_portrait_url as personPortraitUrl,
 			adc.achievement_count as achievementNum,
-			adc.demand_count as demandNum
+			adc.demand_count as demandNum,
+			uc.engaged_field as engagedField,
+			uc.work_unit as workUnit,
+			uc.position
 		FROM
 			<![CDATA[ user ]]> u
 		LEFT JOIN user_identity ui ON ui.uid = u.id

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

@@ -655,7 +655,7 @@
   		u.create_time as createTime, 
   	    u.number , 
   	    o.aft_username as aftUsername, 
-  	    o.audit_status as auditStatus, 
+  	    o.audit_status as orgAuditStatus, 
   	    a.name as adminName,
   	    o.unit_name as unitName, 
   	    ad.name as managerName

+ 161 - 0
src/main/java/com/goafanti/common/model/News.java

@@ -0,0 +1,161 @@
+package com.goafanti.common.model;
+
+import java.util.Date;
+
+public class News {
+    /**
+    * 主键
+    */
+    private Long id;
+
+    /**
+    * 创建时间
+    */
+    private Date createTime;
+
+    /**
+    * 修改时间
+    */
+    private Date editTime;
+
+    /**
+    * 标题
+    */
+    private String title;
+
+    /**
+    * 题图url
+    */
+    private String titleImg;
+
+    /**
+    * 作者
+    */
+    private String author;
+
+    /**
+    * 类型
+    */
+    private Integer type;
+
+    /**
+    * 是否放在首页
+    */
+    private Integer hot;
+
+    /**
+    * 来源
+    */
+    private String source;
+
+    /**
+    * 来源url
+    */
+    private String sourceUrl;
+
+    /**
+    * 简介
+    */
+    private String summary;
+
+    /**
+    * 内容
+    */
+    private String content;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getEditTime() {
+        return editTime;
+    }
+
+    public void setEditTime(Date editTime) {
+        this.editTime = editTime;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public String getTitleImg() {
+        return titleImg;
+    }
+
+    public void setTitleImg(String titleImg) {
+        this.titleImg = titleImg;
+    }
+
+    public String getAuthor() {
+        return author;
+    }
+
+    public void setAuthor(String author) {
+        this.author = author;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public Integer getHot() {
+        return hot;
+    }
+
+    public void setHot(Integer hot) {
+        this.hot = hot;
+    }
+
+    public String getSource() {
+        return source;
+    }
+
+    public void setSource(String source) {
+        this.source = source;
+    }
+
+    public String getSourceUrl() {
+        return sourceUrl;
+    }
+
+    public void setSourceUrl(String sourceUrl) {
+        this.sourceUrl = sourceUrl;
+    }
+
+    public String getSummary() {
+        return summary;
+    }
+
+    public void setSummary(String summary) {
+        this.summary = summary;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+}

+ 1 - 2
src/main/java/com/goafanti/common/utils/FileUtils.java

@@ -104,8 +104,7 @@ public class FileUtils {
 				|| sign.indexOf("patent_certificate") != -1 || sign.indexOf("standard") != -1
 				|| sign.indexOf("demand_picture") != -1 || sign.indexOf("demand_text_file") != -1
 				|| sign.indexOf("achievement_technical_picture") != -1
-				|| sign.indexOf("achievement_maturity_picture") != -1
-				|| sign.indexOf("demand_order_file") != -1) {
+				|| sign.indexOf("achievement_maturity_picture") != -1 || sign.indexOf("demand_order_file") != -1) {
 			uniq = true;
 		}
 		String fileName = "";

+ 3 - 3
src/main/java/com/goafanti/common/utils/MobileMessageUtils.java

@@ -26,7 +26,7 @@ public class MobileMessageUtils {
 			DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", "Sms", "sms.aliyuncs.com");
 		} catch (ClientException e1) {
 			LoggerUtils.fmtError(MobileMessageUtils.class, e1, CLIENT_EXCEPTION, e1.getMessage());
-			return ErrorConstants.MCODE_ERROR;
+			return ErrorConstants.M_CODE_ERROR;
 		}
 		IAcsClient client = new DefaultAcsClient(profile);
 		SingleSendSmsRequest request = new SingleSendSmsRequest();
@@ -38,10 +38,10 @@ public class MobileMessageUtils {
 			SingleSendSmsResponse httpResponse = client.getAcsResponse(request);
 		} catch (ServerException e) {
 			LoggerUtils.fmtError(MobileMessageUtils.class, e, SERVER_EXCEPTION, e.getMessage());
-			return ErrorConstants.MCODE_ERROR;
+			return ErrorConstants.M_CODE_ERROR;
 		} catch (ClientException e) {
 			LoggerUtils.fmtError(MobileMessageUtils.class, e, CLIENT_EXCEPTION, e.getMessage());
-			return ErrorConstants.MCODE_ERROR;
+			return ErrorConstants.M_CODE_ERROR;
 		}
 		return null;
 	}

+ 0 - 71
src/main/java/com/goafanti/common/utils/SerializeUtil.java

@@ -1,71 +0,0 @@
-package com.goafanti.common.utils;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.Closeable;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-
-@SuppressWarnings("unchecked")
-public class SerializeUtil {
-
-	public static byte[] serialize(Object value) {
-		if (value == null) {
-			throw new NullPointerException("Can't serialize null");
-		}
-		byte[] rv = null;
-		ByteArrayOutputStream bos = null;
-		ObjectOutputStream os = null;
-		try {
-			bos = new ByteArrayOutputStream();
-			os = new ObjectOutputStream(bos);
-			os.writeObject(value);
-			os.close();
-			bos.close();
-			rv = bos.toByteArray();
-		} catch (Exception e) {
-			e.printStackTrace();
-			System.out.println("serialize error");
-		} finally {
-			close(os);
-			close(bos);
-		}
-		return rv;
-	}
-
-	public static Object deserialize(byte[] in) {
-		return deserialize(in, Object.class);
-	}
-
-	public static <T> T deserialize(byte[] in, Class<T>... requiredType) {
-		Object rv = null;
-		ByteArrayInputStream bis = null;
-		ObjectInputStream is = null;
-		try {
-			if (in != null) {
-				bis = new ByteArrayInputStream(in);
-				is = new ObjectInputStream(bis);
-				rv = is.readObject();
-			}
-		} catch (Exception e) {
-			e.printStackTrace();
-			System.out.println("deserialize error");
-		} finally {
-			close(is);
-			close(bis);
-		}
-		return (T) rv;
-	}
-
-	private static void close(Closeable closeable) {
-		if (closeable != null)
-			try {
-				closeable.close();
-			} catch (IOException e) {
-				e.printStackTrace();
-				System.out.println("close stream error");
-			}
-	}
-
-}

+ 1 - 1
src/main/java/com/goafanti/contract/bo/InputContract.java

@@ -16,7 +16,7 @@ public class InputContract {
 	@Size(min = 0, max = 8, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
 	private String previousFee;
 	
-	@Max(value = 3, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	@Max(value = 4, message = "{" + ErrorConstants.PARAM_ERROR + "}")
 	@Min(value = 1, message = "{" + ErrorConstants.PARAM_ERROR + "}")
 	private Integer	type;
 

+ 1 - 1
src/main/java/com/goafanti/contract/bo/InputSaveContract.java

@@ -19,7 +19,7 @@ public class InputSaveContract {
 
 	private Integer	serialNumber;
 
-	@Max(value = 3, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	@Max(value = 4, message = "{" + ErrorConstants.PARAM_ERROR + "}")
 	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
 	private Integer	type;
 

+ 1 - 1
src/main/java/com/goafanti/contract/controller/ContractApiController.java

@@ -193,7 +193,7 @@ public class ContractApiController extends CertifyApiController {
 		Contract c = new Contract();
 		BeanUtils.copyProperties(contract, c);
 		Contract ct = contractService.selectByPrimaryKey(c.getId());
-		if (null != ct && !ContractStatus.CREATE.getCode().equals(ct.getStatus())) {
+		if (null != ct && ContractStatus.CREATE.getCode().equals(ct.getStatus())) {
 			res.setData(contractService.updateByPrimaryKeySelective(c));
 		} else {
 			res.getError().add(buildError("", "当前合同为非草稿状态,无法操作!"));

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

@@ -13,6 +13,8 @@ public class FastJsonRedisSerializer implements RedisSerializer<Object> {
 		pc.addAccept("com.goafanti.common.model.IndustryCategory");
 		pc.addAccept("com.goafanti.common.model.DistrictGlossory");
 		pc.addAccept("com.goafanti.common.model.HtmlFragment");
+		pc.addAccept("com.goafanti.common.model.News");
+		pc.addAccept("com.goafanti.news.bo.NewsSummary");
 	}
 
 	@Override

+ 8 - 6
src/main/java/com/goafanti/core/mybatis/page/SimplePage.java

@@ -2,15 +2,15 @@ package com.goafanti.core.mybatis.page;
 
 public class SimplePage implements Paginable {
 
-	public static final int DEF_COUNT = 20;
+	public static final int	DEF_COUNT	= 20;
 
-	protected int filterNo;
+	protected int			filterNo;
 
-	protected int pageNo = 1;
+	protected int			pageNo		= 1;
 
-	protected int pageSize = 20;
+	protected int			pageSize	= 20;
 
-	protected int totalCount = 0;
+	protected int			totalCount	= 0;
 
 	public SimplePage() {
 	}
@@ -21,7 +21,7 @@ public class SimplePage implements Paginable {
 		} else {
 			this.totalCount = totalCount;
 		}
-		if (pageSize <= 0) {
+		if (pageSize <= 0 || pageSize > 100) {
 			this.pageSize = DEF_COUNT;
 		} else {
 			this.pageSize = pageSize;
@@ -84,9 +84,11 @@ public class SimplePage implements Paginable {
 			return pageNo - 1;
 		}
 	}
+
 	public int getTotalCount() {
 		return totalCount;
 	}
+
 	public int getTotalPage() {
 		int totalPage = totalCount / pageSize;
 		if (totalCount % pageSize != 0 || totalPage == 0) {

+ 97 - 0
src/main/java/com/goafanti/news/bo/NewsSummary.java

@@ -0,0 +1,97 @@
+package com.goafanti.news.bo;
+
+import java.util.Date;
+
+public class NewsSummary {
+	/**
+	 * 主键
+	 */
+	private Long	id;
+
+	/**
+	 * 创建时间
+	 */
+	private Date	createTime;
+
+	/**
+	 * 标题
+	 */
+	private String	title;
+
+	/**
+	 * 题图url
+	 */
+	private String	titleImg;
+
+	/**
+	 * 类型
+	 */
+	private Integer	type;
+
+	/**
+	 * 是否放在首页
+	 */
+	private Integer	hot;
+
+	/**
+	 * 简介
+	 */
+	private String	summary;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+	
+	public Date getCreateTime() {
+		return createTime;
+	}
+
+	public void setCreateTime(Date createTime) {
+		this.createTime = createTime;
+	}
+
+	public String getTitle() {
+		return title;
+	}
+
+	public void setTitle(String title) {
+		this.title = title;
+	}
+
+	public String getTitleImg() {
+		return titleImg;
+	}
+
+	public void setTitleImg(String titleImg) {
+		this.titleImg = titleImg;
+	}
+
+	public Integer getType() {
+		return type;
+	}
+
+	public void setType(Integer type) {
+		this.type = type;
+	}
+
+	public Integer getHot() {
+		return hot;
+	}
+
+	public void setHot(Integer hot) {
+		this.hot = hot;
+	}
+
+	public String getSummary() {
+		return summary;
+	}
+
+	public void setSummary(String summary) {
+		this.summary = summary;
+	}
+
+}

+ 50 - 0
src/main/java/com/goafanti/news/controller/NewsController.java

@@ -0,0 +1,50 @@
+package com.goafanti.news.controller;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.servlet.ModelAndView;
+
+import com.alibaba.druid.util.StringUtils;
+import com.goafanti.common.controller.BaseController;
+import com.goafanti.news.enums.NewsType;
+import com.goafanti.news.service.NewsService;
+
+@Controller
+public class NewsController extends BaseController {
+	@Resource
+	NewsService newsService;
+
+	/**
+	 * 策源地
+	 * 
+	 * @param request
+	 * @param modelview
+	 * @return
+	 */
+	@RequestMapping(value = "/portal/news/newsIndex", method = RequestMethod.GET)
+	public ModelAndView portalNewsNewsIndex(HttpServletRequest request, ModelAndView modelview, String noCache) {
+		modelview.setViewName("/portal/news/newsIndex");
+		if (StringUtils.equals(noCache, "clear")) {
+			newsService.cleanList();
+		}
+		modelview.addObject("kjkx", newsService.findNewsList(0, NewsType.KJZX.getCode(), 2));
+		modelview.addObject("jtdt", newsService.findNewsList(0, NewsType.JTDT.getCode(), 2));
+		modelview.addObject("zfwl", newsService.findNewsList(0, NewsType.ZFWL.getCode(), 3));
+		modelview.addObject("gjzc", newsService.findNewsList(0, NewsType.GJZC.getCode(), 3));
+		modelview.addObject("dfzc", newsService.findNewsList(0, NewsType.DFZC.getCode(), 3));
+		return modelview;
+	}
+
+	/**
+	 * 新闻详情
+	 */
+	@RequestMapping(value = "/portal/news/newsDetails", method = RequestMethod.GET)
+	public ModelAndView portalNewsNewsDetails(HttpServletRequest request, ModelAndView modelview) {
+		modelview.setViewName("/portal/news/newsDetails");
+		return modelview;
+	}
+}

+ 43 - 0
src/main/java/com/goafanti/news/enums/NewsType.java

@@ -0,0 +1,43 @@
+package com.goafanti.news.enums;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public enum NewsType {
+	ALL(0, "所有"), KJZX(1, "科技资讯"), ZFWL(2, "政府往来"), JTDT(3, "技淘动态"), GJZC(4, "国家政策"), DFZC(5, "地方政策");
+	private Integer							code;
+	private String							desc;
+
+	private static Map<Integer, NewsType>	status	= new HashMap<Integer, NewsType>();
+
+	private NewsType(Integer code, String desc) {
+		this.code = code;
+		this.desc = desc;
+	}
+
+	static {
+		for (NewsType value : NewsType.values()) {
+			status.put(value.getCode(), value);
+		}
+	}
+
+	public static NewsType getField(Integer code) {
+		if (containsType(code)) {
+			return status.get(code);
+		}
+		return ALL;
+	}
+
+	public static boolean containsType(Integer code) {
+		return status.containsKey(code);
+	}
+
+	public Integer getCode() {
+		return code;
+	}
+
+	public String getDesc() {
+		return desc;
+	}
+
+}

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

@@ -0,0 +1,61 @@
+package com.goafanti.news.service;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cache.annotation.CacheEvict;
+import org.springframework.cache.annotation.CachePut;
+import org.springframework.cache.annotation.Cacheable;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.goafanti.common.dao.NewsMapper;
+import com.goafanti.common.model.News;
+import com.goafanti.common.utils.LoggerUtils;
+import com.goafanti.core.mybatis.BaseMybatisDao;
+import com.goafanti.news.bo.NewsSummary;
+
+@Service
+@Transactional
+public class NewsService extends BaseMybatisDao<NewsMapper> {
+	@Autowired
+	NewsMapper					newsMapper;
+
+	private static final Logger	logger	= LoggerFactory.getLogger(NewsService.class);
+
+	@Cacheable(value = "NewsCache", key = "'News:'+#id")
+	public News selectById(Long id) {
+		return newsMapper.selectByPrimaryKey(id);
+	}
+
+	@Cacheable(value = "NewsListCache", key = "'NewsList:Page:'+#pageNo+'Type:'+#type+'Size:'+#pageSize")
+	public List<NewsSummary> findNewsList(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.findList(params);
+	}
+
+	@CacheEvict(value = "NewsListCache", allEntries = true)
+	public void cleanList() {
+		LoggerUtils.debug(logger, "清除新闻列表缓存");
+	}
+
+	@CacheEvict(value = "NewsCache", key = "'News:'+#id")
+	public void clean(String id) {
+		LoggerUtils.debug(logger, "清除新闻缓存:[%s]", id);
+	}
+
+	@CachePut(value = "NewsCache", key = "'News:'+#id")
+	public News save(Long id, News news) {
+		news.setId(id);
+		newsMapper.insert(news);
+		return news;
+	}
+
+}

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

@@ -15,6 +15,36 @@ public class UserSubscriberListBo {
 
 	private String	province;
 
+	private String	engagedField;
+
+	private String	workUnit;
+
+	private String	position;
+
+	public String getEngagedField() {
+		return engagedField;
+	}
+
+	public void setEngagedField(String engagedField) {
+		this.engagedField = engagedField;
+	}
+
+	public String getWorkUnit() {
+		return workUnit;
+	}
+
+	public void setWorkUnit(String workUnit) {
+		this.workUnit = workUnit;
+	}
+
+	public String getPosition() {
+		return position;
+	}
+
+	public void setPosition(String position) {
+		this.position = position;
+	}
+
 	public String getUid() {
 		return uid;
 	}

+ 1 - 1
src/main/java/com/goafanti/user/bo/InputUserEdu.java

@@ -14,7 +14,7 @@ public class InputUserEdu {
 	@Size(min = 0, max = 16, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
 	private String	education;
 
-	@Size(min = 0, max = 8, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	@Size(min = 0, max = 16, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
 	private String	majorCategory;
 
 	@Size(min = 0, max = 16, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")

+ 23 - 0
src/main/java/com/goafanti/user/bo/OrgIdentityDetailBo.java

@@ -158,6 +158,29 @@ public class OrgIdentityDetailBo {
 	 */
 	private String		lastYearTaxReportUrl;
 
+	/**
+	 * 注册资金
+	 */
+	private BigDecimal	registeredCapital;
+
+	public BigDecimal getRegisteredCapital() {
+		return registeredCapital;
+	}
+
+	public void setRegisteredCapital(BigDecimal registeredCapital) {
+		this.registeredCapital = registeredCapital;
+	}
+
+	private String field;
+
+	public String getField() {
+		return field;
+	}
+
+	public void setField(String field) {
+		this.field = field;
+	}
+
 	public String getLastYearTaxReportUrl() {
 		return lastYearTaxReportUrl;
 	}

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

@@ -187,10 +187,15 @@ public class UserApiController extends BaseApiController {
 		}
 		User user = userService.selectByPrimaryKey(TokenManager.getUserId());
 		if (mobile.equals(user.getMobile())) {
-			res.getError().add(buildError(ErrorConstants.MOBILE_SAME_ERROR, "新手机号必须和原手机号不同!"));
+			res.getError().add(buildError(ErrorConstants.MOBILE_SAME_ERROR));
 			return res;
 		}
-		if (res.getError().isEmpty() && TokenManager.isLogin()) {
+		User u = userService.selectByMobieAndType(mobile, user.getType());
+		if (null != u) {
+			res.getError().add(buildError(ErrorConstants.DUNPLICATE_KAY_ERROR, "", mobile));
+			return res;
+		}
+		if (res.getError().isEmpty()) {
 			user.setMobile(mobile);
 			res.setData(userService.updateByPrimaryKey(user));
 		}
@@ -215,11 +220,16 @@ public class UserApiController extends BaseApiController {
 		if (res.getError().isEmpty()) {
 			UserIdentity ui = new UserIdentity();
 			BeanUtils.copyProperties(userIdentity, ui);
-			if (StringUtils.isBlank(ui.getId())) {
+			UserIdentity u = userIdentityService.selectUserIdentityByUserId(TokenManager.getUserId());
+			if (null == u && StringUtils.isBlank(ui.getId())) {
 				ui.setId(UUID.randomUUID().toString());
 				ui.setUid(TokenManager.getUserId());
 				userIdentityService.insert(ui);
 			} else {
+				if (StringUtils.isBlank(ui.getId())){
+					res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "认证信息ID"));
+					return res;
+				}
 				userIdentityService.updateByPrimaryKeySelective(ui);
 			}
 		}
@@ -286,11 +296,16 @@ public class UserApiController extends BaseApiController {
 
 			UserInfo ui = new UserInfo();
 			BeanUtils.copyProperties(userInfoBo, ui);
-			if (StringUtils.isBlank(ui.getId())) {
+			UserInfo info = userInfoService.selectUserInfoByUserId(TokenManager.getUserId());
+			if (null == info && StringUtils.isBlank(ui.getId())) {
 				ui.setId(UUID.randomUUID().toString());
 				ui.setUid(TokenManager.getUserId());
 				userInfoService.insert(ui);
 			} else {
+				if (StringUtils.isBlank(ui.getId())){
+					res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "个人资料ID"));
+					return res;
+				}
 				userInfoService.updateByPrimaryKeySelective(ui);
 			}
 		}
@@ -315,12 +330,16 @@ public class UserApiController extends BaseApiController {
 
 		UserEdu ue = new UserEdu();
 		BeanUtils.copyProperties(userEdu, ue);
-
-		if (StringUtils.isBlank(ue.getId())) {
+		UserEdu u= userEduService.selectUserEduByUserId(TokenManager.getUserId());
+		if (null == u && StringUtils.isBlank(ue.getId())) {
 			ue.setId(UUID.randomUUID().toString());
 			ue.setUid(TokenManager.getUserId());
 			userEduService.insert(ue);
 		} else {
+			if (StringUtils.isBlank(ue.getId())){
+				res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "教育信息ID"));
+				return res;
+			}
 			userEduService.updateByPrimaryKeySelective(ue);
 		}
 		res.setData(userEdu);
@@ -344,12 +363,16 @@ public class UserApiController extends BaseApiController {
 		}
 		UserCareer uc = new UserCareer();
 		BeanUtils.copyProperties(userCareer, uc);
-
-		if (StringUtils.isBlank(uc.getId())) {
+		UserCareer u = userCareerService.selectUserCareerByUserId(TokenManager.getUserId());
+		if (null == u && StringUtils.isBlank(uc.getId())) {
 			uc.setId(UUID.randomUUID().toString());
 			uc.setUid(TokenManager.getUserId());
 			userCareerService.insert(uc);
 		} else {
+			if (StringUtils.isBlank(uc.getId())){
+				res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "职业信息ID"));
+				return res;
+			}
 			userCareerService.updateByPrimaryKeySelective(uc);
 		}
 		res.setData(userCareer);
@@ -373,11 +396,16 @@ public class UserApiController extends BaseApiController {
 		}
 		UserAbility ua = new UserAbility();
 		BeanUtils.copyProperties(userAbility, ua);
-		if (StringUtils.isBlank(ua.getId())) {
+		UserAbility u = userAbilityService.selectUserAbilityByUserId(TokenManager.getUserId());
+		if (null == u && StringUtils.isBlank(ua.getId())) {
 			ua.setId(UUID.randomUUID().toString());
 			ua.setUid(TokenManager.getUserId());
 			userAbilityService.insert(ua);
 		} else {
+			if (StringUtils.isBlank(ua.getId())){
+				res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "能力标签ID"));
+				return res;
+			}
 			userAbilityService.updateByPrimaryKeySelective(ua);
 		}
 		res.setData(userAbility);
@@ -687,12 +715,13 @@ public class UserApiController extends BaseApiController {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "process"));
 			return res;
 		}
-		if (StringUtils.isBlank(verificationCode)) {
-			res.getError().add(buildError(ErrorConstants.VCODE_EMPTY_ERROR));
-			return res;
-		}
+
 		if (STEP_ONE.equals(userIdentity.getProcess())) {
-			if (!TokenManager.getSession().getAttribute(VerifyCodeUtils.V_CODE).equals(verificationCode)) {
+			if (StringUtils.isBlank(verificationCode)) {
+				res.getError().add(buildError(ErrorConstants.VCODE_EMPTY_ERROR));
+				return res;
+			}
+			if (!VerifyCodeUtils.verifyCode(verificationCode)) {
 				res.getError().add(buildError(ErrorConstants.VCODE_ERROR));
 				return res;
 			}
@@ -707,14 +736,14 @@ public class UserApiController extends BaseApiController {
 			if ((System.currentTimeMillis() - u.getPaymentDate().getTime()) > 432000000) {
 				u.setAuditStatus(IdentityAuditStatus.NOTPASSED.getCode());// 4
 				userIdentityService.updateByPrimaryKeySelective(u);
-				res.getError().add(buildError("", "1"));// 超过打款日期5日,无法提交确认
+				res.getError().add(buildError(ErrorConstants.IDENTITY_PAY_OVER_TIME));// 超过打款日期5日,无法提交确认
 				return res;
 			}
 			if (MAX_WRONG_COUNT.equals(u.getWrongCount())) {
 				u.setAuditStatus(IdentityAuditStatus.NOTPASSED.getCode());// 4
 				u.setProcess(IdentityProcess.RESULTS.getCode());// 5
 				userIdentityService.updateByPrimaryKeySelective(u);
-				res.getError().add(buildError("", "2"));// 输入错误金额次数过多
+				res.getError().add(buildError(ErrorConstants.OVER_MAX_WRONG_COUNT));// 输入错误金额次数过多
 				return res;
 			}
 			if (0 != (u.getAmountMoney().compareTo(userIdentity.getAmountMoney()))) {
@@ -724,9 +753,9 @@ public class UserApiController extends BaseApiController {
 				if (0 == t) {
 					u.setAuditStatus(IdentityAuditStatus.NOTPASSED.getCode());// 4
 					u.setProcess(IdentityProcess.RESULTS.getCode());// 5
-					res.getError().add(buildError("", "2"));// 输入错误金额次数过多
+					res.getError().add(buildError(ErrorConstants.OVER_MAX_WRONG_COUNT));// 输入错误金额次数过多
 				} else {
-					res.getError().add(buildError("", "输入打款金额错误,您还有" + t + "次机会"));
+					res.getError().add(buildError(ErrorConstants.WRONG_MONEY, "", t));
 				}
 				userIdentityService.updateByPrimaryKeySelective(u);
 				return res;
@@ -752,7 +781,6 @@ public class UserApiController extends BaseApiController {
 	/**
 	 * 团体实名认证流程下一步
 	 * 
-	 * @throws ParseException
 	 */
 	@RequestMapping(value = "/orgNextPro", method = RequestMethod.POST)
 	public Result orgNextProcess(OrganizationIdentity orgIdentity, String listedDateFormattedDate,
@@ -762,11 +790,12 @@ public class UserApiController extends BaseApiController {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "process"));
 			return res;
 		}
-		if (StringUtils.isBlank(verificationCode)) {
-			res.getError().add(buildError(ErrorConstants.VCODE_EMPTY_ERROR));
-			return res;
-		}
+
 		if (STEP_ONE.equals(orgIdentity.getProcess())) {
+			if (StringUtils.isBlank(verificationCode)) {
+				res.getError().add(buildError(ErrorConstants.VCODE_EMPTY_ERROR));
+				return res;
+			}
 			if (!TokenManager.getSession().getAttribute(VerifyCodeUtils.V_CODE).equals(verificationCode)) {
 				res.getError().add(buildError(ErrorConstants.VCODE_ERROR));
 				return res;
@@ -785,14 +814,14 @@ public class UserApiController extends BaseApiController {
 			if (System.currentTimeMillis() - o.getPaymentDate().getTime() > 432000000) {
 				o.setAuditStatus(IdentityAuditStatus.NOTPASSED.getCode());// 4
 				organizationIdentityService.updateByPrimaryKeySelective(o);
-				res.getError().add(buildError("", "1"));// 超过打款日期5日,无法提交确认
+				res.getError().add(buildError(ErrorConstants.IDENTITY_PAY_OVER_TIME));// 超过打款日期5日,无法提交确认
 				return res;
 			}
 			if (MAX_WRONG_COUNT.equals(o.getWrongCount())) {
 				o.setAuditStatus(IdentityAuditStatus.NOTPASSED.getCode());// 4
 				o.setProcess(IdentityProcess.RESULTS.getCode());// 5
 				organizationIdentityService.updateByPrimaryKeySelective(o);
-				res.getError().add(buildError("", "2"));// 输入错误金额次数过多
+				res.getError().add(buildError(ErrorConstants.OVER_MAX_WRONG_COUNT));// 输入错误金额次数过多
 				return res;
 			}
 			if (0 != (o.getValidationAmount().compareTo(orgIdentity.getValidationAmount()))) {
@@ -801,9 +830,9 @@ public class UserApiController extends BaseApiController {
 				if (0 == t) {
 					o.setAuditStatus(IdentityAuditStatus.NOTPASSED.getCode());// 4
 					o.setProcess(IdentityProcess.RESULTS.getCode());// 5
-					res.getError().add(buildError("", "2"));// 输入错误金额次数过多
+					res.getError().add(buildError(ErrorConstants.OVER_MAX_WRONG_COUNT));// 输入错误金额次数过多
 				} else {
-					res.getError().add(buildError("", "输入打款金额错误,您还有" + t + "次机会"));
+					res.getError().add(buildError(ErrorConstants.WRONG_MONEY, "", t));
 				}
 				organizationIdentityService.updateByPrimaryKeySelective(o);
 				return res;
@@ -825,9 +854,6 @@ public class UserApiController extends BaseApiController {
 
 	/**
 	 * 获取公司联系人
-	 * 
-	 * @param uid
-	 * @return
 	 */
 	@RequestMapping(value = "/getContacts", method = RequestMethod.GET)
 	public Result getContacts() {

+ 16 - 13
src/main/java/com/goafanti/user/service/impl/OrganizationIdentityServiceImpl.java

@@ -129,17 +129,6 @@ public class OrganizationIdentityServiceImpl extends BaseMybatisDao<Organization
 				u.setId(uid);
 				u.setLvl(1);
 				userMapper.updateByPrimaryKeySelective(u);
-				Calendar now = Calendar.getInstance();
-				if (null != o.getLastYearTaxReportUrl()
-						&& null == orgRatepayMapper.selectRatepayByUidAndYear(uid, now.get(Calendar.YEAR) - 1)) {
-					OrgRatepay r = new OrgRatepay();
-					r.setId(UUID.randomUUID().toString());
-					r.setUid(uid);
-					r.setYear(now.get(Calendar.YEAR) - 1);
-					r.setDeletedSign(DeleteStatus.UNDELETE.getCode());
-					r.setTaxReturnUrl(o.getLastYearTaxReportUrl());
-					orgRatepayMapper.insert(r);
-				}
 			}
 			return organizationIdentityMapper.updateByPrimaryKeySelective(o);
 		}
@@ -180,8 +169,7 @@ public class OrganizationIdentityServiceImpl extends BaseMybatisDao<Organization
 			user.setLvl(UserLevel.GENERAL.getCode());
 			userMapper.updateByPrimaryKeySelective(user);
 			createNotice(user, oi.getAuditStatus());
-		}
-		if (IdentityAuditStatus.PASSED.getCode().equals(oi.getAuditStatus())) {
+		} else {
 			/*
 			 * if (UserLevel.GENERAL.getCode().equals(level)) {
 			 * user.setLvl(UserLevel.CERTIFIED.getCode()); }
@@ -190,6 +178,7 @@ public class OrganizationIdentityServiceImpl extends BaseMybatisDao<Organization
 			user.setAid(aid);
 			user.setMid(mid);
 			userMapper.updateByPrimaryKeySelective(user);
+			disposeRatePay(oi, oi.getUid());
 			createNotice(user, oi.getAuditStatus());
 		}
 		return organizationIdentityMapper.updateByPrimaryKeySelective(oi);
@@ -356,4 +345,18 @@ public class OrganizationIdentityServiceImpl extends BaseMybatisDao<Organization
 		return bo;
 	}
 
+	private void disposeRatePay(OrganizationIdentity o, String uid) {
+		Calendar now = Calendar.getInstance();
+		if (null != o.getLastYearTaxReportUrl()
+				&& null == orgRatepayMapper.selectRatepayByUidAndYear(uid, now.get(Calendar.YEAR) - 1)) {
+			OrgRatepay r = new OrgRatepay();
+			r.setId(UUID.randomUUID().toString());
+			r.setUid(uid);
+			r.setYear(now.get(Calendar.YEAR) - 1);
+			r.setDeletedSign(DeleteStatus.UNDELETE.getCode());
+			r.setTaxReturnUrl(o.getLastYearTaxReportUrl());
+			orgRatepayMapper.insert(r);
+		}
+	}
+
 }

+ 14 - 2
src/main/java/com/goafanti/user/service/impl/UserServiceImpl.java

@@ -269,6 +269,16 @@ public class UserServiceImpl extends BaseMybatisDao<UserMapper> implements UserS
 		if (TokenManager.hasRole(AFTConstants.SUPERADMIN) || TokenManager.hasRole(AFTConstants.AUDITORADMIN)) {
 			return (Pagination<OrgListBo>) findPage("findOrgListByPage", "findOrgCount", params, pageNo, pageSize);
 		} else if (TokenManager.hasRole(AFTConstants.AREAADMIN) || TokenManager.hasRole(AFTConstants.MANAGERADMIN)) {
+			List<Integer> provinceList = adminLocationMapper
+					.selectProvinceWhereCityIsNullByAdminId(TokenManager.getAdminId());
+			List<Integer> cityList = adminLocationMapper.selectCityByAdminId(TokenManager.getAdminId());
+			provinceList.addAll(cityList);
+			if (null != provinceList && provinceList.size() > 0) {
+				params.put("provinceList", provinceList);
+			}
+			if (null != cityList && cityList.size() > 0) {
+				params.put("cityList", cityList);
+			}
 			return (Pagination<OrgListBo>) findPage("findAreaManagerOrgListByPage", "findAreaManagerOrgCount", params,
 					pageNo, pageSize);
 		}
@@ -371,7 +381,8 @@ public class UserServiceImpl extends BaseMybatisDao<UserMapper> implements UserS
 		if (TokenManager.hasRole(AFTConstants.MANAGERADMIN)) {
 			return disposeAchievementUserOwner(userIdentityMapper.selectManagerAchievementUserOwner(aid, name));
 		} else {
-			if (TokenManager.hasRole(AFTConstants.SUPERADMIN)|| TokenManager.hasRole(AFTConstants.TECHBROKER) || TokenManager.hasRole(AFTConstants.AUDITORADMIN)) {
+			if (TokenManager.hasRole(AFTConstants.SUPERADMIN) || TokenManager.hasRole(AFTConstants.TECHBROKER)
+					|| TokenManager.hasRole(AFTConstants.AUDITORADMIN)) {
 				aid = null;
 			}
 			return disposeAchievementUserOwner(userIdentityMapper.selectAchievementUserOwner(aid, name));
@@ -383,7 +394,8 @@ public class UserServiceImpl extends BaseMybatisDao<UserMapper> implements UserS
 		if (TokenManager.hasRole(AFTConstants.MANAGERADMIN)) {
 			return organizationIdentityMapper.selectManagerAchievementOrgOwner(aid, name);
 		} else {
-			if (TokenManager.hasRole(AFTConstants.SUPERADMIN) || TokenManager.hasRole(AFTConstants.TECHBROKER) || TokenManager.hasRole(AFTConstants.AUDITORADMIN)) {
+			if (TokenManager.hasRole(AFTConstants.SUPERADMIN) || TokenManager.hasRole(AFTConstants.TECHBROKER)
+					|| TokenManager.hasRole(AFTConstants.AUDITORADMIN)) {
 				aid = null;
 			}
 			return organizationIdentityMapper.selectAchievementOrgOwner(aid, name);

+ 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.33
+static.host=//afts.hnzhiming.com/1.0.34
 
 upload.path=/data/wwwroot/aft/upload
 upload.private.path=/data/upload
@@ -67,6 +67,6 @@ template.cacheable=false
 
 mobileCodeTemplate=SMS_37845022
 
-portal.host=//afts.hnzhiming.com/portal/1.0.2
+portal.host=//afts.hnzhiming.com/portal/1.0.3
 
 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.33
+static.host=//afts.hnzhiming.com/1.0.34
 
 upload.path=/Users/xiaolong/Sites/upload
 upload.private.path=/Users/xiaolong/Sites/doc
@@ -69,6 +69,6 @@ template.cacheable=false
 
 mobileCodeTemplate=SMS_37845022
 
-portal.host=//afts.hnzhiming.com/portal/1.0.2
+portal.host=//afts.hnzhiming.com/portal/1.0.3
 
 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.33
+static.host=//aftts.hnzhiming.com/1.0.34
 
 upload.path=/data/aft/public/upload
 upload.private.path=/data/aft/private/upload
@@ -69,6 +69,6 @@ template.cacheable=true
 
 mobileCodeTemplate=SMS_37845022
 
-portal.host=//aftts.hnzhiming.com/portal/1.0.2
+portal.host=//aftts.hnzhiming.com/portal/1.0.3
 
 patentTemplate=SMS_72005286

+ 11 - 1
src/main/resources/props/error.properties

@@ -45,7 +45,7 @@ MCODE_ERROR=\u624b\u673a\u9a8c\u8bc1\u7801\u9519\u8bef\uff01
 
 NON_CERTIFIED=\u672a\u901a\u8fc7\u5b9e\u540d\u8ba4\u8bc1\uff0c\u65e0\u6cd5\u64cd\u4f5c\uff01
 
-FILE_NON_EXISTENT=\u627e\u4e0d\u5230\u6587\u4ef6\uff01
+FILE_NON_EXISTENT=\u6587\u4ef6\u4e0d\u5b58\u5728\uff01
 
 RECORD_CALLBACK=\u5f53\u524d\u8bb0\u5f55\u5df2\u9000\u5355\uff0c\u65e0\u6cd5\u4fee\u6539\uff01
 
@@ -80,3 +80,13 @@ MCODE_OVERTIME_ERROR=\u624b\u673a\u9a8c\u8bc1\u7801\u8d85\u65f6\u5931\u6548\uff0
 RESET_CODE_ERROR=\u9875\u9762\u5931\u6548,\u8bf7\u91cd\u65b0\u83b7\u53d6\u9a8c\u8bc1\u7801\uff01
 
 RESET_CODE_OVERTIME=\u9875\u9762\u8d85\u65f6\u5931\u6548,\u8bf7\u91cd\u65b0\u83b7\u53d6\u9a8c\u8bc1\u7801\uff01
+
+IDENTITY_PAY_OVER_TIME=\u8d85\u8fc7\u6253\u6b3e\u65e5\u671f5\u65e5\uff0c\u65e0\u6cd5\u63d0\u4ea4\u786e\u8ba4\uff01
+
+OVER_MAX_WRONG_COUNT=\u8f93\u5165\u9519\u8bef\u91d1\u989d\u6b21\u6570\u8fc7\u591a\uff01
+
+WRONG_MONEY=\u8f93\u5165\u6253\u6b3e\u91d1\u989d\u9519\u8bef\uff0c\u60a8\u8fd8\u6709{0}\u6b21\u673a\u4f1a\uff01
+
+M_CODE_ERROR=\u624b\u673a\u9a8c\u8bc1\u7801\u83b7\u53d6\u5f02\u5e38\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5\uff01
+
+MOBILE_SAME_ERROR=\u65b0\u624b\u673a\u53f7\u5fc5\u987b\u548c\u539f\u624b\u673a\u53f7\u4e0d\u540c\uff01

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 220 - 170
src/main/webapp/WEB-INF/views/common.html


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 180 - 173
src/main/webapp/WEB-INF/views/portal/activity/activityIndex.html


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

@@ -29,7 +29,7 @@
 					<div th:replace="common::sublogo"></div>
 				</div>
 				<div class="col-md-9">
-					<div th:replace="common::subMenu"></div>
+					<div th:replace="common::subMenu('activityIndex', 'activityDetail')"></div>
 				</div>
 			</div>
 		</div>

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

@@ -28,7 +28,7 @@
 					<div th:replace="common::sublogo"></div>
 				</div>
 				<div class="col-md-9">
-					<div th:replace="common::subMenu"></div>
+					<div th:replace="common::subMenu('tech','')"></div>
 				</div>
 			</div>
 		</div>

+ 1 - 1
src/main/webapp/WEB-INF/views/portal/detail/demandDetail.html

@@ -30,7 +30,7 @@
 					<div th:replace="common::sublogo"></div>
 				</div>
 				<div class="col-md-9">
-					<div th:replace="common::subMenu"></div>
+					<div th:replace="common::subMenu('tech','')"></div>
 				</div>
 			</div>
 		</div>

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 12 - 8
src/main/webapp/WEB-INF/views/portal/entrepreneurship/entrepreneurshipIndex.html


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
src/main/webapp/WEB-INF/views/portal/evaluation/index.html


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

@@ -27,16 +27,16 @@
 					<div th:replace="common::sublogo"></div>
 				</div>
 				<div class="col-md-9">
-					<div th:replace="common::subMenu"></div>
+					<div th:replace="common::subMenu('financial','financial')"></div>
 				</div>
 			</div>
 		</div>
 		<div class="secondary_navigation"></div>
 	</div>
-	<div class="container hot">
-		<img th:src="${portalHost + '/img/financial_hot_img.jpg'}" />
+	<div class="item active">
+		<img th:src="${portalHost + '/img/financial_hot_img.jpg'}" width="100%"/>
 	</div>
-	<div class="container">
+	<div class="container financial">
 		<div class="map" id="map"></div>
 		<div class="financial_list">
 			<div class="financial_list_tit">

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

@@ -28,7 +28,7 @@
 					<div th:replace="common::sublogo"></div>
 				</div>
 				<div class="col-md-9">
-					<div th:replace="common::subMenu"></div>
+					<div th:replace="common::subMenu('service','highTech')"></div>
 				</div>
 			</div>
 		</div>

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
src/main/webapp/WEB-INF/views/portal/highTech/evaluate/basicInfo.html


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
src/main/webapp/WEB-INF/views/portal/highTech/evaluate/evaluate.html


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
src/main/webapp/WEB-INF/views/portal/highTech/evaluate/financeInfo.html


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
src/main/webapp/WEB-INF/views/portal/highTech/evaluate/iprInfo.html


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
src/main/webapp/WEB-INF/views/portal/highTech/evaluate/rdManage.html


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
src/main/webapp/WEB-INF/views/portal/index.html


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 192 - 312
src/main/webapp/WEB-INF/views/portal/international/internationalIndex.html


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

@@ -20,28 +20,34 @@
 			</div>
 		</div>
 	</header>
-	<div class="container header_nav">
-		<div class="row clearfix">
-			<div class="col-md-3 logo">
-				<div th:replace="common::sublogo"></div>
-			</div>
-			<div class="col-md-9">
-				<ul class="nav_content">
-					<li><a th:href="${basePath + '/portal/ipr/service.html'}">知识产权服务</a></li>
-					<li class="active"><a
-						th:href="${basePath + '/portal/ipr/apply.html'}">知识产权申请</a></li>
-					<li><a th:href="${basePath + '/portal/ipr/patentOperation.html'}">专利运营与布局</a></li>
-					<li><a th:href="${basePath + '/portal/ipr/iso.html'}">知识产权贯标</a></li>
-				</ul>
+	<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 class="item active">
-			<img th:src="${portalHost + '/img/ipr_service_apply_banner.jpg'}"
-				alt="First slide">
-		</div>
-
+	<div class="item active">
+		<img th:src="${portalHost + '/img/ipr_service_apply_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 class="active"><a th:href="${basePath + '/portal/ipr/apply.html'}">知识产权申请</a></li>
+			<li><a th:href="${basePath + '/portal/ipr/patentOperation.html'}">专利运营与布局</a></li>
+			<li><a th:href="${basePath + '/portal/ipr/iso.html'}">知识产权贯标</a></li>
+		</ul>
+	</div>
+	
 	<div class="container apply">
 		<div class="title">
 			<h1>产品描述</h1>

+ 34 - 31
src/main/webapp/WEB-INF/views/portal/ipr/iso.html

@@ -17,42 +17,45 @@
 				</div>-->
 		</div>
 	</header>
-	<div class="container header_nav">
-		<div class="row clearfix">
-			<div class="col-md-3 logo">
-				<div th:replace="common::sublogo"></div>
-			</div>
-			<div class="col-md-9">
-				<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 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 class="item active">
-			<img th:src="${portalHost + '/img/ipr_service_iso_banner.jpg'}"
-				alt="First slide">
-		</div>
-			
+	<div class="item active">
+		<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="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">

+ 18 - 12
src/main/webapp/WEB-INF/views/portal/ipr/patentOperation.html

@@ -18,20 +18,18 @@
 				</div>-->
 		</div>
 	</header>
-	<div class="container header_nav">
-		<div class="row clearfix">
-			<div class="col-md-3 logo">
-				<div th:replace="common::sublogo"></div>
-			</div>
-			<div class="col-md-9">
-				<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 class="active"><a th:href="${basePath + '/portal/ipr/patentOperation.html'}">专利运营与布局</a></li>
-					<li><a th:href="${basePath + '/portal/ipr/iso.html'}">知识产权贯标</a></li>
-				</ul>
+	<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 id="myCarousel" class="carousel slide">
 		<!-- 轮播(Carousel)指标 -->
@@ -61,6 +59,14 @@
 			class="carousel-control right" href="#myCarousel" data-slide="next"><span
 			class="glyphicon glyphicon-chevron-right"></span></a>
 	</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 class="active"><a th:href="${basePath + '/portal/ipr/patentOperation.html'}">专利运营与布局</a></li>
+			<li><a th:href="${basePath + '/portal/ipr/iso.html'}">知识产权贯标</a></li>
+		</ul>
+	</div>
 	<div class="container consulting">
 		<div class="title">
 			<h1>专利咨询</h1>

+ 18 - 14
src/main/webapp/WEB-INF/views/portal/ipr/service.html

@@ -13,21 +13,18 @@
 				
 		</div>
 	</header>
-	<div class="container header_nav">
-		<div class="row clearfix">
-			<div class="col-md-3 logo">
-				<div th:replace="common::sublogo"></div>
-			</div>
-			<div class="col-md-9">
-				<ul class="nav_content">
-					<li class="active"><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><a th:href="${basePath + '/portal/ipr/iso.html'}">知识产权贯标</a></li>
-				</ul>
+	<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 id="myCarousel" class="carousel slide">
 		<!-- 轮播(Carousel)指标 -->
@@ -58,7 +55,14 @@
 			class="glyphicon glyphicon-chevron-right"></span></a>
 	</div>
 
-
+	<div id="content_head" class="container">
+		<ul class="nav_content">
+			<li class="active"><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><a th:href="${basePath + '/portal/ipr/iso.html'}">知识产权贯标</a></li>
+		</ul>
+	</div>
 	<div class="container service">
 		<div class="title">
 			<h1>我们的服务优势</h1>

+ 0 - 183
src/main/webapp/WEB-INF/views/portal/news.html

@@ -1,183 +0,0 @@
-<!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">
-<link th:href="${portalHost + '/news.css'}" rel="stylesheet">
-</head>
-<body>
-	<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="container header_nav">
-		<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"></div>
-			</div>
-		</div>
-	</div>
-	<div id="myCarousel" class="carousel slide">
-		<!-- 轮播(Carousel)指标 -->
-		<ol class="carousel-indicators">
-			<li data-target="#myCarousel" data-slide-to="0" class="active"></li>
-			<li data-target="#myCarousel" data-slide-to="1"></li>
-			<li data-target="#myCarousel" data-slide-to="2"></li>
-		</ol>
-		<!-- 轮播(Carousel)项目 -->
-		<div class="carousel-inner">
-			<div class="item active">
-				<img th:src="${portalHost + '/img/slide_img_1.png'}"
-					alt="First slide">
-			</div>
-			<div class="item">
-				<img th:src="${portalHost + '/img/slide_img_1.png'}"
-					alt="Second slide">
-			</div>
-			<div class="item">
-				<img th:src="${portalHost + '/img/slide_img_1.png'}"
-					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-right"></span></a>
-	</div>
-
-	<div class="news">
-		<div class="news_floor">
-			<div class="container">
-				<div class="news_title">
-					<h3>最新政策</h3>
-				</div>
-				<div class="content">
-					<div id="myCarousel1" class="carousel slide news_slide">
-						<ol class="carousel-indicators">
-							<li data-target="#myCarousel1" data-slide-to="0" class="active"></li>
-							<li data-target="#myCarousel1" data-slide-to="1"></li>
-							<li data-target="#myCarousel1" data-slide-to="2"></li>
-						</ol>
-						<div class="carousel-inner">
-							<div class="item active">
-								<img th:src="${portalHost + '/img/news_img_n_1.jpg'}"
-									alt="First slide">
-							</div>
-							<div class="item">
-								<img th:src="${portalHost + '/img/news_img_n_2.jpg'}"
-									alt="Second slide">
-							</div>
-							<div class="item">
-								<img th:src="${portalHost + '/img/news_img_n_3.jpg'}"
-									alt="Third slide">
-							</div>
-						</div>
-					</div>
-					<div class="news_info">
-						<div class="news_hot">
-							<ul>
-								<li><a href="#"><h2>最热新闻</h2></a><span><i>4821</i>人关注</span></li>
-								<li><a href="#">珠海市今年高新技术企业培育库入库申报启动企业入出库</a></li>
-								<li><a href="#">国家税务总局关于实施高新技术企业所得税优惠政策有关问题的公告</a></li>
-							</ul>
-						</div>
-						<div class="news_list">
-							<ul>
-								<li><a href="#">上海:印发《上海市促进科技成果转移转化行动方案(2017-2020)》的通知</a><span>06/30</span></li>
-								<li><a href="#">黑龙江:组织开展2017年度第二批高新技术企业认定工作</a><span>06/30</span></li>
-								<li><a href="#">关于2017年度湖南省科学技术奖推荐工作的通知</a><span>06/29</span></li>
-								<li><a href="#">关于开展2017年荆门市高新技术企业认定申报工作的通知</a><span>06/28</span></li>
-								<li><a href="#">2017年度湖南省两型工业企业认证计划</a><span>06/27</span></li>
-								<li><a href="#">中山市高新技术企业发展专项资金使用办法</a><span>06/27</span></li>
-							</ul>
-						</div>
-						<div class="news_btn">
-							<img
-								th:src="${portalHost + '/img/down_ioc.png'}" />
-							<a href="#">更多政策</a>
-						</div>
-					</div>
-				</div>
-			</div>
-		</div>
-		<div class="news_floor bg_blue">
-			<div class="container">
-				<div class="news_title">
-					<h3>重要政策</h3>
-				</div>
-				<div class="content">
-					<div id="myCarousel2" class="carousel slide news_slide">
-						<ol class="carousel-indicators">
-							<li data-target="#myCarousel2" data-slide-to="0" class="active"></li>
-							<li data-target="#myCarousel2" data-slide-to="1"></li>
-							<li data-target="#myCarousel2" data-slide-to="2"></li>
-						</ol>
-						<div class="carousel-inner">
-							<div class="item active">
-								<img th:src="${portalHost + '/img/news_img_p_1.jpg'}"
-									alt="First slide">
-							</div>
-							<div class="item">
-								<img th:src="${portalHost + '/img/news_img_p_2.jpg'}"
-									alt="Second slide">
-							</div>
-							<div class="item">
-								<img th:src="${portalHost + '/img/news_img_p_3.jpg'}"
-									alt="Third slide">
-							</div>
-						</div>
-					</div>
-					<div class="news_info">
-						<div class="news_hot">
-							<ul>
-								<li><a href="#"><h2>科技部 财政部 国家税务总局</h2></a><span><i>9832</i>人关注</span></li>
-								<li><a href="#">“十三五”技术市场发展专项规划</a></li>
-								<li><a href="#">“十三五”技术标准科技创新规划</a></li>
-							</ul>
-						</div>
-						<div class="news_list">
-							<ul>
-								<li><a href="#">关于开展科技创新政策评估工作的通知</a><span>06/30</span></li>
-								<li><a href="#">关于征集科技服务机构入库的通知</a><span>06/30</span></li>
-								<li><a href="#">申报2030年国家技术创新示范企业</a><span>06/29</span></li>
-								<li><a href="#">关于振兴长沙工业实体经济的若干意见</a><span>06/29</span></li>
-								<li><a href="#">内蒙古自治区高新技术特色产业基地认定管理办法(征求意见稿)</a><span>06/29</span></li>
-								<li><a href="#">关于开展2017年企业专利信息利用能力建设试点工作的通知</a><span>06/29</span></li>
-							</ul>
-						</div>
-						<div class="news_btn">
-							<img
-								th:src="${portalHost + '/img/down_ioc.png'}" />
-							<a href="#">更多政策</a>
-						</div>
-					</div>
-				</div>
-			</div>
-		</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 + '/news.js'}"></script></div>
-</body>
-</html>

+ 1 - 1
src/main/webapp/WEB-INF/views/portal/news/newsDetails.html

@@ -21,7 +21,7 @@
 					<div th:replace="common::sublogo"></div>
 				</div>
 				<div class="col-md-9">
-					<div th:replace="common::subMenu"></div>
+					<div th:replace="common::subMenu('news','')"></div>
 				</div>
 			</div>
 		</div>

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 29 - 77
src/main/webapp/WEB-INF/views/portal/news/newsIndex.html


+ 0 - 161
src/main/webapp/WEB-INF/views/portal/patent.html

@@ -1,161 +0,0 @@
-<!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">
-<link th:href="${portalHost + '/patent.css'}" rel="stylesheet">
-</head>
-<body>
-	<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="container header_nav">
-		<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"></div>
-			</div>
-		</div>
-	</div>
-
-	<div class="item active">
-		<img th:src="${portalHost + '/img/patent_banner.jpg'}"
-			alt="First slide">
-	</div>
-	
-
-
-	<div class="container consulting">
-		<div class="title">
-			<h1>专利咨询</h1>
-			<p>PATENT ADVICE</p>
-			<span></span>
-		</div>
-		<div class="content">
-			<div class="content_nav">
-				<ul id="myTab">
-					<li class="active"><a href="#tab1" data-toggle="tab"> <span>专利技术分析</span>
-					</a> <img th:src="${portalHost + '/img/consulting_atv.png'}" /></li>
-					<li><a href="#tab2" data-toggle="tab"> <span>专利情报分析</span>
-					</a> <img th:src="${portalHost + '/img/consulting_atv.png'}" /></li>
-					<li><a href="#tab3" data-toggle="tab"> <span>专利挖掘</span>
-					</a> <img th:src="${portalHost + '/img/consulting_atv.png'}" /></li>
-					<li><a href="#tab4" data-toggle="tab"> <span>专利布局</span>
-					</a> <img th:src="${portalHost + '/img/consulting_atv.png'}" /></li>
-					<li><a href="#tab5" data-toggle="tab"> <span>专利预警分析</span>
-					</a> <img th:src="${portalHost + '/img/consulting_atv.png'}" /></li>
-
-				</ul>
-			</div>
-			<div id="myTabContent" class="content_list tab-content">
-				<div id="tab1" class="tab-pane in active">
-					<div class="content_info ">
-						<div class="zc_info_txt">
-							<h2>专利技术分析:</h2>
-							<p>调查与企业相关产品或技术相关的专利,特别是竞争对手的专利布局及研发动态。从而作为技术参考,跟踪竞争对手的研发方向。</p>
-						</div>
-					</div>
-				</div>
-				<div id="tab2" class="tab-pane">
-					<div class="content_info ">
-						<div class="zc_info_txt">
-							<h2>专利情报分析:</h2>
-							<p>专利情报分析是指对来自专利说明书、专利公报中大量的、个别的专利信息进行加工及组合,并利用统计方法或技术手段使这些信息具有纵览全局及预测的功能,并且通过分析将原始的专利信息从量变到质变,使它们由普通的信息上升为企业经营活动中有价值的情报。</p>
-						</div>
-					</div>
-				</div>
-				<div id="tab3" class="tab-pane">
-					<div class="content_info ">
-						<div class="zc_info_txt">
-							<h2>专利挖掘:</h2>
-							<p>专利挖掘就是从创新成果中提炼出具有专利申请和保护价值的技术创新点和方案。对技术创新成果进行全面、充分、有效的保护,全面梳理并掌握可能具有专利申请价值的各主要技术点及其外围的关联技术,避免出现专利保护的漏洞。</p>
-						</div>
-					</div>
-				</div>
-				<div id="tab4" class="tab-pane">
-					<div class="content_info ">
-						<div class="zc_info_txt">
-							<h2>专利布局:</h2>
-							<p>企业综合产业、市场和法律等因素,对专利进行有机结合,涵盖了企业利害相关的时间、地域、技术和产品等维度,构建严密高效的专利保护网,最终形成对企业有利格局的专利组合。</p>
-						</div>
-					</div>
-				</div>
-				<div id="tab5" class="tab-pane">
-					<div class="content_info ">
-						<div class="zc_info_txt">
-							<h2>专利预警分析:</h2>
-							<p>专利预警分析便于对技术发展趋势、申请人状况、专利保护地域等专利战略要素进行定性、定量分析,使企业对所在行业领域内的各种发展趋势、竞争态势有一个综合了解,更加全面、有效地利用专利制定战略。</p>
-						</div>
-					</div>
-				</div>
-			</div>
-		</div>
-	</div>
-	<div class="case">
-		<div class="container">
-			<div class="title">
-				<h1>成功案例</h1>
-				<p>SUCCESS CASE</p>
-				<span></span>
-			</div>
-			<div class="case_content">
-				<ul>
-					<li><a href="#"><img
-							th:src="${portalHost + '/img/case_1.png'}"></a></li>
-					<li><a href="#"><img
-							th:src="${portalHost + '/img/case_2.png'}"></a></li>
-					<li><a href="#"><img
-							th:src="${portalHost + '/img/case_3.png'}"></a></li>
-					<li><a href="#"><img
-							th:src="${portalHost + '/img/case_4.png'}"></a></li>
-					<li><a href="#"><img
-							th:src="${portalHost + '/img/case_5.png'}"></a></li>
-					<li><a href="#"><img
-							th:src="${portalHost + '/img/case_6.png'}"></a></li>
-					<li><a href="#"><img
-							th:src="${portalHost + '/img/case_7.png'}"></a></li>
-					<li><a href="#"><img
-							th:src="${portalHost + '/img/case_8.png'}"></a></li>
-					<li><a href="#"><img
-							th:src="${portalHost + '/img/case_9.png'}"></a></li>
-					<li><a href="#"><img
-							th:src="${portalHost + '/img/case_10.png'}"></a></li>
-					<li><a href="#"><img
-							th:src="${portalHost + '/img/case_11.png'}"></a></li>
-					<li><a href="#"><img
-							th:src="${portalHost + '/img/case_12.png'}"></a></li>
-					<li><a href="#"><img
-							th:src="${portalHost + '/img/case_13.png'}"></a></li>
-					<li><a href="#"><img
-							th:src="${portalHost + '/img/case_14.png'}"></a></li>
-					<li><a href="#"><img
-							th:src="${portalHost + '/img/case_15.png'}"></a></li>
-
-				</ul>
-			</div>
-		</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 + '/patent.js'}"></script></div>
-</body>
-</html>

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

@@ -26,12 +26,15 @@
 					<div th:replace="common::sublogo"></div>
 				</div>
 				<div class="col-md-9">
-					<div th:replace="common::subMenu"></div>
+					<div th:replace="common::subMenu('bigShot', '')"></div>
 				</div>
 			</div>
 		</div>
 		<div class="secondary_navigation"></div>
 	</div>
+	<div class="banner-item active">
+		<img th:src="${portalHost + '/img/bigshot_banner.jpg'}" alt="First slide">
+	</div>
 	<div class="container star">
 		<div id="star_carousel" class="carousel slide star_slide">
 			<ol class="carousel-indicators">
@@ -55,53 +58,53 @@
 			<ul>
 				<li>
 					<div class="star_content_img">
-						<img th:src="${portalHost + '/img/star_img_1.png'}"> <span></span>
+						<img th:src="${portalHost + '/img/star_img_1.png'}">
+						<a href="#">报名中</a>
 					</div>
 					<div class="star_content_info">
 						<h4>陈政清</h4>
 						<h5>湖南大学 土木工程学院</h5>
 						<h5>“985”工程首席科学家</h5>
 						<p class="mt20"><label>技术:</label> <span class="red">4</span>项</p>
-						<p><label>解决:</label> <span class="red">6</span>次</p>
 						<p><label>粉丝:</label> <span class="red">456</span>人</p>
 					</div>
 				</li>
 				<li>
 					<div class="star_content_img">
-						<img th:src="${portalHost + '/img/star_img_2.png'}"> <span></span>
+						<img th:src="${portalHost + '/img/star_img_2.png'}">
+						<a href="#">报名中</a>
 					</div>
 					<div class="star_content_info">
 						<h4>袁隆平</h4>
 						<h5>中国工程院院士</h5>
 						<h5>中国杂交水稻工程技术研究中心主任</h5>
 						<p class="mt20"><label>技术:</label> <span class="red">6</span>项</p>
-						<p><label>解决:</label> <span class="red">3</span>次</p>
 						<p><label>粉丝:</label> <span class="red">3647</span>人</p>
 					</div>
 				</li>
 				<li>
 					<div class="star_content_img">
-						<img th:src="${portalHost + '/img/star_img_3.png'}"> <span></span>
+						<img th:src="${portalHost + '/img/star_img_3.png'}">
+						<a href="#">报名中</a>
 					</div>
 					<div class="star_content_info">
 						<h4>钟志华</h4>
 						<h5>中国工程院机械与运载工程学部院士</h5>
 						<h5>车辆工程专家</h5>
 						<p class="mt20"><label>技术:</label> <span class="red">5</span>项</p>
-						<p><label>解决:</label> <span class="red">7</span>次</p>
 						<p><label>粉丝:</label> <span class="red">79</span>人</p>
 					</div>
 				</li>
 				<li>
 					<div class="star_content_img">
-						<img th:src="${portalHost + '/img/star_img_4.png'}"> <span></span>
+						<img th:src="${portalHost + '/img/star_img_4.png'}">
+						<a href="#">报名中</a>
 					</div>
 					<div class="star_content_info">
 						<h4>张泽</h4>
 						<h5>中国科学院院士</h5>
 						<h5>材料科学晶体结构专家</h5>
 						<p class="mt20"><label>技术:</label> <span class="red">2</span>项</p>
-						<p><label>解决:</label> <span class="red">5</span>次</p>
 						<p><label>粉丝:</label> <span class="red">56</span>人</p>
 					</div>
 				</li>
@@ -138,45 +141,41 @@
 				<li>
 					<div class="star_content_img">
 						<img th:src="${portalHost + '/img/star_img_5.jpg'}">
-						<a href="#">报名中</a> <span></span>
 					</div>
 					<div class="lecture_content_info">
-						<h4>姜勇</h4>
 						<h5>科技成果转化项目开展讲座</h5>
 						<p class="mt20">2017-06-30</p>
+						<a href="#">报名中</a>
 					</div>
 				</li>
 				<li>
 					<div class="star_content_img">
 						<img th:src="${portalHost + '/img/star_img_6.jpg'}">
-						<a href="#">报名中</a> <span></span>
 					</div>
 					<div class="lecture_content_info">
-						<h4>王继前</h4>
 						<h5>技术转移服务运营模式</h5>
 						<p class="mt20">2017-06-10</p>
+						<a href="#">报名中</a>
 					</div>
 				</li>
 				<li>
 					<div class="star_content_img">
 						<img th:src="${portalHost + '/img/star_img_7.jpg'}">
-						<a href="#">报名中</a> <span></span>
 					</div>
 					<div class="lecture_content_info">
-						<h4>胡易波</h4>
 						<h5>精准扶贫:互联网+农村电子商务</h5>
 						<p class="mt20">2017-08-10</p>
+						<a href="#">报名中</a>
 					</div>
 				</li>
 				<li>
 					<div class="star_content_img">
 						<img th:src="${portalHost + '/img/star_img_8.jpg'}">
-						<a href="#">报名中</a> <span></span>
 					</div>
 					<div class="lecture_content_info">
-						<h4>刘敏</h4>
 						<h5>互联网在物流行业中的应用</h5>
 						<p class="mt20">2017-07-20</p>
+						<a href="#">报名中</a>
 					</div>
 				</li>
 			</ul>

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

@@ -30,7 +30,7 @@
 					<div th:replace="common::sublogo"></div>
 				</div>
 				<div class="col-md-9">
-					<div th:replace="common::subMenu"></div>
+					<div th:replace="common::subMenu('bigShot', 'lecture')"></div>
 				</div>
 			</div>
 		</div>

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 164 - 295
src/main/webapp/WEB-INF/views/portal/scienceTechnology/star.html


+ 2 - 2
src/main/webapp/WEB-INF/views/portal/search/subscriber.html

@@ -3,14 +3,14 @@
 	xmlns:th="http://www.thymeleaf.org">
 <head th:replace="common::header(~{::title},~{::link})">
 	<title>伙伴搜索页面</title>
-	<link th:href="${staticHost+'/portal/search/subscriber.css'}" rel="stylesheet">
+	<link th:href="${staticHost+'/portal/search/subscriberOrg.css'}" rel="stylesheet">
 </head>
 <body>
 	<div id="root"></div>
 	
 	<div th:replace="common::footer(~{::script})">
 		<script type="text/javascript" th:src="${staticHost+'/vendors.js'}"></script>
-		<script type="text/javascript" th:src="${staticHost+'/portal/search/subscriber.js'}"></script>
+		<script type="text/javascript" th:src="${staticHost+'/portal/search/subscriberOrg.js'}"></script>
 	</div>
 </body>
 </html>

+ 16 - 0
src/main/webapp/WEB-INF/views/portal/search/subscriberUser.html

@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"
+	xmlns:th="http://www.thymeleaf.org">
+<head th:replace="common::header(~{::title},~{::link})">
+	<title>行家搜索页面</title>
+	<link th:href="${staticHost+'/portal/search/subscriberUser.css'}" rel="stylesheet">
+</head>
+<body>
+	<div id="root"></div>
+	
+	<div th:replace="common::footer(~{::script})">
+		<script type="text/javascript" th:src="${staticHost+'/vendors.js'}"></script>
+		<script type="text/javascript" th:src="${staticHost+'/portal/search/subscriberUser.js'}"></script>
+	</div>
+</body>
+</html>

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 3 - 6
src/main/webapp/WEB-INF/views/portal/service/serviceIndex.html


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 20 - 13
src/main/webapp/WEB-INF/views/portal/technologyTrading/index.html


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 4 - 4
src/main/webapp/WEB-INF/views/portal/websiteBuild/websiteBuildIndex.html