From fddb70602a976934955122dba87c6e5bee9b5859 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@63.com> Date: 星期二, 15 十一月 2022 10:56:52 +0800 Subject: [PATCH] # --- src/main/java/com/zy/crm/manager/controller/CstmrController.java | 329 ++++++++++++++++++++++++++++++++---------------------- 1 files changed, 193 insertions(+), 136 deletions(-) diff --git a/src/main/java/com/zy/crm/manager/controller/CstmrController.java b/src/main/java/com/zy/crm/manager/controller/CstmrController.java index 9a60544..92337c6 100644 --- a/src/main/java/com/zy/crm/manager/controller/CstmrController.java +++ b/src/main/java/com/zy/crm/manager/controller/CstmrController.java @@ -7,16 +7,24 @@ import com.core.annotations.ManagerAuth; import com.core.common.BaseRes; import com.core.common.Cools; -import com.core.common.DateUtils; import com.core.common.R; import com.core.exception.CoolException; import com.zy.crm.common.web.BaseController; +import com.zy.crm.manager.controller.result.FollowerTableVo; import com.zy.crm.manager.entity.Cstmr; +import com.zy.crm.manager.entity.CstmrFoll; import com.zy.crm.manager.entity.CstmrType; +import com.zy.crm.manager.entity.result.KeyValueVo; +import com.zy.crm.manager.service.CstmrFollService; import com.zy.crm.manager.service.CstmrService; import com.zy.crm.manager.service.CstmrTypeService; +import com.zy.crm.system.entity.Dic; +import com.zy.crm.system.entity.User; +import com.zy.crm.system.service.DicService; +import com.zy.crm.system.service.UserService; import lombok.extern.slf4j.Slf4j; import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.DataFormatter; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; @@ -39,6 +47,8 @@ private CstmrService cstmrService; @Autowired private CstmrTypeService cstmrTypeService; + @Autowired + private DicService dicService; @RequestMapping(value = "/cstmr/{id}/auth") @ManagerAuth @@ -46,48 +56,19 @@ return R.ok(cstmrService.selectById(String.valueOf(id))); } - @RequestMapping(value = "/cstmr/list/auth") + @RequestMapping(value = "/cstmr/page/auth") @ManagerAuth - public R list(@RequestParam(defaultValue = "1")Integer curr, - @RequestParam(defaultValue = "10")Integer limit, - @RequestParam(required = false)String orderByField, - @RequestParam(required = false)String orderByType, - @RequestParam(required = false)String condition, - @RequestParam Map<String, Object> param){ - EntityWrapper<Cstmr> wrapper = new EntityWrapper<>(); - excludeTrash(param); - convert(param, wrapper); - hostEq(wrapper); - allLike(Cstmr.class, param.keySet(), wrapper, condition); - if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else { - wrapper.orderBy("create_time", false); - } - if (!Cools.isEmpty(param.get("dept_id"))) { - return R.ok(cstmrService.getPage(new Page<>(curr, limit) - , getHostId() - , String.valueOf(param.get("dept_id")) - , condition) - ); - } else { - if (Cools.isEmpty(param.get("user_id"))) { - wrapper.andNew(); - wrapper.eq("user_id", getUserId()); - } - return R.ok(cstmrService.selectPage(new Page<>(curr, limit), wrapper)); - } - } - - private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){ - for (Map.Entry<String, Object> entry : map.entrySet()){ - String val = String.valueOf(entry.getValue()); - if (val.contains(RANGE_TIME_LINK)){ - String[] dates = val.split(RANGE_TIME_LINK); - wrapper.ge(entry.getKey(), DateUtils.convert(dates[0])); - wrapper.le(entry.getKey(), DateUtils.convert(dates[1])); - } else { - wrapper.like(entry.getKey(), val); - } - } + public R page(@RequestParam(defaultValue = "1") Integer curr, + @RequestParam(defaultValue = "10") Integer limit, + @RequestParam(required = false) String condition, + @RequestParam(required = false, value = "dept_id") Long deptId, + @RequestParam(required = false, value = "user_id") Long userId){ + return R.ok(cstmrService.getPage(new Page<>(curr, limit) + , getHostId() + , deptId == null ? null : String.valueOf(deptId) + , userId == null ? getUserId() : userId + , condition) + ); } @RequestMapping(value = "/cstmr/add/auth") @@ -132,17 +113,6 @@ return R.ok(); } - @RequestMapping(value = "/cstmr/export/auth") - @ManagerAuth - public R export(@RequestBody JSONObject param){ - EntityWrapper<Cstmr> wrapper = new EntityWrapper<>(); - List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class); - Map<String, Object> map = excludeTrash(param.getJSONObject("cstmr")); - convert(map, wrapper); - List<Cstmr> list = cstmrService.selectList(wrapper); - return R.ok(exportSupport(list, fields)); - } - @RequestMapping(value = "/cstmrQuery/auth") @ManagerAuth public R query(String condition) { @@ -176,91 +146,104 @@ */ @PostMapping(value = "/cstmr/excel/import/auth") @ManagerAuth(memo = "鐢叉柟鍗曚綅Excel瀵煎叆") - @Transactional +// @Transactional public R cstmrExcelImport(MultipartFile file) throws IOException { - try (InputStream inStream = file.getInputStream()) { - String fileMime = file.getContentType(); - int excelVersion = 2007; - if ("application/vnd.ms-excel".equals(fileMime)) { - excelVersion = 2003; - } - Workbook book = null; - if (excelVersion == 2003) { - book = new HSSFWorkbook(inStream); - } - else { // 褰� excel 鏄� 2007 鏃� - book = new XSSFWorkbook(inStream); - } - Sheet sheet = book.getSheetAt(0); - int totalRows = sheet.getPhysicalNumberOfRows() - 1; // 鎬� - Long userId = getUserId(); - Long hostId = getHostId(); - Long deptId = getDeptId(); - Date now = new Date(); - for (int i = 2; i < totalRows; i++) { - Cstmr cstmr = new Cstmr(); - Row row = sheet.getRow(i); - // 瀹㈡埛浠e彿 - String uuid = row.getCell(0).getStringCellValue(); - if (!Cools.isEmpty(uuid)) { - if (cstmrService.selectByUuid(hostId, uuid) != null) { - throw new CoolException(uuid + "瀹㈡埛浠e彿宸插瓨鍦紝璇烽噸鏂板鍏�"); - } else { - cstmr.setUuid(uuid); - } - } else { - cstmr.setUuid(cstmrService.getUuid(hostId)); - } - // 瀹㈡埛浠e彿 - String name = row.getCell(1).getStringCellValue(); - if (Cools.isEmpty(name)) { - throw new CoolException("绗�" + i + "琛屽鎴峰悕绉颁笉鑳戒负绌猴紝璇烽噸鏂板鍏�"); - } - cstmr.setName(name); - // 瀹㈡埛绫诲埆 - String type = row.getCell(2).getStringCellValue(); - if (Cools.isEmpty(type)) { - throw new CoolException("绗�" + i + "琛屽鎴风被鍒笉鑳戒负绌猴紝璇烽噸鏂板鍏�"); - } - CstmrType cstmrType = cstmrTypeService.selectByName(hostId, type); - if (null == cstmrType) { - throw new CoolException("绗�" + i + "琛屽鎴风被鍒笉鍚堟硶锛岃閲嶆柊瀵煎叆"); - } - cstmr.setCstmrType(cstmrType.getId()); - // 瀹㈡埛绫诲埆 - cstmr.setRela(row.getCell(3).getStringCellValue()); - // 鐢佃瘽 - cstmr.setTel(row.getCell(4).getStringCellValue()); - // 瀹㈡埛鑱旂郴浜� - cstmr.setContacts(row.getCell(5).getStringCellValue()); - // 澶囨敞 - cstmr.setRemarks(row.getCell(6).getStringCellValue()); - // 鐪� - cstmr.setProvince(row.getCell(7).getStringCellValue()); - // 甯� - cstmr.setCity(row.getCell(8).getStringCellValue()); - // 鍖� - cstmr.setDistrict(row.getCell(9).getStringCellValue()); - // 璇︾粏鍦板潃 - cstmr.setAddr(row.getCell(10).getStringCellValue()); - // 鍖哄垎 - cstmr.setType0(row.getCell(11).getStringCellValue()); - cstmr.setHostId(hostId); - cstmr.setDeptId(deptId); - cstmr.setUserId(userId); - cstmr.setStatus(1); - cstmr.setCreateBy(userId); - cstmr.setCreateTime(now); - cstmr.setUpdateBy(userId); - cstmr.setUpdateTime(now); - if (!cstmrService.insert(cstmr)) { - throw new CoolException("淇濆瓨澶辫触锛岃閲嶆柊瀵煎叆"); - } - } - } catch (Exception e) { - e.printStackTrace(); + InputStream inStream = file.getInputStream(); + String fileMime = file.getContentType(); + int excelVersion = 2007; + if ("application/vnd.ms-excel".equals(fileMime)) { + excelVersion = 2003; } - + Workbook book = null; + if (excelVersion == 2003) { + book = new HSSFWorkbook(inStream); + } + else { // 褰� excel 鏄� 2007 鏃� + book = new XSSFWorkbook(inStream); + } + Sheet sheet = book.getSheetAt(0); + int totalRows = sheet.getLastRowNum() + 1; // 鎬� + Long userId = getUserId(); + Long hostId = getHostId(); + Long deptId = getDeptId(); + Date now = new Date(); + DataFormatter dataFormatter = new DataFormatter(); + for (int i = 2; i < totalRows; i++) { + Cstmr cstmr = new Cstmr(); + Row row = sheet.getRow(i); + // 瀹㈡埛浠e彿 + String uuid = dataFormatter.formatCellValue(row.getCell(0)); + if (!Cools.isEmpty(uuid)) { + if (cstmrService.selectByUuid(hostId, uuid) != null) { +// throw new CoolException(uuid + "瀹㈡埛浠e彿宸插瓨鍦紝璇烽噸鏂板鍏�"); + continue; + } else { + cstmr.setUuid(uuid); + } + } else { + cstmr.setUuid(cstmrService.getUuid(hostId)); + } + // 瀹㈡埛浠e彿 + String name = dataFormatter.formatCellValue(row.getCell(1)); + if (Cools.isEmpty(name)) { + throw new CoolException("绗�" + i + "琛屽鎴峰悕绉颁笉鑳戒负绌猴紝璇烽噸鏂板鍏�"); + } + cstmr.setName(name); + // 瀹㈡埛绫诲埆 + String type = dataFormatter.formatCellValue(row.getCell(2)); + if (Cools.isEmpty(type)) { + throw new CoolException("绗�" + i + "琛屽鎴风被鍒笉鑳戒负绌猴紝璇烽噸鏂板鍏�"); + } + CstmrType cstmrType = cstmrTypeService.selectByName(hostId, type); + if (null == cstmrType) { + throw new CoolException("绗�" + i + "琛屽鎴风被鍒笉鍚堟硶锛岃閲嶆柊瀵煎叆"); + } + cstmr.setCstmrType(cstmrType.getId()); + // 瀹㈡埛鍏崇郴 + cstmr.setRela(dataFormatter.formatCellValue(row.getCell(3))); + // 鐢佃瘽 + cstmr.setTel(dataFormatter.formatCellValue(row.getCell(4))); + // 瀹㈡埛鑱旂郴浜� + cstmr.setContacts(dataFormatter.formatCellValue(row.getCell(5))); + // 澶囨敞 + cstmr.setRemarks(dataFormatter.formatCellValue(row.getCell(6))); + // 鐪� + String province = dataFormatter.formatCellValue(row.getCell(7)); + Dic dicProvince = dicService.selectByName(province); + if (Cools.isEmpty(dicProvince)) { + throw new CoolException("绗�" + i + "琛岀渷鍚嶄笉鍚堟硶锛岃閲嶆柊瀵煎叆"); + } + cstmr.setProvince(dicProvince.getCode()); + // 甯� + String city = dataFormatter.formatCellValue(row.getCell(8)); + Dic dicCity = dicService.selectByName(city); + if (Cools.isEmpty(dicCity)) { + throw new CoolException("绗�" + i + "琛屽競鍚嶄笉鍚堟硶锛岃閲嶆柊瀵煎叆"); + } + cstmr.setCity(dicCity.getCode()); + // 鍖� + String district = dataFormatter.formatCellValue(row.getCell(9)); + Dic dicDistrict = dicService.selectByName(district); + if (Cools.isEmpty(dicDistrict)) { + throw new CoolException("绗�" + i + "琛屽幙鍚嶄笉鍚堟硶锛岃閲嶆柊瀵煎叆"); + } + cstmr.setDistrict(dicDistrict.getCode()); + // 璇︾粏鍦板潃 + cstmr.setAddr(dataFormatter.formatCellValue(row.getCell(10))); + // 鍖哄垎 + cstmr.setType0(dataFormatter.formatCellValue(row.getCell(11))); + cstmr.setHostId(hostId); + cstmr.setDeptId(deptId); + cstmr.setUserId(userId); + cstmr.setStatus(1); + cstmr.setCreateBy(userId); + cstmr.setCreateTime(now); + cstmr.setUpdateBy(userId); + cstmr.setUpdateTime(now); + if (!cstmrService.insert(cstmr)) { + throw new CoolException("淇濆瓨澶辫触锛岃閲嶆柊瀵煎叆"); + } + } return R.ok(); } @@ -273,4 +256,78 @@ } + /******************************** 璺熻繘浜� ***************************************/ + + @Autowired + private CstmrFollService cstmrFollService; + @Autowired + private UserService userService; + + @RequestMapping(value = "/cstmr/followers/table/auth") + @ManagerAuth + public R cstmrFollowersTable(@RequestParam("cstmrId") Long cstmrId) { + List<CstmrFoll> cstmrFolls = cstmrFollService.selectList(new EntityWrapper<CstmrFoll>().eq("cstmr_id", cstmrId).orderBy("id", false)); + List<FollowerTableVo> result = new ArrayList<>(); + for (CstmrFoll cstmrFoll : cstmrFolls) { + User user = userService.selectById(cstmrFoll.getUserId()); + FollowerTableVo vo = new FollowerTableVo(); + vo.setUserId(user.getId()); + vo.setUserName(user.getNickname()); + result.add(vo); + } + return R.ok().add(result); + } + + @RequestMapping(value = "/cstmr/followers/add/auth") + @ManagerAuth + @Transactional + public R cstmrFollowersAdd(@RequestParam("cstmrId") Long cstmrId, + @RequestParam("followerIds[]") Long[] followerIds) { + if (Cools.isEmpty(cstmrId, followerIds)) { + return R.parse(BaseRes.PARAM); + } + for (Long userId : followerIds) { + if (cstmrFollService.selectCount(new EntityWrapper<CstmrFoll>().eq("cstmr_id", cstmrId).eq("user_id", userId)) == 0) { + CstmrFoll cstmrFoll = new CstmrFoll(); + cstmrFoll.setCstmrId(cstmrId); + cstmrFoll.setUserId(userId); + if (!cstmrFollService.insert(cstmrFoll)) { + throw new CoolException("娣诲姞澶辫触锛岃鑱旂郴绠$悊鍛�"); + } + } + } + return R.ok("娣诲姞鎴愬姛"); + } + + @RequestMapping(value = "/cstmr/followers/remove/auth") + @ManagerAuth + public R cstmrFollowersRemove(@RequestParam("cstmrId") Long cstmrId, + @RequestParam("userId") Long userId) { + if (Cools.isEmpty(cstmrId, userId)) { + return R.parse(BaseRes.PARAM); + } + if (!cstmrFollService.delete(new EntityWrapper<CstmrFoll>().eq("cstmr_id", cstmrId).eq("user_id", userId))) { + throw new CoolException("鍒犻櫎澶辫触锛岃鑱旂郴绠$悊鍛�"); + } + return R.ok("鍒犻櫎鎴愬姛"); + } + + // xm-select + @RequestMapping("/cstmr/all/get/kv") + @ManagerAuth + public R getCstmrDataKV(@RequestParam(required = false) String condition) { + Wrapper<Cstmr> wrapper = new EntityWrapper<Cstmr>() + .andNew().like("name", condition).or().like("uuid", condition) + .orderBy("create_time", false); + List<Cstmr> cstmrs = cstmrService.selectPage(new Page<>(1, 30), wrapper).getRecords(); + List<KeyValueVo> valueVos = new ArrayList<>(); + for (Cstmr cstmr : cstmrs) { + KeyValueVo vo = new KeyValueVo(); + vo.setName(cstmr.getName()); + vo.setValue(cstmr.getId()); + valueVos.add(vo); + } + return R.ok().add(valueVos); + } + } -- Gitblit v1.9.1