Browse Source

一键注册,以及UAS中更新企业信息资料的时候根据企业名称和营业执照号去更新开通B2B信息接口

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@2823 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
shenj 10 years ago
parent
commit
9602546109
1 changed files with 150 additions and 31 deletions
  1. 150 31
      src/main/java/com/uas/platform/b2b/controller/PublicQueryController.java

+ 150 - 31
src/main/java/com/uas/platform/b2b/controller/PublicQueryController.java

@@ -1,6 +1,7 @@
 package com.uas.platform.b2b.controller;
 
 import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -8,9 +9,7 @@ import java.util.Map;
 import java.util.Set;
 
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.ModelMap;
 import org.springframework.util.CollectionUtils;
@@ -24,9 +23,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.ResponseStatus;
 
 import com.alibaba.fastjson.JSONObject;
-import com.uas.platform.b2b.model.Attach;
 import com.uas.platform.b2b.model.Enterprise;
-import com.uas.platform.b2b.model.FileUpload;
 import com.uas.platform.b2b.model.QueriableMember;
 import com.uas.platform.b2b.model.QueriableUser;
 import com.uas.platform.b2b.model.User;
@@ -34,6 +31,7 @@ import com.uas.platform.b2b.service.AttachService;
 import com.uas.platform.b2b.service.EnterpriseService;
 import com.uas.platform.b2b.service.MonthProdioService;
 import com.uas.platform.b2b.service.UserService;
+import com.uas.platform.core.util.StringUtil;
 import com.uas.platform.core.util.serializer.FlexJsonUtils;
 
 /**
@@ -70,7 +68,8 @@ public class PublicQueryController {
 	@RequestMapping(value = "/members", method = RequestMethod.GET)
 	@ResponseBody
 	@ResponseStatus(value = HttpStatus.OK)
-	public ModelMap queryEnterprise(String name, String shortName, Long uu) throws UnsupportedEncodingException {
+	public ModelMap queryEnterprise(String name, String shortName, Long uu)
+			throws UnsupportedEncodingException {
 		ModelMap returnMap = new ModelMap();
 		if (!StringUtils.isEmpty(name)) {
 			List<Enterprise> enterprises = enterpriseService.findByName(name);
@@ -78,9 +77,11 @@ public class PublicQueryController {
 				returnMap.put("name", QueriableMember.getMembers(enterprises));
 		}
 		if (!StringUtils.isEmpty(shortName)) {
-			Set<Enterprise> enterprises = enterpriseService.findByShortName(shortName);
+			Set<Enterprise> enterprises = enterpriseService
+					.findByShortName(shortName);
 			if (!CollectionUtils.isEmpty(enterprises))
-				returnMap.put("shortName", QueriableMember.getMembers(enterprises));
+				returnMap.put("shortName",
+						QueriableMember.getMembers(enterprises));
 		}
 		if (uu != null) {
 			Enterprise enterprise = enterpriseService.findById(uu);
@@ -91,16 +92,19 @@ public class PublicQueryController {
 	}
 
 	/**
-	 * 按企业名称企业UU号,全名匹配
+	 * 按企业名称企业UU号,全名匹配
 	 * 
 	 * @return
 	 * @throws UnsupportedEncodingException
 	 */
 	@RequestMapping(value = "/batch/members", method = RequestMethod.GET)
 	@ResponseBody
