优化下面的代码 public void insertFill(MetaObject metaObject) { try { this.setFieldValByName("createdBy", StpUtil.getLoginId(), metaObject); this.setFieldValByName("createdTime", new Date(), metaObject); this.setFieldValByName("updatedBy", StpUtil.getLoginId(), metaObject); this.setFieldValByName("updatedTime", new Date(), metaObject); } catch (Exception e) { this.setFieldValByName("createdBy", "system", metaObject); this.setFieldValByName("createdTime", new Date(), metaObject); this.setFieldValByName("updatedBy", "system", metaObject); this.setFieldValByName("updatedTime", new Date(), metaObject); } }
时间: 2023-05-14 10:07:27 浏览: 60
这段代码可以优化为:
public void insertFill(MetaObject metaObject) {
String loginId = StpUtil.getLoginId();
Date now = new Date();
try {
this.setFieldValByName("createdBy", loginId, metaObject);
this.setFieldValByName("createdTime", now, metaObject);
this.setFieldValByName("updatedBy", loginId, metaObject);
this.setFieldValByName("updatedTime", now, metaObject);
} catch (Exception e) {
this.setFieldValByName("createdBy", "system", metaObject);
this.setFieldValByName("createdTime", now, metaObject);
this.setFieldValByName("updatedBy", "system", metaObject);
this.setFieldValByName("updatedTime", now, metaObject);
}
}
相关问题
public class DocumentService extends ServiceImpl<DocumentMapper, Document> { @Resource private DocumentMapper documentMapper; @Resource private CateMapper cateMapper; @Resource private HistoryMapper historyMapper; public List<Document> listDocument(PageInfo<?> pageInfo, Document document) { PageHelper.startPage(pageInfo.getCurrent(), pageInfo.getPageSize()); List<Document> documentList = documentMapper.selectList(Wrappers.<Document>lambdaQuery() .like(StringUtils.isNotBlank(document.getTitle()), Document::getTitle, document.getTitle()) .like(StringUtils.isNotBlank(document.getSummary()), Document::getSummary, document.getSummary()) .eq(document.getCateId() != null, Document::getCateId, document.getCateId()) .eq(document.getDeptId() != null, Document::getDeptId, document.getDeptId()) .eq(document.getActive() != null, Document::getActive, document.getActive()) .eq(document.getRecommend() != null, Document::getRecommend, document.getRecommend()) .eq(document.getCarousel() != null, Document::getCarousel, document.getCarousel()) .orderByDesc(Document::getDateTime) ); if (!documentList.isEmpty()) { List<Long> documentIdList = documentList.stream().map(Document::getCateId).collect(Collectors.toList()); Map<Long, Cate> cateMap = cateMapper.selectBatchIds(documentIdList).stream().collect(Collectors.toMap(Cate::getId, e -> e, (e1, e2) -> e2)); for (Document documentItem : documentList) { documentItem.setCate(cateMap.get(documentItem.getCateId())); } } return documentList; } public Document getDocumentById(Long id, HttpServletRequest request) { Document document = documentMapper.selectById(id); if (document == null) { return null; } document.setHits(document.getHits() + 1); documentMapper.updateById(document); document.setCate(cateMapper.selectById(document.getCateId())); History history = new History(); history.setDocumentId(id); history.setDateTime(LocalDateTime.now()); history.setUserId(Long.valueOf((String) StpUtil.getLoginId())); history.setIp(request.getRemoteAddr()); historyMapper.insert(history); return document; } public List<Document> listRecommend(Long id) { //Todo 推荐 return new ArrayList<>(); } public Boolean copyDocument(Long id) { Document document = documentMapper.selectById(id); if (document == null) { return false; } document.setDateTime(LocalDateTime.now()); document.setId(null); document.setDeptId(StpUtil.getSession().getModel(SaSession.USER, User.class).getBelongDeptId()); document.setHits(0L); document.setActive(false); document.setRecommend(false); int result = documentMapper.insert(document); return result == 1; } }
这是一个Java类的示例代码,名为`DocumentService`,它是一个服务类,提供了一些操作文档的方法。该类使用了Spring框架的一些注解,如`@Resource`和`@Autowired`来进行依赖注入。
在该类中,有一些方法可以执行不同的操作:
- `listDocument`方法用于获取文档列表,根据传入的条件进行筛选和排序。
- `getDocumentById`方法用于根据文档ID获取具体的文档信息,并更新文档的点击次数和记录历史信息。
- `listRecommend`方法用于获取推荐的文档列表(目前该方法返回一个空列表,还未实现具体逻辑)。
- `copyDocument`方法用于复制指定ID的文档,并创建一个新的副本。
需要注意的是,这段代码只是一个示例,并不能直接运行。你可以根据自己的业务需求和数据库结构来修改和完善这些方法。同时,还需要确保相关的Mapper类和实体类已经正确配置和引入。
StpUtil中的所有方法
StpUtil是一个工具类,用于在Java Web项目中方便地获取当前用户的信息。是StpUtil中的所有方法:
1.LoginId(Object loginId):设置当前登录用户的id
2. getLoginId():获取当前登录用户的id
3. setLoginInfo(Object loginId, Object loginName):设置当前登录用户的id和名称
4. getLoginInfo():获取当前登录用户的id和名称
5. setLoginInfo(Object loginId, Object loginName, String tokenValue):设置当前登录用户的id、名称和token值
6. getTokenValue():获取当前登录用户的token值
7. getLoginType():获取当前登录用户的类型
8. setLoginType(String loginType):设置当前登录用户的类型
9. isLogin():判断当前是否有登录用户
10. logout():退出当前登录用户
11. getSession():获取当前登录用户的Session
12. setSession(Object session):设置当前登录用户的Session
13. getSessionValue(String key):获取当前登录用户Session中指定key对应的value值
14. setSessionValue(String key, Object value):设置当前登录用户Session中指定key对应的value值
15. delSessionValue(String key):删除当前登录用户Session中指定key对应的value值
16. getSessionTimeout():获取当前登录用户Session的过期时间
17. setSessionTimeout(int timeout):设置当前登录用户Session的过期时间
18. getCookieValue(String key):获取当前登录用户的Cookie中指定key对应的value值
19. setCookieValue(String key, String value):设置当前登录用户的Cookie中指定key对应的value值
20. delCookie(String key):删除当前登录用户的Cookie中指定key对应的value值
21. getTokenSession():获取当前登录用户token对应的Session
22. setTokenSession(Object session):设置当前登录用户token对应的Session
23. getTokenValue(String tokenName):获取当前登录用户指定名称的token值
24. setTokenValue(String tokenName, String tokenValue):设置当前登录用户指定名称的token值
25. delTokenValue(String tokenName):删除当前登录用户指定名称的token值
26. getTokenTimeout():获取当前登录用户token的过期时间
27. setTokenTimeout(int timeout):设置当前登录用户token的过期时间
28. getTokenName():获取当前登录用户token名称
29. setTokenName(String tokenName):设置当前登录用户token名称
30. login(Object loginId):登录指定id的用户
31. login(Object loginId, Object loginName):登录指定id和名称的用户
32. login(Object loginId, Object loginName, String tokenValue):登录指定id、名称和token值的用户
注意:这些方法的具体实现需要结合使用的安全框架来实现。