Antiloveg преди 8 години
родител
ревизия
09361f2cb6

+ 8 - 0
schema/2017-04-06.sql

@@ -5,3 +5,11 @@ alter table `user_career`
 MODIFY COLUMN `experiences` VARCHAR(1000) NULL COMMENT '从业经历',
 MODIFY COLUMN `achievement` VARCHAR(1000) NULL COMMENT '主要成就';
 
+alter table `organization_info` drop column `legal_person`;
+
+alter table `organization_info` 
+MODIFY COLUMN `publicity_picture_url` VARCHAR(1000) NULL COMMENT '宣传图片';
+
+alter table `organization_properties` 
+MODIFY COLUMN `education_lab` int(5) NULL COMMENT '教育部重点实验室';
+

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

@@ -340,5 +340,5 @@ public class PublicController extends BaseController {
 		}
 		return res;
 	}
-
+	
 }

+ 73 - 0
src/main/java/com/goafanti/common/enums/OrgProFields.java

@@ -0,0 +1,73 @@
+package com.goafanti.common.enums;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public enum OrgProFields {
+
+	IDENTITYTYPE("identityType", "身份类型"),
+	COMPANYNAME("companyName", "公司名称"),
+	LOCATIONPROVINCE("locationProvince", "所在地--省"),
+	LOCATIONCITY("locationCity", "所在地--市"),
+	LOCATIONAREA("locationArea", "所在地--区"),
+	UNITSIZE("unitSize", "单位规模"),
+	COMPANYINTRODUCTION("companyIntroduction", "单位简介"),
+	HOMEUNIT("homeUnit", "所属单位"),
+	LOGOURL("logoUrl", "logo图URL"),
+	PUBLICITYPICTUREURL("publicityPictureUrl", "宣传图片URL"),
+	
+	QUALIFICATION("qualification", "企业资质"),
+	TURNOVER("turnover", "年营业额"),
+	COLLEGEATTRIBUTE("collegeAttribute", "院校属性"),
+	COLLEGEESTABLISHTIME("collegeEstablishTime", "院校创办时间"),
+	ACADEMICIAN("academician", "院士"),
+	DOCTORALTUTOR("doctoralTutor", "博士生导师"),
+	MASTERTUTOR("masterTutor", "硕士生导师"),
+	OTHEREXPERT("otherExpert", "其他专家"),
+	NATIONALLAB("nationalLab", "国家重点实验室"),
+	EDUCATIONLAB("educationLab", "教育部重点实验室"),
+	ENTERPRISECENTER("enterpriseCenter", "所在地--市"),
+	OTHERCENTER("otherCenter", "其他研究中心"),
+	INSTITUTIONESTABLISHTIME("institutionEstablishTime", "其他研究中心"),
+	
+	OTHER("", "未知参数");
+	
+	private String	code;
+	private String	desc;
+	
+	private static Map<String, OrgProFields> status = new HashMap<String, OrgProFields>();
+	
+	private OrgProFields(String code, String desc) {
+		this.code = code;
+		this.desc = desc;
+	}
+	
+	static {
+		for (OrgProFields value : OrgProFields.values()) {
+			status.put(value.getCode(), value);
+		}
+	}
+	
+	public static OrgProFields getField(String code) {
+		if (containsType(code)) {
+			return status.get(code);
+		}
+		return OTHER;
+	}
+	
+	public static String getFieldDesc(String code) {
+		return getField(code).getDesc();
+	}
+
+	public static boolean containsType(String code) {
+		return status.containsKey(code);
+	}
+	
+	public String getCode() {
+		return code;
+	}
+
+	public String getDesc() {
+		return desc;
+	}
+}

+ 2 - 0
src/main/java/com/goafanti/common/enums/OrganizationIdentityFields.java

