From 9382310896b4c2149908302934c19b5067d040b0 Mon Sep 17 00:00:00 2001
From: 邓实川 <544939826@qq.com>
Date: Mon, 15 Jun 2020 11:21:44 +0800
Subject: [PATCH] excel读取方式改为直接从OSS读取

---
 src/main/java/cn/timer/api/controller/crm/CrmController.java | 137 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------
 1 file changed, 82 insertions(+), 55 deletions(-)

diff --git a/src/main/java/cn/timer/api/controller/crm/CrmController.java b/src/main/java/cn/timer/api/controller/crm/CrmController.java
index 0077634..9b7ddf1 100644
--- a/src/main/java/cn/timer/api/controller/crm/CrmController.java
+++ b/src/main/java/cn/timer/api/controller/crm/CrmController.java
@@ -8,6 +8,8 @@
 package cn.timer.api.controller.crm;
 
 import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
@@ -18,7 +20,6 @@ import java.util.Map;
 import java.util.stream.Collectors;
 
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -34,7 +35,6 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DateUtil;
-import cn.hutool.core.io.resource.ResourceUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.poi.excel.ExcelReader;
 import cn.hutool.poi.excel.ExcelUtil;
@@ -52,7 +52,6 @@ import cn.timer.api.bean.crm.CrmSeaRule;
 import cn.timer.api.bean.yggl.YgglMainEmp;
 import cn.timer.api.config.annotation.CurrentUser;
 import cn.timer.api.config.annotation.UserBean;
-import cn.timer.api.controller.dzht.cn.tign.hz.comm.FileHelper;
 import cn.timer.api.dao.crm.CrmClientContactsMapper;
 import cn.timer.api.dao.crm.CrmClientDataMapper;
 import cn.timer.api.dto.crm.CrmClientDataImportVo;
