From 564bf7ab6a639c2c4557d35b8fd9b51dca60a738 Mon Sep 17 00:00:00 2001 From: LSH Date: 星期二, 22 八月 2023 13:32:34 +0800 Subject: [PATCH] #规则完善 --- src/main/java/com/zy/crm/manager/controller/CstmrController.java | 236 +++++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 189 insertions(+), 47 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 5c60c43..5c9c60f 100644 --- a/src/main/java/com/zy/crm/manager/controller/CstmrController.java +++ b/src/main/java/com/zy/crm/manager/controller/CstmrController.java @@ -9,15 +9,25 @@ import com.core.common.Cools; import com.core.common.DateUtils; import com.core.common.R; +import com.core.domain.KeyValueVo; 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.service.CstmrFollService; import com.zy.crm.manager.service.CstmrService; import com.zy.crm.manager.service.CstmrTypeService; +import com.zy.crm.system.entity.Dept; import com.zy.crm.system.entity.Dic; +import com.zy.crm.system.entity.Role; +import com.zy.crm.system.entity.User; +import com.zy.crm.system.service.DeptService; import com.zy.crm.system.service.DicService; +import com.zy.crm.system.service.UserService; import lombok.extern.slf4j.Slf4j; +import lombok.val; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.DataFormatter; import org.apache.poi.ss.usermodel.Row; @@ -25,12 +35,13 @@ import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.io.InputStream; +import java.io.*; +import java.lang.reflect.Array; import java.util.*; @Slf4j @@ -43,6 +54,8 @@ private CstmrTypeService cstmrTypeService; @Autowired private DicService dicService; + @Autowired + private DeptService deptService; @RequestMapping(value = "/cstmr/{id}/auth") @ManagerAuth @@ -50,48 +63,48 @@ 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()); + public R page(@RequestParam(defaultValue = "1") Integer curr, + @RequestParam(defaultValue = "10") Integer limit, + @RequestParam(required = false) String followerName, + @RequestParam(required = false) String conditionName, + @RequestParam(required = false) String condition, + @RequestParam(required = false, value = "dept_id") Long deptId, + @RequestParam(required = false, value = "user_id") Long userId){ + List<Integer> ids = new ArrayList<>(); + if (!Cools.isEmpty(followerName)){ + User username = userService.selectOne(new EntityWrapper<User>().eq("username", followerName)); + if (!Cools.isEmpty(username)){ + List<CstmrFoll> cstmrIds = cstmrFollService.selectCstmrIdUserId(username.getId().intValue()); + for (CstmrFoll id : cstmrIds){ + ids.add(id.getCstmrId().intValue()); + } + }else { + return R.error("鏈煡璇㈠埌璺熻繘浜轰俊鎭紒"); } - return R.ok(cstmrService.selectPage(new Page<>(curr, limit), wrapper)); } - } + if (!Cools.isEmpty(conditionName)){ + switch (conditionName){ + case "director": + try { + condition=userService.selectOne(new EntityWrapper<User>().eq("username", condition)).getId().toString(); + }catch (Exception e){ + conditionName = null; + } + break; + default: - 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); } } + return R.ok(cstmrService.getPage3(new Page<>(curr, limit) + , getHostId() + , deptId == null ? null : String.valueOf(deptId) + , userId == null ? getUserId() : userId + , Cools.isEmpty(followerName) ? null : ids + , conditionName + , condition) + ); } @RequestMapping(value = "/cstmr/add/auth") @@ -130,22 +143,19 @@ @RequestMapping(value = "/cstmr/delete/auth") @ManagerAuth public R delete(@RequestParam(value="ids[]") Long[] ids){ - for (Long id : ids){ + for (Long id : ids){ cstmrService.deleteById(id); } return R.ok(); } - @RequestMapping(value = "/cstmr/export/auth") + @RequestMapping(value = "/cstmr/delete/one/{id}") @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)); + public R deleteOne(@PathVariable Long id) { + cstmrService.deleteById(id); + return R.ok(); } + @RequestMapping(value = "/cstmrQuery/auth") @ManagerAuth @@ -290,4 +300,136 @@ } + /******************************** 璺熻繘浜� ***************************************/ + + @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/add/json") + @ManagerAuth + @Transactional + public R cstmrFollowersAddJson(@RequestBody() Map map) { + long cstmrId = Long.valueOf(String.valueOf(map.get("cstmrId"))); + long followerIds = Long.valueOf(String.valueOf(map.get("followerIds"))); + if (Cools.isEmpty(cstmrId, followerIds)) { + return R.parse(BaseRes.PARAM); + } + CstmrFoll cstmrFoll = new CstmrFoll(); + cstmrFoll.setCstmrId(cstmrId); + cstmrFoll.setUserId(followerIds); + 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("鍒犻櫎鎴愬姛"); + } + + @RequestMapping("/cstmr/all/get/kv") + @ManagerAuth + public R getDataKV(@RequestParam(required = false) String condition) { + User user = getUser(); assert user != null; + Role role = getRole(); assert role != null; + Page<Cstmr> page = cstmrService.getPage(new Page<>(1, 30) + , getHostId() + , role.judgeLeader() ? String.valueOf(user.getDeptId()) : null + , user.getId() + , condition); + List<KeyValueVo> vos = new ArrayList<>(); + page.getRecords().forEach(item -> vos.add(new KeyValueVo(item.getName(), item.getId()))); + return R.ok().add(vos); + } + + @RequestMapping("/cstmr/file/import") + @Transactional + public R fileImport() throws IOException { + File file = new File("D:\\tmp\\璺熻繘浜�.xls"); + InputStream inStream = new FileInputStream(file); + int excelVersion = 2007; + Workbook book = null; + book = new HSSFWorkbook(inStream); + Sheet sheet = book.getSheetAt(0); + int totalRows = sheet.getLastRowNum() + 1; // 鎬� + DataFormatter dataFormatter = new DataFormatter(); + for (int i = 1; i < totalRows; i++) { + System.out.println(i); + Row row = sheet.getRow(i); + // 瀹㈡埛浠e彿 + String username = dataFormatter.formatCellValue(row.getCell(0)); + System.out.println(username); + if (username.equals("鐢樺叏") || username.equals("闄嗘檽涓�") + || username.equals("寮犲ぉ鏋�") || username.equals("闄堥箯") || username.equals("璧甸洩鐢�") + || username.equals("寮犱繆鑹�(绂昏亴)") + ) { continue;} + String cstmrUuid = dataFormatter.formatCellValue(row.getCell(2)); + System.out.println(cstmrUuid); + + User user = userService.selectOne(new EntityWrapper<User>().eq("nickname", username)); + if (null == user) { + throw new CoolException(username + "閿欒"); + } + Cstmr cstmr = cstmrService.selectByUuid(null, cstmrUuid); + if (null == cstmr) { + throw new CoolException(cstmrUuid + "閿欒"); + } + CstmrFoll cstmrFoll = new CstmrFoll(); + cstmrFoll.setCstmrId(cstmr.getId()); + cstmrFoll.setUserId(user.getId()); + if (!cstmrFollService.insert(cstmrFoll)) { + throw new CoolException("娣诲姞澶辫触锛岃鑱旂郴绠$悊鍛�"); + } + } + return R.ok(); + } + } -- Gitblit v1.9.1