package com.highdatas.mdm.controller; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.plugins.Page; import com.highdatas.mdm.entity.*; import com.highdatas.mdm.entity.Character; import com.highdatas.mdm.pojo.CodeMsg; import com.highdatas.mdm.pojo.DispenseField; import com.highdatas.mdm.pojo.Result; import com.highdatas.mdm.pojo.SubscribeEntity; import com.highdatas.mdm.service.*; import com.highdatas.mdm.util.Constant; import com.highdatas.mdm.util.DbUtils; import com.highdatas.mdm.util.RedisClient; import com.highdatas.mdm.util.pool.MqEntity; import com.highdatas.mdm.util.pool.MqMessage; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; /** *

* 前端控制器 *

* * @author kimi * @since 2019-12-31 */ @RestController @RequestMapping("/subscribe") public class DispenseController { @Autowired DispenseService dispenseService; @Autowired RedisClient redisClient; @Autowired MasterDataService masterDataService; @Autowired IMasterAuthorService masterAuthorService; @Autowired IMaintainFieldService maintainFieldService; @Autowired IMaintainService maintainService; @Autowired IMenuMappingService menuMappingService; @Autowired IMasterAuthorSubscribeService subscribeService; @Autowired ISysMenuService menuService; @Autowired ISysViewService viewService; @Autowired IMasterAuthorSubscribeService masterAuthorSubscribeService; @Autowired IMasterAuthorUnactiveService masterAuthorUnactiveService; @Autowired ISysDispenseLogsService dispenseLogsService; @Autowired ISysFieldService fieldService; @RequestMapping(value = "/dispense/surface", method = RequestMethod.GET) public Result surface(@RequestParam String userId, @RequestParam String type, @RequestParam String dataId, HttpServletRequest request, HttpServletResponse response) { String versionId = request.getParameter("versionId"); return addPassiveMq(userId, type, dataId, versionId, request, "surface"); } @RequestMapping(value = "/api/count", method = RequestMethod.POST) public Result count(@RequestBody JSONObject reqObj) { String token = reqObj.getString("token"); String type = reqObj.getString("type"); String dataId = reqObj.getString("dataId"); String versionId = reqObj.getString("versionId"); String incrementStr = reqObj.getString("increment"); if (StringUtils.isEmpty(token) || StringUtils.isEmpty(type) || StringUtils.isEmpty(dataId)) { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } String userId = redisClient.getRedisVal(token); if (StringUtils.isEmpty(userId)) { return Result.error(CodeMsg.ERROR_FIND_TOKEN); } boolean increment = true; if (!StringUtils.isEmpty(incrementStr)) { increment = Boolean.valueOf(incrementStr); } if (type.equalsIgnoreCase(Constant.Master)) { if (StringUtils.isEmpty(versionId)) { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } Maintain maintain = maintainService.selectById(versionId); if (maintain == null) { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } SysMenu sysMenu = menuService.selectById(dataId); if (sysMenu == null) { return Result.error(CodeMsg.SELECT_ERROR_NOTFOUND); } int subscribeCnt = subscribeService.selectCount(new EntityWrapper().eq("menu_id", dataId).eq("user_id", userId)); if (subscribeCnt < 1) { return Result.error(CodeMsg.SUBSCRIBE_UN_ERROR); } int i = masterAuthorUnactiveService.selectCount(new EntityWrapper().eq("maintain_id", versionId).eq("user_id", userId)); if (i > 0) { return Result.error(CodeMsg.Active_UN_ERROR); } MasterAuthor masterAuthor = new MasterAuthor().setTableName(maintain.getTableName()); TUser user = new TUser().setUserId(userId); com.highdatas.mdm.pojo.Page initPageInfo = DbUtils.masterAuthorService.getInitPageInfo(masterAuthor, maintain, user, increment); if (initPageInfo != null) { return Result.success(initPageInfo.getRecordCount()); } return Result.success(0); } else if (type.equalsIgnoreCase(Constant.View)) { SysView sysView = viewService.selectById(dataId); if (sysView == null) { return Result.error(CodeMsg.SELECT_ERROR_NOTFOUND); } Boolean active = sysView.getActive(); if (!active) { return Result.error(CodeMsg.Active_UN_ERROR); } long viewCount = viewService.getViewCount(sysView); return Result.success(viewCount); } else { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } } @RequestMapping(value = "/api/data", method = RequestMethod.POST) public Result data(@RequestBody JSONObject reqObj) { SysDispenseLogs logs = new SysDispenseLogs().setId(DbUtils.getUUID()).setCreateTime(new Date()); logs.setTouchType("rest"); logs.insert(); String token = reqObj.getString("token"); String type = reqObj.getString("type"); String dataId = reqObj.getString("dataId"); String versionId = reqObj.getString("versionId"); String incrementStr = reqObj.getString("increment"); Integer beginNo = reqObj.getInteger("beginNo"); Integer endNo = reqObj.getInteger("endNo"); logs.setTopicId(type).setTagId(dataId).setDataType(type); if (beginNo == null || endNo == null) { logs.setErrorInfo("beginNo or endNo not exists").setStatus("false").updateById(); return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } else if (endNo < beginNo) { logs.setErrorInfo("beginNo > endNo ").setStatus("false").updateById(); return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } if (beginNo < 0 || endNo < 0) { logs.setErrorInfo("beginNo or endNo < 0").setStatus("false").updateById(); return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } if (StringUtils.isEmpty(token) || StringUtils.isEmpty(type) || StringUtils.isEmpty(dataId)) { logs.setErrorInfo("token or type or dataId not found").setStatus("false").updateById(); return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } String userId = redisClient.getRedisVal(token); if (StringUtils.isEmpty(userId)) { logs.setErrorInfo(CodeMsg.ERROR_FIND_TOKEN.getMsg()).setStatus("false").updateById(); return Result.error(CodeMsg.ERROR_FIND_TOKEN); } TUser userById = DbUtils.getUserById(userId); logs.setUserName(userById.getUserName()); logs.setUserId(userId).updateById(); boolean increment = true; if (!StringUtils.isEmpty(incrementStr)) { increment = Boolean.valueOf(incrementStr); } com.highdatas.mdm.pojo.Page initPageInfo = null; if (type.equalsIgnoreCase(Constant.Master)) { if (StringUtils.isEmpty(versionId)) { logs.setErrorInfo("versionId not exists").setStatus("false").updateById(); return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } Maintain maintain = maintainService.selectById(versionId); if (maintain == null) { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } logs.setMaintainId(maintain.getId()).setVersion(maintain.getVersion()); logs.updateById(); SysMenu sysMenu = menuService.selectById(dataId); if (sysMenu == null) { return Result.error(CodeMsg.SELECT_ERROR_NOTFOUND); } logs.setName(sysMenu.getName()); logs.updateById(); int subscribeCnt = subscribeService.selectCount(new EntityWrapper().eq("menu_id", dataId).eq("user_id", userId)); if (subscribeCnt < 1) { logs.setErrorInfo(CodeMsg.SUBSCRIBE_UN_ERROR.getMsg()).updateById(); return Result.error(CodeMsg.SUBSCRIBE_UN_ERROR); } int i = masterAuthorUnactiveService.selectCount(new EntityWrapper().eq("maintain_id", versionId).eq("user_id", userId)); if (i > 0) { logs.setErrorInfo(CodeMsg.Active_UN_ERROR.getMsg()).updateById(); return Result.error(CodeMsg.Active_UN_ERROR); } MasterAuthor masterAuthor = new MasterAuthor().setTableName(maintain.getTableName()); TUser user = new TUser().setUserId(userId); initPageInfo = masterAuthorService.getInitPageInfo(masterAuthor, maintain, user, increment); if (initPageInfo == null) { return Result.success(null); } boolean b = refreshInitPage(initPageInfo, beginNo, endNo); if(!b) { return Result.error(CodeMsg.ERROR_SIZE_TOO_LONG); } if (increment) { String maintainTableName = maintain.getTableName(); String tempTableName = maintainTableName + Constant.RECORD; List fieldByMaintain = DbUtils.fieldService.getFieldByMaintain(maintain.getId()); List fieldList = fieldByMaintain.stream().map(sysField -> sysField.getField()).collect(Collectors.toList()); String fields = fieldByMaintain.stream().map(sysField -> sysField.getField()).collect(Collectors.joining(Constant.COMMA)); String filter = DbUtils.masterAuthorService.getFilter(user, maintain.getId()); if (StringUtils.isEmpty(filter)) { filter = Constant.WHERE_DEFAULT; } List> maps = DbUtils.maintainDetailMapper.selectMaintainDetail(fields, tempTableName, maintain.getId(), filter, initPageInfo.getLimitSQL()); Map helpfulField = DbUtils.antianaphylaxisClient.getHelpfulField(fields, maintainTableName); DbUtils.antianaphylaxisClient.fixMasterData(maps,helpfulField); JSONObject object = new JSONObject(); object.fluentPut("records", maps); List sysFields = masterAuthorService.getField(user, versionId); List collect = sysFields.stream().map(sysField -> new DispenseField().setField(sysField.getField()).setAlias(sysField.getAlias())).collect(Collectors.toList()); object.fluentPut("fields", collect); long time = new Date().getTime(); logs.setSchedule(time - logs.getCreateTime().getTime()).setStatus("true").setTotal(Long.valueOf(initPageInfo.getRecordCount()).intValue()).updateById(); return Result.success(object); } else { Result result = masterDataService.selectListByPageByVersion(user, maintain.getTableName(), null, Constant.WHERE_DEFAULT, null, null, maintain.getVersion(), false, null, initPageInfo); Object data = result.getData(); JSONObject masterResult = new JSONObject(); JSONObject dataResult = (JSONObject) JSONObject.toJSON(data); JSONObject grid = dataResult.getJSONObject("grid"); masterResult.fluentPut("records", grid.getJSONArray("record")); JSONArray fields = dataResult.getJSONArray("fields"); ArrayList dispenseFields = new ArrayList<>(); for (Object field : fields) { JSONObject one = (JSONObject) JSONObject.toJSON(field); dispenseFields.add(new DispenseField().setAlias(one.getString("alias")).setField(one.getString("field"))); } grid.remove("record"); masterResult.fluentPut("fields", dispenseFields); long time = new Date().getTime(); logs.setSchedule(time - logs.getCreateTime().getTime()).setStatus("true").setTotal(Long.valueOf(initPageInfo.getRecordCount()).intValue()).updateById(); return Result.success(masterResult); } } else if (type.equalsIgnoreCase(Constant.View)) { SysView sysView = viewService.selectById(dataId); if (sysView == null) { return Result.error(CodeMsg.SELECT_ERROR_NOTFOUND); } logs.setName(sysView.getName()); logs.updateById(); Boolean active = sysView.getActive(); if (!active) { return Result.error(CodeMsg.Active_UN_ERROR); } initPageInfo = viewService.getInitPageInfo(sysView.getId()); if (initPageInfo == null) { long time = new Date().getTime(); logs.setSchedule(time - logs.getCreateTime().getTime()).setStatus("true").setTotal(Long.valueOf(initPageInfo.getRecordCount()).intValue()).updateById(); return Result.success(null); } boolean b = refreshInitPage(initPageInfo, beginNo, endNo); if(!b) { logs.setErrorInfo(CodeMsg.ERROR_SIZE_TOO_LONG.getMsg()).updateById(); return Result.error(CodeMsg.ERROR_SIZE_TOO_LONG); } Result viewData = viewService.getViewData(sysView, null, 0, initPageInfo); long time = new Date().getTime(); logs.setSchedule(time - logs.getCreateTime().getTime()).setStatus("true").setTotal(Long.valueOf(initPageInfo.getRecordCount()).intValue()).updateById(); return viewData; } else { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } } private boolean refreshInitPage(com.highdatas.mdm.pojo.Page initPageInfo, Integer beginNo, Integer endNo) { int size = endNo - beginNo; int pageSize = initPageInfo.getPageSize(); if (pageSize < size) { return false; } initPageInfo.setBeginNo(beginNo); initPageInfo.setEndNo(endNo); initPageInfo.setPageSize(size); initPageInfo.setRecordCount(size); return true; } @RequestMapping(value = "/dispense/surface/muti", method = RequestMethod.POST) public Result surface(@RequestBody JSONObject objectList, HttpServletRequest request, HttpServletResponse response) { String userId = objectList.getString("userId"); JSONArray datas = objectList.getJSONArray("datas"); ArrayList results = new ArrayList<>(); for (int i = 0; i < datas.size(); i++) { JSONObject oneRequest = datas.getJSONObject(i); String type = oneRequest.getString("type"); String dataId = oneRequest.getString("dataId"); String versionId = oneRequest.getString("versionId"); Result result = addPassiveMq(userId, type, dataId, versionId, request, "muti"); results.add(result); } return Result.success(results); } private Result addPassiveMq(@RequestParam String userId, @RequestParam String type, @RequestParam String dataId, String versionId, HttpServletRequest request, String touchType) { SysDispenseLogs logs = new SysDispenseLogs() .setId(DbUtils.getUUID()) .setTouchType(touchType) .setDataType(type) .setCreateTime(new Date()) .setTopicId(type) .setTagId(dataId) .setMaintainId(versionId); logs.insert(); TUser user = DbUtils.getUserById(userId); if (user == null) { logs.setResult(CodeMsg.USER_NOT_MATHED.getMsg()).updateById(); return Result.error(CodeMsg.USER_NOT_MATHED); } logs.setUserName(user.getUserName()); logs.updateById(); String incrementStr = request.getParameter("increment"); boolean increment = true; if (!StringUtils.isEmpty(incrementStr)) { increment = Boolean.valueOf(incrementStr); } MqEntity mqEntity = new MqEntity(); mqEntity.setUserId(userId); mqEntity.setIncrement(increment); mqEntity.setMsgTopicName(type); mqEntity.setType(type); mqEntity.setLogId(logs.getId()); mqEntity.setDataId(dataId); if(type.equalsIgnoreCase(Constant.Master)) { if (StringUtils.isEmpty(versionId)) { logs.setResult(CodeMsg.ERROR_PARAMS_NOT_MATHED.getMsg()).updateById(); return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } Maintain maintain = maintainService.selectById(versionId); if (maintain == null) { logs.setResult(CodeMsg.ERROR_PARAMS_NOT_MATHED.getMsg()).updateById(); return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } logs.setVersion(maintain.getVersion()); logs.updateById(); mqEntity.setMaintainId(versionId); SysMenu sysMenu = menuService.selectById(dataId); if (sysMenu == null) { logs.setResult(CodeMsg.SELECT_ERROR_NOTFOUND.getMsg()).updateById(); return Result.error(CodeMsg.SELECT_ERROR_NOTFOUND); } logs.setName(sysMenu.getName()); logs.updateById(); int i = masterAuthorUnactiveService.selectCount(new EntityWrapper().eq("maintain_id", versionId).eq("user_id", userId)); if (i > 0) { logs.setResult(CodeMsg.Active_UN_ERROR.getMsg()).updateById(); return Result.error(CodeMsg.Active_UN_ERROR); } mqEntity.setMsgTagName(sysMenu.getId()); } else if (type.equalsIgnoreCase(Constant.View)) { SysView sysView = viewService.selectById(dataId); if (sysView == null) { logs.setResult(CodeMsg.SELECT_ERROR_NOTFOUND.getMsg()).updateById(); return Result.error(CodeMsg.SELECT_ERROR_NOTFOUND); } logs.setName(sysView.getName()); logs.updateById(); Boolean active = sysView.getActive(); if (!active) { logs.setResult(CodeMsg.Active_UN_ERROR.getMsg()).updateById(); return Result.error(CodeMsg.Active_UN_ERROR); } mqEntity.setMsgTagName(sysView.getId()); } else { logs.setResult(CodeMsg.ERROR_PARAMS_NOT_MATHED.getMsg()).updateById(); return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } mqEntity.setMsgKey(DbUtils.getUUID(16)); MqEntity.MsgBodyBean msgBody = mqEntity.getMsgBody(); msgBody.setTo(userId); msgBody.setVersion(versionId); MqMessage mqMessage = new MqMessage(mqEntity); mqEntity.setLogId(logs.getId()); return dispenseService.pushPassiveMq(mqMessage, touchType, logs);//被动返回 // dispenseService.pushActiveMq(mqMessage); 主动推 } @RequestMapping(value = "/dispense/api", method = RequestMethod.GET) public Result api(@RequestParam String token, @RequestParam String type, @RequestParam String dataId, HttpServletRequest request, HttpServletResponse response) { String userId = redisClient.getRedisVal(token); if (StringUtils.isEmpty(userId)) { return Result.error(CodeMsg.ERROR_FIND_TOKEN); } String versionId = request.getParameter("versionId"); return addPassiveMq(userId, type, dataId, versionId, request, "api"); } @RequestMapping(value = "/add", method = RequestMethod.GET) public Result add(@RequestParam String token, @RequestParam String type, @RequestParam String dataId) { try{ String redisVal = redisClient.getRedisVal(token); if (StringUtils.isEmpty(redisVal)) { return Result.error(CodeMsg.ERROR_FIND_TOKEN); } if(type.equalsIgnoreCase(Constant.Master)) { MasterAuthor masterAuthor = masterAuthorService.selectById(dataId); if (masterAuthor == null) { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } boolean updated = new MasterAuthorSubscribe().setId(DbUtils.getUUID()).setMenuId(masterAuthor.getId()).setUserId(redisVal).insert(); if (updated) { return Result.success(null); } else { return Result.error(CodeMsg.SUBSCRIBE_SAVE_ERROR); } } else if (type.equalsIgnoreCase(Constant.View)) { SysView sysView = viewService.selectById(dataId); if (sysView == null) { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } boolean updated = sysView.setSubscribe(true).updateById(); if (updated) { return Result.success(null); } else { return Result.error(CodeMsg.SUBSCRIBE_SAVE_ERROR); } } else { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } } catch (Exception e) { e.printStackTrace(); return Result.error(CodeMsg.ERROR_SAVE_TOKEN); } } @RequestMapping(value = "/refreshList", method = RequestMethod.POST) public Result refreshList(@RequestBody JSONObject requestBody) { String token = requestBody.getString(Constant.Token); if (StringUtils.isEmpty(token)) { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } try{ String userId = redisClient.getRedisVal(token); if (StringUtils.isEmpty(userId)) { return Result.error(CodeMsg.ERROR_FIND_TOKEN); } JSONArray dataList = requestBody.getJSONArray("dataList"); if (dataList == null) { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } //un subscribe List sysViews = viewService.selectList(new EntityWrapper().eq(Constant.USERID, userId)); for (SysView sysView : sysViews) { sysView.setSubscribe(false).updateById(); } masterAuthorSubscribeService.delete(new EntityWrapper().eq(Constant.USERID, userId)); for (int i = 0; i < dataList.size(); i++) { JSONObject oneObj = dataList.getJSONObject(i); String dataId = oneObj.getString("dataId"); String type = oneObj.getString("type"); if (StringUtils.isEmpty(dataId) || StringUtils.isEmpty(type)) { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } if(type.equalsIgnoreCase(Constant.Master)) { MasterAuthor masterAuthor = masterAuthorService.selectById(dataId); if (masterAuthor == null) { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } boolean updated = new MasterAuthorSubscribe().setId(DbUtils.getUUID()).setMenuId(masterAuthor.getId()).setUserId(userId).insert(); if (updated) { return Result.success(null); } else { return Result.error(CodeMsg.SUBSCRIBE_SAVE_ERROR); } } else if (type.equalsIgnoreCase(Constant.View)) { SysView sysView = viewService.selectById(dataId); if (sysView == null) { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } boolean updated = sysView.setSubscribe(true).updateById(); if (updated) { return Result.success(null); } else { return Result.error(CodeMsg.SUBSCRIBE_SAVE_ERROR); } } else { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } } return Result.success(null); } catch (Exception e) { e.printStackTrace(); return Result.error(CodeMsg.ERROR_SAVE_TOKEN); } } @RequestMapping(value = "/delete", method = RequestMethod.GET) public Result delete(@RequestParam String token, @RequestParam String type, @RequestParam String dataId) { try{ String redisVal = redisClient.getRedisVal(token); if (StringUtils.isEmpty(redisVal)) { return Result.error(CodeMsg.ERROR_FIND_TOKEN); } if(type.equalsIgnoreCase(Constant.Master)) { MasterAuthor masterAuthor = masterAuthorService.selectById(dataId); if (masterAuthor == null) { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } boolean updated = masterAuthorSubscribeService.delete(new EntityWrapper().eq("master_author_id", masterAuthor.getId()).eq(Constant.USERID, redisVal)); if (updated) { return Result.success(null); } else { return Result.error(CodeMsg.SUBSCRIBE_SAVE_ERROR); } } else if (type.equalsIgnoreCase(Constant.View)) { SysView sysView = viewService.selectById(dataId); if (sysView == null) { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } boolean updated = sysView.setSubscribe(false).updateById(); if (updated) { return Result.success(null); } else { return Result.error(CodeMsg.SUBSCRIBE_SAVE_ERROR); } } else { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } } catch (Exception e) { e.printStackTrace(); return Result.error(CodeMsg.ERROR_SAVE_TOKEN); } } @RequestMapping(value = "/authors", method = RequestMethod.GET) public Result authors(@RequestParam String token) { try{ String userId = redisClient.getRedisVal(token); if (StringUtils.isEmpty(userId)) { return Result.error(CodeMsg.ERROR_FIND_TOKEN); } TUser user = DbUtils.getUserById(userId); if (user == null) { return Result.error(CodeMsg.USER_NOT_MATHED); } List result = new ArrayList<>(); // author 只有拥有最新权限的才能订阅 List userAuthor = masterAuthorService.getUserAuthor(userId, null); userAuthor = userAuthor.stream() .filter(masterAuthor -> !StringUtils.isEmpty(masterAuthor.getMaintainFieldId())) // .filter(masterAuthor -> masterAuthor.getMaintainFieldId().equalsIgnoreCase(Constant.All)) .collect(Collectors.toList()); for (MasterAuthor masterAuthor : userAuthor) { SubscribeEntity subscribeEntity = new SubscribeEntity(); List versionList = maintainFieldService.getMaintainByMaintainField(masterAuthor.getMaintainFieldId(), masterAuthor.getTableName()); if (versionList != null && !versionList.isEmpty()) { Collections.sort(versionList, new Comparator() { @Override public int compare(Maintain o1, Maintain o2) { return o2.getOrderNo().compareTo(o1.getOrderNo()); } }); ArrayList jsonObjects = new ArrayList<>(); for (Maintain maintain : versionList) { JSONObject object = new JSONObject(); object.fluentPut("id", maintain.getId()); object.fluentPut("version", maintain.getVersion()); jsonObjects.add(object); } subscribeEntity.setVersionList(jsonObjects); } subscribeEntity.setType(Constant.Master); String menuId = masterAuthor.getMenuId(); SysMenu sysMenu = menuService.selectById(menuId); if (sysMenu == null) { continue; } subscribeEntity.setId(sysMenu.getId()); subscribeEntity.setName(sysMenu.getName()); String maintainFieldId = masterAuthor.getMaintainFieldId(); String tableName = masterAuthor.getTableName(); Maintain nowVersion = maintainService.getNowVersion(tableName); if (nowVersion == null) { continue; } List maintainByMaintainField = maintainFieldService.getMaintainByMaintainField(maintainFieldId, tableName); long count = maintainByMaintainField.stream().filter(maintain -> maintain.getId().equalsIgnoreCase(nowVersion.getId())).count(); if (count == 1) { result.add(subscribeEntity); } } //view List sysViews = viewService.selectList(new EntityWrapper().eq(Constant.USERID, userId)); List viewList = sysViews.stream() .map(view -> new SubscribeEntity().setId(view.getId()).setName(view.getName()).setType(Constant.View)) .collect(Collectors.toList()); result.addAll(viewList); return Result.success(result); } catch (Exception e) { e.printStackTrace(); return Result.error(CodeMsg.ERROR_SAVE_TOKEN); } } @RequestMapping(value = "/getSubscribeList", method = RequestMethod.GET) public Result getSubscribeList(@RequestParam String token, HttpServletResponse response) { String userId = redisClient.getRedisVal(token); if (StringUtils.isEmpty(userId)) { return Result.error(CodeMsg.ERROR_FIND_TOKEN); } TUser user = DbUtils.getUserById(userId); if (user == null) { return Result.error(CodeMsg.USER_NOT_MATHED); } List menuList = masterAuthorService.getMenu(user); // maintainFieldService.getMaintainByMaintainField() return null; } @RequestMapping(value = "/test", method = RequestMethod.GET) public String test(@RequestParam String tableName, HttpServletRequest request) { TUser user = DbUtils.getUser(request); List size = new ArrayList<>(); String s = masterDataService.selectByVersionSql(user, tableName, size, Constant.WHERE_DEFAULT, "V1.1", false); return s; } @RequestMapping(value = "/login", method = RequestMethod.GET) public Result login(HttpServletRequest request) { TUser user = DbUtils.getUser(request); String token = DbUtils.getUUID(32); boolean b = redisClient.putRedisVal(token, user.getId()); if (b) { return Result.success(token); }else { return Result.success(CodeMsg.ERROR_SAVE_TOKEN); } } @RequestMapping(value = "/config/update", method = RequestMethod.GET) public Result configUpdate(@RequestParam String token, HttpServletRequest request) { try{ String redisVal = redisClient.getRedisVal(token); if (StringUtils.isEmpty(redisVal)) { return Result.error(CodeMsg.ERROR_FIND_TOKEN); } //todo aes KEY; return null; } catch (Exception e) { e.printStackTrace(); return Result.error(CodeMsg.ERROR_SAVE_TOKEN); } } @RequestMapping(value = "/key", method = RequestMethod.GET) public Result key(@RequestParam String token, HttpServletRequest request) { try{ String redisVal = redisClient.getRedisVal(token); if (StringUtils.isEmpty(redisVal)) { return Result.error(CodeMsg.ERROR_FIND_TOKEN); } //todo aes KEY; return null; } catch (Exception e) { e.printStackTrace(); return Result.error(CodeMsg.ERROR_SAVE_TOKEN); } } @RequestMapping(value = "/log/all/{pageNo}", method = RequestMethod.GET) public Result login( @PathVariable int pageNo, HttpServletRequest request) throws ParseException { String pageSizeStr = request.getParameter("pageSize"); String touchType = request.getParameter("touchType"); int pageSize = 15; if (!StringUtils.isEmpty(pageSizeStr)) { pageSize = Integer.valueOf(pageSizeStr); } Wrapper wrapper = new EntityWrapper(); if (!StringUtils.isEmpty(touchType)) { if ("sys".equalsIgnoreCase(touchType)) { ArrayList strings = new ArrayList<>(); strings.add("muti"); strings.add("surface"); wrapper.in("touch_type", strings); } else { ArrayList strings = new ArrayList<>(); strings.add("api"); strings.add("rest"); wrapper.in("touch_type", strings); } } String dataType = request.getParameter("dataType"); if (!StringUtils.isEmpty(dataType)) { wrapper.eq("data_type", dataType); } String userId = request.getParameter("userId"); if (!StringUtils.isEmpty(userId)) { wrapper.eq("user_id", userId); } String name = request.getParameter("name"); if (!StringUtils.isEmpty(name)) { wrapper.like("name", name); } String tagId = request.getParameter("tagId"); if (!StringUtils.isEmpty(tagId)) { wrapper.eq("tag_id", tagId); } String maintainId = request.getParameter("maintainId"); if (!StringUtils.isEmpty(maintainId)) { wrapper.eq("maintain_id", maintainId); } String status = request.getParameter("status"); if (!StringUtils.isEmpty(status)) { wrapper.eq("status", status); } SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); String startTime = request.getParameter("startTime"); if (!StringUtils.isEmpty(startTime)) { Date start = simpleDateFormat.parse(startTime); wrapper.ge("create_time", start); } String endTime = request.getParameter("endTime"); if (!StringUtils.isEmpty(endTime)) { Date end = simpleDateFormat.parse(endTime); wrapper.le("create_time", end); } Page page = new Page<>(pageNo, pageSize); wrapper.orderBy("create_time desc"); Page sysDispenseLogsPage = dispenseLogsService.selectPage(page, wrapper); return Result.success(sysDispenseLogsPage); } }