@Override@Transactional(rollbackFor = RuntimeException.class)public Result<Object> fixedTicketAutoRecovery() {boolean isLock = redisLockService.lock(Const.FIXED_TICKET, 20);try {if (isLock) {LocalDateTime nowTime = LocalDateTime.now();// 将固定码表当中数据全部进行查出,然后比较该固定码是否已经过期QueryWrapper<FixedCode> fixedCodeQueryWrapper = new QueryWrapper<>();fixedCodeQueryWrapper.eq("status", STATUS);fixedCodeQueryWrapper.le("valid_end_time", nowTime);List<FixedCode> fixedCodes = fixedCodeDao.selectList(fixedCodeQueryWrapper);// 对过期固定码进行过滤筛选处理if (!fixedCodes.isEmpty()) {for (FixedCode fixedCode : fixedCodes) {// 联查判断该商户的优惠券过期处理是不是可以进行过期回收(0:回收、1:不回收)ShopTicket shopTicketBean = shopTicketService.getById(fixedCode.getShopTicketId());// 根据商户ID进行查询出相关的过期回收属性Shop shopBean = shopService.getById(shopTicketBean.getShopId());if (shopBean.getTicketOverdueProcessingWay() == 0) {// 条件满足则该固定二维码已经过期Integer total = fixedCode.getTotal();Integer balance = fixedCode.getBalance();// 对固定码数据进行过期处理Integer updateTotal = total - balance;fixedCode.setTotal(updateTotal);fixedCode.setBalance(0);fixedCode.setStatus(1);fixedCodeDao.updateById(fixedCode);// 对商户优惠券进行处理ShopTicket shopTicket = shopTicketService.getById(fixedCode.getShopTicketId());Integer updateBalance = shopTicket.getBalance() + balance;shopTicket.setBalance(updateBalance);shopTicketService.updateById(shopTicket);}}}return Result.modifyReturn(true, "固定码过期处理成功");}return Result.error();} finally {boolean unlock = redisLockService.unlock(Const.FIXED_TICKET);if (!unlock) {ExceptionUtils.sendRequestInfo("2.0固定码优惠券自动回收解锁失败", new StringBuilder());}}

// 这一行代码是新增优化的代码
DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern(“yyyy-MM-dd HH:mm:ss”);

// 将两个参数从字符串转化为LocalDateTime类型
LocalDateTime parseStopStartDate = LocalDateTime.parse(param.getStopStartDate(), dateTimeFormatter1);
LocalDateTime parseStopEndtDate = LocalDateTime.parse(param.getStopEndDate(),dateTimeFormatter1);
Duration duration = Duration.between(parseStopStartDate, parseStopEndtDate);
long toDays = duration.toDays();
// 将到期时间往后推toDays天
LocalDateTime endTime = LocalDateTime.parse(param.getEndTime(), dateTimeFormatter1);
endTime.plusDays(toDays);
// 再将endTime转化为字符串然后存到param里面
String endTimeStr = dateTimeFormatter1.format(endTime);
param.setEndTime(endTimeStr);

LocalDateTime :算数操作参考

public class Main {public static void main(String[] args) {LocalDateTime dt = LocalDateTime.of(2019, 10, 26, 20, 30, 59);System.out.println(dt);// 加5天减3小时:LocalDateTime dt2 = dt.plusDays(5).minusHours(3);System.out.println(dt2); // 2019-10-31T17:30:59// 减1月:LocalDateTime dt3 = dt2.minusMonths(1);System.out.println(dt3); // 2019-09-30T17:30:59}
}

参考网站:
https://www.liaoxuefeng.com/wiki/1252599548343744/1303871087444002

LocalDateTime运算案例,以及参考网站相关推荐

  1. ui设计参考网站以及ui设计参考书籍

    今天是ui设计参考网站以及ui设计参考书籍的一些总结推荐,ui设计其实不仅仅是学习一些软件那样简单,很多时候我们需要开发脑力以及想象力,看书是会打开思维,看网站是会打开想象.下面就是ui设计参考网站以 ...

  2. Hive(三、0)案例之视频网站指标

    Hive(三.0)案例之视频网站常规指标@你宝爷 一.前期准备 1.0.打开集群&服务&客户端 #1)注释掉配置文件内容,这样就不用开启metastore服务啦vim $HIVE_HO ...

  3. 推荐60+ Flex开发参考网站

    推荐60+ Flex开发参考网站 下面是一些好的Flex开发的网站或者Flex资源,如果你使用Flex开发,可以参考一下. 网上找的,可以参考参考!呵呵 新手入门参考: Adobe Flex 3 - ...

  4. Exchange Tech Issues 参考网站

    Exchange Tech Issues 参考网站 Exchange Tech Issues: https://www.experts-exchange.com/ DAG部署: http://blog ...

  5. 五、案例-指令参考-freemarker指令、表达式

    案例-指令参考描述:本人自己测试写了一遍,如有错的地方,懂freemarker的朋友望指点指点! 案例-指令参考 表达式 一. Assign 1.<#assign name1="北京& ...

  6. tomcat URL简写案例:模拟网站www.baidu.com的访问

    tomcat URL简写案例:模拟网站 * 实际URL:http://www.baidu.com:8080/myweb/1.html * 实际位置:F:\mywebapps\myweb\1.html ...

  7. Android开发的参考书籍和参考网站

    在学习Android开发的过程中,参考优秀和相关书籍和网站是十分必要的.在学习的过程中,手边一定要有一本参考书,在可以上网的环境中学习,随时有问题可以利用这些资源找到答案.所有的技术学习都必须与实践相 ...

  8. 教师很有用的参考网站

    [转] 教师很有用的参考网站 作为教师,我们在备课时,常因为手头缺少相关的资料而发愁.昨天晚上,我接到了一位博友的求助,要求帮忙查找某学科相关内容的资料,好在我收集的网址较全,很快就找到了.我以前曾经 ...

  9. UI配色参考网站收集

    UI配色参考网站: UI中国 behance 花瓣网 Flat UI color(扁平化UI配色网站) color hunt peise 渐变色网站: Uigradients https://uigr ...

最新文章

  1. 启动redis闪退/失败
  2. 查看函数说明_Axure函数使用说明
  3. 本周没有学习,估计用脑过度...
  4. 三个点在同一个半圆的概率_圆形水池中的四只小鸭子出现在同一个半圆中的概率是?...
  5. Java思维导图(1)
  6. 【MFC】黑马程序员MFC教程--基础篇
  7. win10 SVN图标不显示 已解决
  8. 干货——IT项目管理之软件测试
  9. STM32 GPIO模拟I2C的SHT20温湿度采样
  10. STM32中使用MMA7660重力加速度传感器
  11. Delphi键盘键值
  12. DA转换器原理及应用(报告)
  13. 古体字与简体字对照表_汉字繁体字(正体字)与简体字对照表
  14. win7连接惠普打印机p1108
  15. 跟我读论文系列之XGBoost
  16. 如何“避雷”(化解风险)
  17. puts()的功能。
  18. 三十三、C#中的接口
  19. 计算机网络协议第一章,网络协议基础知识
  20. Xperia Z2参数及白皮书

热门文章

  1. ArcGIS工具提取CAD节点高程等属性标注——在排水建模中的应用
  2. 解决Android平台移植ffmpeg的一些问题
  3. java gui的文本框_GUI编程笔记(java)07:GUI把文本框的值移到文本域案例
  4. IBM专有的RPG编程语言:概述
  5. 百度2019校招笔试题
  6. Linux内存管理、伙伴系统(buddy system)等知识点
  7. ArcGIS教程:了解水系
  8. Pregel(图计算)技术原理
  9. 浙江大学远程教育平台计算机基础知识,浙大远程教育计算机网络基础离线作业参考答案...
  10. 整数因子分解问题(多种方法)