admin
2024-09-27 17caebabf7a6a529b7039c71e21e5a324e31ea20
src/test/java/com/taoke/autopay/KeyTest.java
@@ -1,15 +1,18 @@
package com.taoke.autopay;
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;
@@ -17,6 +20,7 @@
import org.yeshi.utils.UrlUtils;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.Date;
import java.util.List;
@@ -37,6 +41,9 @@
    private KeyOrderService keyOrderService;
    @Resource
    private KeyOrderMapper keyOrderMapper;
    @Resource
    private OrderPayFailProcessor orderPayFailProcessor;
    private void addKey(SubmitKeyInfo keyInfo, Long wxUid) throws KeyVerifyException, KeyOrderException, WxOrderCountException {
@@ -45,7 +52,7 @@
        String verifyAlipayKey = systemConfigService.getValueCache(SystemConfigKeyEnum.ALIPAY_KEY_VERIFY);
        if(verifyAlipayKey!=null&&verifyAlipayKey.trim().equalsIgnoreCase("1")||true) {
        if (verifyAlipayKey != null && verifyAlipayKey.trim().equalsIgnoreCase("1") || true) {
            try {
                // 需要验证支付宝口令
                if (urllist.size() < 1) {
@@ -70,22 +77,25 @@
                    throw new Exception("口令内容获取失败");
                }
                // 验证内容
                DYOrderDto dto = keyOrderService.verifyKey(tradeInfo.getGoodsTitle(), orderStatus, tradeInfo.getItemRealAmount());
            }catch(KeyVerifyException ee){
                throw  ee;
            }
            catch(Exception e){
                DYOrderDto dto = keyOrderService.verifyKey(tradeInfo.getGoodsTitle(), orderStatus, tradeInfo.getItemRealAmount(),null, null);
            } catch (KeyVerifyException ee) {
                throw ee;
            } catch (Exception e) {
                throw new KeyVerifyException(KeyVerifyException.CODE_COMMON, e.getMessage());
            }
        }
    }
    @Test
    public void test1()  {
        SubmitKeyInfo keyInfo=new SubmitKeyInfo();
        keyInfo.setKey("【支fu`寳】亲,复制 Q:/dYsUzQV77s5  p:/S ZH2412 2020/11/27打开支付宝就可以帮我🏮付款啦💪https://ur.alipay.com/_Ig4toHTlLHbBqiJqb3dpC");
    public void test1() {
        SubmitKeyInfo keyInfo = new SubmitKeyInfo();
        keyInfo.setKey("【支.f.u.宝】亲,复制 m:/AYyvvyJ32pG  Y:/e CA8474 2021/01/18打开支付宝\uD83C\uDFEE就可以帮我\uD83C\uDFEE付款啦\uD83C\uDFEEhttps://ur.alipay.com/_1kIJISKdMN6PREE9laoYWS");
        try {
            addKey(keyInfo, 1L);
            KeyOrder keyOrder=new KeyOrder();
            keyOrder.setId("test21123123");
            keyOrder.setKey(keyInfo.getKey());
            keyOrderMapper.insertSelective(keyOrder);
        } catch (KeyVerifyException e) {
            e.printStackTrace();
        } catch (KeyOrderException e) {
@@ -97,11 +107,84 @@
    @Test
    public void testRePay() throws InterruptedException {
        for(int i=0;i<10;i++) {
        for (int i = 0; i < 10; i++) {
            orderPayFailProcessor.processPayFail("2c9d0dd55cd845819c8e6010fe10def4", "读取支付宝粘贴板超时");
            Thread.sleep(2000);
            orderPayFailProcessor.processFromQueue();
        }
    }
    @Test
    public void statisticAgentId() {
        KeyOrderMapper.DaoQuery query=new KeyOrderMapper.DaoQuery();
        query.hasAgentId=true;
        query.hasPayTime = true;
        query.state =2;
        query.count = 100;
        List<Long> list =   keyOrderService.listAgentId(query);
        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{
    }
    @Test
    public void testSettle(){
        keyOrderService.statisticChannelOrders(5L,new Date(TimeUtil.convertToTimeTemp("20240809","yyyyMMdd")),new Date(TimeUtil.convertToTimeTemp("20240810","yyyyMMdd")));
    }
}