@@ -58,6 +58,8 @@ public enum OrganizationIdentityFields {
 	COGCONTACTS("cogContacts", "高企认定联系人及联系方式"),
 	CONSULTANT("consultant", "高企认定咨询师"),
 	
+	EMAIL("email", "邮箱"),
+	
 	OTHER("", "未知参数");
 	
 	private String	code;

+ 1 - 0
src/main/java/com/goafanti/core/shiro/filter/LoginFilter.java

@@ -41,6 +41,7 @@ public class LoginFilter extends AccessControlFilter {
 		} else {
 			uri = uri.replaceAll("^\\/", "");
 		}
+		
 
 		if (token != null && uri.startsWith("api/admin/") && token instanceof Admin) {
 			return Boolean.TRUE;

+ 76 - 74
src/main/java/com/goafanti/core/shiro/filter/PermissionFilter.java

@@ -1,74 +1,76 @@
-package com.goafanti.core.shiro.filter;
-
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.shiro.subject.Subject;
-import org.apache.shiro.util.StringUtils;
-import org.apache.shiro.web.filter.AccessControlFilter;
-import org.apache.shiro.web.util.WebUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-
-import com.goafanti.common.bo.Error;
-import com.goafanti.common.bo.Result;
-import com.goafanti.common.constant.ShiroConstants;
-import com.goafanti.common.utils.LoggerUtils;
-
-public class PermissionFilter extends AccessControlFilter {
-
-	@Autowired
-	private ShiroFilterUtils shiroFilterUtils;
-
-	@Override
-	protected boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue)
-			throws Exception {
-
-		// 先判断带参数的权限判断
-		Subject subject = getSubject(request, response);
-		if (null != mappedValue) {
-			String[] arra = (String[]) mappedValue;
-			for (String permission : arra) {
-				if (subject.isPermitted(permission)) {
-					return Boolean.TRUE;
-				}
-			}
-		}
-		HttpServletRequest httpRequest = ((HttpServletRequest) request);
-
-		String uri = httpRequest.getRequestURI();// 获取URI
-		String basePath = httpRequest.getContextPath();// 获取basePath
-		if (null != uri && uri.startsWith(basePath)) {
-			uri = uri.replaceAll("^\\" + basePath + "\\/+", "").replaceAll("\\.html$", "");
-		}
-		if (subject.isPermitted(uri) || subject.isPermitted(uri) || subject.hasRole("999999")) {
-			return Boolean.TRUE;
-		}
-		if (shiroFilterUtils.isAjax(httpRequest)) {
-			LoggerUtils.debug(getClass(), "当前用户权限不够,并且是Ajax请求!");
-			Result res = new Result();
-			res.getError().add(new Error("", "403", "当前用户权限不够!"));// 当前用户没有登录!
-			shiroFilterUtils.out((HttpServletResponse) response, res);
-		}
-		return Boolean.FALSE;
-	}
-
-	@Override
-	protected boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception {
-
-		Subject subject = getSubject(request, response);
-		if (null == subject.getPrincipal()) {// 表示没有登录,重定向到登录页面
-			saveRequest(request);
-			WebUtils.issueRedirect(request, response, ShiroConstants.LOGIN_URL);
-		} else {
-			if (StringUtils.hasText(ShiroConstants.UNAUTHORIZED_URL)) {// 如果有未授权页面跳转过去
-				WebUtils.issueRedirect(request, response, ShiroConstants.UNAUTHORIZED_URL);
-			} else {// 否则返回401未授权状态码
-				WebUtils.toHttp(response).sendError(HttpServletResponse.SC_UNAUTHORIZED);
-			}
-		}
-		return Boolean.FALSE;
-	}
-
-}
+package com.goafanti.core.shiro.filter;
+
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.shiro.subject.Subject;
+import org.apache.shiro.util.StringUtils;
+import org.apache.shiro.web.filter.AccessControlFilter;
+import org.apache.shiro.web.util.WebUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import com.goafanti.common.bo.Error;
+import com.goafanti.common.bo.Result;
+import com.goafanti.common.constant.ShiroConstants;
+import com.goafanti.common.utils.LoggerUtils;
+
+public class PermissionFilter extends AccessControlFilter {
+
+	@Autowired
+	private ShiroFilterUtils shiroFilterUtils;
+
+	@Override
+	protected boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue)
+			throws Exception {
+
+		// 先判断带参数的权限判断
+		Subject subject = getSubject(request, response);
+		if (null != mappedValue) {
+			String[] arra = (String[]) mappedValue;
+			for (String permission : arra) {
+				if (subject.isPermitted(permission)) {
+					return Boolean.TRUE;
+				}
+			}
+		}
+		HttpServletRequest httpRequest = ((HttpServletRequest) request);
+
+		String uri = httpRequest.getRequestURI();// 获取URI
+		String basePath = httpRequest.getContextPath();// 获取basePath
+		if (StringUtils.hasText(uri) && StringUtils.hasText(basePath) &&uri.startsWith(basePath)) {
+			uri = uri.replaceAll("^\\" + basePath + "\\/+", "").replaceAll("\\.html$", "");
+		} else {
+			uri = uri.replaceAll("^\\/", "");
+		}
+		if (subject.isPermitted(uri) || subject.hasRole("999999")) {
+			return Boolean.TRUE;
+		}
+		if (shiroFilterUtils.isAjax(httpRequest)) {
+			LoggerUtils.debug(getClass(), "当前用户权限不够,并且是Ajax请求!");
+			Result res = new Result();
+			res.getError().add(new Error("", "403", "当前用户权限不够!"));// 当前用户没有登录!
+			shiroFilterUtils.out((HttpServletResponse) response, res);
+		}
+		return Boolean.FALSE;
+	}
+
+	@Override
+	protected boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception {
+
+		Subject subject = getSubject(request, response);
+		if (null == subject.getPrincipal()) {// 表示没有登录,重定向到登录页面
+			saveRequest(request);
+			WebUtils.issueRedirect(request, response, ShiroConstants.LOGIN_URL);
+		} else {
+			if (StringUtils.hasText(ShiroConstants.UNAUTHORIZED_URL)) {// 如果有未授权页面跳转过去
+				WebUtils.issueRedirect(request, response, ShiroConstants.UNAUTHORIZED_URL);
+			} else {// 否则返回401未授权状态码
+				WebUtils.toHttp(response).sendError(HttpServletResponse.SC_UNAUTHORIZED);
+			}
+		}
+		return Boolean.FALSE;
+	}
+
+}

