From 6927d3bed414fb1a44312668d4e9d91d62e91b3f Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 09 七月 2024 00:43:50 +0800 Subject: [PATCH] 口令付款不依赖与订单 --- src/main/java/com/taoke/autopay/service/impl/KeyOrderServiceImpl.java | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 54 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/taoke/autopay/service/impl/KeyOrderServiceImpl.java b/src/main/java/com/taoke/autopay/service/impl/KeyOrderServiceImpl.java index 9ed3534..9c0d573 100644 --- a/src/main/java/com/taoke/autopay/service/impl/KeyOrderServiceImpl.java +++ b/src/main/java/com/taoke/autopay/service/impl/KeyOrderServiceImpl.java @@ -1,15 +1,25 @@ package com.taoke.autopay.service.impl; import com.taoke.autopay.dao.KeyOrderMapper; +import com.taoke.autopay.dao.WxUserSettingsMapper; import com.taoke.autopay.entity.KeyOrder; +import com.taoke.autopay.entity.OrderCountTypeEnum; import com.taoke.autopay.entity.OrderDistributeCountInfo; +import com.taoke.autopay.entity.WxUserSettings; import com.taoke.autopay.exception.KeyOrderException; +import com.taoke.autopay.exception.WxOrderCountException; import com.taoke.autopay.factory.OrderFactory; import com.taoke.autopay.service.KeyOrderService; +import com.taoke.autopay.service.WxUserOrderCountService; +import com.taoke.autopay.service.WxUserSettingService; +import com.taoke.autopay.utils.StringUtil; +import com.taoke.autopay.utils.TimeUtil; +import com.taoke.autopay.vo.SubmitKeyInfo; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.*; /** @@ -24,26 +34,44 @@ @Resource private KeyOrderMapper keyOrderMapper; + @Resource + private WxUserSettingService wxUserSettingService; + + @Resource + private WxUserOrderCountService wxUserOrderCountService; + @Override public KeyOrder selectById(String id) { return keyOrderMapper.selectById(id); } + @Transactional(rollbackFor = Exception.class) @Override - public KeyOrder addKeyOrder(String key) throws KeyOrderException { - String id = OrderFactory.createId(key); + public KeyOrder addKeyOrder(SubmitKeyInfo keyInfo, Long uid, String day) throws KeyOrderException, WxOrderCountException { + // 鍒ゆ柇鎻愪氦娆℃暟鏄惁杩囬噺 + if (uid != null) { + WxUserSettings settings = wxUserSettingService.selectByUid(uid); + wxUserOrderCountService.addOrderCount(uid, OrderCountTypeEnum.SUBMIT_TOKEN_COUNT, day, 1, settings.getTotalOrderCountPerDay()); + } + String id = OrderFactory.createId(keyInfo.getKey()); KeyOrder order = keyOrderMapper.selectById(id); if (order != null) { throw new KeyOrderException("璇峰嬁閲嶅鎻愪氦鍙d护"); } order = new KeyOrder(); order.setId(id); - order.setKey(key); + order.setKey(keyInfo.getKey()); + if(!StringUtil.isNullOrEmpty(keyInfo.getMoney())){ + order.setOrderMoney(new BigDecimal(keyInfo.getMoney())); + } + order.setUid(uid); order.setState(KeyOrder.STATE_NOT_PROCESS); order.setStateDesc("灏氭湭澶勭悊"); order.setCreateTime(new Date()); keyOrderMapper.insertSelective(order); + + return order; } @@ -65,6 +93,29 @@ @Transactional(rollbackFor = Exception.class) @Override + public void paySuccess(String id, String stateDesc,String day) throws WxOrderCountException { + KeyOrder old = keyOrderMapper.selectByPrimaryKeyForUpdate(id); + if(old==null){ + return; + } + if(old.getState() == KeyOrder.STATE_PAY){ + return; + } + if(old.getUid()!=null) { + wxUserOrderCountService.addOrderCount(old.getUid(),OrderCountTypeEnum.DY_ORDER_PAY,day,1,null); + } + KeyOrder orderUpdate = new KeyOrder(); + orderUpdate.setId(id); + orderUpdate.setState(KeyOrder.STATE_PAY); + orderUpdate.setStateDesc(stateDesc); + if(old.getPayTime()==null){ + orderUpdate.setPayTime(new Date()); + } + update(orderUpdate); + } + + @Transactional(rollbackFor = Exception.class) + @Override public void setOrderInfo(String id, String orderNo, int orderState) throws KeyOrderException { KeyOrder old = keyOrderMapper.selectByPrimaryKeyForUpdate(id); if (old == null) { -- Gitblit v1.8.0