Antiloveg пре 8 година
родитељ
комит
c43c49a80c

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

@@ -229,7 +229,7 @@ public class AdminApiController extends BaseApiController {
 	 * @throws ParseException
 	 */
 	@RequestMapping(value = "/orgList", method = RequestMethod.POST)
-	public Result orgList(String mobile, String email,
+	public Result orgList(String uid, String mobile, String email,
 			@RequestParam(name = "createTime[]", required = false) String[] createTime, Integer number,
 			String unitName, Integer auditStatus, String pageNo, String pageSize) throws ParseException {
 		Result res = new Result();
@@ -241,7 +241,7 @@ public class AdminApiController extends BaseApiController {
 		if (StringUtils.isNumeric(pageNo)) {
 			pNo = Integer.parseInt(pageNo);
 		}
-		res.setData(getOrgList(mobile, email, createTime, number, unitName, auditStatus, pNo, pSize));
+		res.setData(getOrgList(uid, mobile, email, createTime, number, unitName, auditStatus, pNo, pSize));
 		return res;
 	}
 
@@ -942,7 +942,7 @@ public class AdminApiController extends BaseApiController {
 	 * @return
 	 */
 	@RequestMapping(value = "/listCognizance", method = RequestMethod.POST)
-	public Result listCognizance(String unitName, String locationProvince, String pageNo, String pageSize) {
+	public Result listCognizance(String uid, String unitName, String locationProvince, String pageNo, String pageSize) {
 		Result res = new Result();
 		Integer pNo = 1;
 		Integer pSize = 10;
@@ -953,7 +953,7 @@ public class AdminApiController extends BaseApiController {
 			pNo = Integer.parseInt(pageNo);
 		}
 
-		res.setData(orgCognizanceService.listCognizance(unitName, locationProvince, pNo, pSize));
+		res.setData(orgCognizanceService.listCognizance(uid, unitName, locationProvince, pNo, pSize));
 		return res;
 	}
 
@@ -1144,7 +1144,7 @@ public class AdminApiController extends BaseApiController {
 	 * @return
 	 */
 	@RequestMapping(value = "/cultivate", method = RequestMethod.POST)
-	public Result cultivationList(String province, String unitName, String pageNo, String pageSize){
+	public Result cultivationList(String uid, String province, String unitName, String pageNo, String pageSize){
 		Result res = new Result();
 		Integer pNo = 1;
 		Integer pSize = 10;
@@ -1154,7 +1154,7 @@ public class AdminApiController extends BaseApiController {
 		if (StringUtils.isNumeric(pageNo)) {
 			pNo = Integer.parseInt(pageNo);
 		}
-		res.setData(orgCognizanceService.listCultivation(province, unitName, pNo, pSize));
+		res.setData(orgCognizanceService.listCultivation(uid, province, unitName, pNo, pSize));
 		return res;
 	}
 
@@ -1215,9 +1215,9 @@ public class AdminApiController extends BaseApiController {
 	}
 
 	// org团体列表
-	private Pagination<OrgListBo> getOrgList(String mobile, String email, String[] createTime, Integer number,
+	private Pagination<OrgListBo> getOrgList(String uid, String mobile, String email, String[] createTime, Integer number,
 			String unitName, Integer auditStatus, Integer pNo, Integer pSize) throws ParseException {
-		return userService.listOrg(mobile, email, createTime, number, unitName, auditStatus, pNo, pSize);
+		return userService.listOrg(uid, mobile, email, createTime, number, unitName, auditStatus, pNo, pSize);
 	}
 
 	// user个人列表

+ 166 - 27
src/main/java/com/goafanti/admin/controller/AdminTechProjectController.java

@@ -1,13 +1,16 @@
 package com.goafanti.admin.controller;
 
+import java.io.IOException;
 import java.text.ParseException;
-import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 import javax.validation.Valid;
 
+import org.apache.commons.lang3.time.DateUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Controller;
@@ -15,8 +18,10 @@ import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.multipart.MultipartFile;
 
 import com.goafanti.common.bo.Result;
+import com.goafanti.common.constant.AFTConstants;
 import com.goafanti.common.constant.ErrorConstants;
 import com.goafanti.common.controller.CertifyApiController;
 import com.goafanti.common.enums.CopyrightFields;
@@ -25,10 +30,14 @@ import com.goafanti.common.model.TechProjectLog;
 import com.goafanti.common.model.TechWebsite;
 import com.goafanti.common.model.User;
 import com.goafanti.common.utils.Base64Utils;
-import com.goafanti.common.utils.DateUtils;
+import com.goafanti.common.utils.FileUtils;
+import com.goafanti.common.utils.LoggerUtils;
 import com.goafanti.common.utils.StringUtils;
 import com.goafanti.core.mybatis.page.Pagination;
+import com.goafanti.core.shiro.token.TokenManager;
 import com.goafanti.techproject.bo.InputTechProject;
+import com.goafanti.techproject.bo.InputTechProjectLog;
+import com.goafanti.techproject.bo.InputTechWebsite;
 import com.goafanti.techproject.bo.TechProjectManageListBo;
 import com.goafanti.techproject.bo.TechWebsiteDetailBo;
 import com.goafanti.techproject.bo.TechWebsiteListBo;
@@ -62,6 +71,9 @@ public class AdminTechProjectController extends CertifyApiController {
 	@RequestMapping(value = "/listTechProject", method = RequestMethod.POST)
 	public Result listClientTechProject(String province, String unitName, String pageNo, String pageSize) {
 		Result res = new Result();
+		if (!checkAdminLogin(res)) {
+			return res;
+		}
 		Integer pNo = 1;
 		Integer pSize = 10;
 		if (StringUtils.isNumeric(pageSize)) {
@@ -70,7 +82,8 @@ public class AdminTechProjectController extends CertifyApiController {
 		if (StringUtils.isNumeric(pageNo)) {
 			pNo = Integer.parseInt(pageNo);
 		}
-		Pagination<TechProjectManageListBo> t = techProjectService.listManageTechProject(province, unitName, pNo, pSize);
+		Pagination<TechProjectManageListBo> t = techProjectService.listManageTechProject(province, unitName, pNo,
+				pSize);
 		if (null != t) {
 			List<TechProjectManageListBo> l = (List<TechProjectManageListBo>) t.getList();
 			for (TechProjectManageListBo w : l) {
@@ -124,7 +137,14 @@ public class AdminTechProjectController extends CertifyApiController {
 	@RequestMapping(value = "/techProjectDetial", method = RequestMethod.POST)
 	public Result techProjectDetial(String pid) {
 		Result res = new Result();
-		res.setData(techProjectService.selectProjectDetail(pid));
+		if (!checkAdminLogin(res)) {
+			return res;
+		}
+		if (StringUtils.isBlank(pid)) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "公司"));
+		} else {
+			res.setData(techProjectService.selectProjectDetail(pid));
+		}
 		return res;
 	}
 
@@ -137,7 +157,14 @@ public class AdminTechProjectController extends CertifyApiController {
 	@RequestMapping(value = "/techProjectLog", method = RequestMethod.POST)
 	public Result techProjectLog(String pid) {
 		Result res = new Result();
-		res.setData(techProjectLogService.selectTechProjectLogByPid(pid));
+		if (!checkAdminLogin(res)) {
+			return res;
+		}
+		if (StringUtils.isBlank(pid)) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "科技项目申报ID"));
+		} else {
+			res.setData(techProjectLogService.selectTechProjectLogByPid(pid));
+		}
 		return res;
 	}
 
@@ -151,14 +178,42 @@ public class AdminTechProjectController extends CertifyApiController {
 	 * @throws ParseException
 	 */
 	@RequestMapping(value = "/updateTechProject", method = RequestMethod.POST)
-	public Result updateTechProject(TechProject t, TechProjectLog l, String recordTimeFormattedDate)
-			throws ParseException {
+	public Result updateTechProject(@Valid InputTechProject techProject, @Valid InputTechProjectLog log, BindingResult bindingResult, String recordTimeFormattedDate) {
 		Result res = new Result();
+		if (bindingResult.hasErrors()) {
+			res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
+					CopyrightFields.getFieldDesc(bindingResult.getFieldError().getField())));
+			return res;
+		}
+		if (!checkAdminLogin(res)) {
+			return res;
+		}
+		
+		if (StringUtils.isBlank(techProject.getId())) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到科技申报项目", "科技项目申报ID"));
+			return res;
+		}
+		
+		TechProject t = techProjectService.selectByPrimaryKey(techProject.getId());
+		if (null == t){
+			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "找不到申报项目", "科技项目申报"));
+			return res;
+		}
+		
 		Date recordTime = null;
 		if (!StringUtils.isBlank(recordTimeFormattedDate)) {
-			recordTime = DateUtils.parseDate(recordTimeFormattedDate, "yyyy-MM-dd");
+			try {
+				recordTime = DateUtils.parseDate(recordTimeFormattedDate, AFTConstants.YYYYMMDD);
+			} catch (ParseException e) {
+			}
 		}
-		res.setData(techProjectService.updateTechProject(t, l, recordTime));
+		
+		TechProject tp = new TechProject();
+		TechProjectLog tpl = new TechProjectLog();
+		tp.setId(techProject.getId());
+		BeanUtils.copyProperties(techProject, tp);
+		BeanUtils.copyProperties(log, tpl);
+		res.setData(techProjectService.updateTechProject(tp, tpl, recordTime));
 		return res;
 	}
 
@@ -169,33 +224,39 @@ public class AdminTechProjectController extends CertifyApiController {
 	 * @return
 	 */
 	@RequestMapping(value = "/deleteTechProject", method = RequestMethod.POST)
-	public Result deleteTechProject(@RequestParam(name = "ids[]", required = true) String[] ids) {
+	public Result deleteTechProject(@RequestParam(name = "ids[]", required = false) String[] ids) {
 		Result res = new Result();
-		List<String> id = new ArrayList<String>();
-		for (String s : ids) {
-			id.add(s);
+		if (!checkAdminLogin(res)) {
+			return res;
+		}
+		if (ids == null || ids.length < 1) {
+			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", ""));
+		} else {
+			res.setData(techProjectService.deleteByPrimaryKey(Arrays.asList(ids)));
 		}
-		res.setData(techProjectService.deleteByPrimaryKey(id));
 		return res;
 	}
 
-	 
 	/**
 	 * 删除科技网址记录
+	 * 
 	 * @param ids
 	 * @return
 	 */
 	@RequestMapping(value = "/deleteTechWebsite", method = RequestMethod.POST)
-	public Result deleteTechWebsite(@RequestParam(name = "ids[]", required = true) String[] ids){
+	public Result deleteTechWebsite(@RequestParam(name = "ids[]", required = false) String[] ids) {
 		Result res = new Result();
-		List<String> id = new ArrayList<String>();
-		for (String s : ids) {
-			id.add(s);
+		if (!checkAdminLogin(res)) {
+			return res;
+		}
+		if (ids == null || ids.length < 1) {
+			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", ""));
+		} else {
+			res.setData(techWebsiteService.deleteByPrimaryKey(Arrays.asList(ids)));
 		}
-		res.setData(techWebsiteService.deleteByPrimaryKey(id));
 		return res;
 	}
-	
+
 	/**
 	 * 科技单位网址管理list
 	 */
@@ -203,6 +264,9 @@ public class AdminTechProjectController extends CertifyApiController {
 	@RequestMapping(value = "/listTechWebsite", method = RequestMethod.POST)
 	public Result listTechWebsite(String province, String unitName, String pageNo, String pageSize) {
 		Result res = new Result();
+		if (!checkAdminLogin(res)) {
+			return res;
+		}
 		Integer pNo = 1;
 		Integer pSize = 10;
 		if (StringUtils.isNumeric(pageSize)) {
@@ -235,11 +299,18 @@ public class AdminTechProjectController extends CertifyApiController {
 	@RequestMapping(value = "/techWebsiteDetail", method = RequestMethod.POST)
 	public Result techWebsiteDetail(String id) {
 		Result res = new Result();
-		TechWebsiteDetailBo w = techWebsiteService.selectTechWebsiteDetail(id);
-		if (null != w && !StringUtils.isBlank(w.getPassword())) {
-			w.setPassword(Base64Utils.decodeData(w.getPassword()));
+		if (!checkAdminLogin(res)) {
+			return res;
+		}
+		if (StringUtils.isBlank(id)) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "公司"));
+		} else {
+			TechWebsiteDetailBo w = techWebsiteService.selectTechWebsiteDetail(id);
+			if (null != w && !StringUtils.isBlank(w.getPassword())) {
+				w.setPassword(Base64Utils.decodeData(w.getPassword()));
+			}
+				res.setData(w);
 		}
-		res.setData(w);
 		return res;
 	}
 
@@ -250,12 +321,80 @@ public class AdminTechProjectController extends CertifyApiController {
 	 * @return
 	 */
 	@RequestMapping(value = "/disposeTechWebsite", method = RequestMethod.POST)
-	public Result disposeTechWebsite(TechWebsite w) {
+	public Result disposeTechWebsite(@Valid InputTechWebsite w, BindingResult bindingResult) {
 		Result res = new Result();
+		if (bindingResult.hasErrors()) {
+			res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
+					CopyrightFields.getFieldDesc(bindingResult.getFieldError().getField())));
+			return res;
+		}
+		if (!checkAdminLogin(res)) {
+			return res;
+		}
+		
+		if (StringUtils.isBlank(w.getUid())) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户"));
+			return res;
+		}
+		
+		User curUser = userService.selectByPrimaryKey(w.getUid());
+		if (!checkCertify(res, curUser)) {
+			return res;
+		}
+		
 		if (null != w && null != (w.getPassword())) {
 			w.setPassword(Base64Utils.encodeData(w.getPassword().trim()));
 		}
-		res.setData(techWebsiteService.saveWebsite(w));
+		
+		TechWebsite tw = new TechWebsite();
+		BeanUtils.copyProperties(w, tw);
+		
+		res.setData(techWebsiteService.saveWebsite(tw));
+		return res;
+	}
+	
+	/**
+	 * 科技项目申报材料上传
+	 * @param req
+	 * @param uid
+	 * @return
+	 */
+	@RequestMapping(value = "/upload", method = RequestMethod.POST)
+	public Result cognizanceFile(HttpServletRequest req, String uid) {
+		Result res = new Result();
+		if (!checkAdminLogin(res)) {
+			return res;
+		}
+		User curUser = userService.selectByPrimaryKey(uid);
+		if (!checkCertify(res, curUser)) {
+			return res;
+		}
+		
+		String sign = "tech_project";
+		res.setData(handleFile(res, "/techProject/", true, req, sign, uid));
 		return res;
 	}
+
+	private String handleFile(Result res, String path, boolean isPrivate, HttpServletRequest req, String sign,
+			String uid) {
+		List<MultipartFile> files = getFiles(req);
+		MultipartFile mf = files.get(0);
+
+		String fileName = FileUtils.mosaicFileName(mf, isPrivate, sign, path,
+				StringUtils.isBlank(uid) ? TokenManager.getUserId() : uid);
+		if (!files.isEmpty()) {
+			try {
+				mf.transferTo(toPrivateFile(fileName));
+				LoggerUtils.debug(getClass(), fileName + " 文件上传成功");
+			} catch (IllegalStateException | IOException e) {
+				LoggerUtils.error(getClass(), "文件上传失败", e);
+				res.getError().add(buildError("", "文件上传失败!"));
+				return "";
+			}
+		} else {
+			res.getError().add(buildError("", "文件上传失败!"));
+			return "";
+		}
+		return fileName;
+	} 
 }

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

@@ -903,7 +903,7 @@ public class CognizanceApiController extends BaseApiController {
 			if (StringUtils.isNumeric(pageNo)) {
 				pNo = Integer.parseInt(pageNo);
 			}
-			res.setData(orgCognizanceService.listCognizance(TokenManager.getUserId(), locationProvince, pNo, pSize));
+			res.setData(orgCognizanceService.listCognizance(TokenManager.getUserId(), null, locationProvince, pNo, pSize));
 		}
 		
 		return res;

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

@@ -19,7 +19,7 @@ public interface OrgCognizanceService {
 
 	OrgCognizance insert(OrgCognizance c);
 
-	Pagination<CognizanceBo> listCognizance(String unitName, String locationProvince, Integer pNo, Integer pSize);
+	Pagination<CognizanceBo> listCognizance(String uid, String unitName, String locationProvince, Integer pNo, Integer pSize);
 
 	CognizanceOrgInfoBo selectCognizanceOrgInfoBoByUidAndCid(String uid, String cid);
 
@@ -43,7 +43,7 @@ public interface OrgCognizanceService {
 
 	void insertCognizance(Integer contacts, String comment, Integer year, Integer state, String aid, String uid);
 
-	Pagination<CultivationListBo> listCultivation(String province, String unitName, Integer pNo, Integer pSize);
+	Pagination<CultivationListBo> listCultivation(String uid, String province, String unitName, Integer pNo, Integer pSize);
 
 
 }

+ 12 - 4
src/main/java/com/goafanti/cognizance/service/impl/OrgCognizanceServiceImpl.java

@@ -47,12 +47,16 @@ public class OrgCognizanceServiceImpl extends BaseMybatisDao<OrgCognizanceMapper
 
 	@SuppressWarnings("unchecked")
 	@Override
-	public Pagination<CognizanceBo> listCognizance(String unitName, String locationProvince,  Integer pageNo,
+	public Pagination<CognizanceBo> listCognizance(String uid, String unitName, String locationProvince,  Integer pageNo,
 			Integer pageSize) {
 		Map<String, Object> params = new HashMap<>();
 		
 		if (!StringUtils.isBlank(unitName)){
-			params.put("uid", unitName);
+			params.put("unitName", unitName);
+		}
+		
+		if (!StringUtils.isBlank(uid)){
+			params.put("uid", uid);
 		}
 		
 		if (!StringUtils.isBlank(locationProvince)){
@@ -227,13 +231,17 @@ public class OrgCognizanceServiceImpl extends BaseMybatisDao<OrgCognizanceMapper
 
 	@SuppressWarnings("unchecked")
 	@Override
-	public Pagination<CultivationListBo> listCultivation(String province, String unitName, Integer pageNo, Integer pageSize) {
+	public Pagination<CultivationListBo> listCultivation(String uid, String province, String unitName, Integer pageNo, Integer pageSize) {
 		Map<String, Object> params = new HashMap<>();
 		
 		if (!StringUtils.isBlank(unitName)){
 			params.put("unitName", unitName);
 		}
 		
+		if (!StringUtils.isBlank(uid)){
+			params.put("uid", uid);
+		}
+		
 		if (!StringUtils.isBlank(province)){
 			params.put("province", province);
 		}
@@ -243,7 +251,7 @@ public class OrgCognizanceServiceImpl extends BaseMybatisDao<OrgCognizanceMapper
 		}
 
 		if (pageSize == null || pageSize < 0) {
-			pageSize = 15;
+			pageSize = 10;
 		}
 		return(Pagination<CultivationListBo>) findPage("findCultivationListByPage", "findCultivationCount", params,
 				pageNo, pageSize);

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

@@ -288,7 +288,10 @@
 	LEFT JOIN  admin a on a.id = x.consultant
 	where 1 = 1
 	<if test="unitName != null">
-		and x.unit_ame like  CONCAT('%', #{unitName,jdbcType=VARCHAR}, '%')
+		and x.unit_name like  CONCAT('%', #{unitName,jdbcType=VARCHAR}, '%')
+	</if>
+	<if test="uid != null">
+		and x.uid = #{uid,jdbcType=VARCHAR}
 	</if>
 	<if test="locationProvince != null">
 		and x.location_province = #{locationProvince, jdbcType=VARCHAR}
@@ -307,6 +310,9 @@
 	<if test="uid != null">
 		and c.uid = #{uid,jdbcType=VARCHAR}
 	</if>
+	<if test="unitName != null">
+		and x.unit_name like  CONCAT('%', #{unitName,jdbcType=VARCHAR}, '%')
+	</if>
 	<if test="locationProvince != null">
 		and i.location_province = #{locationProvince, jdbcType=VARCHAR}
 	</if>
@@ -417,6 +423,9 @@
 	<if test="unitName != null">
 	    and i.unit_name like  CONCAT('%', #{unitName,jdbcType=VARCHAR}, '%')
 	</if>
+	<if test="uid != null">
+	    and u.id = #{uid,jdbcType=VARCHAR}
+	</if>
 	<if test="province != null">
 	    and i.location_province = #{province,jdbcType=VARCHAR}
 	</if>
@@ -434,6 +443,9 @@
 	<if test="unitName != null">
 	    and i.unit_name = #{unitName,jdbcType=VARCHAR}
 	</if>
+	<if test="uid != null">
+	    and u.id = #{uid,jdbcType=VARCHAR}
+	</if>
 	<if test="province != null">
 	    and i.location_province = #{province,jdbcType=VARCHAR}
 	</if>

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

@@ -272,6 +272,9 @@
     <if test = "mobile != null">
 	    and u.mobile = #{mobile,jdbcType=VARCHAR}
 	</if>
+	<if test = "uid != null">
+	    and u.id = #{uid,jdbcType=VARCHAR}
+	</if>
 	<if test = "email != null">
 	    and u.email = #{email,jdbcType=VARCHAR}
 	</if>
@@ -301,6 +304,9 @@
     from user u LEFT JOIN organization_identity o 
     ON u.id = o.uid 
     WHERE u.type = 1
+    <if test = "uid != null">
+	    and u.id = #{uid,jdbcType=VARCHAR}
+	</if>
     <if test = "mobile != null">
 	    and u.mobile = #{mobile,jdbcType=VARCHAR}
 	</if>

+ 4 - 3
src/main/java/com/goafanti/techproject/bo/InputTechProject.java

@@ -11,7 +11,7 @@ import com.goafanti.common.constant.ErrorConstants;
 public class InputTechProject {
 	@Size(min = 0, max = 36, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
 	private String		id;
-    
+
 	@Size(min = 0, max = 36, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
 	private String		uid;
 
@@ -24,7 +24,7 @@ public class InputTechProject {
 
 	@Size(min = 0, max = 255, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
 	private String		dispatchInfo;
-	
+
 	@Size(min = 0, max = 45, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
 	private String		projectName;
 
@@ -51,7 +51,7 @@ public class InputTechProject {
 
 	@Size(min = 0, max = 36, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
 	private String		consultant;
-
+     
 	public String getId() {
 		return id;
 	}
@@ -157,4 +157,5 @@ public class InputTechProject {
 	}
 	
 	
+
 }

+ 47 - 0
src/main/java/com/goafanti/techproject/bo/InputTechProjectLog.java

@@ -0,0 +1,47 @@
+package com.goafanti.techproject.bo;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
+import javax.validation.constraints.Size;
+
+import com.goafanti.common.constant.ErrorConstants;
+
+public class InputTechProjectLog {
+	
+	@Max(value = 9, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	private Integer		state;
+
+	@Size(min = 0, max = 36, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String		principal;
+	
+	@Size(min = 0, max = 45, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String		comment;
+
+	public Integer getState() {
+		return state;
+	}
+
+	public void setState(Integer state) {
+		this.state = state;
+	}
+
+	public String getPrincipal() {
+		return principal;
+	}
+
+	public void setPrincipal(String principal) {
+		this.principal = principal;
+	}
+
+	public String getComment() {
+		return comment;
+	}
+
+	public void setComment(String comment) {
+		this.comment = comment;
+	}
+	
+	
+
+}

+ 76 - 0
src/main/java/com/goafanti/techproject/bo/InputTechWebsite.java

@@ -0,0 +1,76 @@
+package com.goafanti.techproject.bo;
+
+import javax.validation.constraints.Size;
+
+import com.goafanti.common.constant.ErrorConstants;
+
+public class InputTechWebsite {
+	@Size(min = 0, max = 36, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String	id;
+    
+	@Size(min = 0, max = 36, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String	uid;
+    
+	@Size(min = 0, max = 45, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String	department;
+    
+	@Size(min = 0, max = 255, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String	website;
+    
+	@Size(min = 0, max = 45, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String	accountNumber;
+    
+	@Size(min = 0, max = 32, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String	password;
+
+	public String getId() {
+		return id;
+	}
+
+	public void setId(String id) {
+		this.id = id;
+	}
+
+	public String getUid() {
+		return uid;
+	}
+
+	public void setUid(String uid) {
+		this.uid = uid;
+	}
+
+	public String getDepartment() {
+		return department;
+	}
+
+	public void setDepartment(String department) {
+		this.department = department;
+	}
+
+	public String getWebsite() {
+		return website;
+	}
+
+	public void setWebsite(String website) {
+		this.website = website;
+	}
+
+	public String getAccountNumber() {
+		return accountNumber;
+	}
+
+	public void setAccountNumber(String accountNumber) {
+		this.accountNumber = accountNumber;
+	}
+
+	public String getPassword() {
+		return password;
+	}
+
+	public void setPassword(String password) {
+		this.password = password;
+	}
+	
+	
+
+}

+ 108 - 31
src/main/java/com/goafanti/techproject/controller/TechProjectApiController.java

@@ -1,49 +1,59 @@
 package com.goafanti.techproject.controller;
 
-
-
 import java.io.IOException;
 import java.text.ParseException;
 import java.util.List;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
+import javax.validation.Valid;
 
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Controller;
+import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.multipart.MultipartFile;
 
 import com.goafanti.common.bo.Result;
-import com.goafanti.common.controller.BaseApiController;
+import com.goafanti.common.constant.ErrorConstants;
+import com.goafanti.common.controller.CertifyApiController;
+import com.goafanti.common.enums.CopyrightFields;
 import com.goafanti.common.model.TechProject;
+import com.goafanti.common.model.User;
 import com.goafanti.common.utils.FileUtils;
 import com.goafanti.common.utils.LoggerUtils;
 import com.goafanti.common.utils.StringUtils;
 import com.goafanti.core.shiro.token.TokenManager;
+import com.goafanti.techproject.bo.InputTechProject;
+import com.goafanti.techproject.bo.TechProjectDetailBo;
 import com.goafanti.techproject.service.TechProjectLogService;
 import com.goafanti.techproject.service.TechProjectService;
 import com.goafanti.techproject.service.TechWebsiteService;
 
 @Controller
 @RequestMapping(value = "/api/techproject")
-public class TechProjectApiController extends BaseApiController{
+public class TechProjectApiController extends CertifyApiController {
 	@Resource
-	private TechProjectService techProjectService;
+	private TechProjectService		techProjectService;
 	@Resource
-	private TechWebsiteService techWebsiteService;
+	private TechWebsiteService		techWebsiteService;
 	@Resource
-	private TechProjectLogService techProjectLogService;
-	
+	private TechProjectLogService	techProjectLogService;
+
 	/**
 	 * 科技项目申报列表
+	 * 
 	 * @param pageNo
 	 * @param pageSize
 	 * @return
 	 */
 	@RequestMapping(value = "/listClientTechProject", method = RequestMethod.POST)
-	public Result listClientTechProject(String pageNo, String pageSize){
+	public Result listClientTechProject(String pageNo, String pageSize) {
 		Result res = new Result();
+		if (!checkUserLogin(res)) {
+			return res;
+		}
 		Integer pNo = 1;
 		Integer pSize = 10;
 		if (StringUtils.isNumeric(pageSize)) {
@@ -55,47 +65,86 @@ public class TechProjectApiController extends BaseApiController{
 		res.setData(techProjectService.listClientTechProject(TokenManager.getUserId(), pNo, pSize));
 		return res;
 	}
-	
-	
-	
+
 	/**
 	 * 科技项目申报
+	 * 
 	 * @return
 	 */
 	@RequestMapping(value = "/applyTechProject", method = RequestMethod.POST)
-	public Result applyTechProject(TechProject techProject){
+	public Result applyTechProject(@Valid InputTechProject techProject, BindingResult bindingResult) {
 		Result res = new Result();
-		techProject.setUid(TokenManager.getUserId());
-		techProjectService.saveTechProject(techProject, TokenManager.getToken().getAid());
+		if (bindingResult.hasErrors()) {
+			res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
+					CopyrightFields.getFieldDesc(bindingResult.getFieldError().getField())));
+			return res;
+		}
+		if (!checkUserLogin(res)) {
+			return res;
+		}
+		User curUser = TokenManager.getUserToken();
+		if (!checkCertify(res, curUser)) {
+			return res;
+		}
+		TechProject tp = new TechProject();
+		BeanUtils.copyProperties(techProject, tp);
+		tp.setUid(TokenManager.getUserId());
+		techProjectService.saveTechProject(tp, TokenManager.getToken().getAid());
 		return res;
 	}
-	
+
 	/**
 	 * 科技项目申报详情
+	 * 
 	 * @return
 	 */
 	@RequestMapping(value = "/techProjectDetial", method = RequestMethod.POST)
-	public Result techProjectDetial(String pid){
+	public Result techProjectDetial(String pid) {
 		Result res = new Result();
-		res.setData(techProjectService.selectProjectDetail(pid));
+		if (!checkUserLogin(res)) {
+			return res;
+		}
+		if (StringUtils.isBlank(pid)) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "科技项目ID"));
+		} else {
+			TechProjectDetailBo tpd = techProjectService.selectProjectDetail(pid);
+			if (null != tpd.getUid() && tpd.getUid().equals(TokenManager.getUserId())) {
+				res.setData(tpd);
+			} else {
+				res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "科技项目ID"));
+			}
+		}
 		return res;
 	}
-	
-	
+
 	/**
 	 * 科技项目状态流转
+	 * 
 	 * @param pid
 	 * @return
 	 */
 	@RequestMapping(value = "/techProjectLog", method = RequestMethod.POST)
-	public Result techProjectLog(String pid){
+	public Result techProjectLog(String pid) {
 		Result res = new Result();
-		res.setData(techProjectLogService.selectTechProjectLogByPid(pid));
+		if (!checkUserLogin(res)) {
+			return res;
+		}
+		if (StringUtils.isBlank(pid)) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "科技项目ID"));
+			return res;
+		}
+		TechProject tp = techProjectService.selectByPrimaryKey(pid);
+		if (null != tp.getUid() && tp.getUid().equals(TokenManager.getUserId())){
+			res.setData(techProjectLogService.selectTechProjectLogByPid(pid));
+		} else {
+			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "科技项目id"));
+		}
 		return res;
 	}
-	
+
 	/**
-	 * update科技项目 
+	 * update科技项目
+	 * 
 	 * @param t
 	 * @param l
 	 * @param recordTimeFormattedDate
@@ -103,12 +152,35 @@ public class TechProjectApiController extends BaseApiController{
 	 * @throws ParseException
 	 */
 	@RequestMapping(value = "/updateTechProject", method = RequestMethod.POST)
-	public Result updateTechProject(TechProject t) throws ParseException{
+	public Result updateTechProject(@Valid InputTechProject techProject, BindingResult bindingResult) {
 		Result res = new Result();
-		res.setData(techProjectService.updateTechProject(t, null, null));
+		if (bindingResult.hasErrors()) {
+			res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
+					CopyrightFields.getFieldDesc(bindingResult.getFieldError().getField())));
+			return res;
+		}
+		if (!checkUserLogin(res)) {
+			return res;
+		}
+		
+		User curUser = TokenManager.getUserToken();
+		if (!checkCertify(res, curUser)) {
+			return res;
+		}
+		if (StringUtils.isBlank(techProject.getId())) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到科技申报项目", "科技项目申报ID"));
+			return res;
+		}
+		
+		TechProject t = techProjectService.selectByPrimaryKey(techProject.getUid());
+		if (null != t.getUid() && t.getUid().equals(curUser.getId())){
+			res.setData(techProjectService.updateTechProject(t, null, null));
+		} else {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到科技申报项目", "科技项目申报"));
+		}
 		return res;
 	}
-	
+
 	/**
 	 * 科技项目申报材料上传
 	 * 
@@ -119,11 +191,19 @@ public class TechProjectApiController extends BaseApiController{
 	@RequestMapping(value = "/upload", method = RequestMethod.POST)
 	public Result cognizanceFile(HttpServletRequest req, String uid) {
 		Result res = new Result();
+		if (!checkUserLogin(res)) {
+			return res;
+		}
+		User curUser = TokenManager.getUserToken();
+		if (!checkCertify(res, curUser)) {
+			return res;
+		}
+		
 		String sign = "tech_project";
 		res.setData(handleFile(res, "/techProject/", true, req, sign, uid));
 		return res;
 	}
-	
+
 	private String handleFile(Result res, String path, boolean isPrivate, HttpServletRequest req, String sign,
 			String uid) {
 		List<MultipartFile> files = getFiles(req);
@@ -146,8 +226,5 @@ public class TechProjectApiController extends BaseApiController{
 		}
 		return fileName;
 	}
-	
-	
-	
 
 }

+ 2 - 0
src/main/java/com/goafanti/techproject/service/TechProjectService.java

@@ -24,4 +24,6 @@ public interface TechProjectService {
 
 	int deleteByPrimaryKey(List<String> id);
 
+	TechProject selectByPrimaryKey(String id);
+
 }

+ 5 - 0
src/main/java/com/goafanti/techproject/service/impl/TechProjectServiceImpl.java

@@ -126,4 +126,9 @@ public class TechProjectServiceImpl extends BaseMybatisDao<TechProjectMapper> im
 		return techProjectMapper.batchDeleteByPrimaryKey(id);
 	}
 
+	@Override
+	public TechProject selectByPrimaryKey(String id) {
+		return techProjectMapper.selectByPrimaryKey(id);
+	}
+
 }

+ 1 - 1
src/main/java/com/goafanti/user/service/UserService.java

@@ -30,7 +30,7 @@ public interface UserService {
 	Pagination<UserListBo> listUser(String mobile, String email, String[] createTime, Integer number,
 			String aftUsername, Integer auditStatus, Integer pNo, Integer pSize) throws ParseException;
 
-	Pagination<OrgListBo> listOrg(String mobile, String email, String[] createTime, Integer number, String unitName,
+	Pagination<OrgListBo> listOrg(String uid, String mobile, String email, String[] createTime, Integer number, String unitName,
 			Integer auditStatus, Integer pNo, Integer pSize) throws ParseException;
 
 }

+ 5 - 1
src/main/java/com/goafanti/user/service/impl/UserServiceImpl.java

@@ -150,7 +150,7 @@ public class UserServiceImpl extends BaseMybatisDao<UserMapper> implements UserS
 	
 	@SuppressWarnings("unchecked")
 	@Override
-	public Pagination<OrgListBo> listOrg(String mobile, String email, String[] pDate, Integer number,
+	public Pagination<OrgListBo> listOrg(String uid, String mobile, String email, String[] pDate, Integer number,
 			String aftUsername, Integer auditStatus, Integer pageNo, Integer pageSize) throws ParseException {
 		Map<String, Object> params = new HashMap<>();
 		Date pStart = null;
@@ -178,6 +178,10 @@ public class UserServiceImpl extends BaseMybatisDao<UserMapper> implements UserS
 			params.put("mobile", mobile);
 		}
 		
+		if (!StringUtils.isBlank(uid)){
+			params.put("uid", uid);
+		}
+		
 		if (!StringUtils.isBlank(email)){
 			params.put("email", email);
 		}