+ 297 - 0
src/main/java/com/goafanti/user/bo/InputOrgPro.java

@@ -0,0 +1,297 @@
+package com.goafanti.user.bo;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
+import javax.validation.constraints.Pattern;
+import javax.validation.constraints.Size;
+
+import com.goafanti.common.constant.ErrorConstants;
+
+public class InputOrgPro {
+	@Size(min = 0, max = 36, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String	iid;
+
+	@Size(min = 0, max = 36, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String	pid;
+
+	@Size(min = 0, max = 6, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String	identityType;
+
+	@Size(min = 0, max = 45, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String	companyName;
+
+	@Size(min = 0, max = 12, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String	locationProvince;
+
+	@Size(min = 0, max = 12, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String	locationCity;
+
+	@Size(min = 0, max = 12, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String	locationArea;
+
+	@Size(min = 0, max = 12, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	@Pattern(regexp = "^([1-9])\\d{11}$", message = "{" + ErrorConstants.PARAM_PATTERN_ERROR + "}")
+	private String	unitSize;
+
+	@Size(min = 0, max = 1000, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String	companyIntroduction;
+
+	@Size(min = 0, max = 45, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String	homeUnit;
+
+	@Size(min = 0, max = 255, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String	logoUrl;
+
+	@Size(min = 0, max = 1000, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String	publicityPictureUrl;
+
+	@Size(min = 0, max = 45, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String	qualification;
+
+	@Max(value = 99999999, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	private Integer	turnover;
+
+	@Size(min = 0, max = 45, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String	collegeAttribute;
+
+	@Size(min = 0, max = 12, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String	collegeEstablishTime;
+
+	@Max(value = 99999, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	private Integer	academician;
+
+	@Max(value = 99999, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	private Integer	doctoralTutor;
+
+	@Max(value = 99999, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	private Integer	masterTutor;
+	
+	@Max(value = 99999, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	private Integer	otherExpert;
+
+	@Max(value = 99999, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	private Integer	nationalLab;
+
+	@Max(value = 99999, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	private Integer	educationLab;
+
+	@Max(value = 99999, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	private Integer	enterpriseCenter;
+
+	@Max(value = 99999, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	private Integer	otherCenter;
+
+	@Size(min = 0, max = 12, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String	institutionEstablishTime;
+
+	public String getIid() {
+		return iid;
+	}
+
+	public void setIid(String iid) {
+		this.iid = iid;
+	}
+
+	public String getPid() {
+		return pid;
+	}
+
+	public void setPid(String pid) {
+		this.pid = pid;
+	}
+
+	public String getIdentityType() {
+		return identityType;
+	}
+
+	public void setIdentityType(String identityType) {
+		this.identityType = identityType;
+	}
+
+	public String getCompanyName() {
+		return companyName;
+	}
+
+	public void setCompanyName(String companyName) {
+		this.companyName = companyName;
+	}
+
+	public String getLocationProvince() {
+		return locationProvince;
+	}
+
+	public void setLocationProvince(String locationProvince) {
+		this.locationProvince = locationProvince;
+	}
+
+	public String getLocationCity() {
+		return locationCity;
+	}
+
+	public void setLocationCity(String locationCity) {
+		this.locationCity = locationCity;
+	}
+
+	public String getLocationArea() {
+		return locationArea;
+	}
+
+	public void setLocationArea(String locationArea) {
+		this.locationArea = locationArea;
+	}
+
+	public String getUnitSize() {
+		return unitSize;
+	}
+
+	public void setUnitSize(String unitSize) {
+		this.unitSize = unitSize;
+	}
+
+	public String getCompanyIntroduction() {
+		return companyIntroduction;
+	}
+
+	public void setCompanyIntroduction(String companyIntroduction) {
+		this.companyIntroduction = companyIntroduction;
+	}
+
+	public String getHomeUnit() {
+		return homeUnit;
+	}
+
+	public void setHomeUnit(String homeUnit) {
+		this.homeUnit = homeUnit;
+	}
+
+	public String getLogoUrl() {
+		return logoUrl;
+	}
+
+	public void setLogoUrl(String logoUrl) {
+		this.logoUrl = logoUrl;
+	}
+
+	public String getPublicityPictureUrl() {
+		return publicityPictureUrl;
+	}
+
+	public void setPublicityPictureUrl(String publicityPictureUrl) {
+		this.publicityPictureUrl = publicityPictureUrl;
+	}
+
+	public String getQualification() {
+		return qualification;
+	}
+
+	public void setQualification(String qualification) {
+		this.qualification = qualification;
+	}
+
+	public Integer getTurnover() {
+		return turnover;
+	}
+
+	public void setTurnover(Integer turnover) {
+		this.turnover = turnover;
+	}
+
+	public String getCollegeAttribute() {
+		return collegeAttribute;
+	}
+
+	public void setCollegeAttribute(String collegeAttribute) {
+		this.collegeAttribute = collegeAttribute;
+	}
+
+	public String getCollegeEstablishTime() {
+		return collegeEstablishTime;
+	}
+
+	public void setCollegeEstablishTime(String collegeEstablishTime) {
+		this.collegeEstablishTime = collegeEstablishTime;
+	}
+
+	public Integer getAcademician() {
+		return academician;
+	}
+
+	public void setAcademician(Integer academician) {
+		this.academician = academician;
+	}
+
+	public Integer getDoctoralTutor() {
+		return doctoralTutor;
+	}
+
+	public void setDoctoralTutor(Integer doctoralTutor) {
+		this.doctoralTutor = doctoralTutor;
+	}
+
+	public Integer getMasterTutor() {
+		return masterTutor;
+	}
+
+	public void setMasterTutor(Integer masterTutor) {
+		this.masterTutor = masterTutor;
+	}
+
+	public Integer getOtherExpert() {
+		return otherExpert;
+	}
+
+	public void setOtherExpert(Integer otherExpert) {
+		this.otherExpert = otherExpert;
+	}
+
+	public Integer getNationalLab() {
+		return nationalLab;
+	}
+
+	public void setNationalLab(Integer nationalLab) {
+		this.nationalLab = nationalLab;
+	}
+
+	public Integer getEducationLab() {
+		return educationLab;
+	}
+
+	public void setEducationLab(Integer educationLab) {
+		this.educationLab = educationLab;
+	}
+
+	public Integer getEnterpriseCenter() {
+		return enterpriseCenter;
+	}
+
+	public void setEnterpriseCenter(Integer enterpriseCenter) {
+		this.enterpriseCenter = enterpriseCenter;
+	}
+
+	public Integer getOtherCenter() {
+		return otherCenter;
+	}
+
+	public void setOtherCenter(Integer otherCenter) {
+		this.otherCenter = otherCenter;
+	}
+
+	public String getInstitutionEstablishTime() {
+		return institutionEstablishTime;
+	}
+
+	public void setInstitutionEstablishTime(String institutionEstablishTime) {
+		this.institutionEstablishTime = institutionEstablishTime;
+	}
+	
+	
+}

+ 4 - 0
src/main/java/com/goafanti/user/bo/InputOrganizationIdentity.java

@@ -5,6 +5,7 @@ import java.util.Date;
 
 import javax.validation.constraints.Max;
 import javax.validation.constraints.Min;
+import javax.validation.constraints.Pattern;
 import javax.validation.constraints.Size;
 
 import com.goafanti.common.constant.ErrorConstants;
@@ -121,18 +122,21 @@ public class InputOrganizationIdentity {
 	private String		firstContacts;
 
 	@Size(min = 0, max = 16, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	@Pattern(regexp = "^([1-9])\\d{10}$", message = "{" + ErrorConstants.MOBILE_PATTERN_ERROR + "}")
 	private String		firstMobile;
 
 	@Size(min = 0, max = 16, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
 	private String		secondContacts;
 
 	@Size(min = 0, max = 16, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	@Pattern(regexp = "^([1-9])\\d{10}$", message = "{" + ErrorConstants.MOBILE_PATTERN_ERROR + "}")
 	private String		secondMobile;
 
 	@Size(min = 0, max = 16, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
 	private String		thirdContacts;
 
 	@Size(min = 0, max = 16, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	@Pattern(regexp = "^([1-9])\\d{10}$", message = "{" + ErrorConstants.MOBILE_PATTERN_ERROR + "}")
 	private String		thirdMobile;
 
 	@Max(value = 1, message = "{" + ErrorConstants.PARAM_ERROR + "}")

+ 4 - 7
src/main/java/com/goafanti/user/bo/OrgIdentityBo.java

@@ -4,14 +4,13 @@ import javax.validation.constraints.Pattern;
 import javax.validation.constraints.Size;
 
 import com.goafanti.common.constant.ErrorConstants;
-import com.goafanti.common.model.OrganizationIdentity;
 
-public class OrgIdentityBo extends OrganizationIdentity{@Size(min = 0, max = 127, message = "{" + ErrorConstants.EMAIL_SIZE_ERROR + "}")
-    @Pattern(regexp = "^[0-9a-zA-Z]+([0-9a-zA-Z]*[-._+])*[0-9a-zA-Z]+@[0-9a-zA-Z]+([-.][0-9a-zA-Z]+)*([0-9a-zA-Z]*[.])[a-zA-Z]{2,6}$", message = "{"
-		+ ErrorConstants.EMAIL_PATTERN_ERROR + "}")
+public class OrgIdentityBo extends InputOrganizationIdentity {
+	@Size(min = 0, max = 127, message = "{" + ErrorConstants.EMAIL_SIZE_ERROR + "}")
+	@Pattern(regexp = "^([a-z0-9A-Z]+[_|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$", message = "{"
+			+ ErrorConstants.EMAIL_PATTERN_ERROR + "}")
 	private String email;
 
-
 	public String getEmail() {
 		return email;
 	}
@@ -19,7 +18,5 @@ public class OrgIdentityBo extends OrganizationIdentity{@Size(min = 0, max = 127
 	public void setEmail(String email) {
 		this.email = email;
 	}
-	
-	
 
 }

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

@@ -13,7 +13,7 @@ public class UserInfoBo extends UserInfo{
 	private String nickname;
 	
 	@Size(min = 0, max = 127, message = "{" + ErrorConstants.EMAIL_SIZE_ERROR + "}")
-	@Pattern(regexp = "^[0-9a-zA-Z]+([0-9a-zA-Z]*[-._+])*[0-9a-zA-Z]+@[0-9a-zA-Z]+([-.][0-9a-zA-Z]+)*([0-9a-zA-Z]*[.])[a-zA-Z]{2,6}$", message = "{"
+	@Pattern(regexp = "^([a-z0-9A-Z]+[_|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$", message = "{"
 			+ ErrorConstants.EMAIL_PATTERN_ERROR + "}")
 	private String email;
 	

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

@@ -24,6 +24,8 @@ import com.goafanti.common.bo.Result;
 import com.goafanti.common.constant.AFTConstants;
 import com.goafanti.common.constant.ErrorConstants;
 import com.goafanti.common.controller.BaseApiController;
+import com.goafanti.common.enums.OrgProFields;
+import com.goafanti.common.enums.OrganizationIdentityFields;
 import com.goafanti.common.enums.UserAbilityFields;
 import com.goafanti.common.enums.UserCareerFields;
 import com.goafanti.common.enums.UserEduFields;
@@ -46,6 +48,7 @@ import com.goafanti.common.utils.TimeUtils;
 import com.goafanti.common.utils.VerifyCodeUtils;
 import com.goafanti.core.shiro.token.TokenManager;
 import com.goafanti.techproject.service.TechWebsiteService;
+import com.goafanti.user.bo.InputOrgPro;
 import com.goafanti.user.bo.InputUserAbility;
 import com.goafanti.user.bo.InputUserCareer;
 import com.goafanti.user.bo.InputUserEdu;
@@ -449,32 +452,24 @@ public class UserApiController extends BaseApiController {
 	 * @return
 	 */
 	@RequestMapping(value = "/orgIdentity", method = RequestMethod.POST)
-	public Result groupBasicInfo(OrgIdentityBo orgIdentityBo) {
+	public Result groupBasicInfo(@Valid OrgIdentityBo orgIdentityBo, BindingResult bindingResult) {
 		Result res = new Result();
-		OrganizationIdentity organizationIdentity = new OrganizationIdentity();
-		OrganizationIdentity identity = organizationIdentityService.selectOrgIdentityByUserId(TokenManager.getUserId());
+		if (bindingResult.hasErrors()) {
+			res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
+					OrganizationIdentityFields.getFieldDesc(bindingResult.getFieldError().getField())));
+			return res;
+		}
+		OrganizationIdentity oi = new OrganizationIdentity();
+		BeanUtils.copyProperties(orgIdentityBo, oi);
 		User u = userService.selectByPrimaryKey(TokenManager.getUserId());
 		u.setEmail(orgIdentityBo.getEmail());
 		userService.updateByPrimaryKeySelective(u);
-		organizationIdentity.setContacts(orgIdentityBo.getContacts());
-		organizationIdentity.setFixedTel(orgIdentityBo.getFixedTel());
-		organizationIdentity.setQq(orgIdentityBo.getQq());
-		organizationIdentity.setPostalAddress(orgIdentityBo.getPostalAddress());
-		organizationIdentity.setPostcode(orgIdentityBo.getPostcode());
-		organizationIdentity.setLegalPerson(orgIdentityBo.getLegalPerson());
-		organizationIdentity.setFirstContacts(orgIdentityBo.getFirstContacts());
-		organizationIdentity.setSecondContacts(orgIdentityBo.getSecondContacts());
-		organizationIdentity.setThirdContacts(orgIdentityBo.getThirdContacts());
-		organizationIdentity.setFirstMobile(orgIdentityBo.getFirstMobile());
-		organizationIdentity.setSecondMobile(orgIdentityBo.getSecondMobile());
-		organizationIdentity.setThirdMobile(orgIdentityBo.getThirdMobile());
-		if (identity == null) {
-			organizationIdentity.setId(UUID.randomUUID().toString());
-			organizationIdentity.setUid(TokenManager.getUserId());
-			organizationIdentityService.insert(organizationIdentity);
+		if (StringUtils.isBlank(oi.getId())) {
+			oi.setId(UUID.randomUUID().toString());
+			oi.setUid(TokenManager.getUserId());
+			organizationIdentityService.insert(oi);
 		} else {
-			organizationIdentity.setId(identity.getId());
-			organizationIdentityService.updateByPrimaryKeySelective(organizationIdentity);
+			organizationIdentityService.updateByPrimaryKeySelective(oi);
 		}
 		res.setData(orgIdentityBo);
 		return res;
@@ -487,29 +482,22 @@ public class UserApiController extends BaseApiController {
 	 * @return
 	 */
 	@RequestMapping(value = "/orgPro", method = RequestMethod.POST)
-	public Result groupProInfo(OrgProBo proBo) {
-		Result res = new Result();
-		OrganizationInfo orgInfo = proBo.getInfo();
-		OrganizationProperties orgPro = proBo.getPro();
-		OrganizationInfo info = organizationInfoService.selectOrgInfoByUserId(TokenManager.getUserId());
-		OrganizationProperties pro = organizationPropertiesService.selectOrgProByUserId(TokenManager.getUserId());
-		if (info == null) {
-			orgInfo.setId(UUID.randomUUID().toString());
-			orgInfo.setUid(TokenManager.getUserId());
-			orgInfo = organizationInfoService.insert(orgInfo);
-		} else {
-			orgInfo.setId(info.getId());
-			organizationInfoService.updateByPrimaryKeySelective(orgInfo);
-		}
-		if (pro == null) {
-			orgPro.setId(UUID.randomUUID().toString());
-			orgPro.setOid(orgInfo.getId());
-			organizationPropertiesService.insert(orgPro);
-		} else {
-			orgPro.setId(pro.getId());
-			organizationPropertiesService.updateByPrimaryKeySelective(orgPro);
+	public Result groupProInfo(@Valid InputOrgPro pro, BindingResult bindingResult) {
+		Result res = new Result();
+		if (bindingResult.hasErrors()) {
+			res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
+					OrgProFields.getFieldDesc(bindingResult.getFieldError().getField())));
+			return res;
 		}
-		res.setData(proBo);
+		
+		OrganizationInfo oi = new OrganizationInfo();
+		OrganizationProperties op = new OrganizationProperties();
+		BeanUtils.copyProperties(pro, oi);
+		BeanUtils.copyProperties(pro, op);
+		oi.setId(pro.getIid());
+		op.setId(pro.getPid());
+		organizationInfoService.insertInfoAndPro(oi, op);
+		res.setData(pro);
 		return res;
 	}
 
@@ -520,7 +508,7 @@ public class UserApiController extends BaseApiController {
 	 * @return
 	 */
 	@RequestMapping(value = "/orgTech", method = RequestMethod.POST)
-	public Result tech(OrganizationTech orgTech) {
+	public Result tech(OrganizationTech orgTech, BindingResult bindingResult) {
 		Result res = new Result();
 		OrganizationTech tech = organizationTechService.selectOrgTechByUserId(TokenManager.getUserId());
 		if (tech == null) {

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

@@ -1,6 +1,7 @@
 package com.goafanti.user.service;
 
 import com.goafanti.common.model.OrganizationInfo;
+import com.goafanti.common.model.OrganizationProperties;
 
 public interface OrganizationInfoService{
 
@@ -11,4 +12,6 @@ public interface OrganizationInfoService{
 
 	OrganizationInfo insert(OrganizationInfo orgInfo);
 
+	int insertInfoAndPro(OrganizationInfo oi, OrganizationProperties op);
+
 }

+ 29 - 5
src/main/java/com/goafanti/user/service/impl/OrganizationInfoServiceImpl.java

@@ -1,19 +1,24 @@
 package com.goafanti.user.service.impl;
 
+import java.util.UUID;
+
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.goafanti.common.dao.OrganizationInfoMapper;
 import com.goafanti.common.dao.OrganizationPropertiesMapper;
 import com.goafanti.common.model.OrganizationInfo;
+import com.goafanti.common.model.OrganizationProperties;
+import com.goafanti.core.shiro.token.TokenManager;
 import com.goafanti.user.service.OrganizationInfoService;
+
 @Service
 public class OrganizationInfoServiceImpl implements OrganizationInfoService {
-    @Autowired
-    OrganizationInfoMapper organizationInfoMapper;
-    @Autowired
-    OrganizationPropertiesMapper  organizationPropertiesMapper; 
-    
+	@Autowired
+	OrganizationInfoMapper			organizationInfoMapper;
+	@Autowired
+	OrganizationPropertiesMapper	organizationPropertiesMapper;
 
 	@Override
 	public OrganizationInfo selectOrgInfoByUserId(String uid) {
@@ -31,5 +36,24 @@ public class OrganizationInfoServiceImpl implements OrganizationInfoService {
 		return orgInfo;
 	}
 
+	@Override
+	public int insertInfoAndPro(OrganizationInfo oi, OrganizationProperties op) {
+		if (StringUtils.isBlank(oi.getId())) {
+			oi.setId(UUID.randomUUID().toString());
+			oi.setUid(TokenManager.getUserId());
+			organizationInfoMapper.insert(oi);
+		} else {
+			organizationInfoMapper.updateByPrimaryKeySelective(oi);
+		}
+
+		if (StringUtils.isBlank(op.getId())) {
+			op.setId(UUID.randomUUID().toString());
+			op.setOid(oi.getId());
+			organizationPropertiesMapper.insert(op);
+		} else {
+			organizationPropertiesMapper.updateByPrimaryKeySelective(op);
+		}
+		return 1;
+	}
 
 }