From 27c6695551c7229786ef2cf7dae722886c9edf53 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期五, 09 八月 2024 22:53:44 +0800 Subject: [PATCH] 代理新功能完善 --- src/main/java/com/taoke/autopay/service/impl/WxUserOrderCountServiceImpl.java | 62 +++++++++++++++++++++++++++++++ 1 files changed, 62 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/taoke/autopay/service/impl/WxUserOrderCountServiceImpl.java b/src/main/java/com/taoke/autopay/service/impl/WxUserOrderCountServiceImpl.java index cfd41e9..9c5b86d 100644 --- a/src/main/java/com/taoke/autopay/service/impl/WxUserOrderCountServiceImpl.java +++ b/src/main/java/com/taoke/autopay/service/impl/WxUserOrderCountServiceImpl.java @@ -1,11 +1,15 @@ package com.taoke.autopay.service.impl; +import com.taoke.autopay.dao.KeyOrderMapper; import com.taoke.autopay.dao.WxUserOrderCountMapper; import com.taoke.autopay.entity.OrderCountTypeEnum; import com.taoke.autopay.entity.WxUserOrderCount; import com.taoke.autopay.exception.WxOrderCountException; import com.taoke.autopay.factory.OrderFactory; +import com.taoke.autopay.service.KeyOrderService; +import com.taoke.autopay.service.UserSettingService; import com.taoke.autopay.service.WxUserOrderCountService; +import com.taoke.autopay.utils.TimeUtil; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -25,10 +29,32 @@ @Resource private WxUserOrderCountMapper wxUserOrderCountMapper; + @Resource + private UserSettingService userSettingService; + + @Resource + private KeyOrderMapper keyOrderMapper; + @Transactional(rollbackFor = Exception.class) @Override public void addOrderCount(Long uid, OrderCountTypeEnum orderType, String day, int count, Integer maxCount) throws WxOrderCountException { + // 缁熻鐢ㄦ埛鎬绘鏁� + WxUserOrderCountMapper.DaoQuery daoQuery=new WxUserOrderCountMapper.DaoQuery(); + daoQuery.uid = uid; + daoQuery.orderType=orderType.getType(); + Long totalCount = wxUserOrderCountMapper.sumOrderCount(daoQuery); + if(totalCount==null){ + totalCount = 0L; + } + if(totalCount>Integer.MAX_VALUE){ + totalCount = (long)Integer.MAX_VALUE; + } + int submitCount = userSettingService.getLimitCountByTotalCount((int)totalCount.longValue()); + if(maxCount==null){ + maxCount =Integer.MAX_VALUE; + } + maxCount = Math.min(submitCount, maxCount); WxUserOrderCount info = new WxUserOrderCount(); info.setDay(day); info.setOrderType(orderType.getType()); @@ -48,6 +74,9 @@ update.setUpdateTime(new Date()); wxUserOrderCountMapper.updateByPrimaryKeySelective(update); } else { + if (maxCount != null && maxCount < count + 0) { + throw new WxOrderCountException(String.format("浠婃棩瓒呰繃鏈�澶ф彁浜ゆ鏁帮紙%s娆★級", maxCount)); + } info.setCreateTime(new Date()); info.setOrderCount(count); wxUserOrderCountMapper.insertSelective(info); @@ -55,6 +84,39 @@ } @Override + public void isOrderCountLimit(Long uid, OrderCountTypeEnum orderType, String day, int count, Integer maxCount) throws WxOrderCountException{ + + WxUserOrderCountMapper.DaoQuery daoQuery=new WxUserOrderCountMapper.DaoQuery(); + daoQuery.uid = uid; + daoQuery.orderType=orderType.getType(); + Long totalCount = wxUserOrderCountMapper.sumOrderCount(daoQuery); + if(totalCount==null){ + totalCount = 0L; + } + if(totalCount>Integer.MAX_VALUE){ + totalCount = (long)Integer.MAX_VALUE; + } + int submitCount = userSettingService.getLimitCountByTotalCount((int)totalCount.longValue()); + if(maxCount==null){ + maxCount =Integer.MAX_VALUE; + } + maxCount = Math.min(submitCount, maxCount); + + // 缁熻浠婂ぉ鐨勬彁浜ゆ鏁� + KeyOrderMapper.DaoQuery orderQuery=new KeyOrderMapper.DaoQuery(); + orderQuery.uid = uid; + orderQuery.minCreateTime =new Date( TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(System.currentTimeMillis(),"yyyyMMdd"),"yyyyMMdd")); + if(orderType!=null&&orderType!=OrderCountTypeEnum.SUBMIT_TOKEN_COUNT){ + orderQuery.orderType=orderType.getType(); + } + long todayCount = keyOrderMapper.count(orderQuery); + if (maxCount != null && maxCount < count + todayCount) { + throw new WxOrderCountException(String.format("浠婃棩瓒呰繃鏈�澶ф彁浜ゆ鏁帮紙%s娆★級", maxCount)); + } + + } + + @Override public WxUserOrderCount get(Long uid, OrderCountTypeEnum orderType, String day) { WxUserOrderCountMapper.DaoQuery daoQuery = new WxUserOrderCountMapper.DaoQuery(); daoQuery.uid = uid; -- Gitblit v1.8.0