| | |
| | | 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; |
| | | |
| | |
| | | |
| | | @Resource |
| | | private UserSettingService userSettingService; |
| | | |
| | | @Resource |
| | | private KeyOrderMapper keyOrderMapper; |
| | | |
| | | |
| | | @Transactional(rollbackFor = Exception.class) |
| | |
| | | maxCount =Integer.MAX_VALUE; |
| | | } |
| | | maxCount = Math.min(submitCount, maxCount); |
| | | WxUserOrderCount info = new WxUserOrderCount(); |
| | | info.setDay(day); |
| | | info.setOrderType(orderType.getType()); |
| | | info.setUid(uid); |
| | | info.setId(OrderFactory.createId(info)); |
| | | // 判断是否存在 |
| | | WxUserOrderCount old = wxUserOrderCountMapper.selectByPrimaryKeyForUpdate(info.getId()); |
| | | |
| | | |
| | | if (old != null) { |
| | | if (maxCount != null && maxCount < count + old.getOrderCount()) { |
| | | throw new WxOrderCountException(String.format("今日超过最大提交次数(%s次)", 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 |