admin
2024-08-09 27c6695551c7229786ef2cf7dae722886c9edf53
src/test/java/com/taoke/autopay/KeyTest.java
@@ -3,14 +3,16 @@
import com.taoke.autopay.dao.KeyOrderMapper;
import com.taoke.autopay.dto.DYOrderDto;
import com.taoke.autopay.entity.KeyOrder;
import com.taoke.autopay.entity.OrderCountTypeEnum;
import com.taoke.autopay.entity.SystemConfigKeyEnum;
import com.taoke.autopay.entity.WxUserSettings;
import com.taoke.autopay.exception.KeyOrderException;
import com.taoke.autopay.exception.KeyVerifyException;
import com.taoke.autopay.exception.WxOrderCountException;
import com.taoke.autopay.manager.OrderPayFailProcessor;
import com.taoke.autopay.service.KeyOrderService;
import com.taoke.autopay.service.SystemConfigService;
import com.taoke.autopay.service.*;
import com.taoke.autopay.utils.AlipayOrderUtil;
import com.taoke.autopay.utils.Constant;
import com.taoke.autopay.utils.TimeUtil;
import com.taoke.autopay.vo.SubmitKeyInfo;
import org.junit.jupiter.api.Test;
@@ -18,6 +20,7 @@
import org.yeshi.utils.UrlUtils;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.Date;
import java.util.List;
@@ -71,7 +74,7 @@
                    throw new Exception("口令内容获取失败");
                }
                // 验证内容
                DYOrderDto dto = keyOrderService.verifyKey(tradeInfo.getGoodsTitle(), orderStatus, tradeInfo.getItemRealAmount());
                DYOrderDto dto = keyOrderService.verifyKey(tradeInfo.getGoodsTitle(), orderStatus, tradeInfo.getItemRealAmount(),null, null);
            } catch (KeyVerifyException ee) {
                throw ee;
            } catch (Exception e) {
@@ -116,4 +119,82 @@
        System.out.println(list);
    }
    @Test
    public void repaire(){
        KeyOrderMapper.DaoQuery query=new KeyOrderMapper.DaoQuery();
        query.state=3;
        query.minCreateTime=new Date(TimeUtil.convertToTimeTemp("2024-08-02","yyyy-MM-dd"));
        query.stateDesc="订单已支付";
        query.count = 1000;
        List<KeyOrder>  list =  keyOrderService.list(query);
        for(KeyOrder o:list){
            KeyOrder update=new KeyOrder();
            update.setId(o.getId());
            update.setState(KeyOrder.STATE_PAY);
            update.setPayTime(o.getExcutePayTime());
            keyOrderService.update(update);
        }
    }
    @Resource
    private ClientInfoService clientInfoService;
    @Test
    public void test2(){
        List<Long> clientIds = clientInfoService.getRePayClientIds();
        if (clientIds!=null&&clientIds.size()>0) {
            Collections.shuffle(clientIds);
            // 查询设备未执行的数量
            for(Long cuid:clientIds) {
                KeyOrderMapper.DaoQuery daoQuery = new KeyOrderMapper.DaoQuery();
                daoQuery.distributeClientUid =cuid;
                daoQuery.state =  KeyOrder.STATE_NOT_PAY;
                daoQuery.minCreateTime=new Date(System.currentTimeMillis() - 1000*60*30L);
                long count =  keyOrderService.count(daoQuery);
                if(count <=1){
                    // 分配
                    System.out.println( cuid);
                }
            }
        }
    }
    @Resource
    private WxUserSettingService wxUserSettingService;
    @Resource
    private WxUserOrderCountService wxUserOrderCountService;
    @Test
    public void testCount() throws Exception{
        Long uid = 5413L;
        int orderType = Constant.ORDER_TYPE_DY;
        WxUserSettings settings = wxUserSettingService.getUserSettings(uid);
        OrderCountTypeEnum orderCountType = OrderCountTypeEnum.SUBMIT_TOKEN_COUNT;
        int maxCount = settings.getTotalOrderCountPerDay();
        switch (orderType) {
            case Constant.ORDER_TYPE_DY:
                orderCountType = OrderCountTypeEnum.DY_ORDER_PAY;
                maxCount = settings.getDyOrderCountPerDay();
                break;
            case Constant.ORDER_TYPE_KS:
                orderCountType = OrderCountTypeEnum.KS_ORDER_PAY;
                maxCount = settings.getKsOrderCountPerDay();
                break;
        }
        try {
            wxUserOrderCountService.isOrderCountLimit(uid, orderCountType, TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyy-MM-dd"), 1, maxCount);
        } catch (WxOrderCountException e) {
            e.printStackTrace();
            throw new KeyVerifyException(KeyVerifyException.CODE_COMMON, "今日提交超过" + maxCount + "次");
        }
    }
}