@@ -77,8 +76,8 @@ import io.swagger.annotations.ApiOperation;
 @RequestMapping(value = "/crm", produces = { "application/json" })
 public class CrmController {
 
-	@Value(value = "${config-8timer.crm-excel.realPath}")
-	private String realPath;
+//	@Value(value = "${config-8timer.crm-excel.realPath}")
+//	private String realPath;
 
 	@Autowired
 	private CrmClientDataMapper crmClientDataMapper;
@@ -104,6 +103,13 @@ public class CrmController {
 		return getYg(orgCode, empNum).getName();
 	}
 
+	private Integer getQyzxManager(Integer orgCode, Integer empNum) {
+		return YgglMainEmp.builder().build()
+				.selectOne(new QueryWrapper<YgglMainEmp>().lambda().eq(YgglMainEmp::getOrgCode, orgCode)
+						.eq(YgglMainEmp::getEmpNum, empNum).select(YgglMainEmp::getIsManager))
+				.getIsManager();
+	}
+
 	@GetMapping("getIndustry")
 	@ApiOperation(value = "获取行业列表", httpMethod = "GET", notes = "接口发布说明")
 	public Result<List<IndustryClass>> getIndustry(@CurrentUser UserBean userBean) {
@@ -212,45 +218,57 @@ public class CrmController {
 	@GetMapping("getBusinessGroup")
 	@ApiOperation(value = "获取业务组列表", httpMethod = "GET", notes = "接口发布说明")
 	public Result<Object> getBusinessGroup(@CurrentUser UserBean userBean) {
-		List<CrmBusinessGroup> list = CrmBusinessGroup.builder().build()
-				.selectList(new QueryWrapper<CrmBusinessGroup>().lambda()
-						.eq(CrmBusinessGroup::getOrgCode, getOrgCode(userBean)).select(CrmBusinessGroup::getId,
-								CrmBusinessGroup::getSort, CrmBusinessGroup::getName, CrmBusinessGroup::getModifyTime));
-		for (CrmBusinessGroup crmBusinessGroup : list) {
-			Integer gid = crmBusinessGroup.getId();
-			List<CrmBusinessGroupMember> crmBusinessGroupManagers = CrmBusinessGroupMember.builder().build().selectList(
-					new QueryWrapper<CrmBusinessGroupMember>().lambda().eq(CrmBusinessGroupMember::getGid, gid)
-							.eq(CrmBusinessGroupMember::getType, 1).select(CrmBusinessGroupMember::getEmpNum));
-			List<CrmBusinessGroupMember> crmBusinessGroupMembers = CrmBusinessGroupMember.builder().build().selectList(
-					new QueryWrapper<CrmBusinessGroupMember>().lambda().eq(CrmBusinessGroupMember::getGid, gid)
-							.eq(CrmBusinessGroupMember::getType, 0).select(CrmBusinessGroupMember::getEmpNum));
-			List<Map<String, Object>> managers = new ArrayList<Map<String, Object>>();
-			for (CrmBusinessGroupMember crmBusinessGroupManager : crmBusinessGroupManagers) {
-				Integer empNum = crmBusinessGroupManager.getEmpNum();
-				String name = getEmpName(getOrgCode(userBean), empNum);
-				Map<String, Object> map = new HashMap<String, Object>();
-				map.put("name", name);
-				map.put("empNum", empNum);
-				managers.add(map);
-			}
-			crmBusinessGroup.setManagers(managers);
-
-			List<Map<String, Object>> members = new ArrayList<Map<String, Object>>();
-			for (CrmBusinessGroupMember crmBusinessGroupManager : crmBusinessGroupMembers) {
-				Integer empNum = crmBusinessGroupManager.getEmpNum();
-				String name = getEmpName(getOrgCode(userBean), empNum);
-				Map<String, Object> map = new HashMap<String, Object>();
-				map.put("name", name);
-				map.put("empNum", empNum);
-				members.add(map);
+		Integer nowEmpNum = getEmpNum(userBean);
+		Integer orgCode = getOrgCode(userBean);
+		Integer isManager = getQyzxManager(orgCode, nowEmpNum);
+		if (isManager != null && (isManager == 1 || isManager == 2)) {
+
+			List<CrmBusinessGroup> list = CrmBusinessGroup.builder().build()
+					.selectList(new QueryWrapper<CrmBusinessGroup>().lambda()
+							.eq(CrmBusinessGroup::getOrgCode, getOrgCode(userBean)).select(CrmBusinessGroup::getId,
+									CrmBusinessGroup::getSort, CrmBusinessGroup::getName,
+									CrmBusinessGroup::getModifyTime));
+			for (CrmBusinessGroup crmBusinessGroup : list) {
+				Integer gid = crmBusinessGroup.getId();
+				List<CrmBusinessGroupMember> crmBusinessGroupManagers = CrmBusinessGroupMember.builder().build()
+						.selectList(new QueryWrapper<CrmBusinessGroupMember>().lambda()
+								.eq(CrmBusinessGroupMember::getGid, gid).eq(CrmBusinessGroupMember::getType, 1)
+								.select(CrmBusinessGroupMember::getEmpNum));
+				List<CrmBusinessGroupMember> crmBusinessGroupMembers = CrmBusinessGroupMember.builder().build()
+						.selectList(new QueryWrapper<CrmBusinessGroupMember>().lambda()
+								.eq(CrmBusinessGroupMember::getGid, gid).eq(CrmBusinessGroupMember::getType, 0)
+								.select(CrmBusinessGroupMember::getEmpNum));
+				List<Map<String, Object>> managers = new ArrayList<Map<String, Object>>();
+				for (CrmBusinessGroupMember crmBusinessGroupManager : crmBusinessGroupManagers) {
+					Integer empNum = crmBusinessGroupManager.getEmpNum();
+					String name = getEmpName(orgCode, empNum);
+					Map<String, Object> map = new HashMap<String, Object>();
+					map.put("name", name);
+					map.put("empNum", empNum);
+					managers.add(map);
+				}
+				crmBusinessGroup.setManagers(managers);
+
+				List<Map<String, Object>> members = new ArrayList<Map<String, Object>>();
+				for (CrmBusinessGroupMember crmBusinessGroupManager : crmBusinessGroupMembers) {
+					Integer empNum = crmBusinessGroupManager.getEmpNum();
+					String name = getEmpName(orgCode, empNum);
+					Map<String, Object> map = new HashMap<String, Object>();
+					map.put("name", name);
+					map.put("empNum", empNum);
+					members.add(map);
+				}
+				crmBusinessGroup.setMembers(members);
+
+				CrmSeaRule crmSeaRules = CrmSeaRule.builder().build()
+						.selectOne(new QueryWrapper<CrmSeaRule>().lambda().eq(CrmSeaRule::getGid, gid));
+				crmBusinessGroup.setCrmSeaRules(crmSeaRules);
 			}
-			crmBusinessGroup.setMembers(members);
+			return ResultUtil.data(list, "获取成功");
+
+		} else
+			return ResultUtil.error("暂无查看权限");
 
-			CrmSeaRule crmSeaRules = CrmSeaRule.builder().build()
-					.selectOne(new QueryWrapper<CrmSeaRule>().lambda().eq(CrmSeaRule::getGid, gid));
-			crmBusinessGroup.setCrmSeaRules(crmSeaRules);
-		}
-		return ResultUtil.data(list, "获取成功");
 	}
 
 	@GetMapping("getBusinessGroupId")
@@ -264,7 +282,6 @@ public class CrmController {
 				.distinct().collect(Collectors.toList());
 		List<Map<String, Object>> result = new ArrayList<Map<String, Object>>();
 		for (Integer gid : gids) {
-			System.err.println(gid);
 			String name = CrmBusinessGroup.builder().build().selectOne(new LambdaQueryWrapper<CrmBusinessGroup>()
 					.eq(CrmBusinessGroup::getId, gid).select(CrmBusinessGroup::getName)).getName();
 			Map<String, Object> map = new HashMap<String, Object>();
@@ -1063,19 +1080,20 @@ public class CrmController {
 		Integer empNum = getEmpNum(userBean);
 		Integer orgCode = getOrgCode(userBean);
 
-		String filePath = null;
-		String time = null;
-		try {
-			time = DateUtil.format(new Date(), "yyyyMMddHHmmssSSS");
-			filePath = FileHelper.downLoadFromUrl(url, time + ".xls", realPath);
-			System.err.println(filePath);
-		} catch (IOException e) {
-			e.printStackTrace();
-		}
+//		String filePath = null;
+//		String time = null;
+//		try {
+//			time = DateUtil.format(new Date(), "yyyyMMddHHmmssSSS");
+//			filePath = FileHelper.downLoadFromUrl(url, time + ".xls", realPath);
+//		} catch (IOException e) {
+//			e.printStackTrace();
+//		}
 		// 从文件中读取Excel为ExcelReader
 		ExcelReader reader;
 		// 从流中读取Excel为ExcelReader(比如从ClassPath中读取Excel文件)
-		reader = ExcelUtil.getReader(ResourceUtil.getStream(filePath));
+//		reader = ExcelUtil.getReader(ResourceUtil.getStream(filePath));
+		// 从网络流OSS中读取excel资源
+		reader = getReaderByUrl(url);
 		reader.addHeaderAlias("*客户名称(必填)", "clientName");
 		reader.addHeaderAlias("*所属分组(必填)", "belongGroupName");
 		reader.addHeaderAlias("行业", "industryName");
@@ -1095,7 +1113,6 @@ public class CrmController {
 		reader.addHeaderAlias("个人地址", "linkAddress");
 		List<CrmClientDataImportVo> list = reader.read(0, 1, CrmClientDataImportVo.class);
 		for (CrmClientDataImportVo crmClientDataImportVo : list) {
-			System.err.println(crmClientDataImportVo);
 
 			String clientName = crmClientDataImportVo.getClientName(); // 客户名称(必填)
 			String belongGroupName = crmClientDataImportVo.getBelongGroupName(); // 分组名(必填)
@@ -1121,7 +1138,7 @@ public class CrmController {
 			// 业务组
 			CrmBusinessGroup crmBusinessGroup = CrmBusinessGroup.builder().build()
 					.selectOne(new LambdaQueryWrapper<CrmBusinessGroup>()
-							.eq(CrmBusinessGroup::getOrgCode, userBean.getOrgCode())
+							.eq(CrmBusinessGroup::getOrgCode, orgCode)
 							.eq(CrmBusinessGroup::getName, belongGroupName).select(CrmBusinessGroup::getId));
 			if (crmBusinessGroup == null)
 				return ResultUtil.error("没有匹配的业务组名称");
@@ -1188,4 +1205,14 @@ public class CrmController {
 		}
 		return ResultUtil.success("导入成功");
 	}
+
+	private ExcelReader getReaderByUrl(String url) {
+		InputStream is = null;
+		try {
+			is = new URL(url).openConnection().getInputStream();
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		return ExcelUtil.getReader(is);
+	}
 }
--
libgit2 0.26.0