-	public Map<String, Object> queryEnterprises(@RequestParam("data") String data) throws UnsupportedEncodingException {
+	public Map<String, Object> queryEnterprises(
+			@RequestParam("data") String data)
+			throws UnsupportedEncodingException {
 		if (!StringUtils.isEmpty(data)) {
 			List<String> accounts = null;
+			// data = URLDecoder.decode(data, "UTF-8");
 			// 多个
 			if (data.startsWith("[")) {
 				accounts = FlexJsonUtils.fromJsonArray(data, String.class);
@@ -109,7 +113,6 @@ public class PublicQueryController {
 				accounts.add(FlexJsonUtils.fromJson(data, String.class));
 			}
 			List<Object[]> backInfo = enterpriseService.findByEnNames(accounts);
-			System.out.println(FlexJsonUtils.toJson(backInfo));
 			Map<String, Object> infos = new HashMap<String, Object>();
 			for (Object[] objs : backInfo) {
 				infos.put(objs[1].toString(), objs[0]);
@@ -142,13 +145,74 @@ public class PublicQueryController {
 	@RequestMapping(value = "/members/{enUU}/users/{userUU}", method = RequestMethod.GET)
 	@ResponseBody
 	@ResponseStatus(value = HttpStatus.OK)
-	public QueriableUser getUser(@PathVariable("enUU") Long enUU, @PathVariable("userUU") Long userUU) {
+	public QueriableUser getUser(@PathVariable("enUU") Long enUU,
+			@PathVariable("userUU") Long userUU) {
 		User user = userService.findUserByEnUUAndUserUU(enUU, userUU);
 		if (user != null)
 			return new QueriableUser(user);
 		return null;
 	}
 
+	/**
+	 * 按企业UU、个人UU去匹配查找用户密码,是否与ERP中设置的密码一致
+	 * 
+	 * @return
+	 */
+	@RequestMapping(value = "/members/UserEnterprise", method = RequestMethod.GET)
+	@ResponseBody
+	@ResponseStatus(value = HttpStatus.OK)
+	public Map<String, Object> getUserEnterprise(String enName,
+			String enBusinesscode, String emMobile, String emPassword)
+			throws UnsupportedEncodingException {
+		// ModelMap returnMap = new ModelMap();
+		Map<String, Object> infos = new HashMap<String, Object>();
+		boolean ok = false;
+		String error = null;
+		// 首先查找营业执照号与企业名称是否存在
+		if (!StringUtils.isEmpty(enName)
+				&& !StringUtils.isEmpty(enBusinesscode)) {
+			List<Enterprise> enterprises = enterpriseService.findByName(enName);
+			if (!CollectionUtils.isEmpty(enterprises)) {
+				for (Enterprise os : enterprises) {
+					if (os.getEnBussinessCode().equals(enBusinesscode)) {
+						List<User> users = userService.findUsersByEnUU(os
+								.getUu());
+						for (User user : users) {
+							if (user.getUserTel().equals(emMobile)) {
+								ok = true;
+								infos.put("enuu", os.getUu());
+								infos.put("emuu", user.getUserUU());
+								infos.put("enSecret", os.getAccessSecret());
+								break;
+							}
+						}
+					}
+				}
+				if (ok == false) {
+					error = "企业名称与营业执照号不符!";
+				}
+			} else {
+				try {
+					Enterprise enterprise = enterpriseService
+							.findByenBussinessCode(enBusinesscode);
+					if (enterprise != null) {
+						error = "企业名称与营业执照号不符!";
+						infos.put("enName", enterprise.getEnName());
+					} else {
+						error = "企业信息未注册,请先注册!";
+					}
+				} catch (Exception e) {
+					error = "企业信息未注册,请先注册!";
+				}
+			}
+		} else {
+			error = "企业名称与企业营业执照号不能为空!";
+		}
+		infos.put("ok", ok);
+		infos.put("error", error);
+		return infos;
+	}
+
 	/**
 	 * 取企业UU序列值
 	 * 
@@ -163,8 +227,10 @@ public class PublicQueryController {
 
 	@RequestMapping(value = "/search", method = RequestMethod.GET)
 	@ResponseBody
-	public JSONObject getMonthProdio(Long month, String brand, String vendor, String date) {
-		JSONObject json = monthProdIoService.getMonthProdio(month, brand, vendor, date);
+	public JSONObject getMonthProdio(Long month, String brand, String vendor,
+			String date) {
+		JSONObject json = monthProdIoService.getMonthProdio(month, brand,
+				vendor, date);
 		return json;
 	}
 
@@ -177,33 +243,86 @@ public class PublicQueryController {
 		Enterprise enter = FlexJsonUtils.fromJson(enterprise, Enterprise.class);// 需要把字符串转成Object
 		ModelMap map = new ModelMap();
 		map.put("tel", userService.isTelUseable(enter.getEnAdminTel()));
-		map.put("email", userService.isEmailUseable(enter.getEnAdminEmail()));
-		map.put("bussinessCode", enterpriseService.bussinessCodeEnable(enter.getEnBussinessCode()));
+		// map.put("email",
+		// userService.isEmailUseable(enter.getEnAdminEmail()));
+		map.put("bussinessCode", enterpriseService.bussinessCodeEnable(enter
+				.getEnBussinessCode()));
 		return map;
 	}
 
 	/**
 	 * 注册新企业用户
+	 * 
+	 * @throws UnsupportedEncodingException
 	 */
 	@RequestMapping(value = "/erpRegister", method = RequestMethod.POST)
-	public @ResponseBody ResponseEntity<ModelMap> register(String enterprise, FileUpload uploadItem, Boolean isSaas) {
-		HttpHeaders headers = new HttpHeaders();
-		headers.add("Content-Type", "application/json; charset=utf-8");
-		ModelMap map = new ModelMap();
-		Enterprise newEnterprise = FlexJsonUtils.fromJson(enterprise, Enterprise.class);// 需要把字符串转成Object
-		Attach attach = attachService.upload(uploadItem, "bussinessCodeImg", "客户营业执照复印件或照片");// 先保存上传到文件
-		if (attach == null) {// 文件过大
-			map.put("error", "文件过大");
-			return new ResponseEntity<ModelMap>(map, headers, HttpStatus.FORBIDDEN);
-		} else {// 上传成功
-			newEnterprise.setEnBussinessCodeAttach(attach);
-			Enterprise regEnterprise = enterpriseService.registerEnterprise(newEnterprise, isSaas);
+	@ResponseBody
+	public Map<String, Object> register(String data)
+			throws UnsupportedEncodingException {
+		String jsonStr = URLDecoder.decode(data, "UTF-8");
+		Map<String, Object> infos = new HashMap<String, Object>();
+		Enterprise newEnterprise = FlexJsonUtils.fromJson(jsonStr,
+				Enterprise.class);// 需要把字符串转成Object
+		boolean ok = false;
+		String error = null;
+		Map<String, Object> checkinfos = checkRegister(newEnterprise);
+		if (checkinfos != null && checkinfos.get("ok").equals(true)) {
+			if (checkinfos.get("enName").equals(newEnterprise.getEnName())) {
+				error = "注册失败!企业名称" + checkinfos.get("enName")
+						+ "已注册,注册的营业执照号为" + checkinfos.get("enBussinessCode")
+						+ "注册人:" + checkinfos.get("emName");
+			} else {
+				error = "注册失败!营业执照号" + checkinfos.get("enBussinessCode")
+						+ "已注册,注册的企业名称为" + checkinfos.get("enName") + "注册人:"
+						+ checkinfos.get("emName");
+			}
+		} else {
+			Enterprise regEnterprise = enterpriseService
+					.registerERPEnterprise(newEnterprise);
 			if (regEnterprise == null) {// 营业执照码验证
-				map.put("error", "操作失败");
-				return new ResponseEntity<ModelMap>(map, headers, HttpStatus.EXPECTATION_FAILED);
+				error = "注册失败!";
+			} else {
+				ok = true;
+				String secret = StringUtil.uuid();
+				regEnterprise.setAccessSecret(secret);
+				enterpriseService.save(regEnterprise);
+				infos.put("enSecret", secret);
+				infos.put("enUU", regEnterprise.getUu());
+				infos.put("emUU", regEnterprise.getEnAdminuu());
+			}
+		}
+		infos.put("ok", ok);
+		infos.put("error", error);
+		return infos;
+	}
+
+	public Map<String, Object> checkRegister(Enterprise enterprise) {
+		Map<String, Object> checkinfos = new HashMap<String, Object>();
+		List<Enterprise> enterprises = enterpriseService.findByName(enterprise
+				.getEnName());
+		boolean ok = false;
+		if (!CollectionUtils.isEmpty(enterprises)) {
+			ok = true;
+			checkinfos.put("enName", enterprise.getEnName());
+			checkinfos.put("enBussinessCode", enterprises.get(0)
+					.getEnBussinessCode());
+			checkinfos.put("emName", enterprises.get(0).getEnAdminName());
+		} else {
+			try {
+				Enterprise newenterprise = enterpriseService
+						.findByenBussinessCode(enterprise.getEnBussinessCode());
+				if (newenterprise != null) {
+					ok = true;
+					checkinfos.put("enName", newenterprise.getEnName());
+					checkinfos.put("enBussinessCode",
+							newenterprise.getEnBussinessCode());
+					checkinfos.put("emName", newenterprise.getEnAdminName());
+				}
+			} catch (Exception e) {
+
 			}
-			map.put("uu", regEnterprise.getUu());
-			return new ResponseEntity<ModelMap>(map, headers, HttpStatus.OK);
 		}
+		checkinfos.put("ok", ok);
+		return checkinfos;
 	}
 }